このページの本文へ

前へ 1 2 次へ

Windows Info 第303回

増えたWindows Subsystem for Linuxのバージョン、またUSBデバイスの接続が可能に

2021年11月28日 10時00分更新

文● 塩田紳二 編集● ASCII

  • この記事をはてなブックマークに追加
  • 本文印刷

Windows 11ではWSL2にUSBデバイスを接続可能になった

 Linuxではネットワークを介してUSBデバイスを接続する「USB/IP」があるが、これを使ってWin32側のUSBデバイスをWSL2ディストリビューションに接続する。Windows 11以降のWSLなら対応可能で、WSLのプレビュー版は必要ない。

 このために作られたusbipd-winは、USB/IPのサーバー側をWindows用にしたもので、これにWSL用の改良が加えられている。プロジェクトは、以下のページにある。

●dorssel/usbipd-win: Windows software for sharing locally connected USB devices to other machines, including Hyper-V guests and WSL 2
 https://github.com/dorssel/usbipd-win

 USB/IPでは、サーバーとなるusbipd側で指定したUSBデバイスをシステム側から切り離し、ネットワークを介して、他のマシンで実行されているクライアントプログラムのusbipに接続する。usbipは他のマシンでそのUSBデバイスが接続されたようにエミュレーションする。このため、USBバスを流れるパケットデータなどは、ネットワークを介して転送される。

 WSL2側はUbuntuで試してみる。他のWSLディストリビューションでも原理は同じだが、インストールのためのパッケージ管理コマンドやパッケージ名に違いがあることに注意してほしい。まずは、usbipを含むlinux-tools-genericとhwdataをインストールする。

sudo apt update
sudo apt install linux-tools-5.4.0-77-generic hwdata

 linux-toolsには多数のバージョンがあり、必ずしも上記のバージョンでなくても大丈夫なようだが、次の作業で/etc/sudoersにインストール先パスを登録する必要があり、そのパスにバージョン番号が含まれるため、よくわからない場合はこのバージョンで作業していただきたい。

 次に/etc/sudoersを以下のコマンドで修正する。

sudo visudo

 nanoエディタが起動するので、カーソルキーを使い、「Defaults secure_path="……"」の行を修正して、インストールしたlinux-toolsに含まれているusbipコマンドのインストール先パスを「/usr/lib/linux-tools/5.4.0-77-generic」を追加する。

インストールしたlinux-toolsに入っていたusbipコマンドをsudoを使って管理者権限で実行できるようにするには、コマンドのパスを/etc/sudoersに登録する必要がある。それには、専用のvisudoコマンドを使う。実行すると標準ではnanoエディタが起動する。“security_path=”の次のダブルクオートの中に「/usr/lib/linux-tools/5.4.0-77-generic:」を追加する

 そしてダブルクオートの後ろに、このパスをいれて最後に区切り文字のコロンを付ける。その後「Ctrl+X」でnanoエディタを終了する。これでWSL側の準備は完了である。次の作業で再起動が必要なので、exitでWSLを抜けておく。

 Win32側では、GitHubからusbipd-winをダウンロードしてインストールする。インストールには管理者権限が必要で、かつインストール後には、Windowsを再起動する必要がある。

●GitHub usbipd-win msiダウンロード
 https://github.com/dorssel/usbipd-win/releases/download/v1.2.0/usbipd-win_1.2.0.msi

 再起動したら、管理者権限でコマンドプロンプトやWindows Terminalを開く。作業はcmd.exeを使ったほうが面倒が少ない。また、接続するUSBデバイスを用意する。すでにWindowsで利用しているものでもかまわないが、WSL側に接続するとWindows側では接続が切れてしまう。

 なおUSB/IPではどのようなUSBデバイスも接続が可能だが、WSL側のLinuxが接続されたデバイスを利用できるようになっている必要がある。そのためには、デバイス制御のソフトウェアなどが必要になることがある。このとき、デーモンを起動して待ち受けするようなソフトウェアは、WSL側で使うのは困難であることに注意したい。

 というのも、WSLでは起動時にデーモンプログラムを起動するsystemdが利用できないからである。たとえば、無線LANやBluetoothの制御ソフトウェアは、Linuxの起動時にデーモンを起動し、これらが接続などの処理をする。しかし、WSLは起動を高速化するため、起動時に登録されたデーモンを起動する仕組みがなく、また、initを他のプログラムに置き換えることが不可能であるため、デーモンなどの登録自体が失敗し、パッケージのインストールが失敗する。

 また、ファイルシステムとして利用するUSBメモリや外付けHDD、カードリーダーのようなデバイスは、usbipを使わずともWSLが標準で持つmount機能(wsl --mount)やdrvfsの機能を使ってWSLに接続可能であり、処理も高速になる。そう考えると、usbipを使って接続するUSBデバイスの種類は限られる。たとえば、USBシリアル接続が必要になるIoT系の開発ボードなどが考えられる。

 今回の評価ではUSBキーボードを使った。ただし、USBデバイスとしての接続は確認できたが、キー入力はできなかった。まずは、デバイスを接続するまえに管理者権限でコンソールやWindows Terminalを開く。PowerShellまたはcmd.exeから、以下のコマンドを実行する。

usbipd wsl list

 これで、接続が可能なUSBデバイスのリストが表示される。次にデバイスを接続して再度同じコマンドを実行し、追加されたものが、接続したデバイスである。そのデバイスを示す行の先頭にあるハイフンでつながれた数字を覚える。これがデバイスの「busid」となる。筆者の環境では6-2が接続したUSBキーボードのbusidだった。

 次にデバイスをWSLディストリビューションに接続する。先にWSLディストリビューションを起動しておき、以下のコマンドを実行する。

lsusb

これで現在接続しているUSBデバイスの一覧が表示される。おそらく2つのデバイス(root hub)が見えているはずだ。

 次に管理者権限で開いたWin32側のウィンドウで、以下のコマンドを実行する。

usbipd wsl attach --busid 6-2 -d Ubuntu

 再度WSL側のウィンドウに戻り、もう一度lsusbを実行すると、デバイスが接続されているのがわかる。

Win32側(左のウィンドウ)でusbipd wsl listコマンドを使ってUSBデバイスの一覧を表示させる。テスト用のUSBキーボードのbusidは6-2である。これを使って「usbipd wsl attach --busid 6-2」を実行すると、デフォルトのWSLディストリビューションであるUbuntuでusbipコマンドが起動され、USBデバイスの接続が行われる。lsusbコマンドで接続中のUSBデバイスの一覧を表示できる

 USBデバイスを取り外すには、Win32側のウィンドウで

usbipd wsl detach --busid 6-2

とする。

 MicrosoftストアにWSLのプレビュー版が入ったことで、WSLには、大きく4つのバージョンができてしまった。特にWindows 11では、プレビュー版の有り無しで挙動が変わる。安定して利用したいならプレビュー版を入れないほうがいいかもしれない。なお「設定」→「アプリ」でWSLのプレビュー版をアンインストールすれば、少なくとも元のWindows 11に復帰することもできるようだ。

 ただし、プレビュー版では、アップデート方法が異なるため、アンインストールしたあと、「wsl.exe --update」を使って、更新をチェックしたほうがいいだろう。

前へ 1 2 次へ

カテゴリートップへ

この連載の記事

ASCII倶楽部

注目ニュース

  • 角川アスキー総合研究所

プレミアム実機レビュー

