みねっちょのマイコン関係ブログ

組込開発系フリーソフトやハードの情報発信ブログ

WSL から WSL2 への移行でX サーバの設定変更が必要になる

サイト内 Google 検索:


最終更新: 2021-03-28

WSL1 と WSL2 での Windows 10上での X Window サーバ (X Server) の設定の違いについてまとめました。WSL1 から WSL2 へ移行すると設定変更が必要となります。

記事後半に Window 用の無償な X WIndow サーバソフト VcXsrv のダウンロード先と、同ソフトでの設定の仕方を記載しています。尚、【こちらの別記事】Windows 用の無償な X サーバソフト3種の比較を記載しています。


 


まずは一般論として表にまとめると次の通りです。

項目  WSL1 WSL2
WSL の IP アドレス ホストと共通。
毎回同一。
仮想化されて独立。
起動毎に変わる。
WSL でのDISPLAY 環境変数の指定方法
 (「export DISPLAY=XXX」の XXX )
:0 ホストのIPアドレス:0
(例 192.168.1.2:0)
X サーバでのクライアントの認識 自分のマシンから 他のマシンから
X サーバのアクセスコントロール
 (Unix の「xhost +」コマンド相当)
操作不要 要解放

 

目次:


 


IP アドレス管理の違い:

WSL1ではホストと同一のイーサネット用 IP アドレスを共有していましたが、WSL2では Hyper-V の上で仮想化された完全な Linux が独立して動きますので、IP アドレスも仮想化されて独立した物となります。

従って、WSL1では localhost (127.0.0.1) はホストと同じコンピュータを指して居ましたが、WSL2ではホストとは別の仮想化されたコンピュータとなります。

つまり、Linux の DISPLAY 環境変数の値は、WSL1では localhost で問題無かったのが、WSL2ではホストの IP アドレスを指定する必用が有ります。これは、WSL1で「export  DISPLAY=:0」の指定をしていた人は、WSL2では「export DISPLAY="ホストのIPアドレス”:0」への変更が必用になるという事です。

尚、WSL2での IP アドレスの仮想化については、次の ASCII の記事に詳しく書かれています。

ascii.jp


[広告]


無償な X サーバソフト VcXsrv のダウンロード先:

まずは、Windows 用の無償な X サーバソフト、VcXsrv のダウンロード先は次の通りです。

sourceforge.net

 


 


VcXsrv のユーザー側での設定の変更:

Windows 用の無償な X サーバソフト、VcXsrv を使っている場合は、WSL1 から WSL2 への移行で、下記の通り設定の変更が必要となります。

  1. Windows ホスト側での起動時に、アクセス コントロールを無効化する
    XLaunch 起動時に、3画面目で「Disable access control」にチェックを入れます。
    この指定は、localhost (127.0.0.1) 以外からの全てのアクセスを許可する事になります (一般的な Unix 環境での「xhost +」と同一) 。
    (画像はクリックすると拡大します)

    f:id:minettyo:20210219233129j:plain

  2. タスクバーから起動する場合
    XLaunch 起動時の4画面目で「Save configuration」を押した場合、VcXsrv をタスクバーにピン留めしておけば、マウスの右クリックから次の様に「config.xlaunch」を選択すれば、上記1のチェックを入れた状態で起動出来ます。

    f:id:minettyo:20210226105645j:plain

  3. WSL2上での DISPLAY 環境変数の指定の変更
    WSL1では 「:0」で使えて居ましたが、WSL2ではホストの仮想化されていない実 IP アドレスを入力する必用が有ります。ホストの IP アドレスは、次の様に調べます。
    1. Winows 上でコマンドプロンプトを開き、ipconfig と入力する。

      f:id:minettyo:20210222144238j:plain

    2. 表示された中の「イーサネット アダプター Ethernet:」の「IPv4 アドレス」を確認する。
    3. 確認した IPv4 アドレスを、WSL2 上で「export DISPLAY="確認したアドレス”:0」と指定する。この例では「export DISPLAY=192.168.11.2:0」。
  4. ルーターでのパソコンの IPv4 アドレスを固定にする
    ホストの IPv4 アドレスは、パソコンを接続しているルーターDHCP の設定で変わります。常に同じアドレスを取得したい場合には、ルーターの設定を「手動割当」に変更しておくと良いでしょう。その上で、WSL2の .bashrc に「export DISPLAY="確認したアドレス”:0」を記載しておくと、毎回人手で指定する必用が無くなります。下記の例では「export DISPLAY=192.168.11.2:0」となります。

    f:id:minettyo:20210222152356j:plain


【X-Window の目次へ戻る】   【WSL の目次へ戻る】