正確には、コンパクトフラッシュを扱える Linux マシンが手元にない場合の構築方法である。 最低限 Psion および CF カード上にに必要なファイルを導入する方法がなくてはならない。 ・・・当然ではあるが。
なおこの文書は最初の記述者によって実際に検証されたものではなく、 あくまでもこれで可能なはずだ、という「思い込み」で記述されている。 従って文書的にバグが徘徊している可能性が高いものである。 バグ報告によってより実用性の高いものになることが期待される。
注意すべきなのは、kernel との相性である。 stable-* な Glued イメージは不具合があるので、それ以外のものを使用すること。
Arlo を Psion に install する。arlo*.tar.gz を伸長し、Arlo.sis ファイルを Psion にコピーしたのち、INSTEXE.EXE を Psion にコピー、実行する。
すると Arlo.sis のアイコンが変わり、これを実行できるようになる。 C: か D: のどちらでも選んだほうで install 可能。
次に glued kernel image を uncompress する。
glued-*、initrd-*.gz を Psion の C:\ に image、initrd.gz という名前にして導入する。% gunzip glued-*
ここで次のようにタイプする:Loading logical device Opening the channel Commands are: ... Option buffer at address XXX Memory description at address YYY > _
さらに以下のメッセージが現れる。l image
また入力。Opening file image Succeeded File size XXX Loading XXX bytes to address YYY Read XXX bytes No pages = ZZZ > _
またメッセージ:l initrd.gz
最後に:Opening file initrd.gz Succeeded File size XXX Loading XXX bytes to address YYY Read XXX bytes No pages = ZZZ > _
と入力することで、Linux がブートする。b
なお、Psion のデフォルトの OS である EPOC に戻る古典的 (呪術的?) 方法として、
と入力後、蓋を閉じ、サブバッテリの蓋を開けた中にあるリセットボタンを押し、 左右の shift を同時に押しながら power on すれば、EPOC がビープを一度鳴らしたのちに立ち上がってくるというものがある。sync sync sync
カードには mkswap のバイナリを導入しておく。initrds3 を使ってブート後、 /sbin に cp し、カード上のバイナリは rm する。
コンパクトフラッシュのデバイスは /dev/hda になる。これを fdisk する。
パーティションの方針は、例えば、
など。/dev/hda1 vfat 15MB 以上 (ここに base2_2.tgz を導入できるサイズが必要) /dev/hda2 ext2 あるだけ /dev/hda3 linux-swap 8MB 以上
fdisk のコマンドは、p でパーティション情報の確認、 n で新しいパーティションの作成である。
具体的には n コマンドを入力し、p (primary partition) を選択、 パーティション番号指定、先頭シリンダの指定、 最終シリンダの指定 (パーティションサイズの指定: MB 単位で指定できる) 、 という作業を繰り返すことになる。なお、デフォルトでは全てのパーティションは ext2 に指定されるので、最後に t コマンドでパーティション ID を変更しておくこと。 上記の例では最初のパーティションを 4 (vfat) に、最後の swap 領域を 82 に変更する。 なお Linux native は 83。
確認したら w コマンドでディスクにパーティション情報を書き込み、fdisk の作業は終了 (q コマンド)。
パーティションを切ったら、次は Linux ファイルシステムを作る。
ブロックサイズは必ず確認すること。# mke2fs /dev/hda2 block-size # mkswap /dev/hda3 block-size
/dev/hda1 はリブート後、必ず EPOC OS 側でファイルシステムをフォーマットしておくこと。 このフォーマットは /dev/hda1 だけを認識して実行するはずである。
この後、可能であれば /2 以下のファイルを若干修正する。# mkdir /1 # mkdir /2 # mount -t vfat /dev/hda1 /1 # mount -t ext2 /dev/hda2 /2 # tar zxpf /1/base2_2.tgz -C /2
内容は、
# <device> <mountpoint><filesystemtype><options> <dump> <fsckorder> /dev/hda2 / ext2 defaults 1 1 /dev/hda3 none swap defaults 0 0 /dev/hda1 /mnt vfat noauto 0 0 none /proc proc defaults 0 0
ここから先は神木氏作成のカーネル、イメージでブートのこと。 Klaasjan 氏の initrd3 とはお別れ。
Arlo を普通に C:\ にインストールする。System folder を見えるようにする。
EPOC 側で C:\System\Libs を D:\System\Libs を作成してコピー。 さらに D: のカレントディレクトリに Arlo.exe、kernel、ramdisk をコピー。 ramdisk は今後、基本的に使用しないが、修正その他で使用する可能性がある。
リブートする。この時、Arlo.exe を実行したあと、手順が変わる。
これでブートすれば /dev/hda2 に制御が渡され、Debian ベースの Linux システムが使用できるようになる。l d:kernel o root=/dev/hda2 b
/etc/fstab に注意すること。
その後、残り容量に注意しながら dpkg したり、bzip2 を入れ神木氏のバイナリを入れるなどして好みのシステムを構築すればよい。 Debian の base2_2.tgz を導入した場合は、libcanna、procps など、いくつかの Dibian/ARM のバイナリを入れ替える必要あり。神木氏が公開されている。