You can boot directly into ffp 0.5 and run it without firmware.

WARNING: This is highly experimental. A serial connection may be required to track down problems.

You should install the latest busybox package (>= 1.11.1).

This does not work out-of-the-box with RAID. You will have to know what you're doing to get it working. See the RAID Reloaded section for some pointers.

For now, the supplied 2.6.25 kernel doesn't work with Rev B1, because the vanilia kernel doesn't support rev B1. However, you can use a 2.6.12 kernel from the firmware-reloaded archive in the misc/ section of fonz's software repository.


Download and install ffp-reloaded packages from inreto.de

telnet bob
cd /mnt/HD_a2
rsync -avP --delete inreto.de::dns323/ffp-reloaded .
funpkg -i ffp-reloaded/packages/*.tgz

Before the first boot, you need to create some essential files, directories and links. We assume that ffp is installed (and later booted) from /mnt/HD_a2.

Create required device files:

cd /ffp/boot
sh ./make-devs.sh /mnt/HD_a2/dev

Create and link required directories:

cd /mnt/HD_a2
ln -s ffp/etc ffp/bin ffp/lib ffp/sbin .
ln -s ffp usr
ln -s /proc/mounts ffp/etc/mtab
mkdir -p proc sys

NOTE: if you want to use optware afterwards you need to make sure that you are using the same libraries used with the base fun_plug. If you don't you may get (with xmail, for example) a complaint about a missing symbol in6addr_any. To resolve this, do the following:

cd /lib
rm /mnt/HD_a2/lib # remove symbolic link created above
tar cf - * | (cd /mnt/HD_a2; tar xvf -)

Now setup the user database:

cp /etc/passwd /etc/shadow /etc/group /ffp/etc

Note that /mnt/HD_a2 will become the root directory (/) after booting. So home directories in passwd that point to /mnt/HD_a2/… will not work.

  • Workaround 1: Remove /mnt/HD_a2 from paths: sed -i 's@/mnt/HD_a2@@' /ffp/etc/passwd
  • Workaround 2: Create /mnt/HD_a2 link for use after boot: mkdir /mnt/HD_a2/mnt; ln -s / /mnt/HD_a2/mnt/HD_a2

Alternatively, /ffp/etc/examples contains passwd, shadow and group files that only contain root (with empty password). You can use these examples if you don't want to use the firmware files.

Configure network name resolution (DNS):

cp /etc/hosts /etc/resolv.conf /ffp/etc


To boot into ffp:

cd /ffp/boot
nohup ./boot.sh

Your current telnet session will be aborted, but you should be able to relogin in a few seconds. You can check the new kernel version with:

uname -a

RAID Reloaded

If you don't care about the features in the D-Link firmware, and are confident with using fun-plug 0.5, you can join the “reloaded” fun using:

    mdadm -A /dev/md0 /dev/sda2 /dev/sdb2

Be sure to tweak /ffp/boot/boot.sh to pass -m 526 to reload.sh. This is necessary when booting the 2.6.12 kernel. Here is my boot.sh:

    set -x
    cd /ffp/boot
    ./reload.sh -I root=/dev/sdb4 -m 526

With this setup, I have my Rev B1 DNS-323 reloading into fun-plug 0.5, with RAID1 enabled, and running the NFS kernel server.


  • The included kernel support kernel-level NFS.
  • /mnt/HD_a2 doesn't exist anymore after booting into ffp. You might need to adjust some config files (exports, mediatomb, …)
  • To boot the ffp kernel using the approach described here, you will need a working reloaded module that supports your kernel. The modules included in the ffp-reloaded package should work with D-Link firmwares up to 1.4 (1.5?) on a DNS-323.


Personal Tools