User Tools

Site Tools


Seagate Dockstar

Most of this wiki page handle squashfs/jffs2 installations. However ubi/ubifs is a more advanced blocklayer and filesystem. This page is in transition from squashfs/jffs to ubi/ubifs

Supported Versions

Version/Model S/N Launch Date OpenWrt Version Supported Model Specific Notes
all - trunk,WIP - -


CPU Ram Flash Network USB Serial JTag
Marvell Kirkwood@1200MHz 128 MiB 256 or 512 MiB 1 gigE 4x 2.0 Yes Yes

Before the Installation

  1. Before you install OpenWrt on your Dockstar, you could read this page: Alternative operating systems for the Seagate Dockstar.


[note: include how to do this and where it can be found already precompiled]

Note that using this guide will replace the original firmware found on the Dockstar. If you ever plan to restore the original firmware please take a backup. One OpenWrt install procedure will place a 2nd stage bootloader. The original U-Boot in mtd0 will be retained and will chainload the 2nd one. The Ethernet address of your device is set by the original U-Boot. The 2nd stage bootloader shows a bogus ethaddr. OpenWrt will use a different flash layout than the original one.

Flash Layout

flash.layout for explanations!

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 ??
OpenWrt FlashLayout Chaos Calmer
mtd# mtd0 mtd1 mtd2 mtd3
start 0x000000 0x0e0000 0x100000 0x200000
size 0x100000 0x020000 0x200000 to the end
in MiB 1 0.128 1 253
name u-boot u-boot-env 2nd stage uboot (unused) root
file system none none none UBI

Installing CC 15.05 with console access via serial connection with UBIFS

Here we describe how to install OpenWrt on the Dockstar with the help of a serial connection to access the console.

You'll also need a tftpserver on your host computer. Make sure that the following files from the bin/kirkwood folder are accessible through the tftpserver.

The Dockstar expects the tftp server to have the IP address You can modify this using setenv or blparam, just set 'serverip' to your tftp server IP address.

As mentioned above, you can install the 2-stage bootloader or the single stage one. The process is pretty much the same; the only thing that changes are the locations (addresses) in the Dockstar NVRAM; we will point out when we are dealing with the single or the 2-stage booloader.

Installing bootloader

Replacing the bootloader can potentially "brick" your device and require JTAG recovery.

Connect your Dockstar and reset the device

Now execute the following commands to retrieve and install the bootloader:

2-stage bootloader
mw 0x800000 0xffff 0x40000
tftpboot 0x800000 openwrt-kirkwood-dockstar-u-boot.bin
nand erase 0x100000 0x100000
nand write.e 0x800000 0x100000 0x80000
setenv bootcmd nand read.e 0x800000 0x100000 0x80000\; go 0x800000
single stage bootloader
mw 0x800000 0xffff 0x80000
tftpboot 0x800000 openwrt-kirkwood-dockstar-u-boot.kwb
nand erase 0x000000 0x100000
nand write.e 0x800000 0x000000 0x80000
setenv bootcmd nand read.e 0x2000000 0x100000 0x400000\; go 0x2000000

Note: This erases also the environment of the old uboot, If you are on an uboot from openwrt 14.07, you can preserve the environment by replacing 0x100000 with 0x80000 in the nand erase command. Pro: UBoot initializes with default environment allowing automagic booting via UBIFS. If using only the single stage bootloader with default, einvironment, the 2nd stage UBoot is not used.

Where: * nand erase X Y means "Erase from Y (in Hex) MiB starting from X location (also in hex) * nand write.e X Y Z means "Go to the RAM location X (in hex) and grab the first Z MiB of data and then put it in Y NVRAM location."

If everything succeeded without errors the bootloader was installed successfully and you can now continue to install the kernel and rootfs. Reset your Dockstar. Press enter to get a command prompt at the bootloader.

Verify that your MAC, IP address and TFTP server is set correctly. Below are examples, please adjust this to your needs. The Uboot environment can be saved with saveenv.

setenv ipaddr
setenv serverip
setenv netmask
setenv ethaddr c0:1d:c0:ff:ee

Installing rootfs

