UbuntuをWindows11上で動かす その10: GUIを使う(WSLg編)

UbuntuをWindows11上で動かす その10: GUIを使う(WSLg編)Ubuntu
スポンサーリンク

前回はWSL2のUbuntuにリモートデスクトップで接続してGUIを表示する方法を紹介しました。

今回は別の方法を使ってWSL2のGUIを利用できるようにしたいと思います。

スポンサーリンク

WSLgとは

WSLgとは、Linux GUIアプリケーションを実行可能とするためのWSL2の機能です。

WSL で Linux GUI アプリを実行する
WSL で Linux GUI アプリの実行がどのようにサポートされるかについて説明します。

この機能を用いると、下記のことが可能になります。

  • Windows の [スタート] メニューから Linux アプリを起動する
  • Linux アプリを Windows のタスク バーにピン留めする
  • Alt + Tabを使用して Linux アプリと Windows アプリを切り替える
  • Windows アプリと Linux アプリ間で切り取りと貼り付けを行う

つまり、WindowsのアプリのようにLinuxのGUIアプリを起動できるということになります。

スポンサーリンク

準備

この記事を作成している時点(2022年2月)では、WSLgはまだプレビュー版でいろいろ制約があります。

Windowsのバージョンの確認

WSLgが利用可能なのは「Windows 11 ビルド 22000 以上」とされています。

Windows Insider Programに参加していれば、それ以前のWindowsでも利用可能かもしれません。

Windows11を導入していて、Windows Updateを適宜適用しているとこの条件はクリアできていると思います。

Windowsのバージョン情報

なおこの画面は「ファイル名を指定して実行」で「winver」を入力すると表示できます。

WSL2のアップデート

WSL2は最新の状態にしておいたほうが良さそうです。

これはPowerShellで「wsl --update」コマンドを実行することで行えます。

詳細は下記記事を参照してください。

UbuntuをWindows11上で動かす その7: WSLのLinuxカーネルをアップデートする
今回はWSLのLinuxカーネルをアップデートする方法を紹介します。Linux kernelは不具合修正でどんどん更新されていくので、パッチレベルが高いものを使った方が安心です。デフォルトだとWSLのLinuxカーネルは更新されないので、定期的にwslコマンドで手動更新するか、Windows Updateの設定を変えて自動配信されるようにしておいたほうが良さそうです。

WSLgプレビューの確認

WSLgのプレビュー機能が有効になっているか確認しましょう。

Windowsの設定で「アプリ」を選択し、「wsl」で検索して見ましょう。

WSLgプレビューが有効な状態

「Windows Subsystem for Linux WSLg Preview」が見つかればOKです。

こちらもWindows11でWindows Updateを適用していれば自動的に導入されるようです。

GPUドライバの更新

WSLgを使うためにはGUIのドライバがある程度新しい必要があります。

Intel製のGPUの場合

今回試しているPCはMicrosoftのSurface 7 ProでGPUはIntel製になります。IntelのGPUの場合は下記のサイトから最新版をインストールしておきます。

Intel® Graphics – Windows* DCH Drivers
This download installs Intel® Graphics Driver 30.0.101.1340 for Xe Dedicated, 6th-12th Gen Intel® Core™ Processor Graphics, and related Intel Atom®, Pentium®, a...

ちなみに、私が試した場合は最新バージョンは「30.0.101.1340」で、私のWindows11に導入されていたのは「27.20.100.9621」でかなり差がありました。

実は「27.20.100.9621」でもWSLgが使えるのですが、念のためアップデートしておきました。

ただし、Intelのサイトからダウンロードしたexeファイルを実行しただけではドライバは更新されず、手動でドライバを選択する必要がありました。

Intel GPUドライバの更新

AMD製のGPUの場合

AMD製の場合は下記のサイトからドライバを入手しましょう。

Radeon™ Software Adrenalin 2020 Edition for Microsoft® DirectX on Windows Subsystem for Linux Release Notes
Radeon™ Software Adrenalin 2020 Edition for Microsoft® DirectX on Windows Subsystem for Linux                                                                   ...

「The Radeon Software Adrenalin 2020 Edition installation package can be downloaded from the following links:」のところのリンクからダウンロードできます。

この記事の作成時点では「DX12-WSL-Radeon-Software-Adrenalin-20.45.01.31-Dec15.exe」というドライバがダウンロードできました。

このドライバはファイル名からすると、AMDのドライバ配布サイト(下記)で配布するものと違うのかもしれません。

AMD Radeon™ Software
Create and capture high-quality videos, screenshots and enable VR experiences with AMD's advanced Radeon™ software and technologies. Check out details on Radeon...

AMD製のGPUを使っている方で、WSLgがうまく機能しない場合は、WSL用のRadeon Softwareを入手しインストールしてみる価値があるかもしれません。

nvida製のGPUの場合

