讲师博文
Logo 来源 : 未知     2018-09-21

1、首先找到一张.png格式的图片,将图片的大小裁剪成自己想要的尺寸,这个事Windows自带的画图板就能完成

2、在你的虚拟机或者linuxOS中安装netpbm工具,这个工具的作用就是将一个.png格式的图片转换成ppm格式的,具体用法如下:

(1)、首先安装该工具:

sudo apt-get install netpbm

(2)、开始转换图片:

pngtopnm logo.png > logo.pnm

pnmquant 224 logo.pnm > logo224.pnm

pnmtoplainpnm logo224.pnm > logo_linux_clut224.ppm

(注意:这里将终生成的ppm文件命名为logo_linux_clut224.ppm是因为,linux内核启动默认的logo图片名称为该名称,如果我们不这样命名也行,但是需要修改一些文件,会比较麻烦,所以为了简单起见我们就这么做)

3、这样我们得到了ppm的图片,只要替换driver/video/logo下面的logo_linux_clut224.ppm,删除logo_linux_clut224.c logo_linux_clut224.o (注意,这里的.o .c文件一定要删除再编译,不然内核就不会编译你的新logo),然后编译内核得到镜像就可以了

4、如果你的内核配置没问题那么logo 显示也就没什么问题,这里对于内核的配置简单介绍一下:

$ makemenuconfig //在内核里面选上logo 支持

DeviceDrivers --->

[*]Graphics support --->

[*]Bootup logo --->

[*] Standard black and whiteLinux logo

[*] Standard 16-color Linuxlogo

[*] Standard 224-color Linuxlogo

5、不难发现我们的logo总是显示在屏幕的左上角,那么下面我们需要改一下内核源码,让logo居中全屏显示:

vi 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文件

vi 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);

保存退出,重新编译内核,这样我们的logo就可以在屏幕上居中全屏显示 了

6、可能还存在一个问题,就是如果cpu是四核的话,你会发现在屏幕上会显示四个logo,当然如果你的logo比较大,在屏幕上只能显示一个logo图片,那么也就只显示一个logo 不会显示四个,至于这个问题我还没有找到解决方案,希望读者有idear能告知我一声1979234659@qq.com,谢谢!

扫码申领本地嵌入式教学实录全套视频及配套源码

上一篇:Shellz中awk的简单用法

下一篇:安卓开发中实用的例子

400-611-6270

Copyright © 2004-2024 华清远见教育科技集团 版权所有
京ICP备16055225号-5京公海网安备11010802025203号