To install the kernel and rootfs enter the following commands into the command prompt of the 1st or 2nd-stage bootloader. We expect here a fresh uboot environment. Verify these settings with printenv and if needed modify the variables.

setenv mtdids         nand0=orion_nand
setenv mtdparts       mtdparts=orion_nand:0xe0000@0x0(uboot),0x20000@0xe0000(uboot_env),0x100000@0x100000(second_stage_uboot),-@0x200000(root)
setenv bootargs_root  ubi.mtd=3 root=ubi0:rootfs rootfstype=ubifs rw
setenv bootcmd        setenv bootargs ${console} ${mtdparts} ${bootargs_root}; ubi part root; ubifsmount ubi:rootfs; ubifsload 0x800000 ${kernel}; ubifsload 0x700000 ${fdt}; ubifsumount; fdt addr 0x700000; fdt resize; fdt chosen; bootz 0x800000 - 0x700000
setenv fdt            /boot/dockstar.dtb
setenv kernel         /boot/zImage

# Partition the flash and install rootfs. This is the same for both single and 2nd-stage bootloaders.

nand erase 0x200000 0xfe00000
ubi part root
ubi create rootfs 0xA00000
tftpboot 0x800000 images/openwrt-15.05-dockstar-rootfs.ubifs
ubi write 0x800000 rootfs ${filesize}
ubi create rootfs_data

Note here: 0xa00000 is the size of your UBIFS rootfs image in hex. 0xa00000 means 10MiB. If you have selected many packages to be integrate into rootfs, it may be bigger than 10MiB. This size is sufficient for the stock image downloadable from openwrt.

OpenWrt rootfs should now be successfully installed on you Dockstar, but it does not boot, correctly. We need to boot in to the system once manually.

setenv bootargs ${console} ${mtdparts} ${bootargs_root}
tftpboot 0x800000 images/openwrt-15.05-kirkwood-zImage
tftpboot 0x700000 images/openwrt-15.05-kirkwood-dockstar.dtb
fdt addr 0x700000; fdt resize; fdt chosen
bootz 0x800000 - 0x700000;

It now should boot into OpenWrt 15.05. With DHCP by default. You have * base file system under /rom (ubifs: rootfs) * overlay file system where your changes go in /overlay (ubifs: rootfs_data)

To make it reboot safe, we need to store the kernel into the rootfs:

mkdir -p /rom/boot
wget -O /rom/boot/dockstar.dtb
wget -O /rom/boot/zImage

You are finished. Now do a reboot.

Installing without serial

Then copy images to the device:

# Combined 2-stage bootloader and kernel image

(dd if=bin/kirkwood/openwrt-kirkwood-dockstar-u-boot.bin conv=sync bs=1M; dd if=bin/kirkwood/openwrt-kirkwood-uImage bs=2048 conv=sync) > openwrt-kirkwood-dockstar-uboot-uImage.bin
scp openwrt-kirkwood-dockstar-uboot-uImage.bin root@

# Rootfs image

scp bin/kirkwood/openwrt-kirkwood-Dockstar-jffs2-128k.img root@

# blparam

scp blparam root@

Return to your ssh session on the Dockstar. The first set commands modifies the stock bootloader to load our second stage bootloader. This is done by using blparam to modify the 'bootcmd'.

cd /tmp
chmod +x blparam
./blparam "bootcmd=nand read.e 0x800000 0x100000 0x80000; go 0x800000"

Now it's time to flash the OpenWrt images. Note that the last two commands will erase and overwrite the running system. It is a bit risky. But since the file system is read-only and `nandwrite` is in the fs-cache it should work.

flash_eraseall /dev/mtd1
nandwrite /dev/mtd1 openwrt-kirkwood-dockstar-uboot-uImage.bin
flash_eraseall /dev/mtd2
nandwrite /dev/mtd2 openwrt-kirkwood-Dockstar-jffs2-128k.img

Press the reset button or power cycle your Dockstar. Your Dockstar should now boot into OpenWrt. If it does not something went wrong and you'll need to gain serial access to recover it.


To reflash from an existing openwrt-installation read the following. You need the package mtd-utils installed.