GPUがnvidia製の場合は下記のサイトからドライバを入手するようにMicrosoftでは指定しています。

GPU in Windows Subsystem for Linux (WSL)
CUDA on Windows Subsystem for Linux (WSL) WSL2 is available on Windows 11 outside of Windows Insider Preview. Please read the CUDA on WSL user guide for details...

しかしこのページを見てみると、nvidiaのドライバ配布サイトからダウンロードするように記載されています。

Download the latest official NVIDIA drivers
Download the latest official NVIDIA drivers

どうも新しめのnvidaドライバ(GEFORCEドライバ)を入れておけば、WSLgに対応しているようです。

DISPLAY環境変数の確認

DISPLAY変数をカスタマイズするとWSLgを邪魔してしまうことがあります。

特に下記の記事のようにWindowsにXサーバを導入してWSLのGUIを表示したことがある場合は注意が必要です。

UbuntuをWindows11上で動かす その8: GUIを使う(VcXsrv編)
今回はWindows Subsystem for Linux (WSL2)を使って導入したUbuntuでGUIを使えるようにしてみます。WindowsにフリーのXサーバであるVcXsrvを導入することで、GUIアプリも簡単に使うことができます。GUIアプリが必要な方は試してみてください。

DISPLAY変数の値は下記のコマンドで確認できます。

$ echo $DISPLAY
:0

この結果のように「:0」と表示されない場合はどこかでDISPLAY変数を設定してしまっているので、.bashrc・.profile・.bash_profile等のファイルを確認してみてください。

Linuxのパッケージの更新

念のためインストールされているパッケージを更新しておきましょう。

$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get clean

GUIアプリの実行

ここまでの準備ができたらLinuxのGUIアプリを実行してみましょう。

コマンドラインでの実行

ここでは簡単なアプリが入っているx11-appsパッケージを試してみましょう。

$ sudo apt-get install x11-apps

このパッケージには小さなアプリがいろいろ入っているのですが、お試しとして「xeyes」というアプリを起動してみます。

$ xeyes &

WSL2を起動して初めてGUIアプリを起動する場合は、アプリが起動するまで10秒程度待つ場合があります。

これでWindowsに下のようなウィンドウが表示されれば成功です。

Windowsに表示させたxeyes

ちなみにタスクバーにはLinuxのペンギンアイコンが追加されます。

もちろんAlt + Tabを使用して Linux アプリと Windows アプリを切り替えることもできます。

もう少し実用的なアプリとしてgeditを試してみます。

$ sudo apt-get install gedit
$ gedit &

これでエディタ画面が立ち上がります。

Windowsに表示させたgedit

デフォルトの状態では日本語を入力することはできませんが、Windowsのアプリからコピー&ペーストすることはできます。

Windowsからのコピペ

WSL2側に日本語入力システムを導入すれば日本語の入力もできるっぽいですが、試していません。

Windowsのスタートメニューからの起動

なんとWSL2(Ubuntu)にインストールしたGUIアプリはWindowsのスタートメニューの「Ubuntuフォルダ」以下に追加されます。

Windowsのスタートメニューに追加されたLinuxアプリ

ただUbuntuにインストールした全てのアプリが表示されるわけではにないようです。

Windowsのスタートメニューに追加される場合と追加されない場合の違いはよくわかりませんでした。

このメニューを選択することでもLinuxのGUIアプリを起動することができます。

WSLgの課題

あまり使い込んだわけではありませんが、試してみて気づいたのは、WSLgできるのはLinuxの単独のGUIアプリをWindowsに表示させることでだけだということです。

つまりLXDE等のデスクトップ環境をWindows側に表示させることはできません。

メインはコマンドラインで使いつつ、ときどきGUIを使いたいというと気にはWSLgが適していますが、マウス主体でLinuxを操作したいという方にはWSLgはちょっと向かないかもしれません。

そのような場合はリモートデスクトップでWSL2に接続することをオススメします。

UbuntuをWindows11上で動かす その9: GUIを使う(リモートデスクトップ編)
今回はWindows Subsystem for Linux(WSL2)を使って導入したUbuntuにリモートデスクトップで接続できるようにしてみます。モートデスクトップを使うとWindows側に特別なソフトを入れる必要がありません。WSL2でデスクトップ画面を使いたい方は、Xサーバー(VnXsrv)を使うよりリモートデスクトップの方がお手軽だと思います。

まとめ

今回はWindows Subsystem for Linux(WSL2)に導入される予定のWSLgを使ってLinuxのGUIアプリを使用してみました。

Windows11では既にWSLgを利用することができ、ほとんど設定不要でLinuxのGUIアプリを起動することができます。VcXsrvなどのXサーバアプリの設定が面倒な方にはうれしいのではないかと思います。

次回はwsl.confファイルを使ってWSL2の設定を行います。

コメント