使用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环境中运行,则可以运行
make
menuconfig
,但需要安装libncurses5-dev软件包才能使用。
如果使用CLI环境,请确保安装libncurses5-dev软件包以启动内核配置过程,命令如下:
apt install libncurses5-dev make menuconfig
正如上图看到的,一旦选择了配置,你的Kernel就有大量不同的选项可用。事实上,对于本文教程的范围来说,有太多的选择内容。
选择Kernel选项时,最好的方法是反复实践试验,并在网上搜索大量资料,这是最好的学习方法。如果你只是想将内核更新到最新版本,则无需更改任何内容,只需选择“Save ”即可,因为我们已经将当前内核的配置文件复制到新内核的.config
文件中。
请注意,“Loadable module support”中选择“Kernel module loader”。如果不是的话,并且你正在使用内核模块,那么它可能会出现严重错误:
现在使用以下命令启动内核编译过程,该过程将编译内核、安装模块并将必要的文件复制到引导目录:
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中编译内核是一项宝贵的技能,它允许用户根据特定需求定制操作系统,融入最新的功能和优化。如果你还不知道如何在Debian系统中安装和编译内核,那么可以按照上述教程进行操作。