如何编译Ubuntu 24.04内核?
如何编译Ubuntu 24.04内核?
我最近在物理服务器上装了Ubuntu 24.04 Server,先给大家看看当前的内核版本:
uname -r # 输出:6.8.0-38-generic
接下来我按照官方编译思路操作,选择用apt获取内核源码而非git,下载完成后,目录里的文件列表如下:
ls -al # 输出: total 226600 drwxrwxr-x 4 root root 4096 Jul 17 16:32 . drwxrwxrwx 6 root root 65 Jul 17 15:08 .. drwxr-xr-x 29 root root 4096 Jul 17 16:32 linux-6.8.0 -rw-r--r-- 1 root root 1919488 Jun 10 10:49 linux_6.8.0-38.38.diff.gz -rw-r--r-- 1 root root 9222 Jun 10 10:49 linux_6.8.0-38.38.dsc -rw-r--r-- 1 root root 230060117 Mar 15 09:29 linux_6.8.0.orig.tar.gz drwxr-xr-x 3 root root 83 Jul 17 17:01 linux-signed-6.8.0 -rw-r--r-- 1 root root 2620 Jun 10 10:49 linux-signed_6.8.0-38.38.dsc -rw-r--r-- 1 root root 26760 Jun 10 10:49 linux-signed_6.8.0-38.38.tar.xz
因为这次编译不需要修改任何配置文件,接下来我就按以下步骤完成编译:
- 先安装编译必需的依赖包:
sudo apt install build-essential libncurses-dev bison flex libssl-dev libelf-dev
- 复制当前系统的内核配置文件到源码目录,确保编译的内核适配当前系统:
cp /boot/config-$(uname -r) .config
- 用menuconfig确认配置(不需要修改的话直接保存退出即可):
make menuconfig
- 开始编译内核和模块,建议用
-j参数搭配nproc指定线程数,充分利用服务器性能加快编译:
make -j$(nproc) make modules_install make install
- 最后更新GRUB并重启系统,就能用上自己编译的内核了:
sudo update-grub sudo reboot
备注:内容来源于stack exchange,提问作者bsbcgy




