如何在 Debian 中安装和编译内核
使用 Linux 的最大吸引力之一是它易于定制,而定制最有趣的事情之一就是内核本身,它是 Linux 操作系统的核心。
您很可能永远不需要编译自己的内核。随发行版一起提供并通过包管理系统进行更新的版本通常就足够好了,但有时可能需要重新编译内核。
其中一些原因可能是特殊的硬件需求、创建整体内核而不是模块化内核的愿望、通过删除无用的驱动程序来优化内核、运行开发内核,或者只是了解有关 Linux 的更多信息。
在这种情况下,我们将在 Debian 系统上编译一个新发布的内核,其中包括一些新功能,例如显卡的新驱动程序,并对文件系统进行重大改进。
如何在 Debian 中编译内核
首先,我们需要一些包,即 build-essential 和 kernel headers。
sudo apt update
sudo apt install build-essential linux-headers-$(uname -r)
现在,访问官方内核网站下载所需的内核版本。或者,您可以使用以下命令直接下载源代码。
wget https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-6.7.tar.xz
tar -xvf linux-6.7.tar.xz
cd linux-6.7/
现在,我们需要配置内核,建议从当前使用的配置开始并在其基础上构建。为此,我们将现有配置从 /boot 目录复制到当前工作目录,并将其另存为 .config。
cp /boot/config-`uname -r` .config
要开始实际的配置过程,您有两个选择之一。
- 如果您安装了X11,则可以运行
make xconfig
,并且有一个漂亮的GUI菜单来帮助您配置内核。 - 如果您在CLI环境中运行,则可以运行
menuconfig
,但需要安装libncurses5-dev软件包才能使用它。
如果您使用 cli 环境,请确保安装 libncurses5-dev 软件包以启动内核配置过程,如图所示。
apt install libncurses5-dev
make menuconfig
正如您将看到的,一旦您选择了配置,您的内核就有大量不同的选项可用。事实上,对于本教程的范围来说,有太多的内容。
选择内核选项时,最好的方法是反复试验,并进行大量的谷歌搜索,这是最好的学习方法。如果您只是想将内核更新到最新版本,则无需更改任何内容,只需选择“保存配置”即可。因为我们将当前内核的配置文件复制到新内核的 .config
文件中。
请注意,在“可加载模块支持”中选择“内核模块加载器”。如果不是,并且您正在使用内核模块,则可能会严重搞乱事情。
现在使用以下命令启动内核编译过程,这将编译内核、安装模块并将必要的文件复制到引导目录。
make
make modules_install
make install
安装后,您只需重新启动,然后从GRUB菜单中选择新内核。
请务必密切注意启动过程期间的任何错误消息,以便解决任何问题。
要检查 Debian 中的新内核版本,您可以在终端中使用以下命令。
uname -r
如果您想查看已安装内核的列表,可以检查 /boot 目录的内容:
ls /boot
删除 Debian 中的旧内核
要删除 Debian 中的旧内核,首先需要列出已安装的内核,以使用 dpkg 命令识别要删除的内核。
dpkg --list | grep linux-image
要删除旧内核,请使用以下 apt 命令并确保将 linux-image-OLD_VERSION 替换为要删除的内核的版本号。
sudo apt purge linux-image-OLD_VERSION
删除旧内核后,更新 GRUB 以反映更改。
update-grub
总之,在 Debian 中编译内核是一项宝贵的技能,它允许用户根据特定需求定制操作系统,融入最新的功能和优化。