分享
 
 
 

给字符控制台加上背景图片

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

给字符控制台加上背景图片

效果图在此:

http://www.linuxfans.org/nuke/modules/Forums/files/bootsplash.jpg <- 由 catoc 提供

原帖地址:

http://forums.gentoo.org/viewtopic.php?t=26494

http://www.linuxfans.org/nuke/mo ... =viewforum&f=37

详细方法:

OK OK, 为了咱们美丽而可爱的控制台背景,开工了

核心源代码肯定是要地,如果不想自己手动修改内核的话还是老老实实用老版本的 2.4.19-r10 版 gentoo 内核:

代码:

emerge -a gentoo-sources

如果你很不喜欢在控制台上配置内核的话,还需要 tcl,这样便可以在 XWindow 下用 make xconfig 了

代码:

emerge -a gentoo-source tk

哦。。。召唤背景工具~~~~~

ftp://ftp.suse.com/pub/people/st ... /splashutil.tar.bz2

ftp://ftp.suse.com/pub/people/st ... bootsplash-config.c

ftp://ftp.suse.com/pub/people/st ... ootsplash-config.sh

ftp://ftp.suse.com/pub/people/st ... .4.19-vanilla.patch

DIYer 怎么能老拿别人做好的背景呢? 毛主席说得好:“自己动手,丰衣足食”,下个模板,咱们自己也做,拿自己照片做背景,肯定可以羡慕死一群人!(注释: geocities 好像都连不上去...)

http://www.geocities.com/kachaffeous/gentoo.jpg

http://www.geocities.com/kachaffeous/template.zip

OK, 开始做工具 - splash 了,把 splashutil.tar.bz2 解压缩到一个目录里,我这里用 ~/splash

代码:

# cd ~/splash

# tar xvjf splashutil.tar.bz2

splashutil/

splashutil/Makefile

splashutil/splash.c

splashutil/ChangeLog

splashutil/COPYING

# cd splashutil

# make

gcc -Os -Wall -c -o splash.o splash.c

gcc -Os -Wall -o splash splash.o

strip splash

# cp splash /sbin/

# cd ..

然后需要用 bootsplash-config 和 bootsplash-config.sh 生成背景的配置文件,gentoo.jpg 不用说也知道是需要的背景啦,不过因为核心的图片解码器不具有缩放图片的功能,所以请事先将其用图形处理软件缩放到屏幕大小:

代码:

# gcc -o bootsplash-config bootsplash-config.c

# chmod +x bootsplash-config.sh

# ./bootsplash-config.sh

# mkdir -p /usr/share/splash/

# cp *.cfg /usr/share/splash/

# cp bootsplash-1024x768.cfg /usr/share/splash/bootsplash.cfg

# mv gentoo.jpg /usr/share/splash/bootsplash.jpg

go on... 给核心打补丁,不过因为原版补丁是 for 2.4.19 vanilla 核心的(vanilla 的意思好像是"原版核心",没有打 Gentoo 补丁),我们需要修改成 for 2.4.19 gentoo 核心

召唤 vi~~~~ :

代码:

esc

:%s/2.4.19-vanilla/linux/g

:wq

开始打补丁了:

代码:

# cp *.patch /usr/src

# cd /usr/src

# patch -p0 < boot_splash_complete.2.4.19-vanilla.patch

patching file linux/include/video/fbcon.h

patching file linux/drivers/video/fbcon.c

patching file linux/drivers/video/fbcon-cfb16.c

patching file linux/drivers/video/Makefile

patching file linux/drivers/video/fbcon-jpegdec.c

patching file linux/drivers/video/fbcon-jpegdec.h

patching file linux/drivers/video/fbcon-splash.c

patching file linux/drivers/video/fbcon-splash.h

patching file linux/drivers/video/Config.in

Hunk #1 succeeded at 213 (offset 8 lines).

Hunk #3 succeeded at 347 (offset 8 lines).

