|
发表于 2005-3-29 12:36:43
|
显示全部楼层
摘自 http://www.ringkee.com/jims/technic_folder/ 中的debian学习笔记
6.8. 安装2.6.10内核,并支持图形化启动界面。
光盘上的内核较旧,所以成功安装完成系统后,一般都要更新内核,以支持更多的硬件和提高系统性能。我把2.4.20内核更新到最新的2.6.10。具体操作如下:
*
到http://www.kernel.org下载最 ... usr/src目录下。
*
安装编译2.6内核所需的软件
# apt-get install kernel-package ncurses-dev fakeroot module-init-tools
*
在/usr/src/linux-2.6.10目录下运行以下命令配置和编译新内核:
# make menuconfig
# make-kpkg clean
# fakeroot make-kpkg --revision=mykernel.1.0 kernel_image
[Note]
如果编译失败,可用make clean和make menuconfig重新配置和编译。配置信息默认会保存在/usr/src/linux-2.6.10/.config文件中。
*
内核编译完成后在/usr/src目录下就会生成一个kernel-image-2.6.10_mykernel.1.0_i386.deb软件包,用以下命令安装:
# dpkg -i kernel-image-2.6.10_mykernel.1.0_i386.deb
这样,在/boot目录下会生成System.map-2.6.10,vmlinuz-2.6.10文件。在安装内核时会提示是否制作启动盘和是否自动配置LILO,我都选择NO。用手动方式设置LILO。打开/etc/lilo.conf文件,修改相关部份的内容,修改的内容如下:
...
#使用图形菜单
bitmap=/boot/coffee.bmp
bmp-colors=14,11,,15,9,0
#bmp-table=120p,173p,1,15,17
bmp-timer=254p,432p,1,0,0
# Installs the specified file as the new boot sector
# You have the choice between: bmp, compat, menu and text
# Look in /boot/ and in lilo.conf(5) manpage for details
#
install=bmp
...
#内核配置
default=Linux2.6.10
image=/boot/vmlinuz-2.6.10
label=Linux2.6.10
read-only
# restricted
# alias=1
image=/boot/vmlinuz-2.4.20-bf2.4
label=Linuxold
read-only
optional
# restricted
# alias=2
...
*
用lilo -v -v -v更新启动信息。如果没有出错信息则可重启电脑,默认是以新内核来启动的。用上下光标可选择不同的启动内核。
[Note]
如想用dpkg -i 重新安装相同内核,要做一些清理工作。需把/boot/System.map-2.6.10、/boot/vmlinuz-2.6.10和 /lib/modules/2.6.10改名备份起来或删除掉,但为了安全,建议采用改名备份方式。安装时会提示需重启来重建 /lib/modules/2.6.10目录,按继续即可。
2.6.10内核配置备忘录
*
内核配置完成后,在退出配置菜单时如果选择保存配置,则会在当前目录中生成一个.config文件,记录内核的所有配置参数。该配置文件会在下次配置内核时自动导入。也可以通过内核配置菜单的导入和存盘功能导入其它内核配置文件和把当前配置以任意的名字保存在其它地方。
*
Loadable module support-->Module unloading选项可允许卸载已加载的内核模块。通过该功能,我们可以通过rmmod module_name和modprobe module_name命令改变内核模块的加载参数。
*
如需支持富士FinePix 2800 Zoom数码相机,需选中Device Drivers-->USB support-->UHCI HCD(most Intel and VIA) support支持。如果成功配置,在启动时会自动检测到数码相机,并自动把相机的存储卡挂接在/media/usbdisk目录下。如果对自已机器上的 USB设备接口不清楚,可用# lspci -v命令来列出本机的设备信息。
*
配置内核支持图形化启动界面。以下网站http://www.bootsplash.org/有详 ... 打上该补丁:
# cd /usr/src/linux-2.6.10
# patch -p1 < bootsplash-3.1.4-2.6.10.diff
接着配置内核,选中以下选项,以下所有选项不能以内核模块形式编译,都要直接编译进内核:
1.
Device Drivers --> Block Devices --> Initial RAM disk(initrd) support
2.
Device Drivers --> Graphics Support --> VGA 16-color graphics support
3.
Device Drivers --> Graphics Support --> VESA VGA graphics support
4.
Device Drivers --> Graphics Support --> Console display driver support --> Framebuffer Console support
5.
Device Drivers --> Graphics Support --> Bootsplash configuration --> Bootup splash Screen
[Note]
该选项在打了内核补丁后才会出现。
6.
File systems --> Miscellaneous filesystems --> Compressed ROM file system support (cramfs)
配置内核后就可以用上面介绍的方法重新编译内核了。下一步是安装bootsplash工具。把下面这句加到/etc/apt/source.list里。
deb http://www.bootsplash.de/files/debian/ unstable main
用以下方法安装:
# apt-get update
# apt-get install bootsplash
# apt-get install sysv-rc-bootsplash 该软件包启用进度条和动画
在配置bootsplash时会问你是否安装一个新的bootsplash主题替换已存在的主题。如果你是第一次安装,请选择none,这样将会自动生成一个/boot/initrd.splash映像,并设置一个默认的newlinux主题。
接下来要更新启动器了,我是用lilo的,配置内容如下:
default=Linux2.6.10
image=/boot/vmlinuz-2.6.10
label=Linux2.6.10
read-only
initrd=/boot/initrd.splash #新增选项,指出映像文件
vga=791 #新增选项,设置显示像素1024X768
append="splash=verbose" #新增选项,设置显示模式为详细
# restricted
# alias=1
vga的取值见下表:
Table 6.1.
Colors 640X480 800X600 1024X768 1280X1024
256(8 bit) 769 or 0x301 771 or 0x303 773 or 0x305 775 or 0x307
32000(15 bit) 784 or 0x310 787 or 0x313 790 or 0x316 793 or 0x319
65000(16 bit) 785 or 0x311 788 or 0x314 791 or 0x317 794 or 0x31A
16.7 Mill.(24 bit) 786 or 0x312 789 or 0x315 792 or 0x318 795 or 0x31B
[Note]
791为十进制表示法,0x317为十六进制表示法。较旧的lilo不支持十六进制,需用十进制表示法。
运行lilo命令更新启动信息,重启电脑就可看到有底图的开机画面了。如果选择append="splash=silent",则不会显示启动信息,只会显示一幅开机图和一条进度条。
安装其它主题的方法也很简单,用apt-cache search bootsplash查出主题的名称再用apt-get安装即可,使用Debian就是方便。
*
用新内核重启时提示VFS不能挂接问题(由kennycx兄分享)
提示出错信息类似以下内容:
VFS:Cannot open root device "hdb2" or unknow-block(0,0)
Please append a correct "root=" boot option
kernel panic-not syncing: VFS:Unable to mount root fs on unknow-block(0,0)
原因:ext2文件格式支持没有编译进内核,不论你使用ext3或其它文件格式,ext2支持都必须直接编译进内核,不能以内核模块形式编译。 |
|