Centos7 内核源码编译 网桥 bridge模块

一、安装相应版本的内核源码

1、查看系统版本

2、Centos官网下载对应的源码

#http://vault.centos.org/

#wget http://vault.centos.org/7.8.2003/os/Source/SPackages/kernel-3.10.0-1127.el7.src.rpm

3、用rpm 安装

# rpm -i  kernel-3.10.0-1127.el7.src.rpm

如果提示:

Warning: user mockbuild does not exist. using root

安装 mock,并且新建一个mockbuild用户

# yum install mock

# useradd -s /sbin/nologin mockbuild

然后继续上一步

 # rpm -i  kernel-3.10.0-1127.el7.src.rpm

cd到根目录,会有一个rpmbuild目录

# cd ~/rpmbuild/SPECS 

4、然后 执行 rpmbuild

#rpmbuild -bp --target=$(uname -m) kernel.spec

 如果提示rpmbuild 没有安装

#yum install rpmbuild

然后继续上一步操作

#rpmbuild -bp --target=$(uname -m) kernel.spec

这时如果提示缺少一些依赖包,则yum install安装

然后继续

#rpmbuild -bp --target=$(uname -m) kernel.spec 

最后在 ~/rpmbuild/BUILD目录下就可以找到源码包了

 

二、bridge模块编译

1、.config文件配置

复制现在内核版本对应的.config文件

# cp /usr/src/kernels/3.10.0-1127.el7.x86_64/.config /root/rpmbuild/BUILD/kernel-3.10.0-1127.el7/linux-3.10.0-1127.el7.x86_64/

Load -> Ok-> Save-> Ok-> Exit-> Exit

2、复制 Module.symvers文件,不然编译的时候会提示

# insmod bridge.ko的时候会提示

#insmod: ERROR: could not insert module bridge.ko: Invalid module format

 

复制现有版本的Module.symvers文件 

# cp /usr/src/kernels/3.10.0-1127.el7.x86_64/Module.symvers /root/rpmbuild/BUILD/kernel-3.10.0-1127.el7/linux-3.10.0-1127.el7.x86_64/

 3、然后编译bridge模块

#cd /root/rpmbuild/BUILD/kernel-3.10.0-1127.el7/linux-3.10.0-1127.el7.x86_64/

#make oldconfig && make prepare && make scripts

#cd /root/rpmbuild/BUILD/kernel-3.10.0-1127.el7/linux-3.10.0-1127.el7.x86_64/net/bridge

#make CONFIG_BRIDGE=m -C /root/rpmbuild/BUILD/kernel-3.10.0-1127.el7/linux-3.10.0-1127.el7.x86_64/ M=`pwd` modules

4、最后安装bridge.ko模块

# insmod bridge.ko 

# insmod br_netfilter

///希望能对你有帮助。。。 

你可能感兴趣的:(linux,内核驱动,centos,linux,内核)