타겟 보드용 커널 만들기
커널 소스 압축 풀기 및 환경 파일 생성
make 기본 설정 파일로 기본 설정 환경 생성
make menuconfig 실행
커널 컴파일하기
커널 이미지 전송 준비
EZ-PXA270에서 커널 이미지 전송
EZ-AU1200에서 커널 이미지 전송
EZ-S3C2440에서 커널 이미지 전송
EZ-X5에서 커널 이미지 전송

타겟 보드용 커널 만들기

이 장에서는 타겟보드용 커널을 만들겟습니다. 제공된 CD에는 타겟보드에서 사용 할 수 있게끔 패치된 커널 소스가 들어 있습니다. EZ-S3C2440의 경우에는 제공된 CD의 모든 패치가 된 커널은 제공된 CD의 /kernel/linux-2.6.21.s3c2440.tar.gz 로 제공됩니다.

제공된 소스를 이용하여 커널을 아래의 순서에 따라 컴파일합니다.

  1. 커널을 컴파일하기 위해서는 /project/falinux/kernel에 압축을 풉니다.
  2. 압축해제가 끝나면 커널 소스 디렉토리가 생성됩니다.
  3. 생성된 디렉토리를 작업의 편리를 위해 /linux 로 링크를 생성합니다.
  4. 커널을 컴파일 합니다.

작업의 편의를 위해 커널 소스를 풀어 놓을 /project/falinux/kernel 디렉토리를 생성합니다.

   // 작업할 디렉토리를 생성합니다.
  
]# mkdir /project
]# mkdir /project/falinux
]# mkdir /project/falinux/kernel
]# cd /project/falinux/kernel/      //  생성한 디렉토리로 이동

커널 소스 압축 풀기 및 환경 파일 생성

EZ보드와 함께 동봉된 CD에 커널 소스가 있습니다. 이 커널 소스를 작업 디렉토리에 압축을 풀고 각 보드에 맞추어 미리 준비된 기본 환경 값을 생성합니다. 또는 (주)FALINUX 자료실에서 제품에 따라 [ToolChain & Ram disk] 링크를 이용하시면 커널 소스를 구하실 수 있습니다.

작업의 편의를 위해 압축 풀기 후 생성된 디렉토리를 linux 로 링크를 생성합니다.

      // cd에 있는 압축 파일을 풀기 위해 CD를 마운트합니다.

]# mount /dev/cdrom /mnt/cdrom

      // 커널 소스를 풀기를 합니다.

]# tar zxvf /mnt/cdrom/kernel/linux-2.6.21.tar.gz

      // linux-2.6.21 디렉토리가 생성됩니다.

]# ln -s linux-2.6.21 linux        // 작업의 편의를 위해 linux로 디렉토리 링크를 생성
]# cd linux                        // 커널 소스 디렉토리로 이동합니다.
]# make distclean                  // 모든 환경 설정 및 컴파일 결과를 삭제
]# make [EZ-보드 모델명]_defconfig        // 미리 준비된 기본 값을 환경값을 생성

// 예에서는 EZ-S3C2440을 소개했습니다만 다른 보는 아래의
// "make 기본 설정 파일로 기본 설정 환경 생성" 내용을 참고하여 주십시오.

make 기본 설정 파일로 기본 설정 환경 생성

당상에서는 개발의 편의를 위해 커널 버전 2.6 이상부터는 하나의 커널 소스로 모든 EZ-보드에 설치할 수 있는 커널을 생성할 수 있도록 준비했습니다. 즉, 하나의 통합된 커널 소스를 가지고, 타겟보드에 필요한 사양에 맞추어 설정값을 작성한 뒤 컴파일하시면 커널 이미지를 생성할 수 있습니다.

그러나 설정값을 처음부터 지정하는 것은 매우 불편하시므로 미리 EZ-보드별로 기본 설정값을 가지고 있는 디폴트 파일을 커널 소스와 함게 제공하고 있습니다.이 파일을 이용하여 기본 설정값을 이용하시면 작업이 수월합니다.

