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

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 / ) - (image.width / );
image.dy = (info->var.yres / ) - (image.height / );

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

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

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

另外,在某 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, , ); y = fb_show_extra_logos(info, y, rotate); return y;
}

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

Linux 开机 logo 修改的更多相关文章

  1. Android开机logo修改方法 【转】

    本文转载自:http://blog.csdn.net/qq258711519/article/details/7766303 一体机平台开机logo修改方法 1:修改Kernel中的Logo: 若是要 ...

  2. 高通平台开机LOGO修改LK(bootloader)下实现【转】

    网络上已经有许多在kernel中修改开机Logo的文章,本文就LK下实现开机logo进行简述 需要用到ffmpeg工具,没有安装ffmpeg请参考这里: http://blog.csdn.net/re ...

  3. 八、启动linux内核并修改开机logo

    1. 编译并烧写linux内核 1)先准备好内核源码包urbetter-linux2.6.28-v1.0.tgz,输入命令:tar -zxvf urbetter-linux2.6.28-v1.0.tg ...

  4. 小白自制Linux开发板 九. 修改开机Logo

    许久不见啊,今天我们继续来修改我们的系统. 通过前面的几篇文章我们已经能轻松驾驭我们的开发板了,但是现在都是追求个性化的时代,我们在开发板上打上了自己的Logo,那我们是否可以改变开机启动的Logo呢 ...

  5. 开机logo以及两种修改开机动画方法

    Android开机画面总共有三屏 一.第一屏:开机logo 1.选张png格式的图片,在Linux任意下执行(安装工具): sudo apt-get install pnmtoplainpm 2.在所 ...

  6. 安卓修改开机logo和开机动画的方法

    第一种和第二种方法亲测可用,安卓版本是4.2和安卓5.1均可.第二种方法待验证 以下三种方法 Android 开机其实总共会出现3个画面: 1.第一个就是 linux 系统启动,出现Linux小企鹅画 ...

  7. Android 系统开机logo的修改【转】

    本文转载自:http://blog.csdn.net/yandongqiangZHRJ/article/details/8585273 看到了好几个修改logo的博文,但是说的不是很清楚,在这里亲手送 ...

  8. 安卓修改开机logo

    这里我们是在ubuntu下进行操作我是用root用户登陆的,首先安装netpbm库 执行:apt-get install netpbm 对于Android系统最开始表现logo是在内核当中,所以首先我 ...

  9. linux开机自检配置文件fstab变只读无法修改问题

    控制linux开机自检的配置文件是/etc/fstab,在最近用的服务器中,发现fstab变成了只读权限,无法修改. 解决方法:RH5下,因磁盘改变,而导致系统停在Ctrl+d,此时需输入密码进入修改 ...

随机推荐

  1. silverlight 4 tools for vs2010无法在vs2010 SP1上安装的解决办法

    环境:英文版vs2010 sp1 + vs2013 RC 90天体验版 原来可以正常做silverilght 4 项目开发,今天因为vs2013 RC过了90天体验期,卸载时顺带把Silverlihg ...

  2. 更好的逐帧动画函数 — requestAnimationFrame 简介

    本文将会简单讲讲 requestAnimationFrame 函数的用法,与 setTimeout/setInterval 的区别和联系,以及当标签页隐藏时 requestAnimationFrame ...

  3. DOM 元素节点几何量与滚动几何量

    当在 Web 浏览器中查看 HTML 文档时,DOM 节点被解析,并被渲染成盒模型(如下图),有时我们需要知道一些信息,比如盒模型的大小,盒模型在浏览器中的位置等等,本文我们就来详细了解下元素节点的几 ...

  4. 用TypeScript开发Vue——如何通过vue实例化对象访问实际ViewModel对象

    用TypeScript开发Vue--如何通过vue实例化对象访问实际ViewModel对象 背景 我个人很喜欢TypeScript也很喜欢Vue,但在两者共同使用的时候遇到一个问题. Vue的实例化对 ...

  5. Html.BeginForm

    该方法用于构建一个From表单的开始,他的构造方法为: Html.BeginForm("ActionName","ControllerName",FormMet ...

  6. ThreadLocal类学习笔记

    这个类在java1.2中就出现了,线程独有的变量(每个线程都有一份变量),使用它的好处之一就是可以少传许多参数. 在哪里用到它呢?有连接池的地方就有它的身影,连接池包括数据库连接池,网络连接池等. i ...

  7. 【JavaEE企业应用实战学习记录】getConnListener

    Listener:当Web应用在Web容器中运行时,Web应用内部会不断地发生各种事件,如Web应用被启动.Web应用被停止,用户Session开始,用户session结束.用户请求到达等,这些对We ...

  8. ElasticSearch入门系列(一)是什么以及安装和运行

    一.是什么 ElasticSearch是一个基于Apache Lucene的开源搜索引擎. Elasticsearch: 分布式的实时文件存储,每个字段都被所用并可被搜索 分布式的实时分析搜索引擎 可 ...

  9. 如何在word中的第3+n页处插入页面并重新从1开始

    在插入页码时有时可能会遇到这种情况: word的第一页是文档名称 第二页是目录 第三页才开始是正文,而我们希望看到页码从第三页开始才是第1页. 在第三页的开头,插入分隔符“下一页”,如果office2 ...

  10. Android Studio2.0 教程MAC版 -快捷键篇

    本文转至 Android Studio2.0 教程从入门到精通MAC版 - 提高篇 ( OPEN 开发经验库) 第二篇我们开发了一个Hello World应用,并介绍Android Sutdio的界面 ...