Study

Boot Logo change

슈라。 2008. 11. 23. 20:16
  1. ARM Linux의 Kernel 디렉토리로 간다
  2. 예) /Project/Hybus/Kernel/linux
    2. drivers/video/logo/Kconfig 파일을 수정
  1. [root@localhost linux]# vim drivers/video/logo/Kconfig    
  2. ---Kconfig 파일의 내용---   
  3. config LOGO_XHYPER320TKU_CLUT224   
  4.  22     bool "XHYPER320 TKU Linux logo"  
  5.  23     depends on LOGO   
  6.  24     default y   
  7.  25    
  8. 아래 부분을 추가합니다.   
  9.  26 config LOGO_SSC_CLUT224   
  10.  27     bool "Sichan Boot logo"  
  11.  28     depends on LOGO   
  12.  29     default y  

 
3. drivers/video/logo/Makefile 의 내용을 수정

  1. [root@localhost linux]# vim drivers/video/logo/Makefile   
  2.   7 obj-$(CONFIG_LOGO_XHYPER320TKU_CLUT224) += logo_xhyper320_clut224.o   
  3.   8 obj-$(CONFIG_LOGO_DEC_CLUT224)      += logo_dec_clut224.o   
  4.   9 obj-$(CONFIG_LOGO_MAC_CLUT224)      += logo_mac_clut224.o   
  5.  10 obj-$(CONFIG_LOGO_PARISC_CLUT224)   += logo_parisc_clut224.o   
  6.  11 obj-$(CONFIG_LOGO_SGI_CLUT224)      += logo_sgi_clut224.o   
  7.  12 obj-$(CONFIG_LOGO_SUN_CLUT224)      += logo_sun_clut224.o   
  8.  13 obj-$(CONFIG_LOGO_SUPERH_MONO)      += logo_superh_mono.o   
  9.  14 obj-$(CONFIG_LOGO_SUPERH_VGA16)     += logo_superh_vga16.o   
  10.  15 obj-$(CONFIG_LOGO_SUPERH_CLUT224)   += logo_superh_clut224.o   
  11.  16 obj-$(CONFIG_LOGO_M32R_CLUT224)     += logo_m32r_clut224.o   
  12.  17 obj-$(CONFIG_LOGO_SSC_CLUT224)  += logo_ssc_clut224.o # 이부분을 추가합니다.  

 
4. drivers/video/logo/logo.c 의 내용을 수정

  1. [root@localhost linux]# vim drivers/video/logo/logo.c   
  2.  34 extern const struct linux_logo logo_superh_mono;   
  3.  35 extern const struct linux_logo logo_superh_vga16;   
  4.  36 extern const struct linux_logo logo_superh_clut224;   
  5.  37 extern const struct linux_logo logo_m32r_clut224;   
  6.  38 extern const struct linux_logo logo_ssc_clut224; // 이 부분을 추가!   
  7.   
  8.  72 #ifdef  CONFIG_LOGO_XHYPER320TKU_CLUT224   
  9.  73         /* Linux logo on XHYPER320TKU */  
  10.  74         logo = &logo_xhyper320_clut224;   
  11.  75 #endif   
  12.  76 // 아래 부분을 추가합니다    
  13.  77 #ifdef CONFIG_LOGO_SSC_CLUT224   
  14.  78         logo = &logo_ssc_clut224;   
  15.  79 #endif  

 
5. make Menuconfig 실행
 자기가 만든 Logo 에 체크 한 뒤 Save & Exit
Device Drivers -> Grphics support -> Logo configuration -> Sangmin Boot Logo 체크



6. 이미지 파일을 PPM 파일로 변환하기
PXA320TKU 보드의 LCD 해상도는  800x480 이므로 우리가 변경할 이미지도 이에 맞게 리사이즈한다.

  1. [root@localhost Project]# jpegtopnm ssc.jpg | pnmtoplainpnm > ssc.ppm   
  2. jpegtopnm: WRITING PPM FILE  
  3. [root@localhost Project]# pnmquant -fs 223 ssc.ppm > ssc_256.ppm   
  4. pnmcolormap: making histogram...   
  5. pnmcolormap: Scanning image 0   
  6. pnmcolormap: 82333 colors so far   
  7. pnmcolormap: 82333 colors found   
  8. pnmcolormap: choosing 223 colors...   
  9. pnmremap: 223 colors found in colormap   
  10. [root@localhost Project]# pnmnoraw ssc_256.ppm > logo_ssc_clut224.ppm   
  11. [root@localhost Project]# cp logo_ssc_clut224.ppm /Project/Hybus/Kernel/linux/drivers/video/logo/ # 만들어진 파일을 logo 디렉토리에 복사  


7. ppm 변환 툴이 없다면..

  1. [root@localhost linux]#yum install netpbm-progs 명령어로 netpbm tool 을 설치한다   



8. zImage 컴파일

  1. [root@localhost linux]# make   
  2. ............................................   
  3.   CHK     include/linux/version.h   
  4. make[1]: `include/asm-arm/mach-types.h' is up to date.   
  5.   CHK     include/linux/compile.h   
  6.   CHK     usr/initramfs_list   
  7.   Kernel: arch/arm/boot/Image is ready   
  8.   Kernel: arch/arm/boot/zImage is ready   
  9.   Building modules, stage 2.   
  10.   MODPOST   
  11. [root@localhost linux]#   

 
9. 만들어진 zImage 를 /tftpboot 폴더로 복사

  1. [root@localhost linux]# cp arch/arm/boot/zImage /tftpboot/  

 
10. Minicom 에서 zImage 를 tftp 로 전송 후 Flash 로 Write 한다.

  1. blob>tftp zImage    -- 커널이미지를 tftp 를 통하여 전송   
  2. TFTPing zImage   
  3. *###############################################   
  4. ################################################   
  5. ###############################################   
  6. #################################### OK.   
  7. received 3749 blocks (1918780 bytes)   
  8. rx_size=0x1d473c   
  9. tftp_cmd: file 'zImage' loaded via tftp to address 0x80800000.   
  10.   
  11. blob> nandwrite -z 0x80800000 0x00040000 0x00200000 -- Flash에 write   
  12. Write 0x200000 length data from RAM: 0x80800000 to flash: 0x40000   
  13. Write flash from 0x40000, length 0x200000   
  14. Erase flash from 0x40000, length 0x200000   
  15. ................Done   
  16. Write flash address is aligned to 0x40000, length is aligned to 0x200000   
  17. ................Done   
  18.   
  19. blob> boot  -- 리눅스 부팅  
......from frostguy.tistory.com

'Study' 카테고리의 다른 글

vim 설정  (0) 2008.11.24
Makefile  (0) 2008.11.24
Autotools  (0) 2008.11.24
Linux Device Driver  (0) 2008.11.24
device driver  (0) 2008.11.24