이 기본 파일은 압축이 풀린 장소에 arch 디렉토리에 있으며, arch 디렉토리 안에는 다시 cpu 타입별로 디렉토리가 존재합니다. 이 cpu 디렉토리 안에 configs 디렉토리가 있으며, 다시 이 디렉토리 안에 EZ-보드별로 기본 설정 파일이 준비되어 있습니다.

예로,

EZ-보드 기본 설정 파일
EZ-PXA270 arch/arm/configs/ezpxa270_defconfig
EZ-AU1200 arch/mips/configs/emau1200_defconfig
EZ-S3C2440 arch/arm/configs/ezs3c2440_defconfig
EZ-X5 arch/arm/configs/ezx5_defconfig

그러므로 make 를 실행할 때, EZ-보드에 따라 기본설정을 이용하시면 됩니다.

EZ-PXA270 일 경우

]# make distclean                  // 모든 환경 설정 및 컴파일 결과를 삭제
]# make ezpxa270_defconfig        // 미리 준비된 기본 설정 파일로 환경값을 생성

EZ-AU1200 일 경우

]# make distclean                  // 모든 환경 설정 및 컴파일 결과를 삭제
]# make emau1200_defconfig        // 미리 준비된 기본 설정 파일로 환경값을 생성

EZ-S3C2440 일 경우

]# make distclean                  // 모든 환경 설정 및 컴파일 결과를 삭제
]# make ezs3c2440_defconfig        // 미리 준비된 기본 설정 파일로 환경값을 생성

EZ-X5 일 경우

// EZ-X5 커널 2.4d인 경우에는 동봉된 CD에 있는 arm-linux-gcc 버전을 3.2.1로 컴파일하셔야 하며,
// 커널을 제작하는 자센한 방법은 제품과 함께 제공되는 메뉴얼을 참고하여 주십시오.

// 부트로더와 램디스크를 최근의 EZ-S3C2440과 같은 커널 2.6으로 업그레이드 하시면,
// 커널 2.6 보드와 같은 커널 소스를 이용하여 커널 이미지를 생성할 수 있으며,
// 커널 2.6 보드와 같은 방법으로 타겟보드에 전송할 수 있습니다.

make menuconfig 실행

앞서 make [기본 설정 파일] 이용하여 커널에 대한 기본 설정값을 생성했습니다. 그러나 프로젝트의 특성에 따라 하드웨어 구성이 다를 수 있으며, 달라진 하드웨어 구성과 필요에 따라 커널을 재 구성해야될 필요가 있습니다.

이렇게 커널을 다르게 생성할 필요가 있다면 make menuconfig 를 이용하여 설정값을 변경합니다.

]# make menuconfig

make menuconfig를 싫행하면 화면이 바뀌면서 아래와 같이 다양한 메뉴가 출력됩니다.

이 메뉴를 사용하는 방법은 간단합니다. 위/아래 화살표키로 메뉴를 이동하고 하단의 <select> 문자열이 반전되어 있을 때, 엔터키를 누르면 선택한 메뉴에 대해 상세 화면으로 이동합니다.

예로 CPU 타입을 변경해 보겠습니다. CPU를 변경하기 위해서는 [System Type]으로 이동한 후 엔터키를 누릅니다.

현재 Samsung S3C2410 계열이 선택된 상태입니다. 다시 엔터키를 누릅니다.

RiscPC를 선택하고 엔터키를 누릅니다. 현재 게속 <Select>가 반전된 상태임을 참고하여 주십시오.

엔터키 후에 RiscPC로 변경된 것을 보실 수 있습니다.

이제 키보드의 좌/우 화살표 키를 이용하여 <Exit>로 이동한 후 엔터키를 누릅니다. 처음의 메인 메뉴가 출력됩니다. 다시 <exit>를 선택합니다. 그러면 환경 설정 값이 변경되었기 때문에 저장 여부를 확인하는 메시지가 출력됩니다.

