
系统环境:ubuntu 10.04 +x86
$ sudoapt-get install netpbm
$pngtopnm loongson.png >loongson.pnm
说明:用来转换的图片必须为 png 格式,否则会有如下提示:
pngtopnm:input file not a PNG file
$pnmquant 224 loongson.pnm >loongson224.pnm
pnmcolormap: making histogram…
pnmcolormap: 5854 colors found
pnmcolormap: choosing 224 colors…
pnmremap:222 colors found in colormap
注意:此处pnmquant 必须输出到另一个不同名的文件,否则会出现如下错误提示
eg:$pnmquant 224 loongson.pnm >loongson.pnm
pnmcolormap: EOF / read error reading magic number
pnmcolormap failed, rc=256
$pnmtoplainpnm loongson224.pnm >loongson224.ppm
然后用转换好的loongson224.ppm 替换 kernel
/drivers/video/logo/logo_linux_clut224.ppm(最好先做好备份)
,然后删除同一目
录下的logo_linux_clut224.c 文件,重新编译内核即可
$ cd/home/work/kenrel/linux26_3210/drivers/video/logo
$ mvlogo_linux_clut224.ppm{,-bk}
$ cp/home/loongson/Dowload/loongson224.ppm ./
$ mvloongson224.ppm logo_linux_clut224.ppm
$ rmlogo_linux_clut224.c
$ cd///
$ makemenuconfig //在内核里面选上logo 支持
DeviceDrivers --->
[*]Graphics support --->
[*]Bootup logo --->
[*] Standard black and whiteLinux logo
[*] Standard 16-color Linuxlogo
[*] Standard 224-color Linuxlogo
$make
1.修改图片办法1) 找一个自己喜欢的(苹果的,我爱的).png的图片,然后用faststone image viewer(图片转换器)——自己网上下载,将自己的图片转换成.ppm格式的
2)打开/root/drivers/video/logo就可以看到自己以前的开机logo了,然后将生成的.ppm和原来的.png图片和原来的换掉(名字要用一样的哦)
3)然后在根目录下make menuconfig, 选中自己的logo,然后make zImage,大功告成
2.修改代码的办法
1)修改drivers/video/fbcon.c中关于LOGO_H和LOGO_W定义为你想定义的任何值,当然,不能超过fb的大小;
2)在drivers/video/fbcon.c中fbcon_setup()中将conp->vc_y和vc_pos设置到合适的地方并且去掉搬运一些内存块的工作,否则,下一步的修改了以后,将会在运行时候产生kernel panic。
这一段的主要工作是将字符的输出搬到从logo的最后一条线开始显示。
具体为fbcon_setup()中if(logo)后for跟之后的一个大语句不要,该成为:conp->vc_y += logo_lines
conp->vc_pos += logo_lines * conp->vc_size_row
3)通过在fbcon_show_logo中直接将一块内容拷贝到fb中去。
具体为:
在对应的logo拷贝过程改为:
dst=fb
memcpy(dst,img_data,IMG_LEN)
img_data是我用来存放图片内容的指针,后者是长度。比如,一个565rgb,320240的图片,第一个16bit内容就是第一个pixel的rgb值。
这需要首先将任何一幅图片的内容变为对pixel的数值。
如果不想更换内容,则将图片内容固定,否则,将img_data指向某个地址,以后值需要更换这个地址的内容即可。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)