Linux on iPAQのインストール

2002.09.23

iPAQへLinuxをインストールしたときのメモです。PocketPCのバックアップから無線LANによる通信、X-Windowが起動する状態にする手順を説明します。

参考資料
1. 懸田剛, まえだひさこ, "iPAQで作る最強LinuxPDA," ISDB4-756-4127-7, アスキー, 2002
2. handhelds.org
3. Familiar v0.5.3 Installation Instructions



インストール先の環境
Compaq iPAQ H3630 (32MB RAM)
メルコ CF無線LANアダプタ WLI-CF-S11G
・Compaq IPPシリアルAuto-Sync(同期)ケーブル
ホストの環境
・AthlonXP 1900+ (LoquatXP)
・WidowsXP and Redhat Linux 7.2


1.ダウンロード
下記の3つのファイルをこの辺りからダウンロードします。
  ・ BootBlaster_1.18.exe
  ・ bootldr-2.18.01.bin
  ・ task-bootstrap.jffs2
2.ブートブラスタのインストール
・ ホスト(WindowXP)からiPAQ(PocketPCの環境)へBootBlaster_1.18.exeを転送する。

[注] ホスト(WindowsXP)とiPAQ(PocketPC)の間のファイル転送にはActiveSyncを使います。

3.PocketPCのバックアップ
・ iPAQ上でBootBlaster_1.18を実行する。
・ メニューの[Flash]-[Save Wince.gz Format]を実行する。
・ My Documents内にwince_image.gzが作成されます。
・ 作成されたwince_image.gzをホストへ転送。大切に保存する。

[注] ここでバックアップするのはWindowsCEの本体(購入時の状態)です。ユーザがインストールしたプログラムやデータは保存されません。それらはあらかじめ別にバックアップをとってください。

[注] この作業を行うにはバックアップファイルを作成するだけの空き容量が必要です。無事に終了した場合は、"Wince successfully saved to \My Documents\wince_image.gz. Please copy it to your desktop machine for safekeeping." とダイアログで表示されます。うまくいかない場合はプログラムやデータなどを削除して空き容量を増やしてください。

[注] 作成したwince_image.gzはiPAQをもとのPocketPC環境に戻すときに必要となりますので大切に保存しておいてください。

4.ブートローダのバックアップ
・ iPAQ上でBootBlaster_1.18を実行する。
・ メニューの[Flash]-[Save Bootldr]を実行する。
・ My Documents内にsaved_bootldr.binが作成されます。
・ 作成されたsaved_bootldr.binをホストへ転送。大切に保存する。

[注] 作成したsaved_bootldr.binはiPAQをもとの環境に戻すときに必要となりますので大切に保存しておいてください。

5.ブートローダのインストール
・ bootldr-2.18.01.binをiPAQに転送する。
・ iPAQ上でBootBlaster_1.18を実行する。
・ メニューの[Flash]-[Program]を実行する。
・ ファイルの選択メニューでbootldr-2.18.01.binを選択する。

[注] このインストールに失敗すると復旧不可能な状態になります。途中で電源が落ちたりしないよう、iPAQはバッテリー駆動ではなくACアダプタを使いましょう。また、インストールが成功するまで、リセットスイッチを押してはいけません。

[注] インストールが済むと"You appear to have a valid OHH Bootloader 2.18.1 in flush. To access this Bootloader on the serial port, hold the joypad center and reset."とダイアログで表示されます。

[注] 無事にインストールが終了した場合は、一応メニューの[Flash]-[Verify]を実行して見ましょう。上記と同じダイアログが表示されればOKです。

6.ブートローダの起動
・ カーソルボタンを押しながらリセット(iPAQの下部にあるリセットボタンをスタイラスペンの先で押す)する。
・ ペンギン(ARM Bootloader)が表示される。

[注] 単にリセットスイッチを押せばこれまで通りPocketPCが起動します。以前のブートローダはPockPCの起動はできなかったようですが、現在はPocketPCの環境でも、オリジナルのブートローダの変わりに使うことができます。

7.rootのインストール
・ ホストとiPAQをシリアルケーブルで接続する。
・ ホスト(Windows、Linuxどちらでも可)で通信ソフトを起動する。通信の設定は115200boud, 8bit, パリティなし。
・ iPAQでブートローダを起動する。ホスト側の通信ソフトでboot>が表示される。
・ boot> partition resetを実行する。
・ boot> load rootを実行。受信待ちになる。
・ ホストの通信プログラムからXMODEMを使ってtask-bootstrap.jffs2を転送する。
・ 転送終了後、
   verifying ...
   formatting ... done.
  と表示される。
・ boot> bootを実行する。
・ Linuxが起動される。(iPAQの画面はペンギンが表示されるだけ)
・ ホストからログインできます。(ユーザ名:root パスワード:rootme)

[注] 通信ソフトはXMODEMプロトコルでファイル転送できるものなら何でも良いでしょう。私はWindows上では秀Term Evolution、Linux上ではminicomを使いました。

8.PPPの設定
 ホストとiPAQをpppを使って通信できるように設定します。ここからはホストはLinuxとして説明します。