<yes>가 반전된 상태에서 엔터키를 누르시면 작업이 완료됩니다.

커널 컴파일하기

커널을 만드릭 위한 작업 완료되었습니다. 커널을 컴파일 합니다.

]# make clean
]# make zImage

에러 없이 컴파일이 끝나면 ./arch/arm/boot 에 zImage가 생성됩니다. 즉, /project/falinux/kernel/linux/ arch/arm/boot 에 zImage 파일이 생성됩니다. 이 이미지 파일을 타켓보드로 전송합니다.

커널 이미지 전송 준비

타겟 보드로 커널 전송은 타겟보드의 부트로더를 이용합니다. 부트로더를 이용하여 커널 이미지를 전송하기 위해서는 개발 호스트의 tftp 서버를 이용해야 합니다. 그러므로 생성된 커널 이미지를 /tftpboot 로 복사합니다.

만일 /tftpboot 디렉토리가 없다면 tftp가 설치되어 있지 않는 것입니다. "10장의 tftp 환경 구축"을 참고하여 tftp 서버를 설치하여 주십시오.

]# mv arch/arm/boot/zImage /tftpboot/zImage

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! EZBOOT>
set <-- set 입력 후 엔터키를 누릅니다. ^^; 1) mac address : 00:FA:08:25:00:06 2) local ip : 192.168.10.95 3) local netmask : 255.255.255.0 4) local gateway : 192.168.10.1 5) server ip : 192.168.10.100 <-- 개발 호스트 IP와 다르다면 수정합니다. 6) zImage file name : zImage.ez-pxa270 <-- 전송될 커널 이미지 파일 이름입니다. 7) ram disk file name : ramdisk-1.10-12M.gz 8) boot loader file name : ezboot.ez-pxa270 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 : 3003 14) nand part (B,C,L,K,R,A): 0,1,0,3,5,55 15) watchdog (sec, off=0) : 0 16) KCMD 1 : mem=64M 17) KCMD 2 : initrd=0xA0800000,5M root=/dev/ram ramdisk=16384 18) KCMD 3 : console=ttyPXA2,115200 19) KCMD 4 : 20) KCMD 5 : 21) KCMD 6 : L) Load default LF) load KCMD2 root=flash LR) load KCMD2 root=ramdisk S) Save to flash P) aPply & exit Q) Quit // 커널 이미지를 가지고 있는 개발 호스트. 즉, 서버 IP가 다를 경우 // 변경하는 방법을 설명드리겠습니다. Select > 5 <-- 서버 IP를 변경하기 위해 5를 입력 후 엔터키를 누릅니다. 05. server ip : 192.168.10.100 new value : 192.168.10.51 <-- 서버 IP 입력 ^^; 1) mac address : 00:FA:08:25:00:06 2) local ip : 192.168.10.95 3) local netmask : 255.255.255.0 4) local gateway : 192.168.10.1 5) server ip : 192.168.10.51 <-- 서버 IP 가 변경되었습니다. 6) zImage file name : zImage.ez-pxa270 <-- 이 이름으로 서버에 커널 이미지를 준비합니다. 7) ram disk file name : ramdisk-1.10-12M.gz 8) boot loader file name : ezboot.ez-pxa270 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 : 3003 14) nand part (B,C,L,K,R,A): 0,1,0,3,5,55 15) watchdog (sec, off=0) : 0 16) KCMD 1 : mem=64M 17) KCMD 2 : initrd=0xA0800000,5M root=/dev/ram ramdisk=16384 18) KCMD 3 : console=ttyPXA2,115200 19) KCMD 4 : 20) KCMD 5 : 21) KCMD 6 : L) Load default LF) load KCMD2 root=flash LR) load KCMD2 root=ramdisk S) Save to flash P) aPply & exit Q) Quit Select >> s <-- s 키와 엔터키로 변경된 내용을 반드시 저장합니다. ...write 32768 complete ...verify complete ...Saved^^; 1) mac address : 00:FA:08:25:00:06 2) local ip : 192.168.10.95 3) local netmask : 255.255.255.0 4) local gateway : 192.168.10.1 5) server ip : 192.168.10.51 6) zImage file name : zImage.ez-pxa270 7) ram disk file name : ramdisk-1.10-12M.gz 8) boot loader file name : ezboot.ez-pxa270 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 : 3003 14) nand part (B,C,L,K,R,A): 0,1,0,3,5,55 15) watchdog (sec, off=0) : 0 16) KCMD 1 : mem=64M 17) KCMD 2 : initrd=0xA0800000,5M root=/dev/ram ramdisk=16384 18) KCMD 3 : console=ttyPXA2,115200 19) KCMD 4 : 20) KCMD 5 : 21) KCMD 6 : L) Load default LF) load KCMD2 root=flash LR) load KCMD2 root=ramdisk S) Save to flash P) aPply & exit Q) Quit Select >> q <-- q와 엔터키로 set 모드를 빠져 나갑니다. EZBOOT> tfk <-- tfk 명령으로 서버로부터 커널 이미지를 내려 받습니다. receive zImage.ez-pxa270 tx ARP rx ARP HOST MAC : 00:0C:29:EB:0B:33 HOST IP : 192.168.10.51 LOCAL IP : 192.168.10.95 option [timeout 120 tsize 1920060] size = 1914880 size = 1920060 ...write 1920060 complete ...verify complete EZBOOT>rst <-- 보드를 재 부팅합니다. System Soft Reset....... EZBOOT> 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 root=/dev/ram ramdisk=16384 console=ttyPXA2,115200 ip0=192.168.10.95 mac=00:FA:08:25:00:06 netmask=255.255.255.0 gw=192.168.10.1 host=192.168.10.51 nandparts=1,8,55 ] Uncompressing Linux........ ....중략... yaffs: dev is 32505858 name is "mtdblock2" yaffs: passed flags "" yaffs: Attempting MTD mount on 31.2, "mtdblock2" yaffs: auto selecting yaffs1 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-AU1200에서 커널 이미지 전송

