安装了NVIDIA驱动后,桌面不显示!

安装了NVIDIA实验性驱动程序后,桌面无法显示。我尝试过NVIDIA简易专有驱动程序,但它们也不起作用。
这是它的外观。这不是裁剪或其他什么。这就是外观,在安装驱动程序后,桌面分辨率从1440x900降低到1024x768。

enter image description here

当我使用开源驱动程序时,桌面只显示desh和面板。
有没有办法修复这个问题,以便我可以获得更好的性能?

我有完全相同的问题。可悲的是,开源驱动程序在我的显卡上表现不佳。有人有错误报告或额外的调试信息吗? - Timo
对我来说,开源驱动程序也不是最好的选择。 - Levan
2真可惜,我只能给这个帖子点一个赞! - Evan Haas
10个回答

我也遇到了同样的问题。这是我解决的方法:
  1. 切换到终端:Ctrl+Alt+F1

  2. 使用您的用户名登录。

  3. 安装Linux头文件:

    sudo apt-get install linux-headers-generic
    
  4. 卸载Nvidia驱动程序 - 这取决于您安装的版本:

    sudo apt-get remove nvidia-current
    

    或者

    sudo apt-get remove nvidia-current-updates 
    

    或者

    sudo apt-get remove nvidia-experimental-304
    
  5. 重新安装Nvidia驱动程序:

    sudo apt-get install nvidia-current-updates
    

    执行此操作时,必须显示类似以下内容:

    Building initial module for 3.5.0-17-generic
    Done.
    

    如果显示:

    Module build for the currently running kernel was
    skipped since the kernel source for this kernel
    does not seem to be installed.
    

    那么问题将无法解决。不要相信这个消息。 它并不是要求安装linux-source,它只需要安装特定的-generic头文件以适配您的内核。运行以下命令:

    sudo apt-get install linux-headers-`uname -r`
    

    仅使用linux-headers-genericlinux-headers-3.5.0-17(例如)是不起作用的。

  6. 如果安装成功,请重新启动计算机:

    sudo shutdown -r now
    
这样应该可以让内核模块正确编译和安装。对我来说是有效的!

非常抱歉,这种方法可能有效,但我对Ubuntu真的很陌生,有没有更简单的方法可以解决这个问题呢?感谢您的帖子。 - Levan
我非常确定没有。由于某种原因,它无法下载Linux源代码,而编译Nvidia驱动程序需要这个源代码。如果你还保留着那个专有驱动程序窗口,你应该能够切换回noveau(拼写是否正确?)驱动程序...如果你按照我在括号中给出的确切命令操作,应该可以解决问题。很抱歉没有更简单一些! :) - rft183
2我成功地通过在终端中键入“gnome-control-center”命令,然后选择开源驱动程序来切换回开源驱动程序,但编译对我来说太难了 :) 非常感谢您的帮助 :) - Levan
没问题。我相信过几天会有一个修复,这样你就可以以图形方式进行操作了。至少在此期间你还可以使用系统! - rft183
太棒了!Unity现在已经恢复使用闭源驱动程序了。 - Timo
嘿,我只是想补充一下,现在你可能可以以图形方式完成了,因为你已经重新使开源驱动程序工作。从软件中心安装“linux-source”。我不100%确定是否需要安装头文件,但我为了保险起见也安装了。你也可以从软件中心安装它们。只需搜索“linux-headers”,然后安装linux-headers-3.5.0-17-generic软件包。安装完这些后,你应该能够通过专有驱动程序窗口切换到Nvidia驱动程序... 这种方法也可以防止一开始就丢失桌面:) - rft183
也可以在常规终端中完成,不需要使用Ctrl+Alt+F1。 - Timo
嗯,当我的桌面丢失时,我无法访问终端模拟器。但如果你能够做到,那就尽管去吧! - rft183
你可以尝试使用--reinstall命令,具体取决于你安装的驱动程序是否类似于这篇帖子中提到的方法。http://askubuntu.com/questions/66124/module-nvidia-173-not-found这样做可能不需要安装内核源代码。 - l300lvl
4终端有一个默认的按键绑定:Ctrl + Alt + T。 - Timo
谢谢!我确信这将在未来派上用场!哈哈 - rft183
rft183,你的回答真是救了我一命 - 谢谢你。 - Eric Mill
按下ctrl+alt+t打开终端窗口。然后将以下命令全部放在一行中执行:sudo apt-get -y install linux-source linux-headers-generic && sudo apt-get -y remove nvidia-current nvidia-current-updates nvidia-experimental-304 && sudo apt-get -y install nvidia-current-updates && sudo shutdown -r now。顺便说一句,如果你已经打开了终端,可以运行google-chromefirefox,找到这个页面,然后进行复制和粘贴操作。 - hafichuk
我遇到了完全相同的问题,但是我只需要运行 sudo apt-get -y install linux-source linux-headers-generic 来解决它。这将启动DKMS,重新编译驱动程序。重启后,桌面就恢复正常了。 - Phyxx
这个步骤对我来说刚好解决了一个奇怪的问题,导致我的设置出现故障。谢谢! - Ingo

如果桌面仍然无法显示,可能是由于Nvidia Optimus显卡引起的。我有一台配备GT 650M的笔记本电脑,也是一张Optimus卡。Optimus卡的行为有些不同,并且默认情况下在Linux上没有支持。关于Linux中的Optimus的更多信息,请参考http://ubuntuforums.org/showthread.php?t=1657660
但是可以通过Bumblebee使其正常工作。以下是我在全新安装的Ubuntu 12.10上完成的操作(未安装任何Nvidia驱动程序):
sudo add-apt-repository ppa:bumblebee/stable 
sudo add-apt-repository ppa:ubuntu-x-swat/x-updates
sudo apt-get update 
sudo apt-get install bumblebee bumblebee-nvidia linux-headers-generic 

