kernel层显示开机logo或动画
kernel版本:4.1.15
一、开机logo显示
logo的文件名logo_linux_clut224.ppm,在driver/video/logo目录下。采用netpbm工具
生成想要替换的logo(注意一下图片的尺寸大小)。
1、logo格式转换(linux只支持ppm格式的图片,需要将png格式的图片转成ppm)
1 $pngtopnmlogo.png>logo.pnm
2 $pnmquant224logo.pnm>logo224.pnm
3 $pnmtoplainpnmlogo224.pnm>logo_linux_clut224.ppm
以上转换完成后,放入drvicers/video/logo/下编译,可能会出现如下错误:
1 drivers/video/logo/logo_linux_clut224.ppm:BinaryPNMisnotsupported
2 Usepnmnoraw(1)toconvertittoASCIIPNM
以上错误是因为ppm图片是bin格式,需要转换成ascii格式。方法如下:
1 $pnmnorawlogo_linux_no_ascii_clut224.ppm>logo_linux_clut224.ppm
替换目录中的文件重新编译就OK了。
2、调整显示位置
默认是左上角对齐,调整为中心对齐的方法如下:
修改drivers/video/fbmem.c文件的fb_show_logo_line函数
1 //image.dx=0;//左上角x起点
2 //image.dy=y;//调用时指定的参数y起点
3 image.dx=(info‐>var.xres/2)‐(image.width/2);//中心
4 image.dy=(info‐>var.yres/2)‐(image.height/2);//中心
5 image.width=logo‐>width;
6 image.height=logo‐>height;
Note:info>var.xres和info>var.yres是分辨率大小,image.width,image.height是
logo图片的大小。
起点位置的修改:
修改drivers/video/console/fbcon.c文件的fbcon_prepare_logo函数