SheevaPlugを導入してみた(その1)

OpenBlockS266が今まで稼動してたけど、USBが使えるやつが欲しくなったのでSheevaPlug Dev Kitを買ってみた。実際に買ったのは12月なのだが時間が無くて放置してたら、今は本家ではGuruPlugなんてのが出てるし、国内ではDev Kitとほとんど同じSheevaPlug+なんてのがでてるのね。まぁいいや。

個人的には http://www.plugcomputer.org/ のトップにあるやつがデザイン的に好きなのだが、これは発売予定あるのかな?

最終的な用途は無線LAN(うちはFONがアクセスポイントになってる)の中継機。
今のところWDS(リピータ機能)では動かせてないけど、テレビとかスカパーチューナからアクセスできればいいのでIPマスカレードすればいいやという結論に。

まず最初にやったこと

何はともあれログインしなきゃ話にならん。
Windowsでやるなら、付属CDにUSBのシリアルコンソール用ドライバが入ってるのでそれをインストールする必要があるが、めんどいのでLinuxマシンにUSBでつなぎシリアルコンソールを起動。

$ screen /dev/usbttyS0 115200

Ubuntu jaunty (development branch) debian ttyS0

debian login: 
(初期アカウントは root/nosoup4u)

histroy で履歴を見ると

du -h Verizon-2009-01-25-1152.mp4

ってのがあったこれ何だろ?

まずはパスワードを変更し、適当に時刻を合わせる

root@debian:~# passwd
root@debian:~# date [MMDDhhmmYY]

再起動してみる

root@debian:~# /sbin/shutdown -r now
      __  __                      _ _
     |  \/  | __ _ _ ____   _____| | |
     | |\/| |/ _` | '__\ \ / / _ \ | |
     | |  | | (_| | |   \ V /  __/ | |
     |_|  |_|\__,_|_|    \_/ \___|_|_|
 _   _     ____              _
| | | |   | __ )  ___   ___ | |_
| | | |___|  _ \ / _ \ / _ \| __|
| |_| |___| |_) | (_) | (_) | |_
 \___/    |____/ \___/ \___/ \__|
 ** MARVELL BOARD: SHEEVA PLUG LE

U-Boot 1.1.4 (Mar 19 2009 - 16:06:59) Marvell version: 3.4.16

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

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
Marvell>> version
U-Boot 1.1.4 (Mar 19 2009 - 16:06:59) Marvell version: 3.4.16
Marvell>> 

U-Bootが古すぎるので新しくする

ここに書いてあるとおりにやる。

  1. TFTPサーバを用意する。うちはDebianなので aptitude install atftpd でサクッとインストール。
  2. U-Boot 3.4.27+pingtoo binaryをTFTPサーバに u-boot.bin として保存しておく。
  3. SheevaPlugにてU-Bootを更新する
Marvell>> setenv serverip (TFTPサーバのIPアドレス)
Marvell>> setenv ipaddr (SheevaPlugのIPアドレス)
Marvell>> bubt u-boot.bin

 ...

**Warning**
If U-Boot Endiannes is going to change (LE->BE or BE->LE), Then Env parameters should be overriden..
Override Env parameters? (y/n) n

 ...

Marvell>> reset

せっかくだからカーネルも新しくする

READMEに大抵のことは書いてあります。

  1. http://sheeva.with-linux.com/sheeva/ から入れたいカーネルの README を SheevaPlug の /root に保存。うちでは2.6.34を採用。
  2. 保存した README はシェルスクリプトになっているので実行権限をつけて実行する。
  3. ダウンロードしたカーネルをNANDに保存か/bootに保存するか聞かれるので、SDカードから実行するのでなければNANDに。まぁこれは好み。
  4. 保存した README の最初のほうに記述されている setenv の行をメモしておく。
  5. 再起動し U-Boot に入る。そしてメモした setenv を実行し、saveenvする。


続きは明日