Ubuntu 12.04 LTS - 更改 Nvidia 驱动程序后启动时出现黑屏

Ubuntu 12.04 LTS - 更改 Nvidia 驱动程序后启动时出现黑屏

两天前,我将 Ubuntu 12.04 LTS 更新到最新更新,但我忽略了 Grub 更新,因为我认为它会清除我的 grub 设置(我真是菜鸟!)。重启后,一切正常,Ubuntu 正常启动,除了更新前有问题的图形外,其他一切都运行良好。

我之前使用的是实验性驱动程序,但我将其更改为当前更新版本。重启后,Ubuntu 库存黑屏。我尝试从恢复中重新安装 Nvidia 驱动程序,但没有成功。

然后我在恢复中使用了更新 Grub,但它也不起作用,但我在启动时在屏幕上看到了这一行:

在此处输入图片描述

此时它停止并且键盘不工作,但是当我按下电源按钮时它会显示这些行并且它将关闭。

在此处输入图片描述

好的,最后我让它从旧内核(3.5.0-28-generic)启动。现在我该如何保留这个内核或修复 Ubuntu 以使用新内核?我应该重新安装 Nvidia 驱动程序吗?我应该使用哪个版本?

答案1

我有同样的问题。

在 /var/log/syslog 中我发现了下几行:

[   13.834336] NVRM: API mismatch: the client has the version 319.32, but
[   13.834336] NVRM: this kernel module has the version 304.88.  Please
[   13.834336] NVRM: make sure that this kernel module and all NVIDIA driver
[   13.834336] NVRM: components have the same version.

这意味着安装了 2 个 kerenl 模块。

在 dkms 中我看到安装了 2 个模块。

dkms status
nvidia-304-updates, 304.88, 3.5.0-39-generic, x86_64: installed
nvidia-319-updates, 319.32, 3.5.0-39-generic, x86_64: installed

只需删除以前的模块,它就可以为我工作。

sudo apt-get purge nvidia-304 nvidia-304-updates

答案2

经过一些测试,我发现了以下软件包:

nvidia-current
nvidia-304
nvidia-settings
nvidia-settings-304

适用于所有内核 3.2.0-* 和 3.8.0-*,

而包裹:

nvidia-current-updates
nvidia-experimental-304
nvidia-304-updates
nvidia-settings-updates
nvidia-settings-experimental-304
nvidia-settings-304-updates
nvidia-319
nvidia-experimental-310
nvidia-319-updates
nvidia-settings-319
nvidia-settings-experimental-310
nvidia-settings-319-updates

仅适用于内核 3.8.0-*。

当内核仅有 3.2.0-* 时,Ubuntu jockey 仍推荐 319 版本。因此这里存在一个错误。

此外命令:

$ sudo apt-get purge nvidia-current
$ sudo apt-get install nvidia-current

或者

$ sudo dpkg-reconfigure nvidia-current

为每个小版本仅安装一个内核版本的驱动程序,并删除所有其他版本的驱动程序。

因此,就我而言,我安装了以下内核:

3.8.0-32-generic
3.2.0-55-generic-pae
3.2.0-55-generic
3.2.0-54-generic-pae
3.2.0-54-generic
3.2.0-53-generic-pae
3.2.0-53-generic
3.2.0-52-generic-pae
3.2.0-52-generic
3.2.0-51-generic-pae
3.2.0-51-generic
3.2.0-49-generic-pae
3.2.0-49-generic

我仅获得了以下驱动程序:

3.8.0-32-generic
3.2.0-55-generic-pae

在使用其他内核启动时,驱动程序未安装。

在我看来,软件包中的某个地方有错误的指示,仅针对某些内核进行构建和安装。

无论在哪里,发出以下命令都可以解决问题:

$ sudo dkms install nvidia-304/304.88 -k 3.8.0-32-generic
$ sudo dkms install nvidia-304/304.88 -k 3.2.0-55-generic
$ sudo dkms install nvidia-304/304.88 -k 3.2.0-55-generic-pae
$ sudo dkms install nvidia-304/304.88 -k 3.2.0-54-generic
$ sudo dkms install nvidia-304/304.88 -k 3.2.0-54-generic-pae
$ sudo dkms install nvidia-304/304.88 -k 3.2.0-53-generic
$ sudo dkms install nvidia-304/304.88 -k 3.2.0-53-generic-pae
$ sudo dkms install nvidia-304/304.88 -k 3.2.0-52-generic
$ sudo dkms install nvidia-304/304.88 -k 3.2.0-52-generic-pae
$ sudo dkms install nvidia-304/304.88 -k 3.2.0-51-generic
$ sudo dkms install nvidia-304/304.88 -k 3.2.0-51-generic-pae
$ sudo dkms install nvidia-304/304.88 -k 3.2.0-49-generic
$ sudo dkms install nvidia-304/304.88 -k 3.2.0-49-generic-pae

直到下一次 apt-get install nvidia-current 或重新配置

线: Nvidia 驱动程序已更新 - 304.88 和 319.32 的混合版本 与此相关,但我没有足够的信用在那里发布。

答案3

我使用以下命令来 grep 系统日志:

cat /var/log/syslog | grep -C5 "NVIDIA"

获取当前安装的模块:

dkms status

删除系统日志中发现的 NVIDIA 问题驱动程序

apt-get purge nvidia-304*

几乎忘了确保 grub 更新...

update-grub

然后重启,你就应该成功了(手指交叉)

相关内容