玄箱単体でハックキットをインストール


先日、インストール前の玄箱にログインし、 ハックキットのインストールに使えそうな一通りのツールが そろっていることを確認した。

唯一(?)ないのが、カーネルモジュールである。
カーネルモジュールは、玄箱付属の CD-ROM に収められている image.zip から抜き出すことにする。

パーティションを切る

玄箱にログインし、パーティションを切る。
先日は、お任せパーティションだったので、/ が 128MB しかなかったが、 これでは足りないので、もう少し増やすことにする。
といっても実験に使っている HDD は FUJITSU M1614TAU (1091MB) なので、 / に 800MB, swap に 128MB (こんなに要らないが)、 残りを /mnt に割り当てることにする。
# mfdisk -c /dev/hda

Command (m for help): p

Disk /dev/hda: 16 heads, 63 sectors, 2114 cylinders
Units = cylinders of 1008 * 512 bytes

   Device Boot    Start       End    Blocks   Id  System

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-2114, default 1):
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-2114, default 2114): +800M

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 2
First cylinder (1627-2114, default 1627):
Using default value 1627
Last cylinder or +size or +sizeM or +sizeK (1627-2114, default 2114): +128M

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 3
First cylinder (1888-2114, default 1888):
Using default value 1888
Last cylinder or +size or +sizeM or +sizeK (1888-2114, default 2114):
Using default value 2114

Command (m for help): t
Partition number (1-4): 2
Hex code (type L to list codes): 82
Changed system type of partition 2 to 82 (Linux swap)

Command (m for help): p

Disk /dev/hda: 16 heads, 63 sectors, 2114 cylinders
Units = cylinders of 1008 * 512 bytes

   Device Boot    Start       End    Blocks   Id  System
/dev/hda1             1      1626    819472+  83  Linux
/dev/hda2          1627      1887    131544   82  Linux swap
/dev/hda3          1888      2114    114408   83  Linux

Command (m for help): w
The partition table has been altered!

Syncing disks.
#

仮フォーマット、仮マウント

ここで、image.zip を /tmp に ftp しようと思ったが、
# df
Filesystem           1k-blocks      Used Available Use% Mounted on
/dev/ram0                 9677      5496      4181  57% /
と4MB しかあいてないことに気が付いた。 image.zip は、20MB もあり、到底無理。
カーネルモジュールと、ppc_uartd 関連を抜き出すためだけに 一度フォーマット、マウントする。
# mkfs -j /dev/hda1
hda1 を /tmp/root にマウントする
# mkdir /tmp/root
# mount /dev/hda1 /tmp/root
# df
Filesystem           1k-blocks      Used Available Use% Mounted on
/dev/ram0                 9677      5506      4171  57% /
/dev/hda1               806560     16428    749160   2% /tmp/root
#

image.zip を PC から ftp で転送

Windows PC から、CD-ROM のトップにある image.zip を 玄箱の /tmp/root に転送する

image.zip の展開

# cd /tmp/root
# ls
image.zip   lost+found
# unzip image.zip
Archive:  image.zip
  inflating: tmpimage.tgz
# tar zxvf tmpimage.tgz
./
./bin/
 :
 :

カーネルモジュールと、ppc_uartd 関連の抜き出し

ハックキットの getlinkstationfiles.sh を玄箱の /tmp に ftp で転送し、 実行する。
# sh getlinkstationfiles.sh
usr/sbin/ppc_uartd
etc/rc.d/init.d/ppc_uartd
lib/modules/
lib/modules/2.4.17_kuro-box/
lib/modules/2.4.17_kuro-box/kernel/
lib/modules/2.4.17_kuro-box/kernel/drivers/
lib/modules/2.4.17_kuro-box/kernel/drivers/block/
lib/modules/2.4.17_kuro-box/kernel/drivers/block/nbd.o
ん?
# ls -l *.gz
-rw-r--r--    1 root     root            0 Jan 19 14:08 kernelmodules.tar.gz
-rw-r--r--    1 root     root            0 Jan 19 14:08 ppc_uartd.tar.gz
この tar は(?)gzip できないようである。
tar の問題か、gzip の問題か、環境の問題か

仕方がないので、getlinkstationfiles.sh を vi で修正し、 gzip せずにアーカイブを作るようにし、実行。

再フォーマット、再マウント

# mke2fs -j /dev/hda1
# mount /dev/hda1 /tmp/root
# mkdir /tmp/root/mnt
# mount /dev/hda3 /tmp/root/mnt
# mkswap /dev/hda2

ハックキットを PC から ftp で転送

玄箱の /tmp/root/mnt に PC からハックキットのアーカイブ hackkit-1.0.tar.gz を転送する。

ハックキットの展開

# cd /tmp/root
# tar zxvf mnt/hackkit-1.0.tar.gz

カーネルモジュールと、ppc_uartd 関連の展開

# cd /tmp/root
# tar xvf /tmp/kernelmodules.tar
# tar xvf /tmp/ppc_uartd.tar
# cp etc/rc.d/rc2.d/S95ppc_uartd etc/rc.d/rc3.d
これで出来上がりのはず。

リブート

玄箱を再起動して、ログインできることを確認しておしまい。
 玄人志向 玄箱をハックしよう  → 玄箱を立ち上がるようにする
Copyright (C) 2004 Yasunari Yamashita. All Rights Reserved.
yasunari @ yamasita.jp
山下康成京都府向日市