Terastation TS3410DN

Stock Firmware Installation

 * Install blank drives into the device and then power it on.
 * The device will bring up a web interface which can be used to format the drives and install the firmware.

If the device fails to boot into the OS or the recovery web interface it may mean that the NAND is corrupted. It will typically then boot into emergency mode. To recover you can use the "Update Boot" debug option of LSUpdater to re-flash the NAND which should allow it to boot and reinstall the firmware. Like all operations that involve re-flashing the boot loader there is some risk involved if the process gets interrupted by a power outage or something of that nature.

see Enable Debug mode

Root Access
This device can be sent commands via ACP_Commander.

a basic root shell can be accessed by sending the following
 * Start telnet daemon: "/bin/busybox telnetd &"
 * Switch admin user to bash shell: "sed -i 's/rbash/bash/g' /etc/passwd"
 * Add normal directories to PATH: "echo PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin >> /home/.bash_profile"
 * Add sudo access to admin user: "echo admin ALL=(ALL:ALL) ALL >> /etc/sudoers"

You should now be able to login as the admin user via telnet and use sudo for root access as needed. The telnet daemon will need to be restarted every time the system is rebooted (or added to an init script to make persistent).

Eventually I'll add a procedure for persistent ssh access rather than telnet... someday.

Custom Firmware/Operating System installation
These devices run a modified version of Ubuntu LTS 14.04, it is relatively easy to customize once you gain root access. However, the kernel it uses has been patched to allow 32kb memory pages which causes some programs to fail (I've only tested ones compiled for Debian ARMHF so far).

These devices are based on a Annapurna Alpine SoC which appears to have some amount of mainline linux support though it's unclear (to me) whether that support is sufficient to boot from a mainline kernel. Although the device stores its operating system on the hard disks it boots from a kernel/initrd stored in the on-board flash. It should be possible to make it boot from the drives instead by adjusting the boot order in uboot but I have not yet attempted this.

Hardware Notes
Behind the door on the front there is a sticker on the lower-left corner, behind that sticker is a hole where a serial port could be mounted which has a serial connector behind it (see board pictures). That connection runs at 3.3v but it appears that the rx/tx lines are not connected.

I attempted to bridge the points on the PCB near the port where a resistor appears to be missing. This required sanding down the area to get through a layer of transparent material the board seems to be sealed in. I believe in the process I also exposed some of the ground plane which likely was also connected when I bridged the points with solder. I didn't get any serial output after doing this but that might just mean I had shorted it to ground.

There is an identical connector on the board between the CPU and the on-board micro-controller. When a serial cable is connected to this header you can see binary data going across, I believe these are the micro-controller commands similar to those used on older devices, see Terastation Microcontroller Interface.