内核定制并不适合所有人。请注意,在你尝试任何这可能会打破你的系统。
有一大堆原因让你想定制你的内核。您可能希望将内核精简到只需要必要的服务,尤其是在运行只需要基本服务的服务器或专用设备时。您可能还需要修补内核以支持当前运行的内核不支持的硬件。
本文将不解释如何修补内核,只解释如何定制当前内核。我将有另一篇后续文章来解释如何修补内核,以及为什么要这么做的一些实际原因。
首先,我们需要弄清楚当前运行的内核版本。我们将使用uname命令
$ uname -r
2.6.17-10-generic
现在我们需要为内核安装linux源代码,请注意,我正在运行2.6.17-10内核,因此安装程序行反映了这一点。在本文中,您可以用内核号代替正在运行的任何内容。我们还需要安装curses库和一些其他工具来帮助我们编译。
sudo apt-get install linux-source-2.6.17 kernel-package libncurses5-dev fakeroot
如果您想知道linux源代码安装到哪里,可以使用dpkg命令告诉您包中的文件。以下是我系统的输出:
$ dpkg -L linux-source-2.6.17 /. /usr /usr/src /usr/src/linux-source-2.6.17.tar.bz2 /usr/share /usr/share/doc /usr/share/doc/linux-source-2.6.17 (trimmed)
我们可以看到源代码已安装到压缩文件中的/usr/src目录。
为了使事情更简单,我们将使用sudo打开一个新shell,从而将自己置于root模式。有其他的方法,但我更喜欢这种方法。
sudo /bin/bash
现在将目录更改为源位置,以便安装。请注意,如果没有安**unzip实用程序,则可能需要安装它。(那是我的)
cd /usr/src
bunzip2 linux-source-2.6.17.tar.bz2
tar xvf linux-source-2.6.17.tar
ln -s linux-source-2.6.17 linux
**一个现有内核配置的副本,用于自定义编译过程。注意`字符是波浪号下面的字符~
cp /boot/config-`uname -r` /usr/src/linux/.config
现在我们将启动一个实用程序,让我们自定义内核:
cd /usr/src/linux
make menuconfig
首先,向下加载一个备用配置文件,然后加载.config文件。(按回车键)
现在我们已经在实用程序中了,可以为自定义内核设置选项了。导航很简单,如果你迷路了,上面会有一个传说。我决定选择“网络”并按Enter键进入该类别。
业余无线电支持?到底是为了什么安装的?您会注意到,它是内核的内置。
按按钮?键,我们可以看到特定项目的帮助。解释如下:
好吧,我要马上停用它。到底为什么要在我的内核中安装呢?我按Esc退出帮助屏幕,然后按N将其从内核中排除。
当你完成任何你想要的选择,点击退出,并保存配置时提示。
现在我们已经准备好编译配置了。首先,我们要做一个makeclean,以确保一切都准备好进行编译。
make-kpkg clean
接下来我们将实际编译内核。这将需要很长的时间,所以去寻找一些有趣的事情做。
fakeroot make-kpkg –initrd –append-to-version=-custom kernel_image kernel_headers
这个过程将在/usr/src中创建两个包含内核的.deb文件。linux映像****文件是实际的内核映像,另一个文件包含可以用dpkg安装的。文件名在您的系统上可能会有所不同。
请注意,当您运行这些下一个命令时,这将把新内核设置为新的默认内核。这会弄坏东西的!如果您的机器没有启动,您可以在GRUB加载菜单中点击Esc,然后选择旧内核。然后可以在/boot/grub中禁用内核/菜单.lst或者再次尝试编译。
dpkg -i linux-image-2.6.17.14-ubuntu1-custom_2.6.17.14-ubuntu1-custom-10.00.Custom_i386.deb
dpkg -i linux-headers-2.6.17.14-ubuntu1-custom_2.6.17.14-ubuntu1-custom-10.00.Custom_i386.deb
现在重新启动你的机器。如果一切正常,您应该运行新的自定义内核。您可以使用uname检查这一点。请注意,您的机器上的确切数字将有所不同。
uname -r
2.6.17.14-ubuntu1-custom
我计划写一系列关于内核定制的文章,所以订阅RSS提要进行更新。
另外,为了充分披露,我从HowtoForge的文章中学习了如何做到这一点,这是一个很好的网站,提供了一些非常高级的linux教程。您会注意到,本文中的许多步骤都是类似的,尽管我试图使本文更“Ubuntu”。
... UbuntuMate和LinuxMint都使用Ubiquity安装程序。如果你知道如何安装一个,你可以安装另一个。这种经历并不完全相同,但非常相似。 ...
... 在编译内核之前,您需要告诉GCC您希望如何完成它。您可以使用名为make的命令行工具来执行此操作。键入以下命令: ...
...简单的事——它需要相当多的知识。我们之前已经讨论过如何做到这一点,但是如果您希望不必大惊小怪地获得最新和最棒的,并且您正在运行Ubuntu,那么您可能会喜欢一种更自动化的Ukuu形式的解决方案。 ...
...不能为你回答这个问题,但我可以给你一些理由,为什么你的决定可能是肯定的。 ...
...何支持问题。使用各种Ubuntu派生工具(如Lubuntu和Xubuntu)定制用户体验的空间很大,这使它成为最好的Linux编程发行版的有力竞争者。 ...
... 想要更好地理解这一切是如何与Ubuntu兼容的吗?查看我们的Ubuntu启动指南。如果你准备好了,现在可能是时候升级到ubuntu19.04了。 ...
...19.04“Disco Dingo”就可以享受Linux内核5.0的好处。下面介绍如何在不更新的情况下在Ubuntu中升级Linux内核。 ...
... 如果你不想重新学习如何使用电脑,吃肉桂可以帮你省去一些头痛。它是Linux Mint中的默认桌面环境。 ...