Debianを動かしてみる
暫定で、独自のinitrdを作らずに、製品版のinitrdのlinuxrcだけシンプルにして、mkimageすることで、単体ドライブでのDebian起動を可能にしてみる。
GTは、RAID5+FATモードで構築して、FATドライブを抜いておく。抜いたままで運用すると、冷却の問題があるけど、その程度のリスクは仕方がない。ただの蓋なパーツがあるといいのに。
必要な材料は、RHDカートリッジ、それを接続可能なLinuxマシン、製品のuImageと改造したinitrd、詳細設定済みのSargeのrootfs base image。
パーティション構成はこんな感じ。
sda4の領域は残しておき、それぞれ適宜サイズを決める。
まず、initrdのイメージをマウントして、linuxrcを書き換え、アーカイブしてからmkimageにかける。
# mount -o remount,rw / # chmod 777 /home/initrd_uboot # mount -o loop initrd_uboot /media/ # cd /media/ # cp linuxrc linuxrc.gt # vi linuxrc #!/bin/sh # export PATH=/sbin:/bin:/usr/sbin:/usr/bin mount -nt proc proc /proc ROOT_DEVICE=0x0803 # /dev/sda3 echo "${ROOT_DEVICE}" > /proc/sys/kernel/real-root-dev umount /proc exit 0 # cd / # umount /media/ # gzip -9 initrd_uboot # ls -al initrd_uboot.gz -rwxrwxrwx 1 root ftp 2855022 Apr 10 18:05 initrd_uboot.gz # /mnt/sataraid1/mkimage -A arm -T ramdisk -C none -d initrd_uboot.gz initrd_new Image Name: Created: Wed Apr 11 17:28:23 2007 Image Type: ARM Linux RAMDisk Image (uncompressed) Data Size: 2855022 Bytes = 2788.11 kB = 2.72 MB Load Address: 0x00000000 Entry Point: 0x00000000 # ls -al initrd_new -rw-r--r-- 1 root ftp 2855086 Apr 11 17:28 initrd_new # file initrd_new initrd_new: PPCBoot image
initrdのできあがり。
RHDをLinuxマシンに接続して、パーティションを作り、フォーマットする。
# fdisk /dev/sda -l Disk /dev/sda: 250.0 GB, 250001031168 bytes 255 heads, 63 sectors/track, 30394 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System /dev/sda1 1 125 1004031 83 Linux /dev/sda2 126 250 1004062+ 82 Linux swap / Solaris /dev/sda3 251 375 1004062+ 83 Linux /dev/sda4 376 30394 241127617+ 83 Linux # mkswap /dev/sda2 # mkfs.ext3 /dev/sda1 # mkfs.ext3 /dev/sda3
必要なファイル類は、GT上で作成しているので、GTは起動させたまま。RHDをUSB接続してコピーしてもいいけど、今回は使い慣れたマシンに市販のSATA-USBアダプタでRHDを接続した。マウントして、必要なファイルをコピーする。pythonでワンライナなhttpdを起動してコピーサーバーを作りwgetでコピーすれば簡単。
# mount /dev/sda1 /media/ # cd /media/ # wget http://192.168.123.11:8000/boot/uImage # wget http://192.168.123.11:8000/home/initrd_new # cp initrd_new initrd # cd / # umount /media/ # mount /dev/sda3 /media/ # cd /media/ # wget http://192.168.123.11:8000/boot/sarge_r4_deboot_20070406.tgz # tar zxvfp sarge_r4_deboot_20070406.tgz # cd / # umount /media/
3発で動作するGTを停止して、調整済みのRHDを1つだけ接続して、電源を投入する。
動いたよ。
OPEN LANDISK PLATFORM Linux 1.0 (based on Debian GNU/Linux 3.1r4) localhost OLP_GT login: admin Password: Linux OLP_GT 2.6.12.6-arm1 #6 Wed Nov 22 14:18:14 JST 2006 armv5tejl GNU/Linux The programs included with the Debian GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. admin@OLP_GT:~$
なんか、拍子抜けするほど簡単なものね。どうして、やる人が出てこないのか不思議。
独自ドライバはないので、LEDもボタンも何にも制御できないけどね。なので、STATUSが点滅しっぱなし。これはボタンを押すと止まる。
initrdを読むと、なんかUSBからごにょごにょする仕組みもあるみたい。結構な分量があるから読みたくないけど。
インストーラーは、それを利用して作れるかもな。