1235
  
WELCOME EZBOOT V2.2.48 (FALINUX Co.,Ltd) ..........AU1250(EZ-AU1200)
Program by You Young-chang, Oh Jae-Kyoung, Jang Hyung-Gi
Last Modify Apr 25 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]. <--스페이스바를 누릅니다.

  AX88796B MAC  : [ 00 FA 01 A2 33 15 ]
  AX88796B_Init : OK!

EZBOOT>set     <-- set 입력 후 엔터키를 누릅니다.  
^^;
   1) mac address            : 00:FA:01:A2:33:15
   2) local ip               : 192.168.10.71
   3) local netmask          : 255.255.255.0
   4) local gateway          : 192.168.10.1
   5) server ip              : 192.168.10.100    <-- 개발 호스트 IP와 다르다면 수정합니다.
   6) zImage      file name  : zImage.ez-au1250 <-- 전송될 커널 이미지 파일 이름입니다.
   7) ram disk    file name  : mips-3.4.4-ramdisk-1.10-16M-mipsel.gz
   8) boot loader file name  : ezboot.ez-au1250
   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 : 2007
  14) nand part (B,C,L,K,R,A): 0,1,0,3,5,119
  15) watchdog  (sec, off=0) : 0
  16) KCMD 1 : mem=128M
  17) KCMD 2 : rd_start=0x80800000 rd_size=5M root=/dev/ram0 ramdisk=16384
  18) KCMD 3 : console=ttyS0,115200
  19) KCMD 4 : video=au1200fb:panel:11
  20) KCMD 5 : 
  21) KCMD 6 : 

  L)  Load default
      LF) load KCMD2 root=flash
      LR) load KCMD2 root=ramdisk
  S)  Save to flash
  P)  aPply & exit
  Q)  Quit

