飞凌335XD开发板上替换开机logo为自己的图片的方法
主要分三部分:
- 安装netpbm ,它是一个图形处理工具,可以在几种图形格式之间转换。
安装命令 sudo apt-get install netpbm
准备一张需要替换的图片格式最好是png的
转换图片的格式:我的图片是 dasdasaa.png 转换后 logo_linux_clut224.ppm。
图片的大小修改:系统的企鹅大小80x80像素,默认左上角显示,如果添加的图片需要修改像素可以使用window下的画图工具去修改
- 制作ppm格式的图片
pngtopnm dasdasaa.png > logo_linux_clut2241.pnm
pnmquant 224 logo_linux_clut2241.pnm > logo_linux_clut224.pnm
pnmtoplainpnm logo_linux_clut224.pnm > logo_linux_clut224.ppm
拷贝自定义的图片到内核的该目录:
3. 编译内核,生成uImage文件开机图片为替换的图片
如果需要将图片居中显示则需要修改部分代码:
修改源码/driver/video/fbmem.c中的fb_show_logo_line函数。
//image.dx=0;
//image.dy=y;
image.width=logo->width;
image.height=logo->height;
后面增加:
image.dx = (info->var.xres / 2) - (image.width / 2);
image.dy = (info->var.yres / 2) - (image.height / 2);
修改源码/driver/video/console/fbcon.c中的fbcon_prepare_logo()函数
logo_height = fb_prepare_logo(info, ops->rotate);
后增加:
logo_height += (info->var.yres / 2) - (logo_height / 2);
修改后编译内核则生成的uImage开机logo居中显示
如果要全屏显示,将png图片的像素修改为和当前的屏幕像素相同即可。。。
还有一种添加方式不需要替换系统图片的文件名,将自定义图片拷贝到
linux_kernel/driver/video/logo目录下,是xxx.ppm格式就行。
然后参照:logo_linux_clut224修改几个文件:
include/linux/linux_logo.h
drivers/video/logo.c
修改Makefile
修改内核配置 make menuconfig ,再编译内核即可