====== ffp-reloaded ======
You can boot directly into [[howto: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 [[http://www.inreto.de/dns323/misc/|firmware-reloaded archive in the misc/]] section of fonz's software repository.
==== Installation ====
Download and install ffp-reloaded packages from [[http://www.inreto.de/dns323/ffp-reloaded/|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
==== Booting ====
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 [[http://www.inreto.de/dns323/fun-plug/0.5/|fun-plug 0.5]], you can join the "reloaded" fun using:
* fonz's [[http://www.inreto.de/dns323/misc/|custom 2.6.12 firmware-reloaded kernel]]
* fun-plug 0.5 installed to ''/mnt/HD_a4'' **or** ''/mnt/HD_b4'' (which correspond to the ``sda4`` and ``sdb4`` partitions)
* ffp-reloaded from [[http://www.inreto.de/dns323/fun-plug/0.5/extra-packages/ffp-reloaded/|extra-packages]]
* mdadm. You'll need to run the following **after** reloading:
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'':
#!/bin/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.
==== Notes ====
* 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 [[http://www.inreto.de/dns323/reloaded|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.
* Mijzelf made it work on the NSA-220 [[http://forum.dsmg600.info/viewtopic.php?pid=32398#p32398]]