// 커널 이미지를 가지고 있는 개발 호스트. 즉, 서버 IP가 다를 경우
// 변경하는 방법을 설명드리겠습니다.

  Select > 5   <-- 서버 IP를 변경하기 위해 5를 입력 후 엔터키를 누릅니다.
05. server ip              : 192.168.10.100
  new value : 192.168.10.51   <-- 서버 IP 입력
^^;
   1) mac address            : 00:FA:01:A2:33:15
   2) local ip               : 192.168.10.71
   3) local netmask          : 255.255.255.0
   4) local gateway          : 192.168.10.1
   5) server ip              : 192.168.10.51   <-- 서버 IP 가 변경되었습니다.
   6) zImage      file name  : zImage.ez-au1250  <-- 이 이름으로 서버에 커널 이미지를 준비합니다.
   7) ram disk    file name  : mips-3.4.4-ramdisk-1.10-16M-mipsel.gz
   8) boot loader file name  : ezboot.ez-au1250
   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 : 2007
  14) nand part (B,C,L,K,R,A): 0,1,0,3,5,119
  15) watchdog  (sec, off=0) : 0
  16) KCMD 1 : mem=128M
  17) KCMD 2 : rd_start=0x80800000 rd_size=5M root=/dev/ram0 ramdisk=16384
  18) KCMD 3 : console=ttyS0,115200
  19) KCMD 4 : video=au1200fb:panel:11
  20) KCMD 5 : 
  21) KCMD 6 : 

  L)  Load default
      LF) load KCMD2 root=flash
      LR) load KCMD2 root=ramdisk
  S)  Save to flash
  P)  aPply & exit
  Q)  Quit

  Select >> s      <-- s 키와 엔터키로 변경된 내용을 반드시 저장합니다.
...write 32768  complete
 ...verify complete



  ...Saved^^;
   1) mac address            : 00:FA:01:A2:33:15
   2) local ip               : 192.168.10.71
   3) local netmask          : 255.255.255.0
   4) local gateway          : 192.168.10.1
   5) server ip              : 192.168.10.51
   6) zImage      file name  : zImage.ez-au1250
   7) ram disk    file name  : mips-3.4.4-ramdisk-1.10-16M-mipsel.gz
   8) boot loader file name  : ezboot.ez-au1250
   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 : 2007
  14) nand part (B,C,L,K,R,A): 0,1,0,3,5,119
  15) watchdog  (sec, off=0) : 0
  16) KCMD 1 : mem=128M
  17) KCMD 2 : rd_start=0x80800000 rd_size=5M root=/dev/ram0 ramdisk=16384
  18) KCMD 3 : console=ttyS0,115200
  19) KCMD 4 : video=au1200fb:panel:11
  20) KCMD 5 : 
  21) KCMD 6 : 

  L)  Load default
      LF) load KCMD2 root=flash
      LR) load KCMD2 root=ramdisk
  S)  Save to flash
  P)  aPply & exit
  Q)  Quit

  Select >> q   <-- q와 엔터키로 set 모드를 빠져 나갑니다. 
EZBOOT>  tfk   <-- tfk 명령으로 서버로부터 커널 이미지를 내려 받습니다. 
 receive zImage.ez-au1250
 tx ARP
 rx ARP
 HOST MAC : 00:0C:29:EB:0B:33
 HOST  IP : 192.168.10.51
 LOCAL IP : 192.168.10.71
 option [timeout 120 tsize 1773568]
 size = 1771520
size = 1773582

 ...write 1773582  complete
 ...verify complete

EZBOOT>rst   <-- 보드를 재 부팅합니다. 
System Soft Reset.......
1235

