Installation

Installation on the DockStar requires SSH access. Some firmware versions have it enabled by default, accessible with root/stxadmin. 2.1.2, the newest update as of this writing, has SSH disabled. You can turn it on in the Security section of the control panel.

Get blparam

Once you have SSH access, install blparam, the application used to configure the bootloader.

mount -o rw,remount /
cd /usr/local/cloudengines/bin
wget http://update.cooltrainer.org/freebsd-kirkwood/utils/blparam
chmod 755 ./blparam

Flash the kernel

Download a pre-built kernel or copy yours to the device.

cd /tmp
wget http://update.cooltrainer.org/freebsd-kirkwood/pub/FreeBSD/releases/arm/8.1-RELEASE/DOCKSTAR.bin.page

Erase the 219MiB portion of the NAND, mtd3, and flash the kernel into it.

flash_eraseall /dev/mtd3 > /dev/null 2>&1
nandwrite /dev/mtd3 DOCKSTAR.bin.page > /dev/null 2>&1

Copy the original boot command

Copy the stock bootcmd to bootcmd_original so we can use it to return to Linux.

For DockStar:

cd /usr/local/cloudengines/bin/
./blparam 'bootcmd_original=nand read.e 0x800000 0x100000 0x300000; setenv bootargs $(console) $(bootargs_root); bootm 0x800000' > /dev/null 2>&1

For PogoPlug v1:

cd /usr/local/cloudengines/bin/
./blparam 'bootcmd_original=nand read 0x2000000 0x100000 0x200000; setenv bootargs $(console) $(bootargs_root); bootm 0x2000000' > /dev/null 2>&1

For PogoPlugv2:

cd /usr/local/cloudengines/bin/
./blparam 'bootcmd_original=nand read.e 0x800000 0x100000 0x200000; setenv bootargs $(console) $(bootargs_root); bootm 0x800000' > /dev/null 2>&1

For anything else:
I dunno, man.

Set up dual-boot

Here’s where you need to know the size in bytes (in hex!) of your kernel. Bootcmd_usb reads ${that many} bytes starting at 0×2500000 in NAND. In this example, the size of my kernel is 0x3A9000.

cd /usr/local/cloudengines/bin/
./blparam "bootcmd_usb=nand read.e 900000 0x2500000 0x3A9000; go 900000" > /dev/null 2>&1
./blparam "bootcmd1=setenv bootcmd run bootcmd2; saveenv; run bootcmd_usb" > /dev/null 2>&1
./blparam "bootcmd2=setenv bootcmd run bootcmd1; saveenv; run bootcmd_original" > /dev/null 2>&1
./blparam "bootcmd=run bootcmd1" > /dev/null 2>&1

With this setup, the DockStar will boot FreeBSD every other reboot. If you have serial console access, feel free to set bootcmd to “run bootcmd_usb”, but everyone else should leave it alone. That way you can get back into the stock firmware to perform updates or if you decide you just don’t like FreeBSD :)

Reboot. If all goes well you should have SSH access with root/root.

Post-installation

Set a root password immediately.

passwd

Add a normal user account for yourself. When asked, add your user to the wheel group. Consider disabling root SSH access in /etc/ssh/sshd_config.

adduser

Set the timezone.

tzsetup

Set up mail aliases.

pochan# cd /etc/mail
pochan# make aliases
Applications ยป