- ARM Linux의 Kernel 디렉토리로 간다
- 예) /Project/Hybus/Kernel/linux
2. drivers/video/logo/Kconfig 파일을 수정
- [root@localhost linux]# vim drivers/video/logo/Kconfig
- ---Kconfig 파일의 내용---
- config LOGO_XHYPER320TKU_CLUT224
- 22 bool "XHYPER320 TKU Linux logo"
- 23 depends on LOGO
- 24 default y
- 25
- 아래 부분을 추가합니다.
- 26 config LOGO_SSC_CLUT224
- 27 bool "Sichan Boot logo"
- 28 depends on LOGO
- 29 default y
3. drivers/video/logo/Makefile 의 내용을 수정
- [root@localhost linux]# vim drivers/video/logo/Makefile
- 7 obj-$(CONFIG_LOGO_XHYPER320TKU_CLUT224) += logo_xhyper320_clut224.o
- 8 obj-$(CONFIG_LOGO_DEC_CLUT224) += logo_dec_clut224.o
- 9 obj-$(CONFIG_LOGO_MAC_CLUT224) += logo_mac_clut224.o
- 10 obj-$(CONFIG_LOGO_PARISC_CLUT224) += logo_parisc_clut224.o
- 11 obj-$(CONFIG_LOGO_SGI_CLUT224) += logo_sgi_clut224.o
- 12 obj-$(CONFIG_LOGO_SUN_CLUT224) += logo_sun_clut224.o
- 13 obj-$(CONFIG_LOGO_SUPERH_MONO) += logo_superh_mono.o
- 14 obj-$(CONFIG_LOGO_SUPERH_VGA16) += logo_superh_vga16.o
- 15 obj-$(CONFIG_LOGO_SUPERH_CLUT224) += logo_superh_clut224.o
- 16 obj-$(CONFIG_LOGO_M32R_CLUT224) += logo_m32r_clut224.o
- 17 obj-$(CONFIG_LOGO_SSC_CLUT224) += logo_ssc_clut224.o # 이부분을 추가합니다.
4. drivers/video/logo/logo.c 의 내용을 수정
- [root@localhost linux]# vim drivers/video/logo/logo.c
- 34 extern const struct linux_logo logo_superh_mono;
- 35 extern const struct linux_logo logo_superh_vga16;
- 36 extern const struct linux_logo logo_superh_clut224;
- 37 extern const struct linux_logo logo_m32r_clut224;
- 38 extern const struct linux_logo logo_ssc_clut224; // 이 부분을 추가!
- 72 #ifdef CONFIG_LOGO_XHYPER320TKU_CLUT224
- 73 /* Linux logo on XHYPER320TKU */
- 74 logo = &logo_xhyper320_clut224;
- 75 #endif
- 76 // 아래 부분을 추가합니다
- 77 #ifdef CONFIG_LOGO_SSC_CLUT224
- 78 logo = &logo_ssc_clut224;
- 79 #endif
5. make Menuconfig 실행
자기가 만든 Logo 에 체크 한 뒤 Save & Exit
Device Drivers -> Grphics support -> Logo configuration -> Sangmin Boot Logo 체크
6. 이미지 파일을 PPM 파일로 변환하기
PXA320TKU 보드의 LCD 해상도는 800x480 이므로 우리가 변경할 이미지도 이에 맞게 리사이즈한다.
- [root@localhost Project]# jpegtopnm ssc.jpg | pnmtoplainpnm > ssc.ppm
- jpegtopnm: WRITING PPM FILE
- [root@localhost Project]# pnmquant -fs 223 ssc.ppm > ssc_256.ppm
- pnmcolormap: making histogram...
- pnmcolormap: Scanning image 0
- pnmcolormap: 82333 colors so far
- pnmcolormap: 82333 colors found
- pnmcolormap: choosing 223 colors...
- pnmremap: 223 colors found in colormap
- [root@localhost Project]# pnmnoraw ssc_256.ppm > logo_ssc_clut224.ppm
- [root@localhost Project]# cp logo_ssc_clut224.ppm /Project/Hybus/Kernel/linux/drivers/video/logo/ # 만들어진 파일을 logo 디렉토리에 복사
7. ppm 변환 툴이 없다면..
- [root@localhost linux]#yum install netpbm-progs 명령어로 netpbm tool 을 설치한다
8. zImage 컴파일
- [root@localhost linux]# make
- ............................................
- CHK include/linux/version.h
- make[1]: `include/asm-arm/mach-types.h' is up to date.
- CHK include/linux/compile.h
- CHK usr/initramfs_list
- Kernel: arch/arm/boot/Image is ready
- Kernel: arch/arm/boot/zImage is ready
- Building modules, stage 2.
- MODPOST
- [root@localhost linux]#
9. 만들어진 zImage 를 /tftpboot 폴더로 복사
- [root@localhost linux]# cp arch/arm/boot/zImage /tftpboot/
10. Minicom 에서 zImage 를 tftp 로 전송 후 Flash 로 Write 한다.
- blob>tftp zImage -- 커널이미지를 tftp 를 통하여 전송
- TFTPing zImage
- *###############################################
- ################################################
- ###############################################
- #################################### OK.
- received 3749 blocks (1918780 bytes)
- rx_size=0x1d473c
- tftp_cmd: file 'zImage' loaded via tftp to address 0x80800000.
- blob> nandwrite -z 0x80800000 0x00040000 0x00200000 -- Flash에 write
- Write 0x200000 length data from RAM: 0x80800000 to flash: 0x40000
- Write flash from 0x40000, length 0x200000
- Erase flash from 0x40000, length 0x200000
- ................Done
- Write flash address is aligned to 0x40000, length is aligned to 0x200000
- ................Done
- blob> boot -- 리눅스 부팅
'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 |