温馨提示×

centos如何用gcc编内核

小樊
36
2026-10-20 07:02:30
栏目: 智能运维

在 CentOS 上用 gcc 编译 Linux 内核,一般步骤如下(以 CentOS 7/8 为例,内核源码方式编译):


一、准备编译环境

1. 安装必要工具

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

方式二:使用 CentOS 自带源码(推荐)

yum install kernel-devel

源码一般在:

/usr/src/kernels/$(uname -r)

三、配置内核

1. 使用当前内核配置

cp /boot/config-$(uname -r) .config
make oldconfig

2. 自定义配置(可选)

make menuconfig

四、使用 gcc 编译内核

1. 查看 gcc 版本

gcc --version

注意:新内核对 gcc 版本有要求(如 5.1+)

2. 开始编译

make -j$(nproc)

编译内容包含:

  • make → 编译内核(vmlinux、bzImage)
  • 自动调用 gcc

五、编译并安装模块

make modules
sudo make modules_install

六、安装内核

sudo make install

会生成:

  • /boot/vmlinuz-*
  • /boot/initramfs-*
  • 更新 grub

七、更新引导并重启

CentOS 7/8

sudo grub2-mkconfig -o /boot/grub2/grub.cfg
sudo reboot

启动后选择新内核:

uname -r

八、常见问题

1. gcc 版本太低

升级 gcc:

yum install centos-release-scl
yum install devtoolset-11
scl enable devtoolset-11 bash

2. 只编译模块

make M=path/to/module

3. 清理编译

make clean
make mrproper

如果你愿意,可以告诉我:

  • CentOS 版本(7 / 8 / Stream)
  • 内核版本
  • 是 整内核编译 还是 只编译驱动模块

我可以给你更精确的命令。

0 踩