手机站
网通分站
电信主站
密 码:
用户名:
当前位置 : 主页>网站运营>建站经验>列表

一篇最完善可行的Linux 2.6.10内核升级文档

来源:互联网 作者:west263.com 时间:2008-04-16
西部数码-全国虚拟主机10强!40余项虚拟主机管理功能,全国领先!双线多线虚拟主机南北访问畅通无阻!免费赠送企业邮局,.CN域名,自助建站480元起,免费试用7天,满意再付款! P4主机租用799元/月.月付免压金!

因为在2.4.x系统下, 新的module-init-tools工具包实际上是倚赖原来"*.old"程式来加载内核模块.
假如忘记了这一步也不要紧张, 能够先下载并安装原来的modutils程式包, 然后按照上面的步骤重来一遍就能够了.
新的module-init-tools工具包不再使用原来的/etc/modules.conf配置文档了,
而是使用新的配置文档/etc/modprobe.conf. 因此必需用命令"./generate-modprobe.conf
/etc/modprobe.conf"来生成新的配置文档/etc/modprobe.conf.
假如您使用devfs系统您还需要复制modprobe.devfs 到/etc目录下。
2.安装modutils-2.4.26-16.i386.rpm:(http://www.rpmfind.net)
rpm -iUvh modutils-2.4.26-16.i386.rpm

3.下载新的mkinitrd/lvm2软件包
http://www.rpmfind.net
下载 mkinitrd和lvm2最新版本并安装.
rpm -iUvh mkinitrd-xxx.rpm lvm2-xxxx.rpm --nodeps
否则在make install时候会提示以下错误:
No module mptbase found for kernel 2.6.10, aborting.
mkinitrd failed
make[1]: *** [install] Error 1
make: *** [install] Error
4.下载最新的内核(http://kernel.org/pub/linux/kernel/)
linux-2.6.10.tar.bz2或linux-2.6.10.tar.bz2(最好将内核拷到/usr/src,这样解压方便一点)

解压:
cd /usr/src
tar -xjpvf linux-2.6.10.tar.bz2或
tar -xzpvf linux-2.6.10.tar.gz
5. Pathc iptables
http://www.netfilter.org下载最新的iptables和patch-o-matic-ng软件包.
需要注意的是:
1)先卸载了系统原先的iptables软件包
rpm -qa |grep iptables
rpm -e --nodeps iptables-devel
rpm -e --nodeps iptables
2)解压软件包
tar -xjpvf iptables-1.3.0.tar.bz2
tar -xjpvf patch-o-matic-ng-20050225.tar.bz2
cd patch-o-matic-ng-20050225
./runme extra
输入内核源代码的路径/usr/src/linux-2.6.10
输入iptables源代码的路径/opt/soft/iptables/iptables-1.3.0
然后按您自己的需要把iptables的扩展补丁打到内核(要实现封杀bt一定要选上ipp2p这扩展)
在以下配置内核部分,需要:
把networking support-->networking options-->networking packet
filtering-->IP:netfilter configruation-->ipp2p match选上

二.Kernel Configuration
1.内核配置很费事,选项太多了,最好用默认的.在linux-2.6.10/arch下有很多关于各种机子的配置:
alpha cris ia64 m68knommu ppc sh sparc64 x86_64
arm h8300 m32r mips ppc64 sh64 um
arm26 i386 m68k parisc s390 sparc v850
找到您的机子对应的目录,里面会有一个defconfig文档,就是对应机子的默认配置,很不错,假如您的配置跟我的相同的话,几乎不许要改什么地方.

配置能够使用make menuconfig,make xconfig,make
gconfig这三个命令中的任何一个,第一个图像界面和控制台下都能用,后两个只能在图像界面下使用,我喜欢在字符界面下工作,所以用make
menucofig
cd /usr/src/linux-2.6.10
cp arch/i386/defconfig ./.config
make menuconfig或make xconfig,make gconfig
三.Compile Kernel
这一步没什么好说的,无需您做什么
make
make modules
make modules_install
make install
假如您想偷懒的话能够用:
make && make modules && make modules_install && make install
然后就能够去喝杯咖啡,休息一下什么的.假如您想让他编译完连机子都关了的话,用下面这条命令
make && make modules && make modules_install && make install
&& poweroff
四.Problems
1.不认识root=LABEL/的问题:
假如重新启动新内核无法进入出现root=LABEL/不能识别,用原来的内核启动系统,编辑/boot/grub/grub.conf

vi /boot/grub/grub.conf
找到:
title Red Hat Linux (2.6.10)
root (hd0,3)
kernel /boot/vmlinuz-2.6.10 ro root=LABEL=/
initrd /boot/initrd-2.6.10.img
去掉 root=LABEL=/
title Red Hat Linux (2.6.10)
root (hd0,3)
kernel /boot/vmlinuz-2.6.10 ro
initrd /boot/initrd-2.6.10.img
重启.
2.Hotplug问题(源自snoopyxp大哥的<<2.4->2.6内核升级指南>>)
当然, 首先要在内核配置时配置了HOTPLUG的支持. 然后,
由于/proc/ksyms改名为/proc/kallsyms, 所以必需修改启动脚本/etc/rc.sysinit.
为了兼容原有的linux-2.4.x系统, 能够加上下面几行:
#
# ----- KERNEL 2.6.x support ------
# This is for compatibility between kernel-2.4.x and
kernel-2.6.x
#
UNAME=`uname -r`
KERNELVER=$
if [ "$KERNELVER" = "2.6" ]; then
#
# This is kernel-2.6.x
#
KSYMS=/proc/kallsyms
else
#
# This is kernel-2.4.x
#
KSYMS=/proc/ksyms
fi
然后, 把rc.sysinit文档中任何出现/proc/ksyms的地方都换成"$KSYMS"变量引用. 配置好后,
还必需下载hotplug的用户态辅助工具包:http://www.kernel.org/pub/linux/uti...
4_03_11.tar.gz. 解开这个包以后, 直接"make install"就能够了.
他将产生/etc/hotplug/配置目录.

3.USB问题
USB问题主要是因为2.6内核中的这些模块已改名了
USB-2.0的host控制器的内核模块名字仍然是ehci-hcd
USB-1.1的host控制器的内核模块名字已从usb-ohci改为ochi-hcd
通用USB host控制器的内核模块名字已从usb-uhci该为uhci-hcd.
USB键盘的模块名字从keybdev变为usbkbd
支持USB鼠标的模块名字也从mousedev改为usbmouse
因此, 我们必需修改启动脚本/etc/rc.sysinit文档. 同时必须兼容原有的2.4.x系统:

文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!