分享
 
 
 

用bootsplash制作Linux全图形启动界面

王朝system·作者佚名  2008-05-19
窄屏简体版  字體: |||超大  

Linux的各种发行版在启动时基本上都有两种模式:silent mode和verbose mode。verbose模式下会打印极为详尽的启动信息,比如挂载文件系统,加载光驱,激活网络服务等等,而silent模式则屏蔽掉这些信息。bootsplash工具可以将一张图片放在silent模式下的虚拟控制台上,从而使Linux用户看到一个全画面的启动过程。另外一个工具是gensplash,比bootsplash要稍微复杂一些,不过功能更为强大,设计也更为合理――它将一些非必要的元素从kernel space挪出来,放在user space来做。

网络上关于bootsplash(启动动画)的使用基本上是基于Linux的SuSe发行版进行讨论的――开发这组工具的作者说他们的工作平台是SuSe。gensplash则是基于Linux的Gentoo发行版进行讨论的。当然这些两组工具都可以通过适当的改动应用于Linux的其它发行版。

由于我的工作平台是red hat linux,此篇文章就讨论怎样在RH linux下使用bootsplash。下面先给出相关的一些网站:

http://www.bootsplash.org (官方网站,基本使用及相关原理)

http://www.bootsplash.com

(详尽的使用方法,基于SuSe发行版)

http://www.bootsplash.de

(bootsplash的爱好者组织的网站,资料齐全)

http://www.kernel.org (Linux内核下载)

本文严重参考http://www.linuxhall.org/modules.php?name=News&file=article&sid=201,哈哈,特此说明。

现在我们进入正题。

http://www.bootsplash.org网站上说,bootsplash的内核补丁针对2.4.18--2.4.22和2.6.0-test9,这个消息很旧了,可以到http://www.bootsplash.de站点查看bootsplash所提供的各个版本的内核补丁,然后确定你所用的Linux内核版本,选择一个补丁下载。

我的内核是2.4.20-8,下载补丁bootsplash-3.0.7-2.4.20.vanilla.diff。补丁中的3.0.7是bootsplash工具的版本号,我们下载bootsplash-3.0.7.tar.bz2,再下载所要用的主题Theme-NewLinux.tar.bz2,关于材料的准备就完成了。这些都可以在上面的提及的网站上找到。如果你的内核没有相应补丁,那么可以选择一个版本的内核源代码,打上补丁后,编译一个新的内核。

如果没有编译过内核,可以到网上查找相关资料,对照着练习一下。当然,我们需要root的权限。

第一步 修改/usr/include目录下的三个符号链接:asm,scsi,linux(mv asm asm.bak,mv scsi scsi.bak,mv linux linux.bak),如果没有,则要新建。在编译内核时,用到这些链接所指向的一些头文件。我在/usr/src目录下建了一个名为linux的链接指向同一层的内核源代码目录linux-2.4.20-8(这样以后再编译不同版本内核时,只需修改/usr/src目录下的linux符号链接就可以了)。(命令ln -s linux-2.4.20-8 linux),然后进入/usr/include目录,分别执行ln -s /usr/src/linux/include/asm-i386 asm;ln -s /usr/src/linux/include/linux linux;ln -s /usr/src/linux/include/scsi scsi。

第二步 打补丁,假设补丁在/usr/src/linux目录下(不在的话加上路径即可)。patch -p1<bootsplash-3.0.7-2.4.20.vanilla.diff

第三步 设定核心:make menuconfig。确定下列选项被编译进内核而不是被编译成模块。

对于2.4.x内核:

Code maturity level options

---

[*] Prompt for development and/or incomplete code/drivers

Processor type and features

---

[*] MTRR (Memory Type Range Register) support

Block Devices -

[*] Loopback device support

[*] RAM disk support

(4096)

Default RAM disk size

[*] Initial RAM disk (initrd) support

Console Drivers -

[*] VGA text console

[*] Video mode selection support

Console Drivers - Frame-buffer support -

[*] Support for frame buffer devices

[*] VESA VGA graphics console

[*] Use splash screen instead of boot logo

对于2.6.x内核:

Code maturity level options

---

[*] Prompt for development and/or incomplete code/drivers

Processor type and features

---

[*] MTRR (Memory Type Range Register) support

Device Drivers

---

Block devices

---

<* Loopback device support

<* RAM disk support

