我已经编译了自己的内核一段时间了。当我得到我的 i7 处理器并希望它的涡轮增压能够正常工作时,我就开始了。我已经购买了 SSD,因此继续受益于比 repo 版本更新的内核。
在我最近的构建中,我开始出现奇怪的 CPU 峰值。虽然这可能是由许多不同的原因造成的,但我想专注于让内核“正确”,并且如果可能的话,比以往任何时候都更加优化。
我关注Kernel/Compile wiki上的“Old-Fashioned Debian” 。我这样做是因为我是从kernel.org的直接下载中构建的。第一个问题:我应该从其他地方获取源代码吗?我应该使用不同的构建方法吗?
该指南建议像这样获取电流.config
:
cp -vi /boot/config-`uname -r` .config
如果您当前的配置运行良好,这一切都很好,但我担心我的配置存在问题...第二个问题:我可以从某个地方下载一个对 Ubuntu 友好、对 i7 友好的默认.config
文件吗?
目前有很多内核补丁。有些人承诺通过修补 IO 错误来提供更灵敏的系统,有些人会提供“更好的”调度程序(BFS 等),但很难找到像样的基准来判断这些是否是有价值的特性,如果它们只是不稳定的垃圾。第三:您是否会为 2.6.35 应用任何补丁以使其与 Lucid 更兼容?
我担心这是make menuconfig
我把事情搞砸的地方。我尝试关闭我不需要的驱动程序并选择看起来可以优化事物的选项,但说实话,我不是内核开发人员;我不确定一个选项是否会破坏一切,甚至根本没有帮助。第四:您将如何优化.config
i7 和 SSD 的 /build-process?
从我的角度来看,kernel.org是获取内核的正确位置。通常我从主线克隆 git 存储库。也许您也可以使用最新的香草内核并应用来自 Ubuntu 的补丁。您可以在linux-image 包页面上找到差异。请注意,您可能需要解决一些冲突。所以第一个版本可能更好。
我猜你在野外找不到任何好处
.config
。我发现有用的是make localmodconfig
内核源代码。首先,您将旧配置复制到/usr/src/linux-2.6
(或内核源所在的位置),然后执行此命令。它将禁用所有未加载的模块。因此,您首先获得了更多的自定义。我不知道有什么补丁对 Lucid 有好处。
我是当地LUG的成员。我们不时举办内核研讨会。所有成员在这里聚会。我们配置一个内核,并谈论我们对不同条目的了解。最终,所有人都从中受益,这有助于构建更好的内核。因此,如果我寻求优化,我会询问我们的成员。如果这不是一个选项,阅读Linux 内核邮件列表也可以帮助找到解决方案。你会经常发现一些很有帮助的讨论。
有一个主线内核 PPA: https ://wiki.ubuntu.com/Kernel/MainlineBuilds
除非您尝试解决特定问题(您在使用 Ubuntu 股票 ekernel 时遇到的问题),否则您尝试使用 Ubuntu 内核上不可用的特定功能/选项,您可能只是在浪费时间。
如果您当前的内核确实有问题,请在启动板提交错误报告。
您没有提及您正在构建的内核版本。因为您询问了 Lucid 的补丁,所以我假设这就是您要调整的内容。
我的建议是不要浪费你的时间。Ubuntu Kernel 团队将上游稳定版本团队发布的所有补丁应用到 Lucid(以及其他版本)。您可能可以通过手动调整配置参数从内核中获得更多性能,但如果确实有改进,您将不得不花费更多时间来尝试衡量改进。留在股票内核并从 Ubuntu 获取修补内核会好得多。随着错误的发现和修复,这些补丁可以包含性能改进。
您可能会看到 CPU 峰值的原因可能是由于最近在上游修复了一些内核错误,并且补丁现在正在进入 Lucid。
一旦你开始构建你自己的内核,你现在就承担着维护它的补丁和重建的责任。这就是 Canonical 付钱给人们做的事情,所以你不必这样做。你的时间确实有更好的事情要做。