自分で再構築したカーネルからブート出来るかを実験してみることにしました。
作業用の~/ls-glはクロスコンパイラ作成時のものを使いました:
実験するにあたって予備のHDDが無いので再構築した新しいkernelはtftpより起動させることにします。まずは普段、自宅サーバとして使っているVine Linuxにtftpサーバを設置し、LS-GLのu-bootからtftp起動が出来るか確かめる為に標準のkernelとinitrdを使ってテストしておきます。LS-GL本体の/bootにあるuImage.buffaloとinitrd.buffaloをtftpサーバに置いておきます(Vineのtftpサーバは/tftpbootを公開しているので、ここにファイルを放り込みます)。次にLS-GLを起動してシリアルコンソールからtftp起動させるように操作します:
Orion1 CPU = Low
=== BUFFALO LS-GL U-Boot. ===
** LOADER **
** BUFFALO BOARD: BUFFALO_BOARD_LS_GL LE (CFG_ENV_ADDR=fffff000)
:
中略
:
4513613 bytes read
Booting from Device 1
hit any key to switch tftp boot.
Hit any key to stop autoboot: 0 ←何かキーを押す
switched to TFTP boot.
<<system_bootend>>
Hit any key to stop autoboot: 0 ←何かキーを押す
Marvell>> setenv ipaddr 192.168.0.XX ←LS-GLのIPを適当に入力
Marvell>> setenv serverip 192.168.0.YY ←tftpサーバのIPを入力
Marvell>> boot ←tftp boot開始!
Using egiga0 device
TFTP from server 192.168.0.YY; our IP address is 192.168.0.XX
Filename 'uImage.buffalo'.
Load address: 0x100000
Loading: #################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#############################
done
Bytes transferred = 1809464 (1b9c38 hex)
Using egiga0 device
TFTP from server 192.168.0.YY; our IP address is 192.168.0.XX
Filename 'initrd.buffalo'.
Load address: 0x800000
Loading: #################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#####################################
done
Bytes transferred = 4513613 (44df4d hex)
<<stop_sound>>
## Booting image at 00100000 ...
Image Name: Linux-2.6.16.16-arm1
Created: 2007-06-29 2:14:44 UTC
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 1809400 Bytes = 1.7 MB
Load Address: 00008000
Entry Point: 00008000
Verifying Checksum ... OK
OK
## Loading Ramdisk Image at 00800000 ...
Image Name: initrd
Created: 2007-07-09 0:06:04 UTC
Image Type: ARM Linux RAMDisk Image (gzip compressed)
Data Size: 4513549 Bytes = 4.3 MB
Load Address: 00000000
Entry Point: 00000000
Verifying Checksum ... OK
Starting kernel ...
arg:console=ttyS0,115200 root=/dev/sda2 rw initrd=0x00800040,15M panic=5 BOOTVER=1.10 tftpboot=y
CONFIG_BUFFALO_PLATFORM CONFIG_BUFFALO_LINKSTATION_LSGL ---
Uncompressing Linux......................................................................................................... done, booting the kernel.
u-bootを途中で止めるとピーポーピーポー鳴って焦ってしまいましたがkernelとinitrdを読み込むと音は止まります。その後、起動に成功しログインもできましたが赤いLEDが点滅しっぱなしです(何故?w) これで万が一kernel換装に失敗してもLS-GLをtftpブートすれば元に戻せるでしょう。
と、取り合えず実験は成功したということにしておこう…
LinkStationWikiよりクロス用のmkimageを頂いてきます。これをクロス環境のPathの通った適当ば場所に置いておきます。
initrd.buffaloに入っているlinuxrcスクリプトでは起動時にkernelのビルド日付をチェックするというやっかいなことをやってくれているので、ここをスルーさせます。引っ掛かるとHDDのrootfsをマウントせずinitrdのままで立ち上がってしまいます(bashのプロンプトがEMモードみたいになる)。initrd.buffaloを展開してloopbackでマウントさせ中身を修正します。この辺は総本山である山下さんのサイトが詳しいでしょう(また暗号付き圧縮の解除とかはLinkstationWikiとかも参考に):
$ mount -o loop initrd /mnt
$ vi /mnt/linuxrc ←チェックを通過させる細工
$ umount /mnt
$ gzip initrd
$ mkimage -A ARM -O Linux -T ramdisk -C gzip -a 0x00000000 -e 0x00000000 -n initrd -d initrd.gz initrd.buffalo
linuxrcのTestRootfs()に細工します:
TestRootfs()
{
##echo "-- TestRootfs --"
mount -n -o rw /dev/${DEV_ROOTFS1} /mnt
if [ $? != 0 ]; then
# retry
mount -n -o rw /dev/${DEV_ROOTFS1} /mnt
fi
if [ $? = 0 ]; then
PRDI1=`grep PRODUCTID /proc/buffalo/firmware`
PRDI2=`grep PRODUCTID /mnt/etc/linkstation_release`# delete lost+founc
rm -rf /mnt/lost+found/*
#echo $PRDI1 $PRDI2
## check RootfsBootMarker
if [ ! -f $HDDROOTMODE ]; then
echo "** use initrd mode. **"
umount /mnt
return 1;
fiif [ ! -f $ROOTFS_OK ]; then
echo "*** not found $ROOTFS_OK file in rootfs. ***"
echo -n "*" >> $ROOTFS_BOOTING
chars=`cat $ROOTFS_BOOTING|wc -c`
echo "chars=$chars"
## chars=0 means 'write fail'.
if [ "$chars" = 0 ] || [ "$chars" -ge 3 ] ; then
echo "** over max retry. use initrd mode. **"
umount /mnt
return 1;
fi
fi
/usr/local/bin/vercomp /proc/buffalo/firmware /mnt/etc/linkstation_release
DATE_KERN=$?
/usr/local/bin/vercomp /etc/linkstation_emergence /mnt/etc/linkstation_release
DATE_INITRD=$?
#if [ $DATE_KERN -ne 0 ] || [ $DATE_INITRD -ne 0 ]; then
# echo "*** hddSys is old. use initrd mode. ***"
# umount /mnt
# return 1
#fi
DelRootfsBootMarker
CopyFromInitrdToHdd
umount /mntif [ "$PRDI1" = "$PRDI2" ]; then
return 0;
else
echo "*** version mismatch. use initrd mode. ***"
fi
fi
return 1;
}
こっちの方が手っ取り早いですね
HddRoot() {
echo "-HddRoot-"
HasUpdatedFile
if [ $? != 0 ]; then
echo "** has Updated Files **"
echo "0x100" >/proc/sys/kernel/real-root-dev
return
fi
TestRootfs
#if [ $? != 0 ]; then
#echo "0x100" >/proc/sys/kernel/real-root-dev
#fi
fsck_disks
}
出来上がったinitrd.buffaloをtftpに配置しておきます。
kernelの再構築はクロス環境で行います。src/linux/buffaloのbuffalo_lsgl_arm_110.configをsrc/linux/にコピーし.configにリネームします。元のkernelと区別が付きやすいようにsrc/linux/Makefileのバージョンを変えておきます:
VERSION = 2
PATCHLEVEL = 6
SUBLEVEL = 16
EXTRAVERSION = .16-arm1a ←ほんのちょっと変えてみるw
NAME=Sliding Snow Leopard
まずは.configに変更なしでビルドしてみます:
export PATH=/usr/local/develop/bin:$PATH
export INSTALL_MOD_PATH=~/ls-gl/rootfs
export CC=arm-none-linux-gnueabi-gcc
export AR=arm-none-linux-gnueabi-ar
export RANLIB=arm-none-linux-gnueabi-ranlib
cd src/linux
make clear
make menuconfig
make uImage modules modules_install
ビルドに成功するとsrc/linux/arch/arm/bootにuImageが、rootfs/lib/modules/2.6.16.16-arm1a以下にmoduleが出来上がります。
-rw-r--r-- 1 hiroshi developer 1826852 10月 7 16:52 uImage
な、なんか本物と微妙にサイズ違うな…(汗
root@LS-GL24A:~# ls -l /boot
-rw-r--r-- 1 root root 245776 Aug 28 08:37 u-boot.buffalo
-rw-r--r-- 1 root root 1809464 Aug 28 08:37 uImage.buffalo ←本物
誤差の範囲なんでしょうか? 若干不安です;;
uImageはuImage.buffaloにリネームしてtftpに配置します。rootfs/lib/modules/2.6.16.16-arm1aはLS-GL本体の/lib/modulesにコピーします。
ビルドしたkernelでtftp起動させてみます。手順は前述の通り:
Marvell>> setenv ipaddr 192.168.0.XX
Marvell>> setenv serverip 192.168.0.YY
Marvell>> boot
Using egiga0 device
TFTP from server 192.168.0.YY; our IP address is 192.168.0.XX
Filename 'uImage.buffalo'.
Load address: 0x100000
Loading: #################################################################
#################################################################
#################################################################
#################################################################
#################################################################
################################
done
Bytes transferred = 1826852 (1be024 hex)
Using egiga0 device
確かにサイズ的には新しいkernelのようだ。
root@LS-GL24A:~# uname -a
Linux LS-GL24A 2.6.16.16-arm1a #5 Sun Oct 7 16:52:15 JST 2007 armv5tejl armv5tejl armv5tejl GNU/Linux
unameで確かめると再構築したkernelで起動に成功したようです。
素のままのkernelが成功したので、今度は.configのオプションを変更してiptables対応kernelを構築します。iptableを有効にする為にXTABLE系のオプションを有効にしてビルドし同じ手順でtftpで起動させてみます:
(backgrounded)
===== exec:smb.sh =====
Starting SMB services: configure samba
optarg:samba
load_info ItemValue = off
LoadConfFileString:key=[ad_dns] not found in /etc/melco/info.
/sbin/hotplug [module]
/sbin/hotplug [module]
/sbin/hotplug [module]
LoadConfFileOnOff:key=[info_visible] not found in /etc/melco/info.
LoadConfFileString:key=[msdfs_function] not found in /etc/melco/msdfs.
LoadConfFileString:key=[msdfs_root_as_link] not found in /etc/melco/msdfs.
LoadConfFileString:key=[msdfs_root_name] not found in /etc/melco/msdfs.
LoadConfFileString:key=[msdfs_root_path] not found in /etc/melco/msdfs.
LoadConfFileString:key=[msdfs_link1_name] not found in /etc/melco/msdfs.
Can't Open : /etc/melco/offlinefile
Can't Open : /etc/melco/shareinfo.hidden
Can't Open : /etc/melco/shareinfo.vfs
file:/etc/samba/smb.conf
>IconvCodeCharset CodePage=0,charset=CP932
file:/etc/pam_smb.conf
skb_over_panic: text:bf0052fc len:28 put:28 head:c7d509f2 data:c7d509c0 tail:c7d509c0 end:c7d50a00 dev:<NULL>
kernel BUG at net/core/skbuff.c:94!
Unable to handle kernel NULL pointer dereference at virtual address 00000000
pgd = c137c000
[00000000] *pgd=01374031, *pte=00000000, *ppte=00000000
Internal error: Oops: 817 [#1]
Modules linked in: appletalk psnap llc
CPU: 0
PC is at __bug+0x44/0x58
LR is at 0x1
pc : [<c002a2d4>] lr : [<00000001>] Not tainted
sp : c13a7d38 ip : 60000093 fp : c13a7d44
r10: c15a1564 r9 : c7d509c0 r8 : c1704000
r7 : c7d50a00 r6 : c7d509c0 r5 : c7d509c0 r4 : 00000000
r3 : 00000000 r2 : 00000000 r1 : 00000000 r0 : 00000001
Flags: nZCv IRQs on FIQs on Mode SVC_32 Segment user
Control: A005317F Table: 0137C000 DAC: 00000015
Process atalkd (pid: 886, stack limit = 0xc13a61a0)
Stack: (0xc13a7d38 to 0xc13a8000)
7d20: c13a7d7c c13a7d48
7d40: c0272800 c002a2a0 c7d509f2 c7d509c0 c7d509c0 c7d50a00 c031dc20 00000000
7d60: c7d509d6 c73d30a0 00000016 00000000 c13a7db4 c13a7d80 bf005304 c02727b8
7d80: c147a440 00000001 c13a7e98 c15a1560 00000000 00000001 c1704000 0000ffff
7da0: 00000000 0000001c c13a7dec c13a7db8 bf005888 bf005254 00000f95 0000006b
7dc0: c13a7dec c13a7dd0 c0277c80 c01b66bc bede29b0 c15a1560 0000921c c15a1560
7de0: c13a7f0c c13a7df0 bf008dfc bf0057a0 00000000 c13a6000 00000001 c13a7e70
7e00: 00000005 00000000 00000000 00000000 c13a7e44 c13a7e20 c00759d8 c00757b4
7e20: a0000013 c1373860 c0f48c80 c13a7ec1 0000000a c13a7ebc ffffffff 00000000
7e40: c13a7ec0 ffffffff c13a7e9c c13a7e58 c01b74f4 c01b6cc4 30687465 00000000
7e60: 00000000 00000000 00000005 001c1c92 00000402 0000feff c1329730 c1711d18
7e80: c03b95cc c1329730 c13296d8 c00a9044 c13a7eb0 c13a7ea0 c01b7628 c13a7ec0
7ea0: c13a7ebc c13a7eb0 c00a96b4 c00a9640 c13a7f14 c13a7ec0 c026de40 c008faac
7ec0: 3031315b c1005d32 c13a7efc c13a7ed8 c026ef58 bf007160 0000000c 00000000
7ee0: 0000044e c0fecc00 00008916 bede29b0 bede29b0 c0025624 c13a6000 00900036
7f00: c13a7f34 c13a7f10 c026eb40 bf0087ec c026f0cc c0fecc00 ffffffe7 bede29b0
7f20: 00000009 c0025624 c13a7f54 c13a7f38 c00a34e4 c026e904 c13a7f84 c0fecc00
7f40: bede29b0 00000000 c13a7f7c c13a7f58 c00a37c8 c00a34b8 fffffff2 00001c92
7f60: fffffff7 bede29b0 00008916 c0fecc00 c13a7fa4 c13a7f80 c00a382c c00a353c
7f80: c00825ec 00000000 bede29b0 00000009 00000000 00000036 00000000 c13a7fa8
7fa0: c0024ea0 c00a37f8 bede29b0 00000009 00000009 00008916 bede29b0 00000001
7fc0: bede29b0 00000009 00000000 00008916 00030428 0000feff bede29c0 0000001c
7fe0: 0002f364 bede29b0 0000b244 401da1d4 20000010 00000009 74000004 73657079
Backtrace:
[<c002a290>] (__bug+0x0/0x58) from [<c0272800>] (skb_over_panic+0x58/0x64)
[<c02727a8>] (skb_over_panic+0x0/0x64) from [<bf005304>] (aarp_send_probe+0xc0/0x1a8 [appletalk])
r7 = 00000000 r6 = 00000016 r5 = C73D30A0 r4 = C7D509D6
[<bf005244>] (aarp_send_probe+0x0/0x1a8 [appletalk]) from [<bf005888>] (aarp_probe_network+0xf8/0x12c [appletalk])
[<bf005790>] (aarp_probe_network+0x0/0x12c [appletalk]) from [<bf008dfc>] (atalk_ioctl+0x620/0xab0 [appletalk])
r5 = C15A1560 r4 = 0000921C
[<bf0087dc>] (atalk_ioctl+0x0/0xab0 [appletalk]) from [<c026eb40>] (sock_ioctl+0x24c/0x2a4)
[<c026e8f4>] (sock_ioctl+0x0/0x2a4) from [<c00a34e4>] (do_ioctl+0x3c/0x84)
r8 = C0025624 r7 = 00000009 r6 = BEDE29B0 r5 = FFFFFFE7
r4 = C0FECC00
[<c00a34a8>] (do_ioctl+0x0/0x84) from [<c00a37c8>] (vfs_ioctl+0x29c/0x2bc)
r6 = 00000000 r5 = BEDE29B0 r4 = C0FECC00
[<c00a352c>] (vfs_ioctl+0x0/0x2bc) from [<c00a382c>] (sys_ioctl+0x44/0x68)
r7 = C0FECC00 r6 = 00008916 r5 = BEDE29B0 r4 = FFFFFFF7
[<c00a37e8>] (sys_ioctl+0x0/0x68) from [<c0024ea0>] (ret_fast_syscall+0x0/0x2c)
r7 = 00000036 r6 = 00000000 r5 = 00000009 r4 = BEDE29B0
Code: eb00ab21 e59f0014 eb00ab1f e3a03000 (e5833000)
AppleTalk not up! Check your syslog for the reason. Child died.
f_type=0x58465342
total_size=159106084864 free_byes=81243918336
とまぁ、途中まではよかったのですがkernel panicを起こしてしまいました…orz appletalkモジュールが落ちているようですがiptablesモジュールと相性が悪いんでしょうか?原因不明です。もう少し試行錯誤が必要のようで…
取り合えずiptables関係のオプションを全てモジュールとしてビルドすれば問題なさそうなので起動後にmoduleを読み込ませるように方向転換。これで変更configのkernelも何とか動作(か?w)。
本体の/bootに今回作成したuImageをuImage.buffaloという名前でコピーし、同様に作成したmodules配下のディレクトリ(kernelのバージョン名になっている)を本体の/lib/modulesに持っていきます。これでtftp経由でなく、本体のみで起動出来ます(勿論、旧uImage.baffaloはリネーム等して温存しておいた方がいいでしょう)
iptables対応kernelが完成(?w)したところで、今度はユーザモードで動作するiptablesコマンドをビルドします。これも例の如くVineのSRPM"iptables-1.3.6-0vl1.src.rpm"を拝借しLS-GL側で作成します。iptablesのビルドにはkernelのソースが必要なのでクロス環境からLS-GLに持ってきます。ソースは適当な場所に置いて/usr/local/develop/srcにlinuxの名前でリンクを張っておきます。SRPMをバラしてspec以外はSOURCEに入れ、LS-GL用のパッチもSOUCEに追加します。LS-GL用のspecファイルはSEPCSに入れます:
$ rpmbuild -ba iptables.spec
$ rpm -ivh iptables-1.3.6-0vl1LS.armv5tejl.rpm
$ iptables -L
ビルドできたRPMをインストールし簡単なテストをします。iptables用のkernelモジュールはmodprobeでいちいち入れなくてもiptablesコマンドを実行すると勝手に必要なmoduleを入れてくれるみたいです。lsmodで確認:
root@LS-GL24A:~# lsmod
Module Size Used by
ipt_REJECT 4288 1
xt_state 1760 29
xt_tcpudp 3136 43
ipt_LOG 5664 1
xt_limit 2176 1
iptable_nat 6500 0
ip_nat 14482 1 iptable_nat
iptable_filter 2304 1
ip_tables 11720 2 iptable_nat,iptable_filter
x_tables 10564 7 ipt_REJECT,xt_state,xt_tcpudp,ipt_LOG,xt_limit,iptable_nat,ip_tables
ip_conntrack_ftp 6160 0
ip_conntrack 43980 4 xt_state,iptable_nat,ip_nat,ip_conntrack_ftp
appletalk 32464 20
psnap 3204 1 appletalk
llc 6068 1 psnap
root@LS-GL24A:~#
最近のkernelは玄箱ProやLinkstationに対応しているそうなので試しに動かしてみる。NAS Centralの記事などを参考にビルドしたのですが、実際にビルドする前に少々細工をしておきます。kernelには起動時に呼び出し側からマシンアーキテクチャID(MACH_TYPE_xxx)を渡すのですが、純正kernelと今回の最新(nico版)kernelではLS-GL(海外ではLSProという名前らしい)のMACH_TYPEが異なります(単純に番号が違うだけ)。具体的にはarch/asm/toolsのmach-typesファイルに一覧があるのですが、純正kernelではMACH_MV88fxx81(526)となっているところが、nico版ではMACH_LINKSTATION_PRO(1585)になっています。arm-linuxでは、この値をr1レジスタに入れて渡すのですが、その役目はu-boot側なのでflash内部にコードが書き込まれていると思われます。正しいMACH_TYPEを渡さないとkernelは正常に起動できないので、u-boot側を書き換えるか、kernel側を変更するしかありません。
新旧両kernelを使いたい、NAS Centralの手順にあるdebianのdevioコマンドの意味がサッパリ理解できない、flashを書き換えたくない等諸々の理由により、今回はkernel側を変更することにしました。nico版kernelのmach-typesで、既に別の機種として登録されている526番の行をコメントにして、LINKSTATION_PROの番号を1585から526に変更します:
#avila MACH_AVILA AVILA 526
:(中略)
#linkstation_pro MACH_LINKSTATION_PRO LINKSTATION_PRO 1585
linkstation_pro MACH_LINKSTATION_PRO LINKSTATION_PRO 526
細工を終えたらkernelをビルドします。因みにコンパイルにはCodeSourceryの最新版2008q1(gcc 4.2.3)を使いました。
$ make ARCH=arm orion5x_defconfig
$ make ARCH=arm menuconfig
$ make ARCH=arm CROSS_COMPILE=/usr/local/develop/bin/arm-none-linux-gnueabi- uImage modules
$ export INSTALL_MOD_PATH=/foo/bar ←modulesを仮インストールするパスを適当に設定
$ sudo make ARCH=arm CROSS_COMPILE=/usr/local/develop/bin/arm-none-linux-gnueabi- modules_install
なかなかmenuconfigで試行錯誤してしまいましたが、取り合えず動く設定が出来ました(参考までに.configを晒しておきますw)。
出来上がったら、LS-GL本体に持って行き動かします(既出の手順と同じ)。実験なのでテスト用のHDDに換装して作業しており、本番稼動用のHDDではやっていません。
<<stop_sound>>
## Booting image at 00100000 ...
Image Name: Linux-2.6.26-rc9-LSGL1
Created: 2008-08-09 6:39:19 UTC
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 1882116 Bytes = 1.8 MB
Load Address: 00008000
Entry Point: 00008000
Verifying Checksum ... OK
OK
## Loading Ramdisk Image at 00800000 ...
Image Name: initrd
Created: 2008-08-02 10:58:59 UTC
Image Type: ARM Linux RAMDisk Image (gzip compressed)
Data Size: 4881076 Bytes = 4.7 MB
Load Address: 00000000
Entry Point: 00000000
Verifying Checksum ... OK
Starting kernel ...
arg:console=ttyS0,115200 root=/dev/sda2 rw initrd=0x00800040,15M panic=5 BOOTVER=1.10
Uncompressing Linux......................................................................................................................... done, booting the kernel.
Linux version 2.6.26-rc9-LSGL1 (root@localhost.localdomain) (gcc version 4.2.3) #4 Sat Aug 9 15:37:18 JST 2008
CPU: Feroceon [41069260] revision 0 (ARMv5TEJ), cr=a0053177
Machine: Buffalo Linkstation Pro/Live
Clearing invalid memory bank 0KB@0xffffffff
Clearing invalid memory bank 0KB@0xffffffff
Clearing invalid memory bank 0KB@0xffffffff
Ignoring unrecognised tag 0x00000000
Ignoring unrecognised tag 0x00000000
Ignoring unrecognised tag 0x00000000
Ignoring unrecognised tag 0x41000403
Memory policy: ECC disabled, Data cache writeback
CPU0: D VIVT write-back cache
CPU0: I cache: 32768 bytes, associativity 1, 32 byte lines, 1024 sets
CPU0: D cache: 32768 bytes, associativity 1, 32 byte lines, 1024 sets
Built 1 zonelists in Zone order, mobility grouping on. Total pages: 32512
Kernel command line: console=ttyS0,115200 root=/dev/sda2 rw initrd=0x00800040,15M panic=5 BOOTVER=1.10
PID hash table entries: 512 (order: 9, 2048 bytes)
Console: colour dummy device 80x30
Dentry cache hash table entries: 16384 (order: 4, 65536 bytes)
Inode-cache hash table entries: 8192 (order: 3, 32768 bytes)
Memory: 128MB = 128MB total
Memory: 110520KB available (3524K code, 227K data, 124K init)
SLUB: Genslabs=12, HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
Mount-cache hash table entries: 512
CPU: Testing write buffer coherency: ok
net_namespace: 480 bytes
NET: Registered protocol family 16
Orion ID: MV88F5182-A2. TCLK=166666667.
SCSI subsystem initialized
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
NET: Registered protocol family 2
IP route cache hash table entries: 1024 (order: 0, 4096 bytes)
TCP established hash table entries: 4096 (order: 3, 32768 bytes)
TCP bind hash table entries: 4096 (order: 2, 16384 bytes)
TCP: Hash tables configured (established 4096 bind 4096)
TCP reno registered
NET: Registered protocol family 1
checking if image is initramfs...it isn't (no cpio magic); looks like an initrd
Freeing initrd memory: 15360K
JFFS2 version 2.2. (NAND) 2001-2006 Red Hat, Inc.
SGI XFS with security attributes, large block numbers, no debug enabled
msgmni has been set to 246
io scheduler noop registered
io scheduler anticipatory registered
io scheduler deadline registered
io scheduler cfq registered (default)
Serial: 8250/16550 driver $Revision: 1.90 $ 2 ports, IRQ sharing disabled
serial8250.0: ttyS0 at MMIO 0xf1012000 (irq = 3) is a 16550A
console [ttyS0] enabled
serial8250.1: ttyS1 at MMIO 0xf1012100 (irq = 4) is a 16550A
brd: module loaded
loop: module loaded
MV-643xx 10/100/1000 Ethernet Driver
net eth0: port 0 with MAC address 00:16:01:21:c2:4a
net eth0: scatter/gather enabled
net eth0: tx checksum offload
net eth0: napi enabled
Driver 'sd' needs updating - please use bus_type methods
sata_mv sata_mv.0: version 1.24
sata_mv sata_mv.0: slots 32 ports 2
scsi0 : sata_mv
scsi1 : sata_mv
ata1: SATA max UDMA/133 irq 29
ata2: SATA max UDMA/133 irq 29
ata1: SATA link down (SStatus 0 SControl 300)
ata2: SATA link up 1.5 Gbps (SStatus 113 SControl 300)
ata2.00: ATA-6: TOSHIBA MK1032GSX, AS021G, max UDMA/100
ata2.00: 195371568 sectors, multi 16: LBA48 NCQ (depth 31/32)
ata2.00: configured for UDMA/100
scsi 1:0:0:0: Direct-Access ATA TOSHIBA MK1032GS AS02 PQ: 0 ANSI: 5
sd 1:0:0:0: [sda] 195371568 512-byte hardware sectors (100030 MB)
sd 1:0:0:0: [sda] Write Protect is off
sd 1:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
sd 1:0:0:0: [sda] 195371568 512-byte hardware sectors (100030 MB)
sd 1:0:0:0: [sda] Write Protect is off
sd 1:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
sda: sda1 sda2 sda4 < sda5 sda6 >
sd 1:0:0:0: [sda] Attached SCSI disk
physmap platform flash device: 00040000 at f4000000
Found: SST 39LF020
physmap-flash.0: Found 1 x8 devices at 0x0 in 8-bit bank
number of JEDEC chips: 1
cfi_cmdset_0002: Disabling erase-suspend-program due to code brokenness.
RedBoot partition parsing not available
orion-ehci orion-ehci.0: Marvell Orion EHCI
orion-ehci orion-ehci.0: new USB bus registered, assigned bus number 1
orion-ehci orion-ehci.0: irq 17, io mem 0xf1050000
orion-ehci orion-ehci.0: USB 2.0 started, EHCI 1.00, driver 10 Dec 2004
usb usb1: configuration #1 chosen from 1 choice
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 1 port detected
orion-ehci orion-ehci.1: Marvell Orion EHCI
orion-ehci orion-ehci.1: new USB bus registered, assigned bus number 2
orion-ehci orion-ehci.1: irq 12, io mem 0xf10a0000
orion-ehci orion-ehci.1: USB 2.0 started, EHCI 1.00, driver 10 Dec 2004
usb usb2: configuration #1 chosen from 1 choice
hub 2-0:1.0: USB hub found
hub 2-0:1.0: 1 port detected
i2c /dev entries driver
rtc-rs5c372 0-0032: rs5c372a found, 24hr, driver version 0.5
rtc-rs5c372 0-0032: rtc core: registered rtc-rs5c372 as rtc0
usbcore: registered new interface driver usbhid
usbhid: v2.6:USB HID core driver
oprofile: using timer interrupt.
TCP cubic registered
NET: Registered protocol family 17
RPC: Registered udp transport module.
RPC: Registered tcp transport module.
rtc-rs5c372 0-0032: setting system clock to 2008-08-09 06:48:48 UTC (1218264528)
RAMDISK: Compressed image found at block 0
VFS: Mounted root (ext2 filesystem).
---- in linuxrc ---
普通に動いているみたいですが、shutdownで電源が落ちません・・・(haltはします)。BuffaloのMICONドライバや/procが無いせいかもしれませんが、電源offのpatch相当のものはコードに含まれているので電源が切れてもよさそうなもんですが、理由はよくわかりません。LS-GLのbusyboxにはpoweroffコマンドがありませんが、LS-GLのbusyboxソース中の.configを見るとpoweroffコマンドもビルドされているようなので、/sbinからpoweroffの名前で/bin/busyboxにリンクを張り、それを実行すると見事に電源まで落ちました。LS-GLのshutdownコマンドはhaltコマンドを実行するので、haltしかしなかったのか・・・(2008/08/10追記)。boot中のログでも/proc/buffaloが存在しないので純正の起動scriptで結構ワーニングが出ます(それでも起動はちゃんとできます)。
とにかく、最新版のkernelも動きそうだということが確認出来たので善としましょう、その他は今後の課題ですかね。
The system is going down NOW !!
Sending SIGTERM to all processes.
Sending SIGK
The system is halted.
sd 1:0:0:0: [sda] Synchronizing SCSI cache
sd 1:0:0:0: [sda] Stopping disk
Power down.
kurobox_pro_power_off: triggering power-off...
+++++++++++++++++ P O W E R O F F ++++++++++++++++++++++ ←確認の為、kernelソースの電源off処理にprintkを埋め込みましたw
ata2: exception Emask 0x10 SAct 0x0 SErr 0x190002 action 0xe frozen
ata2: edma_err_cause=00000020 pp_flags=00000002, SError=00180000
ata2: SError: { RecovComm PHYRdyChg 10B8B Dispar }
ata2: hard resetting link
bootの様子をキャプチャーしたTeraTerm動画でw
素直にdebianを入れた方が建設的な気がしますが、まぁ、余興としては面白いかとw