分类: LINUX
2009-12-21 10:02:03
Linux kernel 升级文档
参考资料:
软件列表:
linux-
iptables-
netfilter-layer7-v2.22.tar.gz
patch-o-matic-ng-20091029.tar.tar
说明:
说明:
Linux-kernel的升级,本文章只是单纯的升级kernel,如
1. 下载内核源码包,解压。
注意:解压的目录有两种,一种是随便目录,二是解压到现有系统内核目录下/usr/src/kernel/下,两者不同点在于/usr/src/kernel是默认的内核路径,在安装某些软件时,如果不指定路径它会使用默认的内核路径,所以第一种在安装有内核参与支持的补丁或软件时候要指明路径。
[root@bfz src]# tar zxvf linux-
[root@bfz kernels]# cd linux-
[root@bfz linux-
arch COPYING crypto drivers fs init Kbuild lib Makefile net REPORTING-BUGS scripts sound virt
block CREDITS Documentation firmware include ipc kernel MAINTAINERS mm README samples security usr
2. 编译内核选项,选择需要的选项
[root@bfz linux-
[root@bfz linux-
[root@bfz linux-
[root@bfz linux-
[root@bfz linux-
[root@bfz linux-
[root@bfz linux-
[root@bfz linux-
注释:bzImage 是内核镜像文件
以上编译其实只需要make menuconfig;make;make modules;make modules_install;make install 即可
3. 编译完成
如果以上没有出现错误,一般加载启动新内核了,一般默认设置都可以启动
说明:
Iptables只是升级版本,没有多加入patch等。了解iptables各个版本的不同changlog。
iptables是内核中一定带有的选项,所以我们只需要升级iptables指定内核目录,不需要从新编译内核。
1.解压itptables源码包。
注意:解压的目录随意,我们把它放在/usr/src/下。
# tar jzxvf iptables-
# cd iptables-
# pwd
/usr/src/iptables-
2.升级iptables 安装。
注意:./configure 一般要指定内核路径,如果内核在默认路径就不需要指定。
# ./configure KERNEL_DIR=/usr/src/kernels/linux-
# make
# make install
如果没有错误,iptables –V 检查一下版本,成功。
说明:
为内核添加新的功能或模块,本次添加layer7和ipp2p等patch,打patch有两种方法一种是源码包,另一种是./runme的形式。 版本支持很重要
# tar zxvf netfilter-layer7-v2.22.tar.gz
# cd netfilter-layer7-v2.22 #里面一般有很多的patch,选择适合的内核版本的patch ,版本支持很重要
2.给内核打layer7补丁,是内核支持此选项
# cd /usr/src/kernels/linux-
[root@bfz linux-
#make menuconfig #选择对layer7的支持,如果没有找到,layer7要有Netfilter connction tarcking support的支持就会出现layer选项
# make
# make modules
# make modules_install
# make install
3给iptables支持layer7,是iptables –m layer7
# cd /usr/src/iptables-
# patch -p1 2.6.20forward-layer7-2.21.patch
#cd extensions
# chmod 777 .layer7-test #给赋予执行权限
#cp /root/netfilter-layer7-v2.22/iptables-
# rm –rf libipt_layer7*
#./configure –with-kernel=/usr/src/kernels/linux-
#make
#make install
#iptables –m layer7 #测试一下,是否支持,如果报错如下修改
会有一个提示错误:xtables_error 这个是layer7错误提示函数,但是现在iptables都用exit_error,所以把libxt_layer7.c里的xtables_error替换成exit_error就可以了,从新编译。
提示:ipp2p我们用./RUNME的形式安装,可以安装很多的patch,现在的patch-o-matic有两种,一种是老版本的所有的patch都在里面不需要下载,还有就是新版本的安装patch前需要下载。
1. 下载patch-o-matic-ng-20091029.tar.tar 解压
# tar jxvf patch-o-matic-ng-20091029.tar.tar
# cd patch-o-matic-ng-20091029
#./runme --download #下载patch,要保证能上网
#./runme ipp2p #添加ipp2p模块patch
# cd patchlets #下载完成的patch 都在这个目录里
#ls
ACCOUNT condition config connlimit geoip IPMARK ipp2p ipv4options pknock ROUTE TARPIT time
进入内核目录
#make menuconfig #选择新添加的模块patch
#make;make modules;make modules_install;make install
进入iptables目录
#./configure --with-kernel=/usr/src/kernels/linux-
#make;make install
完成
结束:
以上都分步添加patch,可以一次添加都个在内核编译。
其他的patch 步骤和上边的都差不多,又不一样的看README或HOWTO