问题描述
较新的”mainline”版本的内核可从Ubuntu kernel team获得,例如: 3.4和3.5,而Ubuntu 12.04是3.2。
-
什么是主线内核?
-
它们比我现有的内核更好吗?
-
升级到主线内核的优缺点是什么?
-
我能轻松回去吗?
最佳解决办法
升级到主线内核通常不是一个好主意
Most of the basic information in this answer is from the Mainline Builds wiki
1.它们仅用于测试且不受支持
-
主线内核是从最新的未修改的”mainline” Linux内核源代码构建的。
-
Ubuntu内核团队仅提供这些用于测试和调试目的,以查看是否已修复问题”upstream”,即Linux内核开发人员。
-
因此,它们不受支持,必须由您自担风险;您可以通过kernel-oops向kernel.org报告可能的错误,或者如果您想要更快的解决方案,请尝试发布到Linux Kernel Mailing List
他们经常打破司机,尤其是Nvidia /AMD和无线(Broadcom)。
-
主线内核不包含任何Ubuntu-provided驱动程序或补丁
-
这意味着不提供用于图形,无线等的二进制驱动程序
-
如果您尝试安装直接从制造商处下载的二进制驱动程序,则很可能它们无法工作,因为主线标题可能不兼容。
-
对于12.04(12.10,13.04,…)之后的non-LTS版本尤其如此,因为主线内核是使用最后的LTS工具链(编译器等)构建的,这通常比最新的non-LTS版本上的工具链更旧。 。
-
3.如果您认为可以解决当前内核遇到的严重问题,则应该只安装这些
-
较新的内核有时会包含您可能遇到的硬件或文件系统问题的修复程序。例如,最新英特尔Ivy Bridge CPU上的内部HD4000图形偶尔会冻结,a bug固定在内核3.3.6及更新版本中。
-
您可以尝试在这些情况下安装主线内核,看看它是否有助于解决您的问题。
-
如果是这样,你应该考虑升级到最新的Ubuntu + 1内核,它有可用的二进制驱动程序。
4.如果安装主线或其他较新的内核,您仍然可以选择使用旧的(稳定)内核,方法是在boot-time中选择它:
-
打开计算机后按住
Shift
。 -
您将看到Grub菜单,如下所示。用户向下箭头转到“以前的Linux版本”并按
Enter
-
选择版本为x.x.x-generic的选项,而不是具有x.x.x-yyyyyy-generic且按
Enter
的选项。除非您安装了多个主线/定制内核,否则这通常是第一个选项。
次佳解决办法
而不是主线,您应该考虑LTS启用堆栈
https://wiki.ubuntu.com/Kernel/LTSEnablementStack
其中,较新的内核/图形堆栈正式向后移植,仅适用于LTS Ubuntu版本。
在这种情况下,Precise 12.04.5有Trusty的内核(3.13)
第三种解决办法
如果您知道新内核如何处理硬件的具体修复或改进,我会说它。
由于缺乏支持,我不会升级到主线内核,除了我在N64游戏模拟运行非常缓慢且有很多错误时遇到了一些麻烦。在尝试了我为模拟器和xorg找到的每个配置之后,我读了Here’s Why Radeon Graphics Are Faster On Linux 3.12。这足以激励我测试它,外观和性能的结果令人惊讶,并没有出现新的问题。
有一点需要注意的是,您是否安装了外部模块(也称为out-of-tree)(请参阅Indentify out of tree modules以了解这些模块的位置)。如果您需要这些模块,请考虑它们是否将针对新的内核版本进行构建。做一些研究并在新的内核版本上自己测试它们。更糟糕的情况是,您可以启动到以前的内核版本并卸载新版本。
在尝试升级到主线内核之前,建议使用remove external or proprietary modules。我确实必须删除virtualbox以避免在内核安装期间出现“错误!模块构建的错误返回状态”。