Gentoo linux 1.4rc4 on a Dell Inspiron 8200

[ Specifications | My thoughts | Choosing a distro | Preperation | Kernel configuration | XF86Config | Problems | Links ]

Update: April 18 2004

After a long time of trying to figure out why DVD's won't play properly in kernel 2.6 I finally figured out what the problem was. I had spent hours trying to figure this out with the help of google and came up shorthanded.
Basically what was going on was that all the media players were telling me to check the permissions of /dev/dvd, but they were correctly set. Xine's error message was: 'input_dvd: Error getting next block from DVD (Error reading NAV packet.)'. This seems like a dvd read error.
Finally I bumped into a post where a guy was having the same problem as I was as a result of changing from 2.4 SCSI-emulation to 2.6 non-SCSI-emulation.
As a result I tried playing DVD's in 2.6 with SCSI emulation enabled. Worked like a charm.
The reason for this submission is that I have spent many hours trying to get this to work with my own tests and tests found from google, and nobody seemed to have figured it out, so now it's at least documented online.
In many cases the problem is just improper permissions on /dev/hdX, but if everything is in order there, and your situation matches mine, go ahead and try SCSI emulation. Instructions can be found below.
Just remember to add 'append="hdb=ide-scsi"' in /etc/lilo.conf if you use lilo.
If you want my current 2.6.2 SCSI emulation config, here it is.


Update: March 25 2004

Just a short newsflash on the NVIDIA driver. NVIDIA now officially supports 2.6.x kernels and their regular installer works like a charm. The old NVIDIA driver will remain on this page though in case someone has problems with newer drivers.

A few months ago I decided to try to make a port replicator detector shellscript which runs during bootime. Nothing fancy. What it does is check the kernel messages for instances of the ethernet adapter. If there's only one instance, the script will make the assumption that the computer is undocked and link to proper config files. If there are two instances it will assume the computer is docked and link to the proper config files for a docked session.
This may evoke two questions; Why would one need two sets of configs, and why are there two instances of the ethernet adapter.
The reason I require two sets of config files is due to the fact that my CRT monitor doesn't support resolutions above 1280x1204, while my LCD display supports up to 1600x1200, which is what I use. Of course X cycles through resolutions until it finds a usable one, but I like to have the TwinView option enabled while undocked so that I can connect a SVIDEO cable to my laptop and restart X without configuring the XFree config for TV-out purposes.
While docked, the LCD display doesn't need to receive input from the XFree, which is what happens when you use TwinView, and my TwinView config is defined to use 800x600 when enabled, which is no good :) Additionally if the LCD display is being used you are forced to use 60Hz refresh rate, which is no good either for good gameplay.
Finally, I use an alternate .Xresources when docked, to lower the geometry of xterm.
Enough chit chat, here's the shellscript.
Analysis of the file:

This is where the script checks for instances of the ethernet card. It doesn't really check for instances per se, it just checks if there are two instances of the "3Com PCI" text in dmesg, and if so, do the following. All the files it removes are symbolic links, so befure you run this (if you run this), be sure to copy your docked and undocked to XF86Config.docked and XF86Config respectively. Same goes for .Xresources.
ln -s creates a symbolic link to the proper config files and then chown makes sure that it's owned by the proper user which needs to be changed. The paths will also need to be changed, and if you have an XF86Config-4 file you should link to that instead of XF86Config.
Next it sets the IP address of the port replicator ethernet adapter and adds the gateway. Else is what the shellscript does if the if statement's requirements are not met, so basically if there are fewer or more instances of the "3Com PCI" in dmesg this will be run. Then fi just closes the if statement.

This shellscript is a shitfix (quick and ugly way of getting results) which works well, so I decided to post it here if there's anyone having problems using their port repicator with linux.
I think that's all for now. Don't hesitate to e-mail me with questions or corrections. It's nice to get feedback.


Update: January 31 2004

You no longer have to use the linuxant proprietary driver. I meant to put this info here earlier, but I seem to have a bad case of laziness. The driver that will set us free is called ndiswrapper (you will still need the windows drivers, since this is a windows driver loader). The ndiswrapper project page is located at http://sourceforge.net/projects/ndiswrapper/. The latest version of the driver at the time of this writing is 0.4. It now supports scanning, which means you can scan the wireless network in your vicinity and get the MAC addresses and essid's and such.
Installing this driver is very simple (especially in 2.6.0 and above). Just follow the install instructions. For your convenience, here are the windows drivers for the Broadcom 1180 WiFi card.
bcmwl5.sys and bcmwl5.inf.

