2013年11月12日 (火)

LS410D をポチッと & Debian化(4)

アーカイブを作成した LS-VL に Ver1.30 をインストールした Disk を USB 接続して、直接書き換える方法をとる。


1)作業用の ディレクトリを作成しマウントする。
root@scott:/mnt# mkdir wk_boot
root@scott:/mnt# mkdir wk_root
root@scott:/mnt# mount /dev/sdb1 wk_boot
root@scott:/mnt# mount /dev/sdb2 wk_root


2)標準ファームの移動
root@scott:/mnt# cd /mnt/wk_root
root@scott:/mnt/wk_root# ls
*    boot       debugtool  etc   lib         media  opt         proc  run   sys      tmp  var
bin  chroot.sh  dev        home  lost+found  mnt    prepare.sh  root  sbin  test.sh  usr  www
root@scott:/mnt/wk_root# mkdir .buffalo
root@scott:/mnt/wk_root# mv * .buffalo
root@scott:/mnt/wk_root# ls
root@scott:/mnt/wk_root# tar zxvf /mnt/share/hackkit/hackkit_wheezy_armel_131109.tar.gz
./
./debootstrap/
./debootstrap/debootstrap.log
./debootstrap/debpaths
./var/
      :
      :
./sbin/wipefs
./sbin/hwclock
./sbin/fsck
./selinux/
./initrd/
root@scott:/mnt/wk_root#


3)モジュールのコピー
root@scott:/mnt/wk_root# cd .buffalo
root@scott:/mnt/wk_root/.buffalo# tar cf - lib/modules/ | (cd /; tar xvf -)
lib/modules/
lib/modules/3.3.4/
lib/modules/3.3.4/modules.isapnpmap
lib/modules/3.3.4/modules.pcimap
      :
      :
lib/modules/3.3.4/modules.symbols.bin
lib/modules/3.3.4/modules.devname
lib/modules/3.3.4/modules.symbols
lib/modules/3.3.4/modules.dep.bin
root@scott:/mnt/wk_root/.buffalo# cd ../
root@scott:/mnt/wk_root# mv .buffalo usr/local
おっと、. つけたままだった。
root@scott:/mnt/wk_root# mv usr/local/{.,}buffalo
root@scott:/mnt/wk_root#


4)/etc/network/interfaces の設定
eth0 なのか eth1 なのかわからないので、両方とも DHCP
root@scott:/mnt/wk_root# cat >> etc/network/interfaces <<EOF
>
> auto eth0
> iface eth0 inet dhcp
>
> auto eth1
> iface eth1 inet dhcp
>
> EOF
root@scott:/mnt/wk_root#


5)/etc/fstab の設定
root@scott:/mnt/wk_root# cat > /etc/fstab <<EOF
> # /etc/fstab: static file system information
> #
> /dev/sda1       /boot   ext3    defaults,noatime        0 0
> /dev/sda2       /       ext3    defaults,noatime        0 0
> /dev/sda5       swap    swap    defaults                0 0
> proc            /proc   proc    defaults                0 0
> /dev/sda6       /mnt    xfs     defaults,noatime        0 0
>
> EOF
root@scott:/mnt/wk_root#


6)hostname の設定
root@scott:/mnt/wk_root# echo ls410d > etc/hostname



ここからは initrd の編集
root@scott:/mnt/wk_root# cd ../wk_boot
root@scott:/mnt/wk_boot# umount /mnt/wk_root
root@scott:/mnt/wk_boot#


6)loop デバイスの作成
root@scott:/mnt/wk_boot# dd if=/dev/zero of=/tmp/initrd bs=1024k count=100
100+0 records in
100+0 records out
104857600 bytes (105 MB) copied, 2.90841 s, 36.1 MB/s
root@scott:/mnt/wk_boot# mkfs /tmp/initrd
mke2fs 1.41.12 (17-May-2010)
/tmp/initrd is not a block special device.
Proceed anyway? (y,n) y
Filesystem label=
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
Stride=0 blocks, Stripe width=0 blocks
25688 inodes, 102400 blocks
5120 blocks (5.00%) reserved for the super user
First data block=1
Maximum filesystem blocks=67371008
13 block groupsv 8192 blocks per group, 8192 fragments per group
1976 inodes per group
Superblock backups stored on blocks:
        8193, 24577, 40961, 57345, 73729


Writing inode tables: done                      
     Writing superblocks and filesystem accounting information: done


This filesystem will be automatically checked every 21 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.
root@scott:/mnt/wk_boot#


7)initrd.buffalo の展開
root@scott:/mnt/wk_boot# dd if=initrd.buffalo of=/tmp/rootfs.cpio.gz bs=64 skip=1
187254+1 records in
187254+1 records out
11984281 bytes (12 MB) copied, 6.62277 s, 1.8 MB/s
root@scott:/mnt/wk_boot#


root@scott:/mnt/wk_boot# gunzip /tmp/rootfs.cpio.gz
gzip: /tmp/rootfs.cpio already exists; do you wish to overwrite (y or n)? y
root@scott:/mnt/wk_boot#


root@scott:/mnt/wk_boot# mount -o loop /tmp/initrd ../wk_root
root@scott:/mnt/wk_boot# cd ../wk_root
root@scott:/mnt/wk_boot# cd cpio -id < /tmp/rootfs.cpio


8)linuxrc の編集
root@scott:/mnt/wk_root# mv linuxrc linuxrc.orig
root@scott:/mnt/wk_root# mv init init.orig
root@scott:/mnt/wk_root# cat > linuxrc <
> #!/bin/sh
>
> exit 0
> EOF
root@scott:/mnt/wk_root# chmod 755 linuxrc
root@scott:/mnt/wk_root# cd ../wk_boot
root@scott:/mnt/wk_boot# umount ../wk_root
root@scott:/mnt/wk_boot# gzip -9 /tmp/initrd
gzip: /tmp/initrd.gz already exists; do you wish to overwrite (y or n)? y
root@scott:/mnt/wk_boot#


9)initrd.buffalo の作成
root@scott:/mnt/wk_boot# mv initrd.buffalo{,.orig}
root@scott:/mnt/wk_boot# mkimage -A ARM -O Linux -T ramdisk -C gzip -a 0x00000000 -e 0x00000000 -n initrd -d /tmp/initrd.gz initrd.buffalo
Image Name:   initrd
Created:      Sun Nov 10 13:05:01 2013
Image Type:   ARM Linux RAMDisk Image (gzip compressed)
Data Size:    12178732 Bytes = 11893.29 kB = 11.61 MB
Load Address: 0x00000000
Entry Point:  0x00000000
root@scott:/mnt/wk_boot#


root@scott:/mnt/wk_boot# cd
root@scott:~# umount /mnt/wk_boot
root@scott:~#


10)LS410D に Disk を入れて移動
LED 制御はしていないので白点滅のままだが、、、


ssh で接続
[SSH] Server Version OpenSSH_6.0p1 Debian-4
[SSH] Logged in (password)


Linux ls410d 3.3.4 #1 Mon Oct 28 16:16:49 JST 2013 armv7l


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.
Could not chdir to home directory /home/guest: No such file or directory
guest@ls410d:/$


wheezy 起動!!




2013年11月 9日 (土)

LS410D をポチッと & Debian化(3)

しばらく放置している間に、 LinkStation/玄箱 をハックしようでは、cpio アーカイブのままでハックに成功しておられる。さすがだ。
そっくりいただいてしまえば早いのだが、せっかくなのでもう少し loop デバイスで進めてみる。


1)debootstrap のインストール
root@scott:/usr/local/sbin# cd /tmp
root@scott:/tmp# wget http://ftp.debian.org/debian/pool/main/d/debootstrap/debootstrap_1.0.55_all.deb
--2013-11-09 18:36:09--  http://ftp.debian.org/debian/pool/main/d/debootstrap/debootstrap_1.0.55_all.deb
ftp.debian.org をDNSに問いあわせています... 130.89.148.12, 2001:610:1908:b000::148:12
ftp.debian.org|130.89.148.12|:80 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 55628 (54K) [application/x-debian-package]
`debootstrap_1.0.55_all.deb' に保存中


100%[=============================================================================>] 55,628      81.8K/s 時間 0.7s


2013-11-09 18:36:15 (81.8 KB/s) - `debootstrap_1.0.55_all.deb' へ保存完了 [55628/55628]


