Chinaunix首页 | 论坛 | 博客
  • 博客访问: 270852
  • 博文数量: 36
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 411
  • 用 户 组: 普通用户
  • 注册时间: 2015-05-04 22:05
个人简介

追求永无止境

文章分类
文章存档

2016年(3)

2015年(33)

分类: 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编译为模块)

aGeneral setup[*] enable deprecated sysfs features to support old userspace tools

bProcessor type and featuresHighMemory 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

然后从步骤二开始。

阅读(1913) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~