# Erase kernel partition and write new kernel image

flash_eraseall /dev/mtd2
nandwrite -p /dev/mtd2 /tmp/openwrt-kirkwood-uImage

# Erase rootfs partition and write new rootfs image

flash_eraseall /dev/mtd3
nandwrite -p /dev/mtd3 /tmp/openwrt-kirkwood-Dockstar-jffs2-128k.img

Now reboot your router

echo b > /proc/sysrq-trigger

Your Dockstar should now boot into OpenWrt. If anything went wrong and you'll need to gain serial access to recover it.

Overlay with SquashFS

It is also possible to use the SquashFS image (ro filesystem). OpenWRT will create a jffs2 overlay on the mtd partition named rootfs_data. Eventually, you have to configure the 2nd stage bootloader to try SquashFS as rootfstype and rename the mtdpart 4 from "data" to "rootfs_data".

Basic configuration

Since this part is identical for all devices, see Basic configuration.

Connect stuff to the USB port

To connect stuff to the USB port, please see Connect stuff to the USB port.

Specific Configuration


The default network configuration is:

Interface Name Description Default configuration
eth0 Ethernet port DHCP


The DockStar 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


The DockStar's only button is not configurable and inevitably performs a hard reset when pressed.

Crypto Hardware Acceleration

The mv_cesa driver allows you to utilize the Cryptographic Engines and Security Accelerator (CESA) which can be found on the Marvell Orion and Kirkwood SoCs. Currently the driver supports AES in ECB and CBC mode without DMA[1]. This can be used for example to accelerate I/O on a dm-crypted harddrive.

You need the kmod-crypto-mv-cesa package installed and mv_cesa loaded. If you see a message like:

mv_cesa: Unknown symbol crypto_aes_expand_key (err 0)
Make sure to have the aes-module installed, too (Kernel modules→Crypto). 'ps' should list a [mv_crypto]-kernelthread.

The dm-crypted harddrive could be made like this:

cryptsetup luksFormat --cipher aes --hash sha1 --verify-passphrase /dev/sda1

Now when you read or write to the disk, 'top' should show the [mv_crypto]-kernelthread.

For some numbers see It states that you’ll get about 19 MB/s writing to an encrypted USB HDD.

[1] TDMA support for mv_cesa is tracked in this ticket



Architecture: armv5te (big endian, runs also with little endian)
Vendor: Marvell
Bootloader: U-Boot
System-On-Chip: Marvell MV88F6281 A0 (DDR2) with ARM926EJ-S CPU (Marvell Feroceon)
CPU Speed: 1200 Mhz
Flash-Chip: Manufacturer ID: 0x2c, Chip ID: 0xda (Micron NAND 256MiB 3,3V 8-bit)
Flash size: 256 MiB (PartNo 100576825C, 100576827B) or 512 MiB (PartNo 100576825B)
RAM: 128 MiB / 1x Nanya NT5TU64M16DG-AC
Wireless: n/a
Ethernet: 1x GigE port / Marvell "Alaska" 88E1116R
USB: 3x USB 2.0 ports, 1x mini USB 2.0 port for harddisk
Serial: Yes


Frontview without HD Click to enlarge

Opening the case

There are no screws - the bottom cover is held by eight plastic snap on clips, two on each side. To open the case, place 2 thin screwdrivers or expired credit cards at either side of a front corner of the Dockstar into the join between the top cover and the base and gently pry it open.

The upper case part is connected with a five pin cable to the PCB, carefully unplug it to remove the casing. The serial pins are accessible without unplugging the top usb connector.


A 2x5 pin pad (J1) is located left of the LED at the front side of the PCB. The row the three pins ([RX] [TX] [GD]) you are interested on are close to edge of the board. To the right of pin 1 (the one above [GD]) is a small white arrow pointing to it.

[ ] [ ] [ ] [ ] [ ] < [ ] [RS] [RX] [TX] [GD]

Serial port settings are 115200@8n1. The signal level is 3.3V (TTL). PC standard hardware uses 12V. So make sure to have a signal level converter in between (e.g. a CA-42 Cable with 3,3V signal level). Here is another example of how to obtain a serial connection on the Dockstar: here. Connect to the Dockstar from your linux workstation using "screen":

