Interview with Klaus Knopper of Knoppix

It’s easy to grow increasingly cynical the more you follow “innovation” in operating systems and software. New releases often turn out to be nothing more than reinventing, or repackaging, the wheel, with new icons and steeper system requirements. Yet every now and then persistence pays off and that lengthy download or poorly written web site delivers something truly amazing and faith in the future of computing is, albeit temporarily, restored. I experienced such a sensation a couple of months ago when I downloaded the CD-ROM based, Linux distribution known as Knoppix.

Without touching the hard drive, Knoppix can boot practically any PC into Linux complete with multiple GUI environments, a ton of applications, and utilities while grabbing an IP address from a DHCP server. With some modern machines booting Knoppix can sometimes be faster than booting from the installed OS.


Yet it’s the little things that Knoppix does that make it stand out. It initializes PCMCIA network cards before other network functions are initialized, unlike less polished distributions such as Red Hat 8. Colored text highlights exactly what hardware is being initialized during boot up in a high resolution text screen. The software bundled with Knoppix includes many defaults overlooked by many “desktop” distributions including a graphical samba browser, a large selection of games and a wide array of other Linux goodies.


Simply put Knoppix is everything that’s great about Linux. It works with an impressive array of hardware. It challenges conventional notions of what’s possible with software. And, best of all, it’s free.


The fact that this is the largely the work of one man is an encouraging sign that Linux’s often chaotic open-source approach may yet make an impact on the PC desktop. I had a virtual chat with the man behind this phenomenon, Klaus Knopper to see what Knoppix is all about.


First, why don’t you tell us a bit about yourself?


I’m Klaus Knopper, born in and living in Germany since 1968. I have a diploma in electrical engineering, and I have been a self-employed IT-consultant since 1998. See my web site at http://www.knopper.net/knopper/ for more information.


How would you define Knoppix?


Knoppix is a bootable CD with a collection of GNU/Linux software, automatic hardware detection, and support for many graphics cards, sound cards, SCSI and USB devices and other peripherals. Knoppix can be used as a Linux demo, educational CD, rescue system, or adapted and used as a platform for commercial software product demos. It is not necessary to install anything on a hard disk. Due to on-the-fly decompression, the CD can have up to 2 GB of executable software installed on it.


How did it get started?


Knoppix was started about 3 years ago as an experiment for personal use (learning how el torito boot works, and how to get access to a whole CD from a minimal ramdisk system). My friends from the LinuxTag association (http:) convinced me to make it an open project, and provided mailing lists and a forum for this purpose.


Currently, there are about 3000 downloads per day, and there are quite a few project forks in different languages maintained by independent groups.


What are some of the Knoppix project forks?


An arbitrary-OS-Installer, File&Webserver on CD, a Japanese and a Spanish version, and a mini-CD are some that I could identify as based on Knoppix.


If you do a search for “Knoppix” on google, you will most likely find more of them. Some projects don’t notify me that they are doing something based on Knoppix, which is OK, but this way I have no definite list. I know that a LTSP fork is using a Knoppix version, and some user groups have developed their own versions.

How many people currently work on Knoppix?


I work on it alone with occasional help from people on the mailing lists, mostly in the form of translations or patches for shell scripts.


How does Knoppix work?


Knoppix tries to automate the steps that are normally done manually during an installation or configuration. It tries to automatically detect hardware, loads the necessary kernel modules, generates device symlinks and configuration files and then starts a graphical desktop, all without interaction and without writing anything to harddisk, working entirely in RAM.


Ideally, you should get a working KDE desktop without any interaction within 3 minutes or so, counting from the boot screen.


What was the biggest obstacle in making Knoppix?


The absence of open standards in modern hardware, and upcoming of proprietary/incompatible peripherals and failure of some hardware vendors to send specifications or source code to the kernel and XFree developers.


It could really be easy to support a very wide range of hardware if there were standards, for example definite graphics cards hardware/software APIs. Also, some modems are not really modems, you’ve probably heard of that before.


Some hardware cannot be autodetected or worse, reports wrong information, so in some cases the “best guess” of configuration has to be used. I get a lot of mail reporting problematic cases, and in those cases where a solution is provided, I incorporate the workarounds into the hardware detection for the next release.


So far, Knoppix boots fine on about 95% of all tested desktop PCs, and roughly 75% of notebooks (some of them have exotic graphics or sound/pcmcia chipsets, sometimes you have to use boot options to get them working).


After trying Knoppix on a dozen or so machines, I’ve noticed that the sound card configuration isn’t nearly as bulletproof as the video or networking, is this a problematic area, or was I just unlucky?


