提醒一句:最好先确认你的磁盘剩余空间不少于 15GB,不然编译到一半报错可就尴尬了。
在 Ubuntu 中编译内核的三种方式
方式 A:使用 Git 获取源码
如果你想始终紧跟 Ubuntu 最新内核源码,更推荐使用 Git。具体细节可以参考《内核 Git 指南》获取更多信息。需要注意的是,Git 仓库本身并不包含一些必要的控制文件,所以拉取代码后,得先通过下面这条命令来生成它们:
fakeroot debian/rules clean
方式 B:下载源码归档包
这种方法适合那些想基于标准 Ubuntu 软件包,并额外打上自定义补丁的用户。执行下面的命令,可以自动安装编译所需的依赖,并将源码提取到当前目录:
sudo apt-get build-dep linux-image-`uname -r`
方式 C:下载源码包并手动构建
这种方式更灵活,适合想深入修改源码或尝试 Ubuntu 补丁版内核的玩家。
-
首先,从官方渠道获取最新的内核源码压缩包。
-
解压后进入源码目录:
tar xf linux-*.tar.gz
cd linux-*
-
启动 ncurses 图形化配置界面:
make menuconfig
在弹出的菜单里,如果你想直接用默认配置,按方向键 → 移动到 <Save> 选项,敲回车保存,然后再敲一下回车确认即可退出。
-
万事俱备,开始编译:
make
小贴士:想要快一点?可以加上 -j 参数来并行编译,充分利用多核 CPU 的性能,例如 make -j$(nproc)。
编译完成后,压缩过的内核镜像就躺在 arch/[arch]/boot/bzImage 目录里了。这里的 [arch] 通常就是 uname -m 命令输出的架构名称,比如 x86_64。
整个流程看起来步骤不少,但核心无非就是下载源码、配置裁剪、编译三板斧。如果对 操作系统内核构建 的底层机制感兴趣,你会发现整个编译过程其实就是一次理论与实践的完美结合。当然,如果你在编译过程中遇到某些依赖或工具链的问题,也别灰心,这类问题多半和基础的 Linux 系统底层原理 有着千丝万缕的联系,排查起来还是很有意思的。
|