今天,我的 NVidia 显卡坏了。我把它从电脑上拆下来,换成了板载的:
$ lspci | grep VGA
00:02.0 VGA compatible controller: Intel Corporation Xeon E3-1200 v3/4th Gen Core Processor Integrated Graphics Controller (rev 06)
我这台电脑上有两个系统:一个是 Kubuntu 15.04,之前使用的是 nouveau 驱动程序(从未使用过专有的 nvidia 驱动程序)。另一个是 Kubuntu 15.10,之前使用的是专有的 nvidia-352 驱动程序。
删除 NVidia 驱动程序后,我的 Kubuntu 15.04 启动顺利,X 在连接两个显示器的情况下运行良好,并且具有所有 3D 效果。我真的不是需要一张 NVidia 卡。
但是,Kubuntu 15.10 无法正常工作。首先,X 根本无法启动。因此,我登录到文本控制台(幸运的是,它运行正常),然后卸载了所有 nvidia 驱动程序:
$ apt-get purge nvidia-*
此后,我重新启动了系统,但仍然无法工作 :-( 我发现问题出在错误的“xorg.conf”上。它指出(除其他事项外):
Section "ServerLayout"
Identifier "layout"
Screen 0 "nvidia"
Inactive "intel"
EndSection
Section "Device"
Identifier "intel"
Driver "modesetting"
BusID "PCI:0@0:2:0"
Option "AccelMethod" "None"
EndSection
我删除了“Inactive “intel””行,将“nvidia”改为“intel”,然后调用startx => 得到一个图形系统。我重新启动后,文件又出错了。
经过一番挖掘,我发现我必须将“nogpumanager”传递给内核,因此我编辑了“/etc/default/grub”,运行“update-grub”并重新启动=>系统启动正常。
然而,我发现一些桌面效果 - 例如立方体 - 不起作用(它们在我的 Kubuntu 15.04 上运行良好)。
问题似乎是 X 使用“modesetting”驱动程序而不是“intel”驱动程序。我尝试在“xorg.conf”中明确设置“Driver“intel”,但 X 无法启动 :-(
但是,当我运行“Xorg -configure”时,它会在“视频驱动程序列表:”下的第一行列出“intel”!
我认为我之前安装的 nvidia 专有驱动程序以某种方式强制英特尔驱动程序退出了。然而,即使经过几个小时的搜索,我仍然没有找到这个问题所在。
它在哪个文件中抑制了英特尔驱动程序?!
请帮忙!我真的不想重新安装系统,只是因为 nvidia 驱动程序留下了一些垃圾(到目前为止我无法找到)。我真的很想再次使用立方体和许多其他 3D 效果 ;-) 使用 XRender(而不是 OpenGL)时,它们似乎会被自动抑制。而且我似乎无法在不使用正确的驱动程序时启用 OpenGL,即使“glxinfo”显示:
$ glxinfo | grep OpenGL
OpenGL vendor string: VMware, Inc.
OpenGL renderer string: Gallium 0.4 on llvmpipe (LLVM 3.6, 256 bits)
OpenGL version string: 3.0 Mesa 11.0.2
OpenGL shading language version string: 1.30
OpenGL context flags: (none)
此外,像“glxgears”这样的测试程序运行良好(甚至可以说,我有 2500+ FPS)。
谨致问候,Marco :-)
答案1
Yabbadabbadoooo!!!! 是的,我找到并修复了它!!!
我认为这个问题可能与“替代方案”有某种联系,经过进一步的研究后,我偶然发现了这一点:
sudo update-alternatives --remove-all x86_64-linux-gnu_gl_conf
sudo update-alternatives --remove-all i386-linux-gnu_gl_conf
http://forum.ubuntuusers.de/topic/nvidia-current-update-problem/(在最后) https://github.com/Bumblebee-Project/Bumblebee/issues/76
为了确认,我还运行了这个:
sudo update-alternatives --remove-all gl_conf
...但这个替代方案似乎尚未被指定。
然后我再次删除了‘/etc/X11/xorg.conf’,从‘/etc/default/grub’中删除了内核选项‘nogpumanager’(然后是‘update-grub’)并重新启动。
...现在它运行正常!
以下是“glxinfo”的输出(摘录):
OpenGL vendor string: Intel Open Source Technology Center
OpenGL renderer string: Mesa DRI Intel(R) Haswell Desktop
OpenGL core profile version string: 3.3 (Core Profile) Mesa 11.0.2
OpenGL core profile shading language version string: 3.30
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile
由于英特尔驱动程序现在处于活动状态,我能够从“XRender”切换到“OpenGL 3.1”(在“Compositor”下的显示设置中),并且所有 3D 效果都可以再次工作。
编辑:一天后,我发现 LibreOffice 无法启动了。我不再收到确切的错误消息,但它说缺少库 - 看起来与此问题有关(在删除 NVidia 之前它运行良好)。
经过一些研究,我做了以下事情:
sudo apt-get install --reinstall libglu1-mesa libglu1-mesa:i386
sudo apt-get install --reinstall libglu1
sudo apt-get install --reinstall libgl1-mesa-glx
我认为,只有最后一行是相关的,但为了完整性我列出了所有内容。