EZ-보드에서는 아래와 같이 부팅하는 과정에 따라 이미지를 크게 3단계로 나누어 출력할 수 있습니다.

  1. EZ-보드 전원을 켜게되면 제일 먼저 부트로더가 실행되고, 부트로더는 미리 등록되 이미지가 있다면 화면에 출력합니다.
  2. 부트로더 부팅 이후에 커널이 실해되면, 커널에 포함된 이미지가 커널에 의해 출력됩니다.
  3. 커널이 성공적으로 로딩되고 실행되면, 이후에 에플레케이션이 실행되는데, 에플리케이션에서 이미지를 출력한다면, 이 이미지가 마지막 단계의 출력 이미지가 되겠습니다.

정리해 보면 아래와 같은 순서로 이미지를 출력할 수 있고, 단계에 따라 출력되는 이미지는 유용하게 활용할 수 있습니다.

커널에서 출력하는 이미지에 대해서는 이미 (주)FALINUX장형기팀장님께서 정리해서 올려 주셨습니다.

또한 에플리케이션의 이미지는 개발자가 어떻게 구성하느냐에 따르므로, 실제 문제가 되는 부분은 부트로더에서 출력되는 이미지 부분입니다. 그런데 쉽지 않는 것에 커널처럼 이미지를 변경할 때마다 부트로더를 매번 컴파일하는 것은 커널 보다는 쉬운 일이 아니어서, 컴파일을 해서 부트로더를 새로 만드는 것 보다는 부트로더 환경설정에서 환경 값을 지정하듯 로고 이미지도 등록해서 출력하는 것이 편합니다.

다행히도 최근에 (주)FALINUX에서 새로운 버전의 부트로더를 내 놓았는데, 앞서 말씀드린 바와 같이 편하고 싶게 부트로더에서 출력할 이미지를 등록할 수 있습니다. 2009년 3월 5일에 새로 버전업된 부트로더의 셋업메뉴입니다. 참고로 아래의 내용은 EZ-AU1200보드의 내용입니다.

EZBOOT>set
^^;
   1) mac address            : 00:00:00:00:00:00
   2) local ip               : 192.168.10.184
   3) local netmask          : 255.255.255.0
   4) local gateway          : 192.168.10.1
   5) server ip              : 192.168.10.101
   6) zImage      file name  : zImage.ez-au1250
   7) ram disk    file name  : ramdisk-1.11-16M-mipsel-base.gz
   8) boot loader file name  : ezboot.ez-au1250
   9) logo image  file name  : logo.bmp
  10) auto execute full name : 
  11) autoboot wait time     : 3
  12) copy ramdisk [Y/N]     : Y
  13) arm kernel arch number : 3001
  14) nand part (B,C,L,K,R,A): 0,1,2,3,5,52
  15) watchdog  (sec, off=0) : 0
  16) KCMD 1 : mem=96M
  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:2
  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 >> 

9)번의 “Logo image file name” 은  잠시 후에 소개해 드릴 tfl 명령어에 사용될 정보로, tftp 서버에 있는 로고 이미지의 파일 이름입니다. tftp 를 이용하여 파일을 내려 받을 때 사용되므로 이 항목을 주의해야 겠습니다.

14)번은 NAND 플래시 메모리를 파일 시스템으로 파티션을 나눌 때 사용하는 파티션 나누기 정보로, 3번째 항목의 “L”이 로고 이미지를 저장할 파티션의 크기를 지정합니다. 위의 설정에서는 넉넉히 2mega bytes로 지정했습니다.

참고EZ_AU1200은 다른 보드와 달리 부트로더가 이미 별도의 플래시 메모리에 저장되어 있기 때문에 EZ-BOOT에서 따로 파티션을 지정해 줄 필요가 없습니다. 그래서 파티션 정보를 보면 0:1:2.... 식으로 지정되어 부트로더를 위한 영역의 크기가 “0”으로 지정된 것을 보실 수 있습니다.

19)번은 EZ-보드와 연결된 LCD패널의 크기와 해상도를 지정해 주는 것입니다. 부트로더에서 이미지를 출력하기 위해서는 반드시 필요한 정보입니다.

내용 참고
  • EZ-AU1200
    video=au1200fb:panel:[패널번호] 식으로 지정해 줍니다.
    480x272 설정 시 : 아직 지원하지는 않고 있으며, 곧 지원한다고 합니다.
    640x480 설정 시 : video=au1200fb:panel:2
  • ez-x5, ez-pxa270, ez-s3c2440
    video=ezfb:panel:[패널번호] 식으로 지정해 줍니다.
    480x272 설정 시 : video=ezfb:panel:1
    640x480 설정 시 : video=ezfb:panel:2

EZ-BOOT 환경설정이 끝났으므로 이제 부트로더에서 나누어준 NAND 파티션에 로고 이미지를 전송하여 저장하면 되겠습니다. 로고 이미지를 전송하기 위해 새로운 EZ-BOOT 명령어가 추가되었습니다.

  • TFL : tftp 프로토콜을 이용하여 로고 이미지를 전송합니다.
  • ZFL : zmodem을 이용하여 로고 이미지를 전송합니다.

로고로 사용할 이미지는 24bit Bitmap이어야 합니다. 저는 tfl 명령을 이용했습니다. zmodem보드는 빠르기 때문이죠.

EZBOOT>tfl
 receive logo.bmp
 tx ARP
 rx ARP
 HOST MAC : 02:FF:09:18:BB:D2
 HOST  IP : 192.168.10.101
 LOCAL IP : 192.168.10.184
 size = 921656

 ...write 921656  complete
 ...verify complete

EZBOOT>rst

이제 이후로 보드의 전원을 켜거나 리부팅하면 바로 저장한 로고 이미지가 출력됩니다.

그리고 잠시 후에 커널이 부팅되면 커널과 함께 컴파일된 이미지가 출력됩니다.

커널까지 모두 부팅이되면 애플리케이션을 실행할 수 있므로, 이후에는 실행되는 애플리케이션의 화면이 출력됩니다.