Last week my partner and I performed a fresh install of Debian potato onto a PowerTower Pro 225 (equivalent to an Apple PowerMac 9500). The good news is that the install worked, and was much more hassle-free than the install process I went through for my main machine (a PowerCenter 132; similar to an Apple 7200) a little more than a year ago. The PowerTower Pro is now happily running Debian GNU/Linux, but the trip was rougher than I would have liked.
I hope that this message can provide some useful feedback about the installation experience, and perhaps lead to some changes. It's very important that the install experience be a good one, because that process provides newcomers to Debian with their first impression of the Debian system, and if their first impression is that a system is arbitrary, confusing, and *broken*, then believe me, they're going to go back to something that seems like it works well out of the box. (LinuxPPC, for example, has a much glossier installer (although it's nothing compared with Red Hat's or Mandrake's) that generates a positive impression despite the fact that the distribution itself is broken in many subtle ways.) The quality of Debian's installer varies wildly; some parts seem polished and others seem like the kinds of hacks we might have seen five years ago. Debian's current installer isn't just likely to put off an iMac owner who wants to play with that cool Linux thing she's been hearing about, but may also alienate seasoned hackers who have come to expect a certain degree of professionalism and polish in an OS installer. General Points ============== The dialogs the installer presents are often confusing, badly written, or misleading. During this installation there were many times when a dialog flashed up and then disappeared so fast that all I could tell was that a dialog had been there. Once or twice I was able to make out one or two words giving me a guess at what the dialog was about. I hope that this behavior is the result of a bug in the installer and is not the intended behavior. Another weakness of the current dialogs is that the consequences of some choices are not made clear until after they have been made. For example, the function of the Cancel button that appears in many of the dialogs is unclear. Does it terminate the entire install process, or does it merely allow you to back up a step? (If the latter, the button should make its functionality clear by being called ``Back'' or ``Previous''. If the former, an additional Back button needs to be added, and the distinction between the two needs to be made clear. It should go without saying that a drastic action such as cancelling the installation should require confirmation before taking place.) Some of the choices the installer presented were inappropriate for the particular hardware the installer was running on, and sometimes entire interaction sequences lead nowhere (such as the sequence for creating a boot floppy, which ended with the installer informing me that that it couldn't create a boot floppy on the PowerPC/PowerMac platform!). Specific points, in chronological order ======================================= The system in question is a PowerComputing PowerCenter Pro (similar to Apple PowerMac 9500). 225 MHz 604e processor; 96 MB RAM; IMS TwinTurbo video card. Two hard disks (one with MacOS, one external drive for Linux), one SCSI Zip drive, one SCSI CD-ROM drive. Using files from <ftp://ftp.ca.Debian.org/Debian/dists/potato/main/disks-powerpc/2.2.16-2000-07-20/powermac> Initial boot using installation and root diskettes. Fine, except for many complaints from the floppy driver of the form: swim3: expected cylinder <n>, got <n+1> Debian installer starts Configure keyboard We have a ``mac-us-ext'', but I was surprised by the very limited number of options. (I believe there were three, only one of which was a non-US keyboard.) Partitioning hard disk using pdisk The first screen allows you to choose which disk to partition. On our system, it offered us a menu with /dev/sda, /dev/sdb, and /dev/sdc, but no hints as to which disk was what. Since the kernel knows which disk corresponds to what device (in /proc/scsi/scsi), it would be more helpful to include that information in the dialog. Once you've chosen a disk, you are unceremoniously dumped into pdisk, without any instructions as to how the program works or what you should do. It would be nice if there were some information about the number and size of partitions the user should create (how would a new user have any idea that they need at least two partitions -- root and swap, and that those partitions have to be special types, or have special names?), as well as a quick overview of the commands available within pdisk (especially how to get help, how to save the partitions they've created, and the fact that you can quit pdisk *without* disturbing your existing partitions!). It would be even better if the partitioning tool were more user-friendly. When creating a partition, pdisk expects the user to enter the partition number. However, the display (from ``print'') shows partitions labelled /dev/sdc<n> (where <n> is a positive integer), not simply numbers. Once you've chosen a partition to create (using the last number listed, which is likely to be 4 on a Mac disk), pdisk wants you to enter the starting block number, followed by the number of blocks in the partition. An inexperienced person isn't going to have any idea how big a ``block'' is, or where a partition should start. In order to figure out how to get a, say, 2 GB partition, you're going to need a calculator or a scratch pad. Good luck if you're creating lots of partitions. I've used partitioning tools for Linux that are much more user-friendly. They allow you to specify the size of partitions in ``real'' units (megabytes or gigabytes), and can handle at least some of the details related to start points. When you're ready to save the partition map, pdisk says Writing the map destroys what was there before. Is that okay? [n/y] which is horrible from a user-interface--design standpoint. Stating that some destructive event is going to occur and then asking if it's okay is a major no-no. Better would be something along the lines of IMPORTANT: You are about to overwrite the existing partition map. Any filesystem partitions you have modified will be DESTROYED. (If you were creating a partition from free space, writing the map should not damage existing data. Nevertheless, you have should have a backup of any data on this disk you want to keep, just in case.) Proceed? [n/y] which makes it clear that the user is making the change, and has the option to cancel. Once you've said yes to ``Writing the map'', pdisk says The partition table has been altered. When I first read this message, I thought it was an error message, telling me that it had it couldn't write the partition map because something else had already changed it. Wouldn't it be much better to say ``Partition map saved successfully.''? (It would also probably be a good thing to pick either ``partition table'' or ``partition map'', and stick with that choice throughout.) Initializing and activating the swap partition Because we named the swap partition ``swap'', the installer was able to figure out which partition to use. If a naive user hadn't done so, they would have to remember what partition they'd created for swap (assuming that they knew enough to create a swap partition in the first place). Perhaps the menu could include not only the partition device name but also the name given to the partition? Initializing and activating other partitions A dialog appears that offers you the option to make the ext2 partition be compatible with Linux 2.0.x kernels. Is that a reasonable question to ask given that the 2.0.x kernels won't run on the PowerPC/PowerMac architecture? Even if they did, or if someone might move the disk to another machine running an older kernel, should the default be to include these features? Once you've decided to go ahead and initialize a partition, a dialog box pops up warning you that initializing partitions will cause them to lose all the data in that partition. But the default is ``yes''! (By the time you've repartitioned your disk you've pretty much already lost access to any data, but the issue here is consistency: The installer should either should assume that the user is enough of an expert to default to "Yes" for *all* dangerous-yet-common actions, or take the safe path of defaulting to "No".) Mount root partition Install kernel and modules One minor quibble: How many people are going to install the base system from floppy rather than CD, network (http/ftp), NFS, or files downloaded to a hard disk? (Remember that the base system is 15.7 MB gzipped!) Why is floppy the default? Everything else is fine up to the point where the installer downloads rescue.bin and drivers.bin. Specifying Debian mirror The installer requires you to enter the entire name of your Debian mirror, including the site and the path to the distribution. Given that the path should be the same for any major mirror, wouldn't it be better to present a list of mirrors, perhaps organized by country, and fill in the rest automagically? At or near the top of the list could be an option to enter the information by hand, in case you wanted to use a local or non-standard mirror. Yet another option would be to have the installer connect to a script on a Debian server that would redirect it to a local mirror (ala CPAN). Configure device driver modules This procedure requires you to go through a bunch of lists and sublists and pick drivers out by hand. Unfortunately, it assumes that you actually know not only what each module does, but that a particular module actually works on your hardware. Some of the modules have useful descriptions, but many of them are cryptic at best, and many others have no descriptions at all! Some examples: * What is ``Network Block Device'' support for? Why would we want it? * Choosing nfsd causes the installer to ask you if it should install the module in the kernel. Saying yes asks for command-line arguments -- but how would anyone who hadn't done the installation before know what to type here? What kind of command-line arguments are even available? (And are those arguments to the nfsd module or to modprobe?) * The SCSI options don't include either MESH or 53C94, the standard PowerMac SCSI interfaces. Various other menus also don't include PowerMac-specific drivers. * The dmasound driver is described as ``Amiga or Atari DMA sound support''. There's no mention of the PowerMac, and if you didn't already know that these machines use DMA sound, you might not be able to get sound working. (I know that the current kernel documentation also omits mention of the PowerMac, but the text of the option does.) Also, it's not clear why you have to pick drivers in the first place. The installer is running, so it presumably has some idea of what hardware is on your system and what modules it needs to run -- is this procedure meant to configure some future kernel? It could be much more abstract -- ``Do you want NFS support?'' ``Do you want SCSI support?'' -- and have the installer do the work of choosing the correct driver modules. In any case, picking modules is pointless. For every one we tried (and we tried a bunch; at least one from every submenu), we got the error message modprobe: Can't locate module XXX Installation failed. Poking around, we discovered that there *were* no modules in /lib/modules. There was a tar file in /tmp, but it had apparently never been unpacked, or else was unpacked to somewhere the installer didn't know about. Install the base system The same dialog asking for a Debian mirror appears that we saw before, and it hasn't been updated with the information we provided last time! That's especially tricky, because the dialog starts by showing the end of the (very long) string, giving the impression that it *is* using the information you provided earlier; the only way you'd know it had been reset would be to scroll back to the beginning and check. After that, a dialog flashes by too fast to read. Our best guess is that it had something to do with a DNS lookup, but there's no way to tell. Configure the base system Set the time zone Presents one of the most bizarre screens I've ever seen. There are two lists: one that seems (at first glance) to contain continents or country names, and one which lists time zone abbreviations (among other things). A logical interpretation is that choosing a country/continent in the first list should cause the second list to present the time zones in that continent/country. Not so. The two lists are apparently completely independent. Given that, why are they separate? (By the way, ``Arctic'', ``Etc'', ``Indian'', and ``SystemV'' are neither countries nor continents, which means that your initial impression about the contents of the first list is wrong.) Once you choose something that seems like a possibility from one of the lists and hit OK, you get a screen showing choices within that group (which I expected to see in the second list on the first page). Why not let the user choose their continent, then present them with a list of countries on that continent, then with a list of cities/time zones in that country? Or even just present a list of cities and let people choose one that they know is in their time zone. (That's pretty much what the Mac OS does.) Experts who wanted one of the weird choices could always change the time zone later by hand or use an ``expert time-zone--setting'' dialog that lets them type in whatever they want or presents them with a more complex set of choices. Make Linux bootable directly from the hard disk Runs Quik, apparently. A dialog appears with lots of text, but it disappears before you can even focus on it. (All I managed to catch was the word ``Quik''.) Exactly what happened here, and whether or not it actually worked, is completely unclear. Make a boot floppy Seems like a good idea, especially since we don't know if the last step actually did anything or not. The installer instructs you to insert a blank floppy into the ``first'' floppy drive. Macs, of course, only have one floppy, so it's kind of pointless to tell users to use the first drive. Presumably that text comes from the x86 installer. But our root floppy is still in the drive. The installer hasn't ejected the disk, and Mac floppies, of course, can only be ejected by software or by poking a bent paperclip into a hole beneath the drive slot. We decide to overwrite the root floppy with the boot floppy image (we can always make another one, after all.) At which point the installer tells us that ``Creating a boot floppy is still not possible for PowerPC/PowerMac'' It isn't? Then why did the installer waste our time pretending it was? Oh, yes, and yet another dialog flashes by too fast to make out. Reboot the system The next dialog assumes that we have a working boot floppy, and tells us to eject it before restarting the machine. Only (1) we don't have a boot floppy, because the system claimed it couldn't make one, and (2) we can't eject it, because the computer is supposed to be smart enough to do that for us. Also, the dialog says ``Please take care of *that* before you answer "Yes" to the following question.'' What, exactly, is ``that'' meant to refer to? Ejecting the disk? In any case, why do you have to answer ``yes'' to a separate question? Why not choose ``Proceed'' or ``Reboot now'' or something similarly meaningful? We choose yes. The machine reboots. The floppy, of course, is still in the drive, but luckily the Mac is smart enough to recognize that it's not a bootable floppy (remember, it's still a root floppy) and spits it out. The machine then reboots into MacOS. Huh? What happened to that Quik stuff we didn't actually get to read anything about? A workaround -- Booting with BootX Now what do we do? Quik wasn't installed, apparently, and the installer couldn't (or wouldn't) create a boot disk. Luckily, we have BootX and the kernel image (``linux'') downloaded from the installation floppies directory and we know how to use them. Not everyone would. The system boots While booting, the kernel complains about ``Unresolved symbols in pcmcia''. But that's fine, since we don't have PCMCIA hardware anyway. Configuration Passwords and accounts Once it's up, the system asks if we want to enable MD5 and shadow passwords. Yes, we do. It has us set up a root and user account. Fine. PCMCIA stuff again The system has figured out that we don't have PCMCIA hardware, and wants to know if it should remove the packages that support that hardware. Yes! But why didn't it ask during the install? (Or, better, figure it out on its own?) Apt configuration Asks about the method to use (we choose http), then whether we want to use non-us and non-free. Asking about non-free here really does make it sound like non-free is part of Debian, which is kind of uncool. I'm in favor of enabling people to use non-free software if they need or want to, but maybe that support should have its own dialog, or, even better, shouldn't be asked about at all during the basic installation/configuration process, and should require the user to figure out how to get non-free software by reading some documentation (which would, of course, contain plenty of reasons to not use non-free before actually explaining how to do it). The system then ``tests apt sources'' by doing an apt-get update. Debian Task Installer It's not completely clear what's in these tasks. For example, with the ``X Window System'' and ``X Window System Core'', don't you have a significant amount of overlap? (Maybe ``X Window System'' should automatically include ``X Window System Core'', or else be mutually exclusive.) Also, it seems weird that the configuration program tests the apt sources by doing an apt-get update, and then does another update before downloading the packages. Why wouldn't the files it just downloaded work? anXious Doesn't know about our video card (an IMS TwinTurbo), and suggests running xviddetect. How many basic (as in ``shipped with'') cards are there for PowerMacs, and is it at all reasonable for this utility to not know about most if not all of them? Given that the only X server provided by Debian for PowerPC is the fbdev server, why doesn't anXious know that, and not suggest that we use other X servers that won't work? SCSI weirdness The system tried to load /lib/modules/2.2.17/scsi/53c7,8xx.o, and reports some ``unresolved symbols''. Why would it try to load this module, which has nothing to do with the hardware on the system? (Doesn't appear to be a problem since I've rebuilt the kernel.) Post-installation oddities ========================== No X X configuration for PowerPC is still nonexistent. The base XF86_Config allowed X to start, but it used a bizarre video mode (one that involved setting the display up as a window onto a much larger virtual screen) leaving us to (1) figure out some necessary kernel boot arguments, and (2) hack the XF86_Config file by trial and error. Not a new complaint, I know, but how difficult can it really be to port the tools that LinuxPPC has to work properly on Debian? Will this configuration problem go away with XFree86 4.X when it becomes available? Running gdm After installing GDM, which apparently isn't considered to be an integral part of GNOME (?!), GNOME starts with twm, which is not an GNOME-aware window manager. task-gnome-desktop installs Window Maker, which *is* GNOME-aware. Shouldn't Window Maker be set to be the default window manager, at least for GNOME? /dev missing many useful devices /dev is still grossly underpopulated, although it's better than it was when we built my main system a year ago (at that time, there were no /dev/sdc* devices, which was kind of a hassle since my Linux disk was the third disk on the system). We had to run MAKEDEV by hand to create additional devices -- why can't the installation or configuration program do that automatically? The Debian kernel also doesn't include SCSI generic support, so I had to build a new kernel to get that functionality. Once that was done, we discovered that the /dev/sg* devices were created with the wrong ownership and permissions, and had to correct them by hand. That's it! Thanks for reading so far. CMC +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ Behind the counter a boy with a shaven head stared vacantly into space, a dozen spikes of microsoft protruding from the socket behind his ear. +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ C.M. Connelly [EMAIL PROTECTED] SHC, DS +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+