LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 7185|回复: 24

[翻译]Gentoo Framebuffer, Bootsplash & Grubsplash 指南(修改版)

[复制链接]
发表于 2003-12-4 14:01:03 | 显示全部楼层 |阅读模式
Gentoo Framebuffer, Bootsplash & Grubsplash 指南

【原著:Narada   翻译:Max】

注:本文只部分翻译,并加入了其它内容。
原文请访问:http://forums.gentoo.org/viewtopic.php?t=49036

---------------------------------------------


一.内核补丁

下面是对部分内核的 bootsplash 补丁下载地址:

2.4.20
ftp://ftp.suse.com/pub/people/st ... 2.4.20-vanilla.diff

2.4.21
http://dhruba.codewordt.co.uk/patches/patch-2.4.21-bootsplash.bz2

2.4.22
ftp://ftp.suse.com/pub/people/st ... 22-vanilla.diff.bz2

2.6.0-test9
ftp://ftp.suse.com/pub/people/st ... .3-2.6.0-test9.diff

注:本文系统平台参数:

Gentoo 1.4 RC4

kernel 2.4.20-r8

Simsung 753 DFX 1024x768@75Hz

Nvidia GF2 MX400 64M

二.方案目标

高分辨率的 Framebuffer

高分辨率的 Bootsplash

自定义 Framebuffer 字体

自定义 Bootsplash 主题

给你的 Framebuffer 和 Bootsplash 截图

在 Framebuffer 下使用多媒体工具和图形化的浏览器

自定义 Grub splash 图像

扩展 Framebuffer 和 bootsplash 到所有12个虚拟终端

让虚拟终端支持中文

自定义登录问候画面


三.开始工作!

1.获取必须的 bootsplash 程序

更新 portage 树
  1. emerge sync
复制代码


编译安装media-gfx/bootsplash (字符界面下的 Framebuffer 背景图像).
由于bootsplash默认情况下是mask的,所以我们要:

  1. ACCEPT_KEYWORDS="~x86" emerge bootsplash
复制代码


覆盖你原来的bootsplash配置文件:

  1. etc-update
复制代码



2.编译内核以支持 Framebuffer & Bootsplash

首先检查 /usr/src/linux 是否指向你当前内核源代码目录

  1. ls -l /usr/src/
复制代码


一些版本的内核如 gentoo-sources, gaming-sources 和 xfs-sources 已经内置了 Framebuffer 支持,如果你的内核没有支持,请检查并如下打上补丁。

  1. ebuild /var/db/pkg/media-gfx/bootsplash-0.6-r2/bootsplash-0.6-r2.ebuild config
复制代码


开始配置内核
  1. cd /usr/src/linux
  2. make menuconfig
复制代码


把以下各项编译进内核.不要编译成模块,也不要开启 nvidia 或 ATI 选项(我们只要有vesa就可以了).



  1. Code maturity level options  --->
  2. [*] Prompt for development and/or incomplete code/drivers
  3. Processor type and features  --->
  4. [*] MTRR (Memory Type Range Register) support
  5. Block Devices ->
  6. [*] Loopback device support
  7. [*] RAM disk support
  8. (4096)   Default RAM disk size
  9. [*] Initial RAM disk (initrd) support
  10. Console Drivers ->
  11. [*] VGA text console
  12. [*] Video mode selection support
  13. Console Drivers -> Frame-buffer support ->
  14. [*] Support for frame buffer devices
  15. [*] VESA VGA graphics console
  16. [*] Use splash screen instead of boot logo
复制代码


开始编译内核,并复制新内核到 /boot (你最好先备份现有内核),完成后先不要重新启动,也不要卸载 /boot分区。


  1. make dep && make clean bzImage modules modules_install
  2. mount /boot
  3. cp /boot/vmlinuz-2.4.20-r8 /boot/vmlinuz-2.4.20-r8.bak
  4. cp /usr/src/linux/arch/i386/boot/bzImage /boot/vmlinuz-2.4.20-r8-fb
复制代码


如果你在编译内核过程中出现错误,或者丢失了一些配置选项,请按照下面步骤重新编译。


  1. cd /usr/src/linux/
  2. mv .config ~/kernel.config
  3. make mrproper
  4. mv ~/kernel.config .config
  5. make oldconfig
  6. make menuconfig
复制代码


下面生成一个启动过程中的背景图像:


  1. /sbin/splash -s -f /etc/bootsplash/default/config/bootsplash-1024x768.cfg > /boot/initrd-1024x768
复制代码


编辑/boot/grub/grub.conf,下面是我的grub.conf,你可以参考我的加以修改,下面是一些参数的意思:

video= 放在 kernel一行后面,用以控制显示参数, 如:ywrap和mtrr 来加速 Framebuffer 刷新。
vga= 放在 kernel一行后面,用以控制 Framebuffer 的分辨率和色彩深度。
splash= 放在 kernel一行后面,一般有'silent'、'verbose' 可选。
initrd= 放在 kernel 一行后面另起一行,用来装载启动时的背景图像。


  1. timeout 30
  2. default 0
  3. splashimage=(hd0,7)/grub/splash.xpm.gz
  4. # For booting Windows 200 Pro
  5. title Windows 2000 Pro
  6. rootnoverify (hd0,0)
  7. chainloader +1

  8. # For booting Gentoo Linux with Framebuffer & Bootsplash
  9. title Gentoo Linux 1.4 RC4 (2.4.20-8) Framebuffer
  10. root (hd0,9)
  11. kernel (hd0,7)/vmlinuz-2.4.20-r8-fb ro root=/dev/hda10 video=vesa:1024x768@72 vga=0x317
  12. initrd (hd0,7)/initrd-1024x768

  13. # For booting Gentoo Linux without Framebuffer & Bootsplash
  14. title Gentoo Linux 1.4 RC4 (2.4.20-8)
  15. root (hd0,9)
  16. kernel (hd0,7)/vmlinuz-2.4.20-r8 ro root=/dev/hda10
复制代码



下面是 kernel 中 "vga="参数一览表,根据自己的情况选择。



  1.     | 640x480  800x600  1024x768 1280x1024
  2. ----+-------------------------------------
  3. 256 |  0x301    0x303    0x305    0x307
  4. 32k |  0x310    0x313    0x316    0x319
  5. 64k |  0x311    0x314    0x317    0x31A
  6. 16M |  0x312    0x315    0x318    0x31B
复制代码



如果你需要更详悉的解释,请参考下面的文档:


  1. /usr/share/bootsplash/grub.conf.sample
  2. /usr/src/linux/Documentation/fb/vesafb.txt
  3. /usr/src/linux/Documentation/svga.txt
复制代码


把 bootsplash 加入default运行级,让其在启动是自动运行:
  1. rc-update add bootsplash default
复制代码


现在重启!如果一切正常你就会看到漂亮的 Framebuffer 和 Bootsplash 啦!

如果只想使用 Framebuffer 而不需要 Bootsplash ,只要:

  1. rc-update del bootsplash default
复制代码


并且去掉grub.conf中的这一行:

  1. initrd=/boot/initrd-1280x1024
复制代码


减小终端字体,打开/etc/rc.conf,修改下面一行

  1. CONSOLEFONT="default8x9"
复制代码


其它可用字体可以参考下面的目录:

  1. /usr/share/consolefonts
复制代码


3.自定义你的 Bootsplash 主题!

建立 personal 目录:

  1. mkdir -p /etc/bootsplash/personal/images/
  2. cp -r /etc/bootsplash/default/config /etc/bootsplash/personal/
复制代码


修改 default 符号链接:

  1. rm /etc/bootsplash/default
  2. ln -s /etc/bootsplash/personal /etc/bootsplash/default
复制代码


打开 /etc/conf.d/bootsplash.conf 并修改如下:

  1. BOOTSPLASH_THEME=personal
复制代码


把你的 bootsplash 图像(大小要与grub.conf中的相一致)复制到 /etc/bootsplash/personal/images/bootsplash-1024x768.jpg. 确保图像分辨率为 96x96, 注意这里指的不是图像的大小,而是每英寸的像素值,可以使用gimp等修改。

打开 /etc/bootsplash/personal/config/bootsplash-1024x768.cfg 并修改如下,以指向你的新图像位置:


  1. mount /boot
  2. /sbin/splash -s -f /etc/bootsplash/default/config/bootsplash-1024x768.cfg > /boot/initrd-1024x768
复制代码


重启!看看效果吧!

3.给我的 Framebuffer 截图!

编译安装 fbgrab

  1. ACCEPT_KEYWORDS=~x86 emerge fbgrab
  2. fbgrab ~/console.png
复制代码


4.自定义 Grub splash 图像!

要自定义 grub splash,只要自定义一幅图像复制到 /boot/grub 就可以了。

先安装一个gimp的补丁用来生成grub可以使用的图像格式:


  1. emerge gimp (如果你还没有 gimp )
  2. wget [url]http://dhruba.codewordt.co.uk/files/grub-image.scm[/url] -P ~
  3. mv ~/grub-image.scm /usr/share/gimp/1.2/scripts/
复制代码


用 gimp 打开你选择的图片,右键单击图像,File > Grub Boot Image,然后保存起来,
下面有一个例子图片,其它图片可以到这里找: http://linuxserver.tkdack.com/no ... %20Splash%20Screens


  1. mount /boot
  2. wget [url]http://linux.tkdack.com/downloads/grub/powered-by.xpm.gz[/url] -P ~
  3. mv ~powered-by.xpm.gz /boot/grub/
复制代码


修改 /boot/grub/grub.conf 指向你的新图像:

  1. splashimage=(hd0,0)/boot/grub/splash.xpm.gz
复制代码


5.扩展 Framebuffer 到 12 个虚拟终端!

打开 /etc/inittab ,在第37行后加入:


  1. c8:12345:respawn:/sbin/agetty 38400 tty8 linux
  2. c9:12345:respawn:/sbin/agetty 38400 tty9 linux
  3. c10:12345:respawn:/sbin/agetty 38400 tty10 linux
  4. c11:12345:respawn:/sbin/agetty 38400 tty11 linux
  5. c12:12345:respawn:/sbin/agetty 38400 tty12 linux
复制代码


打开 /etc/init.d/bootsplash,在第30行修改如下:

  1. for TTY in `seq 0 11`
复制代码



重启后你就有了 12 个虚拟终端并都支持 Framebuffer splash 图像了!

6.让虚拟终端支持中文

安装unicon

  1. emerge unicon
复制代码


这里下载编译zhcon

http://prdownloads.sourceforge.net/...tar.gz?download

  1. ./configure & make & make install
复制代码


安装字符界面下的浏览器


  1. emerge lynx  

  2. or

  3. emerge w3m (推荐)

复制代码



7.让虚拟终端支持鼠标

  1. emerge gpm
复制代码


修改 /etc/conf.d/gpm


  1. MOUSE=ps2
  2. #MOUSE=imps2
  3. MOUSEDEV=/dev/psaux
  4. #MOUSEDEVMOUSE=ps2
  5. #MOUSEDEV=/dev/input/mice
复制代码


把gpm加入default运行级

  1. rc-update add gpm default
复制代码


重启后字符界面下就可以使用鼠标啦,左键拖动选择,中键单击粘贴。


8.自定义登录问候画面

下载安装 cowsay

http://freshmeat.net/redir/cowsay/1504/url_tgz/cowsay-3.03.tar.gz


  1. ./configure --prefix=/usr
  2. make & make install
复制代码


建立如下 /etc/init.d/issue 脚本文件:


  1. #!/bin/sh
  2. # Local system initialization script
  3. RELEASE="release 1.1a"
  4. COLOR1="\033[1;6m\033[35;40m" # bright magenta on black  COLOR2="\033[1;6m\033[37;40m" # bright white on black
  5. COLOR3="\033[1;6m\033[33;40m"
  6. COLOR_RESET="\033[0m"
  7. rm -f /etc/issue
  8. /usr/bin/clear >> /etc/issue
  9. /usr/bin/cowsay "Hello World" >> /etc/issue
  10. echo -e $COLOR1"Gentoo"$COLOR2 "Linux"$COLOR_RESET "$RELEASE" "(\l)">>/etc/issue
  11. echo "Kernel $(uname -r) on an $(uname -m)" >> /etc/issue
  12. echo -e $COLOR3"Welcome to the My Linux World!">>/etc/issue
  13. echo >>/etc/issue
  14. cp -f /etc/issue /etc/issue.net
复制代码


  1. chmod +x /etc/init.d/issue
复制代码


添加x属性,加入 default 运行级或 local.start脚本执行:


  1. rc-update add issue default
  2. 或者
  3. echo /etc/init.d/issue >> /etc/conf.d/local.start
复制代码



四、总结

至此,我想我们可以基本上放弃X了,因为我们已经有了一个不亚于X的漂亮的工作环境。如果你喜欢用vi超过gedit,喜欢mpg123超过xmms,喜欢总是把手指放在键盘上,而不是拿着鼠标晃来晃去,那么你会从这篇文档得到享受!

-------------------------------------------------------------

翻译时间:2003-12-3

Email:max@microweb.3322.org
发表于 2003-12-4 15:36:24 | 显示全部楼层
顶!
发表于 2003-12-4 17:11:39 | 显示全部楼层
加精啊!
发表于 2003-12-4 17:17:24 | 显示全部楼层
我来加;)
发表于 2003-12-5 11:04:53 | 显示全部楼层
基本安装好了,可是启动条不会动,应该怎样配置?
 楼主| 发表于 2003-12-5 12:45:39 | 显示全部楼层
如果需要配置启动条,要使用silent模式,还要有animation主题。
具体方法可以参考:
http://forums.gentoo.org/viewtopic.php?t=105142
发表于 2003-12-5 14:55:32 | 显示全部楼层
启动的时候为什么老是显示:
Usage: /sbin/splash logstring
       /sbin/splash -s [-u unit] -n [cfgfile]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
发表于 2003-12-7 09:06:01 | 显示全部楼层
我顶!
发表于 2003-12-7 11:15:57 | 显示全部楼层
没有人遇见过相同的问题吗?
_______________________________________

启动的时候为什么老是显示:
Usage: /sbin/splash logstring
/sbin/splash -s [-u unit] -n [cfgfile]
 楼主| 发表于 2003-12-7 11:26:58 | 显示全部楼层
没遇见过这个问题,看情况好像应该是bootsplash脚本本身的问题。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表