Seagate GoFlexNet

Supported Versions

Model OpenWrt Version Supported Model Specific Notes
Seagate GoFlexNet WIP, trunk

Highlights

CPU Ram Flash Network USB Serial JTag SATA
Marvell Kirkwood@1200MHz 128 MiB 256 MiB 1 gigE 1x 2.0 Yes Yes 2x data+power

Hardware

Info

Architecture: ARM armv5te
Vendor: Marvell
Bootloader: U-Boot
System-On-Chip: Marvell MV88F6281 A0 (DDR2) with ARM926EJ-S CPU (Marvell Feroceon)
CPU Speed: 1200 Mhz
Flash size: 256 MiB
RAM: 128 MiB / 1x Nanya NT5TU64M16DG-AC
Wireless: n/a
Ethernet: 1x GigE port / Marvell "Alaska" 88E1116R
USB: 1x USB 2.0 port
Serial: Yes
SATA: 2x (data & power)

Flash Layout

Original FlashLayout
mtd# mtd0 mtd1 mtd2 mtd3
start 0x000000 0x100000 0x500000 0x2500000
size 0x100000 0x400000 0x2000000 0xdb00000
in MiB 1 4 32 219
name u-boot uImage root data
file system none ??? JFFS2 ??

Specific Configuration

Interfaces

The default network configuration is:

Interface Name Description Default configuration
eth0 Ethernet port DHCP

Failsafe

The GoFlexNet cannot be put into failsafe mode by pressing the button.

It can however be put in failsafe mode using serial console and pressing 'f' and <enter> when prompted during boot-up

Buttons

The GoFlexNet's only button is not configurable and inevitably performs a hard reset when pressed, the button open the bridge between the positive pole and the power cord.

Crypto Hardware Acceleration

Photos

