我来自 Bug# 868950在 launchpad 上,这是一个与内核相关的问题。为了更深入地分析问题并找出问题的根源,我被告知尝试使用主线内核,看看问题是否仍然存在。
如果回答这个问题的人能发布一步一步的指南,说明该怎么做,那就太好了。如果能解释一下为什么需要这样做,以及这对开发人员有什么帮助,那就太好了。我找不到任何适合新手的文档。我相信这样会有更多的人能够提供帮助,我们最终会帮到开发人员。
请注意,我必须使用 NVIDIA 驱动程序。
答案1
主线内核是使用 Ubuntu 配置从最新源代码编译而成的,因此任何错误修复都会首先出现在主线内核中。由于内核包收到大量错误报告,开发团队无法花费大量时间处理所有错误报告。您报告的错误可能之前已经修复,所以他们建议您使用最新的内核进行测试。
要安装主线内核:
- 查找最新内核http://kernel.ubuntu.com/~kernel-ppa/mainline/?C=M;O=D。目前,http://kernel.ubuntu.com/~kernel-ppa/mainline/v3.1-rc9-oneiric/
- 创建新目录用于保存下载的内核包(例如
~/kernel-test
) - 下载
linux-headers*_amd64.deb
、linux-headers*_all.deb
和linux-image*_amd64.deb
文件。如果您运行的是 32 位操作系统,请将其替换amd64
为i386
,然后选择“pae”版本(如果需要)。您可以通过查看 /proc/cpuinfo 来检查您现在是否正在运行 pae。 打开终端并安装下载的内核包:
sudo dpkg -i ~/kernel-test/*.deb
- 重新启动后,新内核将自动被选中。如果无法启动,请尝试按Ctrl+ Alt+Del或使用电源按钮。下次启动时,菜单将出现。如果没有,请Shift在 BIOS POST 后按住。
要卸载主线内核,只需卸载相关软件包:
sudo apt-get purge linux-headers-3*-generic linux-image-3*-generic
用主线内核的软件包名称替换*
。它与您下载的文件相匹配。
请注意,主线版本是使用较旧的工具集编译的,这会产生一些副作用,例如在加载内核模块后无法卸载(这适用于 DKMS 包,例如nvidia-current
)