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/玄箱 をハックしよう |
→ リファクタリング |