GoFlexHome
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.:
- NETGEAR Stora
- LaCie Ethernet Disk mini – Home Edition
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:
- http://www.openstora.com/wiki/ (Wiki über die NETGEAR Stora)
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
- DockStar Wiki Seite
- GoFlex Net Wiki Seite
- GoFlexPlugboxLinux (Wie man Plugbox Linux auf einer GoFlex Home/Net installiert)
Weblinks
- http://www.heise.de/preisvergleich/?cat=hdxnas&asuch=GoFlex%20Home
- http://www.smallcloudbuilder.com/storage/reviews/235-seagate-goflex-home-reviewed
- http://blog.testfreaks.com/review/review-of-seagate-goflex-home-network-storage-system/
- http://www.marvell.com/embedded-processors/kirkwood/
- http://blog.philippklaus.de/2011/04/install-archlinuxarm-on-the-seagate-goflex-home/
Bilder: