将MPLS编译进linux内核中

系统环境:linux kernel 2.6.35。(此环境是上一篇文章中将ubuntu内核替换后的环境)

编译过程如下:

1)首先需要下载patch文件:linux-kernel-v2.6.35-mpls1.980.patch。下载链接:

http://ftp.jaist.ac.jp/pub/sourceforge/m/project/mp/mpls-linux/mpls-linux/Patches/linux-kernel-v2.6.35.13-mpls1.980.patch

或者:

http://zh.sourceforge.jp/projects/sfnet_mpls-linux/downloads/mpls-linux/Patches/linux-kernel-v2.6.35.13-mpls1.980.patch/

2)将下载后的patch文件拷贝到/usr/src/目录下。然后将此文件打进内核中,输入如下命令:

# cp linux-kernel-v2.6.35-mpls1..patch /usr/src      //复制文件到/usr/src目录

# cd /usr/src/linux-2.6.                                         //首先进入kernel主目录下

# patch -p1 < ../linux-kernel-v2.6.35-mpls1..patch //将patch文件加载到内核文件中。

3)将内核重新进行编译

$ cd /usr/src/linux-2.6.

$ sudo make menuconfig

这时,终端会弹出一个配置界面,将mpls的选项选中,然后保存退出。

Networking options --->

Mulitprtocol Label Switching

IP:MPLSsuppor

另外:建议将MPLS直接编译进linux内核,而不要选择模块编译,如果选择模块的话,则在系统编译完成后可能不会自动加载,这样就可能导致mpls服务无法启动。

    即在选中与mpls相关选项时,选择y, 即:“*”,它表示编译进系统内核。而不要选择M,这表示模块。

4)再次编译内核,依次输入如下命令。

$ sudo make mrproper  //清除以前曾经编译过的旧文件,如果你是第一次编译,可不执行。

$ sudo make                //重新编译内核,此过程需要较长时间。直接使用此命令可能有出现问题,可以使用:sudo make CONFIG_DEBUG_SECTION_MISMATCH=y

$ sudo make install     

$ sudo make modules  //编译模块

$ sudo make modules_install //安装模块

编译完成后,mpls模块安装完成。

注意,在编译内核时可能会出现各种错误,关于错误的解决方案可以参考本博客:ubuntu系统内核替换

上一篇:linux内核系列(一)编译安装Linux内核 2.6.18


下一篇:Ubuntu配置SSH服务