To bypass this rather long winded narrative and get to the meat, go straight to the summary.
In this endeavor, as in most, Google is your friend. I was a little discouraged at the amount of mis-information on these topics. I've noticed that I have to wade through much more noise to find the information I'm looking for. The information is out there, but I had to really dig to find it.
I always do a network install rather than burn ISO images for two major reasons. First, it's actually faster than a CDROM install. Second, and most important, Mandrake saves the installation media in it's urpmi database. At any time after the initial install, if I need to install a package, I simply type "urpmi package-name" and the installation is done over the network. I don't have to hunt down the CDROM's and I don't have to play disk shuffle to find the right one. See my method for setting this up here.
I thought that maybe the network boot was a problem, so I burned the ISO's and tried a CDROM install. Same problem. A little Googleing showed a number of people experiencing the same problem and not many knew the solution. Some suggested booting "linux nofirewire" to no avail. Finally I found a suggestion to try "linux noauto" which got me into the install but I was afraid that none of my hardware would be auto discovered.
After the slightly abnormal install, I had the familiar Mandrake desktop with one notable item missing. My battery indicator!!!
I found that I should see entries in /proc/acpi but that directory didn't even exist, which told me that acpi wasn't configured in the default Mandrake kernel. Here is where I made my first big mistake which I will describe if only for comedic value.
I downloaded kernel-source (which isn't included in the download ISO's BTW) and tried to configure ACPI. It said it was already configured but it wasn't showing up in /proc/acpi so I was sure it wasn't there. I thought that maybe it wasn't loading the modules for battery, ac adapter etc, so I set them to load with the kernel. Big mistake!!!
I recompiled the kernel and set it up to boot in LILO, and booted it and voila, I still had no /proc/acpi. More Googleing suggested that I might want to try acpi=on on the kernel append string. Another suggested that there was an "off by one error" when using acpi=on and that I should try acpi=force. Both of these options caused my computer to freeze solid.
Error scenario: When enabling ACPI in the kernel (by removing
acpi=ht from the kernel boot options), the system freezes very
early Why: There seems to be a bad interaction with Local APIC,
which is enabled by default in the kernel. This can be seen by
adding vga=0 to try to see the last kernel message before it
locks solid (a message like "Looking for DSDT in initrd... not
found"). This seems to happen with certain HP laptops. Other
reports also indicate that if you remove AC power from a laptop
(ie. Dell latitude C640; possibly others) it will freeze requiring
a power off. (re: Bugzilla #5821)
Solution: Add "nolapic" to the kernel boot options to resolve both
issues.
Notice that is nolapic (with an l (letter ell)) just to add to the alphabet soup confusion.
Well, I replaced acpi=ht (which is very confusing because that looks like it is being enabled, not disabled) with nolapic on the kernel append line and rebooted and voila again. This time I had /proc/acpi and it had contents but the item I was most interested in, /proc/acpi/battery was empty. As I discovered after several days of Googleing and troubleshooting, and head scratching, Mandrake was loading the modules anyway, right on top of the drivers I had configured into the kernel, so there were actually two copies of each driver. My aha moment was when I noticed that battery appeared twice in /proc/acpi.
I recompiled the kernel again, changing all the modules back into modules and it worked. Then came the realization that I could have avoided this enitre fiasco if I had read the directions in the first place. The simple change of a boot parameter from "acpi=ht" to "nolapic" works with the stock default Mandrake kernel. That was all I needed to do.
Well, now that I had ACPI working, I was anxious to see if it would now suspend to disk, so I again hit the power switch. This time it did an orderly shutdown, turning off all services, and then it powered off the machine. Not exactly what I was looking for but progress. More Googleing told me about the directory /etc/acpi/events which contained two files, lid and power and their contents were:
/etc/acpi/events/lid: event=button/lid LID action=/usr/sbin/pmsuspend /etc/acpi/events/power: event=button/power (PWR.|PBTN) action=/sbin/poweroffThis was encouraging. The shutdown was obviously initiated by this file triggering /sbin/poweroff which occured when I pressed the power switch. It should follow that if I close the lid, it will suspend to disk. Fat chance!!! Closed the lid and waited 10 minutes, nothing.
I tried to run /usr/sbin/pmsuspend manually to see if it would report an error and it didn't exist, but /usr/sbin/pmsuspend2 did. I made the change to /etc/acpi/events/lid and tried again. Again nothing. I tried to run it manually again and it told me that I didn't have enough swap space to swap to disk.
It was right. When I installed I figured with 1GB of ram, I wouldn't need that much swap, so I only allocated 800MB to swap. I re-partitioned the disk (not so easy so do this right the first time) and gave it 2GB of swap.
Once again I closed the lid and watched. Nothing! Damn!!! Once again I tried /usr/sbin/pmsuspend2 manually and it told me that I needed to add "resume=/dev/hda8" (my swap partition) to the linux append line to be able to recover from suspend. I added this to lilo.conf, reran lilo and rebooted. I closed the lid, and after about 15 seconds, (which seemed like an eternity) I noticed disk activity. Another 15 seconds and the machine powered off.
Did it really suspend to disk? I opened the lid and powered it on and it started booting from scratch, not what I was expecting. I figured I had more troubleshooting to do. I hit enter to boot the default kernel and after a bunch of dots (......) on the screen, I was right back where I was when I shut the lid. It worked!!! Ain't life grand?