- 下载内核源码
dnf install -y kernel-source
- 下载编译源码的依赖软件包
dnf install -y rpm-build openssl-devel bc rsync gcc gcc-c++ flex bison m4 elfutils-libelf-devel
- 如果需要向内核合入patch,请从官网下载对应的patch文件,执行以下命令将patch合入内核源码
patch -d /usr/src/ linux-4.19.90-2202.1.0.0136.oe1.x86_64 -p1 < patch_file
- 进入linux源码主目录
cd /usr/src/linux-4.19.90-2202.1.0.0136.oe1.x86_64/
- 修改内核的版本号,Makefile的前4个参数和版本号相关,可进行修改,修改的版本号需要比当前系统使用的内核版本号高,否则无法进行安装
vi Makefile
- 编译config文件
make openeuler_defconfig
(如果需要修改config文件,该文件在/usr/src/linux-4.19.90-2202.1.0.0136.oe1.x86_64/arch/x86/config 目录下)
- 编译内核
make binrpm-pkg -j{num}
-j参数表示指定多线程编译,最大线程数量为CPU核数。
- 编译完成后查看对应目录下生成的内核rpm包。
ll root/rpmbuild/RPMS/x86_64
- 安装内核
rpm -ivh /root/rpmbuild/RPMS/x86_64/kernel-4.19.91-1.x86_64.rpm
- 查看安装完成的内核
rpm -qa | grep kernel
- 重启机器,在进入内核选择页面时,选择编译安装的内核
- 查看当前系统的内核版本
uname -r
- 执行以下命令可以单独编译内核驱动
make ARCH=x86_64 CONFIG_IGC=m drivers/net/ethernet/intel/igc/igc.ko