编译Ubuntu 24.04 LTS 内核(BuildYourOwnKernel)
1、配置环境
修改apt源
修改 /etc/apt/sources.list.d/ubuntu.sources
,添加 "deb-src"到 Types:
,修改后的文件内容如下:
Types: deb deb-src URIs: http://cn.archive.ubuntu.com/ubuntu/ Suites: noble noble-updates noble-backports Components: main restricted universe multiverse Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg Types: deb URIs: http://security.ubuntu.com/ubuntu/ Suites: noble-security Components: main restricted universe multiverse Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg
安装依赖包
如果依赖包安装失败,提示不满足依赖,请检查apt源修改是否正确
sudo apt update sudo apt build-dep linux linux-image-unsigned-$(uname -r) sudo apt install fakeroot llvm libncurses-dev dwarves gawk flex bison openssl libssl-dev dkms libelf-dev libudev-dev libpci-dev libiberty-dev autoconf git
获取内核源码
这里只想修改内核,不想升级内核,因此下载了当前版本的内核源码,内核源码下载在执行apt source的路径下
cd ~ apt source linux-image-unsigned-$(uname -r)
2、编译内核
预处理内核源码
在编译内核前需要对内核源码进行以下处理
cd <内核源码的目录> chmod a+x debian/rules chmod a+x debian/scripts/* chmod a+x debian/scripts/misc/* fakeroot debian/rules clean
修改内核配置
如果想要修改内核defconfig,使用以下指令。如果不想修改,跳过当前步骤
cd <内核源码的目录> fakeroot debian/rules editconfigs
编译内核
执行以下命令来编译内核
cd <内核源码的目录> fakeroot debian/rules clean fakeroot debian/rules binary
3、安装内核
安装内核
如果构建成功,将会在源码根目录的上级目录中生成几个.deb二进制包文件。
cd <内核源码的目录>/../ sudo dpkg -i linux-headers-<内核版本>*_all.deb sudo dpkg -i linux-headers-<内核版本>-*.deb sudo dpkg -i linux-image-unsigned-<内核版本>-*.deb sudo dpkg -i linux-modules-<内核版本>-*.deb sudo reboot
如我的内核源码版本是6.8.0-51-generic,生成的文件如下:
linux-buildinfo-6.8.0-51-generic_6.8.0-51.52_amd64.deb linux-cloud-tools-6.8.0-51_6.8.0-51.52_amd64.deb linux-cloud-tools-6.8.0-51-generic_6.8.0-51.52_amd64.deb linux-cloud-tools-common_6.8.0-51.52_all.deb linux-doc_6.8.0-51.52_all.deb linux-headers-6.8.0-51_6.8.0-51.52_all.deb linux-headers-6.8.0-51-generic_6.8.0-51.52_amd64.deb linux-image-unsigned-6.8.0-51-generic_6.8.0-51.52_amd64.deb linux-libc-dev_6.8.0-51.52_amd64.deb linux-lib-rust-6.8.0-51-generic_6.8.0-51.52_amd64.deb linux-modules-6.8.0-51-generic_6.8.0-51.52_amd64.deb linux-modules-extra-6.8.0-51-generic_6.8.0-51.52_amd64.deb linux-modules-ipu6-6.8.0-51-generic_6.8.0-51.52_amd64.deb linux-modules-iwlwifi-6.8.0-51-generic_6.8.0-51.52_amd64.deb linux-modules-usbio-6.8.0-51-generic_6.8.0-51.52_amd64.deb linux-source-6.8.0_6.8.0-51.52_all.deb linux-tools-6.8.0-51_6.8.0-51.52_amd64.deb linux-tools-6.8.0-51-generic_6.8.0-51.52_amd64.deb linux-tools-common_6.8.0-51.52_all.deb linux-tools-host_6.8.0-51.52_all.deb
检查内核
安装完成后使用以下命令观察内核版本号和构建日期是否发生变化
uname -a
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· AI 智能体引爆开源社区「GitHub 热点速览」