root@scott:/tmp# ar -x debootstrap_1.0.55_all.deb
root@scott:/tmp# cd /
root@scott:/# xz -dv /tmp/data.tar.xz
/tmp/data.tar.xz (1/1)
  100 %        53.0 KiB / 220.0 KiB = 0.241 
                                  root@scott:/# tar xvf /tmp/data.tar
./
./usr/
./usr/share/
./usr/share/man/
      :
      :
./usr/share/debootstrap/scripts/stable
./usr/share/debootstrap/scripts/jessie
./usr/share/debootstrap/scripts/trusty
root@scott:/#


2)debootstrap
ここからは、 スクリプト化しておられるので拝借。
自分用にちょっとだけモディファイした。


root@scott:/# cd /usr/local/sbin
root@scott:/usr/local/sbin# cp -p makehackkit{_131104,_modified}.sh
root@scott:/usr/local/sbin# vi makehackkit_modified.sh
      :
      :
   保存場所の変更
   /dev のコピーをしない
   tzdata locale の設定自動化 など
      :
      :
root@scott:/usr/local/sbin# diff -u makehackkit_{131104,modified}.sh
--- makehackkit_131104.sh       2013-11-09 18:15:44.000000000 +0900
+++ makehackkit_modified.sh     2013-11-09 18:46:11.000000000 +0900
@@ -5,7 +5,7 @@


set -x


-DEBINST=/mnt/disk1/debinst
+DEBINST=/mnt/debinst
VERSION=wheezy


makehackkit() {
@@ -20,13 +20,14 @@
         date


         # copy /dev
-        (cd / ; tar cf - dev)|(cd $DEBINST; tar xvf -)
+#        (cd / ; tar cf - dev)|(cd $DEBINST; tar xvf -)


         # mount /proc
         chroot $DEBINST mount -t proc /proc proc


         # reconfigure TimeZone
-        chroot $DEBINST dpkg-reconfigure tzdata
+        echo Asia/Tokyo > $DEBINST/etc/timezone
+        chroot $DEBINST dpkg-reconfigure -f noninteractive tzdata


         # edit /etc/apt/sources.list
         (
@@ -43,7 +44,17 @@


         # install & reconfigure locales
         chroot $DEBINST apt-get -y install locales
-        chroot $DEBINST dpkg-reconfigure locales
+        mv $DEBINST/etc/locale.gen{,.orig}
+        sed \
+                -e 's/^# ja_JP.EUC/ja_JP.EUC/' \
+                -e 's/^# ja_JP.UTF/ja_JP.UTF/' \
+                $DEBINST/etc/locale.gen.orig > $DEBINST/etc/locale.gen
+        rm $DEBINST/etc/locale.gen.orig
+       (
+       echo "#  File generated by update-locale"
+       echo LANG=ja_JP.UTF-8
+       ) > $DEBINST/etc/default/locale
+        chroot $DEBINST usr/sbin/locale-gen


         # install ssh
         chroot $DEBINST apt-get -y install ssh
@@ -91,15 +102,15 @@
         (
         echo 0.0 0 0.0
         echo 0
-        echo LOCAL
-        ) > /mnt/disk1/debinst/etc/adjtime
+        echo UTC
+        ) > $DEBINST/etc/adjtime


         # umount /proc
         chroot $DEBINST umount /proc


         # make archive
         cd $DEBINST
-        tar zcvf /mnt/disk1/share/hackkit/hackkit_"$VERSION"_"$ARCH"_`date +%y%m%d`.tar.gz .
+        tar zcvf /mnt/share/hackkit/hackkit_"$VERSION"_"$ARCH"_`date +%y%m%d`.tar.gz .
}


for ARCH in armel armhf
root@scott:/usr/local/sbin#


スクリプトの実行
root@scott:/usr/local/sbin# bash makehackkit_modified.sh
+ DEBINST=/mnt/debinst
+ VERSION=wheezy
+ for ARCH in armel armhf
+ echo armel
armel
+ makehackkit
+ rm -fr /mnt/debinst
+ mkdir -p /mnt/debinst
+ cd /
+ date
2013年 11月  9日 土曜日 20:04:02 JST
+ /usr/sbin/debootstrap --arch armel wheezy /mnt/debinst http://ftp.jp.debian.org/debian
I: Retrieving Release
I: Retrieving Release.gpg
I: Checking Release signature
      :
      :
