Final Update 2004-12-27

I am no longer working on this project, and have gotten rid of my NAS boxes. I did not have much time to work on it, and was not able to get a replacement kernel to boot. Without a new kernel, the possibilities were reduced to the degree that I was not interested in continuing to work on it. For a similar box for which customization is supported, see the Kuro box web site. I don't have one of these, but this looks like a much better option if you want a customizable appliance.

Using the pack and unpack programs linked to below, it is possible to create custom images that can be loaded onto the box. I was not successful at getting an alternate kernel to boot, but it is fairly simple to update the filesystem that is also included in the image. It is a compressed ext2 file system image - it can be loopback mounted and modified, and then repacked into a new firmware image.

New firmware images prompt for a password on the serial port after boot, but this can be defeated easily. The password is checked in one of the init scripts, and is stored in plaintext. You can find out the password by looking in the etc/rcS file in the ramdisk image. The password for 1.45 is "168Mct168", and the password for 1.50 is "6968GZ". The easiest way to add functionality is to update the init scripts in the initrd that is stored in flash to run scripts that are on the hard drive. This way the flash only has to be modified once, and not every time you want to tweek something. A reasonable source for development tools is MontaVista, where you can download a preview version of their tools after registering. If someone is successful in getting more working, I'll put a link on this page, so let me know if anyone has success. I'll try to help with any NAS specific info that I can, but I won't be able to provide general development help.


Hacking the Tritton NAS120

I purchased a Tritton NAS120 at Fry's the day after Christmas (2003), and have started working on being able to run other software on it.  I will update this page as I make progress.  (See bottom of page.)  The NAS 120's support for NFS is very poor, so I would recommend against it if you are planning to use it as an NFS server.



Tritton NAS120 overview

The NAS120 is a network attached storage device (file server) that supports NFS, CIFS (windows), and Apple (not tested by me) file sharing, ftp access, and web administration.  What is not mentioned on the box is that the web administration supports IE 5.0 and greater ONLY.  It just gives an error message on anything else.  Changing the user agent of Mozilla Firebird 0.7 resulted in unusably rendered pages.  CIFS and NFS networking works, but there are some rough edges, at least on NFS.  Ownership and permissions on NFS are not handled properly (completely messed up.)  NFS throughput on large files is about 2 Mbytes/second, although I have only done a very little bit of testing.

What's inside

Inside the box is a 120 Gig hard drive (looks like Hitachi), and a board containing a Silicon Image IDE controller and a Toshiba TMPR3927CF processor, with 32 Megs SDRAM and 4 Mbytes flash.  This processor is based on a MIPS R3000A.  See the Toshiba web site for datasheet.   The flash holds all of the software, as the hard drive is shipped unformatted.

nas120 main board


Conveniently, the one of the serial ports is brought out to a header, and it provides a serial console for the boot loader and bash shell.  Also, JPXXXX causes the boot loader to not automatically start the kernel when jumpered.  The serial port is set for 115Kbits/sec N81, but is only 3.3V logic signal levels, so a serial line driver is required to hook it up to a rs232 port.

nas120 jumpers closeup

Jumpers:

JP 8:  boot loader prompt.  when jumpered, board boot stops at boot loader prompt, rather than booting into Linux.
pin 1:    PIO 1, 10KOhm pullup to 3.3 volts
pin 2:    gnd
   
JP 1: Serial port  115Kbits/sec, N81  (3.3 volt logic signalling levels)
pin 1:   3.3 volts
pin 2:   TX
pin 3:   GND
pin 4:   RX

Software

The board is running linux kernel 2.4.16 with busybox and uclibc, and it is running out of a ramdisk.  It appears to be using some MTD functionality, but neither the character nor block devices seem to be there.  Tritton does not have any source available for download, and I have not contacted them about that yet.
The hard drive is formatted with the ext3 filesystem, and can be easily read/modified if hooked up to another linux system.

Other products based on this design

IOGear's BOSS

Claxan's CL-SA110   (In German)

Tritton's TRI-ASA products

Tritton seems to be the only group that is selling a disk-server only version, which is what is described on this page.

Status

12/28/2003

Have serial port working.  Also, the box will recognize and use a 180 Gig Hitachi drive, so it does appear that the drive is upgradeable, and that it supports LBA48.  I have not verified that I can store more than 137 Gigs, but I am optimistic that since ext3 format works, that it will actually work with large drives.  I am currently working on getting a toolchain built for the processor so that I can build executables for the board.  Since the hard drive is accessible over the network and from the shell, moving files to/from the box is quite easy.

3/21/2004

Tritton finally released a firmware update, but it did not resolve any issues.  (maybe it helped the not finding hard drive at startup, but I haven't really paid attention.)  There is a review at www.smallnetbuilder.com, which also review the iogear boss, which is basically the same with an extra ethernet port and switch.  The firmware is basically the same, but different enough that it does not run properly on the NAS120.  (The main issue is that only eth0 exists, and that is the WAN port on the BOSS.)  I have written a couple of simple (and very much thrown together) utilities for packing and unpacking firmware images.  The firmware image consists of  a header, kernel image, ramdisk image (ext2), and trailing signature.
The files pack.c and unpack.c are simple utilities that allow you to get the kernel and ramdisk image from a firmware file.
I have successfully modified the ramdisk and downloaded to unit.
You shouldn't use a modified image unless you are willing to open the unit and setup the serial connection and boot monitor jumper.  I have always been able to recover using the boot monitor, but it is still possible to mess even that up.

To load a firmware image using the boot loader:
  1. DO NOT DO THIS UNLESS YOU KNOW WHAT YOU ARE DOING!!!! (Don't complain to me if you do this and you now have a doorstop with blinkey lights on it....)
  2. get a bootloader prompt by connecting a serial port and closing JP8
  3. type 'load' at the bootloader prompt, and then send the file using tftp to the address 192.168.1.254.  be sure to set binary mode
  4. type 'flash' to burn the downloaded image to flash.
  5. power cycle the unit after the flashing has completed.
If anyone gets more working, please let me know email: nas120@royfranz.com. 

I have not gotten my rebate yet, and given the poor service that Tritton is providing, I may never get it. (update - re

It looks like the real source of the design for this product as well as Iogear's is Magic Control Technology.   They do not seem to offer any direct support of it.


4/22/2004

I finally received my rebate for my after Christmas purchase, and it is nice to have that resolved. (I only got the rebate check after a number of inquiry emails to Tritton.)  Version 1.45 of the firmware was release, and now NFS is completely broken.  Tritton (and MCT) are not living up to their obligations under the GPL, as they refuse to release their modifications to the Linux kernel.