Windows Subsystem for LinuxとX Windowの連携

  • 本ブログで紹介する開発環境は、あくまでも参考情報です。Armadilloでの使用に際しては、以下の点にご注意ください。
    • 製品化用のプラットフォームとして推奨するものではありません。
    • 本ブログで紹介している環境は、Debian GNU/Linux 9 (Stretch)かつLinux-4.9を搭載しているArmadilloにのみ有効です。
    • 上記以外のバージョンを搭載しているArmadillo(Debian GNU/Linux 8 (Jessie)やLinux-3.14等)には対応していません。
    • 今後リリースされる予定のDebian "buster"での動作は現時点で不明です。

前準備: WSLのインストール

WSLのインストール方法は、 Windows Subsystem for LinuxにArmadillo開発環境を構築するための手順 を参照してください。

1. Windows用Xサーバのインストール

Window PCのXサーバとして Xming が有名ですが、Xmingの無償版 (Public Domain) は、2007年から更新されていません。

そこで今回は、頻繁にメンテナンスされている VcXsrv を使うことにしました。 VcXsrvは、 sourceforgeのVcXsrv Windows X Server からダウンロードできます。ちなみに、本ブログ執筆時点での最新は1.20.1.4でした。

VcXsrvをダウンロードしたら、vcxsrv-64.1.20.1.4.installer.exeを実行して、インストールを開始します。

デフォルト設定のままインストールするとWindowsデスクトップに、VcXsrvの起動と初期設定を行うための"XLaunch"アイコンができます。

TAG index

2. Xクライアントのインストール

WSLを起動して、Xクライアントをインストールします。

今回は、以下のアプリケーションと、アプリケーション動作に必要なライブラリをインストールしてみました。

 atmark@PC-0050:~$ sudo apt-get install -y gnome-terminal
 atmark@PC-0050:~$ sudo apt-get install -y x11-apps
 atmark@PC-0050:~$ sudo apt-get install -y gedit
 atmark@PC-0050:~$ sudo apt-get install -y dbus-x11

3. Windows用Xサーバの起動

1.で作成されたXLaunchアイコンをダブルクリックすると、初期設定の画面が開きます。

使用環境に合わせてディスプレイの設定やクライアントの開始方法などを設定してください。

ここではデフォルトのまま、「次へ」をクリックして進み、最後に「完了」をクリックします。

TAG index TAG index TAG index TAG index

4. Xクライアントの起動

Xクライアントのアプリケーションを起動する前に、ディスプレイ環境変数[ホスト名:ディスプレイ番号.スクリーン番号]を設定します。

ディスプレイ環境変数は、PCに接続しているモニターの環境によって変わります。

VcXsrvが表示されているタスクトレイのアイコンにマウスを合わせると、ディスプレイ/スクリーン番号が分かります。

TAG index

あるいはVcXsrvのアイコンを右クリックして、Show logでログを開くことでもディスプレイ環境変数が分かります。

ここでは、ディスプレイ変数が0.0でしたので、以下のコマンドを実行してディスプレイ環境変数を設定しました。

atmark@PC-0050:~$ echo 'export DISPLAY=localhost:0.0' >> ~/.bashrc
atmark@PC-0050:~$ source ~/.bashrc

4. Xクライアントの起動

4.までの設定が完了したら、様々なアプリケーションが実行できます。

実行例

 atmark@PC-0050:~$ xeyes & xclock & gnome-terminal & xcalc & gedit .bashrc &

TAG index

5. 注意

本ブログで紹介した開発環境は、あくまでも参考情報です。
製品化用のプラットフォームとして推奨するものではありません。
製品: 
Armadillo-X1
Armadillo-IoT G3L
Armadillo-IoT G3
Armadillo-640
タグ: 
TIPS
開発環境
Armadillo-IoT G3
Armadillo-IoT G3L
Armadillo-X1
Armadillo-640