PX-W3U4 + Ubuntu 18 + px4_drvで作る録画サーバー。WindowsではBSODで安定せず

当サイトで紹介するMODやアプリなどの内、システムファイルの改変やシステムに深く関わるものはroot化やリカバリが必須となります(root化の必要なしと明記している場合は除く)。導入は自己責任で行ってください。また、技適の無い機器の使用は自己責任です。

PX-W3U4 + Ubuntu 18 + px4_drvで作る録画サーバー。WindowsではBSODで安定せず

当初録画サーバーをWindows上で運用しようとしていたのですが、低品質なPX-W3U4のドライバのせいで不安定になっていたため、Ubuntu 18上で作り直したところかなり安定するようになりました。後で思い出すためメモ書きを残しておきます。


PX-W3U4はWindowsでは環境依存の問題が起きやすい

パソコンで地デジやBS・CSの録画が出来るようになるTVチューナー、PX-W3U4はプレクス公式でWindows・Linuxドライバが公開されています。

しかし、Windows 10 x64で使用し続けていると、断続的に
停止コード: PAGE_FAULT_IN_NONPAGED_AREA
失敗した内容: PXW3U4.sys
というエラーが発生しブルースクリーンとなり再起動していました。

いくつか対策したのですが、結局Windows上では長時間安定して動作させることは出来ませんでした。

対策1. プレクス社に検証してもらう

PXW3U4.sys = PX-W3U4のドライバがBSODの原因であることはほぼ間違いないので、まずは販売元のプレクスに問い合わせしました。

返ってきた返信は以下の通りですが、これまでドライバが原因の現象は確認していないから、とドライバの問題では無くこちらのハードウェアに原因がある可能性が高いと言い切られてしまいました。大手企業ですら何度もドライバの更新をするのに、この自信はどこから湧いてくるのでしょうか…。

誠に恐れ入りますが、サポートチームまお問い合わせのあった同様症状にて、 弊社ドライバが原因となっている現象はこれまでに確認されておりません。  お知らせいただきましたエラーコードは、 デバイスドライバそのものの問題のほか、 OS構成ファイルのエラーやドライバー同士の競合、 ハードウェアの異常などによっても発生するものであり、 お客様環境に起因する問題の可能性が高いと考えられます。  お手数をおかけすることとなり恐縮ですが、 OSがクリーンインストールされた環境でお試しいただくなど、 お客様環境での確認をいただきますようお願い申し上げます。  なお、これまでにPX-W3U4の不具合によってブルースクリーンエラーとなった事例は確認されておりませんが、 前述のとおり、当該のエラーコードはハードウェアの不具合によっても起こり得るものとなっております。ちょうどもう一台新品のWindows搭載PCがあったため、再セットアップしてUSB 3.0ポートではなくUSB 2.0ポートに差し替え、冷却ファンで冷やした状態で動作を確認しました。

ページングファイルの作り直しやメモリテストなどをした結果はどちらのPCも正常で、PXW3U4.sysが原因のBSODはどちらのPCでも起きたことを返信し、プレクスでの検証を要求しました。

検証の結果は、「長時間の利用においてチューナーの動作が順次停止する」という問題については確認出来たが、BSODは再現しなかった、とのことでした。

ちなみに検証のためプレクスへ送る送料はこちら持ちで、送るときに同封した検証依頼書は「弊社使用欄」として動作確認のチェック欄がいくつかあったものの、すべて空欄のまま返ってきました。

今回の検証結果内容を記載した検証報告書を送付させていただきますので、内容確認をお願い致します。 弊社検証において、お客様よりご申告いただきました症状とは別の現象を確認いたしました。 長時間の利用において、チューナーの動作が順次停止するという問題が発生していました。新品と交換の上、ご返送いたします。  発送予定日:7月4日(水) 配送業者:佐川急便 送り状番号:  なお、ご申告のブルースクリーンは再現いたしませんでしたが、正常品では発生しない動作停止現象がお客様環境ではブルースクリーンエラーを引き起こしていた可能性があります。 ブルースクリーンエラーは再現されなかったため、別の原因によって発生している可能性もございます。この場合は、改めましてご利用環境のご確認をいただきますようお願い申し上げます。検証の結果新品が返ってくることになりましたが、結局この新品でも同様の問題が発生しました。

対策2. 分配器の通電端子を使わないようにする

プレクス、というより製造元のDigibest製のTVチューナーはLNB電源供給に問題があるようですが、厄介なことに分配器・分波器を使う時通電する端子を使ってしまうと、LNB電源供給を無効化していても勝手に電源供給されてしまう問題も抱えているようです。

使っていた分配器は幸い一端子のみ通電するタイプだったので差し替えたところ、一日に4~5回ほどBSODが起きていたのが一日に2回ほどに収まりました。

使っていた分配器だと微妙に信号強度が弱くなるようだったので、今は下記の分波器を使っています。

対策3. USBケーブルをフェライトコア付きにする

