首页 > 代码库 > update kernel
update kernel
http://www.cncentos.c口m/forum.php?mod=viewthread&tid=566
centOs 2.6.32->2.6.37
配置内核、安装
A、清除环境变量 # make mrproper
B、选择需要编译的内核模块 # make menuconfig
没有报错的话就会出现一个蓝色的全英文版块
找到以下选项并选中(上面有提示操作,跟电脑的BIOS差不多,应该看得明白吧)
networkingsupport → networking options → network packet filtering framework(netfilter)
(1)Core netfilterconfiguration
•勾中"Netfilterconnection tracking support" -m state相关模块是依赖它的,不选则没有。
•将netbios nameservice protocal support(new) 编译成模块,不然后面升级iptables后启动时会出错
•勾中"NetfilterXtables support (required for ip_tables)"
(2)IP: NetfilterConfiguration
•将 "IPv4connection tracking support (require for NAT)" 编译成模块。
•勾中IP tables support(required for filtering/masq/NAT) 。
•将 "FullNAT" 下的 "MASQUERADE target support" 和"REDIRECT target support" 编译成模块;
(3)其它模块可选 可不选,影响不大。想深入了解的朋友可以看内核手册,
5、然后执行以下命令:
保证为最新文件 #make clean
生成内核文件 #make bzImage
编译模块 #make modules
安装 #make install
6、编辑/etc/grub.conf 文件,将 default=1 改为 default=0 (可能会有所不同,但前面的是一样的,只要改了default就对了)
# grub.confgenerated by anaconda
#
# Note that youdo not have to rerun grub after making changes to this file
# NOTICE: You have a /boot partition. This means that
# all kernel and initrd paths arerelative to /boot/, eg.
# root (hd0,0)
# kernel /vmlinuz-version roroot=/dev/sda2
# initrd /initrd-[generic-]version.img
#boot=/dev/sda
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
此文件中会看到有关两个版本各个部分的信息
2.6.32
...
2.6.37
...
6、 重启系统 reboot
再查看内核版本uname –r
ERROR: could not find XX modul
原因分析:在make install时,为了让新内核中不缺少所需module,会先检查当前系统已经加载了的module(lsmod命令可查看),然后对比新安装的内核模块,如果新的内核模块中缺少一些module(和当前lsmod命令的输出做对比),就会报“ERROR: modinfo: could not find module power_meter”这样的错误信息。
具体来说,缺少相应module而报错,大致可分为3种情况:
1. 确实是缺少了某个module,其解决方法是:如果报的module对于你来说是有用,检查编译kernel时的.config文件,加上对应的配置(配为=m),重新编译和安装modules即可;如果你觉得这个module没啥用,大可不必管它了。
2. 新编译的kernel已经将该选项编译进kernel了(.config中选择为=Y),从而不需要生成这个module的.ko文件,系统找不到对应的.ko文件,但是已经在新内核中了,不必理会这个报错。例如,上面的“ERROR: modinfo: could not find module ext4”是因为我将EXT4文件系统模块编译为built-in了
3. 模块的名称变了,用当前系统lsmod命令查找的模块名称,在新编译的内核中找不到module了。只需要检查确认即可,如这里的“ERROR: modinfo: could not find module power_meter”就是这种类型
最后,如果那些错误报的内核模块,你认为不重要或者都经过上面的分析解决后,你就可以忽略这些错误提示了;尽管有这些“ERROR: modinfo: ”错误提示,但是kernel还是被正确安装了的,往下继续操作使用即可。
——————————————————————————————————————————————————————
<ccid_code>1.[root@gliethttp]#make mrproper2.[root@gliethttp]#make clean3.[root@gliethttp]#make menuconfig3.1.选择处理器 Processor type and features--->Processor family--->3863.2.Ram Disk驱动 Block devices---> < * > RAM disk support (4096) Default RAM disk size (NEW) < * > Initial RAM disk (initrd) support 3.3.文件系统 File systems---> [ * ] Ext3 journalling file system support [ * ] Ext3 Security Labels [ * ] JBD (ext3) debugging support 3.4.BusLogic驱动 SCSI support---> SCSI low-level drivers ---> < M >BusLogic SCSI support4.[root@gliethttp]#make dep5.[root@gliethttp]#make bzImage6.[root@gliethttp]#make modules7.[root@gliethttp]#make modules_install (* make modules_install将执行如下操作: #cp /usr/src/linux/System.map /boot/System.map-2.4.18 #cp /usr/src/linux/arch/i386/bzImage /boot/vmlinuz-2.4.18 #cd /boot #rm -f System.map vmlinuz #ln -s vmlinuz-2.4.18 vmlinuz #ln -s System.map-2.4.18 System.map bzImage是压缩的内核映像 vmlinux是未压缩的内核,vmlinuz是vmlinux的压缩文件。 initrd一般被用来临时的引导硬件到实际内核vmlinuz能够接管并继续引导的状态。 System.map是一个特定内核的内核符号表。它是你当前运行的内核的System.map的链接。 *)8.[root@gliethttp]#make install (生成grub下的menu.lst相关文件和RAM启动盘)9.[root@gliethttp]#reboot (重启计算机)
update kernel
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。