Debian GNU/Linux 5.0 qube login: guest Password: Last login: Wed Feb 18 15:55:08 JST 2009 from uxl.yamasita.jp on pts/0 Linux qube 2.6.22.7 #51 Thu Jan 29 09:56:43 JST 2009 armv5tejl 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. No directory, logging in with HOME=/ guest@qube:/$ df Filesystem 1K-blocks Used Available Use% Mounted on /dev/md1 4993920 212096 4781824 5% / tmpfs 62888 0 62888 0% /lib/init/rw tmpfs 62888 0 62888 0% /dev/shm /dev/root.old 31729 16813 14916 53% /initrd /dev/md0 995928 192140 803788 20% /boot /dev/sda6 148376092 65652 148310440 1% /mnt/disk1 guest@qube:/$/dev/md0 が /boot にマウントされているし、
guest@qube:/$ cat /proc/mdstat
Personalities : [raid0] [raid1] [raid6] [raid5] [raid4]
md1 : active raid1 sda2[2]
      5004160 blocks [4/1] [__U_]
md10 : active raid1 sda5[2]
      1003904 blocks [4/1] [__U_]
md0 : active raid1 sda1[2]
      1003904 blocks [4/1] [__U_]
unused devices: <none>
guest@qube:/$
md もちゃんとできている。
guest@qube:/$ free
             total       used       free     shared    buffers     cached
Mem:        125780      53136      72644          0      32788      10920
-/+ buffers/cache:       9428     116352
Swap:      1003896          0    1003896
guest@qube:/$
Swap もちゃんと使われている。
yasunari@ude:/home/linkstation/HackKit/unified$ diff -u hackkit_090216.sh hackki
t_090222.sh
--- hackkit_090216.sh   2009-02-16 20:37:53.995806375 +0900
+++ hackkit_090222.sh   2009-02-22 01:27:22.960106522 +0900
@@ -12,6 +12,11 @@
 NAMESERVER=192.168.1.2
 HOSTNAME=hackkit
+if [ -f hackkit_config ]
+then
+       . hackkit_config
+fi
+
 WORK=/mnt/disk1/share/hackkit
 HACKKIT=$WORK/hackkit_081209.tar.gz
 MOUNTPOINT=/mnt/debinst
@@ -51,7 +56,7 @@
 # / のマウント
 mount_root() {
-       if [ $MACHINE = LSWSGL ]
+       if [ $MACHINE = LSWSGL -o $MACHINE = LSQL ]
        then
            echo building md...
            /etc/init.d/startSysMd.sh
@@ -64,7 +69,7 @@
        fi
        mount -t xfs $ROOTPARTITION $MOUNTPOINT || exit
-       if [ $MACHINE = LSWSGL ]
+       if [ $MACHINE = LSWSGL -o $MACHINE = LSQL ]
        then
                mkdir $MOUNTPOINT/.buffalo
@@ -85,7 +90,7 @@
        cd $MOUNTPOINT
        tar zxvf $HACKKIT
-       if [ $MACHINE = LSWSGL ]
+       if [ $MACHINE = LSWSGL -o $MACHINE = LSQL ]
        then
                mkdir $MOUNTPOINT/mnt/disk1
                mkdir $MOUNTPOINT/mnt/disk2
@@ -97,7 +102,7 @@
 }
 #---------------------------------------------------------
-# fstab の修正(LS-WSGL のみ)
+# fstab の修正(LS-WSGL,LS-QL のみ)
 create_fstab() {
        echo creating /etc/fstab ...
@@ -109,10 +114,15 @@
 /dev/md1        /               xfs     defaults,noatime                0 0
 proc            /proc           proc    defaults                        0 0
 /dev/md10       swap            swap    defaults                        0 0
-/dev/md0        /boot           ext2    defaults,noatime                0 0
-/dev/sda6       /mnt/disk1      xfs     defaults,noatime                0 0
-/dev/sdb6       /mnt/disk2      xfs     defaults,noatime                0 0
 EOF
+
+       echo "/dev/md0        /boot           $BOOTPARTITIONTYPE    defaults,noatime                0 0" >> etc/fstab
+
+       echo "/dev/sda6       /mnt/disk1      xfs     defaults,noatime                0 0" >> etc/fstab
+       if [ $MACHINE = LSWSGL ]
+       then
+               echo "/dev/sdb6       /mnt/disk2      xfs     defaults,noatime                0 0" >> etc/fstab
+       fi
 }
 #---------------------------------------------------------
