Windows7でテレビ(その2)
UUSBDドライバ
まずは、UUSBDドライバをダウンロードする。展開すると、
uusbd64.inf
uusbd64.sys
uusbdioctl.c
この3つのファイルが入っている。「uusbdioctl.c」は、ソースファイルなので必要ない。まずはinfファイルを編集する。
[UUSBD64_SYS.NTamd64]
%USB.DeviceDesc% = UUSBD64.Dev,USB\VID_3275&PID_7080&MI_00
BDAデバイスのVID・PID・MIに対応するように変更する。
[Strings]
Mfg = "sk-net"
Prv = "sk-net"
USB.DeviceDesc = "MonsterTV HDUC (uusbd64)"
Stringセクションを適当に変更。
以上で、UUSBDドライバをインストールすることはできるが、UUSBDドライバは署名済みドライバではないため、ブートするたびに、F8キーでブートオプションを切り替えないと、正常にロードされない。これは面倒すぎるので、何とかしたい。
定番は「Readydriver plus」を使うみたいのだが、どうも、これは結構無茶なことをしているように見えるので、気が進まない。他の方法を考えてみたが、良い考えが浮かばない。面倒だけど、自前で署名することにする。
ドライバに署名する
真面目にやると、非常に面倒なので、手を抜くことにする。参考にするURLはここだけど、なくなってしまうかもしれないので、手順を細かく残すことにしよう。
必要なToolはVS2005に入っている。Windows SDKにも入っているようだ。作業は全てUUSBDドライバフォルダ内で行う事にする。PATHを変更するのは面倒なので、行わない。
コマンドプロンプトを「管理者として実行」して、UUSBDフォルダーに移動する。
まずは、Private KeyとCertificateファイルの作成。
makecert -sv uusbd64.pvk -a sha1 -eku 1.3.6.1.5.5.7.3.3 -r -ss Root -len 1024 -sr localMachine -n CN="uusbd64.dll" uusbd64.cer
実行すると、パスワードを入力するダイアログが2回表示される。パスワードは違うものを入力してもよいが、面倒なので同じものを入力する。結果は以下。
続いて、CertificateファイルからSPC(Software Publisher Certificate)ファイルを作成。
cert2spc uusbd64.cer uusbd64.spc
実行結果。
Private KeyファイルとSPCファイルからPFX(PKCS#12)ファイルを作成。
pvk2pfx -pvk uusbd64.pvk -pi hogehoge -spc uusbd64.spc -pfx uusbd64.pfx -po hogehoge
実行結果。なぜか、このToolはSucceededを出力しない。
ようやく署名をつける。
signtool sign /f uusbd64.pfx /p hogehoge /d "uusbd64.dll" /v uusbd64.sys
実行結果。
今、気がついた。CNやDescriptionに使用した「uusbd64.dll」は「uusbd64.sys」の間違いだった。面倒だし、本来、何でもよいフィールドなので、直さないでおこう。
これで、「uusbd64.sys」が署名された。
まだ、続く。
コメント