Some boards contain “cheap” chipsets that come in so many different versions and without vendor-side specifications, that the kernel developers simply have no chance of implementing a working kernel module for them. Same problem for the so-called “winmodems”.


I’m not using ALSA yet, because, as far as my tests go, the standard Linux drivers are way more stable. I would rather have no sound than a complete system freeze because of a badly supported chipset.


What custom packages did you build to make Knoppix?


The Knoppix hardware detection scripts and tables, configuration scripts, utilities (for example the knoppix-terminalserver that allows booting remotely from a PC already running Knoppix) were all written by me.


Since Knoppix is based on the Debian distribution, are there any plans of integrating Knoppix into Debian itself?


Some Knoppix-specific packages (like cloop) are already downloadable from the Debian mirrors. Whether or not parts of the hardware detection will be integrated into Debian depends on the plans of the Debian team.


What is the ultimate goal of Knoppix?


Keeping up-to-date with hard/software development and provide a stable working platform on CD.


It is not my goal to create another Distribution in concurrence to others, though you can already install KNOPPIX on hard disk using a script (which turns it back into a normal Debian installation).

What compression technology does Knoppix use?


Basically gzip. The cloop-device (compressing loopback, a filesystem-independent block decompression kernel module) uses zlib. Some experiments with bzip2 lead to slightly smaller size, but cause unacceptable slow decompression. For gzip, the overall reading speed from CD is even faster than using an uncompressed stream, most likely because of less head movements.


How are you able to have Knoppix recognize all the drives without a preconfigured FSTAB?


In the current version, I use fdisk -l to parse the disks listed in /proc/partitions, which unfortunately doesn’t work if the drive isn’t partitioned correctly.


I’m working on a more reliable version that tries to find out the actual filesystem type used by file -s followed by a read-only test-mounting of each recognized partition. Also, Partitions will be automatically rescanned in one of the next releases when you plug in a USB memory stick or similar changeable storage media.


It seems you release an update every couple of weeks, yet the version number doesn’t change, why is that?


I found no reason to change the version number when just “minor” changes like software updates or occasional new smaller features are made. More important (especially for the changelog) is the build date, which represents the “snapshot date” for the Debian packages included.


I’m usually releasing a new major version at LinuxTag every year. Minor version number updates are also possible, but only if something changes significantly (maybe for inclusion of KDE 3.1).


Given the phenomenal success rate in detecting hardware have any of the distributions approached you about helping them with hardware detection?


No.


How does the Knoppix boot process differ from a conventional hard drive based Linux install?


A Ramdisk is used as root file system. The first part consists in actually identifying the CD-Rom (loading SCSI drivers) where the CD is located, and mounting the compressed loopback file KNOPPIX/KNOPPIX. Then a script is run for identifying all supported hardware components, generating links in /dev and config files. After that, the boot process does not differ much from a harddisk-installed version.


Can you explain the Terminal Server/PXE aspect of Knoppix, and what your goal is with this project?


The goal is to use one computer as server for a whole classroom of client PCs that can boot remotely from that server without the hassle of configuring a lot of services manually (DHCP, TFTP, NFS, BIND, SQUID, IP-Masquerading are configured semi-automatically).


You could use this for teaching GNU/Linux applications, demonstrations or simply an ad-hoc internet cafe installation.


Do you have any plans to extend Knoppix to use DVD or Mt Rainer?


Not yet. Most users have only a CD burner (at maximum), and I can’t maintain different versions of the CD in parallel.


Based on your experience developing Knoppix, what parts of Linux need improvement?


The support of proprietary and non-documented hardware (winmodems, onboard soundchips, exotic graphics cards…) is naturally bad, but there is not much that the kernel developers can do about this, other than sending complaints to the vendors who don’t give away sufficient technical specifications. The Linux kernel offers a wide range of workarounds for strange hardware though, which is very practical for Knoppix, especially concerning the “cheatcodes” for making it work on otherwise problematic computers.


From the GNU side of GNU/Linux, it would be nice if developers could agree more on which library versions are stable or at least tested enough to be the base for their software packages. Sometimes I have to include 3-4 versions of the same library in order to avoid conflicts. Of course this also results from the fact that large parts of the software included on Knoppix are relatively new and need library versions that are undergoing heavy development.

Given that KDE 3.1 is supposedly only a couple of weeks away, at the most, how soon can we look for it to be included in Knoppix?


Stability is a priority. So, as soon as I have first-hand reports of KDE3.1 as a stable working platform, it will be included in the public Beta. I don’t know when exactly this will happen, but I’m really looking forward to some of the new KDE3.1 features, such as the inclusion of the Ägypten project () for making kmail and other KDE components capable of more comfortable SSL+Gnupg encryption and digital signing features, enhancements to konqueror and maybe availability of some even more user-friendly programs for CD-burning and multimedia applications.


