GeoCities.us GeoCities.us » SiliconValley » Horizon Get your FREE home page!

amit@horizon:~$ figlet LINUX
 _     ___ _   _ _   ___  __
| |   |_ _| \ | | | | \ \/ /
| |    | ||  \| | | | |\  /
| |___ | || |\  | |_| |/  \
|_____|___|_| \_|\___/_/\_\
Linux on the Desktop: A Diary
Amit Buckingham • one home PC, one stubborn person, and a year of trying to leave Windows for good. (Mostly.)

[ why ] [ the box ] [ picking a distribution ] [ the install ] [ the modem ] [ X ] [ KDE, GNOME, window managers ] [ getting work done ] [ dual boot ] [ what still doesn't work ] [ diary ]
$ why

I'm a sysadmin by day, mostly Solaris and some NT, and I've had Linux on a server in a closet at work since 1996. But at home, on the PC in the spare bedroom, I was running Windows 98 like everybody else, and every few weeks it would eat itself and I would spend a Saturday reinstalling. In January I got fed up and decided to find out whether Linux was ready to be my only desktop at home. Not a server. A desktop. The thing I read mail on, write letters on, dial the ISP with, and (this is the hard part) play the occasional game on.

This page is the diary. I'm keeping it honest: what worked, what didn't, what I had to do at two in the morning to make it work. If you're thinking of trying it, I hope this saves you a weekend. Short answer as of September 1999: it's ready if you're patient, pick your hardware carefully, and don't need the newest game. Long answer below.

$ cat /proc/the_box
CPUPentium II 350
RAM64 MB, then 128 MB in June (RAM got cheap, and it made a bigger difference than anything else on this page)
DiskOne 8.4 GB IDE drive: about 5 GB FAT32 for Windows 98, 3 GB for Linux, 128 MB swap
VideoMatrox Millennium II, 4 MB. Chosen on purpose — see the X section.
SoundSound Blaster 16 (ISA, the old reliable)
ModemWas: an internal 56K "winmodem" that came with the machine. Now: an external US Robotics Sportster 56K on COM2. See the modem section, or rather, feel my pain.
Monitor17-inch, runs 1024x768 at 75 Hz once I convinced X of that
Kernel2.2.5 from the Red Hat 6.0 CD, then 2.2.10 built by hand in July, now 2.2.12
$ ls distributions/

There's no "Linux" in a box; there's a kernel plus a few hundred programs, and a distribution is somebody's opinion about how to bundle them. The ones I actually tried this year:

Slackware. What I ran on the closet server since '96. Simple, no magic, tarballs and shell scripts, and you learn how the system is put together because there is nothing between you and it. That's also the problem for a desktop: no dependency checking, no package database to speak of, and the install asks you questions I'm not sure Patrick Volkerding himself wants to answer. I love it. I didn't pick it for the desktop.

Debian 2.1 ("slink"). Rock solid, and apt-get is genuinely the best software installation tool on any operating system, full stop. Type apt-get install xemacs and it fetches it and everything it needs. But slink shipped with a 2.0 kernel and an installer that assumes you already know what a partition is. The two friends I talked into trying Linux both bounced off it in the first hour. I'd run Debian at work in a heartbeat. At home I wanted something my wife might occasionally sit down at.

Red Hat 6.0. Came out in April with the 2.2 kernel, glibc 2.1 and GNOME 1.0 on the CD, and this is what's on the box now. The install is pretty tame, RPM handles dependencies (badly, sometimes, but it tries), and it gets written up in every magazine so it's the one whose problems everybody has already solved on Usenet. The knock on Red Hat is that it changes a lot of things its own way and the config tools sometimes fight you. I'm okay with that for now.

I also have a SuSE 6.1 box set on the shelf that a coworker lent me. Lots of CDs, lots of software, a very nice manual. I haven't given it a fair try.

$ ./install

Weekend of May 1. Order of operations, so you don't do this in the wrong order like I nearly did:

  1. Back up Windows. I mean it. Everything you care about, to a Zip disk or somebody else's machine.
  2. Defragment Windows. Twice. Then run FIPS from the Red Hat CD's dosutils directory to shrink the FAT32 partition and leave empty space at the end of the drive. FIPS refuses to move data, which is why you defragment first; it can only chop off the empty end. It worked, but I held my breath for about a minute. (People with money use PartitionMagic for this and probably sleep better.)
  3. Boot the CD — or make the boot floppy with rawrite if your BIOS won't boot from CD-ROM. Mine would, barely.
  4. Partition with Disk Druid: / at 2.5 GB, /home with the rest, and 128 MB of swap. Purists want six partitions. Purists can have my six partitions when I'm dead.
  5. Pick packages. I picked "custom" and then nearly everything, which is how you end up with three text editors, four mail clients and both desktops. No regrets.
  6. Configure X. The installer runs Xconfigurator. Cross fingers. See below.
  7. Install LILO in the master boot record, with the Windows partition as the other entry. Reboot. Type linux or dos at the LILO boot: prompt. Feel like a wizard.

Total time, including the panic about FIPS and a reboot to make sure Windows still came up: about three hours. The Windows 98 reinstall I did in January took longer.

$ cat /dev/modem > /dev/null  (the winmodem problem)

This is the single most common way a first Linux install goes wrong in 1999, so read this part twice.

Most internal modems that come in a new PC these days are winmodems: instead of a real modem chip that does the work, the card is a cheap piece of hardware plus a Windows driver that does the modulating in software on your CPU. No driver, no modem. And the manufacturers, with one or two exceptions, do not release Linux drivers or even the specs to write one. As far as Linux is concerned the card is a paperweight with a phone jack. Mine didn't even show up as a serial port.

How to tell before you install: if the box or the driver disk says "HSP," "HCF," "soft modem," "controllerless," or "Windows only," that's a winmodem. If your PC was cheap and came with an internal modem, assume the worst.

The fix, which cost me $110 and was worth every dime: an external serial modem. Anything that plugs into a real serial port is a real modem and Linux talks to it as /dev/ttyS0 (COM1) or /dev/ttyS1 (COM2) with zero drivers. I got a US Robotics Sportster 56K external, linked /dev/modem to /dev/ttyS1, and it connected on the first try at 49,333. As a bonus it has blinky lights, which tell you more about what's going on than any driver ever did.

Dialing: kppp from KDE if you want a window with a dial button, or wvdial from the command line, which figured out my modem's init string by itself. I have a line in my .bashrc that aliases online to wvdial, and offline to kill it. Netscape, fetchmail and ping all just work once ppp0 is up. Before I had wvdial I spent an evening writing a chat script by hand and I don't recommend that to anybody.

$ startx  (or: configuring X, a tragedy in three acts)

X is the windowing system. XFree86 3.3.x is the version everybody runs. It works beautifully once it's configured, and configuring it is the second most common way a first install goes wrong.

Act I. Xconfigurator asks for your video card. It found the Matrox on the PCI bus by itself, which is exactly why I bought the Matrox: it's one of the cards the XFree86 people have supported for years. (Before you buy any video card, check that XFree86 supports it. A brand new card with a brand new chip may not be supported for months.) Then it asks for your monitor: the horizontal sync range and the vertical refresh range, in kHz and Hz. These are in the back of the monitor manual. If you don't have the manual, pick something conservative from the list; put in numbers that are too high and, at least on an old monitor, you can actually damage it. I found the manual. It took forty minutes.

Act II. It "probes" the card, the screen goes black for a second, and then it shows a test pattern. Or in my case, a screen full of diagonal stripes, which means the modeline is wrong. Back to the text console (Ctrl-Alt-Backspace kills X, remember that, it's the most important key combination in Linux) and edit /etc/X11/XF86Config by hand. Lower the resolution to 800x600, get a picture, then work back up. I was at 1024x768 by midnight. Ctrl-Alt-Plus and Ctrl-Alt-Minus switch resolutions on the fly, which nobody tells you.

Act III. Fonts. Out of the box everything is either tiny and jagged or huge and jagged. Installing the 100dpi fonts package and setting the font path fixed most of it. There's no font smoothing like Windows has. You get used to it. Sort of.

XF86Setup (the graphical one) and xf86config (the text one) are the alternatives to Xconfigurator, and honestly after doing it three times I'd rather just edit the file. The one in XFree86 3.3.4, which came out in August, is a little better.

$ echo $WINDOWMANAGER

In Windows there's one desktop. In Linux, X just draws windows, and you pick a window manager or a whole desktop environment to sit on top of it. This is the part that's actually fun, and the part that eats the most time.

KDE 1.1.1. A full desktop: panel, file manager (kfm), a bunch of little apps that all look alike, a control center that actually controls things. It feels the most like what a Windows person expects. This is what my wife uses when she sits down. The license argument about the Qt toolkit that it's built on has been raging on Usenet for two years; I stay out of it.

GNOME 1.0. Shipped on the Red Hat 6.0 CD as the default desktop. Same idea as KDE, different toolkit (GTK), with the Enlightenment window manager underneath by default. Prettier than KDE, more themes, and in April it crashed on me about twice a day. The updated packages over the summer have helped a lot. Most of my machine time is in GNOME now, mostly out of stubbornness.

Plain window managers. If you don't need a whole desktop, these are lighter and faster on 64 MB:

  • fvwm2 — the old standard. Ugly, configurable, never crashes. I ran it for the first month.
  • WindowMaker — looks like a NeXT. Dock on the right side. My favorite of the lightweights.
  • AfterStep — also looks like a NeXT, with more knobs.
  • Enlightenment — gorgeous, slow, and configured with a .enlightenment directory the size of a novel. Turn off the sound effects.
  • icewm — looks like Windows 95 and is not ashamed of it. Great for a slow machine.

The thing nobody warns you about: you will spend a whole Sunday trying themes. It's a rite of passage. My desktop currently has a blue-and-gray theme and a background of the Horsehead Nebula, and I'm done. (Not done.)

$ which work

Can you actually get things done? Yes, with substitutions.

WebNetscape Communicator 4.61 for Linux. Same browser as on Windows, same crashes as on Windows. There's also lynx for when you just want the text, which is more often than you'd think on a modem.
Mailfetchmail pulls it down from the ISP, procmail sorts it, and I read it in mutt. My wife reads hers in Netscape Messenger. Both fine.
DocumentsStarOffice 5.1. A whole office suite — word processor, spreadsheet, presentations — that reads and writes Word and Excel files well enough that nobody at work has noticed. It's huge and it takes a minute to start on 64 MB (fine on 128), and the whole thing runs inside one big "desktop" window that pretends to be your whole screen, which is weird. Sun bought the company that makes it in August and says it'll be a free download, which I'll believe when I see it, but the version I paid $40 for in the spring works. WordPerfect 8 for Linux is also out and the download version is free; it's a very good word processor if you don't need spreadsheets.
Textvim. I'm not going to argue about it here.
PicturesThe GIMP 1.0. Genuinely as good as the commercial thing for what I do, which is resizing photos and making buttons for this page.
MusicMP3s play fine in xmms (was x11amp). CDs play in whatever. Sound Blaster 16 was recognized on the first boot without me doing anything.
PrintingHP DeskJet on the parallel port, through lpd and Ghostscript. Red Hat's printtool set it up in five minutes. Prints from StarOffice and Netscape look fine. (A "Windows only" printer is the same trap as a winmodem, so check before buying.)
Home pageThis page: vim, uploaded with ncftp. The ASCII title at the top was made with figlet.
LILO boot: _  (living with Windows 98)

I said "leave Windows for good" up at the top. I lied a little. Windows 98 is still on the first partition, and here's the arrangement:

  • LILO comes up at boot and waits five seconds. Default is Linux. Type dos to get Windows.
  • Linux mounts the Windows partition at /mnt/win as vfat, so I can read and write everything on the Windows side from Linux — copy my old Word files into StarOffice, grab an MP3, whatever. The 2.2 kernel handles FAT32 and long filenames fine.
  • Windows cannot see the Linux partitions at all. That's a feature.
  • Rule: install Windows first, then Linux. Windows wipes out the master boot record when it installs, and LILO with it. If that ever happens, boot the Linux rescue floppy and run /sbin/lilo again. Make the rescue floppy now, not when you need it.

How often do I boot Windows? Looking at the diary: about once a week in May, about twice a month now. Every one of those times was for a game or for TurboTax. See next section.

$ cat /var/log/doesnt_work_yet

Honesty section. As of September 1999, on my machine:

  • Games. This is the big one. There's Quake II (id released a real Linux port), Doom, and a company called Loki has started porting commercial games, starting with Civilization: Call to Power this spring. That's about it for the stuff you'd buy in a store. No Half-Life, no StarCraft, nothing new from this year's shelf. If games matter to you, keep the Windows partition. The WINE project is trying to run Windows programs directly, and it runs Minesweeper. I'm rooting for them.
  • The winmodem, obviously. It's in a drawer.
  • USB. The 2.2 kernel has barely any USB support. My USB ports may as well be painted on. Word is that this is being worked on hard for 2.4, whenever that comes.
  • The scanner. A parallel-port flatbed. There's a project called SANE that supports a lot of SCSI scanners and a few others, but not mine. For now: boot Windows, scan, reboot. Annoying.
  • Fonts and the Web. Netscape on Linux with the stock fonts makes a lot of pages look worse than they do on Windows. Installing the TrueType fonts off the Windows partition with the xfstt font server helped a lot; that's a whole evening of its own and I'll write it up.
  • RealAudio, plug-ins, etc. There's a RealPlayer for Linux and it works for audio streams. Most other browser plug-ins don't exist for Linux, so a page that needs one is just a broken page.
  • Tax software, Quicken, that class of thing. Nothing. Windows partition.
  • Suspend/power management on this desktop: doesn't, and I don't care, but if you have a laptop, care.
  • Being the family "help desk." When my wife has a problem in Windows, she can ask her sister. When she has a problem in KDE, she can ask me. This is not a software bug but it is a real problem.
$ tail -n 14 diary.txt
1999-09-22Kernel 2.2.12. Built with the Matrox framebuffer on, for the penguin logo at boot. This is the least necessary thing I have ever done.
1999-09-14Uptime 41 days. Rebooted only because I built the new kernel. Win98 partition uptime record this year was 6 days.
1999-09-05Tried the SuSE 6.1 disks in a spare partition. YaST is nice. Their X setup tool (SaX) found the monitor by itself. Jealous. Went back.
1999-08-28xfstt + the TrueType fonts from /mnt/win. Netscape looks like a real browser now. Wrote up a note; will post.
1999-08-19XFree86 3.3.4. No difference I can see, but no stripes either.
1999-08-08RealPlayer for Linux. Listened to a ballgame. Felt like the future.
1999-07-31Loki's Civ: CTP arrived. It runs. It is Civilization. Lost a weekend.
1999-07-17Built 2.2.10 from source. 40 minutes on the PII. It booted. Bragged.
1999-06-26128 MB RAM. GNOME and StarOffice at the same time without swapping. Should have done this in May.
1999-06-12Wife used KDE for two hours, wrote a letter in StarOffice, printed it, said "okay." This is the highest review possible.
1999-05-29wvdial. Deleted my hand-written chat script with great satisfaction.
1999-05-15External USR Sportster. Connected first try. The winmodem goes in the drawer. Should have done this in January.
1999-05-08Stripes. Stripes. Stripes. 800x600. Then 1024x768 at midnight.
1999-05-01Red Hat 6.0 installed. FIPS did not eat Windows. Alive.

Made with HTML 56K friendly Best at 800x600 Made with a text editor

visitors since 1999-05-30 (wc -l access.log):
000691

Questions, corrections, or your own winmodem horror story: [email protected] E-mail me

See also: Learning Perl the Hard Way · Brian's PC Help Page · The Y2K Watch · SiliconValley · GeoCities.us

Last updated: Wed Sep 22 23:47:10 PDT 1999. © 1999 Amit Buckingham. No frames, no Java, no cookies, no kidding.
Linux is a registered trademark of Linus Torvalds. All other names belong to whoever owns them.