이솝 임베디드 포럼 WiKi 페이지는 이솝 임베디드 포럼 공동제작 보드를 사용하시는 회원님들이 자유롭게 업데이트 하실 수 있습니다.

[V210] U-Boot_1.3.4 컴파일 및 사용방법

조회 수 2037 추천 수 0 2012.08.14 20:46:00
JhoonKim *.121.88.91

editU-Boot 1.3.4 컴파일 및 사용 방법

U-Boot의 경우 커널의 부트 아규먼트를 uBoot에서 커널로 넘겨줄 수 있습니다.
이외에 보드 환경 설정을 위한 다양한 환경 설정을 uBoot에서 지원 합니다.

따라서, 커널의 재 컴파일 작업이 없이도, 간단하게 커널의 부트 환경 설정을 변경할 수 있습니다.

 

1. NFS를 이용한 루트 파일 시스템 마운트 방법

 

최초로 이솝 보드를 받았을 때 NAND Flash에 루트 파일 시스템을 기록하기 위해서 또는 어플리케이션 등을 개발할 때는
NFS로 루트 파일 시스템을 마운트 하여 개발을 진행 합니다.

 

이 경우, uBoot의 명령 프롬포트에서 다음의 명령을 수행하면, USB 네트워크를 이용하여 NFS로 루트 파일 시스템을 마운트 합니다.
(해당 환경 설정을 수행하기 이전에, 호스트PC의 /nfsroot 디렉터리에 이솝 보드용 NFS 루트 파일 시스템이 있어야 합니다.)

 

#> setenv bootargs console=ttySAC1,115200 root=/dev/nfs rw nfsroot=호스트PC의 IP주소:/nfsroot/RootFS-S5PV210-Xwindows ip=타깃 보드의 IP주소:호스트 PC의 IP주소:게이트 웨이 주소:서브넷 마스크::eth0:off ethaddr=이더넷 컨트롤러의 MAC 주소

#> saveenv => 환경 설정을 NAND Flash 저장

#> boot      => 적용한 환경 설정을 가지고 부팅

 

예)

#> setenv bootargs console=ttySAC1,115200 root=/dev/nfs rw nfsroot=192.168.10.15:/nfsroot/RootFS-S5PV210-Xwindows ip=192.168.10.85:192.168.10.15:192.168.10.1:255.255.255.0::eth0:off  ethaddr=00:40:5c:26:0a:5b

#> saveenv

#> boot

 

2. uBoot의 IP주소 설정 방법

 

uBoot에서 호스트 PC의 TFTP를 이용한 다운로드를 하기위한 IP 주소 설정은 다음과 같이 합니다.

 

#> setenv gatewayip 게이트 웨이 주소;setenv ipaddr 타깃 보드 IP주소;setenv serverip 호스트 PC IP주소

#> saveenv => 환경 설정을 NAND Flash 저장

 

예)
#>setenv gatewayip 192.168.1.1;setenv ipaddr 192.168.1.100;setenv serverip 192.168.1.15

#>saveenv


 

3. SMDK-USB Downloader를 통한 USB를 이용한 리눅스 커널 이미지를 다운로드 한 후 부팅

 

리눅스 커널 개발 시, 커널을 수정하면서 테스트가 필요할 경우 다음과 같이 옵션을 넣어주면,
이솝 보드는 TFTP를 통하여 리눅스 커널 이미지를 다운로드 받은 후 다운로드 받은 커널 이미지를 가지고 부팅을 수행 합니다.

 

#> setenv bootcmd dnw 0xc0008000\;bootm 0xc0008000

$> smdk-usbdl -a 0xc0008000 -f ./zImage 리눅스 호스트에서 실행

#> saveenv => 환경 설정을 NAND Flash 저장


 4. SMDK-USB Downloader를 통한 USB를 이용하여 커널을 다운로드 받고 NAND Flash에 기록

 

다음은 TFTP를 이용하여 리눅스 커널 이미지를 다운로드 받고, 자동으로 다운로드 받은 커널을 NAND Flash에 기록하는 명령 입니다.

 

#> dnw 0xc0008000;nand erase 80000 300000;nand write 0xc0008000 80000 300000

$> smdk-usbdl -a 0xc0008000 -f ./zImage 리눅스 호스트에서 실행

 

5. NAND Flash에 저장된 커널로 자동 부팅

 

다음의 명령을 입력하면, 이솝 보드는 부팅 시 자동으로 NAND Flash에 기록된 커널을 읽어서 부팅을 수행 합니다.

 

#> setenv bootcmd nand read C0008000 80000 300000\;bootm C0008000

#> saveenv => 환경 설정을 NAND Flash 저장


 6. TFTP를 이용하여 부트로더를 다운로드 받고 NAND Flash에 기록

 

부트로더가 수정되었거나, 교체가 필요할 경우 다음의 명령을 입력하면, 부트로더를 다운로드 받고 이것을 자동으로 NAND Flash에 기록 합니다.

 

#> dnw 0xc0008000 uBoot.bin;nand erase 0 40000;nand write 0xc0008000 0 50000

$> smdk-usbdl -a 0xc0008000 -f ./uboot.bin 리눅스 호스트에서 실행

 

7. NAND Flash에 저장된 루트 파일 시스템을 마운트 하여 부팅

 

루트 파일 시스템이 NAND Flah에 저장되어 있을 경우 부트로더에서 다음의 옵션을 입력하면, NAND Flash에 저장된 루트 파일 시스템을 마운트하여 부팅 합니다.

 

#> setenv bootargs root=/dev/mtdblock2 rootfstype=yaffs2 console=ttySAC1,115200


 8. U-Boot 컴파일 방법

 

리눅스 호스트 시스템에서 이솝 S5PV210 보드용 툴 체인을 설치하시고, 배포되는 U-Boot의 소스코드에서 다음과 같이 입력하시면 컴파일이 완료됩니다.

 

$> make clobber
$> make aesopv210_config
$> make


 컴파일이 완료되면 ./u-boot.bin 을 사용하시면 됩니다.

사용자 로그인