After installing Fonz’ fun_plug (see tutorial on this), you will probably want additional packages.
Contents
Packages
Choosing the download sites
Before you can download and install the packages through slacker, you need to activate a “site” from where you can download the site. For your convinience, there is a script available from Uli called “uwsitedownloader” which you can use to download a list of sites through a central tool. Please follow this link
for the installation.
Package management
Package management is done using two programs by fonz called “slacker” and “funpkg“. We will be concentrating on slacker as this tool is easier to use. funpkg is for manual installation of packages, but this is often only necessary for developers as the provided repositories can be used via slacker. Typing “slacker” on the command line lists the flags and options that it supports:
slacker options pattern...
Options:
-U Update package lists
-C Clear cache
Install, reinstall or upgrade:
-a List all available packages
-I List available packages that are installed and up-to-date
-i List available packages that are not installed
-u List available packages that differ from the installed version
Remove packages:
-r Remove installed packages
-o List installed packages not present at sites
-A Pre-select all packages in the dialog
-F Do not apply ignore list
-c Print report to stdout, no menuImportant: once you start using slacker to install Fonz’ packages, you have to complete the entire procedure described in this tutorial in one session.
In other words, once you proceed with any of the steps beyond this point, you have to complete all steps of the Package management part of this tutorial:
- initial update for packages
- install new packages,
- save any configuration changes that you need to save for existing packages that will be upgraded,
- upgrade existing packages, and (most important of all)…
- do a
chmod a+xon e.g./ffp/start/sshd.sh
Initial package updating
After the Installation of uwsitedownloader you need to update the repository data using slacker:
slacker -UThis will lead to a output like this (or similar):

Now you can proceed with the next steps.
Package installation
After the repository data has been downloaded, you can install packages by using slacker again. This time you can choose between various installation modes using the commandline parameters “-a”, “-i” and “-u”. In the following text i will show you how to install new packages using “-i”:
slacker -iThis will show a screen similar to this one:

To choose a package, carefully select the newest version (some providers of repository provide multiple versions of packages) and hit the spacebar to select one. This will then fill the field “[ ]” before the package name to “[*]“. You can select multiple packages. After the selection you can hit “ok” and slacker will download and install the packages.
Personal sidenote: After a new installation of fonz’ funplug 0.7 i first install all packages of fonz to have the newest versions. This can be achieved using:
slacker -aA s:I then check though the list once and install the packages.
If you want to install packages only from one site you can use a pattern. This pattern can be found in the list of packages:

So to see all packages from fonz simply enter:
slacker -a s:If you want to install a certain packages you can also use the pattern. For example check for nano:
slacker -a nano
This will show you my and KyLeKs package for nano. Of course this could also lead to different versions and so on.

Package configuration
During the installation, certain packages tend to add an ASCII file with configuration settings to the folder /ffp/etc/. This can be viewed from Windows using WordPad or a programming editor like NotePad++. The latter can edit ASCII files with the Linux end-of-line convention. Alternatively, you can use the Joe editor provided as one of these packages. Any modifications can obviously lead to “interesting” results, so be careful, especially with important daemons.
Some packages place example configuration files into folder /ffp/etc/examples/ instead of putting actual configuration files into /ffp/etc/. Such files are ignored by the application: you are expected to read them and copy them (possibly after renaming or even editing) to folder /ffp/etc/ yourself. Examples for a package called PHP as listed in the MANIFEST.txt:
drwxr-xr-x root/root 0 2008-05-29 13:00 ./ffp/etc/examples/ -rw-r--r-- root/root 45030 2008-05-29 13:00 ./ffp/etc/examples/php.ini-dist -rw-r--r-- root/root 48619 2008-05-29 13:00 ./ffp/etc/examples/php.ini-recommended
Package updating
From time to time, repository owner update the packages in the repo. You should also check if there are updates to the packages available as these might mitigate security risks. To do the update, you first update the repository data (see above) and then check with slacker for the list:
slacker -uBe careful: always check if the installed version (which is shown at the bottom of the dialogue) is really older than the version that is shown as “upgrade”.
This dialog will look like this:

