追求永无止境
分类: LINUX
2015-05-31 21:01:15
Linux内核版本有两种:稳定版和开发版 ,Linux内核版本号由3个数字组成:r.x.y
r: 主版本号
x: 次版本号,偶数表示稳定版本;奇数表示开发中版本。
y: 修订版本号 , 表示修改的次数
本人使用的环境:
一台老旧的i686处理器电脑,安装的是centos6.6 内核版本:
准备工作:
官方的4.0.4的源码包
U盘
步骤一:解压:
将所需文件复制到 /usr/src 下并解压。
cp linux-3.2.14.tar.gz /usr/src/
cd /usr/src/
将文件解压到 /usr/src/kernels
# tar -xvf
linux-4.0.4..tar.gz -C /usr/src/kernels
更新当前系统:yum install updates
Yum install ncurses-devel
安装编译内核所需要的软件包:
步骤二:配置文件
查看当前系统内核:
将当前系统的配置文件拷贝到当前目录:
cp /boot/config-‘uname -r’ /usr/src/kernels/linux3.2.14/.config
通过菜单方式配置内核:
# cd
/usr/src/kernels/linux-3.2.14
# make
menuconfig
linux配置菜单如下图所示:
一定要勾选(输入y选中,M编译为模块)
a、General setup→[*] enable deprecated sysfs features to support old userspace tools
b、Processor type and features→HighMemory Support。
c、找到以下选中选项并选中:
networking support → networking options → network packet filtering framework(netfilter)
(1)Corenetfilter configuration
. 勾中"Netfilter connection tracking support" -m state相关模块是依赖它的,不选则没有。
. 将netbios name service protocal support(new) 编译成模块,不然后面升级iptables后启动时会出错
. 勾中"Netfilter Xtables support (required for ip_tables)"
(2)IP: Netfilter Configuration
. 将 "IPv4 connection tracking support (require for NAT)" 编译成模块。
. 勾中IP tables support (required for filtering/masq/NAT) 。
. 将 "Full NAT" 下的 "MASQUERADE target support" 和 "REDIRECT target support" 编译成模块
使用旧内核配置,并自动接受每个新增选项的默认设置:
步骤三:编译
Make clean #清楚下内核编译的目标文件
Make –j2 bzImage #生成内核文件
Make –j2 modules #编译模块
Make –j2 modules_install #编译安装模块
严格按照这个顺序进行编译,不能合并成一句。
-J后面的数字是线程数,用于加快编译速度,一般的经验是,有多少G内存,就填那个数字。
步骤四:安装
Make install
特别声明:如果出现了ERROR:modinfo:could not find module *** ,数量少的话可以直接忽略。本人当时做的时候出现了三个,找了各种资料,最后略过去进行下一步重启后发现升级内核成功了。
步骤五:修改grub引导顺序
安装完成后,需要修改Grub引导顺序,让新安装的内核作为默认内核。
编辑grub.conf文件
Vim /etc/grub.conf
看一下刚刚安装的内核版本在哪个位置,从0开始,然后设置default为那个数字。一半刚安装的就在最前边,所以在前几行直接设置default=0
步骤六:重启
Reboot
重启后看下当前版本内核。
Uname –a
升级成功则为升级后的版本号
补充:如果失败,则重新安装
重新安装的话,需要清理上次编译的现场
Make mrproper
然后从步骤二开始。