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

状態
設定(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)
表示される画面はこちらで固まります。

対応
次の共有オブジェクトファイルがないということでした。
- /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 アカウントのログイン画面がでました。

でも、まだ一つメッセージが出ています。
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 として永続化します。
コメント