2005年11月13日

BartPE の作り方 #8

さて、BartPE の作り方 #6 でドライバの追加方法を書きましたが、
USB と IEEE1394 については別途ドライバの組み込みが必要なようです。
私自身は USB メモリなどをほとんど使わないため
# 基本的にネットワーク利用の人なので・・・
たいして必要を感じていないのですが、
使いたいと思ったときに使えないと悲しくなるので、
そのための plugin を導入しましょう。

USB & IEEE1394 Plugin for WinPE

すでに導入しようと試した人はわかるかもしれませんが、
この plugin にはいろいろと不備が多かったりします。

1. Driver 群を現状の system から持ってくるため、環境によってファイルがない
2. レジストリを現状の system から作成するための bat ファイルにバグがある

1. は inf ファイルを読める人は必要なファイルを OS の
インストールメディアから準備して、inf ファイルを適宜編集すればいいのですが、
実はこれにわなが潜んでいたりします。
ポイントは

インストールメディアの i386 フォルダ配下のファイルで最後が "_" で終わるファイルは、
実は cab 圧縮されているという点。
(リネームだけではだめですよー)
そして、drivers.cab にあるファイルもあるという点。
そしてそして、sp2.cab にあるファイルもあるという点。
さらに、ファイルによっては sp2.cab の中身のファイルで
上書きされるべきものがあるため、sp2.cab についても確実に調べる必要がある点。

ファイルがなかった時は上の点を注意しながら、
ファイルを準備する必要があるのです。


2. についてはレジストリ作成 bat のエラー出力が nul (/dev/null と一緒) に
捨てられているので、そもそもバグに気づきにくいという点がかなりのワナです。

この問題は
「環境によってあるレジストリキーが存在せず、
そのために、エクスポート先の t1.txt や tt.txt が作成されないことがあり、
最終的なレジストリファイルが 0 バイトになることがある」
という結果をもたらします。
結果、期待されているレジストリファイルを作成できない可能性がかなり高く、
必ず bat ファイルを修正してから実行する必要があります。

バグのポイントは 9〜12 行目の
if exist t1.txt del t1.txt
if exist tt.txt del tt.txt
regedit -e "tt.txt" "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\1394"
regedit -e "t1.txt" "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\SBP2"
部分で、下 11〜12 行でレジストリキーが存在しなかったときを考えればわかります。

上記は以下のように修正するのがよいでしょう。
copy nul t1.txt >nul 2>&1
copy nul tt.txt >nul 2>&1
regedit -e "tt.txt" "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\1394"
regedit -e "t1.txt" "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\SBP2"


さて、わかるかたは上記のことを気をつけながら実行するのもいいですが、
わからない方もいるでしょうし、
そもそも私が面倒なので、作業を自動実行するものを準備してみました。
& の入ったファイル名をハンドルするのが面倒なので、
手抜きで bat と inf のファイル名を変えますが、問題ありません。
# plugin のことがわかってる方は納得のはずです。
まぁ、これ以上のことはファイルの中身を読んでください。

バグがないとは言い切れませんが、
私を信用してくださる方は以下のリンクからを
patch4usb1394.lzh をダウンロードして、
USB & IEEE1394 Plugin for WinPE と同じフォルダに展開した後、
patch.cmd をダブルクリックで実行すれば OK です。
# もし patch4usb1394.lzh にバグをみつけたときは教えてください。

patch4usb1394.lzh

本来この plugin では "usb & 1394 User Reg Extract.bat" を実行する必要がありますが、
patch.cmd の中で実施しているので、patch.cmd だけを実行すれば十分です。


というわけで、上記で、
USB & IEEE1394 Plugin for WinPE (with Patch)
の導入が完了です。

Posted by k-square : 2005年11月13日 18:33 | Technique
コメント
コメントする









名前、アドレスを登録しますか?