Mandrake 9.2 on a Dell Inspiron 4100

The purpose of this page is to describe my experiences installing Linux Mandrake 9.2 on my Dell Inspiron 4100. Hopefully this will serve as a guide to other people in a similar situation. This page was inspired by the many others out there with similar descriptions for other Linux distributions and latops. See the links at the bottom of the page for some of the most relevant ones.

Status

Everything is working great, including the wireless card and power management. Actually, power management is working better than it ever did under Windows 2000. I haven't bothered setting up with the modem since I never use it.

The hardware

Processor:1.13GHz Pentium 3
BIOSPhoenix BIOS A08 (upgraded to A09)
Display15" SXGA+ (1400x1050)
Video card32MB NVidia NV11 (GeForce 440 Go)
RAM576MB
Hard drive20 GB Hitachi DK23DA-20
Floppy driveStandard Dell
Fixed opticalDVD drive
ModemModem, 56K, Internal
Ethernet10/100Mb LAN; 3C920 (3C905C-TX compatible) controller
WirelessDell TrueMobile 1150 wireless mini-PCI
Audio82801 AC97 Audio Controller

Installation

I previously had Windows 2000 in the laptop, but I decided I wanted to switch (I had already upgraded my Dell Dimension 4600 desktop to Mandrake and I was really happy with it), so I just wiped the Windows partition and installed Linux over it. How satisfying! :-)

I ran the graphical installation without any problems. The installer detected all my hardware (enough to install anyway, more on this later) and within 10 minutes I had a fully functional installation of Mandrake 9.2. Yay!

The problem areas

A few areas needed a bit more work (some of them took some researching and experimenting).

Wireless card

Initially only the ethernet card seemed to be working. I would get some errors at boot time about not being able to initialize eth1 correctly. It turns out the only problem was that I was using DHCP and Linux wasn't happy with my previous DHCP lease from my router. Clearing the DHCP entry from my router and letting Linux request a new one fixed the problem.

Next in the menu was to get the encryption going. I couldn't find much documentation on this so it was a bit of trial and error. I ended up modifying /etc/sysconfig/network-scripts/ifcfg-eth1 and added the following fields:

WIRELESS_ESSID=mynetworkname
WIRELESS_ENC_KEY=MYENCRYPTIONKEY
You can do the same from the Mandrake Control Center under network configuration.

Finally, now that the wireless connection was fully working, the last little wrinkle was to get both the wired and the wireless connections working with each other. My problem is that if the LAN was working and I unplugged the cable, the wireless connection didn't seem to work. I'm sure there's a much more elegant solution that can be done by setting up routing tables, but in my case I fixed by going to DrakConnect and creating two different profiles: one for the LAN connection and another for the wireless. So I have to explicitly choose one or the other. No big deal; I hardly ever use the LAN connection anyway.

Video card

Out of the box (or out of the downloaded file), Mandrake worked fine with my NVidia GeForce2 Go, but it wasn't using an NVidia driver. As a result, moving a window on the desktop was a bit slow, and I had no 3D hardware acceleration enabled (glxGears was running slowly--forget what the framerate was exactly).

I installed the latest NVidia drivers from the NVidia web site. I used the Linux IA32 1.0-4496 version. Follow the standard installation procedure (which is a bit on the ugly side, having to exit out of X, recompile a few things, and modify the XFree86-4 file). This is a great post and is probably the best description I've read of the process.

After installing the NVidia drivers, 3D acceleration was working and windows were drawing more quickly on the screen. Life is good.

Power management

Here's where it gets ugly. So far it was a fairly routine installation, but the shutdown/sleep aspect was a bit lacking. I'm sure things are going to improve significantly with future releases and the 2.6 kernel, but in the meanwhile, it takes a lot of guesswork and experimentation to get things working just right.

In particular, I wanted to be able to just close the lid of the laptop and have it go in sleep mode right away. Then open the lid and have it come back. I also wanted the laptop to be aware of whether it was connection to the AC or not and throttle back the CPU speed to save power.

There are two main systems to deal with power management: APM (Advanced Power Management), and ACPI (Advanced Configuration and Power Interface). ACPI is more advanced and is more easily configurable. APM has been around for longer and might have better support in some systems.

I first tried to use ACPI. Right off the bat, as soon as I enabled it by removing the following switches passed to the kernel at boot time:

acpi=ht apm=on
The Mandrake 9.2 kernel comes both with ACPI and APM built into it, so you just have to choose one or the other.

However, as soon as I enabled ACPI, I started to get mysterious freezes when Linux was booting. I was shocked! This wasn't supposed to be unreliable like Windows. It turns out there was some conflict with another option, so to fix it, make sure you boot with the following option:

nolapic
I'm not sure what exactly it is (some hardware detection feature I think), but it fixes all the weird crashes. So ACPI is now working. I was able to hook it up so the CPU would throttle back when the laptop was unplugged, the system could go in either sleep to RAM or sleep to disk when the lid was closed, etc. Very flexible.

Unfortunately (you knew this was coming) none of this works with the NVidia drivers. Nothing, so forget about it for now.

The only real option left was to look into APM. It turns out it was pretty easy to set up. Just boot the kernel with the following options:

acpi=ht apm=on
and it almost works. Almost. I could set the computer to sleep by typing
apm -suspend
but if I just closed the lid, sometimes the computer wouldn't come back when I openend it back up. By experimenting, I figured out that both Linux and the BIOS were trying to do something at shutdown, so I disabled the apmd service and let the BIOS take care of doing its thing. Now when I close the lid, the computer goes to sleep in 3-4 seconds, and when I open it, it's back up and running in 2-3 seconds. That's a lot faster than it was under Windows 2000!

At some point during this, I had some problems with the NVidia driver not liking to come back from sleep, so I had to turn off the AGP bus. Now that things are working well, I turned it back on and everything seems to work fine still.

Same thing with the wireless card. Sometimes, when coming back from sleep, the wireless card wouldn't work anymore. To fix that, I changed /etc/sysconfig/suspend so it wouldn't shutdown the network. That did the trick, but, like the AGP issue, I just restored it and the wireless card continues to work fine, so that's another thing that's not needed anymore. I suspect those were things that weren't working when I was trying to get ACPI to work.

One last very handy comment I read somewhere: Sometimes, when coming back from sleep, some reading gets screwed up and the fans start blowing at full blast. You can force the BIOS to take another reading by pressing Fn - Z and the fans should stop right away.

Summary of power management: Use APM, turn off the apmd daemon, use the BIOS settings. Done ;-)

Miscellaneous

There are a couple of minor things that aren't working yet, just because I haven't tried. The modem is one of them, but I couldn't care less. The touchpad works fine, but it doesn't have the area enhancement that I had under Windows that allowed me to scroll a page by moving my finger on the rightmost area of the touchpad. The Fn - Volume plus and minus don't seem to be working either. I'll deal with those issues some time later on and I'll update this if I get them working.

Links

These are some of the links I found very useful while getting my Inspiron 4100 working with Mandrake 9.2.

Noel Llopis, llopis@convexhull.com.
Last modified: 18 December 2003