DNS 320 & 325 - Extend your NAS possibilities with Funplug 0.7



DNS-320 and DNS-325, like their elder brother DNS-323, are some a very versatile NAS that can be extended heavily by installing the latest Fun_plug 0.7 script, which opens the gate to some very interesting extension possibilities.

The main advantage of DNS-325 over DNS-323 or even DNS-320, is its horse power (1.2 GHz processor) and its embedded RAM (256 Mb). We are in front of a real home server !

This article explains all the steps needed to get the latest Fun_plug 0.7running on a DNS-320 or a DNS-325. It also explains how to remove previous Fun_plug 0.5 version, which is a pre-requisite. 

Once Fun_plug is fully installed, you will be able to install some very usefull extensions :

  • a LAMP server
  • a Rsync server
  • a Transmission client
  • a pyLoad client
  • ...

A lot of information found here is coming from various threads on NAS Tweak site.

This article has been tested on a DNS-325 with firmware V1.02 and a DNS-320 with firmware V1 as well.

1. Uninstall Fun_plug 0.5

This section only interests you if you have a Fun_plug 0.5 running on your DNS-325, as both version cannot run at the same time.
Fun_plug 0.5 has to be properly uninstalled, prior to Fun_plug 0.7 installation.

Uninstallation of Fun_plug 0.5 is very easy, but it involves few steps :

  1. On Volume_1 share, rename fun_plug to fun_plug.v05
  2. Reboot your NAS
  3. On Volume_1 share, rename ffp directory to ffp.v05

Fun_plug 0.5 is now unistalled in a reversible way. As you've noticed, all the files are still there.

In case you want to reinstall it, just rename the file and directory and reboot.

2. Install Fun_plug 0.7

All the commands starting with $ have to be executed from your desktop.
All the commands starting with # have to be executed from the DNS-320 or DNS-325 console.

Download following files from http://ffp.inreto.de/ffp/0.7/arm/ and place them at the root of your Volume_1 network share.

  • fun_plug
  • fun_plug.tgz

Then, edit the fun_plug file with any text editor (compatible with Linux text files) and replace all occurences of /mnt/HD_a2 with /mnt/HD/HD_a2

Once done, reboot your NAS.

If everything has gone fine, you should be able to connect via Telnet :

$ telnet your.nas.ip.address

As this telnet connexion is very unsafe without password, we will replace it by a safe, password-encrypted, ssh connection.

Therefore we need an appropriately configured user root, what we we do with the following commands:

DNS 32x console
sh-4.1# usermod -s /ffp/bin/sh root
usermod: no changes
sh-4.1# mkdir -p /ffp/home/root/
sh-4.1# sed -ie 's#:/home/root:#:/ffp/home/root:#g' /etc/passwd
sh-4.1# pwconv
pwconv: failed to change the mode of /etc/passwd- to 0600

Afterwards, we will set a new root password and test it by logging in as root.

DNS 32x console
sh-4.1# passwd
Changing password for root
Enter the new password (minimum of 5 characters)
Please use a combination of upper and lower case letters and numbers.
New password:
Re-enter new password:
passwd: password changed.
sh-4.1# login
NAS login: root
No mail.

If you are able to login, you now need to save this configuration in the flash memory, otherwise your new password will be lost after every boot.

If you get an error message with "bad address", your NAS internet configuration should not be set properly.

DNS 32x console
root@NAS:~# wget http://wolf-u.li/u/172/ -O /ffp/sbin/store-passwd.sh
Saving to: '/ffp/sbin/store-passwd.sh'
100%[==============================================================>] 875 --.-K/s in 0s
2012-05-22 12:29:52 (7.45 MB/s) - '/ffp/sbin/store-passwd.sh' saved [875/875]
root@NAS:~# store-passwd.sh
Saving Userdata to flash storage

Next step is to :

  1. make ssh daemon executable so that it starts automatically at every boot
  2. start the daemon (to avoid a reboot)

Note that first start may take a while, because on first run ssh generates key pairs.
Therefore some funny looking images are printed. At last, it will start /ffp/sbin/sshd

DNS 32x console
root@NAS:~# chmod a+x /ffp/start/sshd.sh
root@NAS:~# sh /ffp/start/sshd.sh start
Generating public/private rsa1 key pair.
Your identification has been saved in /ffp/etc/ssh/ssh_host_key.
Your public key has been saved in /ffp/etc/ssh/ssh_host_key.pub.


| * E S |
| + = |
| o . |
| . |
| |
Starting /ffp/sbin/sshd

The SSH daemon is now running.

DO NOT close the telnet session to prevent from locking yourself accidentally out of the machine.

From your desktop, open a second SSH session on your NAS :

$ ssh root@ 192.168.x.x

root@ 192.168.x.x's password:
Last login: Tue May 22 12:38:18 2012 from 192.168.x.y

If everything worked well, you've been able to login with your newly set password.

You can now disable telnet (as you have ssh now) with this command :

DNS 32x console
# chmod -x /ffp/start/telnetd.sh

From now, every time your NAS will boot, SSH daemon will be started and Telnet daemon won't.

You are done !

The basic Fun_plug 0.7 extension is now installed and operational on your DNS-320 / DNS-325.

3. Declare Software repositories

One of the strengh of fun_plug is the number of applications available as additionnal packages from some specific repository.

All these packages will make life much more simple when it comes to install some software on the NAS.

3.1. Add package sources

Fun_plug 0.7 comes with a brand new software installer called slacker.

We first need to declare all available repositories for slacker in /ffp/etc/funpkg/sites.

The following list is not exhaustive. It is the one available at the time of this article.

The last command will update slacker cache with the content of the new repositories.

DNS 32x console
# echo "mijzelf http://downloads.zyxel.nas-central.org/Users/Mijzelf/FFP-Stick/packages/0.7/arm" >> /ffp/etc/funpkg/sites
# echo "memiks http://ffp.memiks.fr/pkg" >> /ffp/etc/funpkg/sites
# echo "kylek http://kylek.duckdns.org:31337/files/ffp/0.7-arm" >> /ffp/etc/funpkg/sites
# echo "uli rsync://funplug.wolf-u.li/funplug/0.7/arm/packages" >> /ffp/etc/funpkg/sites
# slacker -U

3.2. Update Existing packages

As the new repositiories are providing some software update, we will update the pre-installed packages.

DNS 32x console
# slacker -u

Select all proposed packages from s: repository and click OK.

Update will take place.

4. Install Console Editors

Some of the first packages to install are nano and midnight commander.

nano is a very simple and light console text editor.

midnight commander is a very advanced console file manager, which is also providing an inbuilt text editor. It can replace vi, nano, ...

Lets launch the software installer :

DNS 32x console
# slacker -a uli:nano uli:glib mijzelf:mc

From the list, select the following packages :

  • uli:nano
  • uli:glib (library needed by mc)
  • mijzelf:mc (midnight commander)

Click OK to install.

You can start midnight commander file manager with :

DNS 32x console
# mc


You can directly edit a file with midnight commander :

DNS 32x console
# mc -e /ffp/start/telnetd.sh


5. What's next ?

You are now ready to use your new home server to its full potential, installing some very interesting pieces of software.

Here are some ideas for next steps :

Signature Technoblog

This article is published "as is", without any warranty that it will work for your specific need.
If you think this article needs some complement, or simply if you think it saved you lots of time & trouble,
just let me know at This email address is being protected from spambots. You need JavaScript enabled to view it.. Cheers !

icon linux icon debian icon apache icon mysql icon php icon piwik icon googleplus