patching file linux/drivers/char/console.c

# cd linux

然后自己配置一下核心,其它不管,以下的内容必须编译进核心,编译成模块也不行!

Block Devices -> RAM disk support

Block Devices -> Initial RAM disk (initrd) support

Console Drivers -> Video mode selection support

Console Drives -> Frame-buffer support -> Support for frame buffer devices

Console Drives -> Frame-buffer support -> VESA VGA graphics console

Console Drives -> Frame-buffer support -> Use splash screen instead of boot logo

保存退出后开始编译了

代码:

# make dep && make clean bzImage modules modules_install && mount /boot && cp arch/i386/boot/bzImage /boot/vmlinuz

漫长的 15-20分钟总算过去了,恭喜你,你还没完:

OK OK, 你现在应该已经拥有了:

一个 /sbin/splash 的命令

一个带有控制台背景支持的新核心

一个用于存放下面的背景相关文件的 /usr/share/splash 目录

bootsplash-1280x1024.cfg

bootsplash-1024x768.cfg

bootsplash-800x600.cfg

bootsplash.cfg

bootsplash.jpg

OK, 咱们用 grub 的和 lilo 其实都差不多。都是给核心传递一些 vga 和 video 参数罢了:

编辑 /etc/lilo.conf 如以下内容,相关配置请按自己情况修改:

代码:

#menu-scheme=Wb

boot = /dev/hda

#prompt

map = /boot/System.map

lba32

#MENU

image = /boot/vmlinuz

read-only

label = Gentoo

vga = 791

root = /dev/hda3

initrd=/boot/initrd

grub 的可以参考一下我的(我的 initrd 是链接到 initrd-2.4.19-gentoo-r10.new 上的):

代码:

title Gentoo Linux 1.4 -- 2.4.19-r10 (with background)

kernel (hd0,0)/vmlinuz-2.4.19-gentoo-r10.new root=/dev/hda5 vga=791 video=vesa:1024x768@70

initrd=/initrd-2.4.19-gentoo-r10.new

非常非常重要的两行一定要有!!!

代码:

vga = 791

initrd=/boot/initrd

vga=791 是将控制台甚至为 1024x768x256 色,不推荐用 792(1024x768x16M)

initrd 就是你想要的背景文件内容了

附上: VGA 代码和分辨率的对照表

代码:

depth------640x480-----800x600-----1024x768-----1280x1024

256----------769----------771-----------773-------------775

32000-------784----------787-----------790-------------793

65000-------785----------788-----------791-------------794

16.7 Mill.----786----------789-----------792-------------795

(快干完了:))

生成 initrd,并且更新 mbr 中的 Linux loader

代码:

# splash -s -f /usr/share/splash/bootsplash.cfg > /boot/initrd

# lilo

Added Gentoo *

OK, 如果你想在 tty1 下使用背景时就可以运行

代码:

# splash -s -u 1 /usr/share/splash/bootsplash.cfg

-u 后面就是控制台号码,如果你想在第 100 个控制台下使用背景当然也可以用 -u 100

ft... 这样每次开机都要一个一个设置太累了,让它在每次启动后自动在每个控制台上加上背景

代码:

# cd /usr/share/splash

# for i in tty2 tty3 tty4 tty5 tty6; do mkdir  $i ; cp boot*  $i ; done

# echo '/bin/splash -s -u 1 /usr/share/splash/tty2/bootsplash.cfg' >> /etc/conf.d/local.start

# echo '/bin/splash -s -u 2 /usr/share/splash/tty3/bootsplash.cfg' >> /etc/conf.d/local.start

# echo '/bin/splash -s -u 3 /usr/share/splash/tty4/bootsplash.cfg' >> /etc/conf.d/local.start

# echo '/bin/splash -s -u 4 /usr/share/splash/tty5/bootsplash.cfg' >> /etc/conf.d/local.start

# echo '/bin/splash -s -u 5 /usr/share/splash/tty6/bootsplash.cfg' >> /etc/conf.d/local.start

这样一来你可以在 /usr/share/splash/tty? 下放入不同的 jpg 图片,就可以让每个控制台显示不同的背景画面了,hoho ^_^

OK, 完成,重新启动吧

如果无法显示请用 dmesg 检查一下是否有以下内容:

代码:

# dmesg

Looking for splash picture.... found (1024x768, 27481 bytes).

Splash status on console 1 changed to on

Looking for splash picture.... found (1024x768, 89306 bytes).

Splash status on console 2 changed to on

Looking for splash picture.... found (1024x768, 68567 bytes).

Splash status on console 3 changed to on

Looking for splash picture.... found (1024x768, 66762 bytes).

Splash status on console 4 changed to on

Looking for splash picture.... found (1024x768, 59607 bytes).

Splash status on console 5 changed to on

enjoy your new terminal

附录1: 背景图片完了就玩一下背景动画吧 ^_^

这里有可以在控制台背景上播放 mng 动画的工具:

ftp://ftp.suse.com/pub/people/st ... g/fbmngplay.tar.bz2

然后:

代码:

#emerge libmng

#tar xjvf fbmngplay.tar.bz2

*cd to where you unpacked the tar file*

# make fbmngplay

# cp fbmngplay /bin/

fbmngplay 的使用方法基本和 splash 命令差不多,详细情况请参考 --help, 这里就不多说

附录2: cfg 修改简易教程

代码:

# 设置文件版本

version=2

# 需要现实图片吗? <- 不显示花那么多功夫干嘛?

state=1

# fgcolor 是文字颜色

# bgcolor 是文字背景颜色(默认透明)。

fgcolor=4

bgcolor=0

# (tx, ty) 是文字窗口以 pixels 为单位的坐标.

# tw/th is 是文字窗口以 pixels 为单位的宽高.

tx=91

ty=161

tw=840

th=544

# 该选项用于隐藏 SuSE Linux 7.3 的“企鹅”? <- ??? 可能是指左上角的企鹅 logo,搞错可别怪我 :P

# (px, py) 是企鹅位置的坐标

# pw/ph 是企鹅的宽高

#px=82

#py=157

#pw=859

#ph=552

# (pr, pg, pb) 是企鹅填充区域的颜色

#pr=240

#pg=240

#pb=240

# 背景图片的完整路径

jpeg=/usr/share/splash/bootsplash.jpg

颜色对照表:

代码:

fgcolor #--------------color

0----------------------black

1----------------------blue

2----------------------green

3----------------------teal

4----------------------red

5----------------------purple

6----------------------brown

7----------------------grayish white

8----------------------grayish black

9----------------------light blue

10--------------------Bright Green

11--------------------Bright Cyan

12--------------------Bright Red

13--------------------Bright Magenta

14--------------------Yellow

15--------------------Bright White

相关下载:

SuSE 的 splash : http://www.geocities.com/kachaffeous/splash.tgz

SuSE 的 mng : http://www.geocities.com/kachaffeous/mngfiles.tgz

SuSE 的 boot splash 主题: ftp://ftp.suse.com/pub/people/st ... uSE-classic.tar.bz2

鸣谢:

第一个: 我们最最最可爱的 catoc,多谢他在得到了这么个好东东的时候还记得将其共享出来 ^_^

第二个: Gentoo Linux <- 一句话概括:"爱你爱到骨头里"

第三个: 自然是公社,提供了我一个不错的,扮演唐僧的好地方

第四个: 就是你! 对.... 别东张西望了,就是盯着屏幕顶着瞌睡看到现在的你,废话太多,您辛苦啦!

如果发现本文有什么不妥或者使用中有什么疑问请去这张帖子里一起研究

广告:

欢迎大家体验 SuSE 高性能 Linux

也欢迎大家去 Gentoo Linux 及其讨论区淘金."

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
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- 王朝網路 版權所有