Extending FNS-1000 - firmware

Sprache: Deutschlanguage: english
© 2006 Sebastian Voitzsch
last changed on 01-09-2007

WARNING: The following information and software is provided as-is. There is no guarantee that it works, nor that it doesn´t harm your FNS-1000. Firmware modification can lead to unusable devices that might require manufacturer repair. Use this information at your own risk!

I recently bought myself a FNS-1000 network storage device. The idea was to have a backup device, and in addition a network drive where files can be accessed without booting my main pc. First I had one of those cheap USB/LAN-cases based on the RDC chipset, but the FAT32-based design was quite limited and buggy. So I decided to spend some more money and got a Linux based device.

The device has quite good features, but I wanted more. So I added support for the rsync protocol via dedicated rsync daemon, ssh (dropbear) for logging in and - of course - NFS support (kernel based). The modification is based on the original firmware, just some binaries added and a slightly modified kernel (NFS support) is used. So it is fully compatible with all FNS-1000 features, including the web interface. At this time the only missing thing is a fancy web interface to configure the NFS and rsync daemons, but this can be done by easily editing plain "exports" and "rsyncd.conf" files using default syntax in the default ADMIN share (accessible via SMBFS or ftp).

As the original firmware contains some files where the source is not available for, I can´t offer firmware images. I asked Level-1 about the permission to offer prebuilt images, but they didn´t answer my question yet. So I created a script to modify original firmware image files. It works with the latest revision firmware images (V27R17). To use it, you must have the "slugtool" installed. This utility is used to split the firmware files into several parts (ramdisk, kernel, bootloader) and correctly pack these parts together after modification. Slugtool can be downloaded here.

To correctly configure NFS and the rsync daemon the mentioned files rsyncd.conf and exports must exist. For easy configuration the files have been placed on the internal disk within the ADMIN share. This share is available via SMBFS (mount //<fns1000>/admin as user "admin"). The syntax is standard for both files (see "man exports" or "man rsyncd.conf" on *nix systems, the manpages are also online available).

There is one more thing to do to make the ssh login work. The default password file /etc/passwd contains invalid login shells (/dev/null) for most users. So we need to have at least one user with a valid login shell. To modify the password file first go to the web interface, click administration->advanced->backup, then "download" the config file with the button in the upper half. The file you get is named "configfile.bin" but isn´t a binary file. It´s a tar archive containing several configuration files. Extract the files (linux users use "tar xf configfile.bin"), get into the created directory and open the file "passwd". The file contains one line for each user. First is the username, then the password and last is the login shell. Find the line containing the "admin" user, and replace the "/dev/null" at the end of the line with "/bin/sh". You should also set a known password for root user. Simply copy the encrypted password from admin user to the root user.

When you´re done, leave the configfile directory and recreate the configfile.bin by typing "tar cf configfile.bin configfile". Then go to the web interface again and upload the modified configfile.bin to your FNS-1000. After that, the FNS-1000 will reboot.

The firmware patch utility contains the script itself and the needed files. Extract the file, get into the created directory, copy the firmware binary file into this directory and run the utility by typing

./patch-firmware FNS-1000_ddc_V27R17_12_15_2005.bin

When the script has finished, flash the modified firmware file using the web interface of your FNS-1000. Enjoy!

Download