レンガからの脱出

玄柴(KURO-SHEEVA)

flash に書いたカーネルから起動しなくなったので、 次は tftp boot。もう後がなひ

uImage の準備

tftp サーバの LS-GL で uImage を準備する
yasunari@ude:~$ cd /srv/tftp/
yasunari@ude:/srv/tftp$ unzip /mnt/SheevaPlug/cd_1.2b/SheevaPlug_USB-Recovery1.2.zip
Archive:  /mnt/SheevaPlug/cd_1.2b/SheevaPlug_USB-Recovery1.2.zip
  inflating: USB_Recovery/flashware.img
  inflating: USB_Recovery/u-boot-rd88f6281Sheevaplug_400db_nand.bin
  inflating: USB_Recovery/uImage.sheeva.040309
yasunari@ude:/srv/tftp$ mkdir SheevaPlug_1.2
yasunari@ude:/srv/tftp$ mv USB_Recovery/uImage.sheeva.040309 !$
mv USB_Recovery/uImage.sheeva.040309 SheevaPlug_1.2
yasunari@ude:/srv/tftp$ rm -fr USB_Recovery
yasunari@ude:/srv/tftp$ ln SheevaPlug_1.2/uImage.sheeva.040309 .
yasunari@ude:/srv/tftp$

tftp boot の設定

SheevaPlug Development Kit - Writing Jaunty Filesystem on the NAND flash-Rev1.2.pdf を参考に、環境変数を設定する。 mtdparts の設定は、 SheevaPlug Development Kit - Writing Jaunty Filesystem on the NAND flash-Rev1.2.pdf とは異なる。
Marvell>> set ipaddr 192.168.2.89
Marvell>> set serverip 192.168.2.38
Marvell>> set rootpath '/home/rootfsv1.0'
Marvell>> set image_name uImage.sheeva.040309
Marvell>> set console 'console=ttyS0,115200 mtdparts=nand_mtd:0x400000@0x100000(uImage),0x1fb00000@0x500000(rootfs)'
Marvell>> set bootargs_root 'root=/dev/nfs rw'
Marvell>> set bootcmd 'tftpboot 0x2000000 $(image_name);setenv bootargs $(console) $(bootargs_root) nfsroot=$(serverip):$(rootpath) ip=$(ipaddr):$(serverip)$(bootargs_end); bootm 0x2000000'
Marvell>> saveenv
Saving Environment to NAND...
Erasing Nand...Writing to Nand... done
Marvell>> 

再起動

Marvell>> reset
	:
USB 0: host mode
PEX 0: interface detected no Link.
Net:   egiga0 [PRIME], egiga1
Hit any key to stop autoboot:  0
Using egiga0 device
TFTP from server 192.168.2.38; our IP address is 192.168.2.89
Filename 'uImage.sheeva.040309'.
Load address: 0x2000000
Loading: #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         ###############
done
Bytes transferred = 2070316 (1f972c hex)
## Booting image at 02000000 ...
   Image Name:   Linux-2.6.22.18
   Created:      2009-04-04   1:49:44 UTC
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    2070252 Bytes =  2 MB
   Load Address: 00008000
   Entry Point:  00008000
   Verifying Checksum ... OK
OK

Starting kernel ...

Uncompressing Linux.................................................................................................................................. done, booting the kernel.

やっぱりここで止った。 uImage.sheeva.040309 ではだめなのか??

2.6.37 の uImage

2.6.37 の uImage でも試してみる

tftp サーバの LS-GL で uImage をダウンロード

yasunari@ude:/srv/tftp$ rm uImage.sheeva.040309
yasunari@ude:/srv/tftp$ cd SheevaPlug_1.2/
yasunari@ude:/srv/tftp/SheevaPlug_1.2$ wget http://sheeva.with-linux.com/sheeva/2.6.37/sheeva-2.6.37-uImage
--2011-02-06 21:29:34--  http://sheeva.with-linux.com/sheeva/2.6.37/sheeva-2.6.37-uImage
Resolving sheeva.with-linux.com... 216.146.103.100, 2001:470:b:3e:250:43ff:fe01:c1bd
Connecting to sheeva.with-linux.com|216.146.103.100|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 2773928 (2.6M) [application/octet-stream]
Saving to: `sheeva-2.6.37-uImage'

100%[======================================>] 2,773,928   50.8K/s   in 66s

2011-02-06 21:30:44 (40.8 KB/s) - `sheeva-2.6.37-uImage' saved [2773928/2773928]

