Linux修改开机启动logo

默认开机LOGO会在液晶屏的左上脚显示一只小企鹅,分辨率为80*80,具体在kernel/drivers/video/logo下会有logo_linux_clut224.ppm这幅图像,程序会根据这幅图像生成logo_linux_clut224.c和

logo_linux_clut224.o两个文件,最终将小企鹅显示在液晶屏上。

这里我们需要修改开机画面,而且不限于仅显示80*80,如我们需要显示一幅铺满LCD屏的图像,该怎么办呢?

为了以后还能恢复显示这个小企鹅,这里我们另外再添加一组数据用于显示全屏,如果以后不用恢复了,方法更简单:

一:制作LCD分辨率的PPM图像;

二:将制作的PPM图像命名为logo_linux_clut224.ppm;

三:删除kernel/drivers/video/logo下的logo_linux_clut224.c和 logo_linux_clut224.o两个文件;

四:重新make生成新的内核映像。

这里讲解我们新添加一组数据实现开机LOGO的方法:

第一步:在kernel/drivers/video/logo的Kconfig中添加配置文件:
#lqm added for xgd bootup logo.
config LOGO_XGDLINUX_CLUT224
 bool "XGD 224-color Linux logo"
 default y
#end added.

第二步:make menuconfig 这时,在Bootup logo一栏就会多一个XGD 224-color Linux logo配置选项供选择。取消所有其它LOGO选项,选中XGD 224-color Linux logo,退出

第三步:确定所要修改的LOGO的分辨率,先找到一张喜爱的图片,将该图片裁剪成自己需要的分辨率,分辨率不能超过LCD分辨率,允许小但绝不允许大。

第七步:将上面制作的图片重命名为logo_xgdlinux_clut224.ppm,并放在/kernel/drivers/video/logo目录下。确保该目录下没有 logo_xgdlinux_clut224.c和logo_xgdlinux_clut224.o两个文件,如果有就删掉。

第八步:修改kernel/drivers/video/logo下的logo.c文件:
// lqm added for G300.
#ifdef CONFIG_LOGO_XGDLINUX_CLUT224
  logo = &logo_xgdlinux_clut224;
#endif
// end added.

第九步:修改kernel/include/linux/linux_logo.h文件:
extern const struct linux_logo logo_xgdlinux_clut224;// lqm added for G300

第十步:修改kernel/drivers/video/logo下的makefile文件:
obj-$(CONFIG_LOGO_XGDLINUX_CLUT224) += logo_xgdlinux_clut224.o #lqm added

第十一步:make生成新的kernel映像

经以上步骤完成自己定义的LOGO图像修改。

=================================================================

创建logo图片:

1、内核默认的logo图片为drivers/video/logo/logo_linux_clut224.ppm

file logo_linux_clut224.ppm

先得到图片的大小,然后再用gimp等工具创建一个同样大小的png图片

2、把自己创建的png图片转换为只有224色的ppm图片

pngtopnm logo.png | ppmquant -fs 224 | pnmtoplainpnm > logo_linux_clut224.ppm

如果没有以上的转换命令请安装netpbm工具包

3、覆盖原来的logo_linux_clut224.ppm文件,若有logo_linux_clut224.o和logo_linux_clut224.c文件则删除

内核配置:

Device Drivers ->

Graphics Support ->

[*] Support for frame buffer devices

[*] VESA VGA graphics support

Console display driver support ->

[*] Video mode selection support

[*] Framebuffer Console support

[*]Select compiled-in fonts

[*]VGA 8x16 font

Logo configuration->

[*]Bootup logo

[*] Standard 224-color Linux logo

重新编译内核

4.logo居中:

1、设置logo图片在屏幕中的位置

vi drivers/video/fbmem.c

找到"fb_show_logo_line"函数,把

image.dx = 0;

image.dy = y;

改为

image.dx = (info->var.xres/2) - (610/2);

image.dy = (info->var.yres/2) - (206/2);

[注]:

info->var.xres和info->var.yres是分辨率大小

610和206是logo图片的大小

2、

vi drivers/video/console/fbcon.c

找到"fbcon_prepare_logo"函数,在

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

后面加上

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

5.添加新图片:

在Makefile中有这么一句:extra-y += $(call logo-cfiles,_clut224,ppm)

它的意思是在当前找到以"_clut224"结尾的ppm图片,然后根据它生成.c文件,所以添加新的图片名可以类似这样:logo_linux_sullg_clut224.ppm

1.Makefile,加入一行

obj-$(CONFIG_LOGO_LINUX_SULLG_CLUT224)  += logo_linux_sullg_clut224.o

2.Kconfig,加入

config LOGO_LINUX_SULLG_CLUT224

bool "Standard 224-color Linux logo for sullg"

default y

3.logo.c,加入

extern const struct linux_logo logo_linux_sullg_clut224;

在"fb_find_logo"中找到"#ifdef CONFIG_LOGO_LINUX_CLUT224",在其后加入:

#ifdef CONFIG_LOGO_LINUX_SULLG_CLUT224

