GoFlexHome

Aus der Mikrocontroller.net Artikelsammlung, mit Beiträgen verschiedener Autoren (siehe Versionsgeschichte)
Wechseln zu: Navigation, Suche

Hier sollen Daten gesammelt werden zur Seagate GoFlex Home.

Überblick

Die Hardware der Seagate GoFlex Home gleicht der DockStar bzw. der GoFlex Net. Unterschied: Nur ein USB-Port vorhanden, dafür aber ein SATA Port ;)

Es gibt die GoFlex Home in zwei Ausführungen:

  • mit 1TB Platte ab ca. 115€
  • mit 2TB Platte ab ca. 155€

siehe: http://www.heise.de/preisvergleich/?cat=hdxnas&asuch=GoFlex%20Home


Beitrag im Forum

20Euro Embedded System mit ARM, 128MB RAM und 256MB Flash


Technische Daten

CPU Marvell "Kirkwood" 88F6281, 1.2GHz (ARM926EJ-S)
Speicher 128 MB (Nanya NT5TU64M16DG-AC)
Flash 512 MB
Netzwerk Marvell 88E1116R Gigabit Ethernet port
Schnittstellen 1x USB 2.0 Marvell Orion EHCI
Platte Seagate ST31000528AS (1TB Version)

cpuinfo

Processor	: ARM926EJ-S rev 1 (v5l)
BogoMIPS	: 1192.75
Features	: swp half thumb fastmult edsp 
CPU implementer	: 0x56
CPU architecture: 5TE
CPU variant	: 0x2
CPU part	: 0x131
CPU revision	: 1
Cache type	: write-back
Cache clean	: cp15 c7 ops
Cache lockdown	: format C
Cache format	: Harvard
I size		: 16384
I assoc		: 4
I line length	: 32
I sets		: 128
D size		: 16384
D assoc		: 4
D line length	: 32
D sets		: 128

Hardware	: Feroceon-KW
Revision	: 0000
Serial		: 0000000000000000

/proc/mtd

dev:    size   erasesize  name
mtd0: 00100000 00020000 "u-boot"
mtd1: 00600000 00020000 "uImage"
mtd2: 0f900000 00020000 "root"

Datendurchsatz

Interessant ist die GoFlex Home / Net wegen des SATA-Ports.

Im Auslieferungszustand ist die GoFlex Home Festplatte mit NTFS formatiert. Der NTFS Linux-Treiber ist evtl. ein Flaschenhals, weswegen nur ca. 16 MB/s beim Schreiben erzielt werden können.

[root@Plugbox /]# dd of=/dev/null if=/dev/sda bs=64k count=10k
10240+0 records in
10240+0 records out
671088640 bytes (671 MB) copied, 5.46567 s, 123 MB/s
[root@Plugbox /]# hdparm -Tt /dev/sda

/dev/sda:
 Timing cached reads:   446 MB in  2.01 seconds = 222.14 MB/sec
 Timing buffered disk reads:  350 MB in  3.01 seconds = 116.40 MB/sec


Mit Plugbox Linux über GB-LAN und NFS (verursacht 100 % CPU-Last):

~/NASdaten$ dd if=/dev/zero of=test.dat bs=20M count=10 oflag=direct
10+0 Datensätze ein
10+0 Datensätze aus
209715200 Bytes (210 MB) kopiert, 6,14148 s, 34,1 MB/s

original Software

HipServ 2.0 OS

Auf der GoFlex Home läuft HipServ 2.0 OS von Axentra und nicht pogoplug wie auf der Dockstar oder der GoFlex Net. (Siehe GoFlex Home Review auf smallnetbuilder.com)

HipServ OS läuft auch auf anderen NAS, z.B.:

Auf der GoFlexHome läuft (uname -a):

 Linux axentraserver.USERNAME.seagateshare.com 2.6.22.18 #16 Thu Jun 17 01:37:53 EDT 2010 armv5tejl armv5tejl armv5tejl GNU/Linux

Einige Modifikationen und Erweiterung der Original Software ist hier beschrieben:

Dienste

Auf der Box laufen einige Dienste:

~$ nmap -sT 169.254.xxx.yyy

PORT      STATE SERVICE
21/tcp    open  ftp
22/tcp    open  ssh
80/tcp    open  http
139/tcp   open  netbios-ssn
443/tcp   open  https
445/tcp   open  microsoft-ds
548/tcp   open  afp
631/tcp   open  ipp
6689/tcp  open  unknown <- "Firefly Media Server" s.unten
8200/tcp  open  unknown
49152/tcp open  unknown

Hacking

root login

Ähnlich wie bei der Netgear Stora kann man sich so einloggen!

Als erstes muß man einen User über die normale GoFlex Weboberfläche einrichten.

Dann kann man sich damit einloggen:

ssh USERNAME_hipserv2_seagateplug_XXXX-XXXX-XXXX-XXXX@IP_ADDRESSE

