iPAQのPocket PC 2002 ROMアップグレードに失敗した人のために.
[ご注意]以下はたまたま私がうまくいったということで,
これを参考にすることで発生するいかなる不利益についても,
当方は一切責任を負いかねますので,あらかじめ御了承下さい.
iPAQのアップグレードに失敗してしまった人で,
- FlashROMのファームウェアをバックアップをした.
(compaqのサイトからダウンロードしてきたROM
imageでも可能かもしれない)
- パロットモードにはなる.
(アクションボタンを押している間にリセットボタンを押して離すと鸚鵡の絵がでてくる)
- iPAQ用シリアルケーブルを持っていてパーソナルコンピュータと接続できる.
- 33MB以上のCFカードを持っている.
- CFカードを使用できるFreeBSDやLinuxが稼働するコンピュータがある.
という人は,復旧する望みがあります.以下にその方法を示します。
- iPAQにCFメモリカードを挿す.
- iPAQとPCをシリアルケーブル(クロス)で接続する.
- PC側で通信ソフトウェアを起動し通信条件を
- Baud rate: 115200
- Data: 8bit
- Parity: none
- Stop bit: 1bit
- Flow control: none
に設定する.
- iPAQの電源を入れ,アクションボタンを押しながらリセットボタンを押して,パロットモードにする.
- PC側の通信ソフトにプロンプトがでてくるので, r2ca32 と入力する.
これにより,CFメモリカードにROMのバックアップができます.(結構時間がかかります)
もちろん,壊れたROMデータがバックアップされます.この壊れた部分をバックアップファイルを使って書き換えようというわけです.
(以下はUNIXで操作しますが,これは私がWindowsでやる方法を知らないだけです)
- UNIX側にPPC2002インストール時に作ったバックアップファイル(IPAQROM179.nbfとする)をコピーしておく.
(もしかすると,compaqのサイトにあるロムイメージファイルでもいけるかもしれませんが,こわいので試していません.)
- CFをUNIXコンピュータに接続する.(私はFreeBSD4.3を使ったので,以下/dev/ad2として認識されたものとします)
- バックアップファイルの頭の32バイトは不要なので,削除する
dd if=IPAQROM179.nbf of=ce.img bs=32 skip=1
- CFにce.imgを書き込む.この時CFの頭の1024バイトはヘッダなので飛ばす.
dd if=ce.img of=/dev/ad2 bs=1024 seek=1
- CFをiPAQに挿し,アクションボタンを押しながら,リセットボタンを押す.
自動的に復旧をが始まり,CFのデータがiPAQのFlashROMに書き込まれます.
ヘッダのチェックサムと後から書き込んだデータが合わないのでチェックサムエラー
がでますが,これでROMが元にもどりました.
- ふつうにリセットする.
私のところでは以上で復旧できましたが,わざわざシリアルケーブルを買いに行くとか,
このためにPCにLinuxをインストールするとかいうひとは
素直にCompaqのサービスにお願いするほうがよいでしょう.
compaqのサイトのnbfファイルでうまく行ったとか,
CDROMからPPC2002のnbfファイルを引き出して書き込んでやったとか,
先頭の1024バイトのチェックサムを正しくする方法を知っているとか,
Windowsのバイナリエディタでも同じことができるよ,などの
情報をお持ちの方はメイルください。
参考文献
- http://www.tagashira.com/linux_5.htm
- http://www.handhelds.org/z/wiki/Restoring%20Windows%20CE%20from%20the%20Compaq%20iPAQ%20Update