logo = &logo_linux_sullg_clut224;

#endif

参考:http://blog.csdn.net/zhangjie201412/article/details/7472903

时间: 2024-12-08 21:10:36

Linux修改开机启动logo的相关文章

双系统修改启动项顺序&&&修改开机启动等待时间

1. 双系统修改启动项顺序 更改/etc/grub.d目录 下的文件名是可行的 默认情况下Windows 7对应的文件名是30_os-prober,第一个linux系统对应的是10-linux,00是header,05是debian-theme,可见10是第一个启动项,只需要更改Windows 7的文件名(06-09均可)即可改变启动顺序,经我测试,成功地修改了启动顺序. 具体做法: sudo mv /etc/grub.d/30_os-prober /etc/grub.d/08_os-probe

Linux系统开机启动时的工作原理

Linux系统开机启动时的工作原理也是深入了解Linux系统核心工作原理的一个很好的途径. 启动第一步--加载BIOS 当你打开计算机电源,计算机会首先加载BIOS信息,BIOS信息是如此的重要,以至于计算机必须在最开始就找到它.这是因为BIOS中包含了CPU的相关信息.设备启动顺序信息.硬盘信息.内存信息.时钟信息.PnP特性等等.在此之后,计算机心里就有谱了,知道应该去读取哪个硬件设备了.在BIOS将系统的控制权交给硬盘第一个扇区之后,就开始由Linux来控制系统了. 启动第二步--读取MB

修改开机启动等待时间(for Ubuntu12.10)

Ubuntu的开机启动等待时间默认是10s,等待时间比较长,每次启动都得按一下回车,于是就想修改一下等待时间.我们可以找到Grub的配置文件(/boot/grub/grub.cfg),在其中进行个性化的配置. 备份配置文件 $ sudo cp /boot/grub/grub.cfg /boot/grub/grub.cfg.bak 图 1. 备份配置文件 查看并修改配置文件 $ sudo vi /boot/grub/grub.cfg 输入以下内容以快速查找定位相关配置信息 :/timeout 其中

linux memcached开机启动

1.首先是写 service脚本 service脚本需要进入到目录/etc/init.d中,然后touch memcached,最后vim memcached后进行脚本编写,脚本如下: #!/bin/bash #chkconfig:345 60 60 #description:auto_run export PATH=/sbin:$PATH start() {         echo -n $"Starting memcached:"         /usr/local/memca

(004)Linux的开机启动

十年运维系列之基础篇 - Linux 作者:曾林 联系:[email protected] 网站:www.jplatformx.com 版权:文章未经同意请勿转载 一.引言 这里虽然介绍的是Linux的开机启动,但是有些操作或者流程是不局限于linux操作系统的,而是针对几乎所有的操作系统. 二. BIOS 当我们按下开机键的时候,电流会经过电源线流经整个主板.此时,一个加电的特殊电路会“敲打”一下CPU的被称作reset的引脚.此时cpu内的某些寄存器,比如cs.eip就会出现一些固定的内容.

Linux系统开机启动原理

我理解的linux系统开机顺序如下,如有分歧,可一起探讨. Linux系统开机启动的顺序是: BIOS自检,检查硬件,选择引导介质如光盘or硬盘orU盘等等. 进入bootloader,它是写在硬盘最前面的部分,大小是512字节.由446字节的mbr和64字节的DPT和2字节的返回码组成. bootloader会去读取/boot/grub/grub.conf,然后根据配置文件寻找/boot分区下面的内核文件vmlinuz.....及内核辅助文件initrd......以及加载根分区 读取/etc

rhel7 修改开机启动级别

rhel 7 刚刚出来不久,很多人已经开始测试使用,说实话改动的地方还是挺多的.runlevel的修改已经和之前的版本不一样了,rhel 7 的/etc/inittab 文件如下 # inittab is no longer used when using systemd. # # ADDING CONFIGURATION HERE WILL HAVE NO EFFECT ON YOUR SYSTEM. # # Ctrl-Alt-Delete is handled by /etc/systemd

Linux 添加开机启动项的三种方法

linux 添加开机启动项的三种方法. (1)编辑文件 /etc/rc.local 输入命令:vim /etc/rc.local 将出现类似如下的文本片段: #!/bin/sh## This script will be executed *after* all the other init scripts.# You can put your own initialization stuff in here if you don't# want to do the full Sys V sty

linux 实现开机启动

Linux开机执行内核后会启动init进程,该进程根据runlevel(如x)执行/etc/rcx.d/下的程序,其下的程序是符号链接,真正的程序放在/etc/init.d/下.开机启动的程序(服务等)皆为此套路. Linux开机启动程序详解我们假设大家已经熟悉其它操作系统的引导过程,了解硬件的自检引导步骤,就只从Linux操作系统的引导加载程序(对个人电脑而言通常是LILO)开始,介绍Linux开机引导的步骤. 加载内核LILO启动之后,如果你选择了Linux作为准备引导的操作系统,第一个被加