1. 「SORACOM Onyx LTE USB ドングル SC-QGLC4-C1」をWSLへ接続

BLEデータの受信・送信用アプリ開発に使います。

1-1. LTE USB ドングル

SORACOM Onyx LTE USBドングルは、LTE Cat.4 / 3G / GSM に対応したUSB型データ通信端末です。対応する Windows / Linux HOSTデバイスのUSBソケットに挿すことで、HOSTデバイスにネットワーク接続を提供します。

USBから給電され、モデムとアンテナが一体になったUSB型データ通信端末は、その他電源やアンテナ接続を必要とせず、それだけで完結したネットワーク接続手段となります。

1-2. WSLとWindows

  • Windows11
  • WSL 2ディストリビューション:5.10.102.1
    uname -a
    
    Linux RYZEN-PC 5.10.102.1-microsoft-standard-WSL2 #1 SMP Wed Mar 2 00:30:59 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
    
    • WSL-Linux: Ubuntu 22.04.1 LTS
    cat /etc/os-release
    
    PRETTY_NAME="Ubuntu 22.04.1 LTS"
    

1-3. usbipd-win の最新リリースをWindowsにインストール

1-4. Ubuntu22.04にインストール

  • ディストリブーションによってバージョンが変わりますので注意してください。
    sudo apt install linux-tools-5.4.0-77-generic hwdata
    sudo update-alternatives --install /usr/local/bin/usbip usbip /usr/lib/linux-tools/5.15.0-47-generic/usbip 20
    
  • この時点で、USB デバイスを共有するサービスが Windows 上で実行され、共有デバイスに接続するために必要なツールが WSL にインストールされています。

1-5. WSL コマンド プロンプトが開いていることを確認します。

  • まず、WSL コマンド プロンプトが開いていることを確認します。これにより、WSL2VMがアクティブに保たれます。

  • Windowsのコマンドプロンプト

    usbipd wsl list
    
    BUSID  VID:PID    DEVICE  STATE
    ...
    3-3    2c7c:0125  EG25-G  Not attached
    ...
    
  • WSL に接続するデバイスのバス ID を選択し、このコマンドを実行します。

  • パスワードを求められたら入力します。

    usbipd wsl attach --busid <busid> #今回は「3-3」
    
  • デバイスの使用が完了したら、デバイスを物理的に切断するか、Windows の管理者コマンド プロンプトからこのコマンドを実行できます。

    usbipd wsl detach --busid <busid> #今回は「3-3」
    
  • Ubuntuで確認します。

  • 接続前

    lsusb
    
    Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
    Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
    
  • 接続後

    lsusb
    
    Bus 001 Device 002: ID 2c7c:0125 Quectel Wireless Solutions Co., Ltd. EC25 LTE modem
    

2. Debianにインストール

LTE通信のためのUSBドングルをセットしてSORACOM Airをセットアップする際、Raspberry PiなどでUSBドングル+SORACOM Airを利用するためのスクリプト setup_air.sh があるので、Raspberry PiのOSであるDebianをWSLにインストールしてみました。

2-1. WSLディストリビューション

  • WSLディストリビューションをDebianへ変更
wsl -l
Debian
Ubuntu-20.04 (既定)
Ubuntu22.04-v1

wsl --set-default Debian

 wsl -l
Linux 用 Windows サブシステム ディストリビューション:
Debian (既定)

2-2. Debian

  • Debianは、簡単にインストールされ認識されました。
sudo apt install usbip hwdata usbutils
  • 確認:Dongleを挿していたので認識していました。
(base) PS C:\Users\RYZEN> usbipd list
Connected:
BUSID  VID:PID    DEVICE                                                        STATE
...
2-3    0d8c:013c  USB PnP Sound Device, USB 入力デバイス                        Not shared
3-3    2c7c:0125  EG25-G                                                        Shared
...

Persisted:
GUID                                  DEVICE

(base) PS C:\Users\RYZEN> usbipd bind --busid 3-3
usbipd: info: Device with busid '3-3' was already shared.
  • WSLで確認
lsusb

Bus 001 Device 002: ID 2c7c:0125 Quectel Wireless Solutions Co., Ltd. EC25 LTE modem
  • Debianは、軽くサクサク動きますね~。

以上