将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.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系统内核替换

时间: 2024-10-11 07:20:10

将MPLS编译进linux内核中的相关文章

【转】6.4.6 将驱动编译进Linux内核进行测试

原文网址:http://www.apkbus.com/android-98520-1-1.html 前面几节都是将Linux驱动编译成模块,然后动态装载进行测试.动态装载驱动模块不会随着Android系统的启动而自动装载,因此Android系统每次启动都必须使用insmod或modprobe命令装载Linux驱动模块. 对于嵌入式系统(包括嵌入式Android.嵌入式Linux等)一般都采用将Linux驱动编译进内核的方式.这样做虽然没有动态装载灵活,但Linux驱动会随着Android的启动而

详解将驱动程序编译进linux内核

1.进入目录linux-kernel-samsung-dev\drivers\char 2.新建目标目录01.led,将驱动相关文件复制到此目录 注:需确保复制的驱动文件是能正常运行的驱动 3.在目录01.led里编写Kconfig文件 menu "xxx" config XXX_LED tristate "xxx_ggg210_led" default n help The led water made by xxx which was used by platf

静态编译进Linux内核

一.准备好可以正常引导开发板的源码 二.在内核源码kernel文件夹的driver目录下,创建led_arm文件夹 mkdir drivers/led_arm 三.将"LED驱动实验"的驱动程序拷贝到led_arm目录下(详情见上一次LED驱动博客) 将led.c拷贝在该文件夹下面 Kconfig就是对应着内核的配置菜单.假如要想添加新的驱动到内核的源码中,可以通过修改Kconfig来增加对我们驱动的配置菜单,这样就有途径选择我们的驱动. 每个config菜单项都要有类型定义,bool

编译安装linux内核步骤

编译安装linux内核步骤: 一.获取内核源码 源码网址:www.kernel.org 二.解压内核源码 首先以root帐号登录,然后进入/usr/src子目录.如果用户在安装Linux时,安装了内核的源代码,则会发现一个linux-x.y.z的子目录.该目录下存放着内核x.y.z的源代码.此外,还会发现一个指向该目录的链接linux.删除该连接,然后将新内核的源文件拷贝到/usr/src目录中,并解压:     # tar zxvf Linux-2.3.14.tar.gz 文件释放成功后,在/

【总结】嵌入式linux内核中Makefile、Kconfig、.config的关系及增加开机Hello World【转】

本文转载自:http://blog.csdn.net/fengyuwuzu0519/article/details/73772109 为了弄清内核的组织结构,我们先来实现下面这个简单的例子. 一.增加内核启动Hello World 任务: 内核启动的时候加载Hello驱动,并打印出Hello World 步骤: (1)在drivers目录下新建hello文件夹,在里面实现相应的hello.c.Makefile.Kconfig (2)修改上一级(Linux-3.4.2/drivers下)的Make

[翻译] Linux 内核中的位数组和位操作

Linux 内核里的数据结构 [TOC] 原文链接与说明 https://github.com/0xAX/linux-insides/blob/master/DataStructures/bitmap.md 本翻译文档原文选题自 Linux中国 ,翻译文档版权归属 Linux中国 所有 Linux 内核中的位数组和位操作 除了不同的基于链式和树的数据结构以外,Linux 内核也为位数组或位图提供了 API.位数组在 Linux 内核里被广泛使用,并且在以下的源代码文件中包含了与这样的结构搭配使用

第01节:Linux 内核中的 C 语言语法扩展

1.1 Linux 内核驱动中的奇怪语法 大家在看一些 GNU 开源软件,或者阅读 Linux 内核.驱动源码时会发现,在 Linux 内核源码中,有大量的 C 程序看起来"怪怪的".说它是C语言吧,貌似又跟教材中的写法不太一样:说它不是 C 语言呢,但是这些程序确确实实是在一个 C 文件中.此时,你肯定怀疑你看到的是一个"假的 C 语言"! 比如,下面的宏定义: #define mult_frac(x, numer, denom)( { typeof(x) quo

Linux内核中的jiffies及其作用介绍及jiffies等相关函数详解

在LINUX的时钟中断中涉及至二个全局变量一个是xtime,它是timeval数据结构变量,另一个则是jiffies,首先看timeval结构struct timeval{time_t tv_sec; /***second***/susecond_t tv_usec;/***microsecond***/}到底microsecond是毫秒还是微秒?? 1秒=1000毫秒(3个零),1秒=1000 000微秒(6个零),1秒=1000 000 000纳秒(9个零),1秒=1000 000 000

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

1.配置环境 操作系统:CentOS 5.2 下载linux-2.6.18版本的内核,网址:http://www.kernel.org 说明:该编译文档适合2.6.18以上的Linux内核版本,只需所编译的 Linux内核版本不能低于Linux操作系统自身的内核版本,不然会遇到很多问题:   2.开始编译 cp  ./ linux-2.6.18.tar.gz  /usr/src/ tar –zxvf ./linux-2.6.18.tar.gz cd /usr/src/linux-2.6.18 /