第一步需要我们做的是完善Linux的LCD驱动,这部分网上的资料很多,而且可以参考友善的手册,这里就不再赘述了。
下面我们需要做的是制作logo
根据友善提供的资料
方法一:
开机图片, 它对应的文件其实就是
linux-2.6.29/drivers/video/logo/linux_logo_clut224.ppm
该文件是一个特殊格式的图像文件,有很多方法可以把普通的图片转换为 logo 文件,
最常用的就是netpbm 工具组。
“netpbm”是一组命令行的工具,它可以转换很多格式的图片,在此以png 格式为例
介绍一下如何把普通的PNG 文件转换为我们需要的Linux LOGO 图片:
假定我们要转换的文件名为 linux_logo.png,首先将png 图片转成pnm
# pngtopnm linux_logo.png > linux_logo.pnm
然后将pnm 图片的颜色数限制在224
# pnmquant 224 linux_logo.pnm > linux_logo_clut224.pnm
最后将pnm 图片转换成我们需要的ppm
# pnmtoplainpnm linux_logo_clut224.pnm > linux_logo_clut224.ppm
然linux_logo_clut224.ppm 替换linux-2.6.32.2/drivers/video/logo 中对应的图像就可以了
方法二:
使用友善提供的Linux LogoMaker,这个工具是基于Fedora 9 平台开发的,但是用在RedHat企业版5上也是没问题的。
通过上面的方法直接对下载的图片进行处理,我们会发现,系统启动后LCD是黑屏的,没有按我们的预想出现logo,这往往是图片的尺寸造成的
linux对logo的显示,类似于uboot,对相应图片的尺寸大小是固定的,但是源码中的原始图片linux-2.6.29/drivers/video/logo/linux_logo_clut224.ppm
是ppm格式,我们无法知道原来logo的分辨率是多少。我找了一个比较麻烦的方法来看原配logo的分辨率,在我们编译内核后vim linux-2.6.29/drivers/video/logo/linux_logo_clut224.c 在这个文件的最后可以发现图片的分辨率为 150*150。
知道分辨率了,我们将裁好的150*150分辨率的图片再通过上面的两种方法进行转换,编译,运行logo正常显示。