Installing kernel 2.6.0 turned out to be easier than had imagined. The first step should be creating /sys, so that sysfs can be mounted. It said in the README file of 2.6.0 that this kernel should not be created in /usr/src/linux*, so I didn't. I don't know if this matters or not, but I followed the instructions just in case.
I unpacked my kernel in my rootdir, and did a make xconfig. The xconfig has changed a lot, the interface is somewhat different, and although I didn't like it to begin with, I now think it's an improvement. I first compiled the kernel with ACPI support. ACPI support leads to more reliable battery life time estimation, but it is still in its infancy and a bit unstable. For instance, performance is hogged up by ACPI, while APM runs smooth as silk, so I soon changed back to APM. Note that with ACPI you can't use i8kbuttons to define the functions of the multimedia buttons, while it works with APM. If you use ACPI you should use lineakd. It's available in portage. Everything I've tried so far works, so here's the kernel config in whole.
In 2.6.0 the rescan-scsi-bus.sh script is no longer needed, since the kernel automatically updates the system when IEEE-1394 devices are plugged in.
In 2.6.0 SCSI emulation is no longer needed for CD-Writer devices, although it is still manditory for FireWire hard drives. The same options for FireWire go in 2.6.0 as in 2.4.21. If you are still unsure which options should be set, check with the 2.6.0 kernel config above.
Because SCSI emulation is no longer required for CD-Writing you need to update your cd-writing tools. You need the unstable version of cdrdao, cdrtools and k3b. I may be forgetting something, but k3b will let you know if something is missing. You update to unstable by typing "ACCEPT_KEYWORDS="~x86" emerge cdrdao cdrtools k3b". Note however that if you update your system frequently use emerge -U instead of emerge -u, otherwise your cd-writing packages get downgraded.
Another issue are the NVIDIA drivers. NVIDIA doesn't yet support 2.6.0 officially, so you need to patch your NVIDIA driver installer before installing. You needn't worry, because some genius (I apologize for not remembering who) patched the installer and put it up for download, so I'll make his version available here. This is version 1.0-5328.
I think that's all. Be sure to contact me if something here is amiss.


Update: November 18 2003

First off, when I saw no chance of getting any support for my BCM1180 internal WiFi card I went looking for a used PCMCIA card that worked in linux. I wound up buying an Alcatel 110 SpeedTouch modem, which uses the orinoco_cs driver in linux. They provided some closed source driver with the modem that had a very weird installation method, which didn't even work, so I went ahead and tried the orinoco_cs driver, which worked fine.
What you need for the orinoco-type pcmcia cards to work isn't a whole lot. I was however surprised to see one thing which I required (I found out by sheer luck, I didn't find it in any documentation), that was ISA bus support. Since I am running a laptop this isn't something I'd expect to need.
Anyway what you need is:

You probably won't need all of this, but with this enabled you can be fairly sure that the setup will work for you. After this you have to configure the files in /etc/pcmcia (mainly wireless.opts and config)

To the BCM1180 driver. As of yet there haven't been any official driver releases yet for this driver, but there were some guys that wrote a program in linux to install windows drivers. It's called linuxant and you need to have the windows driver setup file in order to install them. This program isn't open source, and you have to register in order to use it, but it's well worth it.
What you have to do is just install the driver (follow the linuxant instructions), modprobe driverloader, configure the WiFi card with iwtools (a software package you have to obtain, emerge wireless-tools in gentoo), configure the card with iwconfig (i.e. iwconfig eth1 essid "my access point name" key s:asciikey), and then run whichever method you use to get into the localnet (run /etc/init.d/net.eth1 after being properly configured for example).

Unfortunatly you still can't see the link quality with this driver, but you can see the bitrate which it is operating at which counts for more anyway (this is done with the command iwconfig).

I think that is all for now. I apologize if there's something incorrect or missing, this update was done hastily.


Update: September 11 2003

