web-dev-qa-db-ja.com

IntelとNvidia GLXの平和的な共存

オプティマスラップトップを持っているので、Intelカードとnvidiaカードの両方。マルハナバチを使用して長年(12.04を実行)正常に動作しました。はい、私は今までにより良いオプションがあることを知っていますが、それはうまく働きます。

問題は、さまざまな理由で、外部インストールを意味するCUDA 6ツールキットが必要だったことです。当然のことながら、GLXライブラリはつぶされました。

現在、nvidiaハードウェアは正常に動作しますが、Intelハードウェア(つまり、0のxserver)はGLXを正常にロードできません。おそらく、それが含まれているインテル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.soxserver-xorg-coreに「属する」ことに同意するため、そのパッケージを強制的に再インストールするとlibglx.soが「正しい」バージョンに戻されることは合理的に確信しています。唯一の問題は、それがnvidia側を壊すことです。

Intelはxorg.confを使用しません。Nvidiaはbumblebee経由で使用します。

これら2つのドライバーを安心して共存させる方法はありますか?

3
zebediah49

元の/usr/lib/xorg/modules/extensions/libglx.soxserver-xorg-coreから復元しようとするかもしれません Install 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インストールでも動作するはずです。

1
durval