yasunari@ude:/srv/tftp/SheevaPlug_1.2$
玄柴側ではそれを指定してブート
Marvell>> set image_name sheeva-2.6.37-uImage
Marvell>> saveenv
Saving Environment to NAND...
Erasing Nand...Writing to Nand... done
Marvell>> reset

         __  __                      _ _
        |  \/  | __ _ _ ____   _____| | |
        | |\/| |/ _` | '__\ \ / / _ \ | |
        | |  | | (_| | |   \ V /  __/ | |
        |_|  |_|\__,_|_|    \_/ \___|_|_|
 _   _     ____              _
| | | |   | __ )  ___   ___ | |_
| | | |___|  _ \ / _ \ / _ \| __|
| |_| |___| |_) | (_) | (_) | |_
 \___/    |____/ \___/ \___/ \__|
 ** MARVELL BOARD: SHEEVA PLUG LE

U-Boot 1.1.4 (Sep  7 2009 - 20:21:09) Marvell version: 3.4.16

U-Boot code: 00600000 -> 0067FFF0  BSS: -> 006CEE60

Soc: 88F6281 A0 (DDR2)
CPU running @ 1200Mhz L2 running @ 400Mhz
SysClock = 400Mhz , TClock = 200Mhz

DRAM CAS Latency = 5 tRP = 5 tRAS = 18 tRCD=6
DRAM CS[0] base 0x00000000   size 256MB
DRAM CS[1] base 0x10000000   size 256MB
DRAM Total size 512MB  16bit width
Flash:  0 kB
Addresses 8M - 0M are saved for the U-Boot usage.
Mem malloc Initialization (8M - 7M): Done
NAND:512 MB

CPU : Marvell Feroceon (Rev 1)

Streaming disabled
Write allocate disabled


USB 0: host mode
PEX 0: interface detected no Link.
Net:   egiga0 [PRIME], egiga1
Hit any key to stop autoboot:  0
Using egiga0 device
TFTP from server 192.168.2.38; our IP address is 192.168.2.89
Filename 'sheeva-2.6.37-uImage'.
Load address: 0x2000000
Loading: #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         ######################
done
Bytes transferred = 2773928 (2a53a8 hex)
## Booting image at 02000000 ...
   Image Name:   Linux-2.6.37
   Created:      2011-01-23   5:39:39 UTC
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    2773864 Bytes =  2.6 MB
   Load Address: 00008000
   Entry Point:  00008000
   Verifying Checksum ... OK
OK

Starting kernel ...

Uncompressing Linux... done, booting the kernel.
Linux version 2.6.37 (kelly@speedy) (gcc version 4.5.2 (PlugComputer G++ 20110117) ) #3 PREEMPT Sat Jan 22 22:39:36 MST 2011
CPU: Feroceon 88FR131 [56251311] revision 1 (ARMv5TE), cr=00053177
CPU: VIVT data cache, VIVT instruction cache
Machine: Marvell eSATA SheevaPlug Reference Board
Memory policy: ECC disabled, Data cache writeback
Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 130048
Kernel command line: console=ttyS0,115200 mtdparts=nand_mtd:0x100000@0(uboot)ro,0x0@0x100000(uImage),0x1ff00000@0x100000(rootfs)rw root=/dev/nfs rw nfsroot=192.168.2.38:/home/rootfsv1.0 ip=192.168.2.89:192.168.2.38:::DB88FXX81:eth0:none
PID hash table entries: 2048 (order: 1, 8192 bytes)
Dentry cache hash table entries: 65536 (order: 6, 262144 bytes)
Inode-cache hash table entries: 32768 (order: 5, 131072 bytes)
Memory: 512MB = 512MB total
Memory: 513288k/513288k available, 11000k reserved, 0K highmem
Virtual kernel memory layout:
    vector  : 0xffff0000 - 0xffff1000   (   4 kB)
    fixmap  : 0xfff00000 - 0xfffe0000   ( 896 kB)
    DMA     : 0xffc00000 - 0xffe00000   (   2 MB)
    vmalloc : 0xe0800000 - 0xfe800000   ( 480 MB)
    lowmem  : 0xc0000000 - 0xe0000000   ( 512 MB)
    modules : 0xbf000000 - 0xc0000000   (  16 MB)
      .init : 0xc0008000 - 0xc0030000   ( 160 kB)
      .text : 0xc0030000 - 0xc0550620   (5250 kB)
      .data : 0xc0552000 - 0xc0584080   ( 201 kB)
SLUB: Genslabs=13, HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
Preemptable hierarchical RCU implementation.
        RCU-based detection of stalled CPUs is disabled.
        Verbose stalled-CPUs detection is disabled.
NR_IRQS:114
Console: colour dummy device 80x30
Calibrating delay loop... 1192.75 BogoMIPS (lpj=5963776)
pid_max: default: 32768 minimum: 301
Mount-cache hash table entries: 512
CPU: Testing write buffer coherency: ok
NET: Registered protocol family 16
Kirkwood: MV88F6281-A0, TCLK=200000000.
Feroceon L2: Enabling L2
Feroceon L2: Cache support initialised.
bio: create slab  at 0
vgaarb: loaded
SCSI subsystem initialized
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
Switching to clocksource orion_clocksource
FS-Cache: Loaded
NET: Registered protocol family 2
IP route cache hash table entries: 4096 (order: 2, 16384 bytes)
TCP established hash table entries: 16384 (order: 5, 131072 bytes)
TCP bind hash table entries: 16384 (order: 4, 65536 bytes)
TCP: Hash tables configured (established 16384 bind 16384)
TCP reno registered
UDP hash table entries: 256 (order: 0, 4096 bytes)
UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
NET: Registered protocol family 1
RPC: Registered udp transport module.
RPC: Registered tcp transport module.
RPC: Registered tcp NFSv4.1 backchannel transport module.
FS-Cache: Netfs 'nfs' registered for caching
JFFS2 version 2.2. (NAND) 息 2001-2006 Red Hat, Inc.
JFS: nTxBlock = 4010, nTxLock = 32080
msgmni has been set to 1002
io scheduler noop registered
io scheduler deadline registered
io scheduler cfq registered (default)
Serial: 8250/16550 driver, 2 ports, IRQ sharing disabled
serial8250.0: ttyS0 at MMIO 0xf1012000 (irq = 33) is a 16550A
console [ttyS0] enabled
brd: module loaded
loop: module loaded
NAND device: Manufacturer ID: 0xec, Chip ID: 0xdc (Samsung )
Scanning device for bad blocks
mtd: partition size too small (0)
Creating 3 MTD partitions on "orion_nand":
0x000000000000-0x000000100000 : "u-boot"
0x000000100000-0x000000500000 : "uImage"
0x000000500000-0x000020000000 : "root"
MV-643xx 10/100/1000 ethernet driver version 1.4
mv643xx_eth smi: probed
net eth0: port 0 with MAC address 00:50:43:01:44:96
ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
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 19, io mem 0xf1050000
orion-ehci orion-ehci.0: USB 2.0 started, EHCI 1.00
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 1 port detected
Initializing USB Mass Storage driver...
usbcore: registered new interface driver usb-storage
USB Mass Storage support registered.
usbcore: registered new interface driver ums-datafab
usbcore: registered new interface driver ums-freecom
usbcore: registered new interface driver ums-jumpshot
usbcore: registered new interface driver ums-sddr09
usbcore: registered new interface driver ums-sddr55
mice: PS/2 mouse device common for all mice
rtc-mv rtc-mv: rtc core: registered rtc-mv as rtc0
i2c /dev entries driver
cpuidle: using governor ladder
cpuidle: using governor menu
mv_xor_shared mv_xor_shared.0: Marvell shared XOR driver
mv_xor_shared mv_xor_shared.1: Marvell shared XOR driver
mv_xor mv_xor.0: Marvell XOR: ( xor cpy )
mv_xor mv_xor.1: Marvell XOR: ( xor fill cpy )
mv_xor mv_xor.2: Marvell XOR: ( xor cpy )
mv_xor mv_xor.3: Marvell XOR: ( xor fill cpy )
sdhci: Secure Digital Host Controller Interface driver
sdhci: Copyright(c) Pierre Ossman
mmc0: mvsdio driver initialized, using GPIO 47 for card detection
usbcore: registered new interface driver usbhid
usbhid: USB HID core driver
oprofile: hardware counters not available
oprofile: using timer interrupt.
TCP cubic registered
NET: Registered protocol family 17
lib80211: common routines for IEEE802.11 drivers
Registering the dns_resolver key type
registered taskstats version 1
rtc-mv rtc-mv: setting system clock to 2011-02-06 21:34:51 UTC (1297028091)
IP-Config: Guessing netmask 255.255.255.0
IP-Config: Complete:
     device=eth0, addr=192.168.2.89, mask=255.255.255.0, gw=255.255.255.255,
     host=DB88FXX81, domain=, nis-domain=(none),
     bootserver=192.168.2.38, rootserver=192.168.2.38, rootpath=
eth0: link up, 1000 Mb/s, full duplex, flow control disabled
VFS: Unable to mount root fs via NFS, trying floppy.
VFS: Cannot open root device "nfs" or unknown-block(2,0)
Please append a correct "root=" boot option; here are the available partitions:
1f00            1024 mtdblock0  (driver?)
1f01            4096 mtdblock1  (driver?)
1f02          519168 mtdblock2  (driver?)
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(2,0)
[] (unwind_backtrace+0x0/0xe0) from [] (panic+0x58/0x17c)
[] (panic+0x58/0x17c) from [] (mount_block_root+0x1bc/0x1fc)
[] (mount_block_root+0x1bc/0x1fc) from [] (mount_root+0xa0/0xc0)
[] (mount_root+0xa0/0xc0) from [] (prepare_namespace+0x164/0x1b8)
[] (prepare_namespace+0x164/0x1b8) from [] (kernel_init+0x10c/0x14c)
[] (kernel_init+0x10c/0x14c) from [] (kernel_thread_exit+0x0/0x8)
こっちは、tftp boot するけど、NFS root で panic する

別の uImage

1.0 の uImage でも試す

tftp サーバの LS-GL で。

ude:/srv/tftp# unzip /mnt/SheevaPlug/cd/SheevaPlug_LSP.zip
Archive:  /mnt/SheevaPlug/cd/SheevaPlug_LSP.zip
   creating: Image/
  inflating: Image/uImage.sheeva.20090319
   creating: Sources/
  inflating: Sources/linux-2.6.22.18.tar.bz2
ude:/srv/tftp# mv Image/uImage.sheeva.20090319 SheevaPlu
ude:/srv/tftp# rm -fr Sources/
ude:/srv/tftp# mv Image/ SheevaPlug_1.0
ude:/srv/tftp#
玄柴でそれを指定
Marvell>> set image_name uImage.sheeva.20090319
Marvell>> saveenv
Saving Environment to NAND...
Erasing Nand...Writing to Nand... done
Marvell>> reset
	:
	:
Starting kernel ...

Uncompressing Linux.................................................................................................................................... done, booting the kernel.

やっぱりここで止る。

とりあえずレンガからの脱出

カーネルは sheeva-2.6.37-uImage を tftp boot
ファイルシステムは flash で起動する。
Marvell>> set image_name sheeva-2.6.37-uImage
Marvell>> set bootcmd 'tftpboot 0x2000000 $(image_name); setenv bootargs rootfstype=jffs2 console=ttyS0,115200 mtdparts=orion_nand:0x400000@0x100000(uImage),0x1fb00000@0x500000(rootfs) rw root=/dev/mtdblock1 ip=$(ipaddr):$(serverip)$(bootargs_end); bootm 0x2000000'
Marvell>> savenv
Unknown command 'savenv' - try 'help'
Marvell>> saveenv
Saving Environment to NAND...
Erasing Nand...Writing to Nand... done
Marvell>> reset
	:
	:
Ubuntu jaunty (development branch) debian ttyS0

debian login: root
Password:
Last login: Sun Feb  6 20:26:12 UTC 2011 on ttyS0
Linux debian 2.6.37 #3 PREEMPT Sat Jan 22 22:39:36 MST 2011 armv5tel

The programs included with the Ubuntu system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by
applicable law.

To access official Ubuntu documentation, please visit:
http://help.ubuntu.com/
root@debian:~#
起動した。
Flash のカーネルを更新する。
root@debian:~# bash -x README-2.6.37 --nandkernel
+ set -e
	:
	:
Writing data to block 220000
Writing data to block 240000
Writing data to block 260000
Writing data to block 280000
Writing data to block 2a0000
root@debian:~# head -20 README-2.6.37
#! /bin/bash
#
# Sheeva kernel install
# This README can be used to flash the new kernel
# Watch out for erase/flash errors
# If errors are encountered you should redo the flash
#
# This is a mainline Linux Kernel and you must set
# the mainlineLinux and arcNumber env variables in U-Boot
# and change the bootargs for a successful boot.
#
# setenv mainlineLinux yes
# Do one of the following three
# setenv arcNumber 2097 # for standard sheevaplugs
# setenv arcNumber 2678 # for e-sata sheevaplugs
# setenv arcNumber 2659 # for guruplugs
####### change bootargs, replace nand_mtd with orion_nand and add rootfstype=jffs2
# setenv bootargs rootfstype=jffs2 console=ttyS0,115200 mtdparts=orion_nand:0x400000@0x100000(uImage),0x1fb00000@0x500000(rootfs) rw root=/dev/mtdblock1 rw ip=192.168.1.9:192.168.1.4:192.168.1.4:255.255.255.0:DB88FXX81:eth0:none
# saveenv

root@debian:~# reboot
	:
	:
USB 0: host mode
PEX 0: interface detected no Link.
Net:   egiga0 [PRIME], egiga1
Hit any key to stop autoboot:  0
Marvell>> setenv mainlineLinux yes
Marvell>> setenv arcNumber 2678
Marvell>> setenv bootargs rootfstype=jffs2 console=ttyS0,115200 mtdparts=orion_nand:0x400000@0x100000(uImage),0x1fb00000@0x500000(rootfs) rw root=/dev/mtdblock1 rw ip=192.168.1.9:192.168.1.4:192.168.1.4:255.255.255.0:DB88FXX81:eth0:none
Marvell>> set bootcmd 'nand read.e 0x800000 0x100000 0x400000; bootm 0x800000'
Marvell>> saveenv
Saving Environment to NAND...
Erasing Nand...Writing to Nand... done
Marvell>> printenv
baudrate=115200
loads_echo=0
netmask=255.255.0.0
CASset=min
MALLOC_len=1
ethprime=egiga0
ethmtu=1500
usb0Mode=host
nandEcc=1bit
ethact=egiga0
cesvcid=ULULULULULULPPULULULULULDA
bootargs_end=:::DB88FXX81:eth0:none
standalone=fsload 0x2000000 $(image_name);setenv bootargs $(console) root=/dev/mtdblock0 rw ip=$(ipaddr):$(serverip)$(bootargs_end) $(mvPhoneConfig); bootm 0x2000000;
mvPhoneConfig=mv_phone_config=dev0:fxs,dev1:fxs
mvNetConfig=mv_net_config=(00:11:88:0f:62:81,0:1:2:3),mtu=1500
yuk_ethaddr=00:00:00:EE:51:81
netretry=no
rcvrip=169.254.100.100
loadaddr=0x02000000
autoload=no
run_diag=no
ethaddr=00:50:43:01:44:96
ipaddr=192.168.2.89
serverip=192.168.2.38
rootpath=/home/rootfsv1.0
bootargs_root=root=/dev/nfs rw
image_name=sheeva-2.6.37-uImage
arcNumber=2678
stdin=serial
stdout=serial
stderr=serial
console=console=ttyS0,115200 mtdparts=nand_mtd:0x100000@0(uboot)ro,0x0@0x100000(uImage),0x1ff00000@0x100000(rootfs)rw
mainlineLinux=yes
enaMonExt=no
enaCpuStream=no
enaWrAllo=no
pexMode=RC
disL2Cache=no
setL2CacheWT=yes
disL2Prefetch=yes
enaICPref=yes
enaDCPref=yes
sata_dma_mode=yes
netbsd_en=no
vxworks_en=no
bootdelay=3
disaMvPnp=no
enaAutoRecovery=yes
bootargs=rootfstype=jffs2 console=ttyS0,115200 mtdparts=orion_nand:0x400000@0x100000(uImage),0x1fb00000@0x500000(rootfs) rw root=/dev/mtdblock1 ip=192.168.2.89:192.168.2.38:::DB88FXX81:eth0:none
bootcmd=nand read.e 0x800000 0x100000 0x400000; bootm 0x800000

Environment size: 1427/131068 bytes
Marvell>> reset
	:
	:

Ubuntu jaunty (development branch) debian ttyS0

debian login: root
Password:
Last login: Mon Feb  7 23:06:18 UTC 2011 on ttyS0
Linux debian 2.6.37 #3 PREEMPT Sat Jan 22 22:39:36 MST 2011 armv5tel

The programs included with the Ubuntu system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by
applicable law.

To access official Ubuntu documentation, please visit:
http://help.ubuntu.com/
root@debian:~#
ふー。とりあえずレンガからは脱出

KURO-SHEEVA
楽天市場

←(前のページ)
カーネルを戻す
当月のハックの記録
SheevaPlug/玄柴(KURO-SHEEVA)をハックしよう トップ
(次のページ)→
お出かけ用モバイルルータ

Copyright (C) 2003-2011 Yasunari Yamashita. All Rights Reserved.
yasunari @ yamasita.jp 山下康成@京都府向日市