升级后NVIDIA驱动程序无法正常工作。为什么我只能看到终端机?


34

今晚我升级到11.04。问题。升级完成后,我也按照提示重新启动了计算机。当我经过ubuntu 11.04(紫色背景橙色点)时,它只是转到终端并要求我登录。我尝试使用“ sudo service gdm restart”重新启动X服务器,但没有弹出显示。我的下载文件中也碰巧有一些NVIDIA驱动程序,因此我尝试了一下,但是“安装脚本”失败。

完成所有这些之后,我以图形故障保护模式启动了Ubuntu。然后,我决定看看如果删除专有驱动程序会发生什么。完成并重启后,我的Ubuntu进入了图形模式“是!”。因此,没有Nvidia驱动程序,我终于可以看到终端以外的东西,但是,我需要那些NVIDIA驱动程序才能工作。那我该怎么办?我曾尝试从NVIDIA网站安装新的NVIDIA linux驱动程序,并尝试通过“其他驱动程序”安装推荐的驱动程序,但两者都导致我陷入了困境。

如果您可以帮助或给我一些建议,请做!我真的处于非常糟糕的境地...


2
您是否先删除了/etc/X11/xorg.conf文件,然后重新启动,然后尝试激活NVIDIA驱动程序的其他驱动程序版本?
fossfreedom

1
我遇到了同样的问题。我激活驱动程序,注销并在X日志中看到“找不到设备”。如果删除xorg.conf,X会在没有GLX支持的情况下启动。Modprobe说nvidia驱动程序已加载。
vissi 2011年

不,我没有删除Xorg.conf文件。我很麻烦你说出来。它是可怕的。
Sixthlaw 2011年

Answers:


30

您将需要启动进入恢复模式,然后apt-get remove --purge nvidia-current在根终端上发出命令,然后输入apt-get install nvidia-current-来为新内核重建nvidia驱动程序。升级时我也遇到了这个问题。

请不要从nVidia的网站安装驱动程序!如果稍后尝试安装推荐的驱动程序而没有完全删除前一个驱动程序,则可能会造成严重的麻烦。

编辑: 您将需要从终端运行这些命令。我无法保证完美的结果,因为我将根据通过互联网和内存找到的信息进行搜索。

您遇到的问题是由不同的用户模式组件和内核模块引起的。要修复它,必须重建nvidia内核模块。这应该在重新启动时发生,但通常不会发生。

首先,您需要安装linux内核头文件:

  • sudo apt-get install linux-headers-generic

然后,您将需要运行dkms来删除旧的nvidia内核模块:

  • sudo dkms remove nvidia

然后运行:

  • sudo apt-get install nvidia-current
  • 这应该可以使其正确安装,因此您需要做的就是运行 sudo nvidia-xconfig and reboot.
  • 如果仍然收到有关模块版本的错误,请运行: sudo dkms build nvidia

应该可以解决问题。

抱歉,如果情况有些混乱,我会尽我最大的努力来整理我不得不使用的过程:)!如果您遇到问题,请立即通知我(如果有人发现使用说明有任何问题,请尽快告诉我)!!!!


更新:

我发现了另一个可能的原因。Nouveau可能尚未被列入黑名单,并且nvidia-current可能尚未将其放置在用于选择显示驱动程序的.conf文件中。解决方法如下:

注意:

在继续之前,请确保您具有存储库中的nvidia当前驱动程序。从nvidia网站下载驱动程序可能会在以后引起问题,因为它不使用debian软件包格式,而留下的东西可能与以后的安装冲突。因此,请确保先清除所有痕迹,然后从Ubuntu存储库中安装标准驱动程序。如果不这样做,您将得到驱动程序不匹配,并且此修复将毫无意义。

  • 如果您被控制台卡住,请登录并安装nouveau X.org驱动程序: sudo apt-get install xserver-xorg-video-nouveau
  • 重新启动计算机(是的,您将拥有可用的图形,但是这是暂时的)。
  • 以root身份打开gedit :gksu gedit
  • 从gedit打开/etc/modprobe.d/blacklist.conf
  • 在底部添加此行:blacklist nouveau
  • 保存文件,然后打开/etc/modprobe.d/nvidia-graphics-drivers.conf
    • 添加这些行:

      黑名单nouveau
      黑名单lbm-nouveau
      黑名单nvidia-173
      黑名单nvidia-96
      别名nvidia nvidia-current

  • 现在保存此文件,然后关闭gedit。
  • 跑:
    • sudo nvidia-xconfig
    • 然后:
    • sudo apt-get remove xserver-xorg-video-nouveau
    • 其次是:
    • sudo shutdown -r now
  • 系统重新启动时,您应该具有可用的nvidia驱动程序。
