Linux Kernel升级

目的:

把CentOS 6.3自带的内核(2.6.32.279)升级到3.6.0

步骤:

kernel 3.6.0下载:www.kernel.org

tar jxvf linux-3.6.tar.bz2 -C /usr/src    #将解压包放在/usr/src中

cd linux-3.6

make mrproper   #清除环境变量,即清除配置文件,清除掉以前升级留下的文件

make menuconfig

make menuconfig在菜单模式下选择需要编译的内核模块:

networking support—>networking options—>network packet filtering framework(netfilter)

(1) core netfilter configuration

A 将”Netfilter connection tracking support” 编译成模块

B 将netbios name service protocal support(new) 编译成模块,不然后面升级iptables后启动时会出错 

C 将“Netfilter Xtables support (required for ip_tables)”编译成模块

(2) IP: Netfilter Configuration

A 将 “IPv4 connection tracking support (require for NAT)” 编译成模块

B 将IP tables support (required for filtering/masq/NAT) 编译成模块

C 将 “Full NAT” 下的 “MASQUERADE target support” 和 “REDIRECT target support” 编译成模块

(3) 其它模块可以根据自己的需要进行选择,若不懂可以参考内核配置手册。 基本上可以用默认配置。

make dep     #建立编译时所需的从属文件,如果内核从未编译过,此步可跳过

make clean     #确保所有东西均保持最新状态.如果内核从未编译过,此步可跳过

make bzImage     #生成内核文件在/usr/src/linux/arch/i386/boot

make modules     #编译模块

make modules_install     #安装模块

make install     #安装

mkinitrd /boot/initramfs-3.6.0.img     #根据内核版本和指定参数生成映像文件(似乎不需要,已经是3.6.0)

cp /usr/src/linux-3.6/arch/x86_64/boot/bzImage /boot/vmlinuz-3.6.0    #(似乎不需要 ,已经是3.6.0 )

cp /usr/src/linux-3.6/System.map /boot/System.map-3.6.0    #(似乎不需要,已经是3.6.0)

在/etc/grub.conf添加如下3.6.0的信息,并把default=1改为default=0

重启成功后,uname -a或uname -r再看看内核,是3.6.0,ok了。

附:

make vmlinux    编译内核
make bzImage    用于生成initramfs image
make -j 数字    是让make工具启动多个gcc进程编译,在一个比较空闲的系统中,有一个推荐值作为-j的参数,即大约等于系统上的CPU core的数量(CPU超线程也算core)
make modules_install    默认将module安装打拼/lib/modules/$kernel_version/kernel目录中
make uninstall   清除make install的东西   
make clean    清除make的东西   
make distclean    清除configure的东西   
make installcheck   运行自测程序   
原文地址:https://www.cnblogs.com/qyddbear/p/2747514.html