Windows10のWSL2上のUbuntu20.04でCH340 USBシリアルモジュールを操作する
Windows10のWSL2上のUbuntu20.04で、USBシリアルモジュールを操作しようとした際に、少し手間取ったので備忘録として残しておく。
CH340とは
CH340は中国の南京沁恒微电子股份有限公司(WCH)で開発された、USBシリアル変換チップである。 低価格であるが、通信性能が良いらしい。
ドライバーはWindows10では認識して、自動的にドライバーを入れてくれるのでドライバーのインストールは不要。もし認識されなかった場合は、以下からダウンロード可能である。
WSL2 + Ubuntu-20.04インストール
usbipd-win インストールおよび設定
動作試験
- Ubuntu-20.04を起動する
【管理者Windows PowerShell】起動確認
PS C:\Windows\system32> wsl -l -v NAME STATE VERSION * Ubuntu-20.04 Running 2 Ubuntu Stopped 2
Ubuntu-20.04の起動を確認できた
【管理者Windows PowerShell】USB(CH340)モジュールをPCに接続し、認識されているUSBを確認し、USB(CH340)モジュールをWSLにアタッチする
PS C:\Windows\system32> usbipd list Connected: BUSID DEVICE STATE 2-1 Realtek USB 2.0 Card Reader Not shared 2-4 HD Webcam Not shared 3-4 インテル(R) ワイヤレス Bluetooth(R) Not shared 5-2 USB-SERIAL CH340 (COM7) Shared Persisted: GUID DEVICE PS C:\Windows\system32> usbipd wsl attach --busid 5-2 usbipd: info: Using default distribution 'Ubuntu-20.04'.
【Ubuntu】UbuntuでUSBが認識できているか確認する
serip39@DESKTOP-P8SJAGB:~$ lsusb Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub Bus 001 Device 003: ID 1a86:7523 QinHeng Electronics HL-340 USB-Serial adapter Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
QinHeng Electronics HL-340 USB-Serial adapter
が認識されていることを確認できた【Ubuntu】/dev/ttyUSB0にアクセスする際に、(アクセス権限の設定が必要だったため)今回はroot権限で実行する
serip39@DESKTOP-P8SJAGB:~$ sudo su root@DESKTOP-P8SJAGB:/home/serip39# stty -F /dev/ttyUSB0 115200 | cat /dev/ttyUSB0 & [1] 4813 root@DESKTOP-P8SJAGB:/home/serip39# echo "0x5a\0x00\0xff\0xfe\0xa0\0x05" | xxd -r > /dev/ttyUSB0 root@DESKTOP-P8SJAGB:/home/serip39# echo "0x5a\0x00\0xff\0xfe\0xa0\0x06" | xxd -r > /dev/ttyUSB0
USB(CH340)モジュールに対して信号を送り、モジュールが信号通りに動作することを確認できた。
【管理者Windows PowerShell】WSLからデタッチする
PS C:\Windows\system32> usbipd wsl detach --busid 5-2 PS C:\Windows\system32> usbipd list Connected: BUSID DEVICE STATE 2-1 Realtek USB 2.0 Card Reader Not shared 2-4 HD Webcam Not shared 3-4 インテル(R) ワイヤレス Bluetooth(R) Not shared 5-2 USB-SERIAL CH340 (COM7) Shared Persisted: GUID DEVICE
まとめ
Windows10のWSL2上のUbuntu20.04から、CH340 USBシリアルモジュールを操作することができた。