amdgpu-install_5.4.50401-1_all.deb と GNOME Control Center

こちらの記事のとおり、一部不具合があってインストールを諦めていましたが、もう少し調べてみました。

目次

状態

設定(GNOME Control Center)をターミナルから開いて、オンラインアカウントから Google を選択すると、次のメッセージが表示されます。

user@T14-Ubuntu:~$ gnome-control-center 
libEGL warning: MESA-LOADER: failed to open radeonsi: /usr/lib/dri/radeonsi_dri.so: 共有オブジェクトファイルを開けません: そのようなファイルやディレクトリはありません (search paths /usr/lib/x86_64-linux-gnu/dri:\$${ORIGIN}/dri:/usr/lib/dri, suffix _dri)

libEGL warning: MESA-LOADER: failed to open swrast: /usr/lib/dri/swrast_dri.so: 共有オブジェクトファイルを開けません: そのようなファイルやディレクトリはありません (search paths /usr/lib/x86_64-linux-gnu/dri:\$${ORIGIN}/dri:/usr/lib/dri, suffix _dri)

EGLDisplay Initialization failed: EGL_NOT_INITIALIZED
libEGL warning: MESA-LOADER: failed to open radeonsi: /usr/lib/dri/radeonsi_dri.so: 共有オブジェクトファイルを開けません: そのようなファイルやディレクトリはありません (search paths /usr/lib/x86_64-linux-gnu/dri:\$${ORIGIN}/dri:/usr/lib/dri, suffix _dri)

EGLDisplay Initialization failed: EGL_NOT_INITIALIZED
Cannot create EGL context: invalid display (last error: EGL_SUCCESS)
Cannot create EGL context: invalid display (last error: EGL_SUCCESS)

表示される画面はこちらで固まります。

オンラインアカウント(Google)

対応

次の共有オブジェクトファイルがないということでした。

  • /usr/lib/dri/radeonsi_dri.so
  • /usr/lib/dri/swrast_dri.so

探してみると次のディレクトリにありました。

user@T14-Ubuntu:~$ sudo find / -name radeonsi_dri.so
/usr/lib/x86_64-linux-gnu/dri/radeonsi_dri.so
/usr/lib/i386-linux-gnu/dri/radeonsi_dri.so
/opt/amdgpu/lib/x86_64-linux-gnu/dri/radeonsi_dri.so
/opt/amdgpu/lib/i386-linux-gnu/dri/radeonsi_dri.so

user@T14-Ubuntu:~$ sudo find / -name swrast_dri.so
/usr/lib/x86_64-linux-gnu/dri/swrast_dri.so
/usr/lib/i386-linux-gnu/dri/swrast_dri.so
/opt/amdgpu/lib/x86_64-linux-gnu/dri/swrast_dri.so
/opt/amdgpu/lib/i386-linux-gnu/dri/swrast_dri.so

そもそも /usr/lib/dri はありません。
とりあえず mkdir /usr/lib/dri でディレクトリを作って、2つのファイルのシンボリックを作成してからターミナルで Gnome Control Center を起動しても状況は変わらなかったので、ファイルをコピーしてみました。

user@T14-Ubuntu:/usr/lib/dri$ sudo cp /usr/lib/x86_64-linux-gnu/dri/radeonsi_dri.so ./
user@T14-Ubuntu:/usr/lib/dri$ sudo cp /usr/lib/x86_64-linux-gnu/dri/swrast_dri.so ./
user@T14-Ubuntu:/usr/lib/dri$ gnome-control-center 
libEGL warning: MESA-LOADER: failed to open radeonsi: libLLVM-15.so: 共有オブジェクトファイルを開けません: そのようなファイルやディレクトリはありません (search paths /usr/lib/x86_64-linux-gnu/dri:\$${ORIGIN}/dri:/usr/lib/dri, suffix _dri)

libEGL warning: MESA-LOADER: failed to open swrast: libLLVM-15.so: 共有オブジェクトファイルを開けません: そのようなファイルやディレクトリはありません (search paths /usr/lib/x86_64-linux-gnu/dri:\$${ORIGIN}/dri:/usr/lib/dri, suffix _dri)

EGLDisplay Initialization failed: EGL_NOT_INITIALIZED
libEGL warning: MESA-LOADER: failed to open radeonsi: libLLVM-15.so: 共有オブジェクトファイルを開けません: そのようなファイルやディレクトリはありません (search paths /usr/lib/x86_64-linux-gnu/dri:\$${ORIGIN}/dri:/usr/lib/dri, suffix _dri)

EGLDisplay Initialization failed: EGL_NOT_INITIALIZED
Cannot create EGL context: invalid display (last error: EGL_SUCCESS)
Cannot create EGL context: invalid display (last error: EGL_SUCCESS)

今度は libLLVM-15.so がないということでダメでした。
探してみると・・・ありました。

user@T14-Ubuntu:~$ sudo find / -name libLLVM-15.so
/opt/amdgpu/lib/x86_64-linux-gnu/libLLVM-15.so
/opt/amdgpu/lib/x86_64-linux-gnu/llvm-15.0/lib/libLLVM-15.so
/opt/amdgpu/lib/i386-linux-gnu/libLLVM-15.so
/opt/amdgpu/lib/i386-linux-gnu/llvm-15.0/lib/libLLVM-15.so

それじゃあということで、次のサイトを参考に検索パスを調べてみました。

amdgpu-install を実行したときに作られたファイルによると、共有ライブラリへのパスは通っているように見えます。

user@T14-Ubuntu:~$ cat /etc/ld.so.conf.d/20-amdgpu.conf 
/opt/amdgpu/lib/x86_64-linux-gnu
/opt/amdgpu/lib/i386-linux-gnu

それならということで、環境変数 LD_LIBRARY_PATH を設定して Gnome Control Center を起動してみると、

# 最初は何もありませんでした。
user@T14-Ubuntu:~$ echo $LD_LIBRARY_PATH

user@T14-Ubuntu:~$ 

# 設定してみます。
user@T14-Ubuntu:~$ export LD_LIBRARY_PATH="/opt/amdgpu/lib/x86_64-linux-gnu"
user@T14-Ubuntu:~$ echo $LD_LIBRARY_PATH
/opt/amdgpu/lib/x86_64-linux-gnu

Google アカウントのログイン画面がでました。

Google アカウントログイン画面

でも、まだ一つメッセージが出ています。

user@T14-Ubuntu:~$ gnome-control-center 
/opt/amdgpu/share/libdrm/amdgpu.ids: そのようなファイルやディレクトリはありません

またまたファイルを探してみます。

user@T14-Ubuntu:~$ sudo find / -name amdgpu.ids
/usr/share/libdrm/amdgpu.ids
/opt/amdgpu/share/libdrm/amdgpu.ids

こちらも $LD_LIBRARY_PATH に追加してみます。

user@T14-Ubuntu:~$ export LD_LIBRARY_PATH="/opt/amdgpu/lib/x86_64-linux-gnu:/opt/amdgpu/share/libdrm"
user@T14-Ubuntu:~$ echo $LD_LIBRARY_PATH
/opt/amdgpu/lib/x86_64-linux-gnu:/opt/amdgpu/share/libdrm

これでメッセージは何も出ず、正常に動作するようになりました。

環境変数の永続化

結局、$LD_LIBRARY_PATH がないのが原因ということで、ログイン時に設定されるよう/etc/profile を編集して全ユーザー共通の環境変数 $LD_LIBRARY_PATH として永続化します。

コメント

コメントする

目次