○ iPAQ側の設定
  ・/etc/modulesにppp_genericを追加を追加するために以下を実行する。
  echo "ppp_generic" >> /etc/modules
  ・参考に/etc/modulesと/etc/ppp/optionsの内容を書いておきます。

  [/etc/modulesの中身]
  apm
  h3600_ts
  sa1100-rtc
  h3600-sleeve
  h3600_generic_sleeve
  h3600-uda1341
  ppp_async
  ppp_generic

  [/etc/ppp/optionsの中身]
  -detach
  defaultroute
  nocrtscts
  lock
  lcp-echo-interval 5
  lcp-echo-failure 3
  usepeerdns
  /dev/ttySA0
  115200
  local
  asyncmap 0

○ ホスト(Linux)側の設定
・ /etc/ppp/peers/ipaqを作成する。

  [/etc/ppp/peers/ipaqの中身]
  -detach
  noauth
  nocrtscts
  lock
  user ppp
  connect '/usr/sbin/char -v -t3 ogin--ogin: ppp'
  /dev/ttyS1
  1115200
  192.168.100.101:192.168.1.10
(上記のIPアドレスは左がホスト側のIPアドレス、右がiPAQ側のIPアドレスです。シリアル通信のデバイス名は接続したポートにあわせてください。例えば、COM0に接続した場合は/dev/ttyS0。)

・ ホスト側で/usr/sbin/pppd call ipaqと実行するとPPPでiPAQと接続されます。

・ デフォルトでiPAQにはsshがインストールされています。ホスト側で
  % slogin -l root 192.168.1.10

とすればiPAQにログインできます。
・scpも使えるので、
  % scp (ファイル名) root@192.168.1.10:/root
とすればファイル転送ができます。
9.vimをインストール
 デフォルトではエディタが入っていなくて不便なのでとりあえずvimをインストールします。

・ ホストで下記の2つのファイルをここからダウンロードする。
   ・vim_5.7.028-1-fam1_arm.ipk
   ・libgpmg1_1.19.3-6_arm.ipk
・ iPAQへ転送する。
  % scp libgpmg1_1.19.3-6_arm.ipk root@192.168.1.10:/root
  % scp vim_5.7.028-1-fam1_arm.ipk root@192.168.1.10:/root
   (ファイルはiPAQの/rootに転送されます。)
・インストール
  # ipkg install libgpmg1_1.19.3-6_arm.ipk
  # ipkg install vim_5.7.028-1-fam1_arm.ipk
10.無線LANの設定
 メルコのWLI-CF-S11Gという無線LANアダプタの設定を行います。

・ /etc/modulesに下記を追加する。
  options orinoco_cs ignore_cis_vcc=1

・ /etc/pcmcia/configに下記を追加する。
  card "MELCO WLI-CF-S11G"
   manfid 0x026f, 0x030b
   bind "orinoco_cs"

DHCPが使えるネットワークであれば、上記の設定により、リセット後からネットワークが使えるようになります。ifconfigやpingなどで接続状態をチェックしてみてください。DHCPではなく固定アドレスで使う場合は/etc/pcmcia/network.optsなどを設定する必要があります。

ここでは、無線LANにより直接ネットワークに接続しましたが、ホストにIPマスカレードを設定して、ホスト経由(PPP)でネットワークに接続する方法もあります。その方法については、参考文献1を参考にしてください。
11.パッケージのインストール
 LANにつながれば、ipkgによってネットワークインストールができるようになります。

・ 例えばtask-completeをインストールする場合、下記のようにします。
  # ipkg update
  # ipkg install task-complete
task-completeパッケージをインストールすることで、X-Window環境がインストールされます。iPAQを再起動するとX-Windowの画面になります。とりあえずxcalibrateを実行(ホストのターミナルから実行)して、スタイラスペンの位置補正をしてください。

  # xcalibrate
  # xcalibrate -view > /etc/xcalibrate.conf




0.PocketPC環境に戻す
 Linuxをやめて、元のPocketPCに戻す手順を示します。

・ ホストとiPAQをシリアルケーブルで接続。
・ ホスト側で通信ソフトを立ち上げる。
・ カーソルボタンを押しながらリセット(iPAQの下部にあるリセットボタンをスタイラスペンの先で押す)。
・ 通信ソフトでboot>が表示される。
・ boot> partition resetを実行する。
・ boot> load rootを実行する。受信待ち状態になる。
・ ホストの通信ソフトでwince_image.gzをXMODEMで転送する。
・ formatting ... done.が表示されればOK。
−1.ブートローダを戻す(試していません)
 ブートローダをオリジナルに戻す手順を示します。私はまだ実際に行っていないので注意してください。

・ ホストとiPAQをシリアルケーブルで接続。
・ ホスト側で通信ソフトを立ち上げる。
・ カーソルボタンを押しながらリセット(iPAQの下部にあるリセットボタンをスタイラスペンの先で押す)。
・ 通信ソフトでboot>が表示される。
・ boot> load bootldrを実行する。受信待ち状態になる。
・ ホストの通信ソフトでsaved_bootldr.binをXMODEMで転送する。


戻る