英特尔与 Nviidia GLX 的和平共处

英特尔与 Nviidia GLX 的和平共处

我有一台 Optimus 笔记本电脑,所以既有英特尔显卡,也有 NVIDIA 显卡。多年来,它一直使用 Bumblebee 运行良好(运行 12.04)。是的,我知道现在有更好的选择,但它运行良好。

问题是,出于各种原因,我需要 CUDA 6 工具包,这意味着需要外部安装。不出所料,它压垮了我的 GLX 库。

目前,nvidia 硬件运行良好,但 Intel 硬件(即:0 上的 xserver)无法成功加载 GLX。我大胆猜测,这可能与包含以下内容的 intel xorg 初始化日志有关:

[    77.269] (II) LoadModule: "glx"
[    77.269] (II) Loading /usr/lib/xorg/modules/extensions/libglx.so
[    77.277] (II) Module glx: vendor="NVIDIA Corporation"
[    77.277]    compiled for 4.0.2, module version = 1.0.0
[    77.277]    Module class: X.Org Server Extension
#...
[    77.469] (EE) Failed to initialize GLX extension (Compatible NVIDIA X driver not found)

dpkg -S同意/usr/lib/xorg/modules/extensions/libglx.so“属于” xserver-xorg-core,所以我有理由相信强制重新安装该软件包会使 libglx.so 恢复为“正确”版本。唯一的问题是这会破坏 nvidia 方面。

英特尔不使用xorg.conf,Nvidia 通过 bumblebee 使用。

有什么方法可以让这两个驱动程序和平共处吗?

答案1

您可以尝试/usr/lib/xorg/modules/extensions/libglx.soxserver-xorg-核心安装 xserver-xorg-core。我在类似情况下就是这么做的。方法如下:

  1. 首先确认它确实已经被 nvidia 安装替换:

    debsums xserver-xorg-core | grep libglx.so
    

    如果显示FAILED,则表示它实际上已被替换,您可以尝试恢复原件。

  2. 要恢复原始版本,首先找到已安装软件包的 .deb 文件名:

    apt-cache show xserver-xorg-core | grep Filename: | head -1
    

    它应该显示如下内容:

    Filename: pool/main/x/xorg-server/xserver-xorg-core_1.7.6-2ubuntu7.12_i386.deb
                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    
  3. 找到可以下载该文件的位置,然后下载。(通常,在 Google 上搜索文件名(^^^^^^下面标有)就足够了。)将其保存在 上/tmp

  4. 从包中提取所需的文件:

    cd /tmp
    dpkg --fsys-tarfile xserver-xorg-core_1.7.6-2ubuntu7.12_i386.deb | tar xvf - ./usr/lib/xorg/modules/extensions/libglx.so
    
  5. 重命名您要替换的文件(以防您以后需要它):

    mv /usr/lib/xorg/modules/extensions/libglx.so /usr/lib/xorg/modules/extensions/libglx.so.orig-20140914
    
  6. 将原始文件复制到正确的位置:

    mv ./usr/lib/xorg/modules/extensions/libglx.so /usr/lib/xorg/modules/extensions/libglx.so
    
  7. 重新启动你的X(从我的图形会话中注销并重新登录就足够了)。

  8. 运行glxgears(或您喜欢的 GLX 程序)以确认现在一切正常。

以上内容已经在我的旧版 Ubuntu 10.04 桌面(对我来说没有 Unity)上进行了测试并可以运行,如果您按照指示的步骤找出 .deb 包名称(与我的不同),那么它应该也可以在您的 12.04 安装上运行。

相关内容