Chinaunix首页 | 论坛 | 博客
  • 博客访问: 203869
  • 博文数量: 57
  • 博客积分: 1694
  • 博客等级: 上尉
  • 技术积分: 481
  • 用 户 组: 普通用户
  • 注册时间: 2009-03-26 16:26
文章分类

全部博文(57)

文章存档

2011年(2)

2010年(37)

2009年(18)

我的朋友

分类: LINUX

2009-12-21 10:02:03

Linux kernel 升级文档

                                                                                                                2009-9-25 刘宇

 

参考资料:

 

软件列表:

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 –V 检查一下版本,成功。

三.内核打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 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 –m layer7

# cd /usr/src/iptables-1.4.2

# patch -p1 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 –rf libipt_layer7*

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

#make

#make install

#iptables –m 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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

阅读(1083) | 评论(0) | 转发(0) |
0

上一篇: ramdisk 制作过程

下一篇:openvp 配置 2

给主人留下些什么吧!~~