Maybe I will release an intermediate version with KDE 3.1 for internal tests to a few developers on the debian-knoppix mailinglist before the download version is being published.


I also hope that GNOME2 will catch up in the Debian distribution. So far, I need to include some gnome2 libs for newer applications, but still have to use gnome 1.4 as desktop option, because the gnome2 versions were not working right at the time (well, maybe it’s just me, I just never got gnome2 to work anywhere… Any help, especially working configuration files for /home/knoppix are appreciated.).


When asked about installing KNOPPIX on the hard drive, you originally suggested people could just copy the CD, but no guarantees, now there is a hard drive install script, how much of an install will there finally be?


/usr/local/bin/knx-hdinstall (written by Christian Perle). It generates a “normal” Debian installation from a running Knoppix CD on your hard disk. It is in a very early state, and just included for convenience. I was not planning on releasing another hard disk-installed Linux Distribution, as mentioned before. So, there is no “Click here to install” button, because it would look like a recommendation. The script seems to work fine, though it does currently not allow multiple boot partitions in the master boot record.


By default all the user accounts are locked down…


That’s right, for security considerations. If you use Knoppix on a network, there should be no backdoors or accounts with “default passwords” that could accidentally get you into trouble when starting sshd or any other services. Therefore, there is no valid password for any account by default. You are either already logged in on startup, or you can’t login at all.


…is there someway to unlock the root account and turn KNOPPIX into a normal user environment?


Just type “passwd root” on the text consoles, where root is logged in. Besides, the logged in desktop user “knoppix” is one exception that can switch to the root account without a password using sudo, so you can use the rescuing tools and configure system services without having to work as root in your X-Window session. You can also use this feature to set up a password for Knoppix or root, if you really wish to be able to login via SSH from the network.


If you install Knoppix to harddisk using Christian Perle’s knx-hdinstall script, this scheme is (like most other Knoppix extensions) changed back to the Debian defaults, and you have to choose a password for knoppix and root during installation.


If you use Knoppix in Terminalserver mode on the other hand, there is an option that should make it impossible to get root on the clients, which are booting via PXE, simply by disabling all setuid programs and letting the text consoles only run under the knoppix user’s account. This should be a good setting for Internet cafes or classrooms.


With companies like SUSE, projects like Kroupware and a number of high profile developers, such as yourself, the German Linux scene seems pretty active. What is the state of Linux in Germany?


There are a lot of migrations towards GNU/Linux in companies, schools and also governmental institutes, last but not least because of the added value that the Free and OpenSource software licenses give to the recipients of the software. You can hire a vendor of your choice for software adaptation and customization, you can copy, modify and sell the software in unlimited numbers, plus you are the legal “owner” of the software, as opposed to having only a limited right-of-use for proprietary software. These facts have lead to GNU/Linux being widely accepted, also in mission-critical environments with appropriate support by trusted vendors. Also, for document exchange, it is vital to use open standards, to make sure you will still be able to read an archived document 10 years from now.


So, apart from many active developers who just happen to live in Germany and other European countries, there is also a lot of commercial interest in the development of GNU/Linux based software here, which may be an additional motivation for some programmers to contribute or sell services based on Free Software.


About the Interviewer:
Alexander Antoniades lives in New York City and works as freelance technology consultant, using every last piece of computer knowledge he’s acquired over the past two decades to make ends meet.

30 Comments

  1. 2002-12-05 10:10 pm
  2. 2002-12-05 10:12 pm
  3. 2002-12-05 10:26 pm
  4. 2002-12-05 10:37 pm
  5. 2002-12-05 11:07 pm
  6. 2002-12-05 11:08 pm
  7. 2002-12-06 12:05 am
  8. 2002-12-06 12:06 am
  9. 2002-12-06 1:16 am
  10. 2002-12-06 1:17 am
  11. 2002-12-06 2:16 am
  12. 2002-12-06 2:22 am
  13. 2002-12-06 2:52 am
  14. 2002-12-06 2:57 am
  15. 2002-12-06 3:15 am
  16. 2002-12-06 3:15 am
  17. 2002-12-06 3:16 am
  18. 2002-12-06 4:24 am
  19. 2002-12-06 5:48 am
  20. 2002-12-06 7:52 am
  21. 2002-12-06 1:00 pm
  22. 2002-12-06 9:27 pm
  23. 2002-12-06 10:40 pm
  24. 2002-12-07 12:45 am
  25. 2002-12-07 6:50 am
  26. 2002-12-07 8:22 am
  27. 2002-12-07 5:31 pm
  28. 2002-12-07 9:37 pm
  29. 2002-12-08 3:14 am
  30. 2002-12-08 2:36 pm