|
以前の物はslinkの時の物で内容が古くなってしまいました。
もっと楽なインストール手順が開拓されましたので、修正しました。
ざっと手順を説明すると、
1. Debianのbase systemをflashカードに展開する。
2. FlashにPocketLinuxのkernelを入れる。
3. rdevする。
4. liloする。
こんなものです。
[もうちょっとましな説明]
うすいの使っているThinkPad535の環境では /dev/hda1 debianシステム(普段使っているLinux) /dev/hda2 windows /dev/hdc1 pcmcia(Flash ATA, /mnt/cardにマウントされる) となっています。 自分の環境にあわせて読み替えてください。 |
[母艦側の準備]
・pcmcia-csが動作していてフラッシュカードが認識されることを確認。・base2_2.tgzを取得しておく。
Debianのベースシステムです。
ftp://ftp.ring.gr.jpなどからダウンロードしてください。
main/disks-i386の中に入っています。・/dev/necmgが存在するかの確認
初めてインストール際には間違いなく無いはずなので、
mknod /dev/necmg b 78 83
mknod /dev/necmg c 78 83←こちらは間違い(^^;
として作成しておきます。
これは、フラッシュカードにブートマーカーを付けるためだけに必要なもので、それ以外の
アクセスは一切しません。・kernel-image-2.2.16-plinux_Custom.1.00_i386.deb
自分でカーネルとパッチをダウンロードして、そちらで構築した物を使用するというなら
必須ではありません。
1. フラッシュカードのfdiskとformatPCへのインストールと同様にfdiskします。
hdc1 swap 約8MB
hdc2 ext2 約88MBとしました。hdc1/2というのは母艦上のデバイス名で、PocketLinux上では
hda1/hda2
になります。
確保した後は忘れずに、mkswap /dev/hdc1
mke2fs /dev/hdc2 -b 1024とフォーマットしてください。
mke2fsでの"-b 1024"は、ブロックサイズの設定で、少ないストレージを少しでも無
駄に使わないようにとの 悪あがきです(^^;
2. ベースシステムの構築フラッシュカードをマウントしベースを展開します。
mount /dev/hdc2 /mnt/card
tar xvfz base2_2.tgz -C /mnt/card展開しただけの状態でブートしてもconfigされていない!とエラーメッセージが出て
しまいますので、rm /mnt/card/sbin/unconfigured.sh
として、適切な設定が された事にします。
fstab, lilo.confを設定します。
母艦側のfstab,lilo.confをフラッシュカードにコピーして編集するとラクです。
編集する際には、fstabのデバイス名は母艦上でのフラッシュカードのデバイス名
ではなく、hdaxになるという事に注意して編集してください。
lilo.confは一つのファイル上に、母艦上でのデバイス名とMpbileGearでの
デバイス名が混在しますので気を付けてください。
後述のliloのコマンドパラメータの関係から、lilo.conf内のディレクトリも
/mnt/cardにchrootした場合のパスとなります。
bootの項が母艦側でのデバイス、その他の項がMobileGearでブートしたときの
デバイ ス名となります。さらに、
disk = /dev/hdc
bios=0x80
sector=32
heads=8
cylinders=732という項を追加します。
sector以降の項は、使用するカードによって違いますので、fdisk /dev/hdc -lで出
力されるメッセージを参照してください。
この項の設定を忘れると、liloが凄い勢いで数値を表示します。
実際筆者はすっかり忘れていて、思いっきりハマりました(^^;
実は、この項の代わりに、"linear"という一文を入れておけば、別にこんな面倒なことを
しなくても良いらしいのですが、試したこと無いのでそんないい加減な事はかけません(^^;<必要ないかもしれませんが、うすいの設定したlilo.conf>
boot=/dev/hdc
map=/mnt/card/boot/map
install=/mnt/card/boot/boot.b
prompt
timeout=50
disk=/dev/hdc
bios=0x80
sectors=32
heads=8
cylinders=978
image=/mnt/card/boot/vmlinuz-2.2.16-plinux
label=linux
root=/dev/hda2
read-only
次に、ホストネームの設定をします。
echo mob > /mnt/card/etc/hostname
mobがホスト名としてそのまま使用されます。
3. カーネルパッケージのインストールdpkg --root=/mnt/card -i kernel-image-2.2.16-plinux_Custom.1.00_i386.deb
とすることで、カーネルをフラッシュカード内にインストールできます。
気を付けるべき点としては、・boot floppyは作成しない。
・/etc/lilo.confを使用してのインストールは行わない。
・lilo.confの作成は行わない。です。インストールする際のメッセージにはすべて"No"と答えます。
内容が前後してしまいますが、 lilo.conf中の"image = /vmlinuz"はリンクが張られていないので、" image = /boot/vmlinuz-2.2.16-plinux"
と書き換えます。
ちなみに、同様に"--root=/mnt/card"というオプションを付けることで、他のパッケ
ージも容量的に厳しいフラッシュカードにコピーすることなくインストールできます 。
追補:インストール元がDebianでない場合には、alienでtgzにするなりしてインストールしても、良いと思います。ここでは、カーネルとlibをフラッシュ上にコピーする以外のことはしていません。
それでも、パッケージとしてインストールしたい場合には、ln -s kernel-image-2.2.16-plinux_Custom.1.00_i386.deb /mnt/card/kernel-image-2.2.16-plinux_Custom.1.00_i386.debなどとすればインストールできるかと思います。( 未確認)chroot /mnt/card
dpkg -i /kernel-image-2.2.16-plinux_Custom.1.00_i386.deb
4. liloのインストール、ブートマーカーの設定liloをインストールします。
lilo -r /mnt/card
設定は終わっているので、これだけです。
さらに、 ブートマーカーを書き込むために
rdev /dev/hdc2 /dev/necmg
とします。
あとは、
umount /dev/hdc2
cardctl eject 0としてカードを抜きます。
不思議なことに、筆者の環境ではcardctl eject 0がresource busyとメッセージが
出てうまくいかず、無理矢理引っこ抜いたところコンソールがrespawnされてしまった
りと、怪しい挙動を見せました。
5. ブートすべての手順は終了しました。
あとは、MobileGearのカードスロットに挿して、電源を入れるだけです。
無事に ペンギンのロゴを見ることができましたか?"LILO"の文字も見ることなくMS-DOSに行ってしまう場合には、ブートマーカーがうまく
書き込まれていません。ブート画面をよく見ていると、やたらとwarnigやらerrorを見たと思いますが、そのあたりは
debianのインストーラーが何を設定しているかという挙動を把握していないためです。
ソースコードがあるので調べれば良いだけなんですけどね(^^;うまくいけばこれだけの手順でブートまでこぎ着ける事ができます。