for serial cable (nokia's DKU-5, CA-42 and etc ttl…), 115200 8n1:

NOTE: The pins to use are the ones "covered up" by the tips of the arrows, i.e. the pins in the row toward the outer edge of the PCB. (for comparison, see here)

for enable 3.5" disks (3 pins sata power to +12V DC):

NOTE: The ellipse in the picture indicates three pins for Serial ATA +12 V. (Multiple pins are used for current (Ampere) considerations, compare https://en.wikipedia.org/wiki/Serial_ATA#Power_connectors.)

example:

Opening the case

There are no screws - the bottom cover is held by ten plastic snap on clips, three on the sides and two on the edges. To open the case, gently pry all around with a thin screwdriver until it is open.

The serial pins are accessible without further disassembly.

SSH

Connect device to Ethernet port. To prevent automatic updates by cloud engines (which may disable ssh access), use a separate switch or disconnect your router from the internet. If the ssh access was disabled by the automatic cloud engine update service, you need to login there and re-activate ssh.

Find IP address, BE and EF are the last two bytes of the MAC of your device (printed on the bottom of the GoFlexNet)

root@host ~ # ifconfig eth0 169.254.1.0 
root@host ~ # nmap -e eth0 -sP $(printf "169.254.%d.%d" 0xbe 0xef)

Connect to IP address via ssh (root / stxadmin) to see if it works.

Backup original firmware

Login to the original firmware via SSH (enable it first in popoplug site) or Serial cable (nokia's CA-52, DKU-5 and etc ttl…). Plug the flash drive (FAT32) to USB port in Seagate GoFlex Net, then:

mkdir /tmp/backup
mount /dev/sda1 /tmp/backup
cd /tmp/backup
wget http://download.doozan.com/uboot/nanddump
chmod +x nanddump
./nanddump -nof uboot-mtd0-dump /dev/mtd0
./nanddump -nof uboot-original -s 0 -l 0x80000 /dev/mtd0
./nanddump -nof uImage-mtd1-dump /dev/mtd1
./nanddump -nof rootfs-mtd2-dump /dev/mtd2
umount /dev/sda1
To create an image of mtd0, you need to dump the nand without ecc. using "dd if=/dev/mtd0 of=mtd0.DOESNOTWORK" will automatically do ecc for you and will result in a corrupt image.

Restore original firmware via serial cable and tftp-server

#set goflex net ip
setenv ipaddr '192.168.1.1'
#set tftp-server ip
setenv serverip '192.168.1.2'

#original uImage (backuped before)
tftpboot 0x800000 uImage-mtd1-dump
nand erase 0x100000 0x400000
nand write.e 0x800000 0x100000 0x400000

#original rootfs (backuped before)
tftpboot 0x800000 rootfs-mtd2-dump
nand erase 0x500000 0x2000000
nand write.e 0x800000 0x500000 0x2000000

resetenv

setenv bootcmd 'nand read.e 0x800000 0x100000 0x300000; setenv bootargs $(console) $(bootargs_root); bootm 0x800000'

#change value to your device
setenv ethaddr '00:10:75:26:3D:9F'
setenv cesvcid '5RFAJDGYNLPLDUHN4BWUWC3EKJ'
setenv ceserialno 'NA1Y0EG1'
setenv ceboardver 'DISCOVERY:0.1'
saveenv

reset

Testing your new uBoot, Writing new uBoot

download via tftp and run-test

#set goflex net ip
setenv ipaddr '192.168.1.1'
#set tftp-server ip
setenv serverip '192.168.1.2'
tftp 0x800000 uboot.mtd0.kwb
go 0x800200
Notice that we load the image at 0x800000 but start running it from 0x800200. This is because the first 0x200 bytes of are the kirkwood image header, and the real executable starts after the header.

Write new uBoot

# Erase the first 512k of /dev/mtd0
flash_erase /dev/mtd0 0 4
# Write the new bootloader
nandwrite /dev/mtd0 uboot.mtd0.kwb
# Cross your fingers and reboot..

Install OpenWrt in to NAND (mtd2) via serial cable and tftp-server

#set goflex net ip
setenv ipaddr '192.168.1.1'
#set tftp-server ip
setenv serverip '192.168.1.2'
setenv arcNumber '3089'
setenv mainlineLinux 'yes'
setenv bootcmd 'nand read.e 0x6400000 0x100000 0x400000; bootm 0x6400000;'
setenv bootargs 'console=ttyS0,115200 root=/dev/mtdblock2 rw rootfstype=jffs2'
saveenv
mw 0x6400000 0xffff 0x400000
#flash kernel: http://downloads.openwrt.org/snapshots/trunk/kirkwood/openwrt-kirkwood-uImage
tftpboot 0x6400000 openwrt-kirkwood-uImage
nand erase 0x100000 0x400000
nand write.e 0x6400000 0x100000 0x400000
#flash rootfs: http://downloads.openwrt.org/snapshots/trunk/kirkwood/openwrt-kirkwood--jffs2-128k.img
mw 0x6400000 0xffff 0x400000
tftpboot 0x6400000 openwrt-kirkwood--jffs2-128k.img
nand erase 0x500000 0xfb00000
nand write.e 0x6400000 0x500000 0x400000
reset

Install OpenWrt in to NAND (mtd2) via ssh (not tested)

to enable SSH access for this Pogoplug device - register in https://goflexnet.pogoplug.com then, in settings - Activate a Pogoplug device, after that, in settings - Enable SSH access for this Pogoplug device and enter new password for root.

in ssh:

/usr/local/cloudengines/bin/blparam arcNumber='3089'
/usr/local/cloudengines/bin/blparam mainlineLinux='yes'
/usr/local/cloudengines/bin/blparam bootcmd='nand read.e 0x6400000 0x100000 0x400000; bootm 0x6400000;'
/usr/local/cloudengines/bin/blparam bootargs='console=ttyS0,115200 root=/dev/mtdblock2 rw rootfstype=jffs2'
killall -9 hbwd
killall -9 hbplug
cd /tmp
wget http://downloads.openwrt.org/snapshots/trunk/kirkwood/openwrt-kirkwood-uImage
wget http://downloads.openwrt.org/snapshots/trunk/kirkwood/openwrt-kirkwood--jffs2-128k.img
flash_eraseall /dev/mtd1
nandwrite -p /dev/mtd1 openwrt-kirkwood-uImage
flash_eraseall /dev/mtd2
nandwrite -p /dev/mtd2 openwrt-kirkwood--jffs2-128k.img
flash_eraseall /dev/mtd3
#unplug power

Tags

Back to top

toh/seagate/goflexnet.txt · Last modified: 2013/05/17 16:37 by doz.me