0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

WSL2からWindows接続のUSBカメラを認識できるようにし、疎通確認する手順(usbipd + OpenCV動作確認)

0
Posted at

この記事は何?

WSL2からUSBカメラを認識できるようにして、疎通試験として、OpenCV(Python)でカメラ映像を取得するまでの手順メモです。

WSL2はデフォルトではUSBデバイスにアクセスできません。usbipd-win というプログラムを使って、Windows側からWSL2側へデバイスをアタッチする必要があります。

環境

  • Windows 11 + WSL2(Ubuntu)
  • Python 3.12
  • OpenCV(opencv-python
  • usbipd-win

手順

1. usbipd-win のインストール(Windows側)

未インストールの場合、PowerShellで以下を実行します。

winget install usbipd

2. USBカメラのBUSIDを確認(Windows側)

PowerShell(管理者)で実行します。

usbipd list

出力例:

Connected:
BUSID  VID:PID    DEVICE                                                        STATE
1-5    04bb:0556  XX-XXXXXX                                                     Not shared

カメラのBUSIDをメモします(この例では 1-5)。

3. WSL2へアタッチ(Windows側)

# 初回のみ必要(一度 bind したデバイスは次回以降スキップ可)
usbipd bind --busid 1-5
usbipd attach --wsl --busid 1-5

成功すると以下のようなメッセージが表示されます。

usbipd: info: Using WSL distribution 'Ubuntu' to attach; the device will be available in all WSL 2 distributions.

4. WSL2側でデバイス確認(WSL2側)

ls /dev/video*

/dev/video0 などが表示されれば認識成功です。

5. OpenCVのインストール(WSL2側)

pip install opencv-python

6. OpenCVで動作確認(WSL2側)

import cv2

cap = cv2.VideoCapture(0)
ret, frame = cap.read()
print(f"取得成功: {ret}, 解像度: {frame.shape}" if ret else "取得失敗")
cap.release()
取得成功: True, 解像度: (576, 1024, 3)

映像フレームが取得できれば、カメラは正常に動作しています。

デタッチ・再アタッチ

カメラを切断したい場合や、接続が切れた場合は以下を実行します。

# デタッチ
usbipd detach --busid 1-5

# 再アタッチ
usbipd attach --wsl --busid 1-5

ハマりポイント

デバイスは見えるのにOpenCVで開けない

/dev/video* が見えているのに cv2.VideoCapture(0) が失敗する場合、パーミッションを確認してください。

ls -la /dev/video*
groups

video グループに所属していなければ追加します。

sudo usermod -aG video $USER

変更後、WSLを完全に終了してから再起動してください。

# Windows側PowerShellで実行
wsl --shutdown

その後、WSLを再度起動すると変更が反映されます。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?