WELCOME EZBOOT V2.2.48 (FALINUX Co.,Ltd) ..........AU1250(EZ-AU1200)
Program by You Young-chang, Oh Jae-Kyoung, Jang Hyung-Gi
Last Modify Apr 25 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.71 mac=00:FA:01:A2:33:15
 netmask=255.255.255.0 gw=192.168.10.1 host=192.168.10.51 nandparts=1,8,119 ]
loaded at:     80008000 801B9000
relocated to:  80D00000 80EB1000
zimage at:     80D06130 80EB0543
Uncompressing Linux at load address 80100000
Now booting the kernel

              ....중략...

Algorithmics/MIPS FPU Emulator v1.5
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에서 커널 이미지 전송

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]..   <-- 스페이스 바를 누릅니다.

  AX88796B MAC  : [ 00 FA 01 A2 13 04 ]
  AX88796B_Init : OK!

EZBOOT> set       <-- set 입력 후 엔터키를 누릅니다.
^^;
   1) mac address            : 00:FA:01:A2:13:04
   2) local ip               : 192.168.10.183
   3) local netmask          : 255.255.255.0
   4) local gateway          : 192.168.10.1
   5) server ip              : 192.168.10.23  <-- 개발 호스트 IP와 다르다면 수정합니다.
   6) zImage      file name  : zImage.ez-s3c2440
   7) ram disk    file name  : ramdisk-1.10-12M.gz
   8) boot loader file name  : ezboot.s3c2440
   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 : 3007
  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=12288
  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
  S)  Save to flash
  P)  aPply & exit
  Q)  Quit

  Select >> 5    <-- 서버 IP를 개발 호스트의 IP와 맞추기 위해 5 입력 후 엔터키를 누릅니다.
05. server ip              : 192.168.10.23
  new value : 192.168.10.50  <-- 개발 호트의 IP로 설정한 후 엔터키를 누릅니다.
^^;
   1) mac address            : 00:FA:01:A2:13:04
   2) local ip               : 192.168.10.183
   3) local netmask          : 255.255.255.0
   4) local gateway          : 192.168.10.1
   5) server ip              : 192.168.10.50   <-- 서버 IP가 개발 호스트 IP로 설정되었습니다.
   6) zImage      file name  : zImage.ez-s3c2440  <-- 이 이름으로 서버에 커널 이미지를 준비합니다.
   7) ram disk    file name  : ramdisk-1.10-12M.gz
   8) boot loader file name  : ezboot.s3c2440
   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 : 3007
  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=12288
  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
  S)  Save to flash
  P)  aPply & exit
  Q)  Quit

  Select >> 

6번 항목을 보시면 개발 호스트로부터 받을 커널 이미지 파일 이름은 zImage.ez-s3c2440입니다. 그러므로 개발 호스트의 /tftpboot 에 있는 커널 이미지 이름을 zImage에서 zImage.ez-s3c2440로 변경하시거나 set 의 6번 메뉴를 선택하여 zImage.ez-s3c2440 를 zImage로 변경하십시오.

설명에서는 개발 호스트의 파일 이름을 변경하겠습니다.

]# mv zImage zImage.ez-s3c2440       // 개발 호스트의 /tftpboot/ 디렉토리에서 이름을 변경

이제 EZBOOT모드에서 커널을 내려 받겠습니다. EZBOOT모드로 돌아 가기 전에 "S"키로 변경된 내용을 저장하겠습니다.

   1) mac address            : 00:FA:01:A2:13:04
   2) local ip               : 192.168.10.183
   3) local netmask          : 255.255.255.0
   4) local gateway          : 192.168.10.1
   5) server ip              : 192.168.10.50
   6) zImage      file name  : zImage.ez-s3c2440
   7) ram disk    file name  : ramdisk-1.10-12M.gz
   8) boot loader file name  : ezboot.s3c2440
   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 : 3007
  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=12288
  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
  S)  Save to flash
  P)  aPply & exit
  Q)  Quit

  Select >> s     <-- s 키로 변경된 내용을 반드시 저장합니다.