./opt/
./media/
./initrd/
+ for ARCH in armel armhf
+ echo armhf
armhf
+ makehackkit
+ rm -fr /mnt/debinst
+ mkdir -p /mnt/debinst
+ cd /
+ date
2013年 11月  9日 土曜日 20:36:59 JST
+ /usr/sbin/debootstrap --arch armhf wheezy /mnt/debinst http://ftp.jp.debian.org/debian
I: Retrieving Release
I: Retrieving Release.gpg
I: Checking Release signature
      :
      :
./sbin/hwclock
./sbin/fsck
./selinux/
./initrd/ root@scott:/usr/local/sbin# ls -l /mnt/share/hackkit
合計 185652
-rw-r--r-- 1 root root 103225053 2013-11-09 20:36 hackkit_wheezy_armel_131109.tar.gz
-rw-r--r-- 1 root root  86876929 2013-11-09 20:55 hackkit_wheezy_armhf_131109.tar.gz
root@scott:/usr/local/sbin#


アーカイブ完成
スクリプト化されているとすご〜く楽。山下さんありがとうございました。




2013年10月21日 (月)

LS410D をポチッと & Debian化(2)

cpio アーカイブをし直しただけで起動しなくなる。
この状況を打開するため、アプローチ方法を変えてみる。


ズルして逃げるような気もするが、、、
cpio アーカイブではなく、従来の loop デバイスに戻す。

1)loop デバイスの作成
  loop デバイスは、dd if=/dev/zero .....で作れるらしい。
root@scott:/srv/tftp/ls400_111# dd if=/dev/zero of=/tmp/initrd bs=1024k count=100
100+0 records in
100+0 records out
104857600 bytes (105 MB) copied, 1.8319 s, 57.2 MB/s
root@scott:/srv/tftp/ls400_111#


2)ファイルシステムの構築
root@scott:/srv/tftp/ls400_111# mkfs /tmp/initrd
mke2fs 1.41.12 (17-May-2010)
/tmp/initrd is not a block special device.
Proceed anyway? (y,n) y
Filesystem label=
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
Stride=0 blocks, Stripe width=0 blocks
25688 inodes, 102400 blocks
5120 blocks (5.00%) reserved for the super user
First data block=1
Maximum filesystem blocks=67371008
13 block groups
8192 blocks per group, 8192 fragments per group
1976 inodes per group
Superblock backups stored on blocks:
     8193, 24577, 40961, 57345, 73729


Writing inode tables: done
                             Writing superblocks and filesystem accounting information: done


This filesystem will be automatically checked every 20 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.
root@scott:/srv/tftp/ls400_111#


3)マウントする。
root@scott:/srv/tftp/ls400_111# mkdir initrd
root@scott:/srv/tftp/ls400_111# mount -o loop /tmp/initrd initrd
root@scott:/srv/tftp/ls400_111#


4)cpio アーカイブを展開・編集する。
root@scott:/srv/tftp/ls400_111# gunzip /tmp/rootfs.cpio.gz
root@scott:/srv/tftp/ls400_111# cd initrd
root@scott:/srv/tftp/ls400_111/initrd# cpio -id < /tmp/rootfs.cpio
52829 blocks
root@scott:/srv/tftp/ls400_111/initrd#
loop デバイスにしたときに実行されるのは linuxrc という事なので、
root@scott:/srv/tftp/ls400_111/initrd# mv linuxrc linuxrc.orig
root@scott:/srv/tftp/ls400_111/initrd# mv init linuxrc
root@scott:/srv/tftp/ls400_111/initrd# ls
bin        dev  home  linuxrc       lost+found  proc  rootfs  sbin  tmp  var
debugtool  etc  lib   linuxrc.orig  mnt         root  run     sys   usr  www
root@scott:/srv/tftp/ls400_111/initrd#