But please beware of a number of pitfalls:
- This may overwrite any changes you made to configuration files (probably in folder
/ffp/etc/). So you may want to create a copy of these first. - This may overwrite access privileges you made to files (particularly to the scripts that start daemons in folder
/ffp/start/).
We will discuss the role of the -x flag here and now only concentrate on avoiding a very real pitfall which happens when you run
funpkg -u OpenSSH-versionnumber.tgzIf you look into MANIFEST.txt you find that it creates (or more precisely – overwites) a file called sshd.sh:
-rw-r--r-- root/root 971 2008-07-29 16:30 ./ffp/start/sshd.sh
This would be fine if you don’t need to run the SSH server yet. The problem is that, after running funpkg -u for OpenSSH, a next reboot will not start the SSH daemon (server) and you will be locked out of funplug: PuTTY for example cannot connect using the ssh protocol unless there is a running SSH server. This server can only start with the -x (execute) bit on the file set. Remember that we set that bit for exactly this file in the fun_plug tutorial? So we now need to do that again after you have upgraded whatever packages needed upgrading but BEFORE you exit ssh (or worse reboot the NAS).
So, to ensure that the file sshd.sh will run when you reboot the CH3SNAS in the future:
chmod a+x /ffp/start/sshd.sh ls -l /ffp/start/*.sh
This gives all users (a) the right to execute (x) the file /ffp/start/sshd.sh (in particular it enables the fun_plug script to execute it on startup). The folder listing will include
-rw-r--r-- 1 root root 432 Jul 15 14:44 samba.sh -rw-r--r-- 1 root root 229 Apr 24 20:16 smartd.sh -rwxr-xr-x 1 root root 971 Jul 29 16:30 sshd.sh -rw-r--r-- 1 root root 383 Aug 12 22:17 syslogd.sh -rw-r--r-- 1 root root 169 Aug 12 22:17 telnetd.sh
If the entry for sshd.sh has 3 x-bits set, you have succeeded.
Package removals
If you want to (e.g. temporarily) disable execution of a server package, see the discussion on Daemons. To remove a package completely, use:
slacker -rAgain, some packages (like uclibc) may be needed to run other packages, so removing packages using funpkg is not foolproof. Fortunately, application packages which a non-expert is likely to be aware of because they do something for the end user (e.g. servers/daemons) are unlikely to be used by other packages.
Note that the dependency information can be found at the top of the /ffp/start/somedaemon.sh files. The example (from the file /ffp/start/sshd.sh)
# PROVIDE: sshd # REQUIRE: LOGIN
suggests that you shouldn’t remove the LOGIN package because it is required to run the sshd (=OpenSSH) package.
Dear Uli,
I followed the instructions above, but now when I run slacker -a on my DNS-323 I get the following errors in the terminal
root@NAS2:/# slacker -a
/ffp/bin/slacker: line 31: /ffp/funpkg/cache/sites: Read-only file system
/ffp/bin/slacker: line 252: /ffp/funpkg/cache/installed: Read-only file system
/ffp/bin/slacker: line 260: /ffp/funpkg/cache/report: Read-only file system
/ffp/bin/slacker: line 291: /ffp/funpkg/cache/report: Read-only file system
/ffp/bin/slacker: line 305: /ffp/funpkg/cache/menu: Read-only file system
cmp: /ffp/funpkg/cache/menu: No such file or directory
/ffp/bin/slacker: line 321: /ffp/funpkg/cache/menu: No such file or directory
Aborted
root@NAS2:/#
Looking back in the terminal session I see that I had some previous errors from running slacker -aA S:
rsync: write failed on “/ffp/funpkg/cache/s/ntp-4.2.6p4-oarm-2.txz”: Read-only file system (30)
rsync error: error in file IO (code 11) at receiver.c(322) [receiver=3.0.9]
rsync: connection unexpectedly closed (41 bytes received so far) [generator]
rsync error: error in rsync protocol data stream (code 12) at io.c(605) [generator=3.0.9]
md5sum: /ffp/funpkg/cache/s/ntp-4.2.6p4-oarm-2.txz: No such file or directory
/ffp/funpkg/cache/s/ntp-4.2.6p4-oarm-2.txz: FAILED open or read
md5sum: WARNING: 1 listed file could not be read
fetch: rsync -q ‘rsync://ffp.inreto.de/ffp/0.7/oabi/packages/ntp-4.2.6p4-oarm-2.txz’ ‘/ffp/funpkg/cache/s’
rsync: mkstemp “/ffp/funpkg/cache/s/.ntp-4.2.6p4-oarm-2.txz.A34O4v” failed: Read-only file system (30)
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1518) [generator=3.0.9]
md5sum: /ffp/funpkg/cache/s/ntp-4.2.6p4-oarm-2.txz: No such file or directory
/ffp/funpkg/cache/s/ntp-4.2.6p4-oarm-2.txz: FAILED open or read
md5sum: WARNING: 1 listed file could not be read
Do you have any suggestions as to how I can remedy the errors?
Thanks
Chris
Problem solved, I had a corrupt filesystem. I am now versed in the joys of getting fun_plug to run off a USB stick so that I could run fsck on the drives.
Dear Uli,
I’m owning a DNS-323 and have installed funplug 0.7 with the oabi-files.
I cann’t find the correct nano-file.
The nano file from Kylek (arm) does not work and gives conficts. Or is it possible to work with another handsome prog?
Can You pease help me?
Thanks,
Martin
After following all steps (step by step), when I ran slacker.. there’s no package names shown.. it only shows “[ ] install” in a big list until 100% at bottom..
rsync has been done correctly with MD5 checksum… Any idea about what’s wrong?
I need to add stunnel package!!!!
detailed info after slacker -U:
fetch: rsync -q ‘rsync://ffp.inreto.de/ffp/0.7/arm/packages/CHECKSUMS.md5′ ‘/ffp/funpkg/cache/s’
then.. when I ran slacker -i … “[ ] install” with no names… CANT INSTALL PACKAGE in this way..
help please.
Please help me! i got this message.
root@MYO-NAS:~# slacker -U
Updating package lists…
fetch: rsync -q ‘rsync://ffp.inreto.de/ffp/0.7/oabi/packages/CHECKSUMS.md5′ ‘/ffp/funpkg/cache/s’
fetch: (cd ‘/ffp/funpkg/cache/mz’; wget -Nnv ‘http://downloads.zyxel.nas-central.org/Users/Mijzelf/FFP-Stick/packages/0.7/oabi/CHECKSUMS.md5′)
http://downloads.zyxel.nas-central.org/Users/Mijzelf/FFP-Stick/packages/0.7/oabi/CHECKSUMS.md5:
2012-07-26 23:13:56 ERROR 404: Not Found.
fetch: (cd ‘/ffp/funpkg/cache/memiks’; wget -Nnv ‘http://ffp.memiks.fr/pkg/oarm//CHECKSUMS.md5′)
http://ffp.memiks.fr/pkg/oarm//CHECKSUMS.md5:
2012-07-26 23:13:57 ERROR 404: Not Found.
FATAL: memiks: No CHECKSUMS.md5
I have a DNS-323 with firmware 1.09. The installation and configuration of the fun_plug 0.7 went fine, but when I ran uwsitedownloader.sh to configure the download sites and then ran “slacker -aA s:” to install all OARM/OABI packages from the Fonz site, something installed badly and now the following appears in the ffp.log when I reboot and the sshd is not starting:
…
* Running /ffp/etc/fun_plug.ini . . .
Segmentation fault
* Running /ffp/etc/fun_plug.local . . .
Segmentation fault
* OK
I was also getting a “can’t resolve symbol posix_fadvise64″ error when I was trying to cat a file in another terminal window.
I’m guessing one of these packages is not compatible with this hardware, but not sure which one.
Any help or suggestions would be appreciated.
Thanks.
Hello Uli,
Outstanding work on fun_plug. I’ve installed 0.7 per instructions (I think) on my DNS-320, but I’ve run into a problem with ssh. I know you want to hear from another whiner, but when I try to log into ssh from terminal using this I get …
ssh 192.168.1.75
jim@192.168.1.75‘s password:
Permission denied, please try again.
…rinse, repeat…
I have removed and reinstalled several times and am able to log into root via telnet, I’ve saved the password using your scripts, cleared out the old ssh files on my machine, but ssh just won’t cooperate. I could use a helping hand here, ’cause I feel dumber than a box of rocks now.
Thanks
Hi jpm32526,
I’m having the same problem as you too. Have to use telnet every time after reboot my NAS320 to passwd again from telnet to enable the root access for ssh.
suspected is there’s sshd running behind. Although I remove funplug and everything, funny still can ssh to dns. Unable to find where’s the sshd came from..
Please do let me know if you’ve solve your problem.
Thanks.
Can’t even get started here, getting this error
[code]root@NAS:?# slacker
-sh: slacker: not found[/code]
And I can’t find instructions for correctly using funpkg
I’m using the version provided on this website, so it should be 0.7, I assume
Whoops, used the wrong code tags, meant to say
root@NAS:?# slacker-sh: slacker: not found
Are you using Telnet or SSH? Please use SSH for these Instructions, otherwise slacker will not be found.
Cheers,
Uli
Hi, I was using SSH to do this.
I think I may have found the problem though, there are two guides on this site, one of which is 0.7, the other some other version
The guide I used was some other one on the site I got to by Googling, but I should have used this one
http://nas-tweaks.net/371/hdd-installation-of-the-fun_plug-0-7-on-nas-devices/I’ll try uninstalling then installing this one and see if that corrects the problem
Finally got around to uninstalling and re-installing
Seems to work fine this time, guess I should have made sure I was on 0.7 the first time
Hi Uli,
i followed you your sidenote to use:
slacker -aA s:
my online problem is that the list are quite long. should I be installing everything? is there a page where I could look at to know what certain package do or something? Or should I google it one by one?
thanks btw for the guide. twonky server is running very smoothly
I have a DNS323 with 0.7 installed, now I upgraded all packages with slacker -u. I used telnet iso SSH, after that slacker doesn’t start anymore, it gives a ‘can’t resolve symbol posix_fadvise64 error’. Do I understand correctly that I should have used SSH. Is there a possibility to recover slacker without re-installing funplug 0.7? Thanks
me too.
I used ssh. Same issue. I think some package broke slacker.
Still no resolve for this? I have same problem!
Hi,
How to resolve this:
root@Serveur:/ffp/start# slacker -a
sort: can’t resolve symbol ‘posix_fadvise64′
No packages found (status Iiu, pattern )
Just a suggestion for maybe an upcoming release of slacker
If the version is older than installed, instead of showing upgrade, it could say maybe downgrade?
Also it would be nice to have some kind of autoupdate command, like slacker -update for slacker to automatically select the newest releases to all my installed programs and update.
While browsing around, I came across a page by Nicolas Bernaerts, at http://bernaerts.dyndns.org/dns325/242-dns325-ffp7-move-usb-key, which does exactly what it says in the title.
This is well worth publicity, and should possibly migrate into fun plug itself?
The only difficulty I had was the path to the USB drive – my DNS-325 fw 1.03, seems to mount at /mnt/USB/HD_c, whereas Nicholas’ script tries to use /mnt/USB/HD_c1.
His other pages are interesting also.
Guys – I updated transmission app using the slacker command, and if I look through the /ffp/start directory I see:
-rwxr-x–x 1 root root 759 May 17 2011 transmission.sh
-rwxr-x–x 1 503 702 856 Sep 27 12:31 transmission.sh.new
Should I be removing the transmission.sh and replacing with transmission.sh.new?
This is grand – but does anyone know if there is an implementation of the ‘screen’ tool available anywhere – I’m forever running extended commands which I would normally stick on a screen session to avoid them getting killed via a disconnect…
…and it seems it was available for ver 0.5: http://ffp.inreto.de/ffp/0.5/packages/screen-4.0.3-2.tgz…
Add my repository, it is available there.
Best Regards,
Uli
Hi Uli,
I’ve tried installing sudo a couple times and it seems to install just fine. However, when I restart my DNS320, the config files under /ffp/etc/sudoers seems to be deleted. Any thoughts as to what seems to be occuring and how to fix this?
First, great guide! SEcond, once I have installed some packets (like transmission), where I found it? in the admin panel I can’t see it. Thanks!
Hello, I’m new to this site as well as I’m beginner in using Squeezebox Touch (SBT) and DNS-320 NAS. I have installed SBT and I can listen internet radios. I have also installed squeezebox server on my PC so that I can access music on herd drive.
As a next step I would like to access music stored on my DNS-320 NAS without using PC.
I have tried various setpus of fun plug but I’m still not successfull. Is there any guideline how to install squeezebox server on DNS-320?
I have installed fun plug 0.5.0 as well as I tried 0.7.0 and I believe I have also successfully installed “logitechmediaserver-7.7.1-arm-1.txz” that I have donwloaded from web. But http://192.168.2.101:9000 doesn’t work as well as my SBT doesn’t see the DNS-320 data/music. I’m completely new to linux etc. so I have just tried some recommendations inlcuding: http://forums.slimdevices.com/showthread.php?85958-squeezebox-server-on-dlink-dns-320 and http://voidnoise.co.uk/blog/?p=426 but still no success. I would apreciate any help or advise. Thanks
Hi!
I’ve a DNS-320 with ffp 0.7. I try install optware for several packages (minidlna with samsung patch – chapters, subtitles,etc.. – and saned for share my scanner).
1. install optware. done
2. reboot
3. login successfully
4. install optware packages. done
5. reboot
6. login failed: access denied
7. telnet -> login
8. logged, but i’ve got an error message
/opt/bin/ash not found
any idea??
sorry my english!