无法再从英特尔切换到NVIDIA GPU

[Ubuntu 14.04 64bit]

在英特尔/ NVIDIA显卡和不同的NVIDIA驱动程序之间切换后,我现在突然陷入了英特尔GPU。 以前在两者之间切换都没问题 – 我不能肯定地说是突然造成问题的原因。 我认为我做的最后一件事是切换到“X.Org X服务器”驱动程序 – 然后出现了问题。 切换是我试图解决设置辅助屏幕问题的一部分 。

在此处输入图像描述

每当我尝试切换到NVIDIA时,我都会收到这个非常有表现力的错误消息然后切换回英特尔:/

我可以使用一些帮助进行故障排除或建议尝试。

到目前为止,我(un / re)安装了各种软件包“nvidia-settings”/“nvidia-current”/“nvidia-current-updates”/“nvidia-331”/“nvidia-331-updates”。 无济于事。

> lspci | grep VGA 00:02.0 VGA compatible controller: Intel Corporation 3rd Gen Core processor Graphics Controller (rev 09) 01:00.0 VGA compatible controller: NVIDIA Corporation GK107GLM [Quadro K2000M] (rev a1) 

/etc/apt/sources.list:可以在pastebin.com找到


关于Qasim的建议:

 raffael@raffael-GT60~> sudo prime-select nvidia [sudo] password for raffael: Error: alternatives are not set up properly Error: nvidia mode can't be enabled raffael@raffael-GT60~> sudo prime-select intel Error: alternatives are not set up properly Error: intel mode can't be enabled 

关于Qasim的第二个建议:

 sudo apt-get purge nvidia* [reboot] sudo apt-get install nvidia-319-updates nvidia-settings-319-updates nvidia-prime [reboot] [tried to switch to NVIDIA] 

奇怪的是 – 这实际上是第一次工作! 然后我切换回英特尔 – 注销/开启 – 切换回NVIDIA – 注销/开启 – >系统崩溃 – 错误如上所述。


关于Louis Matthijssen的建议:

 raffael@raffael-GT60:~$ sudo update-alternatives --set /etc/ld.so.conf.d/x86_64-linux-gnu_GL.conf /usr/lib/nvidia-331-updates-prime/ld.so.conf update-alternatives: error: alternative name (/etc/ld.so.conf.d/x86_64-linux-gnu_GL.conf) must not contain '/' and spaces raffael@raffael-GT60:~$ ls -la /usr/lib/nvidia-331-updates-prime total 44 drwxr-xr-x 2 root root 4096 Mai 2 22:45 . drwxr-xr-x 196 root root 32768 Mai 3 10:57 .. -rw-r--r-- 1 root root 0 Apr 4 11:50 alt_ld.so.conf -rw-r--r-- 1 root root 60 Apr 4 11:50 ld.so.conf 

重复算法两次 – 没有再次工作:/

现在它似乎工作:

 raffael@raffael-GT60:~$ sudo update-alternatives --set x86_64-linux-gnu_gl_conf /usr/lib/nvidia-331-updates-prime/ld.so.conf update-alternatives: using /usr/lib/nvidia-331-updates-prime/ld.so.conf to provide /etc/ld.so.conf.d/x86_64-linux-gnu_GL.conf (x86_64-linux-gnu_gl_conf) in manual mode raffael@raffael-GT60:~$ sudo update-alternatives --set i386-linux-gnu_gl_conf /usr/lib/nvidia-331-updates-prime/alt_ld.so.conf update-alternatives: using /usr/lib/nvidia-331-updates-prime/alt_ld.so.conf to provide /etc/ld.so.conf.d/i386-linux-gnu_GL.conf (i386-linux-gnu_gl_conf) in manual mode 

之后我可以切换到NVIDIA – 但没有提供扩展的“NVIDIA X服务器设置” – 现在将重新启动,看看会发生什么。 跟进:重启后切换回Intel,不能像往常一样切换到NVIDIA。 对我来说,似乎你的方法,路易斯,诱使操作系统相信它使用NVIDIA,而事实并非如此。

当您收到以下错误时:

 Error: alternatives are not set up properly 

您可以尝试自己设置备选方案。

当我切换英特尔时,我看到:

 update-alternatives: using /usr/lib/nvidia-331-prime/ld.so.conf to provide /etc/ld.so.conf.d/x86_64-linux-gnu_GL.conf (x86_64-linux-gnu_gl_conf) in manual mode update-alternatives: using /usr/lib/nvidia-331-prime/alt_ld.so.conf to provide /etc/ld.so.conf.d/i386-linux-gnu_GL.conf (i386-linux-gnu_gl_conf) in manual mode 

当我切换 NVIDIA时,我看到:

 update-alternatives: using /usr/lib/nvidia-331/ld.so.conf to provide /etc/ld.so.conf.d/x86_64-linux-gnu_GL.conf (x86_64-linux-gnu_gl_conf) in manual mode update-alternatives: using /usr/lib/nvidia-331/alt_ld.so.conf to provide /etc/ld.so.conf.d/i386-linux-gnu_GL.conf (i386-linux-gnu_gl_conf) in manual mode 