ピックアップ
1
KIOXIA(キオクシア) 旧東芝メモリ microSD 128GB UHS-I Class10 (最大読出速度100MB/s) Nintendo Switch動作確認済 国内サポート正規品 メーカー保証5年 KLMEA128G
KIOXIA(キオクシア) 旧東芝メモリ microSD 128GB UHS-I Class10 (最大読出速度100MB/s) Nintendo Switch動作確認済 国内サポート正規品 メーカー保証5年 KLMEA128G
¥2,480
2
Anker PowerLine III Flow USB-C & USB-C ケーブル Anker絡まないケーブル 240W 結束バンド付き USB PD対応 シリコン素材採用 iPhone 17 / 16 / 15 / Galaxy iPad Pro MacBook Pro/Air 各種対応 (1.8m ミッドナイトブラック)
Anker PowerLine III Flow USB-C & USB-C ケーブル Anker絡まないケーブル 240W 結束バンド付き USB PD対応 シリコン素材採用 iPhone 17 / 16 / 15 / Galaxy iPad Pro MacBook Pro/Air 各種対応 (1.8m ミッドナイトブラック)
¥1,390
3
Anker USB Type C ケーブル PowerLine USB-C & USB-A 3.0 ケーブル iPhone 17 / 16 / 15 /Xperia/Galaxy/LG/iPad Pro/MacBook その他 Android 等 USB-C機器対応 テレワーク リモート 在宅勤務 0.9m ホワイト
Anker USB Type C ケーブル PowerLine USB-C & USB-A 3.0 ケーブル iPhone 17 / 16 / 15 /Xperia/Galaxy/LG/iPad Pro/MacBook その他 Android 等 USB-C機器対応 テレワーク リモート 在宅勤務 0.9m ホワイト
¥660
4
Amazon Kindle Paperwhite (16GB) 7インチディスプレイ、色調調節ライト、12週間持続バッテリー、広告なし、ブラック
Amazon Kindle Paperwhite (16GB) 7インチディスプレイ、色調調節ライト、12週間持続バッテリー、広告なし、ブラック
¥18,980
5
KIOXIA(キオクシア)【日本製】USBフラッシュメモリ 32GB USB2.0 国内サポート正規品 KLU202A032GL
KIOXIA(キオクシア)【日本製】USBフラッシュメモリ 32GB USB2.0 国内サポート正規品 KLU202A032GL
¥980
6
【Amazon.co.jp限定】 ロジクール 静音 ワイヤレス トラックボール マウス M575SPd Bluetooth Logibolt 無線 windows mac iPad OS Chrome トラックボールマウス ブラック M575 M575SP 国内正規品 ※Amazon.co.jp限定 壁紙ダウンロード付き
【Amazon.co.jp限定】 ロジクール 静音 ワイヤレス トラックボール マウス M575SPd Bluetooth Logibolt 無線 windows mac iPad OS Chrome トラックボールマウス ブラック M575 M575SP 国内正規品 ※Amazon.co.jp限定 壁紙ダウンロード付き
¥5,280
7
CIO フラットスパイラルケーブル CtoC 1m (Type-C/USB-C) PD 急速充電 平型 磁石 マグネット吸着 まとまる 充電ケーブル PD 240W データ転送 480Mbps (ライトブラック, 1m)
CIO フラットスパイラルケーブル CtoC 1m (Type-C/USB-C) PD 急速充電 平型 磁石 マグネット吸着 まとまる 充電ケーブル PD 240W データ転送 480Mbps (ライトブラック, 1m)
¥1,780
8
Anker iPhone充電ケーブル PowerLine II ライトニングケーブル MFi認証 超高耐久 iPhone 14 / 14 Pro Max / 14 Plus / 13 / 13 Pro / 12 / 11 / X/XS/XR / 8 Plus 各種対応 (0.9m ホワイト)
Anker iPhone充電ケーブル PowerLine II ライトニングケーブル MFi認証 超高耐久 iPhone 14 / 14 Pro Max / 14 Plus / 13 / 13 Pro / 12 / 11 / X/XS/XR / 8 Plus 各種対応 (0.9m ホワイト)
¥990
9
【Amazon.co.jp限定】バッファロー microSD 32GB 100MB/s UHS-1 U1 microSDHC【 Nintendo Switch 対応 】V10 A1 IPX7 Full HD RMSD-032U11HA/N
【Amazon.co.jp限定】バッファロー microSD 32GB 100MB/s UHS-1 U1 microSDHC【 Nintendo Switch 対応 】V10 A1 IPX7 Full HD RMSD-032U11HA/N
¥1,880
10
エレコム 電源タップ 6個口 3m 雷ガード 個別スイッチ ほこりシャッター付 耐熱 PSE技術基準適合 ブラック T-K6A-2630BK
エレコム 電源タップ 6個口 3m 雷ガード 個別スイッチ ほこりシャッター付 耐熱 PSE技術基準適合 ブラック T-K6A-2630BK
¥1,590

Amazonのアソシエイトとして、ASCII.jpは適格販売により収入を得ています。

デジタル用語辞典

ASCII.jpメール デジタルMac/iPodマガジン