无法再从Intel切换到NVIDIA GPU


39

[Ubuntu 14.04 64位]

在Intel / NVIDIA图形和不同的NVIDIA驱动程序之间切换之后,我现在突然陷入了Intel GPU。过去在两者之间切换完全没有问题-我不能确定是什么突然导致了问题。我认为我做的最后一件事是切换到“ X.Org X服务器”驱动程序-然后出现了问题。切换是我尝试解决设置辅助屏幕问题的一部分

在此处输入图片说明

每次尝试切换到NVIDIA时,都会收到此非常有表现力的错误消息,然后切换回Intel:/

我可以在故障排除或尝试方法方面提供一些帮助。

到目前为止,我(取消/重新安装)安装了各种软件包“ 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

关于卡西姆的第二项建议:

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]

奇怪的是-这实际上是第一次!然后我切换回Intel-注销/启动-切换回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 Server Settings”(NVIDIA X服务器设置),它将立即重新启动并查看会发生什么。后续措施:重新启动后它又切换回了Intel,并且无法照常切换到NVIDIA。在我看来,您的方法Louis欺骗了操作系统,使其认为它使用了NVIDIA,而实际上并非如此。


2
我有完全相同的问题,实际上问题已经扩展,现在我的Nvidia卡在Windows 8.1中无法正常工作,这意味着会影响OS之外的某些配置:(实际上,我尝试使用Ubuntu的全新安装,但没有再reconizes卡。
user5288

你可以发布你的/etc/apt/sources.list吗?
davidbaumann 2014年

@Raffael ...我已删除答案,尝试通过sudo apt-get install nvidia-319-updates nvidia-settings-319-updates nvidia-prime删除并重新安装nvidia prime
Qasim 2014年

您是否移除了Nvidia 1st?@Raffael
Qasim

我可以使用teamviewer以便查看问题吗?
Qasim

Answers:


18

当您收到以下错误时:

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

    由于您现在已经为Intel设置了替代产品,所以我希望这也可以修复其他设置,以便一切恢复原样(显然,您仍然应该重新启动X服务器)

我希望我已正确解释了错误。

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


不知道为什么您建议我应该如何切换英特尔-但调用第一个命令最终会添加到我的问题中。
拉斐尔2014年

抱歉,这些命令是错误的。我的意思是您可以尝试设置当前卡(Intel)prime-select的替代方案,因为这些替代方案已损坏。然后,您可以尝试是否再次切换到NVIDIA。我不知道这是否行得通,您应该检查替代方案当前指向的内容,以便在这种方法不起作用时可以还原替代方案。
Louis Matthijssen 2014年

1
当我尝试切换到NVIDIA时,我遇到的问题与您完全一样。我在这里提供的命令对我有用。看到我的完整输出
Louis Matthijssen 2014年

+10 +50;)我想我会在发现时间的时候重新安装Ubuntu
Raffael 2014年

1
对我来说,问题在于,替代方案指向Mesa驱动程序,因此混淆了它prime-select。我要做的就是将替代设置重置为默认设置:update-alternatives --auto i386-linux-gnu_gl_confupdate-alternatives --auto x86_64-linux-gnu_gl_conf。之后,nVidia面板再次开始工作。
SnakE

5

我认为至少已经找到了解决方法

全部有关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

希望它也对您有用。


1
遵循您的指示并重新启动后,我无法登录。出现登录页面,输入密码并点击Enter后,它将显示黑屏,然后再次显示登录屏幕。我使用CTRL + Alt + F1并使用了最后两个命令将其设置回其先前的设置。我现在可以登录,但仍然无法使用NVidia卡。
BourbonCreams

@BourbonCreams,很抱歉听到这个消息。我建议尝试sudo apt-get purge nvidia-*,重新启动,添加此ppa :(ppa:graphics-drivers/ppa来自webupd8.org/2016/06/…)并使用内置GUI应用程序安装或运行选定的驱动程序sudo apt-get install nvidia-<choosen driver version> nvidia-prime-它也应该起作用。有时由于某种原因我必须做两次(或至少重新启动两次)。老实说,我认为此答案的解决方法并不完美。
kcpr

此更新并未为我解决此问题,但对我而言,事实证明,由于某些符号链接中的错误导致nvidia模块未加载,如此处对此答案的描述(并已修复):askubuntu.com/questions/900285 /…
斯科特(Scott)

4

对我有用的东西,我仍在寻找他的职位。我看了太多东西:

在这里,这对我有用:

我试过了:

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,并且配置信息已更新。我再次尝试,nvidia设置要求我注销并重新登录,然后……瞧!我已经工作了!

就我而言,看来在能够使用nvidia-settings UI进行切换之前,我必须首先以超级用户身份手动进行切换,以便生成正确的配置!

我尝试过的好事,或者我仍然会修补其他驱动程序!希望这对其他人证明有用!


4

按照预先的答案,这就是我如何在Linux Mint 17.2上正确实现的方法。

首先,我这样做:

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

选择一个带有“ nvidia-prime”的:

sudo prime-select nvidia

然后重新启动:

sudo init 6

2

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

请注意,您正在使用清除“一切NVIDIA” sudo apt-get purge nvidia*,并且以上软件包与该通配符不匹配。

因此,运行命令:

apt-get purge bumblebee-nvidia nvidia*

然后重新启动,然后安装相关nvidia-xxxnvidia-settingsnvidia-prime包(我目前使用的版本340.24从的xorg-轧边机)。

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


:-/ ...自从我上一次尝试以来,再也没有清除过的垃圾
Raffael

0

我找到了解决方案。

我不确定到底是什么问题,但是在全新安装的16.04中似乎不再存在此问题。也许他们在其中正确更新了依赖项?我不确定。

但是我可以亲自确认这不再是16.04中的问题。我以前在14.04中有完全相同的问题。但是现在有了16.04,它不再是一个问题。


原谅我提出了一个旧的答案,但我正面临着同样的问题
Rakshith Ravi
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.