user@host ~ $ screen /dev/ttyUSB0 115200

Alternatively you can use PuTTY on Windows.

The Reset pin (RS) can be wired to the DTR line of the serial converter to make it easy reset the Dockstar remotely. On picocom you can raise the DTR line High, then Low by pressing C-a, C-t, C-a, C-t. If the DTR line of the serial connector is connected to the Reset pin (RS), then this will reset the dockstar!


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 Dockstar)

root@host ~ # ifconfig eth0 
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.


If you want to restore the original firmware at a later point use this guide to make a backup. You need to login to the original firmware via ssh first. Another method beside using "dd" is nanddump. To be on the safe side, you should take a 2nd backup with the nanddump method. Assuming you have a USB Stick or other USB drive mapped via sda - you can try this:

cd /tmp
mkdir backup
mount /dev/sda1 /tmp/backup
chmod +x nanddump
./nanddump -nf backup/mtd0 /dev/mtd0
./nanddump -nf backup/mtd1 /dev/mtd1
./nanddump -nf backup/mtd2 /dev/mtd2
umount /dev/sda1


There are many recovery images out in the wild. Some have requirements on the version of U-Boot that your boot-strapping from. Information regarding recovery on older version of U-Boot can be obtained in this thread. To bypass a bug in U-Boot, it might be required to specify the Machine ID to 0x831 in the U-Boots enviroment.

setenv machid 831

Here is details of the post from Johannes and the required RAM based rescue system here: (The md5 hash of the zip file is 7f225435709cd0ffbb3619f86af42986)

"Booting the rescue system is accomplished by using uBoot to load the kernel and the root filesystem into RAM and calling bootm with the two addresses. For example, the following sequence will load the rescue system from the root directory of an ext2 (or ext3) formatted USB stick (in position 1):

setenv machid 831
usb start
ext2load usb 0:1 0x800000 uImage-rescue
ext2load usb 0:1 0xe00000 uInitrd-rescue
setenv bootargs console=$console netconsole=6666@,6666@ $mtdparts
bootm 0x800000 0xe00000

These files can also be loaded from a TFTP server (tftp-hpa).

setenv ipaddr
setenv serverip
setenv machid 831
tftpboot 0x800000 uImage-rescue
tftpboot 0xe00000 uInitrd-rescue
setenv bootargs console=$console netconsole=6666@,6666@ $mtdparts
bootm 0x800000 0xe00000
or to set it as a script:
setenv recovery 'setenv serverip 10.0.1 ; setenv ipaddr ; machid 831 ;tftpboot 0x800000 uImage-rescue ; tftpboot 0xe00000 uInitrd-rescue ; setenv bootargs console=$console $mtdparts ; bootm 0x800000 0xe00000
run recovery

The L/P are: root/root

Newer uBoot as workaround to 3.2 kernel problem

Please see this post by davygravy as it will give you the steps and files required to upgrade U-Boot to boot newer kernels ( 3.2.x >= ).

JTAG Recovery

Here are a few links for JTAG recovery: Debricking w/ BusPirate Debricking w/ Parallel JTAG

U-Boot Mods

Hardware Mods

SD Card and I2C Support

The first page of this thread documents the pin-out for attaching a SD Card reader to the Dockstar. Also, there's information about the I2C interface.

RTC Clock

The Dockstar has no built-in RTC clock, but it can be added back.

Overclocking and Underclocking

According to this page (German), the Dockstar has jumpers to set the multipliers for the CPU, RAM and AHB, and there are three selectable CPU speed: 1.0 GHz, 1.2 GHz and 1.5 GHz. To switch from 1.2 to 1.5 GHz, three surface-mounted resistors have to be resoldered. Please note that according to the author of the page, the Dockstar is not 100% reliable at full speed, and may require further modifications to achieve stability. Underclocking to 1.0 Ghz is also possible, but the decrease in power consumption is likely not worth the hassle

External Installation Guides


toh/seagate/dockstar.txt · Last modified: 2015/10/04 19:32 by tmomas