Digibest製チューナーには低品質なケーブルが付属していることが多い、という情報を見かけたため、フェライトコア付きのUSBケーブルを購入してみました。

これでもBSODが一日一回は起きていて、特に目立った効果はありませんでしたが、PX-W3U4付属のUSBケーブルは本体から外れやすい感じがするので、それを防ぐという意味では良いかもしれません。

対策4. Mirakurunの設定を変えてみる

BSODは録画中というよりはEPG取得時の時間帯によく起きていたため、Mirakurunも何か影響しているかもしれない、と思って設定を変更してみました。

Mirakurunのtunners.ymlでcommand:のところにB25処理をするよう書いてしまうとEPG取得でもB25処理されてしまい、余計な負荷の原因になるので外しました。

また、BSODが起きて再起動した後はしばらく問題なく動くので、連続稼働で問題が起きる可能性も考え、一日二回Mirakurunの再起動をするようにしました。

これでようやくBSODが一週間に3回程度になりましたが、完治しませんでした。

Ubuntu 18 LTS + px4_drvで作り直し

プレクスの低品質なドライバが修正されない以上Windowsではもうどうにもならない、と分かったところで、非公式版Linux用ドライバ px4_drv がT側・S側両方に対応し、T1->T0のドロップ対策も入ったことが分かりました。

PX-W3U4のドライバはGPLライセンスのコードを含むにもかかわらず、プレクス・Digibestはソースを公開していないため公式ドライバだと対応するカーネルが限られているのですが、非公式版ならどのカーネルでも制限無く利用できます。

私は使い慣れているデスクトップ版のUbuntu 18.04 LTSを利用しましたが、XRDPがどうも思い通りに動かなかったので、結局デスクトップは止めてSSH接続することになりました…。

 

非公式版Linux用ドライバ px4_drvのビルド手順はGitHubに書かれているとおりです。

なお、PX-W3U4の内蔵カードリーダーは今のところWindowsでしか使えないため、別途カードリーダーが必要となります。

安いACR39-NTTComで問題ありません。説明書には書いていませんが、B-CASカードを挿入する場合はICチップが上面に来るよう、B-CASと大きく書かれた面を下向きにしないといけません。

sudo apt-get install -y git build-essential cmake libpcsclite1 libpcsclite-dev pcscd pcsc-tools pkg-config
git clone https://github.com/stz2012/libarib25.git
cd libarib25/
cmake .
make
sudo make install

と実行すればB-CASカードが認識され、利用できるようになります。

録画用のコマンドはrecpt1を使用しました。

curl -LO http://plex-net.co.jp/download/linux/Linux_Driver.zip
unzip Linux_Driver.zip
cd Linux_Driver/MyRecpt1/MyRecpt1/recpt1/
sh configure --enable-b25
make
sudo install -m 755 recpt1 /usr/local/bin/recpt1
sudo install -m 755 recpt1ctl /usr/local/bin/recpt1ctl

と実行します。

px4_drvを使用する場合、Mirakurunのtuners.ymlは以下のようにします。

- name: PX4-S1
types:
- BS
command: recpt1 --device /dev/px4video0 <channel> - -
decoder: arib-b25-stream-test
isDisabled: false

- name: PX4-S2
types:
- BS
command: recpt1 --device /dev/px4video1 <channel> - -
decoder: arib-b25-stream-test
isDisabled: false

- name: PX4-T1
types:
- GR
command: recpt1 --device /dev/px4video2 <channel> - -
decoder: arib-b25-stream-test
isDisabled: false

- name: PX4-T2
types:
- GR
command: recpt1 --device /dev/px4video3 <channel> - -
decoder: arib-b25-stream-test
isDisabled: false

後はMirakurun、arib-b25-stream-test、MySQL、EPGStationなどをセットアップすれば完了です。

 

ファイル名に番組名を使いたい場合、録画後にスクリプトで色々処理しようとすると、Windowsでは使用できない記号が番組名に入っている時の処理を考えないといけなかったのですが、Ubuntu上では特に何もせずに済むようになり、PowerShell CoreをインストールすることでPowerShellスクリプトもほぼそのまま使い回せたのでかなり楽でした。

LinuxだとQSVエンコードできるCPUが限られているという問題はあるものの、Gemini Lake搭載小型PCなど省電力なPCでも気軽に入れやすく、ドライバ起因のBSODやドロップに悩まされず安定した録画が出来るようになるので、PX-W3U4で録画サーバーを作ろうと考えている方は、初めからWindowsではなくLinuxで構築するのをおすすめします。

はてブ Pocket Mastodon タイトルとURLをコピー

カテゴリ:
コメントフォーム右上の「ログイン」メニューで各種SNSアカウントでログインできます。
匿名でコメントしたい場合は、名前とメールアドレスを入力した後「アカウントを作成せず投稿する」にチェックを入れてください。Disqusに登録すると、返信通知を受け取れます。