DAMNSmallLinux Review

It seems that I am in some sort of retro-mode. As Linux on the desktop is getting bigger and better, with more apps, more sleek looks (Galaxy, Keramik and Blue Curve for example) and more idiot proof, I am going onto simpler, more condensed stuff. The big distributions are nice, but I really do not need all the applications that come with them all the time.

I am very promiscuous when it comes to flavours of Linux. My first installation was RedHat 6. I used Mandrake for a long time, briefly ran SuSE, Gentoo and Slackware and eventually settled on Peanut. I have never worked with Debian or Knoppix, DSL’s ancestors. Experiences with Peanut taught me that using a thin, less GUI-driven distro, is a good way to learn. This to me is comparable with switching to vi after having used Kate extensively.

I jumped on the DAMNSmallLinux (DSL) bandwagon around version 0.4.7, after reading an interview with the distro’s author, John Andrews on Distrowatch. The aim with this tiny distro is to keep it under 50 MB in order for the ISO image to fit on one of those credit card-size mini-disks. A pocket rocket. You can carry the whole thing in your wallet, and work in your familiar surroundings on any PC. John started with a stripped-down rework of Knoppix, and developed the rest around that.

What you get is:
FluxBox window manager, Xbase utilities,
emelFM and MC file managers,
Dillo patched and Links Hacker browsers,
a script to download and install Mozilla FireBird 0.7, selectable from the menu,
Naim instant messaging and IRC, Sylpheed email client,
Ted-gtk word processor, ABS spreadsheet, Xpdf PDF viewer
Xzgv picture viewer, Xpaint image editor,
SciTe, nVi, Zile (Emacs clone), nano (pico clone) text editors,
Perl 5.8.0, Tiny C Compiler,
VNCviewer, Rdesktop, ssh, sshd,
Monkey web server, SQLite database server,
XMMS with mp321 and ogg123 (CD and mpeg video),
TuxNES, Oneko and Xpacman,
and much more including all the usual command-line tools you would expect. Details of apps and packages can be found on the site: www.damnsmalllinux.org

Hardware configuration

My no. 1 system is: Epox motherboard, 1GHz AMD Athlon Thunderbird, 256MB RAM, 32MB Riva TNT2, LG Studioworks 17 inch, nondescript external modem. I have a 10GB Seagate in the box as hdb, affectionately called dataslave, where my documents, files, downloads and so on live. The primary hard disk is in a removable bracket. In this way I can run several operating systems in turn and access all my files no matter which primary disk I booted. At the moment I have that other operating system and Peanut Linux on a large disk each, and DSL on an ancient 1GB hard disk. I don’t think I have ever had more than one OS on the same disk at once.

My no.2 system is an Intel P120, 48MB RAM, 2MB S3 Virge, 4.3GB Seagate, nondescript rest. I use this box for testing purposes and fooling around. DSL does better on this box than any other OS has recently and, in fact, has revived it into a very usable basic system again.

Live CD

The first kick I got out of DSL was the fact that I (a dial-up user) can, for the first time, download the ISO and burn my own CD.

I booted the live CD. After auto-configuring the devices, networking and so on, the user is asked to choose between Xfbdev and Xvesa, resolution, USB or PS2 mouse before starting X. This script can be invoked again later by typing xsetup.sh. I laid eyes on Fluxbox for the first time. Now, after having used it for a few months, I think it is the most comfortable desktop I have used.

I think it is partly contributable to my oldish, mainstream hardware, but I was fortunate enough not to be confronted with any hardware compatability issues. Everything just works! Kudo’s to John. I have picked up from reading the forum that some users, especially with older laptops, have display problems from the word go. There is a new howto section in the forum with details for fixing such problems. There are boot prompt options available, such as typing fb800x600.

DSL is booted with a pre-configured default user, damnsmall. If you need to run a command as root, you simply type sudo [command]. If you want to stay root for as long as the shell session is open, type sudo su. The root password is unknown to the user, but if you need to login as root, type sudo passwd, supply a new one for root, and then you can use the command su root.

