web-dev-qa-db-ja.com

32ビットOpenGLライブラリがnvidiaではなくmesaを指しているのはなぜですか。どうすれば修正できますか?

Ubuntu 13システムにNvidiaのドライバーをインストールしましたが、このコマンド(ldconfig -p | grep GL)に応じて:

$ ldconfig -p | grep GL
    libQtOpenGL.so.4 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libQtOpenGL.so.4
    libGLU.so.1 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libGLU.so.1
    libGLEWmx.so.1.8 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libGLEWmx.so.1.8
    libGLEW.so.1.8 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libGLEW.so.1.8
    libGLESv2.so.2 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/mesa-egl/libGLESv2.so.2
    libGL.so.1 (libc6,x86-64) => /usr/lib/libGL.so.1
    libGL.so.1 (libc6) => /usr/lib/i386-linux-gnu/mesa/libGL.so.1
    libGL.so (libc6,x86-64) => /usr/lib/libGL.so
    libEGL.so.1 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/mesa-egl/libEGL.so.1

OpenGLの32ビットバージョンは、nvidiaではなくmesaのライブラリを指しています。これにより、私のSteamゲームは次のエラーで起動を拒否します:

必要なOpenGLエントリポイント 'glGetError'が見つかりませんでした!ビデオカードがサポートされていないか、OpenGLドライバーを更新する必要があります。

これはなぜですか? nvidiaインストーラーから「32ビット互換ライブラリ」(またはそのようなもの)をインストールするかどうか尋ねられたとき、「はい」を選択しました。どうすれば修正できますか?


編集:

同じNvidiaドライバーを再インストールしたところ、32ビットOpenGLドライバーが完全に削除されたようです。

$ ldconfig -p | grep libGL.so
    libGL.so.1 (libc6,x86-64) => /usr/lib/libGL.so.1
    libGL.so (libc6,x86-64) => /usr/lib/libGL.so

今、Steamは起動しません:

次の32ビットライブラリが欠落しているため、Steamが実行されない場合があります:libGL.so.1

繰り返しますが、インストーラが32ビットライブラリをインストールするかどうかを尋ねてきたときにYESを選択しました。なぜインストールされていないのですか!?

4
Hubro

オプション1:ターミナルでSudo ldconfigを実行してみてください。再起動して試してください。

オプション2:ソートしない場合、手動でNVidiaライブラリ(/ usr/lib32)のディレクトリをldconfig構成ファイル(/etc/ld.so.conf)に追加する必要があります.d/libc.conf)そして、ldconfigを再実行します(もちろんルートとして)

編集:libc.confを変更する前にコピーを作成します。

2
BiggJJ

Nvidiaドライバーを再インストールすると、すべてのOpenGLドライバーがライブラリキャッシュから削除されました。ライブラリキャッシュは次のようになりました。

$ ldconfig -p | grep libGL.so
    libGL.so.1 (libc6,x86-64) => /usr/lib/libGL.so.1
    libGL.so (libc6,x86-64) => /usr/lib/libGL.so

32ビットドライバーはありません!幸いなことに、簡単な検索の結果、/usr/lib32の下にNvidiaの32ビットドライバーが見つかりました。そのパスを/etc/ld.so.conf.d/の下のファイルに追加し(どのファイルでも可能です。新しいファイルを作成することもできます)、Sudo ldconfigを実行しました。キャッシュは次のようになります。

$ ldconfig -p | grep libGL.so
    libGL.so.1 (libc6,x86-64) => /usr/lib/libGL.so.1
    libGL.so.1 (libc6) => /usr/lib32/libGL.so.1
    libGL.so (libc6,x86-64) => /usr/lib/libGL.so
    libGL.so (libc6) => /usr/lib32/libGL.so

そして、Steamは完璧に機能します!

2
Hubro

Codemonkey正しい:必要なのは、32ビットnvidiaのドライバーを追加し、mesaドライバーを削除することだけです。

cd /etc/ld.so.conf.d/

ls

「i386」でファイル名を見つけます

私のものは「i386-linux-gnu_GL.conf」です

それから書きます

Sudo gedit i386-linux-gnu_GL.conf 

次に、geditを使用して32ビットドライバーのパスを追加します。
mineは "/ usr/lib32 /"です。

32ビットドライバーの場所が見つからない場合は、検索してください。

セーブ。ターミナルを開いて入力します:

Sudo ldconfig

この後、私のHalf-Life2は完全に機能します。 :D

0
Haikalx