芋の独り言

当ブログへのアクセスは当ブログのプライバシーポリシーに同意したものとみなします.

WSLでGUIが使える方法があるようですが...

royalwin.blog.ss-blog.jp に書いてあることをまんまやったらだいたいできたかな~という感じですが, 上手く起動しないことの方が多いかな... そこ等辺の原因・解決法はわからんが, やったことをメモとして書いておこうかと思います.

まず,”VcXsrv Windows X Server”の準備については,以下の過去記事に参考リンクとともに書いてありますので, そちらを参考にしてください. kusoimox.hatenablog.jp

”VcXsrv Windows X Server”の準備ができたら,後は以上のサイト通りにやっていきました. 念のためaptの前にsudoつけてやりました. サイトに書いてあるように私の環境でもaptのところで時間が大変かかりました...

ただ,「シェルスクリプト start-ubuntu (ファイル名は任意)を作成」に関して, 私の環境下では”VcXsrv Windows X Server”をCドライブに入れておらず,Eドライブにフォルダを作成したので, そこの記述をそのパスに書き換える必要があり,

/mnt/e/VcXsrv/vcxsrv.exe  :0 -ac -nodecoration &

と書き換えました.そのほかは同じです.

ファイルの作成まで行ったら,WSLで./start-ubuntuをコマンド入力. すると管理者のパスを要求されるのでパスを入力してEnterで”VcXsrv Windows X Server”が起動してUbuntuの 画面がそこに映し出されます.

最初,./start-ubuntuをやっても起動せず,

Gdk-Message: 22:37:20.337: gnome-initial-setup: Fatal IO error 0 (成功です) on X server 0:0.

とエラー表示されて起動しなかったんですが,WSLを管理者権限で起動してから./start-ubuntuを行うと起動しました. しかし,何回か繰り返すとうまく起動しなくなり,

(gsd-color:11281): color-plugin-WARNING **: failed to get edid: unable to get EDID for output
(gsd-color:11281): color-plugin-WARNING **: failed to create device: failed to obtain org.freedesktop.color-manager.create-device auth
(gsd-media-keys:11257): GLib-GIO-CRITICAL **: g_dbus_proxy_call_internal: assertion 'G_IS_DBUS_PROXY (proxy)' failed
(tracker-miner-fs:11452): Tracker-WARNING **: Falling back to bus backend, the direct backend failed to initialize: locking protocol
(gnome-initial-setup:11431): InitialSetup-ERROR **: Failed to create proxy for timedated: Error calling StartServiceByName for org.freedesktop.timedate1: Launch helper exited with unknown return code 1

というようなエラーが表示されて起動しなくなりました... その後もうまく起動したりしなかったり... 他のサイトに書かれているコマンドも実行してますが,中々安定して起動してくれない...

また,aptdebファイルからインストールしたパッケージがアイコンをクリックして起動しても, 起動はするがボタンが反応しなかったり,WSL上で

error while loading shared libraries: libQt5Core.so.5: cannot open shared object file: No such file or directory

とエラーが出ていたり...

shared memfd open() failed: 関数は実装されていません 
PulseAudioService: pa_context_connect() failed 
composeAndFlush: makeCurrent() failed VcXsrc

も出てた.
とりあえずググって見たサイトより,

$ apt-file search libQt5Gui.so.5
$ apt-file search libQt5Core.so.5

でlibQt5Core.so.5のパスを確認してstrip --remove-section=.note.ABI-tag /usr/lib/x86_64-linux-gnu/libQt5Core.so.5を実行するも う~ん解決しない... sudo apt remove wsluもやったなぁ...

んで,ふと自身の過去記事

~$ cd
~$ nano .profile
export DISPLAY=:0.0
~$ source .profile

を実行.export DISPLAY=:0.0は書いてあったのだが, 実行後はaptdebファイルからインストールしたパッケージが起動して使えるようになった... もしかしてsource .profileなのか? まぁ,他にも色々コマンドを覚えてないけど試したからどれが効いたのかよく分からない...

他にデフォルトで入ってたビデオでmp4を再生しようとしたら,

shared memfd open() failed: 関数は実装されていません
PulseAudioService: pa_context_connect() failed
QNetworkRequest::setHeader: QVariant of type QByteArray cannot be used with header User-Agent

とエラーがでて再生できなかった...

$ sudo nano /etc/pulse/client.conf
$ sudo nano /etc/pulse/default.pa

をやってみたら,一時的なもんかもしれないけど

(gnome-initial-setup:9725): InitialSetup-ERROR **: 03:38:18.651: Failed to create proxy for timedated: Error calling StartServiceByName for org.freedesktop.timedate1: Launch helper exited with unknown return code 1

とエラーが出てしまった. 時間をおいてWSL起動したらGUIが立ち上がったが. Windows側の準備というのもよくわからん. 一応ダウンロードしてきたけど,う~む...

とりあえずここまでにしておこう~

他の参考リンク


第2の手段じゃぁぁぁぁ~~~!!

”VcXsrv Windows X Server”の代わりに 上記のGWSLをインストール. GWSLを使って,WSL2にmate-sessionコマンドを実行することで”VcXsrv Windows X Server”と同じように GUI環境を表示できます.

mate-sessionWSL で Ubuntu デスクトップ環境を作ってみる - tmtms のメモに 書いてあるコマンドを実行して入れ, GWSLは上記リンクよりMicrosoft Storeからダウンロード.

  1. GWSL起動で表示される画面は「Ok」をクリックして閉じます. 下のやつでもいいか.
    f:id:kusoimox:20210825221236p:plain
  2. 「Shortcut Creator」をクリック.
    f:id:kusoimox:20210825221300p:plain
  3. 「More Options」をクリック
    f:id:kusoimox:20210825221306p:plain
  4. 以下の画面のように各項目を選択し,「Add to Start Menu」でWindowsのメニューにショートカットを作って起動させればGUI(Mate)が表示されます. 「Test Configuration」でこの状態のテスト(GUIがでるかどうか)できますので, Addする前にやって確認しておいた方が良いでしょう.
    f:id:kusoimox:20210825223856p:plain