较新的“主线”内核版本可从Ubuntu 内核团队,例如 3.4 和 3.5,而 Ubuntu 12.04 使用的是 3.2。
- 什么是主线内核?
- 它们比我现有的内核更好吗?
- 升级到主线内核有哪些优缺点?
- 我能轻易回去吗?
答案1
升级到主线内核通常不是一个好主意
本答案中的大部分基本信息来自主线构建 wiki
1. 它们仅用于测试,不受支持
- 主线内核是根据最新的未修改的“主线”Linux 内核源构建的。
- Ubuntu 内核团队提供了这些仅有的用于测试和调试目的,查看问题是否已在“上游”修复,即由Linux内核开发人员。
- 因此它们不受支持,必须使用风险自负;你可以通过以下方式向 kernel.org 报告可能的错误内核循环或者如果你想要更快的解决方案,请尝试发布到Linux 内核邮件列表
2. 它们经常会破坏驱动程序,尤其是 Nvidia/AMD 和无线 (Broadcom)
- 主线内核不包含任何 Ubuntu 提供的驱动程序或补丁
- 这意味着没有二进制驱动程序提供图形、无线等
- 如果您尝试安装直接从制造商处下载的二进制驱动程序,很有可能它们无法工作,因为主线标头可能不兼容。
- 对于 12.04 之后的非 LTS 版本(12.10、13.04 等)尤其如此,因为主线内核是使用最新的长期支持服务工具链(编译器等),通常比最新非 LTS 版本上的工具链旧。
3. 只有当你认为它们可能修复当前内核的一个关键问题时,你才应该安装它们
- 较新的内核有时会修复您可能遇到的硬件或文件系统问题。例如,最新的英特尔常春藤桥CPU 偶尔会冻结,一个错误该问题已在内核 3.3.6 及更新版本中修复。
- 在这种情况下,您可以尝试安装主线内核,看看它是否可以解决您的问题。
- 如果确实如此,你应该考虑升级到最新的 Ubuntu+1 内核,它确实有可用的二进制驱动程序。
4. 如果您安装了主线或其他较新的内核,您仍然可以选择在启动时使用旧(稳定)内核:
Shift打开计算机后一直按住。
您将看到如下所示的 Grub 菜单。使用向下箭头转到“以前的 Linux 版本”,然后按Enter
选择具有以下版本的选项xxx-通用,而不是一个有xxx-年份-通用的然后按Enter。除非您安装了多个主线/自定义内核,否则这通常是第一个选项。
答案2
你应该考虑 LTS 支持堆栈,而不是主线
https://wiki.ubuntu.com/Kernel/LTSEnablementStack
其中,较新的内核/图形堆栈已正式反向移植,仅适用于 LTS Ubuntu 版本。
在这种情况下,Precise 12.04.5 具有 Trusty 的内核 (3.13)
答案3
如果您知道新内核在处理硬件方面的具体修复或改进,我建议您去做吧。
由于缺乏支持,我不会升级到主线内核,但我遇到了一些问题,N64 游戏模拟运行非常缓慢,并且有很多错误。在尝试了所有我能找到的模拟器和 xorg 的配置后,我读到这就是为什么 Radeon 显卡在 Linux 3.12 上速度更快。这足以激励我去测试它,外观和性能的结果令人惊叹,到目前为止没有出现任何新问题。
需要注意的一点是,你是否安装了外部模块(又称树外模块)(请参阅识别树外模块了解这些模块的位置)。如果您需要这些模块,请考虑它们是否针对新内核版本进行构建。做一些研究并在新内核版本上亲自测试它们。最坏的情况是,您可以启动到以前的内核版本并卸载新版本。
建议删除外部或专有模块在尝试升级到主线内核之前。我确实必须删除 virtualbox 以避免在内核安装期间出现“错误!模块构建的返回状态错误”。
答案4
绝对不行,除非用于测试目的。就在昨天(2021-09-15),我安装了 5.14.4 内核(系统:Ubuntu 20.04),遇到了以下非常奇怪的行为:在我的 PHP 代码中设置时间限制(0)通话导致最大执行时间 设置0秒!
这只是我遇到的一个 bug,但我确信还有很多。总而言之,我不建议安装主线内核。