...write 32768  complete
 ...verify complete



  ...Saved
  ^^;
   1) mac address            : 00:FA:01:A2:13:04
   2) local ip               : 192.168.10.183
   3) local netmask          : 255.255.255.0
   4) local gateway          : 192.168.10.1
   5) server ip              : 192.168.10.50
   6) zImage      file name  : zImage.ez-s3c2440
   7) ram disk    file name  : ramdisk-1.10-12M.gz
   8) boot loader file name  : ezboot.s3c2440
   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 : 3007
  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=12288
  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
  S)  Save to flash
  P)  aPply & exit
  Q)  Quit

  Select >> q    <--- q 로 set 모드에서 빠져 나갑니다.
EZBOOT>tfk       <--- tfk 명령으로 개발 호스트로부터 커널 이미지를 내려 받습니다.
 receive zImage.ez-s3c2440
 tx ARP
 rx ARP
 HOST MAC : 00:0C:29:70:5F:CD
 HOST  IP : 192.168.10.50
 LOCAL IP : 192.168.10.183
 option [timeout 120 tsize 1868296]
 size = 1868302

 ...write 1868302  complete
 ...verify complete

EZBOOT>rst      <--- rst 명령으로 보드를 재부팅합니다.
System Soft Reset.......
EZBOOT>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)

                                                              ...
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.50  nandparts=2,8,54 ]
Uncompressing Linux....................

                  ... 중간 생략 ...

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  ]
eth0 Link mode : 100 Mb/s  Duplex mode.


Welcome to FALinux (www.falinux.com)
Linux Kernel 2.6.21-falinux
falinux login:                   <--- 이렇게 로그인 메시지가 출력되면 성공한 것입니다.

EZ-X5에서 커널 이미지 전송

참고 아래의 글은 EZ-X5 커널 2.4에 대한 설명 글입니다. 커널 2.4가 설치된 EZ-X5도 최근의 EZ-S3C2440 보드와 같이 부트로더를 2.0 이상 버전으로 업그레이드하시고 최근 램디스크 소스를 이용하여 만들어진 램디스크 이미지 파일을 사용하시면서, 2.6 커널으로 업그레이드하시면 다른 2.6 커널 보드에서 사용하는 같은 램디스크 소스를 이용하여 램디스크 이미지를 생성하실 수 있으며, 역시 같은 방법으로 타겟보드에 램디스크 이미지를 전송하실 수 있습니다.

미리 커널 이미지 파일을 호스트의 /tftpboot/ 디렉토리에 zImage.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 39]
  Detect value : [3000:3000]
  Chip ID      : [0E63:000A]

Quickly Autoboot [ENTER] / Goto BOOT-MENU press [space bar]....

