ラズパイ + ロジクールC270 はラズパイで安価に写真撮影をするのに最適な組み合わせなのですが、デバイスドライバに問題があるのか、二度目以降の撮影に失敗することがあります。
その場合の対応方法のメモ書き。
以下のようなシェルを ~/bin/fswebcam.shとして作って、fswebcamの代わりにこちらを呼び出して使うようにします。
あちこちにwaitが入っているので、単体のコマンド起動と比較して時間はかかりますが、手元の環境で撮影エラーは起きないようになりました。
動作確認は
* Raspberry Pi 3 MODEL B
* RASPBIAN STRETCH WITH DESKTOP 2017-11-29
* ロジクール HD Webcam C270
の組み合わせで行っています。
#!/bin/bash
# 本来のコマンド読み出し
fswebcam $*
sleep 3
# ダミーでもう一度呼びます。おそらく結果はエラーになるはず
fswebcam /dev/null
rc=1
while [ $rc -eq 1 ]
do
sleep 3
# このコマンドを呼び出すと、いろいろとステータスが変わりつつ正常な状態になってきます
# 異常なときは rc=1
# rc=255になると、正常に写真撮影が可能な状態のようです。
v4l2-ctl --all >/dev/null
rc=$?
done