Install Debian Etch - by Mike Gore and Manuel Treitinger

Please feel free to update, cleanup or correct this page

What is this? This document shows how to setup Debian on the DNS-323.

Note: this technique installs a Debian environment into the existing system, and does not require you to reflash or hack the NAS.

All downloads/methods below are using Debian for arm. This is more or less deprecated. See forum post on howto install an armel version.

The easy way

The easiest way to get a full Debian environment is to use DebNAS. It provides a full base system with SSH enabled by default and boots automatically. As it uses chroot, it is not going to harm your device and can be uninstalled by simply deleting one file (“fun_plug”) and one folder (“linux”) from your first volume.


To install:

  1. Ensure you have the newest firmware (1.05 or newer).
  2. Extract the downloaded archive
  3. Copy the two extracted files linux.tar and fun_plug to the root directory of your first DNS-323 volume
  4. Reboot the DNS-323
  5. The DNS-323 is going to work for several minutes now and finally reboots
  6. The DNS-323 automatically boots into Debian and runs the SSH - daemon

You can now log in via SSH, the default password for username root is 12345678. (Be aware that (sometimes) the NAS is only accessible via IP address at this moment!)

Change the password immediately with the passwd command. Have fun!

Note: Upgrading Debian to a current distribution is going to increase performance a lot.

To upgrade to Debian Lenny :
Edit /etc/apt/sources.list.d/etch.list, replacing the word etch with lenny. I also changed the mirror url to a North American mirror rather than the German one by removing the de. in the url. You may also rename the filename from etch.list to lenny.list if you feel so inclined.

NOTE: This does not work as written, lenny and etch are both archived, and as such, the repositories have moved. The following worked for me.
deb lenny main non-free contrib
deb lenny-backports main

Now we need to update the repository packages listing and upgrade to lenny. You may have GPG issues which you can resolve by calling :

apt-get install debian-archive-keyring

Or following the guide Here:

Make sure that you have DNS nameservers listed in /etc/resolv.conf, and run :

apt-get update
apt-get dist-upgrade

This will take a while to download and then upgrade. When it is done reboot Debian. I had to reboot using the command ‘reboot -f’. When Debian comes back up, it will be running Lenny. When it comes back up, update to make sure everything is current.

apt-get update
apt-get upgrade

Now we have a reasonably current Linux system to play with.

The custom way

1. prerequisites

You should already have Telnet access to your device.

Or better, install ssh and disable Telnet. See:

2. base system

You have two options to proceed. You can either download a preconfigured image or create your own.

2A. download a minimal image

If you wish to use one of these, simply download it and proceed to step 3 below.

2B. create a minimal image

You will need a Debian Linux x86 system to create the install image. (My system is a Ubuntu Dapper x86 system)

Make sure you have cdebootstrap smbfs installed

apt-get install cdebootstrap smbfs

Note - I called my DNS-323 “disk”

We will now mount the DNS-323 on the host Debian system. Your system has to be formatted with an admin password. I will use disk for the DNS-323 and /mnt for the mount points in this document - you can use whatever you like.

mount -t cifs  //disk/Volume_1 /mnt -o username=admin

Or use the IP address of the DNS-323

mount -t cifs  // /mnt -o username=admin

We will now “bootstrap” an ARM debian system using our x86 debian system note it will error out at the final install phase - this is just fine This process will create an ARM debian environment under a directory called lenny

cdebootstrap -aarm lenny lenny

For the oldstable (etch) you should use the following When you use this line, you should replace all “lenny” texts with “etch”.

cdebootstrap -aarm etch etch

Archive the lenny (or etch) directory we created with the bootstrap

tar pcvf lenny.tar lenny

Copy this tar file to /mnt

cp lenny.tar /mnt

3. finalizing installation

*update by Berry (26th March 08) - If you have firmware 1.04 then make sure to turn off Oplocks now on the web interface before you untar (Advanced / Network access)

# On the host x86 system reboot the DNS-323 using the web interface

# Telnet or ssh to the DNS-323 telnet disk

Note We are now logged into the DNS-323

# CD to the hard disk we just copied everything to

cd /mnt/HD_a2

# At this point, you should untar the {lenny,etch}.tar file that you made above

./lnx_bin/busybox3 tar -xf lenny.tar

Or for firmware 1.04+:

tar -xf lenny.tar

# Replace lenny.tar with etch.tar above if you built an etch install

* Daniel (26 Oct 08) Alternatively with FFP 0.3 you may find that the correct command is: ./fun_plug.d/bin/busybox tar -xf etch.tar

# chroot into the partly bootstrapped sarge debian root

./lnx_bin/busybox3 chroot lenny /bin/bash

Or for firmware 1.04+:

chroot lenny /bin/bash

# At this point you should have a shell in the new debian root

*update by sm8ps (20100815): On Firmware 1.08 with the downloaded a minimal image from step 2A, none of the following was necessary. I could proceed straight to step 4.