5)アンマウントして、initrd.buffalo を作り直す。
root@scott:/srv/tftp/ls400_111/initrd# cd ..
root@scott:/srv/tftp/ls400_111# umount initrd
root@scott:/srv/tftp/ls400_111# gzip -9 /tmp/initrd
gzip: /tmp/initrd.gz already exists; do you wish to overwrite (y or n)? y
root@scott:/srv/tftp/ls400_111# mkimage -A ARM -O Linux -T ramdisk -C gzip -a 0x00000000 -e 0x00000000 -n initrd -d /tmp/initrd.gz initrd.buffalo
Image Name:   initrd
Created:      Sun Oct 20 22:08:40 2013
Image Type:   ARM Linux RAMDisk Image (gzip compressed)
Data Size:    12066999 Bytes = 11784.18 kB = 11.51 MB
Load Address: 0x00000000
Entry Point:  0x00000000
root@scott:/srv/tftp/ls400_111# rm -f ../initrd.buffalo
root@scott:/srv/tftp/ls400_111# ln initrd.buffalo ..
root@scott:/srv/tftp/ls400_111# ls -l
合計 26272
drwxr-xr-x  2 root   root            4096 2013-10-20 21:48 initrd
-rw-r--r--  2 root   root        12067063 2013-10-20 22:08 initrd.buffalo
-rw-r--r--  1 brains thunderbird 11886884 2013-10-12 12:56 initrd.buffalo.orig
drwxr-xr-x 19 root   root            4096 2013-10-20 15:01 rootfs
-rw-r--r--  2 brains thunderbird  2894416 2013-10-12 12:56 uImage.buffalo
root@scott:/srv/tftp/ls400_111# ls -l ..
合計 14656
drwxr-xr-x 4 brains thunderbird     4096 2013-10-16 10:03 hs-hdgl
-rw-r--r-- 2 root   root        12067063 2013-10-20 22:08 initrd.buffalo
drwxr-xr-x 2 brains thunderbird     4096 2013-08-15 19:47 ls-series_163
drwxr-xr-x 2 brains thunderbird     4096 2013-04-13 11:27 ls-wsgl_106
drwxr-xr-x 2 brains thunderbird     4096 2013-04-13 11:26 ls-wsgl_wheezy
drwxr-xr-x 4 brains thunderbird     4096 2013-10-20 21:48 ls400_111
-rw-r--r-- 2 brains thunderbird  2894416 2013-10-12 12:56 uImage.buffalo
root@scott:/srv/tftp/ls400_111#



LS410D をリブート。
      :
      :
おっしゃぁ、起動してきた。


 

2013年10月20日 (日)

LS410D をポチッと & Debian化(1)

いつもお世話になっている LinkStation/玄箱 をハックしようで、LS410D の Debian化が進められている。
今までの手法ではインストール出来ないトラップが仕込まれているようで、なんだか楽しそう。


記事を読んでいるだけではいられず、ポチッとしてしまった。(笑)


root のパスワードを消したり、ssh でログイン出来るようにしたり、tftp ブート出来るようにする手順などは、本家をご覧いただくとして、まずは自宅環境でトラップの検証から。
作業用の tftp server として、Debian squeeze をインストールしてある LS-VL を使用した。


1)gzip のし直し
  これは boot するはず。


root@scott:/srv/tftp/ls400_111# ls -l
合計 14460
-rw-r--r-- 1 brains thunderbird 11886884 2013-10-12 12:56 initrd.buffalo
-rw-r--r-- 2 brains thunderbird  2894416 2013-10-12 12:56 uImage.buffalo
root@scott:/srv/tftp/ls400_111# dd if=initrd.buffalo of=/tmp/initrd.gz bs=64 skip=1
185731+1 records in
185731+1 records out
11886820 bytes (12 MB) copied, 4.17382 s, 2.8 MB/s
root@scott:/srv/tftp/ls400_111# file /tmp/initrd.gz
/tmp/initrd.gz: gzip compressed data, was "rootfs.cpio", from Unix, last modified: Thu Jul  4 22:18:29 2013, max compression
root@scott:/srv/tftp/ls400_111#


gzip 前のファイル名は "rootfs.cpio"、圧縮率は最大。
影響はないと思うが、細かいところまで合わせていく。


やり直し