Dabei ist XXXX-XXXX-XXXX-XXXX der Produkt-Schlüssel (sieh PK: auf Geräte Unterseite). Das Passwort ist das normale Benutzerpasswort, welches man bei der Einrichtung vergeben hat.

updates deaktivieren

Nach dem mal sich eingeloggt hat, ist es wohl eine gute Idee, die Update Dienste zu deaktivieren.

In Kürze:

chmod -x /usr/bin/oe-update-checker
chmod -x /etc/cron.daily/update-checker
chmod -x /etc/cron.hourly/update-checker
chmod -x /etc/init.d/openvpn
chmod -x /usr/sbin/openvpn
chmod -x /var/www/admin/sshtunnel.pl

siehe: http://www.openstora.com/wiki/index.php?title=Disabling_updates_and_external_access

firefly

Auf der GoFlex Home läuft "Firefly Media Server" auf Port 6689. Man kann sich einloggen mit:

Username: root
Passwort: sLPoe243

Damit ist es möglich alle Dateien auf der Box einzusehen. Dazu stellt man in der Konfiguration von Firefly den Document Root auf "/" Nun kann man Dateien per URL einsehen, z.B.: http://192.168.xx.xx:6689/var/log/dmesg

Nach dem ändern von DocRoot kommt man allerdings nicht mehr an die Konfiguration von Firefly ran, weil die Seiten nicht mehr Aufrufbar sind. Abhilfe schafft hier nur ein reset per Nadel in die Seite vom Gerät, was alle Einstellungen rücksetzt.

Interessante Dateien sind u.a.:

  • /etc/init.d/oe-bootinit
  • /etc/init.d/oe-bootfinish
  • /etc/oe-release
  • /etc/samba/smb.conf
  • /etc/mtab
  • /etc/crontab
  • /usr/sbin/oe-check-daemons
  • /etc/branding.conf
  • /etc/features.conf
  • /var/www/.ssh/id_dsa.pub
  • /var/www/.ssh/id_dsa
  • /etc/vsftpd/vsftpd.pem


UART-/JTAG-Stecker

Auf der Platine befindet sich eine 10-polige Stiftleiste im 2mm Rastermass (J1).

Die Belegung ist wahrscheinlich identisch zur Dockstar bzw. GoFlex Net, siehe auch: Dockstar#UART.2FJTAG-Stecker

Zumindest die Pins GND, UART TxD und UART RxD sind gleich:

  9  7  5  3  1
 10  8  6  4  2
       RX TX GND

Pin 1 ist auf der Platine mit einem kleine weißen Dreieck gekennzeichnet!

Am einfachsten man beschafft sich ein sog. "PL-2303 USB-to-Serial Port Adapter", z.B. ein Handy-Kabel, mehr dazu: UART auf USB

Informationen zum JTAG-Protokoll hier: JTAG


Verbindung unter Linux

USB Stecker rein und auf Konsole eine screen (apt-get install screen) session starten, mit:

 screen /dev/ttyUSB0 115200

Damit man in den Ausgaben scrollen kann, kann man das folgende in die ~/.screenrc Datei eintragen:

 termcapinfo xterm|xterms|xs|rxvt ti@:te@

Danach Box anmachen und so was in der Art sollte erscheinen:

U-Boot 2010.09-dirty (Oct 19 2010 - 12:17:56)
Marvell-GoflexNet by Jeff Doozan, Peter Carmichael

SoC:   Kirkwood 88F6281_A0
DRAM:  128 MiB
NAND:  256 MiB
In:    serial
Out:   serial
Err:   serial
Net:   egiga0
88E1116 Initialized on egiga0
Using egiga0 device
...

Eigenes Linux installieren

Am besten kann man ArchLinuxARM installieren, siehe:

Hinweis: "Plugbox Linux" ging offenbar in ArchLinuxARM auf! Die Plugbox Linux Anleitung GoFlexPlugboxLinux ist damit überholt.

Es ist auch möglich Debian zu installieren, siehe:

WICHTIG: Mit dieser Variante hat man allerdings keinen Zugriff auf die SATA Ports! Weil die Dockstar kein SATA hat wurden die notwendigen Komponenten in U-Boot und Debian heraus genommen.

nach der installation

ArchLinuxARM

Hat man ArchLinuxARM installiert, stehen die Ersten Schritte unter First reboot. Danach sind die Allgemeinen First Steps, zum weiteren Einrichtetn des Systems, interessant und dann die Unterpunkte von Applications wie z.B. OpenNTPD und Samba.

Alles weitere erfährt man in dem sehr gutem ArchWiki.

Um uBoot Tools zu installieren:

[root@alarm ~]# pacman -Sy uboot-env uboot-mkimage

In /etc/fw_env.config die Dockstar Zeile aktivieren:

# segate dockstar:
/dev/mtd0               0xc0000         0x20000         0x20000

netconsole - uBoot

Wie auf http://jeff.doozan.com/debian/uboot/ beschrieben ist es möglich, ähnlich wie mit einer seriellen Verbindung, eine netconsole aufzubauen:

