201231 PX-W3PEのB-CASカードが認識しなくなったのでBon Driver再セットアップ
Windows 10をバージョン1909から20H2へアップグレードしようとしたら、Windows Updateで0x80070003という謎のエラーコードで問題が発生。まあこれは色々こねくり回しているうちに原因不明のままアップグレードはできたんだけども、そしたら今度はTVTestでテレビが見れなくなった。BS/CSのLNB給電やアッテネーターの設定レジストリー再適用はもちろんやっている。デバイスマネージャーではチューナーはちゃんと認識されている。
初期設定したのが5年以上前のことなので状況をすっかり忘れていたが、PLEX内蔵カードリーダーのB-CASカードでスクランブルを解除する方式はいくつかあって、私のはscard (FakeWinSCard) 方式を利用しているらしい。ある方のブログの通りに設定したので、そもそも他にも方式があることは知らなかった。
TVTestのログを見るとB-CASカードIDが「0000 0000 0000 0000 0000」となっている。B-CASカードを認識していないようだ。これまでにもこれと同じ症状はあって、その時はB-CASカードを何回か抜き差しして直った。今回はB-CASの抜き差しやPCIeを付け外ししても一向に直らない。そもそも、Windowsをアップグレードする前日までは正常に録画できていたのに、ハードウェアに手を加えていないにもかかわらず、このタイミングでB-CASを認識しなくなるというのは、ハードよりもソフトに原因があるのでは。
radi-sh版BonDriverに置き換える
まず、TVTestに入っているBonDriverが2011年と古いものなので、これを更新してみる。現時点で2019年最終更新のradi-sh版BonDriverをありがたく使わせていただく。
- BonDriver_BDA改-20190202
- Releases · radi-sh/BonDriver_BDA · GitHub
TVTestは字幕表示やニコ実プラグインを入れている関係で32ビット版を使用しているので、BonDriver_BDA-2019-02-02/x86/Release内にあるファイルを使用する。「BonDriver_BDA.dll」を4つコピーしてファイル名を
- BonDriver_PX_W3PE_S0.dll
- BonDriver_PX_W3PE_S1.dll
- BonDriver_PX_W3PE_T0.dll
- BonDriver_PX_W3PE_T1.dll
に変え、TVTestのフォルダーへ配置する。
このドライバーをPLEX PX-W3PEで使用するには対応するBDASpecialプラグインが必要。同じリポジトリーにあるファイルを使わせていただく。
- Plex PXシリーズ3波チューナー用プラグイン-20190202
- Releases · radi-sh/BDASpecial-PlexPX · GitHub
(※旧製品のPX-W3PEには適用できますが、現行製品のPX-W3PE4ではIT9135系対応のプラグインを使用する必要があります。)
BDASpecial-PlexPX-2019-02-02/x86/ReleaseにあるPlexPX.dllをファイル名を変えずにTVTestのフォルダーへ配置。BonDriver_PlexPX_S.ini(BS/CS用)とBonDriver_PlexPX_T.ini(地上波用)を先ほど配置したBDAドライバーと同じファイル名にしてTVTestに配置する。
- BonDriver_PlexPX_S.ini → BonDriver_PX_W3PE_S0.ini, BonDriver_PX_W3PE_S1.ini
- BonDriver_PlexPX_T.ini → BonDriver_PX_W3PE_T0.ini, BonDriver_PX_W3PE_T1.ini
スクランブル解除方式をM2方式に変更する
まず、TVTestの設定 - 一般にある「カードリーダ」を「なし(スクランブル解除しない)」に設定して一旦終了しておく。
先ほど配置した4つのiniファイルを開いて、PlexPXセクションの「M2_Dec=NO」を下のように書き換える。
M2_Dec=YES
TVTestフォルダーにあるscard拡張子のファイルと「CardReader_PX.dll」「CardReader_PX.ini」「WinSCard.dll」は不要なので、削除するか適当に別の場所へバックアップを取っておく。
以上で設定完了。原因ははっきり特定できていないが、これでB-CASカードが使えるようになった。チューナー交換かカードリーダーを買うときが来たかと思ったけど、その必要はなかった。
以下、ファイル構成。
C:\TVTest のディレクトリ
[.] [..]
BonDriver_PX_W3PE_S0.ch2 BonDriver_PX_W3PE_S0.dll
BonDriver_PX_W3PE_S0.ini BonDriver_PX_W3PE_S1.ch2
BonDriver_PX_W3PE_S1.dll BonDriver_PX_W3PE_S1.ini
BonDriver_PX_W3PE_T0.ch2 BonDriver_PX_W3PE_T0.dll
BonDriver_PX_W3PE_T0.ini BonDriver_PX_W3PE_T1.ch2
BonDriver_PX_W3PE_T1.dll BonDriver_PX_W3PE_T1.ini
BonDriver_UDP.dll BonDriver_UDP.txt
D.dll EpgData
iepg.tvpid LogoData
LogoData.ini PlexPX.dll
[Plugins] Preset_BS.ch2
Preset_CS.ch2 [Themes]
Tuner.dll Tuner.ini
TVTest.ch.ini TVTest.chm
TVTest.exe TVTest.ini
tvtest.tvfavorites TVTest.txt
TVTest_0.7.23fix.exe TVTest_0.7.23fix.patch
TVTest_Image.dll TVTest_Logo.bmp
TVRockの2020年対応
ついでに、TVRockのチャンネルリストを更新して設定を初期化したので、番組表録画の予約スケジュールを追加しようと思ったら予約日時で2019年までしか選べないことに気付いた。それを修正するバイナリ編集。感謝!
→ TVRock2019年問題 2020年以降予約録画出来ない!解決法を詳しく解説 | 疑問解決.com