顺便说一下,新驱动程序(nvidia-current)中似乎存在不将nouveau列入黑名单的问题,因此我建议在解决问题后,等待该错误的更新(我将尽快报告该错误) )。

替代解决方案:如果您确实是从其网站上安装了NVIDIA驱动程序,则必须引导至文本终端,(在引导时按住以查看grub菜单,然后选择上一次可与NVIDIA驱动程序一起使用的内核版本的“恢复”模式,然后选择命令行作为根选项)

然后运行您运行的原始NVIDIA install shell脚本,以从其网站安装NVIDIA驱动程序。例如sudo ./NVIDIA-Linux-x86-290.10.run --uninstall。(您的版本可能有所不同。)

您不需要运行“ sudo dkms remove nvidia”命令,因为这不适用于您的情况。


我尝试了此操作,但是当我重新启动时,它再次仅显示终端。我在终端中尝试了sudo startx,并获得了以下消息:错误:API不匹配:NVIDIA内核模块的版本为260.19.36,NVIDIA驱动程序组件的版本为270.41.06。请确保内核模块和所有nvidia驱动程序组件具有相同的版本。
第六法律2011年

我也得到了:致命服务器错误,找不到屏幕。
第六法律

1
@Sixthlaw:啊-紧紧,这是一个dkms问题,与我遇到的问题相同。您将需要从命令行发布dkms构建(我忘记了该命令,因此请等到得到它后再更新答案)。
RolandiXor

1
sudo apt-get install nvidia current->sudo apt-get install nvidia-current
IanVaughan

1
请注意,dkms仅在11.10或更高版本中支持给定的调用。在11.04或更早版本上,您还需要提供模块和内核版本(man dkms)。
kynan 2012年

12

这就是为什么我始终建议将Ubuntu作为全新安装而不是进行升级的原因。这只是我的意见,但是升级时我总是遇到一些问题。全新安装时没有问题。

对于我阅读的其他答案,您已经从Nvidia网站安装了Nvidia驱动程序。即使它工作良好,等等。请勿这样做!ubuntu存储库中的一个已经过测试,这是一个推荐。

在您的情况下,您需要做几件事。

步骤1-卸载您安装的nvidia驱动程序,从此不再安装。这将使您免于遇到... ehem ....某人也有(Me;)的特定问题,还需要从中删除模块以及它留下的任何配置文件。如果没有记错的话,那么来自Nvidia网站的nvidia驱动程序将具有卸载二进制文件。运行该文件,确保没有其他的nvidia文件。

更新-要卸载从Nvidia网站安装的Nvidia驱动程序,您可以选择以下选项之一:

  • 一些建议使用同一安装程序进行卸载。
    示例:NVIDIA-Linux-x86-1.0-8178.run --uninstall
  • 其他建议使用Nvidia安装程序。
    示例:nvidia-installer --uninstall

提示-尝试在Nvidia Binary Executable的末尾键入--help,以查看是否显示了帮助。诸如https://help.ubuntu.com/community/NvidiaManualhttp://www.nvnews.net/vbulletin/showthread.php?t=83678之类的页面提供了有关如何从Nvidia站点卸载Nvidia驱动程序的想法。

第2步 -重新启动并检查您是否还没有离开nvidia。删除xorg.conf文件,因为您将很快制作一个新文件。重启。

步骤3-安装推荐的Nvidia驱动程序。sudo apt-get install nvidia-currentsudo apt-get reinstall nvidia-current(如果您已经安装了它。我建议先卸载然后再安装。)

步骤4-为Nvidia建议的驱动程序创建xorg.conf文件。nvidia-xconfig。这将创建带有您的nvidia视频卡所需选项的xorg.con文件。重新启动。

到目前为止,如果您有任何问题,我都需要反馈。有关更一般的解决方案,请随时阅读本指南:如何安装Nvidia驱动程序?


1
抱歉,我不完全知道如何执行步骤1。似乎找不到您所说的卸载脚本。
Sixthlaw 2011年

1
没问题,第六法。让我找到它。给我一两分钟
路易斯·阿尔瓦拉多

1
已更新,其中包括有关如何删除它的小帮助。请让我知道它是否有帮助以及成功的秘诀。
Luis Alvarado

