参考にしたのはググれば出てくる範囲だが,kernelのインストールに関しては
http://lglinux.blogspot.com/2009/09/recovering-bad-sheevaplug-kernel-flash.html
ちなみにkernelは
http://sheeva.with-linux.com/sheeva/
ここから最新版をとって入れる(どうでもいいが、ペンギンが動く!)
ubootのバイナリは
http://plugcomputer.org/plugforum/index.php?board=4.0
ここの3.4.25のなかの3ページ目?あたりにバイナリファイルをゲット
ubootのインストールは
http://www.saigyo.org/hiki/?Update+U-Boot+by+SheevaPlug+oneself
http://mizupc8.bio.mie-u.ac.jp/pukiwiki/index.php?SheevaPlug%2FU-Boot
ここにあるとおりにできた。
さて、記事の続き。
変更前後の設定はこんなかんじ。
前
__ __ _ _
| / | __ _ _ ____ _____| | |
| |/| |/ _` | ‘__ / / _ | |
| | | | (_| | | V / __/ | |
|_| |_|__,_|_| _/ ___|_|_|
_ _ ____ _
| | | | | __ ) ___ ___ | |_
| | | |___| _ / _ / _ | __|
| |_| |___| |_) | (_) | (_) | |_
___/ |____/ ___/ ___/ __|
** MARVELL BOARD: SHEEVA PLUG LE
U-Boot 1.1.4 (Dec 27 2009 – 22:03:21) Marvell version: 3.4.27
U-Boot code: 00600000 -> 0067FFF0 BSS: -> 006CFEE0
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
Addresses 8M – 0M are saved for the U-Boot usage.
Mem malloc Initialization (8M – 7M): Done
NAND:512 MB
Flash: 0 kB
CPU : Marvell Feroceon (Rev 1)
Streaming disabled
Write allocate disabled
USB 0: host mode
PEX 0: interface detected no Link.
Net: egiga0 [PRIME]
Hit any key to stop autoboot: 0
Marvell>> printenv
baudrate=115200
loads_echo=0
netmask=255.255.255.0
run_diag=yes
CASset=min
MALLOC_len=1
ethprime=egiga0
bootargs_root=root=/dev/nfs rw
image_name=uImage
bootcmd=tftpboot 0x2000000 $(image_name); setenv bootargs $(console) $(bootargs_root) nfsroot=$(serverip):$(rootpath) ip=$(ipaddr):$(serverip)$(bootargs_end) $(mvNetConfig) $(mvPhoneConfig); bootm 0x2000000;
standalone=fsload 0x2000000 $(image_name);setenv bootargs $(console) root=/dev/mtdblock0 rw ip=$(ipaddr):$(serverip)$(bootargs_end) $(mvPhoneConfig); bootm 0x2000000;
ethmtu=1500
mvPhoneConfig=mv_phone_config=dev0:fxs,dev1:fxs
mvNetConfig=mv_net_config=(00:11:88:0f:62:81,0:1:2:3),mtu=1500
usb0Mode=host
yuk_ethaddr=00:00:00:EE:51:81
nandEcc=1bit
netretry=no
rcvrip=169.254.100.100
loadaddr=0x02000000
autoload=no
ethact=egiga0
ethaddr=00:50:43:??:??:??
ipaddr=192.168.0.5
serverip=192.168.0.2
console=console=ttyS0,115200 mtdparts=orion_mtd:0x100000(u-boot),0x700000@0x100000(uImage)ro,0x1f700000@0x800000(rootfs)rw
arcNumber=2097
bootargs_end=255.255.255.0:DB88FXX81:eth0:none
rootpath=/path/to/the/rootfs/directory/
stdin=serial
stdout=serial
stderr=serial
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
pcieTune=no
Environment size: 1414/131068 bytes
変更はmainlineLinux,arcNumber,bootargs_end,console,ipaddr/serverip,bootcmd
だったと思う。もちろんethaddrとrootpathは適切に編集してあります。
で、変更は
>> setenv bootargs ‘console=ttyS0,115200 rootfstype=jffs2 mtdparts=orion_mtd:0x100000(u-boot),0x700000@0x100000(uImage)ro,0x1f700000@0x800000(rootfs)rw root=/dev/mtdblock2 ip=$(ipaddr):$(serverip)$(bootargs_end) $(mvNetConfig) $(mvPhoneConfig)’
>> setenv bootcmd ‘nand read.e 0x800000 0x100000 0x400000;bootm 0x800000’
http://www.openplug.org/plugwiki/index.php/Flashing_an_Operating_System_onto_the_Plug
ここに従ってfedora11のjffs2を作ってbootしたけど、rootパスがわからん。nosoup4uじゃないのか、、、。passwdにguestがあったので試してみたら、パスなしで入れた。うーむむ。
当時
http://fedoraproject.org/wiki/Architectures/ARM/SheevaplugUSB
からとってきたfedora11のデフォルトのrootパスはmarvellだった。
fedora-armのメーリングリストのログを検索したら見つかった。
とりあえずrootになってみる。っつうか、lessとかpasswdとか入ってないね、、、。
yumを使おうとしたら怒られた。rpm -qaも効かないから、データベースが構築されていないんだろう。
とおもってrpm –rebuilddbもダメ。うーぬぬ。
どうも起動時にエラーが多かったりするようだから、ubuntuに戻そうかなぁ、、、。
apt-get/aptitudeよりyumの方が使いやすい気がする、というのはある。
こんなところで時間切れ。この作業のせいで完全に昼夜逆転したが、ま、正月はこんなもん。
続きはまた来年。