安装专有 Nvidia 驱动程序后 Unity 未出现(GPU 已脱离总线/ACPI 故障)

安装专有 Nvidia 驱动程序后 Unity 未出现(GPU 已脱离总线/ACPI 故障)

在开始之前我应该​​提到,尽管标题与以下问题类似,但不是同一个问题,而且我已经测试过这个问题的答案,但没有解决方案:

安装 Nvidia 驱动程序后 Unity 没有出现

安装 Nvidia 专有驱动程序后 Unity 无法加载

(我希望事情真的这么简单)。

问题大约在 2 周前开始出现(使用 12.10 64 位)。升级后,Unity 无法加载。它只是冻结在黑屏上,没有鼠标移动,什么都没有。我进入恢复模式查看发生了什么。起初我删除了 Nvidia 驱动程序,系统正确启动。然后我安装了 Nvidia 驱动程序(使用nvidia-current默认自带的,没有安装额外的 PPA),问题出现了。然后我尝试了 X-Swat 的 PPA 和 Xorg Edgers 的 PPA,这两个也因同样的问题而失败了。

我继续检查/var/log文件,特别是 Xorg 和 syslog 文件,看看发生了什么。尝试了类似方法后,sudo modprobe nvidia我发现模块未正确创建,因此我没有命令nvidia-xconfig。因此,我下载了所有需要的头文件(通用和特定版本)并重新安装了 nvidia 驱动程序。这次模块已安装,我可以访问所有 Nvidia 命令,例如nvidia-xconfig创建 xorg.conf 文件。

但同样的问题仍然存在。它无法加载 Unity,在显示黑屏桌面之前会卡住。

在检查了更多内容之后我的 pastebin 文件显示ACPI 和 X 服务器之间存在一些问题。

在第 55 行我们可以看到以下内容:

 48.651] (WW) Open ACPI failed (/var/run/acpid.socket) (No such file or directory)

然后从第 178 行开始我们可以看到以下内容:

[    49.993] (II) NVIDIA(0): ACPI: failed to connect to the ACPI event daemon; the daemon
[    49.993] (II) NVIDIA(0):     may not be running or the "AcpidSocketPath" X
[    49.993] (II) NVIDIA(0):     configuration option may not be set correctly.  When the
[    49.993] (II) NVIDIA(0):     ACPI event daemon is available, the NVIDIA X driver will
[    49.993] (II) NVIDIA(0):     try to use it to receive ACPI event notifications.  For
[    49.993] (II) NVIDIA(0):     details, please see the "ConnectToAcpid" and
[    49.993] (II) NVIDIA(0):     "AcpidSocketPath" X configuration options in Appendix B: X
[    49.993] (II) NVIDIA(0):     Config Options in the README.

现在这可能是问题所在(这是我目前所知的)。

看起来,这是一个老虫子重现这种情况非常奇怪,在此之前,PC 运行良好。这是一块 Intel DZ68DB 主板,配有 Nvidia 560 ti 显卡。

其他发行版也遇到过同样的问题:

Arch Linux

Gentoo

红帽

我还检查了是否已经acpid安装,结果是,是的。它运行正常。据我了解,这是一个时间问题,X 服务器和 acpid 尝试异步加载,以便 X 加载更快,但由于它在 acpid 之前加载,因此当 Nvidia 卡想要使用 ACPI 时会出现此错误。因此重置 X 会有所帮助,因为 acpid 会在第二个 X 服务器之前加载,但由于系统冻结,这不可行。

我在检查时发现的最后一个错误是sudo cat /var/log/syslog | grep NV

Jan  3 22:39:23 cyrex kernel: [    3.789322] NVRM: GPU at 0000:01:00.0 has fallen off the bus.

所以现在我有一个“GPU 已经没落了”问题。

我想知道那辆巴士行驶的速度有多快?

我应该补充一点,我已经测试了 12.10 附带的所有版本(nvidia-current、updates、experimental)以及 X-Swat PPA 和 Xorg Edges PPA 附带的版本。所有版本都存在同样的问题。

更新 1 - 测试 1

按以下方式做了测试:

将我正在使用的 SSD 连接到另一台也装有 Nvidia 卡(这次是 9500 GT)的计算机。我还将另一台计算机的 HDD 连接到我的计算机。基本上就是切换硬盘。

另一台计算机上的 Ubuntu 运行正常,但是当我将之前在另一台计算机上运行的 HDD 连接到我的计算机时,出现了与此问题中提到的相同的错误。

在这次测试中,我唯一改变的就是我使用的 Ubuntu 电脑,它运行正常。但如果我在我的电脑上使用另一台电脑上的另一个 Ubuntu,就会出现错误,表明硬件可能是问题所在。至少我需要检查 BIOS 设置。

更新 2 - 测试 2

移除了显卡,并将其与另一台计算机进行了交换。它仍然可以工作。所以我在另一台计算机上安装了 Ubuntu 无法工作的 SSD,以及无法工作的相同 560 TI,但即便如此,它仍然可以工作。

剩下的就是主板了,它是英特尔 DZ68DB,固件已经升级。我觉得很奇怪,两周前它还能用,现在却不能用了,但这表明问题可能是 BIOS 配置或主板不兼容。我会继续测试。

解决方案 1(对我不起作用)- 一些用户报告说,采取以下措施对他们有帮助:

编辑/etc/rc.local文件:sudo nano /etc/rc.local并在之前添加以下行出口 0陈述:

/usr/bin/nvidia-smi -pm 1

保存并重启。这会将您的显卡设置为持久模式。要查看它是否有效,请在重启后输入:

/usr/bin/nvidia-smi -q | grep -i Persistence如果你看到:

Persistence Mode            : Enabled

那么你知道它是已启用

解决方案 2(对我不起作用)- 一些用户报告说,采取以下措施对他们有帮助:

编辑你的 grub 菜单:

sudo nano /etc/default/grub并在以下行中写道:

 GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"

添加下列一个或所有内核选项:

acpi=noirq

thermal.off=1

例如,如果将两者添加,它应该看起来像这样:

 GRUB_CMDLINE_LINUX_DEFAULT="quiet splash acpi=noirq thermal.off=1"

现在保存并输入update-grub。然后重新启动。

对于遇到类似问题的人,如果他们已经做了所有事情,我建议他们也尝试一下我进行的测试。这样你就知道是 Ubuntu、显卡还是其他硬件出了问题。

答案1

经过近 3 天的奋战,我终于(如果你读完整个问题的话)把主板以外的所有东西都扔掉了。所以我把主板拆了下来,做了一些清洁工作,然后又装回去了。为了消除任何疑惑,我说的清洁,字面意思是,把主板拆下来,移除任何与其相连的东西,或者它会产生任何类型的电流的东西(比如 CR2032 电池),然后把主板放在水压很大的软管下。用大量水清洗后,我把它晾干了至少 2 天,然后把它放回原位。

一切都运行正常,我可以高兴地说它可以在 32 位和 64 位版本的 12.04、12.10 甚至 13.04 上运行(当我遇到问题时我必须进行测试,因为我当时认为这是 Ubuntu 的问题)。

因此,如果您碰巧已完成问题中的所有操作但仍然遇到问题,则最可能的原因可能是 BIOS 中的选项(由于存在的 BIOS 设置数量太多,我无法在此介绍)或您的硬件需要维护。

希望这对某些人有所帮助,因为我花了太多精力才弄清楚,所以它可能会节省别人的时间。

相关内容