« Windows7でテレビ(その1) | トップページ | Windows7でテレビ(その3) »

2009年4月24日 (金)

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回表示される。パスワードは違うものを入力してもよいが、面倒なので同じものを入力する。結果は以下。

Makecert_8

続いて、CertificateファイルからSPC(Software Publisher Certificate)ファイルを作成。

cert2spc uusbd64.cer uusbd64.spc

実行結果。

Cert2spc_3

Private KeyファイルとSPCファイルからPFX(PKCS#12)ファイルを作成。

pvk2pfx -pvk uusbd64.pvk -pi hogehoge -spc uusbd64.spc -pfx uusbd64.pfx -po hogehoge

実行結果。なぜか、このToolはSucceededを出力しない。

Pvk2pfx_3

ようやく署名をつける。

signtool sign /f uusbd64.pfx /p hogehoge /d "uusbd64.dll" /v uusbd64.sys

実行結果。

Signtool_3

今、気がついた。CNやDescriptionに使用した「uusbd64.dll」は「uusbd64.sys」の間違いだった。面倒だし、本来、何でもよいフィールドなので、直さないでおこう。

これで、「uusbd64.sys」が署名された。

まだ、続く。

« Windows7でテレビ(その1) | トップページ | Windows7でテレビ(その3) »

パソコン・インターネット」カテゴリの記事

コメント

コメントを書く

(ウェブ上には掲載しません)

« Windows7でテレビ(その1) | トップページ | Windows7でテレビ(その3) »