root@scott:/srv/tftp/ls400_111# dd if=initrd.buffalo of=/tmp/rootfs.cpio.gz bs=64 skip=1
185731+1 records in
185731+1 records out
11886820 bytes (12 MB) copied, 4.26826 s, 2.8 MB/s
root@scott:/srv/tftp/ls400_111# file /tmp/rootfs.cpio.gz
/tmp/rootfs.cpio.gz: gzip compressed data, was "rootfs.cpio", from Unix, last modified: Thu Jul  4 22:18:29 2013, max compression
root@scott:/srv/tftp/ls400_111#


gunzip して
root@scott:/srv/tftp/ls400_111# gunzip /tmp/rootfs.cpio.gz
root@scott:/srv/tftp/ls400_111# ls -l /tmp
合計 38076
-rw-r--r-- 1 root root 11886820 2013-10-19 16:45 initrd.gz
-rw-r--r-- 1 root root 27048448 2013-10-20 09:22 rootfs.cpio


gzip し直す
root@scott:/srv/tftp/ls400_111# gzip -9 /tmp/rootfs.cpio
root@scott:/srv/tftp/ls400_111# ls -l /tmp
合計 23256
-rw-r--r-- 1 root root 11886820 2013-10-19 16:45 initrd.gz
-rw-r--r-- 1 root root 11886820 2013-10-20 09:22 rootfs.cpio.gz
root@scott:/srv/tftp/ls400_111# file /tmp/rootfs.cpio.gz
/tmp/rootfs.cpio.gz: gzip compressed data, was "rootfs.cpio", from Unix, last modified: Sun Oct 20 09:22:25 2013, max compression
root@scott:/srv/tftp/ls400_111#


タイムスタンプ以外は同じ。
initrd.buffalo を作り直す。
root@scott:/srv/tftp/ls400_111# mv initrd.buffalo{,.orig}
root@scott:/srv/tftp/ls400_111# mkimage -A ARM -O Linux -T ramdisk -C gzip -a 0x00000000 -e 0x00000000 -n initramfs -d /tmp/rootfs.cpio.gz initrd.buffalo
Image Name:   initramfs
Created:      Sun Oct 20 09:56:47 2013
Image Type:   ARM Linux RAMDisk Image (gzip compressed)
Data Size:    11886820 Bytes = 11608.22 kB = 11.34 MB
Load Address: 0x00000000
Entry Point:  0x00000000
root@scott:/srv/tftp/ls400_111# rm -f ../initrd.buffalo
root@scott:/srv/tftp/ls400_111# ln initrd.buffalo ..
root@scott:/srv/tftp/ls400_111# ls -l
合計 26088
-rw-r--r-- 2 root   root        11886884 2013-10-20 09:56 initrd.buffalo
-rw-r--r-- 1 brains thunderbird 11886884 2013-10-12 12:56 initrd.buffalo.orig
-rw-r--r-- 2 brains thunderbird  2894416 2013-10-12 12:56 uImage.buffalo
root@scott:/srv/tftp/ls400_111# ls -l ..
合計 14480
drwxr-xr-x 4 brains thunderbird     4096 2013-10-16 10:03 hs-hdgl
-rw-r--r-- 2 root   root        11886884 2013-10-20 09:56 initrd.buffalo
drwxr-xr-x 2 brains thunderbird     4096 2013-08-15 19:47 ls-series_163
drwxr-xr-x 2 brains thunderbird     4096 2013-04-13 11:27 ls-wsgl_106
drwxr-xr-x 2 brains thunderbird     4096 2013-04-13 11:26 ls-wsgl_wheezy
drwxr-xr-x 2 brains thunderbird     4096 2013-10-20 09:56 ls400_111
-rw-r--r-- 2 brains thunderbird  2894416 2013-10-12 12:56 uImage.buffalo
root@scott:/srv/tftp/ls400_111#


ファイルサイズも tftp エリアへのハードリンクも問題なし。
LS410D をリブート。
問題なく起動し。ログインも可能。
一つ目の検証おわり。


2)cpio アーカイブのし直し
  boot に失敗するはず。


cpio アーカイブの展開
root@scott:/srv/tftp/ls400_111# gunzip /tmp/rootfs.cpio.gz
root@scott:/srv/tftp/ls400_111# mkdir rootfs
root@scott:/srv/tftp/ls400_111# cd rootfs
root@scott:/srv/tftp/ls400_111/rootfs# cpio -id < /tmp/rootfs.cpio
52829 blocks
root@scott:/srv/tftp/ls400_111/rootfs#


