方法一:
Drivers/video/logo/logo_linux_clut224.ppm是默认的启动Logo图片,把自己的Logo图片(png格式)转换成ppm格式,替换这个文件,同时删除logo_linux_clut224.c logo_linux_clut224.o文件,重新编译
具体方法:
#pngtopnm logo_linux_clut224.png > logo_linux_clut224.pnm
#pnmquant 224 logo_linux_clut224.pnm > logo_linux_clut224.pnm
#pnmtoplainpnm logo_linux_clut224.pnm > logo_linux_clut224.ppm
bmp,jpg等格式都有对应的命令。
最后用自己制作的xxxxx.ppm文件地替换并更名为logo_linux_clut224.ppm,即可。
方法二:
不修改logo_linux_clut224.ppm图片,制作自己的编译选项。
下面是在网上查的修改步骤:
~~~~~~~修改相关的文件~~~~~~~~
切换到目录:linux-3.0.1/drivers/video/logo/
(1)把linuxlogo.ppm改名成logo_mylogo.clut224.ppm并复制到logo目录
$sudo mv linuxlogo.ppm logo_mylogo.clut224.ppm
$sudo cp logo_mylogo.clut224.ppm drivers/video/logo
(2) 修改logo.c
用你喜欢的工具(vi,gedit等)打开drivers/video/logo/logo.c
在fb_find_logo()函数找到if (depth >= 8)在后面加入
#ifdef CONFIG_LOGO_MYLOGO_CLUT224
/* My Linux logo */
logo = &logo_mylogo_clut224;
#endif
(3) 修改Makefile
打开drivers/video/logo/Makefile
加入
obj-$(CONFIG_LOGO_MYLOGO_CLUT224) += logo_mylogo_clut224.o
(4)修改Kconfig
打开drivers/video/logo/Kconfig
增加
config LOGO_MYLOGO_CLUT224
bool “224-color My Linux logo”
default y
(5)修改linux_logo.h
打开include/linux/linux_logo.h
增加
extern const struct linux_logo logo_mylogo_clut224;
(6)修改config
打开.config
修改如下
#CONFIG_LOGO_LINUX_CLUT224=y
CONFIG_LOGO_MYLOGO_CLUT224=y
三、编译和烧写新的内核
#make .config
#make zImage
把生面的zImage烧写到开发板就可以看到新的linux开机图片
我第一次修改时把ppm图片命名为logo_linux_myss ,编译内核时出错,大概原因是无法生成logo_linux_myss.c文件。这个文件就是一个数组里面存储着开机logo的字库,在读取ppm图片时自动生成的,通过查看Makefile 发现下面这样一组Makefile语句:
$(obj)/%_mono.c: $(src)/%_mono.pbm $(pnmtologo) FORCE
$(call if_changed,logo)
$(obj)/%_vga16.c: $(src)/%_vga16.ppm $(pnmtologo) FORCE
$(call if_changed,logo)
$(obj)/%_clut224.c: $(src)/%_clut224.ppm $(pnmtologo) FORCE
$(call if_changed,logo)
$(obj)/%_gray256.c: $(src)/%_gray256.pgm $(pnmtologo) FORCE
$(call if_changed,logo)
于是我试着把ppm图片的名字改成_cult224结束的,果然编译通过了。所以可能是这个Makefile规定图片只能以上面的四种下划线结束。、
至于把图片改成其他格式我还没成功,如果有成功的、有自己的想法的,欢迎讨论。