然后重新启动或重新登录。
当我省略了第二个命令时,它一开始没有起作用。然后在命令之前使用图形卡类型的optirun来运行某些东西。例如:optirun glxspheresoptirun ./executable-file。测试集成显卡和独立显卡之间差异的好方法是在有和没有optirun的情况下运行glxspheres

https://wiki.ubuntu.com/Bumblebee

这样做可以节省电力,只在需要时才激活你的显卡。希望我能帮助到某人,因为我花了很多时间才找出我的显卡的问题(是的,我对这些Linux图形驱动程序还比较陌生)。

1谢谢,我也曾经遇到过NVidia Quadro K1000M的同样问题,但是Bumblebee解决了我的问题。 - smcg

在我用几个晚上的时间(Unity桌面消失、只有640x480分辨率、屏幕上出现奇怪的伪像)折腾了一番之后,在我的GeForce GT 630上成功解决了这个问题:
1. 安装全新的Ubuntu 12.10; 2. 在安装完成后立即运行软件更新器,下载并安装所有更新; 3. 重启电脑; 4. 运行命令:sudo apt-get install linux-sources && sudo apt-get install linux-headers-generic(我不完全确定这一步是否必要,但在这个帖子中看到了这个建议,所以尝试了一下); 5. 从Dash菜单中打开"软件源"; 6. 点击"附加驱动"选项卡; 7. 激活NVIDIA二进制xorg驱动程序(专有、经过测试); 8. 重启电脑。
至此一切顺利 - 我有了NVIDIA设置面板(没有Xconfig错误信息)、双显示器和高分辨率。
特别注意:不要安装"附加驱动"包(Jockey)。在步骤2(软件更新)之后,该软件包似乎会消失 - 添加附加驱动的方法似乎已经移到了"软件源"应用程序中。

2安装linux源代码可能不会产生任何有益的影响。只有在编译内核时才会使用它。Jockey在12.10版本中已经不再使用;这个功能已被ubuntu-drivers-common接管。 - fabricator4

我今天刚安装了Ubuntu 12.10,然后遇到了Nvidia驱动的问题。
我试着按照上面的指示操作,但是由于两个非常重要的词:"generic"和"-17",所有的尝试都失败了。
最终,我发现最好的安装NVidia驱动的方法是使用Nvidia提供的安装程序。所以我去了:

http://www.nvidia.com/Download/index.aspx?lang=en-us

和下载的Linux-64位版本 (安装synaptic sudo apt-get install synaptic,在菜单中找到Settings -> Repository -> Additional Drivers,以找出您nvidia卡的确切名称)

然后运行该工具,它会提示您需要内核头文件,但请仔细阅读,因为它需要"generic"头文件。

您需要验证您的内核版本,我的版本是3.5.0-17(末尾的"-17"很重要),所以在我的情况下,我执行了以下操作:

sudo apt-get install linux-headers-3.5.0-17-generic

(通过在终端中输入uname -r找出您的内核版本)

您需要停止图形界面登录守护进程:

killall lightdm

然后你可以运行:
sudo sh NVIDIA-Linux-x86_64-310.19.run

安装程序可能会告诉你Noveau内核模块已加载,并建议添加modprobe脚本。无论它告诉你什么,你都应该选择“确定/是”,然后重新启动并再次运行NVIDIA-Linux-x86_64-310.19.run。
不确定其他方法是否有效,但这个方法肯定有效。

我之前也遇到了很多问题,按照其他建议无法安装任何NVIDIA驱动程序。但是通过这种方法安装了310.40版本的驱动程序,终于让它正常工作了! - ryanwinchester

这对Nvidia 7400显卡也适用。 但是如果内核更新了,你必须将安装行更改为最新版本,现在是:
sudo apt-get install linux-headers-3.5.0-18-generic

改为:

sudo apt-get install linux-headers-3.5.0-17-generic

我尝试了几乎所有的方法,但只有一个对我真正有效:
运行以下命令:
sudo add-apt-repository ppa:amith/ubuntutools
sudo apt-get update
sudo apt-get install unity-reset

然后使用以下命令重置Unity:
unity-reset

重启一下,Unity又回来了!希望对你有用。

如果您的安装无法正常工作(初始模块未构建),您必须确保只安装了一套头文件。
dpkg --get-selections | grep linux-headers

这个不起作用

linux-headers-3.5.0-26              install
linux-headers-3.5.0-26-generic      install
linux-headers-generic               install

这个有效
linux-headers-3.5.0-26              install
linux-headers-3.5.0-26-generic      install

在这种情况下,简单地
apt-get remove linux-headers-generic

现在,NVIDIA安装程序将会正常工作。

sudo apt-get install nvidia-current nvidia-settings
sudo mv /etc/X11/xorg.conf /etc/X11/xorg.conf.old
sudo nvidia-xconfig

重启系统!

没有找到适合nvidia-current的候选人。 - TheEagle

今晚我解决了这个问题。我像往常一样编译安装了最新的3.7.1内核,然后从Synaptic安装了nVidia驱动程序。这导致Unity菜单消失,就像你在截图中展示的那样。对我来说,解决方案如下:
sudo add-apt-repository ppa:xorg-edgers/ppa
sudo apt-get update
sudo apt-get install nvidia-current nvidia-settings

现在不仅问题被解决,而且你还拥有最新的英伟达驱动程序!

我做了这个:
sudo apt-get autoremove fglrx --purge

运作得很好。