What is IEEE1394?
Asnwer is: FireWire, something which is quite common in DV cams and Apple computers.
FireWire's transfer capabilities are 400mbit/sec, while USB 1.1's transfer rate is 12mbit/sec and USB2.0's transfer rate is 480mbit/sec.
In the previous 2.4.21 kernel config I had IEEE1394 enabled, since I foresaw using firewire (because I was going to get one of those external hard drives).
I recently bought such a hard drive (USB/FIREWIRE) which has a USB2 controller, which is 80mbit/sec faster than FireWire. Unfortunatly the Inspiron 8200 does not have a USB2 controller, which is the reason why I got the USB/FIREWIRE combo drive. Anyways, what I had enabled in the kernel was only the IEEE1394 option, which won't suffice if you are going to use an external hard drive. You will need a few extra options. The FireWire drive mounting also uses SCSI emulation, as the USB drive mounting does, so be sure to include that (details on that elsewhere in this document).

This should do the trick kernel wise. However what I found was that I was unable to mount the drive volume, despite having this in the kernel. After a while of Googleing I found a site which had heard of this problem, and had the remidy. Evidently as of yet the IEEE1394 hotplugging is quite quirky, so after booting/plugging in the FireWire device you must rescan the SCSI bus. I had no idea how to do this, but I did find a shellscript that brilliantly executes this (it must be run by root though, so just create a sudo script or something).
The script which I found, and no longer remember the site where I found it, but I did fin this again:
rescan-scsi-bus.sh was written by Kurt Garloff <garloff@suse.de>
Props for writing that Kurt :)
So what this does essentially is rescan the SCSI bus, thus creating the device in /dev. It will be created under /dev/sda, and will in all likelyhood become /dev/sda1, unless you have more than once device. Just mount that after you have rescanned the SCSI bus.

With all this in store, you should be ready to go.
Here is the kernel config in it's full form with the IEEE1394 support correctly applied.


Update: August 31 2003.

The MTRR support is quite vital to 3D rendering I found out. It adds GLX support to the X11 server, drastically improving the performance. This option can be found in "Processor type and features" in the graphical kernel configurator. The .config option is:

