在 CentOS 上用 gcc 编译 Linux 内核,一般步骤如下(以 CentOS 7/8 为例,内核源码方式编译):
sudo yum groupinstall "Development Tools"
sudo yum install ncurses-devel bison flex elfutils-libelf-devel openssl-devel
CentOS 8 用
dnf代替yum
wget https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-6.x.y.tar.xz
tar -xvf linux-6.x.y.tar.xz
cd linux-6.x.y
yum install kernel-devel
源码一般在:
/usr/src/kernels/$(uname -r)
cp /boot/config-$(uname -r) .config
make oldconfig
make menuconfig
gcc --version
注意:新内核对 gcc 版本有要求(如 5.1+)
make -j$(nproc)
编译内容包含:
make → 编译内核(vmlinux、bzImage)make modules
sudo make modules_install
sudo make install
会生成:
/boot/vmlinuz-*/boot/initramfs-*sudo grub2-mkconfig -o /boot/grub2/grub.cfg
sudo reboot
启动后选择新内核:
uname -r
升级 gcc:
yum install centos-release-scl
yum install devtoolset-11
scl enable devtoolset-11 bash
make M=path/to/module
make clean
make mrproper
如果你愿意,可以告诉我:
我可以给你更精确的命令。