はじめに
Tauriの開発コマンドを実行すると新たにウィンドウが表示されるはずですが、ごくまれにしかウィンドウを開いてくれないという問題が発生しました。
今回はこの問題の解消方法を紹介します。
問題が発生した状況
以下のページを参考に、CargoとpnpmでTauri環境を構築しました。
cargo tauri dev
コマンドを実行した所、無事にウィンドウが表示されました。
しかし2度目以降の実行ではウィンドウが表示されませんでした。
この際、環境構築直後からコードは何も変更していません。
問題の原因
ごくまれにウィンドウが開いた際には、以下のような警告が表示されていました。
$ cargo tauri dev
libEGL warning: failed to open /dev/dri/renderD128: Permission denied
問題の解消方法
(参考にしたissueはTauriのものではありませんが、)ドライバーのパーミッションを変更してあげれば良さそうです。
If you have full control (i.e. root privileges) on this machine, it might simply be a matter of correcting the permissions on /dev/dri/renderD129 (usually by adding your user to the group that owns the device).
libEGL warning: failed to open /dev/dri/renderD128: Permission denied #214
$ ls -l /dev/dri
crw-rw-rw- 1 root render 226, 128 3月 17 12:28 renderD128
$ sudo usermod -aG render <username>
WSL2を再起動します。
wsl.exe --shutdown
再起動後、cargo tauri dev
コマンドを実行することで(現時点では)何度コマンドを実行してもウィンドウが開くようになりました。
libEGL warning: MESA-LOADER: failed to open vgem
ウィンドウが開くようになりましたが、以下のような警告も表示されるようになりました。
$ cargo tauri dev
libEGL warning: MESA-LOADER: failed to open vgem: /usr/lib/dri/vgem_dri.so: cannot open shared object file: No such file or directory (search paths /usr/lib/x86_64-linux-gnu/dri:\$${ORIGIN}/dri:/usr/lib/dri, suffix _dri)
こちらのDiscussionを見てみると、WSL2固有の問題の可能性がありそうです。
現時点ではこれによる問題は発生していませんが、対処法が分かり次第、追記します。