Enabling this added 100 fps to my Quake3 timedemo test. It went from 180 fps to 280 fps (I always found the framerate way too low to begin with, but now it's performing 40-50 fps better than in Windows).

Here is the new kernel config for 2.4.21 with MTRR enabled, and I just overwrote the old one, since it's apparent to me that nobody should have MTRR disabled on this type of a machine :-).


Update: August 12 2003.
The following changes of this document were made. Some changes were made to the document in addition to this section here.

I am most happy about one development since this guide was originally written. Nvidia released a new 3D driver for my graphics card (NVIDIA GeForce440 Go). They had been told (or they themselves) of a problem with their driver when a computer with the driver went into suspend mode. Basically, it's gone from not being possible at all to semi-working. They still have some work to do, since there are some flaws I've already experienced. For instance sometimes when I come out of a suspend my cooler fans go loco, and start working at the highest speed (and can't be turned off with the i8ktool 'i8kfan') and everything is really slow. Solution to that is to reboot. Another problem is that the VGA console is really messed up, and it's not possible to fix it with any way I know of except rebooting. But on the bright side, sometimes I can suspend! :)

I tried putting the computer into the Advanced Port Replicator. To my surprise, it posted a picture on my CRT monitor. Why was this a surprise? Very simply because my monitor doesn't support 1600x1200, which is my default laptop resolution. What XFree had done though, was taken the resolution settings of the SecondConnectedMonitor line, which describes my TV. So basically, it worked, and if I wanted to change the resolution, I would neatly change the second monitor lines of the config. There is an alternate way to do this, e.g. create a special monitor section in the config for the monitor, and XFree is supposed to detect what is connected, but I haven't bothered to go to those lengths yet, since i rarely ever use the APR. Perhaps i'll put some more details on this when I give myself the time.

Anyways, here is my 2.4.21 kernel config in whole.


Warning! Read the updates before you refer to the original guide below.

This document consists of my experience of installing Gentoo linux on my Dell Inspiron 8200 laptop, along with some information on other distributions that i tried out first on the machine since I tried out SuSE, Mandrake and RedHat first.
You can also find my configuration files, such as my XF86Config (with working TwinView TV-Out configuration and USB and touchpad at the same time), my kernel configuration file and basically just all configs that i think might be of any use to anyone here.
Though this is written with Gentoo in mind, some of the things I post here may be useful for other distributions.

Machine specs

I purchased my Inspiron 8200 from www.dell.com the first quarter of 2003 for some $1600.

My thoughts

If you bought a retailed Dell Inspiron 8200, chances are you were forced to buy Windows XP alongside the computer. That was the case with me which annoyed me quite a lot, for several reasons.
The really obvious one is that maybe I'm not even going to use that operating system, so I'm basically being forced to buy some crappy software with the hardware that I desire!
Perhaps it is possible to obtain a machine from them with Red Hat installed. A friend of mine showed me a link to their website which says that it IS in deed possible but it is highly inaccessible and you have to take some weird measures in order to obtain one of those. I salute them for a step in the right direction though.
I would like to more clearcut signs of that, such as an option to which operating system you want installed (although I also think it would be nice to have the option "none" available as well).

I'm not one of Microsoft's worst enemies, in fact I've used their products for years and years, and I find they have many qualities (and disadvantages of course). I think Windows XP is an ok system, especially if you're going to be using it on a laptop, since every option on the computer is customized for Windows. Maybe that's where the problem is though.
I've had some problems getting a few things to work properly, such as suspend and hibernate, which can be two vital things if you use your laptop in a certain manner. Although I don't hate Microsoft, nor Windows, I think Microsoft isn't a good company, nor Windows a good operating system. It's overloaded with useless (or semi-useless) features which make the system bloated and comes down on stability, security, and performance. In addition it's always trying to keep track of what the users are doing, and they really take it to the edge, as far as they legally can actually, or so I've heard.
So basically, I'm not a Windows hater, and I think it's better in some ways, but I truly believe that will soon be over and done with. That's why I decided to write this guide.
All right, now that's over, moving on ;)

What I was looking for

I had set myself some guidelines as to what I wanted to get out of my system. The following are among those.

I guess the question at hand is how well did each distribution meet each of those "demands".
Naturally, if you have linux, any distribution, each of these demands (except maybe the last one) can be met with a little bit of work, even though it might not work to start off with. Such is the beauty of linux, nothing is impossible, given the correct amount of work and time.
Ok, time to go through each one of those points.

This is achieved through the XF86Config file, and doesn't have much, if anything, to with the linux distribution.
This is what probably took me the most amount of time out of all the other things, since I couldn't quite figure out precisely what was needed in the config to make this work. I had moved on from SuSE before I attempted to get TwinView working, since I found that SuSE, albeit user friendly, wasn't for me. I found it too much of everything, too user-friendly, too graphical, too SuSE... :)
I did however try to get TwinView working on Mandrake, which is ultimately what made XFree crash and overwrite a lot of configuration files and basically just random files that were open (due to some odd config error I must have made).
I was going to reinstall Mandrake, but I wanted to try out a few things first since I didn't have a working operating system to lose.
I didn't have Red Hat installed long enough for me to worry about TwinView... I was always at work, and when I wasn't I was playing with the large amount of games that came with it :). I moved on from Red Hat though, because like SuSE, I found it too much of everything.
In Gentoo I however got TwinView working, with the help of another man's XFree configuration file (I don't recall the URL, but I am very greatful for the good example).
The reason I attempted to get it working in Gentoo was that I was in love with the system (like Mandrake, more though due to the superior package system), and I wanted to finalize the setup, and get a fully working system. Ultimately, it's fairly simple once you understand how the config fully works. See the example config later on.

One of the main reasons I bought an Inspiron 8200 is the fact that it is almsot a complete desktop replacement. One of the things that makes it such a great desktop replacement is the graphics card, which as it happens is usually below my standards on laptops. On the Inspiron 8200 it was many times better than my desktop graphics card.
To get what you can out of the card 3D rendering wise you need to get the accelerated nvidia graphics drivers from nvidia.com. Further details on that are in the "Configuring the kernel" section.
From both what I've read, and my personal experience, APM doesn't work very well if you have the accelerated graphics drivers from nvidia.
When I close the lid of my laptop using the accelerated nvidia driver and then reopen it, my display is all messed up. It covers mabye 70% of the screen.If I switch consoles, or make the computer redraw the whole screen by starting full screen applications, the monitor either fixes itself or the computer goes into a deep freeze.. :) (Same happens when I am running on battery and the computer is idle for some time and it tries to suspend).
You can verify if this is the case with you when you are using the accelerated nvidia driver by running the command 'apm -s'. If it says device or resource busy, that means the accelerated driver is messing it up. If on the other hand I am running the nv driver, which is the one that comes with all the distributions by default, I don't have this problem. 'apm -s' just suspends my computer, and when I open the lid again it comes up naturally, and without hitches. Same goes for when I just close the lid. Still waiting for those open source drivers. :)

