WSL2(Linux 用 Windows サブシステム)で Linux GUI アプリを実行する

WSL

概要

最初に行ったこと

現在の環境は Windows 10 Pro/バージョン 21H2/ビルド 19044.2364 なので前提条件は満たしています。

WSLをバージョンアップします。

wsl --update
wsl --shutdown

まずは xclock を実行してみます。

sudo apt install x11-apps -y

動作しませんでした。

~$ xclock
Error: Can't open display:

調査

WSLがバージョンアップできていないようです。

バージョンアップされているかを確認する方法としては、wsl –version を実行してバージョン表示されるかどうかがわかりやすいようです。

PS C:\Windows\system32> wsl --version
コマンド ライン オプションが無効です: --version

下記を参考に Microsoft Update カタログ の KB5020030 のパッチを適用しました。

Windows バージョン 10.0.19045.2251 は、パッケージ化されたバージョンのLinux 用 Windows サブシステムをサポートしていません。
Windows 10 22H2 でストア版のWSLをインストールするとエラーが発生することがあります。と、いうかほぼ起きるようです。 これはパッチを充てる必要があるようです。 インストール方法は下記で

wsl –version を実行してバージョン表示されるようになりました。

PS C:\Windows\system32> wsl --version
WSL バージョン: 1.0.3.0
カーネル バージョン: 5.15.79.1
WSLg バージョン: 1.0.47
MSRDC バージョン: 1.2.3575
Direct3D バージョン: 1.606.4
DXCore バージョン: 10.0.25131.1002-220531-1700.rs-onecore-base2-hyp
Windowsバージョン: 10.0.19044.2364
PS C:\Windows\system32>

ストア版WSLのインストール

ストア版のWSLをインストールします。

Microsoft Store を起動し、”wsl” を検索してインストールしました。微妙なデザインのペンギンが目印です(笑)。

wsl_store_edition_install.jpg

ストア版WSLのインストール(Microsoft Store が実行できない環境)の場合

なお、Microsoft Store が実行できない環境では、KB5020030 を適用後、一般ユーザ権限で起動した Windows PowerShell で “wsl –update” を実行することでインストールできました。 インストールの最後の方で管理者権限を使用する情報入力が必要になります。 私の環境では、管理者権限で起動した Windows PowerShell で実行した場合、「致命的なエラーです。」と表示され、インストールできませんでした。

確認

xclockが立ち上がるようになりました。

xclock_on_win.jpg

また、Emacs が立ち上がることが確認できました!

emacs_on_win.jpg

GPU関連

前述の Microsoft Learn の記事では、WSL用 GPU ドライバーの導入が必要とのことで、私が使用している NVIDIA 向けのドライバーの最新を導入し、WSLで動作しているUbuntuのCUDAのドライバも更新しました。

GPU in Windows Subsystem for Linux (WSL)
Delivers machine learning capabilities across industry segments.
CUDA on WSL User Guide — CUDA on WSL 13.1 documentation
The guide for using NVIDIA CUDA on Windows Subsystem for Linux.
403 Forbidden

527.56-desktop-win10-win11-64bit-international-dch-whql.exe をインストール

wget https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86_64/cuda-wsl-ubuntu.pin
sudo mv cuda-wsl-ubuntu.pin /etc/apt/preferences.d/cuda-repository-pin-600
wget https://developer.download.nvidia.com/compute/cuda/12.0.0/local_installers/cuda-repo-wsl-ubuntu-12-0-local_12.0.0-1_amd64.deb
sudo dpkg -i cuda-repo-wsl-ubuntu-12-0-local_12.0.0-1_amd64.deb
sudo cp /var/cuda-repo-wsl-ubuntu-12-0-local/cuda-*-keyring.gpg /usr/share/keyrings/
sudo apt-get update
sudo apt-get -y install cuda
Copied title and URL