|Version/Model||S/N||Launch Date||OpenWrt Version Supported||Model Specific Notes|
|Marvell Kirkwood@1200MHz||128 MiB||256 or 512 MiB||1 gigE||4x 2.0||Yes||Yes|
either by generating it yourself or searching. [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 for explanations!
|OpenWrt FlashLayout 1|
|OpenWrt FlashLayout 2|
Here we describe howto 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 169.254.254.254. 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.
|These instructions use 0x40000 as the length of bootloader. The current u-boot image is 0x594c8 bytes long, so the instructions seem be out of date.|
|Even with corrected size, the 12.02beta2 bootloader does not work as a second stage loader and bricks as a first stage loader.|
Connect your Dockstar and reset the device
Now execute the following commands to retrieve and install the bootloader:
mw 0x800000 0xffff 0x40000 tftpboot 0x800000 openwrt-kirkwood-dockstar-u-boot.bin nand erase 0x100000 0x80000 nand write.e 0x800000 0x100000 0x80000 setenv bootcmd nand read.e 0x800000 0x100000 0x80000\; go 0x800000 saveenv
mw 0x800000 0xffff 0x80000 tftpboot 0x800000 openwrt-kirkwood-dockstar-u-boot.kwb nand erase 0x000000 0x80000 nand write.e 0x800000 0x000000 0x80000 setenv bootcmd nand read.e 0x2000000 0x100000 0x400000\; go 0x2000000 saveenv
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. Enter 'boot' in your Dockstar u-boot command prompt. This will load and execute the second stage bootloader. Press enter to get a command prompt at the bootloader.
To install the kernel and rootfs enter the following commands into the command prompt of the 2-stage bootloader.
# Install kernel
mw 0x6400000 0xffff 0x300000 tftpboot 0x6400000 openwrt-kirkwood-uImage nand erase 0x200000 0x300000 nand write.e 0x6400000 0x200000 0x300000
mw 0x6400000 0xffff 0x300000 tftpboot 0x6400000 openwrt-kirkwood-uImage nand erase 0x100000 0x400000 nand write.e 0x6400000 0x100000 0x400000
# Install rootfs. Location is the same for both single and 2-stage bootloaders.
mw 0x6400000 0xffff 0x200000 tftpboot 0x6400000 openwrt-kirkwood-Dockstar-jffs2-128k.img nand erase 0x500000 0xfb00000 nand write.e 0x6400000 0x500000 0x200000
Note here: 0x200000 is the size of your rootfs in hex. 0x200000 means 2MiB. If you have selected many packages to be integrate into rootfs, it may be bigger than 2MiB. E.g. if your rootfs image has ~4.5MiB you have to replace 0x200000 with 0x500000 in the code example above.
Note: 2-stage bootloader tftpboot command asks the tftp server to use a 4168 block size but seems unable to handle fragmentation properly. This would lead to being unable to install kernel and rootfs. Most legacy tftp servers would never honor the 4168 block size request and use default 512 blocksize and no problem arise, but tftpd-hpa would, so beware! In this latter case simply set –blocksize 512 in /etc/defaults/tftpd-hpa.
OpenWrt should now be successfully installed on you Dockstar.
To continue enter 'boot' in the 2-stage bootloader prompt or reset the device. Your Dockstar should now boot Openwrt.
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 email@example.com:/tmp
# Rootfs image
scp bin/kirkwood/openwrt-kirkwood-Dockstar-jffs2-128k.img firstname.lastname@example.org:/tmp
wget http://dockstar.googlecode.com/files/blparam scp blparam email@example.com:/tmp
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.
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".
Since this part is identical for all devices, see Basic configuration.
To connect stuff to the USB port, please see Connect stuff to the USB port.
The default network configuration is:
|Interface Name||Description||Default configuration|
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.
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. 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 http://smorgasbord.gavagai.nl/2010/02/sheevaplug-hardware-crypto/. It states that you’ll get about 19 MB/s writing to an encrypted USB HDD.
 TDMA support for mv_cesa is tracked in this ticket
|Architecture: armv5te (big endian, runs also with little endian)|
|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|
|Ethernet: 1x GigE port / Marvell "Alaska" 88E1116R|
|USB: 3x USB 2.0 ports, 1x mini USB 2.0 port for harddisk|
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.
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.
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 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.
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 wget http://plugapps.com/os/pogoplug/uboot/nanddump 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 firstname.lastname@example.org/eth0,email@example.com/12:23:34:45:56:67 $mtdparts bootm 0x800000 0xe00000
These files can also be loaded from a TFTP server (tftp-hpa).
setenv ipaddr 10.0.0.2 setenv serverip 10.0.0.1 setenv machid 831 tftpboot 0x800000 uImage-rescue tftpboot 0xe00000 uInitrd-rescue setenv bootargs console=$console firstname.lastname@example.org/eth0,email@example.com/12:23:34:45:56:67 $mtdparts bootm 0x800000 0xe00000or to set it as a script:
setenv recovery 'setenv serverip 10.0.1 ; setenv ipaddr 10.0.0.2 ; 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
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 >= ).
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.
The Dockstar has no built-in RTC clock, but it can be added back.
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