WSL2にUSBデバイスを接続する
Windows11ではカーネルがLinux カーネル 5.10.60.1 以降ならOK
Wndows10ではUSBIP が有効になっている WSL 2 カーネルをビルドする必要がある
code:console
saito@saito-thinkpad:~$ uname -a
Linux saito-thinkpad 5.15.90.1-microsoft-standard-WSL2+ #3 SMP Fri Jul 7 03:33:28 JST 2023 x86_64 x86_64 x86_64 GNU/Linux s
USBIPD-WIN プロジェクトをインストールする
code:console
winget install --interactive --exact dorssel.usbipd-win
Linux に USBIP ツールとハードウェア データベースをインストールする
code:console
sudo apt updata
sudo apt upgrade
sudo apt install linux-tools-generic hwdata
sudo update-alternatives --install /usr/local/bin/usbip usbip /usr/lib/linux-tools/*-generic/usbip 20
apt upgradeするたびに上のsudo update-alternativesを実行する必要がある。以下のエラーが出たら実行する。
code:console
C:\Users\saito>usbipd wsl attach --busid 1-1
コマンドプロンプトを管理者権限で立ち上げて以下を実行
code:console
C:\WINDOWS\system32>usbipd wsl list
BUSID DEVICE STATE
1-5 Integrated IR Camera Not attached
1-7 インテル(R) ワイヤレス Bluetooth(R) Not attached
1-8 Integrated Camera Not attached
1-9 Synaptics WBDI - SGX Not attached
1-15 Realtek USB 3.0 Card Reader Not attached
3-1 Fibocom GNSS Sensor Not attached
3-2 USB シリアル デバイス (COM3), USB シリアル デバイス (COM4), ModemControl ... Not attached
3-3 Fibocom L850-GL Not attached
code:console
C:\WINDOWS\system32>usbipd wsl attach --busid 5-3
sudo password for tetsuya: C:\WINDOWS\system32>usbipd wsl list
BUSID DEVICE STATE
1-5 Integrated IR Camera Not attached
1-7 インテル(R) ワイヤレス Bluetooth(R) Not attached
1-8 Integrated Camera Not attached
1-9 Synaptics WBDI - SGX Not attached
1-15 Realtek USB 3.0 Card Reader Not attached
3-1 Fibocom GNSS Sensor Not attached
3-2 USB シリアル デバイス (COM3), USB シリアル デバイス (COM4), ModemControl ... Not attached
3-3 Fibocom L850-GL Not attached
5-3 USB Serial Converter Attached - Ubuntu-20.04
C:\WINDOWS\system32>
ESP32S3のように,ダウンロードモードになるものはattachする前に以下が必要
code:console
C:\WINDOWS\system32> usbipd bind --force --busid=5-2
WSL2側
code:console
tetsuya@saito-thinkpad:/mnt/c/Users/saito$ lsusb
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 002: ID 0403:6001 Future Technology Devices International, Ltd FT232 Serial (UART) IC
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
code:console
WSL USB Manager
usbip server for Windows
code:console
winget install --interactive --exact dorssel.usbipd-win
USBマスストレージを接続する
井田さんに教えていただいた
現在入っているカーネルバージョンの確認
code:console
saito@saito-thinkpad:~$ uname -r
5.15.90.1-microsoft-standard-WSL2+
2024/05/11時点での最新のタグはlinux-msft-wsl-5.15.153.1
WSL2のコンソールで実行
必要なライブラリのインストール
code:console
sudo apt update
sudo apt upgrade -y
sudo apt install -y build-essential flex bison libssl-dev libelf-dev libncurses-dev autoconf libudev-dev libtool bc dwarves fdisk
カーネルのコードをcloneして設定
code:console
cd WSL2-Linux-Kernel
zcat /proc/config.gz > .config
make menuconfig
Device Drivers -> USB Support まで辿って以下をビルドイン(*)にしていく
USB Mass Storage support(基本この設定が必要?)
Realtek Card Reader support(ANKERのUSB 3.0 Card Reader用)
USB announce new devices(既にオンになってた)
USB/IP support(既にオンになってた)
VHCI hcd(既にオンになってた)
Debug messages for USB/IP
USB Serial Converter Support
USB CP210x family of UART Bridge Controllers(M5Stack用でオンにしてた)
USB Winchiphead CH341 Single Port Serial Driver(M5Stack用でオンにしてた)
USB FTDI Single Port Serial Driver(M5Stack用でオンにしてた)
https://gyazo.com/e9a567ca6f8a2fe2a39e4e3e5cbb3dbc
https://gyazo.com/457b74b8b1a3b41e1aec14b9bc3a30fb
ビルド
code:console
export N_CPU_UNITS=getconf _NPROCESSORS_ONLN
sudo make -j $N_CPU_UNITS && sudo make modules_install -j $N_CPU_UNITS && sudo make install -j $N_CPU_UNITS
カーネルを置く場所を決めて$USRPROFIE/.wslconfigで指定し,カーネルイメージを指定した場所にコピーする
ここではWindows側の$USERPROFILE/wsl2/vmlinuxに置くとする
Windows側での設定
code:$USERPROFILE/.wslconfig
kernel=C:\\Users\\saito\\wsl2\\vmlinux
WSL2側での設定
code:console
export USERPROFILE=/mnt/c/Users/saito # saitoはWindowsのログインユーザー名
code:consone
cp arch/x86/boot/bzImage $USERPROFILE/wsl2/vmlinux
リブート