んたのブログ

週末になると出没します。

Xfce4 on WSL2

Youtubeをウロウロしていたら以下のページがお勧めされまして。
 
WSL2 Ubuntu GUI
 
お、と思って「Install Ubuntu GUI: 7:25」からの内容で試してみたところ、無事Xfce4の起動にこぎつけることができました!英語の動画ですが、字幕がついているので聞き取りのが苦手な人間でも内容が理解しやすくて、とても助かりました。内容としてはxrdpをWSL2で起動して、Windowsリモートデスクトップから接続した際にXfce4を起動しています。

 

ただ動画だとコマンドをコピペできないので、履歴が残っているうちに実行した内容をメモしておきます。以下の内容は上記動画を見ながら実行した内容です。動画とはコマンドやオプションが若干違ってますが、自分が使い慣れているコマンドに置き換えただけでやっていることは変わりません。
 

[接続まで]

  • システムを更新
$ sudo apt-get update
$ sudo apt-get upgrade
 
  • xrdp  をインストール
$ sudo apt-get install xrdp
 
  • xfce4 をインストール
$ sudo apt-get install xfce4
※途中でGDM3とLightDMの選択がありますが、動画に沿って「GDM3」を選択
 
  • xfce4-goodies をインストール
$ sudo apt-get install xfce4-goodies
 
  • xrdp.ini 修正
$ cp -p /etc/xrdp/xrdp.ini /etc/xrdp/xrdp.ini.ORG
 
※コンフリクトを避けるため、xrdpのポートを3390に変更
$ sudo sed -i 's/3389/3390/g' /etc/xrdp/xrdp.ini
 
※解像度を変更
$ sudo sed -i 's/max_bpp=32/#max_bpp=32\nmax_bpp=128/g' /etc/xrdp/xrdp.ini
 
  • .xsessionを作成
$ echo xfce4-session > ~/.xsession
 
  • startwm.sh 修正
$ sudo cp -p /etc/xrdp/startwm.sh /etc/xrdp/startwm.sh.ORG
$ sudo vi /etc/xrdp/startwm.sh
※Editorはお好みでviから変更してください
 
※以下の最終2行をコメントアウト
# test -x /etc/X11/Xsession && exec /etc/X11/Xsession
# exec /bin/sh /etc/X11/Xsession
 
※以下2行を最終行として追加
#xfce4
startxfce4
 
セーブして終了
 
  • xrdpを起動
$ sudo /etc/init.d/xrdp start
* Starting Remote Desktop Protocol server                                                                       [ OK ]
 
コンピューターの接続先を「localhost:3390」に変更

f:id:ntaka1970:20200808133935p:plain

  • ログイン
ログインウィンドウにユーザ名とパスワードを入力して「OK」

f:id:ntaka1970:20200808133955p:plain

 
これでXfce4への接続に成功しました。
 

[接続後に何も表示されないとき]

どんな拍子かはわかりませんが、接続/切断を繰り返すうちに画面が真っ黒でなにも表示されない状態になったことがありました。リモートデスクトップを接続し直しても状態は変わりませんでしたが、xrdp を再起動することで復旧できたのでメモ。
 
$ sudo /etc/init.d/xrdp stop
* Stopping Remote Desktop Protocol server                                                                       [ OK ]
 
$ sudo /etc/init.d/xrdp start
* Starting Remote Desktop Protocol server                                                                       [ OK ]
 
$ sudo /etc/init.d/xrdp status
* xrdp-sesman is running
* xrdp is running
 

[終わりに]

ということで、念願のWSL2でのデスクトップ環境の起動に成功しました。Windows上でLinuxGUIまで動くようになるとか、ほんとに時代は変わったんですねえ、と実感できた出来事でした。