问题描述
[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。
每当我尝试切换到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-xxx
,nvidia-settings
和nvidia-prime
软件包(我目前正在使用xorg-edgers版本的340.24)。
现在,在此安装过程中,您应该看到有关*gnu_gl_conf
文件的相关update-alternatives
消息。