Linux 开机 logo 修改

转载地址:https://www.cnblogs.com/pied/p/5142249.html

从内核被解压到文件系统被挂载,我们看到的经典画面是一个小企鹅。如果嫌小企鹅枯燥,我们可以把它换掉。

 

1. 准备图片

这里需要的是 ppm 图片,所以,我们需要把常见格式给转换为 .ppm 才能使用。cmdline 和 图形界面下有不同方法。

a. cmdline 下, 假定我们要转换的文件名为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 > logo_linux_clut224.ppm

 

b. 图形界面下,我们可以使用 GIMP(应该是发行版的标配吧?)。首先,打开图片。然后,image->mode->indexed,弹出 Generate optimum palette 对话框,修改 maxmium number of colors 为 224,点击 convert。最后,save as 图片为名称 logo_linux_clut224.ppm 并确定,弹出来的对话框会选 ascii 。

把准备好的图片拷贝的:drivers/video/logo/ 目录下即可。

另,或许需要手动将 logo_linux_clut224.c 和 logo_linux_clut224.o 删除。否则 Makefile 不会关注 logo_linux_clut224.ppm 的变化。

 

2. 修改 Linux 编译配置

支持 224 色的 logo:

Device Drivers --->        Graphics support --->
          [*]Boot logo --->
             [*] Standard 224-color Linux logo

支持 kernel console,不选看不到 logo:

Device Drivers --->        Graphics support --->
         Console display driver support --->
            <*> Framebuffer Console support

 

3. logo 居中

不做这一步修改的话,重新编译后,图片是换掉了,但是,只有在屏幕的左上角。需要居中的话,还要对 drivers/video/fbmem.c 进行如下修改:

复制代码

//image.dx=0;
//image.dy=y;
image.width = logo->width;
image.heigh = logo->height;

image.dx = (info->var.xres / 2) - (image.width / 2);
image.dy = (info->var.yres / 2) - (image.height / 2);

复制代码

主要是对图片进行了重新定位。然后,还要 kernel console 中更新图片结束的位置。需要修改 drivers/video/console/fbcon.c 文件(后一行是新加的):

    logo_height = fb_prepare_logo(info, ops->rotate);

    logo_height += (info->var.yres / 2) - (logo_height / 2);

另外,在某 4 核处理器时,发现 logo 出现了 4 次(4 只小企鹅),需要做如下修改即可改为 1 个(继续 fbmem.c)。

复制代码

int fb_show_logo(struct fb_info *info, int rotate)
{
    int y;

    //y = fb_show_logo_line(info, rotate, fb_logo.logo, 0,
    //            num_online_cpus());
    y = fb_show_logo_line(info, rotate, fb_logo.logo, 0, 1);

    y = fb_show_extra_logos(info, y, rotate);

    return y;
}

复制代码

做完这些,重新编译内核,安装。。。。。。开机就可以看到效果了。

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值