web-dev-qa-db-ja.com

この問題を修正する方法、/ dev / video0が他のアプリが読めない結果として/ dev / video1になることがあります

私は1台のカメラUSBを接続して/ dev/video0として配置し、現在/ dev/video0の読み取りが正常に機能している間に他のアプリケーションを使用し、数時間後にしばらくすると自動的に/ dev/video0が消えてしまいます/ dev/video1。その結果、/ dev/video0がなくなったため、同じアプリケーションはキャプチャするために動作しなくなります。

BASHループを適用して、/ dev/video0と/ dev/video1のクローンを常に保持する方法はありますか。 video0は失われたがvideo1は存在する場合、スクリプトは互いに正確にクローンを作成します。

どのようなアイデア、それを修正して、常に/ dev/video0と/ dev/video1の相互クローンを作成するのですか?

フォローアップ:

よく答えました

1
YumYumYum

これはかなり一般的なことですが、基本的には/ devの下にあるものを台無しにしないでください。これは、再生される特殊なファイルシステムであり、話しているだけの問題を引き起こします。代わりに、udevルールを設定して、デバイスが常に同じ名前になるようにする必要があります。

この情報を使用 コメント5から、ルールファイルをセットアップします。

このサイトで正しくフェーズすることは少し複雑ですが、基本的には:

  1. 各デバイスのudevinfo -a -p $(udevinfo -q path -n /dev/video0)でデバイス情報を取得します。
  2. デバイスについて何か違うことを見つける
  3. /etc/udev/rules.dに移動して、新しいルールファイルを作成します(11のような小さい数字で)
  4. ファイルを変更して新しい属性を使用し、デバイスに新しい/静的な名前を付けます

それは非常に複雑ですが、非常にうまく機能します。

4
coteyr