WinUSB版のpx4_drvデバイスドライバーを使ってみる anchor.png

PX-W3U4をWindows10マシンで使う場合は,PLEX社からリリースされているWindows用のデバイスドライバーを通常使う。
しかしPLEX社のデバイスドライバーだと,動作が不安定になったり視聴画像のフレームドロップなどの問題が多く発生することがあるようだ。

一方LinuxマシンでPX-W3U4を使う場合,nns779氏が開発した非公式デバイスドライバーpx4_drvを使うと安定して使用できるようだ。
このLinuxマシン用の非公式デバイスドライバーpx4_drvをWindowsマシンでも使用できるように,nns779氏がMicrosoftの汎用USBデバイスドライバーであるWinUSBを使用したpx4_drvを2021/07にリリースされた :)

このWinUSB版px4_drvデバイスドライバーを使うと,Windowsマシンでも視聴画像のフレームドロップの問題が少なくなったり,安定的に使用できるようになると思われる。

なので,WindowsマシンでTVTestでテレビ放送を視聴するのにWinUSB版px4_drvを使ってみることにした。

Page Top

WinUSB版px4_drvの取得とデバイスドライバーのインストール anchor.png

PLEX社のデバイスドライバーが既にインストールされているので,デバイスマネージャーでPLEX社のデバイスドライバーを削除した。

WinUSB版px4_drvとBonDriver等のソースコードをダウンロードする。

> cd work
> git clone https://github.com/nns779/px4_drv.git

nns779氏のpx4_drvをフォークしていくつか修正されたpx4_drvを利用する場合は,

> git clone https://github.com/tsukumijima/px4_drv.git

で取得する。

WinUSB版px4_drvデバイスドライバーをインストールする。WinUSB版px4_drvデバイスドライバーをインストールするためのinfファイル*1は,px4_drv\winusb\pkg\infにダウンロードされている。

  • PX-W3U4をPCとUSBケーブルで接続する。
  • デバイスドライバーは初めての時には自動的にはインストールされない
    デバイスマネージャーで確認するとPXW3U4のところに?がついている。
  • デバイスドライバーの更新をクリックする。
  • コンピューターを参照してドライバーを検索をクリック。
    上記でダウンロードしたディレクトリを設定する。

これで通常,デバイスドライバーはインストールできるのだが,nns779氏オリジナルのデバイスドライバーはデジタル署名されたcatファイルが無いため,Windows10にはそのままではインストール出来なかった。
しょうがないので,最初は署名なしのデバイスドライバーをインストールする方法でインストールした。

この後,奥さんのPCにインストールする時には手間を省くため,自己署名をしたcatファイルを作成し勝手に信頼設定することにより,通常のデバイスドライバーをインストールするのと同じようにインストール出来るようにした。

Page Top

WinUSB版px4_drvを使用するBonDriverをビルドしてインストールする anchor.png

上記のWinUSB版px4_drvを取得するとBonDriver等のソースコードも含まれている。

Visual Studio 2019 Build Toolsが使用できる環境でコマンドプロンプトを起動して,以下のようにしてビルドした。

> cd px4_drv\winusb
> MSBuild px4_winusb.sln /nologo /m /t:Build /p:Configuration=Release;Platform=x86;WindowsTargetPlatformVersion=10.0;PlatformToolset=v142
> MSBuild px4_winusb.sln /nologo /m /t:Build /p:Configuration=Release;Platform=x64;WindowsTargetPlatformVersion=10.0;PlatformToolset=v142

これでBonDriverが,

build\x86\Release\BonDriver_PX4.dll
build\x64\Release\BonDriver_PX4.dll

にビルドされる。

使用するTVTestが32bit・64bit版かに合わせて,ビルドしたBonDriverも32bit版か64bit版のどちらかを使用する。
作成されたBonDriver_PX4.dllを,BonDriverを置くディレクトリに2つのファイルとしてコピーする。(C:\WinApl\TV\TVTestにTVTestをインストールしている場合)

> copy build\x86\Release\BonDriver_PX4.dll C:\WinApl\TV\TVTest\BonDriver\BonDriver_PX4-S.dll
> copy build\x86\Release\BonDriver_PX4.dll C:\WinApl\TV\TVTest\BonDriver\BonDriver_PX4-T.dll
  または
> copy build\x64\Release\BonDriver_PX4.dll C:\WinApl\TV\TVTest\BonDriver\BonDriver_PX4-S.dll
> copy build\x64\Release\BonDriver_PX4.dll C:\WinApl\TV\TVTest\BonDriver\BonDriver_PX4-T.dll

チューナー設定ファイルをコピーする。

> copy pkg\BonDriver_PX4\BonDriver_PX4-S.ini C:\WinApl\TV\TVTest\BonDriver\
> copy pkg\BonDriver_PX4\BonDriver_PX4-S.ChSet.txt C:\WinApl\TV\TVTest\BonDriver\
> copy pkg\BonDriver_PX4\BonDriver_PX4-T.ini C:\WinApl\TV\TVTest\BonDriver\
> copy pkg\BonDriver_PX4\BonDriver_PX4-T.ChSet.txt C:\WinApl\TV\TVTest\BonDriver\

