Mein erster Eindruck vom SheevaPlug

Fri, 25 Dec 2009

Tja, wie beginnt man diesen Blogpost nicht prahlend?
Ich habe vom Weihnachtsmann etwas aus England erhalten: Marvells SheevaPlug

Wenn jetzt jemand denkt "Hää, wasn das?":

Ein SheevaPlug ist ein headless Server für den Betrieb zu Hause. Bei maximal 11 Watt mit angeschlossener USB-Festplatte, samt Ethernet und Flash Karte unter Volllast. Soviel brauchen manche High-End Rechner, wenn sie angeblich "aus" sind.

Nutzen kann man das z.B. für: Wuala, IRC-Bouncer, Fileserver, Torrent und Webserver.

SheevaPlug Dev Kit

SheevaPlug; CC-Bild

Um jetzt nicht wiederzukauen, was andere Blogs bereits gepostet haben, nur eine kurze Übersicht:

  • ARM Prozessor mit 1,2 Ghz
  • 512 Mb RAM
  • 512 Mb NAND (interner Flash Speicher)
  • 1x USB 2.0 (480 Mb/s) Port, 1x Gigabit Netzwerk, SDHC Input

Interessanterweise klackert mein SheevaPlug, wenn ich es leicht schüttel. Allerdings müssten das nur ein paar lose Kabel sein, der Innenarchitektur zu urteilen.

Im Paket befinden sich ein ca. 3m LAN-Kabel, Mini-USB->USB Kabel (50 cm) (für serielles Terminal) und zwei verschiedene Baustücke für die Stromversorgung. Mein Sheevaplug ist einfach auf eine Steckdosenleiste gesteckt.

Leider schaut eine eingesteckte SD-Karte etwas sehr hervor.

Erster Anlauf

Das SheevaPlug hat kein Power-Schalter oder ähnliches. Wenn es auf eine aktive Stromleiste gesteckt wird, fährt es automatisch hoch.

Das SheevaPlug lässt sich im Übrigen auch nicht ausschalten; zwar kann man Ubuntu zum sudo halt zwingen, aber das Sheeva läuft munter weiter. (Also es leuchtet...)


Also in die Steckdose gesteckt, samt seriellem Kabel und LAN und schon geht's los. Da ein Ubuntu (9.04) im NAND vorinstalliert ist, bezieht es sich über DHCP automatisch eine IP. Daher kann man sich einfach per SSH einloggen:

21:09:47::$ ssh root@192.168.0.200
root@192.168.0.200's password: nosoup4u
Linux debian 2.6.22.18 #1 Thu Mar 19 14:46:22 IST 2009 armv5tejl
[...]
To access official Ubuntu documentation, please visit:
http://help.ubuntu.com/
Last login: Tue Mar 28 19:07:19 2000
[root@debian]/root
19:07:34::#


Alternativ kann man sich auch via serieller Schnittstelle einloggen und somit auch die Bootsequenz verfolgen.

Als Programm empfehle ich an dieser Stelle minicom, das zuerst via minicom -s auf den USB Anschluss: /dev/ttyUSB0 konfiguriert werden muss.
Zwar wird den Entwicklern des "Das U-Boot" Bootloaders gerade minicom nicht empfohlen. Allerdings finde ich persönlich die vorgestellten Programme cu (Teil des uucp Pakets) und kermit nicht gerade zeitgemäß.

Der U-Boot Bootloader, der eigentlich einen extra Blogbeitrag wert wäre, bootet ziemlich zügig vom Sheeva.
Aussehen tut der Anfang so:

         __  __                      _ _
        |  \/  | __ _ _ ____   _____| | |
        | |\/| |/ _` | '__\ \ / / _ \ | |
        | |  | | (_| | |   \ 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

Erster Blick auf die Software

Ohne etwas angerührt zu haben, sieht die vorgefertigte Speicherbelegung wie folgt aus:

19:38:20::# df -h
Filesystem            Size  Used Avail Use% Mounted on
rootfs                507M  148M  360M  30% /
tmpfs                 252M     0  252M   0% /lib/init/rw
varrun                252M   40K  252M   1% /var/run
varlock               252M     0  252M   0% /var/lock
udev                  252M  8.0K  252M   1% /dev
tmpfs                 252M     0  252M   0% /dev/shm
tmpfs                 252M     0  252M   0% /var/cache/apt

Vorinstalliert ist, wie schon erwähnt, Ubuntu 9.04 (Jaunty Jackalope). Leider ist es etwas unglücklich installiert:

apt-get:
Wer einmal apt-get in irgendeiner Weise nutzen wollte, erfährt ersteinmal:
19:43:15::#  apt-get update
E: Archive directory /var/cache/apt/archives/partial is missing.
Da das Problem auf zwei Wege gefixt werden kann und es je nach Nutzung des SheevaPlugs ankommt, empfehle ich hier einfach http://computingplugs.com/index.php/Fixing_apt-get.
Schuld ist /var, da es hier ein Dateisystem im RAM ist und somit nicht persistent.
DNS Auflösung:

Per default kann zwar 74.125.43.106 angepingt werden, allerdings nicht die dazugehörende Domain google.com.

Nach einem Neustart ist das behoben, wenn in /etc/dhcp3/dhclient.conf eine Route (#) vor

 supersede domain-name-servers 127.0.0.1; 
gesetzt wird.

Eine vollständige Auflistung aller installierten Pakete gibt es hier.


Der Linux Kernel ist leider eine etwas ältere Version. Allerdings lässt sich dieser updaten, wenn nötig.

20:13:42::# uname -a
Linux debian 2.6.22.18 #1 Thu Mar 19 14:46:22 IST 2009 armv5tejl GNU/Linux

Da es beim mitgelieferten Kernel recht heftige Performance Einbußen beim Lesen und Schreiben einer eingesteckten SD-Karte gibt, sollte man ihn zumindest patchen oder gleich den aktuellsten nehmen.

Das würde ich allerdings in einem separaten Blogposting detailliert beschreiben.

Bilder

sind nicht von mir; ich hatte ehrlich gesagt keine Lust, eigene zu machen.
via Flicker: #1 #2 #3 #4

bilderreihe

---