EZBOOT>set


 ^^;
  1. MAC Address            [00:a2:75:f2:36:39]
  2. LOCAL IP               [192.168.10.165]
  3. HOST IP                [192.168.10.102]   <-- 개발 호스트 IP와 다르다면 수정합니다.
  4. Host tftp directory    []   <-- 개발 호스트의 /tftpboot/를 사용한다면 공백으로 설정
  5. zImage      file name  [zImage.x5]
  6. ram disk    file name  [ramdisk.x5-12M.gz]
  7. boot loader file name  [ezboot.x5]

  A. Autoboot wait time     [3]
  B. Boot Menu Key          [ ]
  C. Copy Ramdisk [Y/N]     [Y]
  D. Architecture Number    [303]
  E. Serial FF/BT/ST(0/1/2) [2]
  F. NAND-Partition MByte   [2:5:57] (kernel:ramdisk:app)
  W. Watchdog (sec, off=0)  [0]

  K. Kernel CMD 1st [initrd=0xa0800000,5M root=/dev/ram ramdisk=12288]
  M. Kernel CMD 2nd [colsole=ttyPXA2,115200]
  N. Kernel CMD 3rd [mem=64M]

  L. Load Default
  P. Apply & Exit
  S. Save
  0. Exit

  Select >> 3            ---> 개발 호스트 IP를 수정하기 위해 3을 누르고 엔터키를 누릅니다.
  3. HOST IP                [192.168.10.102]
     Newvalue : 192.168.10.55

 ^^;
  1. MAC Address            [00:a2:75:f2:36:39]
  2. LOCAL IP               [192.168.10.165]
  3. HOST IP                [192.168.10.55]   ---> 개발 호스트 IP가 옳바르게 수정되었습니다.
  4. Host tftp directory    []
  5. zImage      file name  [zImage.x5]
  6. ram disk    file name  [ramdisk.x5-12M.gz]
  7. boot loader file name  [ezboot.x5]

  A. Autoboot wait time     [3]
  B. Boot Menu Key          [ ]
  C. Copy Ramdisk [Y/N]     [Y]
  D. Architecture Number    [303]
  E. Serial FF/BT/ST(0/1/2) [2]
  F. NAND-Partition MByte   [2:5:57] (kernel:ramdisk:app)
  W. Watchdog (sec, off=0)  [0]

  K. Kernel CMD 1st [initrd=0xa0800000,5M root=/dev/ram ramdisk=12288]
  M. Kernel CMD 2nd [colsole=ttyPXA2,115200]
  N. Kernel CMD 3rd [mem=64M]

  L. Load Default
  P. Apply & Exit
  S. Save
  0. Exit

  Select >> s      ---> 변경된 환경 값을 반드시 저장합니다.


  Erase : OK
  Write : OK

  ...Saved

 ^^;
  1. MAC Address            [00:a2:75:f2:36:39]
  2. LOCAL IP               [192.168.10.165]
  3. HOST IP                [192.168.10.55]
  4. Host tftp directory    []
  5. zImage      file name  [zImage.x5]
  6. ram disk    file name  [ramdisk.x5-12M.gz]
  7. boot loader file name  [ezboot.x5]

  A. Autoboot wait time     [3]
  B. Boot Menu Key          [ ]
  C. Copy Ramdisk [Y/N]     [Y]
  D. Architecture Number    [303]
  E. Serial FF/BT/ST(0/1/2) [2]
  F. NAND-Partition MByte   [2:5:57] (kernel:ramdisk:app)
  W. Watchdog (sec, off=0)  [0]

  K. Kernel CMD 1st [initrd=0xa0800000,5M root=/dev/ram ramdisk=12288]
  M. Kernel CMD 2nd [colsole=ttyPXA2,115200]
  N. Kernel CMD 3rd [mem=64M]

  L. Load Default
  P. Apply & Exit
  S. Save
  0. Exit

  Select >>0

EZBOOT>tfk
Receive zImage.x5
Send ARP Packet 
Send ARP Packet 
ARP PACKET Resive
HOST MAC : [ 00 0C 29 27 1D 60 ]
HOST  IP : [192.168.10.55]
LOCAL IP : [192.168.10.165]
Resive Address  : A100-0000
TFTP Request Send
OPTION [timeout 120 tsize 736880]
ALL DATA RESIVE OK [ 736880 bytes ]

    Erase : OK

    Write : OK
    Verifing: |Verifing: |==================================================|  100%
    Verify: OK

EZBOOT>rst
rst
System Soft Reset.......

EZBOOT>

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 39]
  Detect value : [3000:3000]
  Chip ID      : [0E63:000A]

Quickly Autoboot [ENTER] / Goto BOOT-MENU press [space bar].....
Copy Kernel Image .....
Copy Ramdisk Image .....

            ... 중간 생략 ...
			
Welcome to FALinux EZ-X5 ( www.falinux.com )
XScale(PXA255) Linux
ez-x5 login: 			<--- 이렇게 로그인 메시지가 출력되면 성공한 것입니다.