cpio 再アーカイブ
root@scott:/srv/tftp/ls400_111/rootfs# find . -depth -print | cpio -ovH newc > /tmp/rootfs.cpio
./lib/libproc-3.2.8.so
./lib/rules.d/50-firmware.rules
./lib/rules.d/60-persistent-v4l.rules
./lib/rules.d/60-persistent-input.rules
./lib/rules.d/78-sound-card.rules
      :
      :
./root/.fan_profile/fanctld.0x00002016
./root/.fan_profile/fanctld.0x0000201C
./root/.fan_profile/fanctld.0x00002014
./root/.fan_profile
./root
.
52829 blocks
root@scott:/srv/tftp/ls400_111/rootfs# gzip -9 /tmp/rootfs.cpio
root@scott:/srv/tftp/ls400_111/rootfs#


initrd.buffalo を作り直す。
root@scott:/srv/tftp/ls400_111/rootfs# cd ..
root@scott:/srv/tftp/ls400_111# mkimage -A ARM -O Linux -T ramdisk -C gzip -a 0x00000000 -e 0x00000000 -n initramfs -d /tmp/rootfs.cpio.gz initrd.buffalo
Image Name:   initramfs
Created:      Sun Oct 20 15:25:58 2013
Image Type:   ARM Linux RAMDisk Image (gzip compressed)
Data Size:    11874150 Bytes = 11595.85 kB = 11.32 MB
Load Address: 0x00000000
Entry Point:  0x00000000
root@scott:/srv/tftp/ls400_111# rm -f ../initrd.buffalo
root@scott:/srv/tftp/ls400_111# ln initrd.buffalo ..
root@scott:/srv/tftp/ls400_111# ls -l
合計 26076
-rw-r--r--  2 root   root        11874214 2013-10-20 15:26 initrd.buffalo
-rw-r--r--  1 brains thunderbird 11886884 2013-10-12 12:56 initrd.buffalo.orig
drwxr-xr-x 19 root   root            4096 2013-10-20 15:01 rootfs
-rw-r--r--  2 brains thunderbird  2894416 2013-10-12 12:56 uImage.buffalo
root@scott:/srv/tftp/ls400_111# ls -l ..
合計 14464
drwxr-xr-x 4 brains thunderbird     4096 2013-10-16 10:03 hs-hdgl
-rw-r--r-- 2 root   root        11874214 2013-10-20 15:26 initrd.buffalo
drwxr-xr-x 2 brains thunderbird     4096 2013-08-15 19:47 ls-series_163
drwxr-xr-x 2 brains thunderbird     4096 2013-04-13 11:27 ls-wsgl_106
drwxr-xr-x 2 brains thunderbird     4096 2013-04-13 11:26 ls-wsgl_wheezy
drwxr-xr-x 3 brains thunderbird     4096 2013-10-20 14:58 ls400_111
-rw-r--r-- 2 brains thunderbird  2894416 2013-10-12 12:56 uImage.buffalo
root@scott:/srv/tftp/ls400_111#


ファイルサイズが変わった。

ここでLS410D をリブート。
やはり起動せず。
二つ目の検証おわり。



2012年6月24日 (日)

標準ファームの Web サーバ

LS-WXL の squeeze 化をしている最中、標準ファームを調べていて面白い(?)ことを見つけたので、忘れないようにメモ。

標準ファームで動く Web サーバは

1) php と cgi が使える
2) FollowSymLinks が有効になっている

ということは、


Webserver

Web サーバーを使うにして
公開フォルダに php を仕込んで


Php

実行すると


Link

公開フォルダにシンボリックリンクができて


Boot_2

中身が見える。
パーミッションの問題で流石に書き換えはできないけど、コピーとかは自由自在。

ちなみに仕込んだ php は

<?php
exec ('ln -s /boot ./');
print "/boot へのシンボリックリンクを作成しました。";
?>

たったこれだけ。
ということで、公開フォルダに書き込み権限を持つアカウントには DISK を裸にされてしまいます。




«LS-WXL を squeeze 化する(5)

無料ブログはココログ