スリープ復帰時等のチューナー見失い対策~px4_drvを使っている場合~

自宅サーバー

録画サーバを構築して運用していると、ときどきチューナーの見失いで録画が失敗することはないでしょうか?

特に、px-w3u4やpx-q3u4のUSB接続タイプのチューナーを使っている場合、スリープやスタンバイ復帰時にデバイスを見失いやすいです。

私も、以前はこの事象に何度か遭遇していまして、そこである対策を行いました。

ある対策を行ってからは一切チューナーを見失うことは無くなり、録画に失敗することが無くなりました。

本記事では、そんなデバイスを見失う事象を回避する方法について紹介します。

参考ということで。

チューナーの見失い?

録画サーバを構築して運用していると、チューナーを見失い録画に失敗することがあります。

特に、USB接続タイプのpx-w3u4やpx-q3u4のUSB接続タイプのチューナーを使っている場合、スリープやスタンバイ復帰時にデバイスを見失いやすいです。

例えば、EPGStationであれば、以下のようなエラーが吐かれてかつそれが続く場合、それはチューナーを見失っている可能性が高いです。

このエラーが続くようなら、ホスト側でチューナー(デバイス)を見失っているかもしれません。

チューナーデバイスの「見失い」の確認方法

これは、単純です。

サーバがチューナーをデバイスとして認識しているかを確認します。

例えば、px4_drvを使っている場合、チューナは/dev/px4video*と認識されます。

そのため、以下のコマンドでデバイスが認識されているかを確認します。

ここで、見えるはずのデバイスが見えなかったら、チューナーをロスト(見失い)しています。

私がとった対策

私がとった対策として、以下のスクリプトを作りました。

このスクリプトは、ドライバのソースが/home/${USER}/src/px4_drv/driver/に配置されていることが前提となります。

やってることは、/dev/px4video*を確認し、デバイスが見つからなかったらドライバを再インストールする、です。

賞味、デバイスが無かったら、modprobe -r px4_drvだけでも良いかと思うのですが、カーネルがアップデートしたことによってドライバが使えなくなる場合も考えて、このようにしています。

自動でカーネルをアップデート(アップグレード)している場合は、参考にしてください。

以下の記事を参考に構築していただければ、そのまま使えます。

どう使う?

このスクリプトを手動で実行してももちろんOKですが、自動化したいですよね。

EPGStationの録画準備開始時に自動実行する

1つの方法として、ホストにEPGStationを入れて使っている場合は、録画準備開始時に任意のコマンドを実行する機能がありますので、これを使うのがよさそうです。

config.jsonに以下を追記します。

これで、録画直前にデバイスが認識されるようになります。

Crontabで定期実行する

DockerでEPGStationを構築している場合は、コンテナ内でドライバを再インストールしても意味がないのでCronを使います。

例えば、毎日7:55と8:55にデバイスチェックしたい場合は以下を追記してください。

これで毎日8時前と9時前にチューナーを認識しますので、デバイスをロストする確率は下がると思います。

cron実行の場合、シェルスクリプトに記載しているファイルパスは環境変数($USER)は、使わないようベタ書きしてください。

まとめ

スリープ復帰時等のチューナー見失い対策について記事にしてみました。

特に、px-w3u4やpx-q3u4のUSB接続タイプのチューナーを使っている場合、スリープやスタンバイ復帰時にデバイスを見失いやすいです。

こんな事象に遭遇した方に参考にしていただきたいです。

この手の対策はいくつかあるのですが私はこの方法で対策を行い、以後一回もチューナー見失いによる録画失敗を経験していません。

参考になれば幸いです。

コメント

タイトルとURLをコピーしました