一、安装相应版本的内核源码
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
///希望能对你有帮助。。。