将MPLS编译进linux内核中
系统环境:linux kernel 2.6.35。(此环境是上一篇文章中将ubuntu内核替换后的环境)
编译过程如下:
1)首先需要下载patch文件:linux-kernel-v2.6.35-mpls1.980.patch。下载链接:
或者:
2)将下载后的patch文件拷贝到/usr/src/目录下。然后将此文件打进内核中,输入如下命令:
# cp linux-kernel-v2.6.35-mpls1.980.patch /usr/src //复制文件到/usr/src目录 # cd /usr/src/linux-2.6.35 //首先进入kernel主目录下 # patch -p1 < ../linux-kernel-v2.6.35-mpls1.980.patch //将patch文件加载到内核文件中。
3)将内核重新进行编译
$ cd /usr/src/linux-2.6.35 $ 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系统内核替换