Windows11 + x86_64 + wsl2 + ubuntu24.04 開発環境構築手順

linux

Windows11のwsl2でubuntu24.04のリモートデスクトップ、GPU、dockerを使えるようにするまでの手順にゅんちゅ。ubuntu24.04についてはMicrosoft StoreからUbuntu 24.04.1 LTSをダウンロードしたにゅんちゅ。

Windowsの機能の有効化または無効化

以下を有効化し再起動

  • Linux用Windowsサブシステム
  • 仮想マシンプラットフォーム

PowerShell

powershell

PS> #wsl2に設定
PS> wsl --set-default-version 2
PS> #ディストリビューションとwslバージョンの確認
PS> wsl -l -v
  NAME            STATE           VERSION
* Ubuntu-24.04    Stopped         2
PS> #ディストリビューションを指定して起動
PS> wsl -d Ubuntu-24.04
PS> #wslの立ち下げ(wslへの設定反映などはディストリビューションの停止のみではなくこれが必要)
PS> wsl --shutdown

.wslconfig

ユーザープロファイルディレクトリ(%UserProfile%)以下(例:C:\Users\hoge)に.wslconfigを配置

powershell: .wslconfig

[wsl2]
guiApplications=false #WSLgを無効化
memory=20GB #デフォルトは1/2

xrdp

bash

$ sudo apt install xrdp
$ sudo systemctl start xrdp

localhost:3389にリモートデスクトップ接続

  • WSLgはWSL側のアプリなどのGUI表示をする機能、Waylandベース
  • Ubuntu24.04はWaylandのGNOMEがデフォルト
    • xrdpはXorgベースのみ利用可(X11はプロトコルでX Window Systemともいう、XorgはX11のサーバーでXサーバーともいう)、このままだとxrdpでのログイン後が黒い画面となり、白いターミナルがGUIとして出る
      ->Xfce4に置き換え

bash

$ sudo apt install xfce4
$ sudo sed -i.bak 's|test -x /etc/X11/Xsession && exec /etc/X11/Xsession|# disabled|' /etc/xrdp/startwm.sh
$ sudo sed -i '$a xfce4-session' /etc/xrdp/startwm.sh
$ sudo systemctl restart xrdp
$ echo xfce4-session > ~/.xsession

bash: ~/.bashrc

echo xfce4-session > ~/.xsession
  • このままだとWSLgがWaylandを探す?ため、ログイン後が青い画面となり、ibus notificationが出てしまう
    ->WSLgを無効化
  • Xfce4のWeb Browserがそのままでは開かず、何かをインストール要だが、firefoxはデフォルトがwayland前提のため、chromiumをインストール

bash

$ sudo systemctl stop snapd #apt installがsnapの更新で停まってしまう
$ sudo systemctl disable snapd
$ sudo apt install chromium-browser

GPU

WindowsのNVIDIAアプリでNVIDIA Studioドライバーをインストール

bash

$ sudo apt install nvidia-cuda-toolkit
$ nvidia-smi
Mon Feb 23 01:20:53 2026
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 565.65                 Driver Version: 566.07         CUDA Version: 12.7     |
|-----------------------------------------+------------------------+----------------------+
| GPU  Name                 Persistence-M | Bus-Id          Disp.A | Volatile Uncorr. ECC |
| Fan  Temp   Perf          Pwr:Usage/Cap |           Memory-Usage | GPU-Util  Compute M. |
|                                         |                        |               MIG M. |
|=========================================+========================+======================|
|   0  NVIDIA GeForce RTX 4060 ...    On  |   00000000:01:00.0 Off |                  N/A |
| N/A   44C    P0             17W /   95W |       0MiB /   8188MiB |      0%      Default |
|                                         |                        |                  N/A |
+-----------------------------------------+------------------------+----------------------+

+-----------------------------------------------------------------------------------------+
| Processes:                                                                              |
|  GPU   GI   CI        PID   Type   Process name                              GPU Memory |
|        ID   ID                                                               Usage      |
|=========================================================================================|
|  No running processes found                                                             |
+-----------------------------------------------------------------------------------------+
$ nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2023 NVIDIA Corporation
Built on Fri_Jan__6_16:45:21_PST_2023
Cuda compilation tools, release 12.0, V12.0.140
Build cuda_12.0.r12.0/compiler.32267302_0

以下はWSL2では検出しない

bash

$ #sudo apt install ubuntu-drivers-common alsa-utils
$ #ubuntu-drivers devices

また、nvidia-driver-xxxは競合するから入れない

docker

(参考:公式マニュアル)

$ sudo apt update
$ sudo apt install ca-certificates curl
$ sudo install -m 0755 -d /etc/apt/keyrings
$ sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
$ sudo chmod a+r /etc/apt/keyrings/docker.asc
$ echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu $ (source /etc/os-release && echo "$VERSION_CODENAME") stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

$ #参考までに中身は以下
$ cat /etc/apt/sources.list.d/docker.list
deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu noble stable

$ sudo apt update
$ sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

$ #sudo無しでdockerコマンドを実行可能にする場合
$ #sudo usermod -aG docker $USER

以上、楽しむにゅんちゅ!