« AD7960で作ったAD変換回路のノイズ特性 | トップページ | Cosmo-Zの汎用パルス処理回路が完成 »

2016.06.07

Windowsのドライバを自動インストールする方法

お客様から「Pocket JTAG Cableのドライバがインストールできません」という問合せをいただくことがあります。

Pocket JTAG Cableのドライバをインストールする手順は、USBでつないで、Windowsが「不明なデバイスとして認識」したら、デバイスマネージャを開いてドライバの更新を押すというものなのですが、さすがに不親切だし、どうにかしたいと思っていました。

やりたいことは、

  • Windowsに不明なデバイス(自社製品)を自動的に探してほしい
  • デバイスが挿入される前にドライバをWindowsに教えたい

ということです。

今まではデバイスを挿入しないと、ドライバのインストールができなかったので、卵が先か鶏が先かで困っていたのです。

そこで、当社のアルバイトの学生さんにINFとかPNFとか、CATとか一通り説明して、「自動インストール」の方法を調べてもらいました。

DriverStoreというディレクトリにドライバが入っていて、そこに入っているドライバは新規デバイスであっても自動的に探してくれるようなので、そこにコピーしてレジストリを書き換えたら何とかなるのでは・・と気が付いたのですが、さらに調べて、dpinst.exeというツールを見つけてくれました。

要するにこういうことです。

① infとsys、catと同じ場所にDPinst.exeを置いて、実行することでDriverStoreにステージされる

② ステージされた後にUSBのデバイスを抜き差しすると、デバイスマネージャーにすぐに認識される

③ DPInstとおなじところにxmlを置くことでインストーラーの画面構成を少し編集できる

XMLはこのような感じで書きます。

<?xml version="1.0"?>
-<dpInst>
<forceIfDriverIsNotBetter/>
<suppressAddRemovePrograms/>
<enableNotListedLanguages/>
<!-- US -->

-<language code="0x0409">
<dpinstTitle>PocketJtag-cable Driver Installer</dpinstTitle>
<welcomeIntro>This wizard will help you install PocketJtag-cable Driver.</welcomeIntro>
<eula path="Eula/Eula_US.txt" type="txt"/>
</language>
<!-- JP -->

-<language code="0x0411">
<dpinstTitle>PocketJtag-cable Driver インストーラ</dpinstTitle>
<welcomeIntro>このウィザードでは、PocketJtag を動作させるために必要なソフトウェア ドライバをインストールします。</welcomeIntro>
<eula path="Eula/Eula_JP.txt" type="txt"/>
</language>
</dpInst>

/Eula/以下のtxtなどにソフトウェアが利用規約を書くと同意画面で文言を表示させることができるようです。

必要なければ、別に、XMLは書かなくても良いようです。

DPInstは32bit版と64bit版があるようなので、OSに合わせて使い分けなければなりません。

実際にやってみましょう。

Dpinst_1

このEXEをつっつきます。

Dpinst_2

おっ、ダイアログが開いた。

Dpinst_3

なるほど。使用許諾を出せるというわけですね。XMLを書かないと、この画面がスキップされます。

次へを押すと、

Dpinst_4

おおっ!

Dpinst_5

実際のUSBのデバイスをつながなくても、ドライバがインストールできたではないですか!!

こうやればよかったのか~



|

« AD7960で作ったAD変換回路のノイズ特性 | トップページ | Cosmo-Zの汎用パルス処理回路が完成 »

コメント

コメントを書く



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




« AD7960で作ったAD変換回路のノイズ特性 | トップページ | Cosmo-Zの汎用パルス処理回路が完成 »