作成されたDriverHost_PX4.exeをコピーする。DriverHost_PX4.exeは複数チューナーを切り替えてくれる。

> copy build\x86\Release\DriverHost_PX4.exe C:\WinApl\TV\TVTest\BonDriver\
  または
> copy build\x64\Release\DriverHost_PX4.exe C:\WinApl\TV\TVTest\BonDriver\

設定ファイルDriverHost_PX4.iniをコピーする。

> copy pkg\DriverHost_PX4\DriverHost_PX4.ini C:\WinApl\TV\TVTest\BonDriver\

作成されたfwtool.exeをコピーする。(実行パスが通っているディレクトリーでもOK)
これは純正のデバイスドライバーからfirmware部分を抽出するツール。

> copy build\x86\Release\fwtool.exe C:\WinApl\TV\TVTest\BonDriver\
  または
> copy build\x64\Release\fwtool.exe C:\WinApl\TV\TVTest\BonDriver\

fwtool.exe用の情報ファイルfilefwinfo.tsv(PX-W3U4 BDA Ver.202104 64bitの情報を追加した物)をC:\WinApl\TV\TVTest\BonDriverへコピーする。

Page Top

firmwareの抽出 anchor.png

PLEX社のWindows用のデバイスドライバーver1.0(pxw3u4_BDA_ver1x64.zip)から,以下のようにしてファームウェアit930x-firmware.binを抽出する。

> cd C:\WinApl\TV\TVTest\BonDriver
> wget http://plex-net.co.jp/plex/pxw3u4/pxw3u4_BDA_ver1x64.zip -O pxw3u4_BDA_ver1x64.zip
> unzip pxw3u4_BDA_ver1x64.zip
> fwtool pxw3u4_BDA_ver1x64\PXW3U4.sys it930x-firmware.bin 
fwtool for px4 drivers

Driver file (in)    : pxw3u4_BDA_ver1x64/PXW3U4.sys
Firmware file (out) : it930x-firmware.bin

Driver description: PX-W3U4 BDA Ver.1.0 64bit
Firmware length: 2169 bytes
Firmware CRC32: 0b41a994

PLEX社のWindows用のデバイスドライバーver1.4(pxw3u4v1.4.zip)からでも同様にしてファームウェアit930x-firmware.binを抽出できる。*2

> cd C:\WinApl\TV\TVTest\BonDriver
> wget http://plex-net.co.jp/download/pxw3u4v1.4.zip -O pxw3u4v1.4.zip
> unzip pxwu4v1.4.zip
> fwtool pxw3u4v1\x64\PXW3U4.sys it930x-firmware.bin
fwtool for px4 drivers

Driver file (in)    : PXW3U4.sys
Firmware file (out) : it930x-firmware.bin

Driver description: PX-W3U4 BDA Ver.1.4 64bit
Firmware length: 7013 bytes
Firmware CRC32: df0bf49a
OK.

どちらでも使用できたが,px4_drv開発者のおすすめはver1.0のデバイスドライバーから抽出したものらしい。

Page Top

ICカードリーダー(接触式)を用意する anchor.png

この非公式デバイスドライバーWinUSB版px4_drvには,PX-W3U4の内蔵カードリーダーでのB-CASカードの読み込みには対応していない。
このためB-CASカードを読むために,接触式ICカードリーダーを別途用意する必要がある。

Page Top

リモコン anchor.png

この非公式デバイスドライバーWinUSB版px4_drvは,PX-W3U4に内蔵されているリモコン受信器には対応していない。
なので,PX-W3U4経由での付属のリモコンでの操作は出来ない。

リモコンを使う方法として,PX-W3U4内蔵のリモコン受信器の代わりとして以下の方法でリモコン操作できた。

Page Top

録画用のツールを用意する anchor.png

動作テスト用に録画ツールを用意する。

Page Top

BonRecTestのインストール anchor.png

BonDriverを使ってTV放送を録画するツールのBonRecTestをビルドしてインストールした。(作者のビルド済みのものは,ここからダウンロードできる。)

BonRecTestのソースコードをここから以下のようにして取得する。

> cd work
> git clone https://github.com/rndomhack/BonRecTest.git
> cd BonRecTest

その後ビルドする。

> MSBuild BonRecTest.sln /nologo /m /t:Build /p:Configuration=Release;Platform=x86;WindowsTargetPlatformVersion=10.0;PlatformToolset=v142
> MSBuild BonRecTest.sln /nologo /m /t:Build /p:Configuration=Release;Platform=x64;WindowsTargetPlatformVersion=10.0;PlatformToolset=v142

BonRecTest.exeが作成されているので,パスが通っているディレクトリかBonDriverを置くディレクトリにコピーする。

> copy Release\BonRecTest.exe C:\WinApl\TV\TVTest\BonDriver
  または
> copy x64\Release\BonRecTest.exe C:\WinApl\TV\TVTest\BonDriver
Page Top

arib-b25-stream-testのビルド anchor.png