# Fix the broken packages caused by the failed cdebootstrap - above Note - 08 dec 2007 by Chris - I think before proceeding you want to be sure that /proc, /dev, and friends all contain something reasonable - for example as set up by the mount commands in the fun_plug listed at the bottom of this page. Some of the installers seem to get confused when they can't find fstab, /dev, etc.

*update by Richard (23rd Dec 07) I think Chris (above) is right, go through the fun_plug and type in the commands by hand. Also, do dpkg*deb first (below), then libc6.

*Daniel (26 Oct 08) with FFP 0.3 it is neccessary to change the fun_plug listed at the bottom of this page to reference folder fun_plug.d/bin whenever lnx_bin occurs, and replace “busybox3” with “busybox”

*update by Paul (18 Apr 08) This all seems much simpler with 1.04. no need to do any of those things afaict.

cd /var/cache/bootstrap
dpkg --force-all -i libc6*deb
dpkg --force-all -i dpkg*deb
dpkg --force-all -i libc6*deb

# repeat next step several times until no more errors
(if you are using the downloaded sarge package the .deb files are located in ”/var/cache/apt/archives” not in ”/var/cache/bootstrap”!)

dpkg -iGREB . 

# check remaining dpkg errors if any

*update by Richard (23rd Dec 07) I had to delete /var/mail to get base_files to install properly

*update by Michael (20th June 08) I had to delete /var/mail in sarge. etch was fine.

4. customizing

# Edit your /etc/resolv.conf so that the system can find the Debian servers: See this sample

# (for ETCH from link above) Edit your (create new) /etc/apt/apt.conf so that the system can download needed updates:

APT::Default-Release "etch";

*Add by Vladimir Kovtun (19th Dec 08), tested well.

# Add to /etc/bash.bashrc if you wish the APT-GET to use a your proxy server:

export http_proxy=
export ftp_proxy=

*Add by Vladimir Kovtun (18th Dec 08), tested well.

*Add by Jesper Møller (21st April 09), if you don't have a suitable proxy, be sure to fix the fix /etc/resolv.conf to point to you DNS servers

# (1) Edit your /etc/apt/sources.list so that includes some servers. For instance:

deb stable main contrib non-free
deb stable/updates main contrib non-free


# (2) Edit your /etc/apt/sources.list so that includes some servers.

deb etch main contrib non-free
deb etch-proposed-updates main contrib non-free
deb etch/updates main contrib non-free

and empty /etc/apt/sources.list/etch.conf (or simple unlink it) *Update by Vladimir Kovtun (19th Dec 08), tested well.

*update by sm8ps (20100815): As of 20100215, the support of Debian Etch has run out. The above mentioned sources do not work anymore therefore. The Debian archive, however, still contains the packages. So for Etch one should use the following sources (and delete /etc/apt/sources.list.d/etch.list):

deb etch main contrib non-free
deb-src etch main contrib non-free

or (mdvx 19-Jan-09) and empty /etc/apt/sources.list.d/etch.list

# Update packages

apt-get update
apt-get install debian-archive-keyring
apt-get update
apt-get dist-upgrade

*Update by Vladimir Kovtun (19th Dec 08), tested well - first “apt-get update” for update keys for next updates. # make root password

passwd root

# Go nuts installing packages

apt-get install gcc
apt-get install make
apt-get install unzip
apt-get install flex bison
apt-get install g++

# etc ….

Create a **fun_plug** script

If you would like Debian to automatically begin after it is installed, you will need to add some commands to your startup (fun_plug) script.

Download the Debian Fun Plug Script here

Copy this fun_plug to /mnt we assume you still have the DNS-323 mounted On the DNS-323

cd /mnt/HD_a2
chmod 755 fun_plug

Create a linuxrc script Download the Debian linuxrc Script here

Copy this linuxrc to /mnt (we assume you still have the DNS-323 mounted* On the DNS-323

cd /mnt/HD_a2/sarge
chmod 755 linuxrc

# Note: be sure to install both the linuxrc script *and* the fun_plug script before rebooting!

# Note 2: Make sure you create your fun_plug and script files as unix file not windows text files. I fell for this :( Added by: James Alford 2009-01-11

Reboot the DNS-323 and test

Manual chroot to a Debian etch when using fonz funplug

To do a manual chroot to a “fresh” extracted Debian etch, use the following command:

env -i TERM=vt102 USER=root $SBINDIR/chroot /mnt/HD_a2/etch /bin/bash -ls

(Try this if you get errors such as “sh: /mnt/HD_a2/fun_plug.d/bin/ls: No such file or directory” or “dpkg - error: PATH is not set”)

If there are still issues like “dpkg - error: PATH is not set” export PATH into your chrooted system. First change to a bash shell of your etch/sarge by typing the previous command. The use export PATH:

env -i TERM=vt102 USER=root $SBINDIR/chroot /mnt/HD_a2/etch /bin/bash -ls
etch /> export PATH

Cross Compile Software for the DNS-323


Personal Tools