搜索墙首页  编程技术  java  asp  ajax  php  c/c#/c++  数据库  oracle  mysql  db2  操作系统  windows  linux  股吧
首页 > 操作系统 > linux
 1         
1楼  bfz814 2009-12-21

Linux kernel 升级文档

                                                                                                                2009-9-25 刘宇

 

参考资料:

http://www.kernel.org/

http://www.netfilter.org/

http://l7-filter.sourceforge.net/

 

软件列表:

linux-2.6.28.4.tar.gz

       iptables-1.4.2.tar.tar

netfilter-layer7-v2.22.tar.gz

patch-o-matic-ng-20091029.tar.tar

说明:

      

一.     升级kernel

说明:

       Linux-kernel的升级,本文章只是单纯的升级kernel,如2.6.11升级到2.6.28.4,如果只是升级到更高的内核版本,make内核即可,makemenuconfig不需要改变也可以编译,编译完成,无错误既可以启动新内核

 

1.       下载内核源码包,解压。

注意:解压的目录有两种,一种是随便目录,二是解压到现有系统内核目录下/usr/src/kernel/下,两者不同点在于/usr/src/kernel是默认的内核路径,在安装某些软件时,如果不指定路径它会使用默认的内核路径,所以第一种在安装有内核参与支持的补丁或软件时候要指明路径。

[root@bfz src]# tar zxvf linux-2.6.28.4.tar.gz

[root@bfz kernels]# cd linux-2.6.28.4/

[root@bfz linux-2.6.28.4]# ls

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-2.6.28.4]#make mrproper    #编译前准备,去除.o 文件

[root@bfz linux-2.6.28.4]#make menuconfig # 进入编辑选项

[root@bfz linux-2.6.28.4]#make dep        #建立依赖关系

[root@bfz linux-2.6.28.4]#make clean      #去除旧的资料

[root@bfz linux-2.6.28.4]#make bzImage    #开始编译

[root@bfz linux-2.6.28.4]#make modules    #编译模块

[root@bfz linux-2.6.28.4]#make modules_install  #安装模块

[root@bfz linux-2.6.28.4]#make install    #编译安装

注释:bzImage 是内核镜像文件

以上编译其实只需要make menuconfigmakemake modulesmake modules_installmake install 即可

 

3.       编译完成

如果以上没有出现错误,一般加载启动新内核了,一般默认设置都可以启动

二.升级iptables

说明:

       Iptables只是升级版本,没有多加入patch等。了解iptables各个版本的不同changlog

iptables是内核中一定带有的选项,所以我们只需要升级iptables指定内核目录,不需要从新编译内核。

 

       1.解压itptables源码包。

       注意:解压的目录随意,我们把它放在/usr/src/下。

 

# tar jzxvf iptables-1.4.2.tar.tar

# cd iptables-1.4.2

# pwd

/usr/src/iptables-1.4.2

      

2.升级iptables 安装。

注意:./configure 一般要指定内核路径,如果内核在默认路径就不需要指定。

 

# ./configure KERNEL_DIR=/usr/src/kernels/linux-2.6.28.4/

# make

# make install

 

如果没有错误,iptables ?CV 检查一下版本,成功。

三.内核打patch

说明:

为内核添加新的功能或模块,本次添加layer7ipp2ppatch,打patch有两种方法一种是源码包,另一种是./runme的形式。    版本支持很重要

 

Layer7-patch

 

  1. 解压补丁包

# tar zxvf netfilter-layer7-v2.22.tar.gz

# cd netfilter-layer7-v2.22  #里面一般有很多的patch,选择适合的内核版本的patch ,版本支持很重要

 

2.给内核打layer7补丁,是内核支持此选项

# cd /usr/src/kernels/linux-2.6.28.4

[root@bfz linux-2.6.28.4]#patch -p1 </root/netfilter-layer7-v2.22/kernel-2.6.25-2.6.28-layer7-2.22.patch

#make menuconfig   #选择对layer7的支持,如果没有找到,layer7要有Netfilter connction tarcking support的支持就会出现layer选项

# make

# make modules

# make modules_install

# make install

 

3iptables支持layer7,是iptables ?Cm layer7

# cd /usr/src/iptables-1.4.2

# patch -p1 </root/netfilter-layer7-v2.22/for_older_iptables/iptables-1.4-for-kernel-2.6.20forward-layer7-2.21.patch

#cd extensions

# chmod 777 .layer7-test   #给赋予执行权限

#cp /root/netfilter-layer7-v2.22/iptables-1.4.3forward-for-kernel-2.6.20forward/libxt_layer7.*  .   #把这两个文件cpextensions目录下,删除libipt_layer7*

# rm ?Crf libipt_layer7*

#./configure ?Cwith-kernel=/usr/src/kernels/linux-2.6.28.4/

#make

#make install

#iptables ?Cm layer7  #测试一下,是否支持,如果报错如下修改

会有一个提示错误:xtables_error 这个是layer7错误提示函数,但是现在iptables都用exit_error,所以把libxt_layer7.c里的xtables_error替换成exit_error就可以了,从新编译。

 

 

 

 

Ipp2p-patch

 

提示: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

      

  1. 编译内核,编译iptables即可

进入内核目录

#make menuconfig       #选择新添加的模块patch

#makemake modulesmake modules_installmake install

进入iptables目录

#./configure --with-kernel=/usr/src/kernels/linux-2.6.28.4

#make;make install

完成

 

结束:

以上都分步添加patch,可以一次添加都个在内核编译。

其他的patch 步骤和上边的都差不多,又不一样的看READMEHOWTO

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 1         
您的发言将按有关规定都会存档,您须为所发表后果负责,请您遵纪守法并注意语言文明。
标题:内核升级
热门关注
标题回复点击
d7se77dy/77dy电影. 77dy是77dy宽频和77dy1331673
黄网最新地址0903
IPP2P模块修改版,最新0.99.16440828
zeh 4.p patch on RHEL 30744
将 Puppy Linux 4.00 安装在U盘里 打造随身系统2695
Apache 超全0689
gcc glibc kernel 版本兼容性 reference0684
[保留]7667
d7se77dy/77dy电影. 77dy是77dy宽频和77dy156650
linux 有啥低级格式化硬盘的软件1644
搜索墙@2009 www.pkwall.com all rights reserved QQ:276471788 [京ICP备09111534号]
声明:本站部分数据来源于网络,仅供参考,如有版权问题,请联系我们,我们将及时删除!转载本站请注明来源