Selecting “Enhance” from the menu will display desktop icons, a desktop pager and the Slit. This is something I have never seen before. The Slit displays a network load monitor, a CPU load monitor, a memory and swap usage monitor and, the best innovation I have seen in a long time, a mount app. With this tool, when working in the X environment, you can select your device and mount it with a few clicks, instead of at the command line.

For users of the live CD, there is built in a function to save your configuration files to floppy or USB flash drive. This can be selected from the menu. To restore your configuration files at subsequent boots, type knoppix-restore at the boot prompt.

Hard-disk install

I do not have much more to say about running the system from the live-cd, as I run DSL installed on hard disk. I have been told that installing defeats the object, after all, the distro is meant to go where you go, carried in your wallet. Nevertheless, I found it to be so excellent that I am running it on both my machines. All the time. But, as John is quick to point out, DSL is not a one man show. Robert Shingledecker is responsible for most of the recent improvements in the hard disk installation process. There is a page on the DSL site where you can find out about other contributers and their work.

To run Damnsmall from hard disk, the initial boot up process is the same. Once you are logged in as damnsmall and in fluxbox, you are ready to run the install script. I use cfdisk to create disk partitions. My my 1GB disk looks like this:
hda1 Primary 1083 MB
hda2 Extended / 827 MB
hda5 Extended swap 256MB

To invoke the install, type: sudo dsl-hdinstall

The install script asks whether you have a partition of at least 200MB created, and to specify where it is. Then the install process starts. It does’nt take very long, then you are presented with the option to configure LILO. I understand that there have been problems with dual-boot users’ master boot records being overwritten here. Watch out. Once again, see the forum for details. Next is reboot. It is the little things that count. During this reboot, the CD tray opens and you are prompted to remove the disk and hit enter.

After new boot from hard disk, you are requested to enter a new password for root and damnsmall. Then you are automatically logged in as damnsmall. To create a user for yourself, type sudo adduser [username].

My swap partition was automatically configured and activated upon the next boot. If however, yours was not, you need to make a swap partition and activate it like so (replace hda5 with your partition name):
mkswap /dev/hda5
swapon /dev/hda5
The Slit should now show your swap partition usage. Very nice.

If you sudo vi /etc/lilo.conf, you will see that there is an entry in the first line which looks like this:
This number represents the framebuffermode during boot. Default works for me on both my machines, but you may need to change the number. Look in the howto forum for details. The foolproof option is VGA=normal. The cool thing is that if your system fails to boot from hard disk because of a bad value here, you may be able to boot from CD, mount your root partition and edit this file. The command lilo needs to be run after editing this file before you reboot.

The auto configuration of hardware process happens at each boot. This is not a problem for me because it really happens fast.

Fluxbox is really nice and intuitive, and comes with a couple of themes. My optical scroll mouse works fine. The message of the day will display everytime you boot. You will also have to select enhance from the menu each time. To fix this, edit the file .xinitrc in your home directory. Uncomment “enhance”, and comment out the “motd” line.

I was able to mount my dataslave (hdb1) with the mount app. No problems. But in order for a normal user to access the FAT32 disk correctly, I had to edit /etc/fstab and add:
/dev/hdb1 /mnt/hdb1 vfat users,iocharset=iso8859-15,codepage=850,auto,umask=0,defaults 0 0

I always copy the config file I am about to change, like fstab, lilo.conf or .xinitrc to [filename].old before editing the file. Who knows what may go wrong.

I am now able to listen to MP3’s on hdb1 using XMMS. Typing knoppix toram at boot will enable live CD users to listen to an audio CD while running DSL in RAM. You need more than 50MB RAM, of course.

My work requires me to use MS Office documents, so OpenOffice.org is the ideal solution for me. I installed it from the normal binary .tar.gz from their site. Unpack the files in /tmp. Then as root, run ./setup -net in /tmp/OOo_1.1.0_LinuxIntel_install/
The normal install storyboard is run. When asked where to install, I specify /usr/local/OpenOffice/
Then you can do a workstation install as normal user by tuping ./setup in /usr/local/OpenOffice.

