当前位置: 首页>>技术问答>>正文


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

, , , ,

问题描述

[Ubuntu 14.04 64bit]

在英特尔/NVIDIA显卡和不同的NVIDIA驱动程序之间切换后,我现在突然陷入了英特尔GPU。以前在两者之间切换都没问题 – 我不能肯定地说是突然造成问题的原因。我认为我做的最后一件事就是切换到“X.Org X服务器”驱动程序 – 然后出现了问题。 The switching was part of me trying to troubleshoot issues with setting up a secondary screen

drivers,nvidia,graphics,nvidia-prime,ubuntu

每当我尝试切换到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: may be found at 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服务器

  • 为了与上述相同的目的重新启动整个PC

  • 执行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

希望它也适合你。

第三种解决办法

什么对我有用,我仍然试图找到他的职位。我看到了这么多人:

在这里,这对我有用:

我试过了:

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-settings仍然没有变化和相同的空白错误消息。

我尝试使用sudo prime-switch nvidia手动切换,并更新了配置信息。我又试了一次,然后nvidia-settings让我退出并重新登录…瞧!我有它的工作!

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

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

第四种办法

按照预先答案,这是我在我的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*清除”everything NVIDIA”,并且上面的包与该通配符不匹配。

所以,运行命令:

apt-get purge bumblebee-nvidia nvidia*

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

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

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/2144.html,未经允许,请勿转载。