@@ -324,7 +334,7 @@
 do
        LINE=\`cat /proc/buffalo/kernevnt\`
        #echo "line [\$LINE]"
-       if [ "\$LINE" = PSW_off ]
+       if [ "\$LINE" = PSW_off -o "\$LINE" = PSW_pushed ]
        then
                shutdown -h now
        fi
@@ -546,7 +556,7 @@
        cd /
        if [ ! -d $MOUNTPOINT/boot ]
        then
-               mkdir $MOUNTPOINT/boot || exit
+               mkdir -p $MOUNTPOINT/boot || exit
        fi
        mount -t $BOOTPARTITIONTYPE $BOOTPARTITION $MOUNTPOINT/boot || exit
 }
@@ -584,7 +594,7 @@
        mount -o loop $MOUNTPOINT/boot/initrd /tmp/root || exit
        mv /tmp/root/linuxrc /tmp/root/linuxrc.orig
-       if [ $MACHINE = LSWSGL ]
+       if [ $MACHINE = LSWSGL -o $MACHINE = LSQL ]
        then
        cat > /tmp/root/linuxrc <<EOF
 #!/bin/sh
@@ -596,9 +606,13 @@
 mount proc /proc -t proc
 mount sysfs /sys -t sysfs
+. /usr/local/lib/libsys
+SetupNasFeature
+
 ldconfig
 depmod
+. /etc/nas_feature
 /etc/init.d/startSysMd.sh
 echo "0x901" > /proc/sys/kernel/real-root-dev
@@ -927,6 +941,54 @@
        # /boot のアンマウント
        umount_boot
        ;;
+0x00004000)
+       MACHINE=LSQL
+
+       BOOTPARTITION=/dev/md0
+       BOOTPARTITIONTYPE=ext3
+       ROOTPARTITION=/dev/md1
+       SWAPPARTITION=/dev/md10
+       DATAPARTITION=""
+
+       # 各パーティションのフォーマット(LS-WSGL 以外)
+       # format_disk
+       # / のマウント
+       mount_root
+       # アーカイブの展開
+       extract_hackkit
+       # fstab の修正(LS-WSGL のみ)
+       create_fstab
+       # miconapl のコピー(LS-GL/HS-DHGLのみ)
+       #copy_miconapl
+       # LED コントロールスクリプトの作成
+       create_miconapl
+       # Fan コントロールスクリプトの作成(LS-GL/HS-DHGLのみ)
+       # create_fancontrol
+       # 電源 SW による電源 OFF 対応
+       create_kernelmon
+       # カーネルモジュールのコピー(LS-WSGL 以外)
+       # copy_modules
+       # カーネルモジュールのロードスクリプトの作成
+       create_usb
+
+       # ネットワークのセットアップ
+       network_interfaces
+       resolv_conf
+       hosts
+       hostname
+
+       # / のアンマウント
+       umount_root
+
+       # /boot のマウント
+       mount_boot
+       # /boot のコピー(LS-WSGL 以外)
+       # copy_boot
+       # initrd の編集
+       edit_initrd
+       # /boot のアンマウント
+       umount_boot
+       ;;
 *)
        echo unknown PRODUCTID = "$PRODUCTID"
        exit
yasunari@ude:/home/linkstation/HackKit/unified$
LS-XHL にも LS-QL にも、その場限りのパッチ的に修正を入れたので、
ここらあたりでリファクタリングが必要。
これまでは
インストールする度にインストーラの先頭に書いてある IP アドレスや
ホスト名をそのマシンに対応するよう修正していた。
今回 hackkit_config があればそれを読み込む機能を追加した。
hackkit_config があればそれを読み込むので、
hackkit_config に
ADDRESS=192.168.2.50 HOSTNAME=qubeとデフォルト異なるところだけを書いておけば、 インストーラは全く修正しなくてもよい。
hackkit_config はそのマシンに固有
hackkit_YYMMDD.sh はそのマシンに依存しない
ようにできた。
| 
 | 
| ← 2歩さがる | ハックの記録 LinkStation/玄箱 をハックしよう | → リファクタリング |