I now want to create a desktop shortcut for OpenOffice. You must have a link file and an icon file in /home/walter/.xtdesktop. For the link file I copied one of the others, and I had an icon from a previous distro. I name them ooffice.lnk and ooffice.gif. Edit the .lnk file and insert the correct caption, icon filename and executable. Now for the tricky bit: you have to specify the position on the desktop. I placed it relative to the one above and the one next to where I want it. It takes a bit of trial and error. Here is what my ooffice.lnk file looks like:
table Icon
Type: Program
Caption: OpenOffice
Command: soffice
Icon: /home/walter/.xtdesktop/ooffice.gif
X: 218
Y: 359

I fooled around with xterm a bit in order to see what different configurations look like. To change xterm background colour, I edited xterm.lnk by adding -bg lightgrey. X must be restarted in order to see results. If you select to exit Fluxbox from the menu, and find yourself in command line mode, type startx. I also wanted a different prompt. I changed the .bashrc file in my home dir. Where the entry PS1=’\u@\h:\w\$ ‘was, I changed it to PS1=’\w\$: ‘. Once again, I first copied .bashrc to .bashrc.old, in case I ever want to revert to the old version.

I have always been used to kppp. Spoiled ? The dialup in DSL is very cool, it uses wvdial. A little bit of configuration in two steps is required.

Select modemconfig from the menu. Here you specify on which port the modem is connected, ttyS0 = com1 and so on.

Next, choose pppconfig from the menu. Two files need to be edited with vi here, but the process is explained well as you go along. The first file for editing is wvdial.conf, which has a symbolic link in the /etc directory. This is fairly simple. Change phone number, user name and password. Two tricks in this file: insert a line with set Modem = /dev/ttyS0, else you may have to run the modemconfig script after every boot. Also insert a line with Init = ATM0 to set the modem speaker to silent.

The next file I found a little harder. In the file pap-secrets, you have to insert your ISP user name and password under the OUTBOUND section. This worked with a bit of trial and error.

There you go. Now just select wvdial from the menu. A terminal opens up and you can see the dialup and authentication as it happens. To log off, type Control-c in the terminal.

On the forum there is a thread about the security of DSL. I am no security expert, so I will just report that the daemons are off by default, the menu options are there to start/stop them easily as required.


Damn Small Linux is my everyday, do everything distro. It has revived my old PC, and runs very well on my no. 1 box. I think it will go a long way. DSL has a vibrant forum on the site, and a I obtained some of this review’s content from there, and often refer to it. Check it out for new tips and tricks. Thanks to John and his contributors for the distro, and thanks to all the users that very patiently post solutions and explanations on the forum.


  1. 2004-01-08 7:04 am
  2. 2004-01-08 7:52 am
  3. 2004-01-08 8:55 am
  4. 2004-01-08 9:07 am
  5. 2004-01-08 9:20 am
  6. 2004-01-08 10:00 am
  7. 2004-01-08 11:52 am
  8. 2004-01-08 12:58 pm
  9. 2004-01-08 2:27 pm
  10. 2004-01-08 2:34 pm
  11. 2004-01-08 3:14 pm
  12. 2004-01-08 3:57 pm
  13. 2004-01-08 4:23 pm
  14. 2004-01-08 4:38 pm
  15. 2004-01-08 5:39 pm
  16. 2004-01-08 5:44 pm
  17. 2004-01-08 5:53 pm
  18. 2004-01-08 6:06 pm
  19. 2004-01-08 6:26 pm
  20. 2004-01-08 7:02 pm
  21. 2004-01-08 7:08 pm
  22. 2004-01-08 7:10 pm
  23. 2004-01-08 7:10 pm
  24. 2004-01-08 7:22 pm
  25. 2004-01-08 7:38 pm
  26. 2004-01-08 7:44 pm
  27. 2004-01-08 8:20 pm
  28. 2004-01-08 9:25 pm
  29. 2004-01-08 9:27 pm
  30. 2004-01-08 9:48 pm
  31. 2004-01-08 10:08 pm
  32. 2004-01-08 10:23 pm
  33. 2004-01-08 10:25 pm
  34. 2004-01-08 10:28 pm
  35. 2004-01-08 11:17 pm
  36. 2004-01-08 11:59 pm
  37. 2004-01-09 2:13 am
  38. 2004-01-09 9:56 am
  39. 2004-01-09 2:12 pm
  40. 2004-01-12 6:30 am
  41. 2004-01-13 8:52 pm