Auf der Box die netconsole in uBoot aktivieren:

fw_setenv serverip 192.168.xxx.xxx
fw_setenv ipaddr 192.168.1.100
fw_setenv if_netconsole 'ping $serverip'
fw_setenv start_netconsole 'setenv ncip $serverip; setenv bootdelay 10; setenv stdin nc; setenv stdout nc; setenv stderr nc; version;'
fw_setenv preboot 'run if_netconsole start_netconsole'

Danach die Box rebooten

Auf dem Host system muß netcat (kurz nc) installiert sein, z.b.:

 apt-get install netcat

Man startet nun das lauschen, während die Box hochfährt, mit: (Das netconsole Skript von jeff doozan tut es bei mir nicht, siehe: http://forum.doozan.com/read.php?3,1784 )

 nc -u -p 6666 -v 192.168.1.100 6666

(Die IP Adresse wurde vorher mit fw_setenv ipaddr festgelegt, siehe oben.)

Wenn alles klappt, landet in einer interaktiven uBoot Shell. Sieht in etwa so aus:

U-Boot 2010.06-00695-gbd23130-dirty (Aug 30 2010 - 23:04:56)
Marvell-Dockstar/Pogoplug by Jeff Doozan
Hit any key to stop autoboot:
Marvell>>

alternative

Netzwerk Alias erzeugen mit:

 sudo ifconfig eth0:0 10.0.0.1

Netz-Konsole starten mit:

 nc -luk 10.0.0.1 6666

Alternativ zu nc kann man socat verwenden (sudo apt-get install socat):

socat STDIO UDP-LISTEN:6666

anderes uBoot Image testen via NFS

Man kann in der uBoot shell auch einen anderen uBoot nachladen. Das geht über tftp oder NFS. Hier ein Beispiel mit NFS:

Marvell>> setenv bootfile "/share/uboot-sata-090903.bin"
setenv bootfile "/share/uboot-sata-090903.bin"
Marvell>> setenv serverip 192.168.1.1
setenv serverip 192.168.1.1
Marvell>> nfs

Wichtig dabei: Bei bootfile muß der volle Pfad angegeben werden. Dies schließt auch den Teil in /etc/exports mit ein!

Bsp /etc/exports:

 /share       192.168.0.0/255.255.0.0(rw,no_root_squash,sync)

Wird die Datei nicht gefunden, weil Pfad/Dateiname bei bootfile falsch geschrieben ist, kommt sowas:

 Loading: *** ERROR: Cannot mount


anderes uBoot Image via TFTP testen

TFTP server einrichten

Als erstes diese Pakete installieren:

 aptitude install tftpd-hpa tftp-hpa

In Datei /etc/default/tftpd-hpa das folgende anhängen:

 RUN_DAEMON="yes"

Dienst startet man mit start tftpd-hpa bzw. neustart mit restart tftpd-hpa.

Dann braucht man noch ein uBoot Image und packt es in bsp. /var/lib/tftpboot/

TFTP testen

Man kann den tftp server testen, in dem man auf einem anderen Rechner das installiert:

 aptitude install tftp-hpa

Dann im Terminal verbinden, bsp:

 tftp -v 192.168.1.1
 Connected to 192.168.1.1 (192.168.1.1), port 69
 tftp> help

Danach kann man versuchen, eine Datei zu ziehen, bsp:

 tftp> get my_uboot_image.mtd0.kwb

Ein lokaler test auf der selben Maschine ist aber auch möglich, bsp:

 tftp localhost -c get my_uboot_image.mtd0.kwb

Bekommt man "File Not Found" oder "Permission Denied", kann das nicht nur am falsch geschriebenen Pfad liegen, sondern auch an falschen Rechten, das sollte helfen:

 sudo chmod 777 -R /var/lib/tftpboot

uBoot chainload via tftp

Auf der Box macht man nun folgendes:

Marvell>> setenv serverip 192.168.1.1
setenv serverip 192.168.1.1
Marvell>> tftp 0x800000 my_uboot_image.mtd0.kwb

SATA

Der Zugriff auf die SATA Platte ist offenbar nicht out-of-the-box gegeben. Was man machen muß, damit es geht, steht noch nicht fest. Es reicht nicht aus die arcNumber zu ändern. Siehe Forum Thread ab: http://www.mikrocontroller.net/topic/187115?page=5#1901270

Mögliche Patches und Anleitung hier: http://plugapps.com/index.php5/Build_kernel_and_U-Boot_for_SATA_drives_on_Goflex_Net Bisher (3.2.2011) sind die Kernel-Patches für die GoFlex nicht upstream (2.38.2)

LEDs

Wer möchte, das die LEDs nach dem booten aktiv ist (statt aus), kann beispielsweise das machen:

 fw_setenv led_exit green on

Es gibt drei trigger Variablen (hier mit den default Werten):

 led_init=green blinking
 led_exit=green off
 led_error=orange blinking

Siehe auch

Weblinks

Bilder: