1: 下载对内核版本
a:
https://cdn.kernel.org/pub/linux/kernel/v3.x/linux-3.10.tar.bz2
或者:
b:
https://vault.centos.org/7.9.2009/os/Source/SPackages/kernel-3.10.0-1160.el7.src.rpm
# rpm -ivh kernel-3.10.0-1160.el7.src.rpm
cp ~/rpmbuild/SOURCES/linux-3.10.0-1160.el7.tar.xz ./linux
cp ~/rpmbuild/SOURCES/kernel-3.10.0-x86_64.config ./linux/
cp ~/rpmbuild/SOURCES/kernel-3.10.0-x86_64-debug.config ./linux/
2:编译环境
#yum -y install gcc gcc-c++ make ncurses-devel bison flex elfutils-libelf-devel openssl-devel
#yum -y install rpm-build
编译内核
创建配置文件
a:新创建配置
make menuconfig
保存 config name .config
b:或者从当前系统上拷贝
cp /boot/config-3.10.0-1160.el7.x86_64 .configs
make oldconfig
执行编译
make all
进行编译
编译内核并打包
#mkdir -p ~/rpmbuild/{BUILD,BUILDROOT,RPMS,SOURCES,SPECS,SRPMS}
cp ./kernel.spec /root/rpmbuild/SPECS/
cp linux-3.10.tar.bz2 /root/rpmbuild/SOURCES/
rpmbuild -bb /root/rpmbuild/SPECS/kernel.spec --with baseonly --without debug --without debuginfo
如果仅仅加载编译模块如nbd
cp drivers/block/nbd.ko /lib/modules/3.10.0-1160.el7.x86_64/kernel/drivers/block/
depmod -a
modprobe nbd
注意编译错误:
drivers/block/nbd.c:619