在 CentOS 7 中编译内核模块并精简内核的步骤如下:
编译内核模块
-
安装必要的软件包:
sudo yum install kernel-devel-$(uname -r) kernel-headers-$(uname -r) gcc make
-
编写模块源代码:
- 创建
.c
文件并编写内核模块代码。
- 创建
-
创建 Makefile:
obj-m += mymodule.o all: make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules clean: make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean
-
编译模块:
make
-
加载模块:
sudo insmod mymodule.ko
-
卸载模块:
sudo rmmod mymodule
精简内核
-
安装内核源码:
sudo yum install kernel-devel kernel-tools kernel-tools-libs
-
获取内核源码:
- 下载并解压内核源码。
-
配置内核:
cd /usr/src/kernels/$(uname -r)/ cp -v /boot/config-$(uname -r) .config make menuconfig
- 使用
make menuconfig
精简内核配置,禁用不需要的模块。
- 使用
-
编译内核:
make make modules_install make install
-
更新引导加载程序:
sudo grub2-mkconfig -o /boot/grub2/grub.cfg
-
重启系统:
启并选择新内核。