tar tzvf kernelimage-2.6.20-kuroHG-uImage.tgz
すると、こうなる。
-rw-r--r-- hiroyuki/hiroyuki 28597 2007-02-05 23:02:25 .config
-rw-r--r-- hiroyuki/hiroyuki 675670 2007-02-05 23:02:25 System.map
lrwxrwxrwx hiroyuki/hiroyuki 0 2007-01-09 23:15:55 vmlinux.UBoot -> uImage
-rw-r--r-- hiroyuki/hiroyuki 1319184 2007-02-05 23:02:25 uImage
これを /boot/ のところに入れておく。
u-bootでは決め打ちで、 /boot/vmlinux.UBoot を読み込むので、
uImageをリンクしてる。
また、フラッシュメモリィにローダを書き込むために、
/mnt/share/u-boot/u-boot-hg.flash.bin
も用意しておく。
FlashRonの2(/dev/fl2)を書き換える。これが失敗だと、玄箱/HGが死にます。
だから、こわいので慎重に。(/dev/fl2がブートローダの場所)
私はいきなりそれをするのは怖いので。
次のようなステップで行いました。
RAM用のu-bootブートローダ→→→u-boot-hg.ram.bin
ROM用のu-bootブートローダ→→→u-boot-hg.flash.bin
RAM用に作ったu-bootをu-boot-hg.ram.binという名称で/mnt/share/u-boot/に置いて、
カーネルモジュールuloader.oを使います。
(uloader.oはversionミスマッチするのでソースから作った。)
sync;sync;insmod /boot/uloader.o uboot=/mnt/share/u-boot/u-boot-hg.ram.bin
init 6
(これで疑似的に/dev/fl2から読み出したかのようにしてブートを実行)
他のマシンでnc(netcat)接続しておいてあり、こっちのマシンから、
監視をしておく。ちゃんとカーネルが読み込まれるか。
失敗すると、FLASH-ROM内のカーネルが読み込まれる。
成功すると、こうなる。(他のマシン(totoro)で % nc.sh しておく)
Listening on 192.168.11.149 6666 (他のマシン=192.168.11.149)
Received packet from 192.168.11.150:6666 -> 192.168.11.149:6666 (local)
U-Boot 1.1.4 LiSt 2.1.0 (Sep 21 2006 - 00:14:53) LinkStation HG / KuroBox HG
Bus 0: OK
Device 0: Model: SAMSUNG SV1604N Firm: TR100-24 Ser#: S01FJ10XB25384
Type: Hard Disk
Supports 48-bit addressing
Capacity: 152627.8 MB = 149.0 GB (312581808 x 512)
Boot in 01 seconds ('s' to stop)...
Loading 0:1:boot/vmlinux.UBoot
1319184 bytes read
## Booting image at 00800000 ...
Image Name: Linux-2.6.20-kuroboxHG
Image Type: PowerPC Linux Kernel Image (gzip compressed)
Data Size: 1319120 Bytes = 1.3 MB
Load Address: 00000000
Entry Point: 00000000
Verifying Checksum ... OK
Uncompressing Kernel Image ... OK
ibookg4:~ kamii$ ssh kurobox
kamii@kurobox's password:
Last login: Sat Feb 24 08:58:42 2007 from book7
kurobox:kamii$ date
2007年 2月 24日 土曜日 01:26:37 JST
kurobox:kamii$ uname -a
Linux kurobox 2.6.20-kuroboxHG #1 Mon Feb 5 22:40:49 JST 2007 ppc unknown
kurobox:kamii$
arpwatch: bogon 192.168.0.25 0:d:b:69:5b:be
arpwatch: bogon 192.168.0.25 0:d:b:69:5b:be
arpwatch: bogon 192.168.11.150 0:d:b:69:5b:be
arpwatch: bogon 192.168.11.150 0:d:b:69:5b:be
電源オン、または # shutdown -r now で
U-Boot 1.1.4 LiSt 2.1.0 (Sep 21 2006 - 00:14:53) LinkStation HG / KuroBox HG
stdin : nc
stdout: nc
stderr: nc
IDE: Bus 0: OK
Device 0: Model: SAMSUNG SV1604N Firm: TR100-24 Ser#: S01FJ10XB25384
Type: Hard Disk
Supports 48-bit addressing
Capacity: 152627.8 MB = 149.0 GB (312581808 x 512)
Boot in 10 seconds ('s' to stop)...
=>
=> ?
? - alias for 'help'
base - print or set address offset
bdinfo - print Board Info structure
boot - boot default, i.e., run 'bootcmd'
bootd - boot default, i.e., run 'bootcmd'
bootm - boot application image from memory
bootp - boot image via network using BootP/TFTP protocol
cmp - memory compare
coninfo - print console devices and information
cp - memory copy
crc32 - checksum calculation
dhcp - invoke DHCP client to obtain IP/boot params
diskboot- boot from IDE device
echo - echo args to console
erase - erase FLASH memory
ext2load- load binary file from a Ext2 filesystem
ext2ls - list files in a directory (default /)
flinfo - print FLASH memory information
go - start application at address 'addr'
help - print online help
ide - IDE sub-system
loadb - load binary file over serial line (kermit mode)
loads - load S-Record file over serial line
loop - infinite loop on address range
md - memory display
mm - memory modify (auto-incrementing)
mtest - simple RAM test
mw - memory write (fill)
nfs - boot image via network using NFS protocol
nm - memory modify (constant address)
pci - list and access PCI Configuration Space
ping - send ICMP ECHO_REQUEST to network host
printenv- print environment variables
protect - enable or disable FLASH write protection
rarpboot- boot image via network using RARP/TFTP protocol
reset - Perform RESET of the CPU
run - run commands in an environment variable
saveenv - save environment variables to persistent storage
setenv - set environment variables
tftpboot- boot image via network using TFTP protocol
version - print monitor version
=>
=> flinfo
Bank # 1: Flash chip: FUJITSU MBM29PL32TM
CFI Query Results:
Primary Vendor Command Set: 0x0002 (AMD/Fujitsu Standard)
Primary Algorithm Table at 0x0040
Alternate Vendor Command Set: 0x0000 (None)
No Alternate Algorithm Table
Vcc Min.: 2.7 V
Vcc Max.: 3.6 V
No Vpp line
Typical byte/word write timeout: 128 us
Maximum byte/word write timeout: 256 us
Typical full buffer write timeout: 128 us
Maximum full buffer write timeout: 4096 us
Typical block erase timeout: 1024 ms
Maximum block erase timeout: 16384 ms
Chip erase not supported
Device size: 0x400000 bytes (4 MiB)
Flash Device Interface description: 0x0002
- x8 / x16 via BYTE# with asynchronous interface
Max. bytes in buffer write: 32
Number of Erase Block Regions: 2
Actual values used by U-Boot:
Word write timeout: 2 ms
Buffer write timeout: 5 ms
Sector erase timeout: 16384 ms
Size: 4 MiB in 71 Sectors
Sector Start Addresses:
FFC00000 (RO) FFC10000 (RO) FFC20000 (RO) FFC30000 (RO) FFC40000 (RO)
FFC50000 (RO) FFC60000 (RO) FFC70000 (RO) FFC80000 (RO) FFC90000 (RO)
FFCA0000 (RO) FFCB0000 (RO) FFCC0000 (RO) FFCD0000 (RO) FFCE0000 (RO)
FFCF0000 (RO) FFD00000 (RO) FFD10000 (RO) FFD20000 (RO) FFD30000 (RO)
FFD40000 (RO) FFD50000 (RO) FFD60000 (RO) FFD70000 (RO) FFD80000 (RO)
FFD90000 (RO) FFDA0000 (RO) FFDB0000 (RO) FFDC0000 (RO) FFDD0000 (RO)
FFDE0000 (RO) FFDF0000 (RO) FFE00000 (RO) FFE10000 (RO) FFE20000 (RO)
FFE30000 (RO) FFE40000 (RO) FFE50000 (RO) FFE60000 (RO) FFE70000 (RO)
FFE80000 (RO) FFE90000 (RO) FFEA0000 (RO) FFEB0000 (RO) FFEC0000 (RO)
FFED0000 (RO) FFEE0000 (RO) FFEF0000 (RO) FFF00000 (RO) FFF10000 (RO)
FFF20000 (RO) FFF30000 (RO) FFF40000 (RO) FFF50000 (RO) FFF60000 (RO)
FFF70000 (RO) FFF80000 (RO) FFF90000 (RO) FFFA0000 (RO) FFFB0000 (RO)
FFFC0000 (RO) FFFD0000 (RO) FFFE0000 (RO) FFFF0000 (RO) FFFF2000 (RO)
FFFF4000 (RO) FFFF6000 (RO) FFFF8000 (RO) FFFFA000 (RO) FFFFC000 (RO)
FFFFE000 (RO)
=>
=> bdinfo
memstart = 0x00000000
memsize = 0x08000000
flashstart = 0xFFC00000
flashsize = 0x00400000
flashoffset = 0x00000000
sramstart = 0x00000000
sramsize = 0x00000000
bootflags = 0x00000001
intfreq = 262.144 MHz
busfreq = 131.072 MHz
ethaddr = 00:0D:0B:69:5B:BE
IP addr = 192.168.11.150
baudrate = 57600 bps
=>
=> coninfo
List of available devices:
serial 80000003 SIO
nc 80000003 SIO stdin stdout stderr
=>
=> version
U-Boot 1.1.4 LiSt 2.1.0 (Sep 21 2006 - 00:14:53) LinkStation HG / KuroBox HG
=>
=> printenv
bootargs=root=/dev/hda1
bootcmd=run bootcmd1
nfsboot=bootp;run nfsargs;bootm
bootdelay=10
baudrate=57600
autoload=no
stdin=nc
stdout=nc
stderr=nc
ipaddr=192.168.11.150
netmask=255.255.255.0
serverip=192.168.11.149
ncip=192.168.11.149
netretry=no
nc=setenv stdin nc;setenv stdout nc;setenv stderr nc
ser=setenv stdin serial;setenv stdout serial;setenv stderr serial
ldaddr=800000
hdpart=0:1
hdfile=boot/vmlinux.UBoot
hdload=echo Loading ${hdpart}:${hdfile};ext2load ide ${hdpart} ${ldaddr} ${hdfile}
boothd=setenv bootargs root=/dev/hda1;bootm ${ldaddr}
hdboot=run hdload boothd
flboot=setenv bootargs root=/dev/hda1;bootm ffc00000
emboot=setenv bootargs root=/dev/ram0;bootm ffc00000
nfsargs=setenv bootargs root=/dev/nfs rw nfsroot=${serverip}:${rootpath} ip=${ipaddr}:${serverip}:${gatewayip}:${netmask}:${hostname}::off
bootretry=30
bootcmd1=run hdboot;run flboot
bootcmd2=run flboot
bootcmd3=run emboot
writeng=protect off fff70000 fff7ffff;era fff70000 fff7ffff;mw.l 800000 4e474e47 1;cp.b 800000 fff70000 4
writeok=protect off fff70000 fff7ffff;era fff70000 fff7ffff;mw.l 800000 4f4b4f4b 1;cp.b 800000 fff70000 4
ubpart=0:3
ubfile=share/u-boot/u-boot-hg.flash.bin
ubload=echo Loading ${ubpart}:${ubfile};ext2load ide ${ubpart} ${ldaddr} ${ubfile}
ubsaddr=fff00000
ubeaddr=fff2ffff
ubflash=protect off ${ubsaddr} ${ubeaddr};era ${ubsaddr} ${ubeaddr};cp.b ${ldaddr} ${ubsaddr} ${filesize};cmp.b ${ldaddr} ${ubsaddr} ${filesize}
upgrade=run ubload ubflash
ethact=RTL8169#0
Environment size: 1476/65532 bytes
=>
=> run flboot
## Booting image at ffc00000 ...
******* Product Information *******
----------------------------------
Product Name: KURO-BOX/HG(IESHIGE)
VER: 1.00
Date: 2004/10/19 17:18:54
----------------------------------
Verifying checksum... OK
Uncompressing kernel...done.
Loading Ramdisk at 0x07C58000, end 0x07E6E615 ... OK
Booting the kernel
"^T"を打つ。 (ncが終了)
/usr/local/sbin/arpwatch -d -i eth1 2>&1 | fgrep 0:d:b:69:5b:be
他のマシンで監視するとき、^Cが使えるほうがいいので、nc.sh実行ファイルを用意し、
% nc.sh で起動する。
中身はこの3行
stty -icanon -echo intr ^T
nc -v -v -n -u -l -s 192.168.11.149 -p 6666 ${TARGET_IP} 6666
stty icanon echo intr ^C
|
そうそう。
ncでは"-l"を追加しておかないとうまくいかない。これにひっかかってしまった。
いろんなのを見ると"-l"が記述されてない。ところが自分でコンパイルして
作ったnetcatでは、 -l が必要。
|
いっぽうで、arpwatchで監視もしたいので、これもやっておいた。
/usr/local/sbin/arpwatch -d -i eth1 2>&1 | fgrep 0:d:b:69:5b:be
arpwatch: bogon 192.168.0.25 0:d:b:69:5b:be
arpwatch: bogon 192.168.0.25 0:d:b:69:5b:be
arpwatch: bogon 192.168.11.150 0:d:b:69:5b:be
arpwatch: bogon 192.168.11.150 0:d:b:69:5b:be
arpwatch: bogon 192.168.11.150 0:d:b:69:5b:be
arpwatch: bogon 192.168.11.150 0:d:b:69:5b:be
arpwatch: bogon 192.168.11.150 0:d:b:69:5b:be
arpwatch: bogon 192.168.0.25 0:d:b:69:5b:be <<<--- IP-ADDRが切り換わった
|