日本のデジタルテレビ放送は暗号化(スクランブル)されて配信されている。テレビ放送を受信してB-CASカードの情報を使って復号化(スクランブル解除)する必要があるのだが,このために使用するプログラムをライブラリ化したのがlibarib25ライブラリー。

arib-b25-stream-testはこのライブラリを使ったツールで,これを使用すると接触式ICカードリーダーとB-CASカードを用いて復号化(スクランブル解除)出来る。

ここのWindows・Linux 共用ARIB STD-B25ライブラリをビルドしてインストールした。

> cd work
> git clone https://github.com/tsukumijima/libaribb25.git
> cd libaribb25
> MSBuild arib_std_b25.sln /nologo /m /t:Build /p:Configuration=Release;Platform=Win32;WindowsTargetPlatformVersion=10.0;PlatformToolset=v142
> MSBuild arib_std_b25.sln /nologo /m /t:Build /p:Configuration=Release;Platform=x64;WindowsTargetPlatformVersion=10.0;PlatformToolset=v142

arib-b25-stream-test.exeが作成されているので,パスが通っているディレクトリかBonDriverを置くディレクトリにコピーする。

> copy Win32\Release\arib-b25-stream-test.exe C:\WinApl\TV\TVTest\BonDriver
  または
> copy x64\Release\arib-b25-stream-test.exe C:\WinApl\TV\TVTest\BonDriver
Page Top

WinUSB版px4_drvの動作を確認する anchor.png

コマンドプロンプトを起動して,以下のコマンドで動作を確認してみる。
カレントディレクトリをBonDriverのディレクトリにして,B-CASカードをリーダーに挿入してBonRecTestコマンドを使う。(表示にvlcが必要。)

> cd C:\WinApl\TV\TVTest\BonDriver
> BonRecTest --driver BonDriver_PX4-T.dll --output - --space 0 --channel 14 | arib-b25-stream-test | vlc fd://0

テレビ放送(地デジ10ch)が見れればうまく動作している。

この後,TVTestでpx4_drvのBonDriverを使用したところテレビ放送が視聴できた ;)

Page Top

px4_drvとTVTestの自前ビルド版 anchor.png

filepx4_drvとTVTest0.10.0をビルドしたもの(不定期更新


*1 実際に使用するデバイスドライバーは,Microsoft製のlibusb互換デバイスドライバー・ライブラリであるWinUSB。
*2 最新版のデバイスドライバー202104_PX-W3U4_Driver.zipでもファームウェアはpxw3u4v1.4.zipと同じだった。

コメント一覧

投稿ツリー


新しくコメントをつける

題名
ゲスト名
投稿本文
より詳細なコメント入力フォームへ
vafee   投稿日時 2021/9/28 3:35
プレクス PX-Q3U4環境ですが『filepx4drv_TVTest-0.10.0.zip』を、まるまる頂いて、無事地上波もBSも視聴が可能となりました、ありがとうございました。

https://vafee.blog.jp/preview/edit/e302eeb77361baa5a780de4f6cffc9ec
Hiro   投稿日時 2021/8/23 13:34
いえいえ、ビルドが必要なファイルは全てここに揃っていたので助かりました。
ビルドが不要なファイルはgithubからすぐdownloadできましたし。

TvRockでBSだけ選局できない件は解決しました。
先日TvRockの環境をPT3からMLT8PEに変えた際にBS,CSの選局ができず「TvRockOnTVTest.ini」にDID毎にBSIndex=2、CSIndex=3を追加したのですが、WinUSB版ではあると弊害が出るようで無効にしたらきちんと動くようになりました、
yuji  投稿日時 2021/8/23 12:04
アーカイブファイルは,私が使用しているPX-W3U4用にビルドしたファイルのみ入れている保管の為なので,他のチューナー用の設定ファイルなんかが入ってないですね すいませんでした。
Hiro   投稿日時 2021/8/23 10:20
EDCB+TVTestの環境でnns779氏のWinUSB版導入がうまくいきました。純正ドライバーだとTVTestのビットレート表示がPT3と比較してMLT8PEの地デジとCSが高い数値を示していて、CSは7つ以上でUSB2.0の帯域を超えてドロップ多発でしたが、nns779氏のWinUSB版ではPT3と同等まで下がり通常時のドロップは無くなりました。

最初、ここのビルド済みのファイルが少ないなあと思ったが必要十分でした。
https://github.com/nns779/px4_drv ページの左上の「develop」を「winusb」に変え、右上の「Code」をクリックして「Download ZIP」でその他の必要なファイルが全て入手できこちらではビルド不要でした。

予備のためにセットアップしているTvRockでは地デジ、CSはうまくいくのに、BSの選局だけがうまく選択できない。もう少し試行錯誤してみます。



トップ   凍結 差分 バックアップ 複製 名前変更 リロード   ページ新規作成 全ページ一覧 単語検索 最新ページの一覧   ヘルプ   最新ページのRSS 1.0 最新ページのRSS 2.0 最新ページのRSS Atom
Counter: 27513, today: 9, yesterday: 0
最終更新: 2021-08-04 (水) 09:59:31 (JST) (1019d) by yuji