node-redでUSBカメラを使おうとしたところ、
おそらくUIの方に握られてInjectの時刻毎の実行ができないケースに遭遇しました
一応抜き差しで何とかはなったものの、最終的にはリモートで操作したいので……これを機にコマンドでやる方法を調べる事に
実際のところ
作業環境
- Raspbian GNU/Linux 10 (buster)
- Raspberry Pi 4B+
- Logitech C270
実際の作業
起動時の状態はこんな感じ
今回紹介する方法で抜き差しする場合でもDevice番号は都度加算されるので注意
$ lsusb Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub Bus 001 Device 006: ID 046d:0825 Logitech, Inc. Webcam C270 Bus 001 Device 002: ID 2109:3431 VIA Labs, Inc. Hub Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
”/sys/bus/usb/drivers/usb/unbind”に対象のポートを書き込む事で実施できます
今回のケースではターゲットのC270カメラ以外なにも入ってないので……前面パネル全部である"1-1"を指定する侠気スタイル
$ echo "1-1" | sudo tee /sys/bus/usb/drivers/usb/unbind
改めて接続する際は
$ echo "1-1" | sudo tee /sys/bus/usb/drivers/usb/bind
というわけで、抜き差しはこんなコマンドになります
$ echo "1-1" | sudo tee /sys/bus/usb/drivers/usb/unbind; \ sleep 1; \ echo "1-1" | \ sudo tee /sys/bus/usb/drivers/usb/bind