AHAV9302를 reset하면 u-boot로 부팅을 시작하지만 리눅스가 부팅되지는 않는다. 왜냐하면, uImage, rImage를 지워버렸기 때문이다. 엄마 몰래 리눅스 포팅 강좌에 보면 tftp로 다운받는 방법이 나온다. 물론 그 방법이 편리하고 속도도 빠르기 때문에 권장을 하고 있다. 하지만 본인은 마이너한 걸 좋아하므로 시리얼 다운로드를 해보도록 한다.

u-boot의 문서를 확인해 본 결과 C-Kermit를 사용하기에 본인도 동일한 프로그램을 설치하여 사용하였다. http://www.denx.de/wiki/view/DULG/SystemSetup#Section_4.3. 에 보면 설정법이 나와 있다. 자신의 환경에 맞게 동일하게 설정한다. 본인의 설정을 보자면 ~/.kermrc 부분에서 set line /dev/ttyUSB0을 수정하였다.

1. $kermit
2. C-Kermit>connect
보드랑 PC를 연결한다(minicom과 같은 역할)
프로그램을 실행하여 기본적인 환경을 셋팅한다.
AHAV9302> setenv baudrate 115200
AHAV9302> setenv hostname apple
AHAV9302> setenv bootdelay 3
AHAV9302> setenv ethaddr 00:60:6E:F0:00:02
AHAV9302> setenv ipaddr 192.168.100.182
AHAV9302> setenv netmask 255.255.255.0
AHAV9302> setenv gatewayip 192.168.100.254
AHAV9302> setenv dnsip 203.255.112.34
AHAV9302> setenv dnsip2 192.135.250.69
AHAV9302> setenv serverip 192.168.100.250
AHAV9302> setenv bootfile "uImage"
AHAV9302> setenv kfaddr 0x60100000
AHAV9302> setenv rfaddr 0x60300000
AHAV9302> setenv kraddr 0xc3000000
AHAV9302> setenv rraddr 0xc2000000
AHAV9302> setenv iraddr 0xc0800000
AHAV9302> setenv bootargs console=ttyAM0,$(baudrate) root=/dev/ram rw initrd=$(iraddr) ip=$(ipaddr):$(serverip):$(gatewayip):$(netmask):$(hostname)::off init=/sbin/init
AHAV9302> setenv bootcmd 'cp.b $(kfaddr) $(kraddr) $(kisize); cp.b $(rfaddr) $(rraddr) $(risize); bootm $(kraddr) $(rraddr)'

AHAV9302> saveenv

기본적인 환경설정을 마친 뒤, uImage와 rImage를 다운로드 한다.
AHAV9302> protect off 0x60100000 0x602fffff
AHAV9302> erase 0x60100000 0x602fffff
AHAV9302> loadb 0xc0000000
kermit으로 램의 0xc0000000에 저장한다.
CTRL를 누른채 \, c 키 두 개를 순서대로 누르면 kermit 명령모드로 빠진다.
3. C-Kermit>send /bin uImage
램으로 uImage파일을 다운로드한다.
4. C-Kermit>connect
Total Size와 시작 주소를 표시해 준다.
이제 램으로 복사를 한다.
5. AHAV9302> cp.b 0xc0000000 0x60100000 $(filesize)
램의 0xc0000000에서 NOR의 0x60100000으로 파일의 크기만큼 복사한다.
AHAV9302> setenv kisize $(filesize)
AHAV9302> protect on 0x60100000 0x602fffff

AHAV9302> protect off 0x60300000 0x606fffff
AHAV9302> erase 0x60300000 0x606fffff
AHAV9302> loadb 0xc3000000
kermit으로 램의 0xc3000000에 저장한다.
CTRL를 누른채 \, c 키 두 개를 순서대로 누르면 kermit 명령모드로 빠진다.
3. C-Kermit>send /bin rImage
램으로 rImage파일을 다운로드한다.
4. C-Kermit>connect
Total Size와 시작 주소를 표시해 준다.
이제 램으로 복사를 한다.
5. AHAV9302> cp.b 0xc3000000 0x60300000 $(filesize)
램의 0xc3000000에서 NOR의 0x60300000으로 파일의 크기만큼 복사한다.
AHAV9302> setenv risize $(filesize)
AHAV9302> protect on 0x60300000 0x606fffff

AHAV9302> saveenv

AHAV9302> iminfo 0x60100000
AHAV9302> iminfo 0x60300000

AHAV9302> reset

정상적으로 리눅스 부팅까지 된다. 성공적이다.

+ Recent posts