이 단원의 목적
이미지 파일 준비
EZBOOT모드로 부팅
타겟보드로 커널이미지[zImag]와 램디스크[ramdisk.gz] 다운로드
타겟보드의 FALSH에 커널 이미지 올리기
타겟보드의 FALSH에 램디스크 이미지 올리기
타겟보드의 리눅스 구동
SDRAM에 커널과 램디스크 이미지 올리는 방법
리눅스에 zmodem 설치하기
타겟 보드에서 리눅스를 실행하기 위해서는 리눅스 커널과 실행에 필요한 파일들을 타겟보드에 설치해 주어야 합니다. 타겟보드는 개발 호스트에서 전송해 준 리눅스 커널 압축파일을 부팅할 때 마다 풀기를 하여 리눅스 커널을 완성합니다.
또한 타겟 보드에서는 개발 호스트에서 전송해 준 램 디스크 이미지 압축 파일을 이용하여 하드디스크처럼 램에 디스크 드라이브를 설치합니다.
이번 단원에서는 Linux에서 타겟보드로 리눅스 커널 이미지와 램 디스크 이미지 파일을 설치한 후 타겟 보드를 리눅스로 부팅하는 방법을 알아 보겠습니다.
EZ보드와 함께 동봉된 CD 안에 리눅스를 구동하기 위한 이미지 파일이 들어 있습니다. 타겟보드인 EZ보드에 파일을 설치하기 전에 작업의 편리를 위해 CD 안에 있는 파일을 리눅스가 설치된 PC에 복사를 하겠습니다.
리눅스 PC로 파일을 복사하기 위해 EZ보드의 CD를 마운트합니다.\
]# mount /dev/dcdrom /mnt/cdrom mount: block device /dev/cdrom is write-protected, mounting read-only 리눅스 설치 본에 따라 /mnt/cdrom이 없는 경우가 있습니다. CentOS 같은 경우 /mnt/cdrom 대신에 /media 가 사용됩니다. 그러므로 /media로 마운트합니다. ]# mount /dev/dcdrom /media mount: block device /dev/cdrom is write-protected, mounting read-onlyCD롬의 이미지 파일을 /tmp/image로 복사합니다.
]# cp -a /mnt/cdrom/sw/image /tmpEZ 보드에 따라 복사할 디렉토리는 아래와 같습니다.
타겟보드 CD에서 복사할 Image 파일 EZ-PXA270 /image 안의 모든 파일 EZ-AU1200 /image 안의 모든 파일 EZ-S3C2440 /image 안의 모든 파일
EZ-X5 /sw/image 안의 모든 파일
복사된 여러 개의 파일 중에 아래의 파일은 반드시 있어야 합니다.
- zImage.xxxx // xxx 부분은 타겟 보드 제품명
- ramdisk-***-##M.gz // *** 는 버전정보를, ##은 램디스크의 크기를 나타냅니다.
EZ 보드별 이미지 파일의 이름은 아래와 같습니다.
타겟보드 이미지 파일 이름 EZ-PXA270
zImage.ez-pxa270 : 프레임 버퍼 설정이 없는 커널 이미지 zImage.ez-pxa270-480x272 : 480x272 LCD 사용을 위한 커널 이미지 zImage.ez-pxa270-640x480 : 640x480 LCD 사용을 위한 커널 이미지 ramdisk-1.10-12M.gz : 12M 크기 램 디스크 ramdisk-1.11-16M.gz : 16M 크기 램 디스크 EZ-AU1200 zImage.ez-au1250
ramdisk-1.10-16M-mipsel.gzEZ-S3C2440 zImage.ez-s3c2440
ramdisk-1.10-12M.gzEZ-X5 zImage.x5
ramdisk.x5-12M.gz
minicom을 이용하여 타겟보드와 연결한 후 이미지 파일을 타겟보드로 전송하겠습니다. 타겟보드에 프로그램을 전송하여 설치하기 위해서는 타겟보드를 EZBOOT 모드로 부팅하셔야 합니다.
- 리눅스가 설치된 PC와 타겟보드의 콘솔포트를 시리얼 케이블로 연결합니다.
- 리눅스에서 minicom을 실행합니다.
- 타겟보드에 전원을 인가하시거나 리셋 버튼을 클릭하십시오.
- minicom에 부팅 메시지가 출력됩니다. 부팅 중에 아래와 같이 BOOT-MENU로 이동할 수 있는 대기 상태가 되면 [스페이스 바] 키를 눌러 EZBOOT모드로 변경합니다.
Quickly Autoboot [ENTER] / Goto BOOT-MENU press [space bar].....
- 보드별 부팅화면은 아래와 같습니다.
▶ EZ-PXA270 부팅화면입니다.
WELCOME EZBOOT V2.2.49 (FALINUX Co.,Ltd) ..........PXA270(EZ-PXA270) Program by You Young-chang, Oh Jae-Kyoung, Jang Hyung-Gi Last Modify May 27 2008 Detect ES29LV400_B Flash : vid=4A pid=22BA SIZE 4-Mbits [512-Kbytes] 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]. AX88796B MAC : [ 00 FA 08 25 00 06 ] AX88796B_Init : OK! Quickly Autoboot [ENTER] / Goto BOOT-MENU press [space bar]...▶ EZ-AU1200 부팅화면입니다.
1235 WELCOME EZBOOT V2.2.48 (FALINUX Co.,Ltd) ..........AU1250(EZ-AU1250) Program by You Young-chang, Oh Jae-Kyoung, Jang Hyung-Gi Last Modify Apr 18 2008 Detect EON29LV400_B Flash : vid=7F pid=22BA SIZE 4-Mbits [512-Kbytes] Detect Samsung NAND 128M 3.3V 8 bit Flash : vid=EC pid=F1 SIZE 128-Mbytes (page=2048, block=128K) Quickly Autoboot [ENTER] / Goto BOOT-MENU press [space bar]...▶ EZ-S3C2440 부팅화면입니다.
0123B WELCOME EZBOOT V2.2.47 (FALINUX Co.,Ltd) ..........S3C2440(EZ-S3C2440) Program by You Young-chang, Oh Jae-Kyoung, Jang Hyung-Gi Last Modify Nov 14 2007 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]...▶ EZ-X5 부팅화면입니다.
WELCOME EZBOOT.X5 V1.7...................for PXA255 Program by You Young-chang, fooji (FALinux Co.,Ltd) Last Modify 2004.11.17 Boot Flash Check ...................... Detect AM29LV400 (BOTTOM)Flash : 22BA SIZE 4M-BIT [512Kbyte] NAND Chip Check ....................... Detect SAMSUNG [ec:76] 64MByte BAD BLOCK SCAN -> Kernel, Ramdisk Bad Block [0] CS8900 Init............................ Mac Address : [00 A2 75 F2 36 3A] Detect value : [3000:3000] Chip ID : [0E63:000A] Quickly Autoboot [ENTER] / Goto BOOT-MENU press [space bar].....
타겟보드로 커널이미지[zImag]와 램디스크[ramdisk.gz] 다운로드
타겟 보드인 EZ보드로 파일을 전송하기 위해서는 시리얼 연결 뿐만 아니라 이더넷을 함께 연결하여 LAN을 통해 파일을 전송할 수 있습니다만 이 문서에서는 시리얼 케이블만 사용 전송하도록 하겠습니다.
리눅스를 실행하기 위한 이미지 파일은 타겟보드의 FLASH영역 또는 메모리에 설치할 수 있으며 설치 장소에 따라 아래와 같은 특징과 차이가 있습니다.
- FLASH
FLASH는 내용을 직접 지우기 전까지는 저장된 내용을 계속 유지합니다.- 메모리
전원이 꺼지거나, RESET 스위치를 누르면 저장된 내용이 지워집니다.즉, 파일 전송은 위 두 가지 중 한가지를 선택하여 다운로드하면 됩니다만 메모리로 다운로드하는 경우에는 전원을 ON할 때마다 매번 다시 다운로드 해 주어야 합니다.
EZBOOT모드에서 커널 이미지를 EZ 보드에 올리기 전에 EZBOOT모드의 도움말부터 보겠습니다.
help 명령 : 도움말을 출력합니다.
Quickly Autoboot [ENTER] / Goto BOOT-MENU press [space bar].. EZBOOT>help Memory dump : MD, MWB, MWW, MWL Download by ZModem : ZFB, ZFK, ZFR, ZMK, ZMR, ZF, ZM Download by TFTP : TFB, TFK, TFR, TMK, TMR, TF, TM Copy : MFK, MFR, FMK, FMR Erase Partition : NEK, NER, NEA Network : ARP, PING System : RST, GK, GO Confiruation : SET More Help : HELP [cmd] EZBOOT>파일을 시리얼 케이블로만 전송할 것이므로 [Download by ZModem] 행에 있는 명령을 이용합니다. ZModem을 이용하는 명령 중에 커널을 전송하는 ZFK를 이용합니다.
zfk 명령
- Z : 시리얼 케이블을 통해서 Z-모뎀 프로토콜을 이용하여 전송
- F : 목적지는 플래시
- K : 전송 대상은 커널 이미지
타겟보드로 전송하기 위하여 minicom에서 "zfk"를 입력한 후 엔터키를 누릅니다. zfk명령을 실행하면 타겟보드는 이미지 파일을 받기 위해 대기 상태가 됩니다.
이렇게 대기 상태가 되면 minicom에서 zmodem을 실행하여 파일을 전송해야 합니다. zmodem을 실행하기 위해 [Ctrl-A], [S] 키를 차례로 누릅니다.
[Upload] 메뉴가 출력되면 키보드의 화살표 키를 이용하여 [zmodem] 선택한 후 [Enter]키를 누릅니다. 이후에 zmodem으로 전송할 파일을 선택하는 [Select one of more files for upload] 가 출력됩니다.
전송할 파일이 있는 /tmp/image 디렉토리로 이동하기 위해서는 키보드의 위 또는 아래 화살표키로 디렉토리에 캐롯을 위치하신 후 [스페이스바] 키를 두번 눌러서 디렉토리 안 또는 밖으로 이동합니다.
키보드의 위 또는 아래 화살표 키를 이용하여 전송할 커널 이미지 파일, zImage.xxx 로 캐롯을 이동한 후 [스페이스바] 키를 한 번 눌러서 선택합니다.
EZ 보드별 커널 이미지는 아래와 같습니다.
EZ보드 커널 이미지 파일 이름 EZ-PXA270
zImage.ez-pxa270 : 프레임 버퍼 설정이 없는 커널 이미지 zImage.ez-pxa270-480x272 : 480x272 LCD 사용을 위한 커널 이미지 zImage.ez-pxa270-640x480 : 640x480 LCD 사용을 위한 커널 이미지 EZ-AU1200 zImage.ez-au1250 EZ-S3C2440 zImage.ez-s3c2440
EZ-X5 zImage.x5
파일이 선택된 상태에서 [엔터키]를 누르면 전송이 시작됩니다.
전송이 완료되면 "READY: press any key to continue..." 문자열이 출력됩니다. 아무키나 눌러 전송을 종료합니다.
정상적으로 작업이 완료되면 아래와 같이 에러없이 EZBOOT 모드의 프롬프트가 출력됩니다.
이번에는 램디스크 이미지를 올리도록 하겠습니다. 방법은 커널이미지와 같은 방법이며 EZBOOT에서의 명령은 ZFR입니다.
전송하는 램디스크 이미지는 EZ보드에 따라 아래와 같습니다.
EZ보드 램디스크 이미지 파일 이름 EZ-PXA270 ramdisk-1.10-12M.gz
ramdisk-1.11-16M.gzEZ-AU1200 ramdisk-1.10-16M-mipsel.gz EZ-S3C2440 ramdisk-1.10-12M.gz
EZ-X5 ramdisk.x5-12M.gz
ZFR 명령에 의해 램디스크 이미지가 성공적으로 전송이 되었다면 에러없이 전송이 완료되면서 EZBOOT모드의 프롬프트가 출력됩니다.
EZBOOT>zfk ?ZModem Resive Size 736880 Erase : OK Write : OK Verify: OK EZBOOT>zfr ?ZModem Resive Size 2888098 Erase : OK Write : OK Verify: OK EZBOOT>
타겟보드에 커널 이미지와 램디스크이미지를 전송했다면 타겟보드를 리눅스로 부팅하여 리누스를 구동할 수 있습니다.
- 현재 EZBOOT 모드라면 rst 명령을 실행합니다.
- 또는 전원을 껏다가 다시 켜시거나
- 리셋 버튼을 눌러 주십시오.
타겟보드에 정상적으로 파일이 전송되었다면 minicom에 부팅 메시지와 함께 로그인 메시지가 출력됩니다.
▶ EZ-PXA270 부팅화면입니다.
WELCOME EZBOOT V2.2.49 (FALINUX Co.,Ltd) ..........PXA270(EZ-PXA270) Program by You Young-chang, Oh Jae-Kyoung, Jang Hyung-Gi Last Modify May 27 2008 Detect ES29LV400_B Flash : vid=4A pid=22BA SIZE 4-Mbits [512-Kbytes] Detect Samsung NAND 64M 3.3V 8-bit Flash : vid=EC pid=76 SIZE 64-Mbytes (page=512, block=16K) ... Copy Kernel Image ..... Copy Ramdisk Image ..... Starting kernel [MARCH 3003]... kernel command [EZBOOT mem=64M initrd=0xA0800000,5M ... 중간 생략 ... INIT: version 2.86 booting INIT: Entering runlevel: 3 yaffs: dev is 32505858 name is "mtdblock2" yaffs: passed flags "" yaffs: Attempting MTD mount on 31.2, "mtdblock2" yaffs: auto selecting yaffs1 /usr/local/apache/bin/apachectl start: httpd started Starting system logger: [ OK ] eth0 Link mode : 100 Mb/s Duplex mode. Starting INET services: [ OK ] Welcome to FALinux (www.falinux.com) Linux Kernel 2.6.21-falinux falinux login:▶ EZ-AU1200 부팅화면입니다.
1235 WELCOME EZBOOT V2.2.48 (FALINUX Co.,Ltd) ..........AU1250(EZ-AU1250) Program by You Young-chang, Oh Jae-Kyoung, Jang Hyung-Gi Last Modify Apr 18 2008 Detect EON29LV400_B Flash : vid=7F pid=22BA SIZE 4-Mbits [512-Kbytes] Detect Samsung NAND 128M 3.3V 8 bit Flash : vid=EC pid=F1 SIZE 128-Mbytes (page=2048, block=128K) ... Copy Kernel Image ..... Copy Ramdisk Image ..... Starting kernel ... kernel command [EZBOOT mem=128M rd_start=0x80800000 rd_size=5M root=/dev/ram0 ramdisk=16384 console=ttyS0,115200 video=au1200fb:panel:11 ip0=192.168.10.147 mac=00:FA:01:A2:33:15 netmask=255.255.255.0 gw=192.168.10.1 host=192.168.10.28 nandparts=1,8,119 ] loaded at: 80008000 801B9000 relocated to: 80D00000 80EB1000 zimage at: 80D06130 80EB0543 ... 중간 생략 ... INIT: version 2.86 booting INIT: Entering runlevel: 3 yaffs: dev is 32505858 name is "mtdblock2" yaffs: passed flags "" yaffs: Attempting MTD mount on 31.2, "mtdblock2" Starting system logger: [ OK ] Starting INET services: [ OK ] eth0 Link mode : 100 Mb/s Duplex mode. Welcome to FALinux (www.falinux.com) Linux Kernel 2.6.21-falinux falinux login:▶ EZ-S3C2440 부팅화면입니다.
WELCOME EZBOOT V2.2.47 (FALINUX Co.,Ltd) ..........S3C2440(EZ-S3C2440) Program by You Young-chang, Oh Jae-Kyoung, Jang Hyung-Gi Last Modify Nov 14 2007 Detect Samsung NAND 64M 3.3V 8-bit Flash : vid=EC pid=76 SIZE 64-Mbytes (page=512, block=16K) ... Copy Kernel Image ..... Copy Ramdisk Image ..... Starting kernel [MARCH 3007]... kernel command [EZBOOT mem=64M initrd=0x30800000,5M root=/dev/ram0 ramdisk=12288 console=ttySAC2,115200 ip0=192.168.10.183 mac=00:FA:01:A2:13:04 netmask=255.255.255.0 gw=192.168.10.1 host=192.168.10.27 nandparts=2,8,54 ] Uncompressing Linux.................. ... 중간 생략 ... yaffs: dev is 32505858 name is "mtdblock2" yaffs: passed flags "" yaffs: Attempting MTD mount on 31.2, "mtdblock2" yaffs: auto selecting yaffs1 yaffs: block 44 is marked bad block 45 is bad yaffs: block 2475 is marked bad block 2476 is bad Starting system logger: [ OK ] Starting INET services: [ OK ] Welcome to FALinux (www.falinux.com) Linux Kernel 2.6.21-falinux falinux login:▶ EZ-X5의 부팅화면입니다.
WELCOME EZBOOT.X5 V1.7...................for PXA255 Program by You Young-chang, fooji (FALinux Co.,Ltd) Last Modify 2004.11.17 Boot Flash Check ...................... Detect AM29LV400 (BOTTOM)Flash : 22BA SIZE 4M-BIT [512Kbyte] NAND Chip Check ....................... Detect SAMSUNG [ec:76] 64MByte BAD BLOCK SCAN -> Kernel, Ramdisk Bad Block [0] CS8900 Init..................... Mac Address : [00 A2 75 F2 36 3A] Detect value : [3000:3000] Chip ID : [0E63:000A] Quickly Autoboot [ENTER] / Goto BOOT-MENU press [space bar]..... Copy Kernel Image ..... Copy Ramdisk Image ..... ... 중간 생략 ... VFS: Mounted root (ext2 filesystem) readonly. Freeing init memory: 64K INIT: version 2.84 booting INIT: Entering runlevel: 3 yaffs: dev is 7938 name is "1f:02" Starting system logger: syslogd Starting INET services: inetd Welcome to FALinux EZ-X5 ( www.falinux.com ) XScale(PXA255) Linux ez-x5 login:
SDRAM에 커널과 램디스크 이미지를 올리는 방버은 위의 플래시에 올리는 방법과 동일하며, 다만 사용하는 명령만 아래와 같이 차이만 있을 뿐입니다.
- ZMK : 커널 이미지 다운로드 명령어
- ZMR : 램디스크 이미지 다운로드 명령어
zmodem 전송을 실행했지만 전송은 되지 않고 화면만 복귀된다면 리눅스에 zmodem이 설치되어 있지 않기 때문입니다. zmodem을 설치하시려면 우분투에서는 sudo 를 사용하십시오.
#sudo apt-get install lrzsz레드햇 계열에서는 yum을 이용하시면됩니다.
]# yum install lrzsz Loading "installonlyn" plugin Setting up Install Process Setting up repositories extras 100% |=========================| 1.1 kB 00:00 updates 100% |=========================| 951 B 00:00 base 100% |=========================| 1.1 kB 00:00 addons 100% |=========================| 951 B 00:00 Reading repository metadata in from local files Parsing package install arguments Resolving Dependencies --> Populating transaction set with selected packages. Please wait. ---> Downloading header for lrzsz to pack into transaction set. lrzsz-0.12.20-22.1.i386.r 100% |=========================| 5.4 kB 00:00 ---> Package lrzsz.i386 0:0.12.20-22.1 set to be updated --> Running transaction check Dependencies Resolved ============================================================================= Package Arch Version Repository Size ============================================================================= Installing: lrzsz i386 0.12.20-22.1 base 81 k Transaction Summary ============================================================================= Install 1 Package(s) Update 0 Package(s) Remove 0 Package(s) Total download size: 81 k Is this ok [y/N]: y Downloading Packages: (1/1): lrzsz-0.12.20-22.1 100% |=========================| 81 kB 00:00 Running Transaction Test Finished Transaction Test Transaction Test Succeeded Running Transaction Installing: lrzsz ######################### [1/1] Installed: lrzsz.i386 0:0.12.20-22.1 Complete! ]#이렇게 zmodem을 설치하신 후 다시 전송을 시도하여 보십시오.