1.嵌入式 Linux LOGO显示原理
嵌入式Linux是直接在FrameBuffer的基础上。直接显示一个ppm格式的图象。
它 kernel/drivers/video/fbcon.c中的fbcon_show_logo()完成,最大颜色支持224色而不常见的255色。
默认的logo文件是 drivers/video/logo/logo_linux_clut224.ppm.
2.制作流程
因为LINUX LOGO格式需要ppm格式来显示。这种格式是一种用ASCII来描述图像数据一种格式。一般只有少数软件能识这种这种格式。
因此假设你有一张做好的LOGO图片(JPG或PNG格式,最好是后者),接下来有两种方法来制作LOGO PPM格式. 首先你要保证你的LOGO的尺寸不能超过你的屏幕尺寸,第一次制作可以选小一点。象缺省的LOGO只有80*80.在各种情况能显示。
2.1使用netpbm包来进行转换
RHEL5已经安装这几种工具。它自带了 netpbm-10.35-6.fc6 假设你的是png数据分别按如下步骤
pngtopnm huisen-logo-linux.png > huisen-logo-linux.pnm #转换png成pnm格式
pnmquant 224 huisen-logo-linux.pnm > huisen-logo-linux224.pnm #转换像素数为224
pnmtoplainpnm huisen-logo-linux224.pnm > logo_linux_clut224.ppm
#转换二进制的pnm格式为文本的ppm格式.
cp logo_m32r_clut224.ppm linux-2.6.28.6/drivers/video/logo/logo_linux_clut224.ppm
rm -f linux-2.6.28.6/drivers/video/logo/logo_linux_clut224.c
2.2 使用RHEL的GIMP软件来编辑.
RHEL自带了GIMP .如果没有安装,可以从光盘选择如下三个包安装,个人推荐用这个模式,不太容易失败。
[root@huisen Server]# rpm -ivh gimp-libs-2.2.13-1.fc6.i386.rpm
warning: gimp-libs-2.2.13-1.fc6.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
Preparing... ############################# [100%]
1:gimp-libs ############################ [100%]
[root@huisen Server]# rpm -ivh gimp-2.2.13-1.fc6.i386.rpm
warning: gimp-2.2.13-1.fc6.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
error: Failed dependencies:
gimp-print >= 4.2.0 is needed by gimp-2.2.13-1.fc6.i386
[root@huisen Server]# rpm -ivh gimp-print-4.2.7-22.i386.rpm
warning: gimp-print-4.2.7-22.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
Preparing... ########################### [100%]
1:gimp-print ########################### [100%]
[root@huisen Server]# rpm -ivh gimp-2.2.13-1.fc6.i386.rpm
warning: gimp-2.2.13-1.fc6.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
Preparing... ############################## [100%]
1:gimp ########################### [100%]
首先用gimp打开一个png文件,首先打开主菜单 图像-->模式-->索引.
设定颜色为224色
然后另存为ppm格式
另存选择为ASCII格式
注:以上图片上传到红联Linux系统教程频道中。
将ppm取名为 logo_linux_clut224.ppm 拷入指定目录。
最后实测画面如下。最后成功,理论是可以全屏显示,在2.6.30下实现过。