1
那不是解决方案,如果我要安装某些驱动程序,那么解决方案是不安装其他驱动程序。这就像通过说不使用Java,使用Python来解决Java问题一样。我有同样的问题(内核模块版本不匹配),但我绝对需要此NVIDIA CUDA devdriver。
skrat 2011年

1
我不是说要安装其他东西。据说这种情况下最兼容的是Ubuntu随附的版本。一次又一次地证明,这样做带来的问题更少,进行更新/升级时更加友好,并且您有更多的文档和社区反馈。如果我要谈论Java,出于多种原因,我会推荐openjdk,对于python,它是默认的,因为它已经过测试,依此类推。你在猜我的意思。
Luis Alvarado

7

我也遇到了nvidia驱动程序的问题,并做了我能找到的一切(也在其他答案中):

  • 删除以前安装的驱动程序,然后重新安装
  • 引导failsafeX并激活驱动程序
  • 使用以前的驱动程序(173
  • 我添加UNITY_FORCE_START=1这里/etc/environment提到的(因为GeForce 7300/7400已列入黑名单,但我有GeForce Go 7100)

但是这一切一直在失败。因此,最后一招(我应该早些考虑过),我研究了X日志文件。在我的内部,我/var/log/Xorg.0.log发现nvidia在分配内存方面存在问题:

[    14.055] (EE) NVIDIA(0): Failed to allocate primary buffer: out of memory.
[    14.055] (EE) NVIDIA(0):  *** Aborting ***

显然,这是一个已知的错误,我必须执行以下操作来解决此问题:

  • 编辑 /etc/default/grub
  • 找到该选项GRUB_CMDLINE_LINUX并添加nopat,所以对我来说,这看起来像

    GRUB_CMDLINE_LINUX="nopat"

  • sudo update-grub

然后,最后,一切对我来说都很好:)希望这会有所帮助。


这完美地完成了窍门,非常感谢!(在运行“当前”驱动程序的Natty 64位上使用Nvidia GeForce 9400)
dandelionmood

2

请注意,以下内核指向的是先前的Ubuntu版本。Ubuntu 11.10的新内核是3.0.0.12。我在进入命令模式时遇到了同样的问题,而Xserver却无法找到nvidia_173驱动程序而失败。然后,我意识到升级并没有将我的MBR更新为指向3.0.0.12。我使用EasyBCD更新文件,重新启动,一切都很好。当然,当这些驱动程序处于混合级别时,可能会发生这些类型的驱动程序故障。我的建议是,升级后,请确保您正在执行新的内核,initrd,vmlinuz等。

DKMS make.log for nvidia-current-270.41.06 for kernel 2.6.38-8-generic (x86_64)
Sat May 14 20:48:39 EDT 2011

The C compiler 'cc' does not appear to be able to
create executables.  Please make sure you have 
your Linux distribution's gcc and libc development
packages installed.

*** Failed CC sanity check. Bailing out! ***

make: *** [select_makefile] Error 1

我发现/ usr / bin中使用的cc(gcc的别名)与在同一目录中找到的gcc的版本不同,而不管机器上已经安装了所有dev软件包。我必须做一个符号链接来指向gcc文件。

sudo mv /usr/bin/cc /usr/bin/cc.old
sudo ln -s /usr/bin/gcc /usr/bin/cc

在那之后,重新安装nvidia-current软件包对我有用。

问候


2

我的11.04升级也仅引导至终端窗口。然后我找到了这个网站。我开始做罗兰·泰勒(Roland Taylor)的建议,首先我做了

sudo apt-get install linux-headers-generic

然后我尝试做:

sudo dkms remove nvidia 

但是它失败,抱怨命令未完成,我需要-m-v版本

我打算重试,但是我注意到屏幕上显示了来自第一个命令的日志信息,并指出nvidia-current当我安装headers-generic时它已经安装了ed ,所以我想,我想知道现在重新启动该怎么办吗?所以我做到了,X桌面运行良好。因此,只有一个命令可以解决我的安装问题。


0

这对我有用。

1)通过按Ctrl + Alt + F1切换到F1终端。

2)运行以下命令。

sudo /etc/gdm stop
sudo apt-get install linux-headers-$(uname -r) linux-image-$(uname -r)
wget -O /tmp/nvidia.run http://us.download.nvidia.com/XFree86/Linux-x86/280.13/NVIDIA-Linux-x86-280.13.run
# Make sure to allow the script to uninstall all existing drivers.
sudo sh /tmp/nvidia.run
sudo /etc/gdm start

0

对于同样遇到此问题的任何人,请确保在BIOS中禁用Optimus(Nvidia的图形卡交换技术)。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.