所以你可以尝试这个切换英特尔:

 sudo update-alternatives --set x86_64-linux-gnu_gl_conf /usr/lib/nvidia-331-prime/ld.so.conf sudo update-alternatives --set i386-linux-gnu_gl_conf /usr/lib/nvidia-331-prime/alt_ld.so.conf 

显然你应该用自己的版本替换331。

现在你可以尝试一些东西来触发切换:

  • 注销并再次登录

    像往常一样重启X服务器

  • 重新启动整台电脑

    出于与上述相同的目的

  • 执行sudo prime-select nvidia

    因为现在为英特尔设置了替代方案,我希望这也将修复任何其他设置,以便所有内容都应该再次显示(显然你应该重新启动X服务器)

我希望我能正确解释错误。

此外,您可以使用prime-select query来检查当前选择的卡,并修复该卡的替代品(例如NVIDIA),因为您可能以某种方式设置了另一张卡的替代品(例如Intel),但该工具是仍然认为你正在使用另一张卡(例如NVIDIA),因此给出了一个错误,指出备选方案没有正确设置。

我想我至少找到了一个解决方法

这都是关于update-alternatives
我注意到了这两点

 sudo update-alternatives --config i386-linux-gnu_gl_conf 

 sudo update-alternatives --config x86_64-linux-gnu_gl_conf 

返回包含/usr/lib/i386-linux-gnu/mesa/ld.so.conf或类似内容的列表。

不知何故,每次重启后,即使我手动更改了/usr/lib/i386-linux-gnu/mesa/ld.so.conf也将其设置为选择状态。

我尝试更改该列表上的顺序,但最终解决方案是将其删除

 sudo update-alternatives --remove x86_64-linux-gnu_gl_conf /usr/lib/x86_64-linux-gnu/mesa/ld.so.conf 

 sudo update-alternatives --remove i386-linux-gnu_gl_conf /usr/lib/i386-linux-gnu/mesa/ld.so.conf 

那应该够了。
如果没有,请将’i386’和’x86_64’设置为相同的选项

 sudo update-alternatives --config x86_64-linux-gnu_gl_conf 

 sudo update-alternatives --config x86_64-linux-gnu_gl_conf 

之后重新启动。

您始终可以将其恢复为原始状态

 sudo update-alternatives --install /etc/ld.so.conf.d/i386-linux-gnu_GL.conf i386-linux-gnu_gl_conf /usr/lib/i386-linux-gnu/mesa/ld.so.conf 500 

 sudo update-alternatives --install /etc/ld.so.conf.d/x86_64-linux-gnu_GL.conf x86_64-linux-gnu_gl_conf /usr/lib/x86_64-linux-gnu/mesa/ld.so.conf 500 

希望它也适合你。

什么对我有用,我仍然想找到他的post。 我看到的人太多了:

在这里,这对我有用:

我试过了:

 sudo update-alternatives --config x86_64-linux-gnu_gl_conf sudo ldconfig -n sudo update-initramfs -u 

并重新启动,没有任何变化。 所以我尝试过:

 sudo apt-get purge libvdpau-va-gl1 bumblebee* nvidia* sudo apt-get install linux-headers-generic sudo apt-get install nvidia-331 nvidia-settings nvidia-prime 

重启。 仍然,没有更改,并在我尝试切换到我的nvidia卡时nvidia设置中的相同空白错误消息。

我尝试使用sudo prime-switch nvidia手动sudo prime-switch nvidia ,并更新了配置信息。 我再次尝试,nvidia-settings要求我退出并重新登录…瞧! 我有它的工作!

在我的情况下,似乎在能够使用nvidia-settings UI切换之前,我不得不首先以超级用户手动切换,以便生成正确的配置!

我尝试过的好事,或者我还在修修补丁,安装其他驱动程序! 希望这certificate对别人有用!

按照预先答案,这是我在我的linux薄荷17.2上得到它的方式。

我先做:

 sudo update-alternatives --config x86_64-linux-gnu_gl_conf 

选择’nvidia-prime’的那个:

 sudo prime-select nvidia 

然后重启:

 sudo init 6 

我有一个看起来相同的问题,答案是我仍然安装了bumblebee-nvidia

请注意,您使用sudo apt-get purge nvidia*清除“所有NVIDIA”,并且上面的包与该通配符不匹配。

所以,运行命令:

 apt-get purge bumblebee-nvidia nvidia* 

然后重新启动,然后安装相关的nvidia-xxxnvidia-settingsnvidia-prime软件包(我目前正在使用xorg-edgers的版本340.24)。

现在,在此安装过程中,您应该看到有关*gnu_gl_conf文件的相关update-alternatives消息。

我找到了解决方案。

我不确定究竟是什么问题,但这个问题似乎已经在全新安装的16.04上消失了。 也许他们正确更新了依赖关系? 我不确定。

但我个人可以确认这在16.04不再是问题。 我以前在14.04有同样的问题。 但现在16.04已不再是问题。