This is an old revision of the document!
Install Debian Sarge - by Mike Gore
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.
1. prerequisites
You should already have Telnet access to your device.
Or better, install ssh and disable Telnet. See:
http://www.penoycentral.net/linuxnix/configuring-ssh-and-rsync-in-dlink-dns-323/
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
- Debian Sarge 3.1 - [http://wopr.levring.nu/sarge.tar] (83Mb)
- Debian Etch 4.0 - [http://dev.skcserver.de/dns323/etch.tar] (169 Mb)
- Debian Etch 4.0 (U.S. mirror) - [http://www.bfaber.com/dl/etch.tar]
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 //10.0.0.1/Volume_1 /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 sarge
cdebootstrap -aarm sarge sarge ftp://ftp.debian.org/debian
For the current stable (etch) you should use the following When you use this line, you should replace all “sarge” texts with “etch”.
cdebootstrap -aarm etch etch ftp://ftp.debian.org/debian
*update by Explisit (22rd Feb 08) - Etch source for arm architecture are not available from ftp://ftp.debian.org/debian try different mirror for instance ftp://ftp.bg.debian.org/debian
Archive the sarge directory we created with the bootstrap
tar cf sarge.tar sarge
Copy this tar file to /mnt/HD_a2 (Update 20 jan 2008, Stefan: The /HD_a2 is not needed because we mounted /Volume_1 in /mnt)
cp sarge.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 {sarge,etch}.tar file that you made above
./lnx_bin/busybox3 tar -xf sarge.tar
Or for firmware 1.04:
tar -xf sarge.tar
# Replace sarge.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
and replace “busybox3” with “busybox”
# chroot into the partly bootstrapped sarge debian root
./lnx_bin/busybox3 chroot sarge /bin/bash
Or for firmware 1.04:
chroot sarge /bin/bash
# At this point you should have a shell in the new debian root
# 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.
*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.
customizing
# Edit your /etc/resolv.conf so that the system can find the Debian servers: See this sample
# Edit your /etc/apt/sources.list so that includes some servers. For instance:
deb http://ftp1.ca.debian.org/debian stable main contrib non-free deb http://security.debian.org stable/updates main contrib non-free
# Update packages
apt-get install debian-archive-keyring apt-get update apt-get dist-upgrade
# 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!
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