このページ のセクション3.2の指示に従っていました。
Sudo amdconfig --initial
を使用して新しいxorg.confファイルを作成するステップ8まではすべてうまくいきましたが、次のエラーが表示されます。
amdconfig: error while loading shared libraries: libGL.so.1: wrong ELF class: ELFCLASS32
ファイル/etc/ld.so.conf.d/lib32.conf
を内部に/usr/lib32
で作成し、2番目の回答 here を提案し、Sudo ldconfig
を実行しましたが、何も変更されませんでした。
編集:libgl1-mesa-glx:i386
をインストールし、Sudo ldconfig
を実行しました。再起動後も問題は続きました。
EDIT2:最初のリンクのステップ7以降、ユニティのトップパネルとサイドパネルを再起動した後、ダッシュも失われますが、ドライバのインストールが完了すると修正されると思います。
EDIT3:fglrxinfo
およびglxinfo
コマンドでも同じエラーが発生します(手順7を実行する前はglx情報は正常でした)。
EDIT4:lspci -v | grep -A10 VGA
の出力( 完全な出力 )
00:02.0 VGA compatible controller: Intel Corporation 3rd Gen Core processor Graphics Controller (rev 09) (prog-if 00 [VGA controller])
Subsystem: Dell Device 0572
Flags: bus master, fast devsel, latency 0, IRQ 45
Memory at c1000000 (64-bit, non-prefetchable) [size=4M]
Memory at b0000000 (64-bit, prefetchable) [size=256M]
I/O ports at 4000 [size=64]
Expansion ROM at <unassigned> [disabled]
Capabilities: <access denied>
Kernel driver in use: i915
01:00.0 VGA compatible controller: Advanced Micro Devices [AMD] nee ATI Chelsea LP [Radeon HD 7730M] (prog-if 00 [VGA controller])
Subsystem: Dell Device 0572
Flags: bus master, fast devsel, latency 0, IRQ 16
Memory at a0000000 (64-bit, prefetchable) [size=256M]
Memory at c0000000 (64-bit, non-prefetchable) [size=256K]
I/O ports at 3000 [size=256]
Expansion ROM at c0040000 [disabled] [size=128K]
Capabilities: <access denied>
Kernel driver in use: fglrx_pci
編集:dpkg -S libGL.so.1
の出力:
libgl1-mesa-glx:AMD64: /usr/lib/x86_64-linux-gnu/mesa/libGL.so.1
libgl1-mesa-glx:AMD64: /usr/lib/x86_64-linux-gnu/mesa/libGL.so.1.2.0
ご了承ください:
Ubuntu 16.04 LTS以上では、AMD CatalystまたはfglrxドライバーはAMDでサポートされなくなりました。
16.04 LTS以上を使用している場合は、自分で操作する可能性が非常に高くなります。以下は、質問で説明されているケースのみを対象としています。それ以降のバージョンで動作することを保証することはできません。
コメントによって解決した問題は、64ビットシステムで32ビットライブラリを使用していたことです。
間違ったELFクラス:ELFCLASS32
クラスの末尾は64である必要があったため、このエラーが発生しました。方法は、32ビットライブラリを削除してから64ビットを再インストールすることです。
Sudo apt-get purge libgl1-mesa-glx:i386
Sudo apt-get --reinstall install libgl1-mesa-glx
GNUリンカーを更新します。
Sudo ldconfig
すべてが問題なければ、ldconfig -p | grep libGL.so.1
が表示されます:
libGL.so.1 (libc6) => /usr/lib/x86_64-linux-gnu/mesa/libGL.so.1
libGL.so.1 (libc6) => /usr/local/lib/libGL.so.1
32ビットアプリケーションの実行に32ビットライブラリが必要な場合は、libgl1-mesa-glx:i386
パッケージをインストールすることができます。ただし、この場合、LD_LIBRARY_PATH
を一時的に32ビットライブラリの場所に設定することを忘れないでください。そうすれば、他のプログラムが混乱することはありません。
export LD_LIBRARY_PATH="/path/to/library/"
./run_some_32_bit_program
ファイルld.so.confを直接編集する代わりに、/ usr/local/lib行だけを含むサブディレクトリ/etc/ld.so.conf.dにlocal.confというファイルを作成します。あれは、
/etc/ld.so.conf.d/local.confの内容:
/ usr/lib64
次に、ldconfigコマンドを実行します。 (これは、ファイル/etc/ld.so.confに/etc/ld.so.conf.d/*.confを含む行が含まれていることを前提としています。)
これは一度だけ行う必要があります。
カーネルの更新後、同じ問題が突然発生しました。グラフィカルインターフェイスにログインできませんでした。 「aticonfig」コマンドを実行すると、このエラーが発生し、Xorg.0.logでも見つかりました。 wineやskypeなどのソフトウェア用に32ビットライブラリを備えたDebian Jessie 64ビットシステムを実行しています。 「libgl1-mesa-glx:i386」パッケージを削除すると、skypeとwine32もアンインストールされ、問題は解決しませんでした。
AMDドライバーインストーラーは、インストーラープログラム内でアーキテクチャを正しく認識したようですが、システムアーキテクチャの誤った解釈から32ビットライブラリへの誤ったリンクを作成することがわかりました。
ライブラリに対してローカライズコマンドを実行すると、次の情報が得られる場合があります。
# find / -name libGL.so*
/usr/lib/i386-linux-gnu/libGL.so.1
/usr/lib/i386-linux-gnu/libGL.so
/usr/lib/i386-linux-gnu/libGL.so.1.2
/usr/lib/i386-linux-gnu/libGL.so.1.2.0
/usr/lib/libGL.so
/usr/lib/libGL.so.1.2
/usr/lib/libGL.so.1
/usr/lib64/libGL.so.1.2
/usr/lib64/libGL.so.1
/usr/lib64/libGL.so
しかし、 "/ usr/lib"のシステムの標準ライブラリは、 "/ usr/lib/i386-linux-gnu /"のライブラリバージョンにリンクし、libGL.so.1ライブラリの32ビットバージョンを作成することがわかります。デフォルトのバージョン。このリンクは、システム構造の誤った解釈からAMD Driver Installerによって作成されます。この間違いは、システムに「/ usr/lib64 /」ディレクトリがあることに起因しています。ライブラリの64ビットバージョンはすべて「/ usr/lib /」にあるため、64ビットシステムには「/ usr/lib64 /」フォルダーがありません。そのため、インストーラはシステムを32ビットシステムと間違え、「libGL.so.1」の32ビットバージョンへのリンクを作成します
どうすれば修正できますか? -最初に「/ usr/share/ATI」にあるドライバーのアンインストーラーを実行します
# ls -lah /usr/share/ATI
-rw-r--r-- 1 root root 2,4K oct 19 20:51 fglrx-install.log
-rwxr--r-- 1 root root 18K oct 19 20:51 fglrx-uninstall.sh
これにより、すべての間違ったリンクが削除されます。
このステップの後でも、Propertary Driverがないことを警告するグラフィカルなログインを取得できました。
#cd /usr #ls -lah drwxr-xr-x 182 root root 40K oct 19 20:50 lib drwxr-xr-x 5 root root 4,0K oct 19 20:40 lib64 #pwd /usr #mv lib64 lib64_2015-10-19 #ls -lah drwxr-xr-x 182 root root 40K oct 19 20:50 lib drwxr-xr-x 5 root root 4,0K oct 19 20:40 lib64_2015-10-19
これで、libGL.so.1の64ビットバージョンへの正しいリンクが作成されました。
# ls -lah /usr/lib/libGL.so.1.2
lrwxrwxrwx 1 root root 33 oct 19 20:50 /usr/lib/libGL.so.1.2 -> /usr/lib/fglrx/fglrx-libGL.so.1.2
これで、通常どおりグラフィカルログインを再度取得できるようになります。