こんにちは。この記事では、SKNET社製MonsterTV HDUSをWindows10 64bitで使う方法について、試行錯誤の結果を備忘録として残します。
大まかな流れとしては、公式のドライバーをインストール→有志のドライバーを自己署名(VS経由)してインストール→TVtestを使用して再生、のようになります。
VS経由について:Windows Driver Kitに含まれるプログラムを使うため、VisualStudio及びWindowsSDKのインストールが必要になります。
この記事で行う手順は、主に下記3サイトの手順を融合し、修正したものとなります。
【2022年版】Monster TV HDUS の設定まとめ (Win10/11) – まいまいオーディオBlog
TVチューナ SK-NET の MonsterTV HDUS を Windows10 で使ってみた – ぬこの小屋
Steps for Signing a Device Driver Package – Microsoft Learn
親の実家で荷物整理を手伝っていたところ、BCASカードが入った物体を発見。以前よりPC用TVチューナーが欲しかったため棚ぼた。一緒に出てきたピカピカMiniUSBと、チョット汚い同軸(伏線)と一緒に持って帰ってきました。
品番を打ち込みsknetからドライバーを落とすも、当たり前のごとくXPとVistaの32bitしかなかったため途方に暮れ、探しに探し回った結果上記3サイトにたどり着きました。そしてテストモード運用には成功したものの、宗教上の理由でテストモードを避けたく、迷った結果自己署名することにして通常起動に帰ってきました。
0.用意するもの
- MonsterTV HDUS 及びMiniUSB、同軸ケーブル、B-CAS (HDシリーズのどこまで通用するかはわかりません)
- SKNET公式HDUC他用ドライバー(091110_Driver.zip)
- HDP2用凡ドライバー(up0425.zip/BonDriver_HDP2_011)
- MTVHDシリーズ用ドライバツールセット?(up0479.zip/MTVHD-Series-Current-20091113)
- TVTest(今回は0.10.0-20230512)
- VisualStudio、Windows Development Kit、Windows Driver Kit(自己署名ツール用)
- vcランタイム(未インストールの場合)
- 2005?
- 2019?
1.材料の準備
1.1 SKNET公式ドライバー
SKNETの公式より、MonsterTV HDUC/HDU2/HDPS/HDP2他向けのドライバーを、[ドライバ]Ver1.9.10.20の下のZIP 09110_Driver.zipからダウンロードします
1.2 HDP2用凡ドライバー、MTVHD用ドライバツールセット
HDUS関係ファイル置き場より、up4025.zipとup4079.zipを落とします
1.3 TVTest
一応ビルド済みのものはオフィシャルには配布されていないのですが、非公式で有用プラグインとともに配布されている方がいらっしゃるので、今回はこちらを利用します。最新版で多分大丈夫です。
解凍すると64bit版と32bit版がありますが、64bit版はうまく行きませんでしたので32bitを使います。
1.4 VisualStudio、Windows SDK、WDK
公式のドキュメントに沿ってインストールします。
1.4.1 VSのダウンロード
ここからインストーラーを落とします。
インストール時、C++によるデスクトップ開発にチェックを入れてインストールします。数GBぐらいはあります。
1.4.2 Windows SDKのダウンロード
ここからインストーラーを落とします。
インストールするコンポーネントを選べますが、WDKにどれが必要かは未検証です(筆者は別で使うためすべて入れた)
1.4.3 Windows Driver Kitのダウンロード
ここからインストーラーを落とします。インストールpathはSDKと同じWindows Kits内で問題ありません。そのまま勧めるとVSへのプラグイン系インストールまで勝手にやってくれます(確か)
1.5 VCランタイム系
すでにインストール済みだったのでよくわからないんですが、2005(ドライバー?)2019(TVTest)あたりはあった方がいいかなと
2. SKNET公式ドライバーのインストール
先に、HDUS本体をパソコンへ接続します。
091110_Driver.zipを解凍し、出てきた「DriverInstall.exe」を開きます。管理者権限が要求されます。
わかりやすいインストールボタンをクリックし、しばらく待つとインストール→デバイスの確認中→インストール完了と進みます。
3. HDUSの有志ドライバーをインストール
この手順では、最終的に「MonsterTV HDUS HDTV Recoding Device WinUSB(1009)」という名前のドライバーをSKNET HDTVというデバイスにインストールすることが目標です。
up0479.zip\MTVHD-Series-CURRENT-20091113\WinUSB\MTVHD_WinUSB.infというファイルがドライバーのインストール用ファイルですが、これは電子署名がされておらず、インストールできません。
正確にはテストモードかドライバーの署名強制無効化をやればインストールだけはできるのですが、筆者の環境では通常起動時にドライバーが動きませんでした。
そのため、WDK同梱ツールを使って自己署名証明書を作成→MTVHD_WinUSB.infの血統書(?)を作成→血統書に証明書で電子署名、という手順を踏み、ドライバーを署名されたものにします。
自分で署名するということは、自分がその責任者になるわけですから、何があっても自分で責任を取ることになります。本サイトは責任を負いません。
その点に留意して、自己署名の手順を進めてください。
お墨付きを与えるのが自分である以上、そのドライバーがどういうもので、本当に害がなく問題がないものである、ということは理解しておく必要があります。署名されてる以上、Windowsは(非署名のものと比べ)警告を強く発しませんので、ここで重ねて記しておきます。
3.1 ドライバーを自己署名する ①自己署名証明書の作成
まず、電子署名に用いる自己署名を作成します。
Visual Studio→ Developer Command Prompt for VSを管理者権限で開きます。
下記の通りmakecertコマンドを入力します。これで自己署名用の証明書が作れます。
/rは自己署名のためのオプション、-peはエクスポート可能とするオプションです。
/n CN=のあとの「HDUS Driver Certificate CA」は署名の名前です。わかりやすいものに設定してください。
/ssのあとの「customcert」は証明書の置き場所です。このあとこれを探すことになりますので、わかりやすいものに設定してください。
/srは証明書の置き場所の置き場所です。localMachineに置くとパソコン上の全ユーザー対象になります。
「hduscert.cer」は証明書のファイル名です。これ自体はあまり探さないので、区別可能であればなんでも大丈夫です。
C:\Windows\System32> makecert /r /pe /n "CN=HDUS Driver Certificate CA" /ss "customcert" /sr localMachine hduscert.cer
そのままEnterを押し、成功するとSucceededと出ます。
小話(任意):makecertは記述によっては非推奨となっているようなのと、この手順だけはWDKなしでもできます。PowerShellを管理者で開き、「New-SelfSignedCertificate -Type “CodeSigningCert” -Subject “HDUS Driver Certificate CA”」と実行したところ、手順3.2内の個人→証明書の中に同じものができてました。ただ、上のコマンドを実行するときに有効期限を明記しないと、勝手に1年で作られるようです。短い。詳しくは公式ドキュメントに。
3.2 ドライバーを自己署名する ②自己署名の信頼
証明書は完成したため、今度はWindowsに「この証明書は信じて良いもの」と教え込みます。ドライバーにお墨付きを与えてしまう着実な一歩です。
スタートメニューの検索欄に「証明書」と入れると「コンピューター証明書の管理」が出てきますので開きます。
先ほど指定した証明書の置き場所(筆者はcustomcert)を探します。中に先ほど作った証明書が入っています。
先ほど作った証明書を右クリック→コピーし、信頼されたルート証明機関→証明書を選択した状態で、ツールバーの貼り付けを押します。右側の一覧に、先ほど作った証明書が追加されます。これで、「HDUS Driver Certificate CA」という署名は信じて良いもの、とWindowsが認識します。お墨付きへ一歩踏み出しました。
3.3 ドライバーを自己署名する ③ドライバーファイルの準備
続いて、MTVHD_WinUSB.infの血統書を作ります。元々のこの.infファイルは血統書を作らない前提になっているので、中身を書き換えて血統書を作れるようにします。
まず.infを開きます。メモ帳でいいです。すると、このような感じになってます。
[Version]に、血統書のファイル名とドライバーのバージョンを付け足します。
CatalogFile=winusb.cat
DriverVer = 06/11/2023,1.2.3.4
CatalogFile=自体はコメントアウト(;)付きで書いてあるので、セミコロンを消せばそのまま有効にできます。
MyCatFile.catかwinusb.catがファイル名になります。.infと同じフォルダに生成されますが、わかりやすい名前にしてください。
バージョンは日付,x.x.x.xですが、おそらく何を指定しても問題ありません(ドライバー更新時に配慮する必要があります)。一応、日付は血統書を生成する今日にしておきます。
書き換えたら保存して閉じてください。筆者の場合は以下のようになります。
3.4 ドライバーを自己署名する ④ドライバー血統書の作成
続いて血統書(セキュリティカタログ)を作ります。先ほどのDeveloper Command Prompt for VSに戻ります。
下記の通りinf2catコマンドを実行します。.infファイルをもとに、.catファイルが生成されます。
/driver:の箇所で.infファイルがあるフォルダを指定します。エクスプローラーからアドレスコピーが一番確実です。筆者の場合、ダウンロードフォルダで解凍してそのまま作業しているため「C:\Users\ユーザ名\Downloads\MTHD-Series-Current-20091113\WinUSB」になります。
/OS:の箇所でこの血統書(証明)を有効にするOSを指定します。今回はWindows 10 64bitなので10_X64とします。カンマで区切ることで複数指定できます。公式ドキュメントに識別子の一覧があります。
C:\Windows\System32> inf2cat /driver:パス\MTVHD-Series-Current-20091113\WinUSB /OS:10_X64
成功するとtest completeと出て、.infファイルのCatalogFileに書いた名前の.catが生成されます。
3.5 ドライバーを自己署名する ⑤ドライバーを自己署名する
お墨付きを完了します。あなたの自己責任が確定します。
下記の通りsigntoolコマンドを実行します。
/sで証明書の置き場所を指定します。先ほどcustomcertに負いたので、それを指定します。
/nで使う先ほど作った証明書の名前を指定します。「HDUS Driver Certificate CA」という名前で作ったため、そう入力します。
/fdで証明に使うハッシュ化手段を指定します。SHA256がよさそう。
最後に.catファイルを指定します。inf2catのときと同じくフルパスにした上で、3.4で生成された.catのファイル名を忘れず付け足します。筆者の場合「C:\Users(中略)WinUSB\winusb.cat」です。
C:\Windows\System32> signtool sign /s "customcert" /n "HDUS Driver Certificate CA" /fd SHA256 パス\winusb.cat
成功するとSuccessfully signedと出ます。お墨付きになりました。
3.6 ドライバーをインストールする
インストールしたいドライバーをWindowsが許してくれる形にできたため、満を持してインストールします。
コントロールパネル→(ハードウェアとサウンド→)デバイスとプリンターから、未指定に残ってる「SKNET HDTV」をダブルクリックしプロパティを表示します。
ハードウェアタブに3つ出てきますが、「SKNET IR2HID」でも「USB Composite Device」でもないものを選択します。筆者の場合、ドライバーをインストール済みなのでこの名前で出てきますが、未インストールだと別の名前です。なお、IR2HIDはリモコン機能ですが、リモコンは持ち合わせていないためいじりません。
プロパティ→設定の変更→ドライバー→ドライバーの更新と進みます。「コンピューターを参照してドライバーを検索」から、「次の場所でドライバーを検索します」でMTVHD_WinUSB.infのあるフォルダを選びます。
次へを押し、証明書マークのついた「MonsterTV HDUS HDTV Recoding Device WinUSB(1009)」をクリック、次へ進み、警告を承諾し、ドライバーのインストールを完了します。
インストールが完了すると、プロパティに上の画像のように「このデバイスは正常に動作しています」と表示されます。
4. TVTest用の凡ドライバーを準備
ヤマ場は超えたのであとは比較的ラクです。TVTestでは凡ドライバー(BonDriver)という名前のdllファイルがあることでチューナーとして使用可能になるのですが、もともと付属しているものは使えません。今回は、HDP2用のBonDriverを使います。
HDP2用のBonDriverは.iniファイルをセットにする必要があるため、それを準備します。MTVHD-Series-Current-20091113からmiscフォルダを開き、BonDriver_HDP2.dll.iniを探します。これが使う.iniファイルです。
メモ帳で開くと、「Products=3275:7020」と書いてありますが、HDUSではない別のチューナー向けの数字となっておりこのままでは使えません。7020を6051と書き換え、保存します。
なお、MTVHD(中略)20091113→Installerフォルダ→Installer.cmdを開くと、中に識別子の一覧があります。少しスクロールして最初に出てくるMonsterTV HDUS HDTVはPID=3275:6051と記載されています。おそらく、ここを書き換えると別の製品にも使えそうです。
5. TVTestを準備
ダウンロードしてあるTVTestを解凍します。TVTest-0.10.0-xxxxxの中にTVTest_32bitとTVTest_64bitがありますが、64bitの方は削除して問題ありません。32bitのみ使います。
TVTest_32bitの中に、4で用意したBonDriver_HDP2.dll.iniと、4025.zip/BonDriver_HDP2_011にあるBonDriver_HDP2.dllの2つを入れます。これでチューナーの準備が整いました。
6. TVTestを起動
初回起動時、小さいウィンドウで色々設定を求められます。BonDriverはHDP2、MPEG2デコーダーはTVTest、レンダラーはEVRを選んでください。他は変更不要です。チューナーへ電波が来ている場合、チャンネルスキャンを推奨されます。スキャンとともにテレビが映るはずです。
筆者はここで、スキャン時にdbが10~15以下と低く0Mbpsから動かない症状となりました。原因は同軸ケーブルでした。自分で加工してあるタイプのF字コネクタはノイズが多いのか使い物にならないようです。自分で加工していない同軸ケーブルを用いたところ、無事に映りました。だいたい30db弱、15-17Mbpsぐらいで推移します。
他にもdbは十分にあるのに0Mbpsにしかならない「0Mbps病」など、トラブルは多くあるそうですが、筆者の環境では一から今回の手順を試みて無事にうまくいきました。何かあればコメントにお願いします。