まさかのWSL2ではUSBカメラ使えないので、WSLのカーネルいじるらしい。
B-ingちゃんに聞いたらうまいこといった。
手順だけ書いとくとpower shellをAdminで起動して、USBカメラをアタッチするとWSLから見れるようになったみたい。
PS C:\WINDOWS\system32> usbipd list Connected: BUSID VID:PID DEVICE STATE 1-10 056e:7019 ELECOM 1MP Webcam, Webcam internal mic Shared Persisted: GUID DEVICE PS C:\WINDOWS\system32> usbipd wsl detach --busid 1-10
WSLでDISPLAYにwindowsのipconfigで調べたIPとDISPLAYのポート番号を指定する。
WSLの/dev/video0とか/dev/video1とかにUSBカメラがマウントされるので、そいつのパミッションを変えて、v412-ctlでカメラをWSLが認識してるか調べる。
VcXSRVは起動してるものとする。
$ export DISPLAY=1292.168.1.194:0 $ sudo chmod 777 /dev/video* $ $ sudo v4l2-ctl --list-devices ELECOM 1MP Webcam: ELECOM 1MP W (usb-vhci_hcd.0-1): /dev/video0 /dev/video1 /dev/media0
guvcviewを開くとカメラの映像をWSLから見れる。
$ guvcview
# 追記
WSL2でコンテナでやるとうまく認識しなかったので、これをやった。