|Fedora Core 2 Linux on a Dell Inspiron 600m|
The Fedora Team has done an excellent job with Fedora Core 2. It was a breeze to install and configure. The system manages to work around Dell's known buggy BIOS (or customized, depending on your perspective) and handles the supported hardware without much fuss. The only two caveats are, if you've been running another distro (including Red Hat) Fedora Core is different, and a minimal install isn't (easily) possible. Fedora Core 2 will install tons of stuff that you might never use, even on the custom install. Expect to spend some time familiarizing yourself with the system.
Why a minimal install is an issue for me...
Security! The less stuff I've got running the safer I feel. I administer systems running several different *nixes and even a few with that monolithic monster from Redmond. A minimal install makes it significantly easier to secure and maintain systems. The nice thing about OpenBSD is that a minimal install is the default. Sadly, the OpenBSD 3.4 kernel panic'd when I attempted to install it on the 600m from CD. A newer OpenBSD release or installing from the laptop diskette may fix this, but that's another web page. Don't assume that OpenBSD won't run on the 600m just because I didn't pursue it any further.
Modular Bay -
The modular floppy is USB. It cannot be accessed through the standard fd device. It is available as /dev/sda. You'll need to edit fstab to allow user mounts. If you're not familiar with Kudzu, read the man page first to avoid common mistakes. A USB cable is included that allows you to connect the modular floppy to one of the rear USB ports so you can use the floppy while the modular bay is full.
The insmod floppy.ko errors during startup are harmless. A similar error on shutdown is also harmless. These error messages can be eliminated by advising the system not to load the floppy module. Append install floppy /bin/true to the /etc/modprobe.conf file. This will not affect the operation of the floppy drive since it is USB.
Booting off the floppy into FreeDOS works fine. I didn't expect this after discovering that the modular floppy is USB. Note that this will depend on the boot device order in the BIOS setup.
Hot swaps of the floppy and optical drive work, although, it generates a large number of status errors on the hdc device (modular bay CD/DVD). It gets stuck trying to issue ATAPI resets to the floppy drive. Really annoying in a console session!
Modem - It's a Broadcom :-(
There are probably more posts on the net about getting these silly winmodems to work in Linux than there are naked pic sites. Broadcom is widely known as a FOSS unfriendly company that does not release information about their hardware. Dell posted Linux drivers for RH 7x with older Broadcom modems long ago, but there's nothing current. Earlier 600m units had a PC-Tel based modem that seemed to work. However, I have been unable to find any support for the Broadcom modem on the current 600m. Specifically, the modem ID string is "BCM V.92 56K Modem Version 3.5.25".
I did try Smart Link's software since some folks had reported success with other Broadcom models. It appeared to recognize the modem and dmesg showed the modem as "mc97 codec is BCM64" and "slamr0 is ACH4 card". I soft linked /dev/modem to the slamr0 device and tested dialing with wvdial. Simple dial-up connections worked although the modem's speaker is silent. PPP connections were unreliable. Plan on buying a PCMCIA modem card or lugging around an external modem if you need dial-up capabilities. My old USR Sportster PCMCIA modem works fine.
Ethernet - BCM5705M Gigabit
This is supported with the Tigon TG3 kernel module. Configuring the netplugd daemon to manage the interface makes plugging into networks effortless. The interface is started and configured whenever a cable is plugged in and brought down when unplugged.
Wireless - Intel 2200BG
I was prepared for this to not work out of the box. Intel has started the ipw2200 project to support the mini-pci adapter on Linux, but when I purchased the laptop no code had been released. I tried the NDISWrapper project software. I downloaded and built from the ndiswrapper-0.8-rc2 tarball and it appeared to work (expected messages, no errors). The interface detected and came up without a hitch. However, the iwconfig utility was unable to retrieve the card's configuration. I didn't get any errors when configuring the interface, but, since the configuration could not be retrieved I had no way to know if the settings were taking effect. Testing it with a friend's wireless broadband router (WRT54G) failed. The ndiswrapper project wiki has a set of instructions claiming that the 2200BG does work with ndiswrapper and Gentoo Linux here.
The Linuxant company has a nifty solution that will work for wireless NICs and Conexant modems. They provide a commercial package that is a wrapper for these (and other) win32 drivers. A trial version is available so you can test your hardware. I downloaded the trial version and configured everything easily. The web based interface is fairly straight forward, even in lynx. Linuxant offers an updated kernel for Fedora Core 2 with a larger stack size. I did experience a couple of test episodes where the console went berserk and the machine had to be hard reset. It turned out this was a documented bug with driverloader and the Intel 2200 drivers. I started with the 8k stack kernel, but it really needs the 16k stack size to work correctly. The Linuxant Driverloader works and the full package is available for a modest price ($20 as of 08/07/04).
Getting WPA-TKIP to work with a Linksys WRT54G router turned out to be pretty easy. I downloaded the wpa_supplicant package, unpacked it and built the binaries according to the included documentation. Linuxant tests DriverLoader against wpa_supplicant and links the tested version on their downloads page. I was successful with the latest stable version (0.2.4). I've followed the updates through 0.3.9 without any problems. I tested the router with the Sveasoft firmware for the WRT54G and the latest stock Linksys firmware.
I chose to disable IPv6 on the system since I don't connect to any IPv6 networks (yet). This can be done by appending alias net-pf-10 off to the /etc/modprobe.conf file.
A nifty system tray wireless monitor is KWirelessMonitor. It shows the signal quality and bit rate for the connection and will adjust the rate and power settings of the 2200BG.
Console Video -
The default console video is 640x480. This can be changed by passing a kernel parameter via grub and disabling the "Video Expansion" in BIOS. I prefer the console to be set to 1024x768/64m. Append the parameter vga=792 to the kernel line of your menu.lst configuration file to set the video mode to 1024x768/16. More information is available about the vga modes in the kernel documentation under vesafb.
External Video - X11
A couple of tweaks to xorg.conf and the external vga interface works. These sections need to be modified or added; "Monitor1", "Screen1", "Device", and "ServerLayout". Check out man xorg.conf for details on the configuration file. The tool system-config-monitor can also be useful.
If you don't edit the xorg.conf file, the external video will still work, but only at 640X480 resolution.
BIOS - Version A11, updated to A17
Most of special function keys (fn+key) do not work. The 18kutils project has set out to make them work in Linux along with some other useful stuff like fan control and on-screen status. Fedora Core 2 ships with the kernel module already installed (it would not load). I downloaded the latest source for the i8kutils and built them. Sadly, when I tried to insmod the module, it also refused to load. A little investigation determined that the BIOS isn't recognized. This is due to Dell and not the i8k module. Also, it should be noted that i8kutils was designed for the Inspiron 8000 series laptops and not the 600m.
Another project that tries to handle special keys is the LinEAK project. The volume and mute keys all produce keycodes in X and should work with this package. The wireless switch and cdrom eject keys do not generate key events so getting them to work may be trickier.
The screen brightness keys work normally. The wireless on/off toggle key also works. You'll have to remember what state the wireless is in though, since there is no visual indicator when the button is pressed. The number keypad works after setting it to track the NumLock LED in the BIOS.
Suspend doesn't work either, although the proc entry for the suspend switch toggles just fine (also check out /var/log/acpid). This is probably a configuration thing I don't have set correctly. I usually just power down between sessions, so I'm not going to dig into this one.
Power saving and CPU throttling appear to work correctly. The battery status indicator works without any setup in KDE. The power warning and low power shutdown seems to work too. Battery life is respectable at three-four hours per charge. ACPI is enabled with a kernel boot parameter acpi=on. apmd should be disabled at boot with ntsysv or chkconfig since the 600m doesn't support APM.
APIC is disabled with the kernel boot parameter noapic. This cleans up some bizarre interrupt controller related errors in the system logs.
Power saving can be improved by using Laptop Mode. I downloaded the installation tarball, unpacked it and ran the install script. It adjusts the power consumption parameters of the IDE/CD/DVD drives and the size of your in-memory data cache. It can dramatically improve your battery time.
Kernel updates past 2.6.10 -
After updating to the kernel 2.6.10-1.770 I began to experience strange freeze up problems. Switching the BIOS POST testing from "minimal" to "thorough" solved the problem. Apparently Dell doesn't init everything properly in the minimal POST. Ultimately, I believe the problem appeared because the Intel 2200BG driver was interacting strangely with IRQ routing. Appending pci=routeirq to the kernel boot parameters restores the "old" style interrupt routing and is another possible workaround.
Also, I had to add the line install ipw2200 /bin/true to the /etc/modprobe.conf file to prevent the newly added ipw2200 support from clobbering my wireless setup. Uninstalling and reinstalling Linuxant's driverloader does this automatically too.
Technical Support - Dell Experience
I kept the Dell diagnostic partition intact on the machine and ran the tests when the system arrived. It wouldn't complete all the tests, but no failures were indicated. Almost instantly though I noticed hard disk errors. After digging a little with smartctl I determined the brand new hard drive was failing. I was able to re-run the Dell diagnostics and generate an error code for support. A quick, late night telephone call to support got a new drive on the way. Since I've criticized Dell for not strongly supporting Linux and not offering me money back for software I didn't use (or at least offering laptops without an OS); it's only fair to say the support people were quick, courteous, and recognized that I had a clue.
I've been in the computing business since the late 80's and I know how hard telephone support can be, especially when the person on the other end of the line is an out of work actor (or worse). I'd strongly suggest you retain the Dell diagnostics partition, it will pay off if any hardware croaks.
Also, the diagnostics CD may be useful in troubleshooting hardware issues. It is a bootable (Win98) CDROM that will tests the various components of the system and generate reports.
Other - Color kit
I ordered the bamboo green color kit (it's a clip on shell, they install it) with my 600m. It would have been nice if Dell told me that the inside colors are always blue and silver. Oh well...
Miscellaneous - More online information
A great resource of useful information about Linux on laptops (and other mobile devices) is TuxMobil. They also have a solid collection of tips and information specific to Centrino laptops at TuxMobil.
Several companies offer Linux preloaded on laptops including LinuxCertified and Emperor Linux. They also offer assistance with dual boot and installation issues on a fee basis.
Disclaimer - As stated above, the reader is assumed to have an above average understanding of PC hardware and be an experienced Linux system administrator. This is not intended to be a cookbook recipe for installing Fedora Core 2 on your laptop.
This information is provided AS IS without any warranty. While reasonable effort has been made in preparation of this material, the author and publisher assume no responsibility for errors, omissions, or for damages resulting from the use of the information contained herein.