This was fairly easy to achieve, due to linux's wide selection of media players, and the fact that many of the codecs are implimented into players, not the operating system. This is far better, in my opinion, though some might disagree. The way I look at it, a media player is responsible for getting a clip played, and for that task it must be able to decode it. That's supposed to be the player's problem, not the operating system's.
Windows has it the other way around. You must have the codec installed into the operating system in order to play the clip (this might vary from player to player though, I'm not completely sure that all players act the same). Due to this I have often had severe problems getting some movie clips to play, and to this day I have even had some movie clips that I was unable to play in windows, because I couldn't find the appropriate codec.
You have a broad selection of media/movie players in linux. Two of the most commonly heard of players are Xine and MPlayer (VLC is on the rise also). I use the latter one, though I know of many who use the former.
Both those players are available through every packaging system I've tried out, SuSE, Mandrake, Red Hat and Gentoo.
If you however are running a different distribution or would like to get the players through alternate measures, or just read up on them here are the links:
http://www.mplayerhq.hu/homepage/
http://xinehq.de
If you indend to use mplayer, be sure to have this in /etc/make.conf:
USE="dvd quicktime" (in addition to your other values, such as X, gtk, gnome, alsa etc...)
This will make it so that you can play DVDs with mplayer (and it's region free by default!)

When using a laptop, one of the most essential utilities is the batter life monitor. Since laptops are getting to be very common, this has long since been implimented into the kernel. If you either said Y to APM or installed it as a module, a text mode monitor should be available to you via the simple command 'apm'. That would for example print out: AC on-line, battery charging: 100% (5:30).
This should be enough, but for us desktop users we would like some sort of fancy frontend that would be visual to us at all times (right?).
Gnome, KDE and XFCE-4 have applet frontends which are very easy to add (if they aren't already there). All you need to do is right click somewhere in the task bar and choose add to panel (or something along those lines), and browse through until you find battery monitor. This should add a fancy icon of a battery, which shows if it's being charged or discharged, how much is left, and depending on the applet, the amount of time left.
If you choose to use an alternate window manager (like fluxbox for example) you can still run KDE's battery life monitor for example.
SuSE didn't have APM enabled in it's kernel by default, so the monitor didn't work there without recompiling the kernel or compiling APM as a module. Mandrake had it enabled by default, and the monitor popped up once I started a window manager without me even having to add it. Same story with Red Hat. In gentoo you need to compile your own kernel before you start using the system, so I compiled it with APM enabled since I had knowledge of the fact it was required.

If you have a working battery module installed, chances are you have APM enabled in the kernel. Like I said in the Battery life monitor section above, whether this is enabled or not by default varies between the distributions. To my best recollection this is not enabled by default in SuSE, while it is in both Mandrake and Red Hat. Gentoo doesn't have a precompiled kernel, so it's up to you whether it's enabled or not. Since I have an Inspiron with a GF4 I can only tell you what I know about that. I don't know how it works with the ATI Radeon.
Read the above passage for distribution comparison.

This worked right "out of the box" on all the three easy-to-use systems, that is SuSE, Mandrake and Red Hat. All you had to do really was to start up a CD-Writing program, such as K3b (Kde's CD burning program, which I love by the way). You can also use cdrdao or cdrecord if you prefer (K3b is a frontend of those programs, as well as others). The fact that CD-Writing works by default in all those distributions is a very large plus, since getting it to work on other systems (such as Gentoo) might seem a bit complicated at first.
Setting up the a CD writer in linux is quote odd when you first come to contact with it. In the current kernel what you have to do is enable SCSI emulation (I don't know why they chose that way, but that's how it is). In addition Gentoo uses devfs, which makes it a bit different from enabling it in other distributions. Details on Gentoo CD-Writer installation can be found further down in this document.

If you are about to install SuSE, Mandrake or Red Hat, and you wish to have a USB mouse installed, I recommend you have it plugged in during installation (even though all these distributions have a utility that checks for new hardware during bootup). That way you are sure to have both of them working at the same time when you start X.
If my memory serves me, both SuSE and Mandrake had both mice enabled at the same time, whilst Red Hat would only enable one at a time (selected during startup). I'm not a 100% about that though. This is quite a small issue though. A simple change of the XF86Config can make it so that both mice are initalized (and if those configuration items are in your config, you can plug in a mouse at any time and it will initalize immediatly). In the three distributions, SuSE, MD and RH USB is enabled in the kernel so all you have to do really is plug it in. In Gentoo, again, you have to make sure that you enable the proper kernel options. Details can be found further down.

All the systems I installed have one thing in common. They all have a packaging system (which is getting more and more common in all linux distributions). Although they all have packaging systems they differ in both quality, quantity of packages, and the system itself (the way it is used and the way it works).
The packaging system in SuSE, Mandrake and Red Hat are all graphical, and can be browsed through in threads. Gentoo has a text base package system called portage. SuSE and Mandrake have a very similar threaded system. It's a pretty good system, but the package selection is fairly limited, and often you have to manage the dependencies by yourself, while gentoo takes car of it for you, and that are the systems' main downside.
If you want to get any small programs which aren't very widely spread you have to download the tarballs and compile them by yourself, as well as getting dependencies by yourself. Red Hat has a package system based on RPM's, which I'm sure everybody's heard of and seen. You can get a lot of packages in the RPM format, but again, you have to make sure you have the correct dependencies, unless the packages are registered in the threaded packaging system.
Gentoo's text based packaging system is in my opinion far superior to all of the others'. It has way more packages and if your system requires any dependencies, it will get those too, and set them up properly. This is the MAIN reason I chose Gentoo over the other distributions. My second choice would have been Mandrake.

Choosing a distribution

Like I said previously, before I settled on Gentoo I tried out some other linux distributions. The first one I tried was the German SuSE. I am a big fan of the fact that most linux distributions are available for download. SuSE's way is to have the packages for installation available via ftp. Basically then you download an installation CD and then enter the ftp path to the files, so you must be connected to the internet while installing. I prefer downloading the ISO and burning a CD with the packages, but to each is own. This is their way to try to increse sales. They sell the system for roughly $40. I still wasn't sure which distro I was going to use, since I was still at the testing stage (I had my doubts about how well it would work on a laptop). The installation process was really simple (aside from the package selection, which took me a few moments to figure out properly, dependency wise). After the installation process had run its course (which took a while, since all the files installed had to be downloaded first) I was pretty impressed. The installation program detected all of my hardware and automatically installed it. After all, they did win an award for the most user-friendly install interface. I had some problems with the compiler though, and almost every compile I did crashed. However after a reinstall that got fixed. I still don't know what caused it.
However, SuSE wasn't for me, it went a bit overboard in the fields of graphics and do-it-for-you. I didn't use it for very long, but I'm sure that this suits those who are after the whole "windowsy" feeling, either this one or Red Hat are definately one way to go.

Another distribution that serves point and click users well is Mandrake.
I installed Mandrake 9.1 directly after SuSE, but unlike SuSE, Mandrake allows users to download the ISO's and install from them, which I like better.
Mandrake's installation was also very impressive, and detected all of my hardware, and after installation the hardware worked perfectly. The installation was very easy to navigate through, and I didn't encounter any real problems. After the installation, like with SuSE most of the laptop modules worked directly, without modifying the kernel one bit (which users who are just looking for a functional operating system without much hassle should be happy with).
Actually I was going to use Mandrake, and not experiment any further, until I had an unfortunate XFree server crash. I was changing my XF86Config to try to get TwinView working, but when I tried to start X this one time nothing came up on either the DFP nor the TV monitor. The computer plain out froze. After the reboot nothing seemed to work, no modules, the XFree, or even the editor of choice. What apparently happened was that the xserver dumped the error output into all files that were open and being accessed on the hard drive. This led to me experimenting further, and then coming back to Mandrake if I wouldn't find anything else.

Next I moved onto Red Hat Linux. The installation process of Red Hat was an absolute delight. Very very user-friendly and simple. The package selection of Red Hat is as impressive as in Mandrake and SuSE's selection. However I felt the same problem with Red Hat as with SuSE, that is, I felt they had gone a bit overboard. For instance, the bootup of Red Hat took way longer than the other distributions, since their basic install has a very large pool of services that run automatically during bootup (way too many in my opinion). In addition 'locale' didn't work as it should have. I quickly moved on. Suits those who are looking for a real Windows look-a-like though, the console is almost completely unneccesary for average desktop usage. Very similar to SuSE in many ways.

Two friends of mine had told me wonderful things about Gentoo. It's main advantage in my opinion is emerge, its package system. I have some experience with package systems, since I have Debian GNU/Linux on my router, and I fell in love with package systems there. In light of that Gentoo has a similar system, I decided to give it a chance, even though I wasn't very optimistic of getting everything to work in such an enviroment. It's definatly not the same user-friendly system as the others, but on the other hand it's highly customizable, and the system used to configure is very simple and forthcoming once you get the hang of it. In addition, it makes you a more advanced user.
The installation of Gentoo is somewhat different from the rest of the distributions though, since it has no actual "program" that serves as a frontend to all the actions needed to be performed to have a working operating system. It does have a very easy-to-comprehend-and-follow installation guide though, which basically takes you through everything that has to be done.
There are no packages on the installation CD aside from the kernel and the very base packages, the rest you get through emerge (and be sure to use a local mirror). So basically what made me settle on Gentoo (the largest factor anyway) was the superior package system and performance.
Now I have Gentoo installed, and even though I haven't been able to get everything to work I am very happy with it, and I'll later on tell you what works and what doesn't.

I hope this information will suffice as to help you choose an appropriate distribution, or at least light up the way a bit. The guide will continue assuming that your choice was Gentoo.

General preparation

I guess the first thing you need to ask yourself is whether or not you want to keep your existing Windows XP installation (I assume that Windows XP is installed, since it was the only choice Dell provided me with when I bought mine). If the answer to that question is yes, then you have to get yourself a program called Partition Magic from PowerQuest. Unfortunately this program isn't free, so you might either want to rethink keeping XP or try to find a similar program in linux. There is one program I've heard of that supports resizing without damaging the content, but it doesn't support NTFS, so you probably won't be able to use it. It's called 'parted'. What you need to do then (if you want to keep your existing Windows) is clear up as much free space as you can, by throwing away useless stuff, and then resize the partition to create free space for linux. (Backing up your most valuable data might be a good idea also, as things might go wrong if you take a couple of wrong steps).
Be sure to leave some free space on the Windows partition if you intend to use it, since you don't want to be resizing the partitions over and over again. It's supposed to be safe, but things can go wrong (plus if you have a journaling file system on the linux partition, e.g. ext3 or reiserfs, you will have to turn off journaling before resizing it).
After you've installed linux on your free space you will then be able to boot either the Windows or linux with a boot manager, such as 'lilo' or 'grub'.
Now you need to get yourself a Gentoo installation CD if you haven't already got one. This can be done via this mirror page. Note that these are not the only mirrors available, check your local mirrors if you know of any. I found two Gentoo mirrors locally, and neither of them was listed on that page.
I use version 1.4rc4 of Gentoo. Just follow the Gentoo installation guide, which you can find on the installation CD, or at http://www.gentoo.org/doc/en/gentoo-x86-install.xml

Configuring the kernel

Read the Gentoo installation guide carefully before configuring the kernel, since you have to have a few options enabled in order for your system to work!
When configuring a kernel, keep in mind that practice makes perfect. It took me several tries before even getting a bootable kernel. I was getting so fed up with this whole kernel business I almost gave up and moved back to Mandrake with its precompiled kernel :). I'm glad I didn't give up though, since I learned a few things. If you are having the same problem, make sure that ACPI is NOT enabled (This goes for kernel 2.4.20). I have read that ACPI has quite a large number of fixes in 2.4.21, but I haven't tried it out yet... I'll get to it. There is some sort of a bug in ACPI that makes Inspiron laptops (as well as some other computers) crap themselves while trying to boot the kernel.
A good thing to keep in mind while configuring the kernel; If you don't know what this is, and the help in the kernel configurator gets you nowhere closer, you probably don't need it, so say no (or at the very least install it as a module). This will help keep the kernel small, quick to boot, and your system non-bloated. The kernel helper is quite useful in helping you to determine if you need something or not. It usually declares, if unsure, say = x. If you the realize you need it, just go ahead and recompile.
It doesn't take long if you keep your config file, and don't 'make clean' or 'make mrproper'.
Remember that if you use the 3D accelerated nvidia driver off www.nvidia.com you'll have to recomile/reinstall it every time you reinstall the kernel.
Note that if you want to run the graphical kernel configurator you will need to emerge tcl and tk.
Make sure if you intend to copy and paste that you do not paste the comments with it, they are behind the kernel options in italic font type.
Alternatly you can simply install the nvidia drivers via portage, but they're not always up to date.
Here is my 2.4.20 kernel in whole.

Battery Life Monitor, APM and Inspiron 8k features

Ok, it's time to go into details. Let's start off with the Battery Life monitor, thus enabling APM.

You will find these settings in under General Setup in the graphical kernel configurator.

CD-Writer with write support

Like I mentioned previously linux's way of enabling a regular CD Writer is qutie odd. They choose SCSI emulation, so you need to enable a few things you'd think you wouldn't need beforehand.

The first 4 kernel options can be found under ATA/IDE/MFM/RLL support, then the suboption IDE, ATA and ATAPI Block devices, while the last four are to be found under SCSI support in the graphical configurator.

USB and touchpad

Here are the options required to have both USB and the touchpad enabled at the same time (this will include both the kernel configuration and the XFree configuration, even though this is the kernel section).

With this in your kernel, USB should work. You can also install some of these as a kernel module, but I feel it is better to have it in the kernel, since I use USB quite a lot. These options can be found under Input core support and USB support in the graphical kernel configurator.

Now what you need to have in the XF86Config in order for both to work at the same time caught me by surprise, because I'd never seen the option "SendCoreEvents" before.

With all this in the config both should work at the same time. This also means that you can now plug a USB mouse into the computer at any given time and it will work instantly.
Emulate3Buttons means that if you press the left and right mouse button on the touchpad at the same time it will function as mouse3 (which has function in some programs, e.g. mozilla).
ZAxisMapping is the mousewheel of the USB mouse. If you do not have a scrollwheel, you can leave it out of your config, although it doesn't really matter whether it is present or not.

XF86Config

If you are completely new to linux, you might be wondering what the hell a XF86Config is. XF86Config is, as you may have guessed a configuration file. So what is it a configuration file for? It's a configuration file for something called XFree, which is basically the core of a graphical window system. It's not a fully operational window system, because you need to use a window manager (such as KDE, Gnome, xfce, fvwm, wm, fluxbox, blackbox etc) to control the system. You have to stop thinking about the operating system in the windows sense. The operating system consists of many different programs designed for different purposes. Operating system is basically a system, and a bundle of programs to control it with.
You will need XF86Config in order for your window managing system to work, since XFree86 is the core of the graphical system.

Since I have already gone throught the touchpad and external mouse section of the config I will not go through it here. This will consist of three things; TV-Out with TwinView, which drivers to load, and general screen configuration. Here is my XF86Config as a whole.

You can change the option "TVStandard" to your needs, I live in Europe, thus I use PAL-B, but if you live in the united states, you're likely to have to use NTSC-M, or something in the vicinity of that. You can also change TVOutFormat from "SVIDEO" to "COMPOSITE" if that's what you intend to use (SVIDEO being a Super VHS cable, and COMPOSITE being an RCA cable).
The option MetaModes is quite nifty. It defines at what resolution one screen should be when the other is at resolutionX. In my case I use 800x600 on both monitors, but you can use 640x480 on one screen and 800x600 on the other, but it's quite flaky, and the start bar will only cover the part of the screen defined by the lower resolution, so I recommend the same values for both.
Some television sets can't handle 800x600 so you might have to change it to 640x480.

These values are naturally specifically for an Inspiron 8200 with a Dell UltraSharp monitor, whose default resolution is 1600x1200, so if you have another type of monitor you will need to change the resolution to that (might be 1400x1050 etc). Then you will need to use an alternate modeline with other values. I think they are in the XF86Configurator, 'xf86cfg'.

Note that I'm not entirely sure if loading these modules is optimal for the Inspiron hardware, but I use them with splendid results. I'm going to read up better on this though.

Multimedia buttons

If you want to make use of all the multimedia buttons on your laptop, you can do two things; either just use the four buttons, play, stop, forward and backward, in which case you can just bind them in gnome, which has a utility, or you can emerge i8kutils, which has a program called 'i8kbuttons' and with that you can bind the buttons to do anything you want. You might want to condsider using sawfish to have the buttons control some programs.

In conclusion

I think this about covers most of it, though I may have forgotten some things I had problems with, or simply didn't feel like writing them up, so don't hesitate to e-mail me and ask me for help if you have any problems, and I will do my best to assist you. Please note that this file will be updated as often as I have endurance for... :)

Known problems:

Links:

http://linux.siprell.com
Long after I had setup linux on my laptop I found this guide. My only regret is that I didn't find this before I set it up, since this is by far the best guide I've ever seen on any installation on any laptop. You should check it out.
http://www.linux-on-laptops.com
A list of many laptop guides that could be of use.
http://www.tuxmobil.org
TuxMobil - Linux on laptops, PDAs and mobile phones
Örn Arnarson, June 13 2003.
Please contact me if you have any questions, additions or corrections.