Tuesday, September 27, 2005

A few observations on Debian Linux

About a year ago I bought a campus surplus Dell Optiplex GX1 (PIII) to see how well Debian GNU/Linux would work out as a home PC, and whether I could successfully maintain it as a dual-boot box (NAU staffers can get Windows XP for $10). Sometimes it's good to see how another product performs, even if it's not your preferred platform (like, say, a certain blog platform).

Knowing that Windows won't install itself into a secondary partition, I let the Windows installer partition the HD using recommendations a Red Hat user had posted somewhere. Roughly speaking, Windows got 40% NTFS with a swapfile partition of 5% and a 5% FAT32 partition and left the rest alone. The Debian Sarge (then the testing release) installer split the remaining 50% into 45% ext2 and 5% swapfile.

The 5% FAT32 partition was created specifically as Switzerland: a neutral space mounted by both OSes for the purpose of sharing files between them. For example, the login user icon that Windows uses for Administrator and Debian uses for root is the same image file, on this partition. Firefox on both OSes point their bookmarks at this partition; add a bookmark in one and it's visible to the other. Remember, Debian's NTFS support at this point is largely read-only, and putting Windows XP in a FAT32 partition is kinda dumb.

For the most part, everything just works. Because the Epson inkjet in our household is connected to the Mac, the Mac's printer sharing is done through CUPS. To a Windows PC, this means it has to be mounted as a color PostScript printer. Linux finds it on its own and automagically configures it correctly (because it also uses CUPS). Moreover, it also figured out that the Mac had an internal fax modem.

Not everything worked out of the box, however. SMB doesn't work until several components are installed: LISA, SMB, etc. This is disappointing because most Debian-based LiveCDs do a much more aggressive job of detecting hardware and network resources at startup (e.g. Knoppix and Ubuntu).

Yesterday, I went to the local computer shop and picked out a CD-RW/DVD-ROM drive. One thing about the GX1 towers, they come with a lot of empty space and 2 extra bays (which doesn't count the space the two internal HDs use). Everything was in order, the primary CD-ROM's ribbon cable had another connector crimped into it and there were enough power connectors inside to go around. Pull out the sled, screw the drive to it, slide it back in and connect the connectors. Reboot.

Here's where Debian disappointed particularly. As soon as XP rebooted it discovered the drive and configured it. VLC was playing my homebrewed DVDs peachy-keen (however, until I install PowerDVD, I can kiss CSS-encrypted discs goodbye). I rebooted into Sarge, and -- nothing.

The startup log indicated that it knew there was a /dev/hdd, at the console entering more /dev/hdd resulted in a binary dump of the DVD's contents, but Debian didn't do the simplest thing: it didn't configure the device as a mounted drive. To make sure it wasn't a kernel issue, I booted the PC from a recent liveCD, and it detected and mounted the drive fine. Totem played the disc, no questions asked.

Lots of idiot googling suggested it was my responsibility to manually edit /etc/fstab to add the entry. It only worked when I pointed it at /cdrom0 and rebooted. Currently, nothing is writing to the drive, but I'm trying first with FOSS on both platforms (burnatonce on XP).

When Sarge became stable and I changed the repository info to reflect this, nothing bad happened. However, when I modified the kernel to the latest version available for stable, the GRUB settings conveniently deleted the first entry which boots Windows. I manually edited it back in; everything fine. When I realized the new kernel was still a 386 kernel and my PIII was a 686, I got the 686 kernel -- and the same thing happened.

After the 686 kernel was installed, the Debian graphical login stopped working. The keyboard was useless except for a few numeric digits and the Caps lock key wasn't toggling the LED indicator. More googling indicated a separate config had been corrupted, and a keyboard option four characters long had to be edited back into the config.

The Vortex au8820 audio chip was never detected by Debian at install, and all attempts to modprobe/insmod were in vain. After the 2.6 kernel upgrade I installed alsaconf, ran it and it correctly found the hardware. FWIW Knoppix is equally dense about this audio chip and requires the same fix; Ubuntu liveCDs find it automatically.

I like the challenge of hacking a system to get it to do something. I don't like keeping an internal diary of the things I'd have to do to someone else's PC to make a usable Debian partition, esp. when most liveCDs already do these things, and gracefully.

It's a nice distro. I prefer KDE to Gnome and so does Knoppix. Gnoppix is cute, but it isn't really the Knoppix distro with a different desktop environment. However, Debian's biggest competition right now is Ubuntu, and a chunk of Ubuntu's advantage is the degree to which it will hold your hand on the basics. More than anything, this is what defines a desktop OS.

I've been fortunate; I've never had to recompile my kernel to do something, and I have Sarge running on two PCs in different environments. Nevertheless, Sarge is lazy about detecting and configuring peripherals and network resources, beyond finding and making DHCP connections. The installer never tested the audio, and it took four hours on a DSL connections to grab the basic distro. Debian's on to something with the notion that CD-based installs are dead; however, if Klaus Knopper can fit a 9Gb Debian Sarge distro onto a DVD, maybe the writing's on the wall.

Will I switch to (K)Ubuntu? Probably not. Ubuntu's shtick is making Sid into a usable product, but the price is steep: Debian releases are named after Toy Story characters, and Sid is the name permanently reserved for the unstable release (Sid=Still In Development). Basing a distro on the least fixed, most experimental release just to have the most cutting edge features is a great idea, but it's difficult to dispel internal FUD about incompatibilities. There are stories of people who switched back to Sarge when something went wrong; Ubuntu is in all likelihood going to be the Fisher-Price My First Linux for desktop n00bs who aren't interested in building servers, unless Debian can suck up the pride and integrate Ubuntu's better user experience.

Someone said it best on OSNews: Ubuntu doesn't fork Debian, it forks Debian's release schedule. Cairo is ready for Sarge, but Sarge isn't ready for Cairo while most other current distros (Ubuntu included) already have it. For the uninitiated, OS X's graphics engine is a combination of Display PostScript and GPU processing; Cairo is Linux's closest equivalent being bound to the various graphic APIs available for Linux. The implications are applications which (like Flash) think in vector-based objects rather than processing bitmaps, exploiting the power of GPUs. If Debian users have to wait a year or more for a new library to be integrated into the next stable release, it could cause defections. Then again, Debian is a distro aimed at the most diverse number of platforms out there; Ubuntu is available in chocolate and vanilla, where the hardware doesn't differ that much.

I don't want to see Debian turn into Ubuntu, but I would like Debian to be more aware of my resources, esp. if they change after installation. If a major new library is available, and it can be tested across platforms, add it to the repository. Unless Debian can pass itself off as a desktop OS, they're leaving a vacuum for someone else to fill, and Ubuntu seems pretty comfortable in that place.

[edit: the day after I wrote this blog entry I discovered that Debian Sarge in fact has a 2-DVD-based installer, available by http/ftp or torrent.]
[correction: when I built my dual-boot box, I stupidly made the Debian root partition not only a paltry 6Gb and the share partition 15Gb, but I let the installer put the root partition at the physical end of the disk. This means that QTparted and GNU parted can't grow it backwards even if I shrink the previous partition.]