IO-DATAのUSL-5Pという機械が、 ネットワークに繋がるLinuxマシンであるというのを聞いて、 遊んでみることにしました。
ここではシリアルコンソールなしで、 動かすことにトライしてみます。
ネジは裏に一本のみで、後は爪(合計3個所)で引っ掛けてあるだけです。
この爪のせいで、ちょっと開けにくいかも知れませんが、
少しねじるようにしてみるとまだ開けやすいです。
まあ自己責任の遊びなので、壊したとしても
それはそれでしかたないとあきらめましょう。
開けると、中身の基盤にCFのコネクタがあり、 (銀色無印刷の)CFメモリが刺さっています。 CFのメモリはテープで固定してありますが、気にせず外します。
このCFのメモリカードの中に、Linuxのカーネルや 必要なファイルを納めたファイルシステムがあるようです。 これを直接いじるのはちょっと怖いので、 別のCFメモリにコピーして、そちらをいじることにします。
# dd if=/dev/sda of=./dd.dat
# dd if=./dd.dat of=/dev/sda
これで、オリジナルを差していたときと同様に動いたら、 とりあえずコピーは成功と言うことです。
次は、これにリモートログインできるようにしてみましょう。
これでroot権限が得られましたので、何でもし放題です。 (設定にはviもありますし、 ファイルの取り込みにはwgetがつかえるはずです)
64MBのファイルシステム、 しかも空き容量が5MB程度では満足できないという人は、 もう少し遊んでみましょう。
# fdisk /dev/sda コマンド (m でヘルプ): p Disk /dev/sda: 512 MB, 512483840 bytes 16 heads, 62 sectors/track, 1009 cylinders Units = シリンダ数 of 992 * 512 = 507904 bytes デバイス ブート 始点 終点 ブロック ID システム コマンド (m でヘルプ): n コマンドアクション e 拡張 p 基本領域 (1-4) p 領域番号 (1-4): 1 最初 シリンダ (1-1009, 初期値 1): 初期値 1 を使います 終点 シリンダ または +サイズ または +サイズM または +サイズK (1-1009, 初期値 1009): 初期値 1009 を使います コマンド (m でヘルプ): p Disk /dev/sda: 512 MB, 512483840 bytes 16 heads, 62 sectors/track, 1009 cylinders Units = シリンダ数 of 992 * 512 = 507904 bytes デバイス ブート 始点 終点 ブロック ID システム /dev/sda1 1 1009 500433 83 Linux コマンド (m でヘルプ): w 領域テーブルは交換されました! ioctl() を呼び出して領域テーブルを再読込みします。 ディスクを同期させます。
# mke2fs -j /dev/sda1
# mount /dev/sda1 /mnt/cf(フォーマット後リブートや抜き差しするなどして、 既にマウントされている場合は、 一旦アンマウントしてマウントしてください)
# umount /dev/sda1 # mount /dev/sda1 /mnt/cf
# cd /mnt/cf # tar jxpf /tmp/base-sh4-for-landisk-20050712.tar.bz2
usl-5p
127.0.0.1 localhost usl-5p
# Used by ifup(8) and ifdown(8). See the interfaces(5) manpage or # /usr/share/doc/ifupdown/examples for more information. iface lo inet loopback auto lo iface eth0 inet static address xx.xx.xx.xx netmask xx.xx.xx.xx broadcast xx.xx.xx.xx gateway xx.xx.xx.xx auto eth0
search xxxxx.xx.xx nameserver xx.xx.xx.xx
8139cpと言う行を追加する。
sshと言う行を追加する。
# ssh-keygen -q -t rsa1 -f /mnt/cf/etc/ssh/ssh_host_key -C '' -N '' # chmod 600 /mnt/cf/etc/ssh/ssh_host_key # chmod 644 /mnt/cf/etc/ssh/ssh_host_key.pub # ssh-keygen -q -t rsa -f /mnt/cf/etc/ssh/ssh_host_rsa_key -C '' -N '' # chmod 600 /mnt/cf/etc/ssh/ssh_host_rsa_key # chmod 644 /mnt/cf/etc/ssh/ssh_host_rsa_key.pub # ssh-keygen -q -t dsa -f /mnt/cf/etc/ssh/ssh_host_dsa_key -C '' -N '' # chmod 600 /mnt/cf/etc/ssh/ssh_host_dsa_key # chmod 644 /mnt/cf/etc/ssh/ssh_host_dsa_key.pub
/dev/hda1 / ext2 defaults,errors=remount-ro 0 1 proc /proc proc defaults 0 0
1:2345:respawn:/sbin/getty 38400 ttySC1を加える。
# umount /mnt/cf
とりあえずこれでカーネル以外の部分の準備ができました。
# mount rootfs on / type rootfs (rw) /dev/root on / type ext2 (rw) /proc on /proc type proc (rw) /dev/ram0 on /mnt/ram0 type ext2 (rw) /dev/ram1 on /mnt/ram1 type ext2 (rw) usbdevfs on /proc/bus/usb type usbdevfs (rw) /dev/sda1 on /mnt/usb1 type ext2 (rw,nosuid,nodev,noexec)
# cp -a /boot/* /mnt/usb1/boot/
# cp -a /lib/modules /mnt/usb1/lib/
# umount /mnt/usb1/ # mount /dev/sda1 /mnt/usb1
linear boot=/dev/sda disk=/dev/sda bios=0x80 timeout=50 default=linux image=/boot/zImage label=linux root=/dev/hda1 read-only
# /sbin/lilo -r /mnt/usb1 -C /etc/lilo_cross.conf
usl-5pを一旦shutdownした後、ここまで設定してきたCFに内蔵の場所に差し直し、 もう一度電源を入れます。 sshでrootのログインを試み成功したなら、後はお好きにどうぞ。
まあ、ログインしたら最初に「apt-get update」と 「apt-get upgrade」をやっておくと 良いかもしれません。
base-sh4-for-landiskでは、デフォルトのrunlevelが2であることに注意
参考URL
(2005/9/5作成)
(2005/9/16typo等修正)