PT1/PT2ドライバに署名の無い問題を解決するには


【This page is bogus】

アースソフトのドライババージョン2.1から、公式に署名が付いたので、この問題は無くなりました(2012/8/3より)

まえがき

PT1/PT2のドライバにはMicrosoftの認めた認証局の署名が付いていないのでWindowsに怒られる。怒られるだけならいいのだが、Windows Vista/7 の 64bit版だと動作しない。もちろん公式に署名を付けてもらうには、信用も無ければ、金も無い。これを手元でad hocに解決する方法の備忘録。

ドライバが動作していない状態のデバイスマネージャ表示

ダメな状態の確認

普通にインストールするとダメなことは、デバイスマネージャで見ると図のようにPT2のドライバが動作していないことが確認できる。

F8押下によるWindows起動時メニュー

Windows boot時に指定する方法

さしあたりの解決として、Windows起動時にF8を押し(右図のような画面を出し)ドライバの署名を強制しないようにすればPT2は動作する。(当然ながら全てのドライバが署名無しで動いてしまうので、Windowsの設計的には(古いWindows並に)セキュリティが下がった状態になる。)
この方法では、Windowsを起動する度にF8操作が必要となる(し、そもそも良い方法ではない)。ちなみに、起動時のF8操作作業を自動化するフリーソフトもあるがオススメできないので名前の紹介もしない。^^;

ドライバが動作している状態のデバイスマネージャ表示

動作状態の確認

この状態(動作している状態)をデバイスマネージャで見ると図のようになる。2つ見える。

bcdedit で指定する方法

この方法も、Windows boot時にF8で指定するのと同様、オススメではないが、bcdedit /set testsigning on しておけば、再起動後テストモードとなり動く。テスト後は off にするのをお忘れなく。

ドライバに自己署名を付ける方法

なんかこんな感じでやったのですが、よくわかっていません。今度公式ドライバがバージョンアップした時にでもまたやってみよう..
  1. 既にPT2のドライバがインストールされていたらアンインストールする。デバイスマネージャでドライバファイルの削除もする
  2. makecertなどの署名関係のコマンドが無ければ、Windows SDKを入れる(もし既に入っていれば C:\Program Files\Microsoft SDKs\Windows\バージョン名\Bin\ あたりにコマンドが入っている)。
    1. .NET Framework 3.5 SP1 が入っていることを確認し、無ければ入れる
    2. windows SDK を入れる(ファイル名: winsdk_web.exe)。ちょっと見付けにくいが、googleで site:microsoft.com "windows sdk for .NET Framework 3.5" で検索すれば見付かる。
    3. ダウンロードした winsdk_web.exe を管理者権限で実行する(インストールにはとても時間が掛かる)
  3. 公式ドライバの実行ファイル(PT2-Windows-Driver-200.exe)からドライバ類を取り出すため、Universal Extractor を入手する。
    Universal Extracotrを「管理者として実行」し、PT2-Windows-Driver-200.exe を読み込む。実行して出来た {tmp} フォルダに、windrvr6_EARTHSOFT_PT2_64.sys など各種ドライバが出来る。
  4. さっき入れたWindows SDKに入っているCMD Shellを「管理者として実行」する。
  5. cd C:\PT_Drivers
  6. {tmp}にできたファイルのうちいくつかを C:\PT_Drivers\ にコピー(このフォルダ名は例)
    move windrvr6_EARTHSOFT_PT2_64.sys C:\PT_Drivers\windrvr6_EARTHSOFT_PT2.sys
    move windrvr6_EARTHSOFT_PT2_driver.inf C:\PT_Drivers
    move windrvr6_EARTHSOFT_PT2_device.inf C:\PT_Drivers
  7. makecert -sv windrvr6_EARTHSOFT_PT2.pvk -a sha1 -eku 1.3.6.1.5.5.7.3.3 -r -ss Root -len 1024 -sr localmachine -n CN="適当な証明機関名" windrvr6_EARTHSOFT_PT2.cer -- makecertの説明はこちら
    実行すると「秘密キーのパスワードの生成」画面が出るので、パスワード1を決めて入力
  8. X.509証明書からソフトウェア発行元証明書を作成する(本来はVeriSignなどに発行してもらうもの)
    cert2spc windrvr6_EARTHSOFT_PT2.cer windrvr6_EARTHSOFT_PT2.spc
  9. 作成する.pfxを保護するパスワード2を決めて、pvk2pfx -pvk windrvr6_EARTHSOFT_PT2.pvk -spc windrvr6_EARTHSOFT_PT2.spc -pfx windrvr6_EARTHSOFT_PT2.pfx -po パスワード2
  10. ドライバににデジタル署名を付ける
    signtool sign /f windrvr6_EARTHSOFT_PT2.pfx /p パスワード2 /v windrvr6_EARTHSOFT_PT2.sys
    成功すると "Successfully Signed: windrvr6_EARTHSOFT_PT2.sys" と表示される
  11. 作った署名を証明書ストアにインストールする
    windrvr6_EARTHSOFT_PT2.pfx を右クリックし「PFXのインストール」を選ぶ。「秘密キーのパスワード」を聞かれるので、パスワード2を入れる。「証明書ストア」の選択では、「参照」から「物理ストアを表示する」にチェックを入れ、「信頼されたルート証明機関」の「レジストリ」を選択。セキュリティの警告が出るので無視して最後まで行くと「正しくインポートされました」ダイアログが出て終了
  12. ドライバのインストールをする
    デバイスマネージャより「レガシーハードウェアの追加」を選び、「一覧から選択したハードウェアをインストールする」「すべてのデバイスを表示」「ディスク使用」で C:\PT_Drivers フォルダを指定する(windrvr6_EARTHSOFT_PT2_driver.infがあるフォルダ)。セキュリティ警告を無視してインストール。この時点でデバイスマネージャを見ると、Jungo には PT2が見えるが、ビデオには見えない。
    PT2公式ドライバ(.exe)を普通にインストールする。セキュリティ警告を無視してインストール。この時点でデバンスマネージャを見ると、ビデオにも PT2が見える。
    ちなみに、インストール後にデバイスマネージャからPT2ドライバのプロパティを見ると「デジタル署名者:デジタル署名されていません」と表示される。 何だか良くわかんないけど、動いたので良しとしよう。

ボランティアのドライバを使う方法

自己署名を付ける方法が「面倒でやってらんねー」という人は、DTV関連ツールダウンロード のPT1/2アップローダにある「PT1/2 Windows64bit署名問題対策ドライバ」(up0255.rar)を入手すれば簡単。展開したら、デバイスマネージャで「レガシ ハードウェアの追加」「一覧から選択したハードウェアをインストールする」「すべてのデバイスを表示」「ディスク使用」で指定すれば良い。

アースソフトPT1/PT2の使い方のページに戻る