카테고리 없음

U-Boot에서 bootp, tftpboot 실행하기

벅스바니 2010. 2. 19. 10:19

U-Boot 상에서 TFTP를 사용하여 부트를 할 경우,
커맨드 사용법입니다.

일단 앞서 리눅스 상에서 TFTP를 설정하거나, 윈도우 상에서 TFTP서버를 올려주었습니다.

이후, U-boot의 prompt상태에서 커맨드를 주어야하는데, 정확한 구문에 대한 설명이 없군요

간단한 건데, 삽질 끝에 알아낸 것입니다..

bootp 0x32000000 uImage
or
tftpboot0x32000000uImage

'0x32000000'은 이미지를 로딩할 메모리 위치이고,
'uImage'는 압축된 커널이미지 입니다.

실행하기 전에

base 0x32000000

이라고 실행해서 다운로드될 어드레스를 0x32000000으로 설정합니다.


근데 어떻게 된건진 tftpboot에서 바로 실행이 되지 않았습니다.
그리고 bootp는 0x32000000 번지에 로딩이 되어서
bootm 0x32000000
이라고 적으면 압축을 풀고 "Starting Kernel ..." 까지 나오고 먹통이군요.

MINI2440 # bootp
dm9000 i/o: 0x20000300, id: 0x90000a46
DM9000: running in 16 bit mode
MAC: 08:08:11:18:12:27
BOOTP broadcast 1
BOOTP broadcast 2
DHCP client bound to address 192.168.11.192
*** Warning: no boot file name; using 'C0A80BC0.img'
TFTP from server 192.168.11.103; our IP address is 192.168.11.192
Filename 'C0A80BC0.img'.
Load address: 0x32000000
Loading: #################################################################
#################################################################
#################################################################
#################################################################
######################################
done
Bytes transferred = 1524708 (1743e4 hex)
MINI2440 # ls
Scanning JFFS2 FS: get_fl_mem_nand: can't alloc 872117784 bytes
off = 0x24830 magic 0x1985 type 0x0 node.totlen = 872117784
done.
MINI2440 # bootm 0x32000000
## Booting kerne Legacy Image at 32000000 ...
Image Name: Linux Kernel Image
Created: 2010-01-17 12:32:03 UTC
Image Type: ARM Linux Kernel Image (gzip compressed)
Data Size: 1524644 Bytes = 1.5 MB
Load Address: 30008000
Entry Point: 30008000
Verifying Checksum ... OK
Uncompressing Kernel Image ... OK

Starting kernel ... (----->여기서 부터 먹통.....)

---------------------------------------------------------------------------------
<bootp>의 상황은 아래와 같습니다.


MINI2440 # tftpboot 192.168.11.103 uImage
dm9000 i/o: 0x20000300, id: 0x90000a46
DM9000: running in 16 bit mode
MAC: 08:08:11:18:12:27
TFTP from server 192.168.11.103; our IP address is 192.168.11.192
Filename 'uImage'.
Load address: 0x192
Loading: T #################################################################
#################################################################
#################################################################
#################################################################
######################################
done
Bytes transferred = 1524708 (1743e4 hex)
MINI2440 # (----->다음 실행방법이 없음.... 부팅이 되어야할 것 같은데...)


현재까지, 리눅스 커널빌드, U-boot 빌드까지했는데, U-boot에서의 부팅이 아직 안되고 있습니다.
Supervivi에서는 그냥 USB로 램디스크에 올려서 실행되는 것을 확인 했습니다만,
U-Boot가 힘들긴 힘든 것 같습니다.