(4096) Default RAM disk size

[*]

Initial RAM disk (initrd) support

Graphics support

---

[*] Support for frame buffer devices

[*]

VESA VGA graphics support

Console display driver support

---

[*]

Video mode selection support

<* Framebuffer Console support

Bootsplash configuration

---

[*] Bootup splash screen

第四步

a

make mkproper 清除旧的设定

b

make dep

产生依赖

c

make bzImage

编译内核

d

make modules modules_install 编译模块

e

cp /usr/src/linux/arch/i386/boot/bzImage /boot/bzImage-2.4.20

第五步 安装bootsplash的工具软件和主题图片

# tar jxvf /patch/bootsplash-3.0.7.tar.bz2

# tar jxvf /patch/Theme-NewLinux.tar.bz2

# cd bootsplash-3.0.7/Utilities

# make all

# cp fbmngplay fbresolution fbtruetype splash /sbin

# cd ../../

下面这几步必须要做,不然在用splash命令时就会出现类似下面的错误:splash:/etc/bootsplash/themes/Linux/images/silent-800x600.jpg不存在。这个其实是由于主题的配置文件中做了绝对路径设定。

# mkdir /etc/bootsplash

# mkdir /etc/bootsplash/themes

# cp -a NewLinux /etc/bootsplash/themes/

我们来看一个完整的主题配置文件,以800x600分辨率为例,文件名为bootsplash-800x600.cfg,可以用vi进行编辑,####开头的为笔者加的注释。

[/code:1:7b9eb010fc]

[code:1:7b9eb010fc]

# This is the configuration file for the 800x600 bootsplash picture.

#

# This file is necessary to specify the coordinates of the text box on

# the splash screen.

#

# Comments are welcome by oliver@dediziert.org

# config file version

version=3

# should the picture be displayed?

state=1

# fgcolor is the text forground color.

# bgcolor is the text background (i.e. transparent) color.

fgcolor=7

bgcolor=0

# (tx, ty) are the (x, y) coordinates of the text window in pixels.

# tw/th is the width/height of the text window in pixels.

tx=0

ty=0

tw=800

th=600

####predefine area for the text info

text_x=260

text_y=545

text_size=20

text_color=0xeef4ff

####

# name of the picture file (full path recommended)

jpeg=/etc/bootsplash/themes/NewLinux/images/bootsplash-800x600.jpg

silentjpeg=/etc/bootsplash/themes/NewLinux/images/silent-800x600.jpg

progress_enable=1

# background

box silent noover 160 520 642 538 #00000050

box silent inter 160 520 160 537 #b77200 #b77200 #f2b700 #f2b700

box silent

160 520 642 538 #b77200 #b77200 #f2b700 #f2b700

# black border

box silent

160 520 642 520 #b5b5b5

box silent

160 538 642 538 #b5b5b5

box silent

160 520 160 538 #b5b5b5

box silent

642 520 642 538 #b5b5b5

overpaintok=1

[/code:1:7b9eb010fc]

我们可以修改这个文件中的一些选项来得到自己想要的效果。具体选项的含义可以查看:

http://www.bootsplash.org/config.html

# name of the picture file (full path recommended)

jpeg=/etc/bootsplash/themes/NewLinux/images/bootsplash-800x600.jpg

silentjpeg=/etc/bootsplash/themes/NewLinux/images/silent-800x600.jpg

这两行指定了作为启动动画的图片和控制台背景的图片的名字和绝对路径,我们只需把自己制作的图片命名为这里指定的图片,并且放在这个路径下,就可以应用自己的主题了。(想想看,制作themes是相当简单的。不明白为什么网上没有redhat linux的主题图片。)

我修改了/etc/bootsplash/themes/NewLinux/config/bootsplash-800x600.cfg文件,定义显示文本信息区域。###部分是我添加的内容。

[code:1:7b9eb010fc]

第六步

将图片与 init Ram Disk 绑定 splash -s -f /etc/bootsplash/themes/Linux/config/bootsplash-800x600.cfg /boot/initrd-splash.img 对于ide硬盘,我们可以直接用splash工具生成initrd*.img文件,这个文件对ide硬盘来说没什么用,我们在这里只是通过它来使用启动画面。

如果你只想看到一副静态的画面,跳过第七步,看第八步,不用修改脚本文件。

第七步

将脚本

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有