两天前,我将 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
然后重启,你就应该成功了(手指交叉)