강좌 & 팁
보드 준비 및 부트로더 확인
자.. 재수가 있는지 확인해 봅시다.
보드에 커널을 올려서 제대로 돌아 가면 복권 당첨 된거고, 안 돌아 가면 당연한 겁니다.
우선 보드를 준비해야 겠죠?
EZ-S2410은 다음과 같이 생겼죠..
[A007_001_EZ_S2410.jpg]
잘 생겼죠? (큼… 자기 자식 자랑하면 팔불출이라는데 )
근데 제가 가지고 있는 보드는 좀 너덜 너덜 하군요..
USB 호스트 쪽이 안 된답니다.
아하 짠돌이 생산팀… .
새거 주지..
시험을 하기 위해서
전원과 아답터 연결하고 , 시리얼 포트 연결 하고 , 이더넷 연결합니다.
그리고 전원 올려서 부팅 메시지를 봅니다.
제가 가진 S3C2410 부트로더 버전은 아래 부팅 메세지에서 볼수 있습니다.
일단 이 부분이 저하고 비슷해야 겠죠?
그래야
S3C2410 에 대하여 저와 동일하게 진행할 수 있지 않을까요?
뭐 각자의 길을 가자면 가지요..
전 손해 볼 것 없습니다.
어찌되었든…
부팅하면 다음과 같은 메시지가 나옵니다.
WELCOME EZBOOT V1.4 (FALINUX Co.,Ltd) ..........for EZ-S2410
Program by You Young-chang, Oh Jae-Kyoung
Modified by Park Mun-Sik, Jang Hyung-Gi
Last Modify Apr 6 2007
NAND Chip Check .......................
NAND Maker ID [EC] NAND Size ID [76]
Detect SAMSUNG [ec:76] 64MByte
BAD BLOCK SCAN ->
BootLoader, Kernel, Ramdisk Bad Block [1]
CS8900 Init............................
Mac Address : [00 A2 55 F2 26 35]
Detect value : [3000:3000]
Chip ID : [0E63:0009]
Quickly Autoboot [ENTER] / Goto BOOT-MENU press [space bar]..
EZBOOT>
헉! 버전이 V1.4 라고 나오네요
어허허…
최근 이지부트가 2.0인데.. 이게 언제적 부트로더여?
일단 부트로더부터 업그레이드 해야 겠네요..
제가 그랬죠?
이 글들은 강좌가 아니라고
제가 진행해 가는 과정을 그래로 보여 주는 거라고..
자~~
부트로더 업그레이드 한번 해 봅시다.
이지부트 2.0으로 업그레이드
이지부트는 사실 내부적인 소스가 있고 외부적 소스가 있습니다.
하하하.. 완전한 공개는 힘들죠… ^^;
업체에서 요구한 부분들이나 저희 회사 나름대로 사전 진행하는 과정에서 발생한 소스들이 있는데 이것들은 공개 하기가 곤란하죠.
그래도 웬만한 것은 모두 다 공개해 갑니다. 감추고 있는 것은 1%로도 되지 않습니다.
어찌되었든
부트로더를 다운해야 겠죠?
부트로더가 어디있죠?
예 저희 회사 이지부트로더는 여기서 다운 받습니다.
이걸 다운로드 받아 보겠습니다. 외부에서 관리해야 하기 때문에 colinux 상에서
/project/ezboot_outsize/
라고 하는 디렉토리를 만들고 여기에 다운 받도록 하겠습니다.
[root@localhost ezboot_outside]# wget http://ftp.falinux.com/ezboot/recommendation/ezboot.tar.gz
--2009-05-10 02:57:58-- http://ftp.falinux.com/ezboot/recommendation/ezboot.tar.gz
Resolving ftp.falinux.com... 211.239.155.99
Connecting to ftp.falinux.com|211.239.155.99|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 291184 (284K) [application/x-gzip]
Saving to: `ezboot.tar.gz'
100%[=======================================================>] 291,184 --.-K/s in 0.08s
2009-05-10 02:57:58 (3.47 MB/s) - `ezboot.tar.gz' saved [291184/291184]
[root@localhost ezboot_outside]#
워낙 소스가 작기 때문에 금방 받습니다.
이제 압축을 풀어 봅시다.
다음과 같은 명령을 사용합니다.
[root@localhost ezboot_outside]# tar zxvf ezboot.tar.gz
이제 ezboot란 디렉토리가 생겼을 겁니다.
여기로 이동합니다.
[root@localhost ezboot_outside]# cd ezboot
[root@localhost ezboot]# ls
Makefile arch_pxa255 ez-au1250_make.sh ez-pxa270_make.sh image
arch_au1250 arch_pxa270 ez-ep9312_make.sh ez-s3c2440_make.sh include
arch_ep9312 arch_s3c2440 ez-pxa255_make.sh ez-x5_make.sh main
[root@localhost ezboot]#
허걱~
S3c2410 이 없습니다.
오마이 갓….
어쩐지 수 많은 고객들이 난리더구만.. 허허…
어떻게 2410이 없을 수 있죠?
이번에 심각하게 반성해야 겠군요..
그렇다면 긴급 패치에 들어가야 하는데..
흠.. , 에혀… , 어떻게 해야 하나..
고민 고민…
(**) 여기서부터
(**) 여기까지 글을 쓰는 사이에 약간의 시간이 흘렀습니다. ^^
짜잔!
다음과 같은 EZ-S3C2410 추가된 파일을 FTP 에 올렸습니다.
ftp://ftp.falinux.com/ezboot/history/2009_05_10/ezboot-yyc.tar.gz
이것은 공식적인 버전이 아닙니다
나중에 개발팀에서 공식적인 버전을 올려 놓겠죠?
수정된 파일을 다운 로드 받은 후 앞에서와 동일한 방법으로 압축을 풉니다.
그리고 컴파일 합니다.
이지부트 소스는 make 를 직접 사용하지 않고 몇가지 설정이 필요해서 이것을 쉘 스크립트로 만들었습니다.
그래서 다음과 같이 컴파일 해야 합니다.
[root@localhost ezboot]# ./ez-s3c2410_make.sh clean
[root@localhost ezboot]# ./ez-s3c2410_make.sh
./ez-s3c2410_make.sh clean 이 명령은 처음 한번만 하면 됩니다.
소스가 수정되면 ./ez-s3c2410_make.sh 이면 충분합니다.
이 처리 결과 다음과 같이 마지막에 메시지가 나오면 성공한 겁니다.
dd if=arch_s3c2410/start/start_org of=image/ezboot.ez-s3c2410 bs=1k conv=sync
1+1 records in
2+0 records out
2048 bytes (2.0 kB) copied, 0 s, Infinity B/s
dd if=main/main_org of=image/ezboot.ez-s3c2410 bs=1k seek=4
54+1 records in
54+1 records out
56128 bytes (56 kB) copied, 0 s, Infinity B/s
chmod 777 image/ezboot.ez-s3c2410
[root@localhost ezboot]#
부트로더 이미지는 image/ezboot.ez-s3c2410에 생겼습니다
그렇다면 이걸 tftp 프로토콜로 다운로드 받을 수 있겠 끔 옮겨야 겠죠?
자 이제 모두 끝났습니다.
다시 보드의 시리얼 에뮬레이터로 가 봅시다.
set 명령을 사용해서 컴파일된 부트로더를 받기 위한 환경 설정을 합니다.
^^;
1. MAC Address [00:a2:55:f2:26:35]
2. LOCAL IP [192.168.102.101]
3. HOST IP [192.168.10.61]
4. Host tftp directory []
5. zImage file name [zImage.s2410]
6. ram disk file name [ramdisk-12M.gz]
7. boot loader file name [ezboot.ez-s3c2410]
A. Autoboot wait time [3]
B. Boot Menu Key [ ]
C. Copy Ramdisk [Y/N] [Y]
D. Architecture Number [784]
E. Console Serial Number [2]
F. NAND-Partition MByte [2:5:57] (kernel:ramdisk:app)
W. Watchdog (sec, off=0) [0]
K. Kernel CMD 1st [initrd=0x30800000,5M root=/dev/ram0 ramdisk=12288]
M. Kernel CMD 2nd [console=ttySAC2,115200]
N. Kernel CMD 3rd []
L. Load Default
P. Apply & Exit
S. Save
0. Exit
Select >>
확인해봐야 하는 항목은 2번,3번,7번입니다.
tfb 명령을 통해서 다운받고 부트로더 이미지 받고
EZBOOT>tfb
Receive ezboot.ez-s3c2410
Send ARP Packet
Send ARP Packet
ARP PACKET Resive
HOST MAC : [ 00 FF A7 1F 64 00 ]
HOST IP : [192.168.10.61]
LOCAL IP : [192.168.102.101]
Resive Address : 3100-0000
TFTP Request Send
OPTION [timeout 120 tsize 60224]
ALL DATA RESIVE OK [ 60224 bytes ]
Erase : OK
Write : OK
Verify: OK
EZBOOT>
rst 명령을 통해서 보드 리부팅 합니다.
EZBOOT>rst
System Soft Reset.......
0123B
WELCOME EZBOOT V2.3.04 (FALINUX Co.,Ltd) ......S3C2410(EZ-S3C2410) (266MHz)
Program by You Young-chang, Oh Jae-Kyong, Jang Hyung-Gi
Last Modify May 10 2009
Detect Samsung NAND 64M 3.3V 8-bit Flash : vid=EC pid=76
SIZE 64-Mbytes (page=512, block=16K)
ff ff ff : a5 a5 97
ecc correct addr=0x00100000
ecc fail addr=0x00100200
ff ff ff : 6a 99 97
ecc fail addr=0x00100400
ecc fail addr=0x00100600
ff ff ff : 56 69 6b
ecc fail addr=0x00100800
:
:
ff ff ff : 96 96 9b
ecc fail addr=0x00107800
ecc fail addr=0x00107a00
ecc fail addr=0x00107c00
ecc fail addr=0x00107e00
diff magic [flash:20081103]
Quickly Autoboot [ENTER] / Goto BOOT-MENU press [space bar]..
CS8900 Init ......
Mac Address : [00 FA 01 A2 13 04]
Detect value : [3000:3000]
Chip ID : [0E63:0009]
EZBOOT>
이때 ecc fail 이라는 글자가 나온다고 당황하지 마시기 바랍니다.
이전 버전의 부트로더에서 ECC 체크를 하지 않았는데
2.0에서부터 ecc 체크를 하도록 했기 때문에 발생하는 것입니다.
일단은 set 명령을 사용해서
^^;
1) mac address : 00:FA:01:A2:13:04
2) local ip : 192.168.102.101
3) local netmask : 255.255.0.0
4) local gateway : 192.168.10.1
5) server ip : 192.168.10.61
6) zImage file name : zImage.ez-s3c2410
7) ram disk file name : ramdisk-1.11-16M.gz
8) boot loader file name : ezboot.ez-s3c2410
9) logo image file name :
10) auto execute full name :
11) autoboot wait time : 3
12) copy ramdisk [Y/N] : Y
13) arm kernel arch number : 3006
14) nand part (B,C,L,K,R,A): 1,1,0,3,5,54
15) watchdog (sec, off=0) : 0
16) KCMD 1 : mem=64M
17) KCMD 2 : initrd=0x30800000,5M root=/dev/ram0 ramdisk=16384
18) KCMD 3 : console=ttySAC2,115200
19) KCMD 4 :
20) KCMD 5 :
21) KCMD 6 :
L) Load default
LF) load KCMD2 root=flash
LR) load KCMD2 root=ramdisk
M) generlate Mac address
S) Save to flash
P) aPply & exit
Q) Quit
Select >>
일단 자신의 네트워크 상황에 맞도록 2,3,4,5 항을 수정하십시오 위 예시는 제 보드의네트워크 설정입니다.
그리고 환경 저장을 하시고
tfb 명령을 수행하셔서 다시 한번 부트로더를 받습니다.
그리고
rst 명령을 사용하거나 전원을 껐다가 켜서 다시 보드를 부팅 시킵니다.
EZBOOT>rst
System Soft Reset.......
EZBOOT>0123B
WELCOME EZBOOT V2.3.04 (FALINUX Co.,Ltd) ......S3C2410(EZ-S3C2410) (266MHz)
Program by You Young-chang, Oh Jae-Kyong, Jang Hyung-Gi
Last Modify May 10 2009
Detect Samsung NAND 64M 3.3V 8-bit Flash : vid=EC pid=76
SIZE 64-Mbytes (page=512, block=16K)
Quickly Autoboot [ENTER] / Goto BOOT-MENU press [space bar].
CS8900 Init ......
Mac Address : [00 FA 01 A2 13 04]
Detect value : [3000:3000]
Chip ID : [0E63:0009]
EZBOOT>
보시는 바와 같이 깔끔하게 정리 됩니다. 하하
자 이제 부트로더를 업그레이드 했습니다.
이제 커널만 올리면 됩니다. 음하하하
음...이제부턴 보드가 없는 관계상 따라 하기 힘들겠군요 ㅠ_ㅠ