It's a fact. Linux doesn't yet have all the hardware support of other, more common, operating systems. Until the support is fully there, it's in your best interest to find out if the laptop you want will work under Linux, and to what level it works. It's best if you find out what level of support your laptop has, before you buy it, otherwise you may end up with a paperweight (read: windows machine) on your hands.
They say that word of mouth is the best advertising, and 'they' are probably right. Ask your mates if they've had any experience with a certain laptop, or the hardware that it contains. You can learn a surprising amount from your peers.
The next best way is to go to the Linux Laptop Page, and see if the brand and model you want is listed is there. The LLP is where users have posted their experiences with Linux on their own model laptops. I may end up posting this article there. Even if your proposed laptop isn't listed there, you may find something with similar hardware to compare to yours.
Never installed Linux before? A laptop may not be the ideal place to start, but since laptop support is currently better than it's ever been, you may have some joy. A good place to start choosing a Linux distribution is the Linux.com Distributions Page. They should set you on the right path. My personal recommendations are Linux Mandrake and Debian GNU/Linux. I've tried to make this document as distribution-neutral as possible, but since I am more familiar with Debian, there will be some tips geared for that distribution. I find that Mandrake has more up-to-date packages on the CD, but the installation is quite large. On the other hand, a Debian CD may have older packages, but the installation size is quite small. Debian is very easy to update from the Internet, however. There are pros and cons to each distribution, read about the different ones and decide which is right for you.
Get into the BIOS of your laptop and change the boot order. If you have a reasonably new machine, you should be able to boot directly from the installation CD-ROM. Boot the machine, and the installation routine should start up. Depending on distro, you may see a text based setup screen (e.g., Debian), or a full graphical display (e.g., Mandrake). Most setup routines (at time of writing) don't always set up every single device in your computer, so regardless which distro you are using, it is important to know what hardware is in your laptop.
The install routine may ask you to choose your keyboard, mouse and video card. Be sure to have this information on hand. Hopefully future installers will detect all these things, but for now, they may not. The only tricky part of an installation you will have is partitioning the hard drive. Presuming that you don't want any other operating systems on there, you can simply delete them using the tools provided. I then recommend creating a single 10 meg partition at the start of the disk, and assigning it the mount point of /boot. This is to make sure that LILO (the LInux LOader) is able to boot the system if you have a large hard drive. Add a single partition for swap space, making it at least as large as the amount of physical RAM in your laptop. Assign the remainder of the empty space to the root mount point, known simply as / .
Most modern distros (e.g., Mandrake) are ready to go after the installation routine is finished. The current release of Debian, on the other hand, requires a little more updating. This rest of step three is for Debian users only.
The current release of Debian doesn't come with much in the way of Desktop Environments. We are about to fix this. Open the /etc/apt/sources.list file with your favourite editor. Find the line that says
deb ftp://your.mirror.here/pub/debian stable main contrib non-free
and change one word - 'stable' - to read 'unstable', so it looks like this:
deb ftp://your.mirror.here/pub/debian unstable main contrib non-free
While connected to the Internet, type the following command as the root user:
apt-get update; apt-get install task-kde kdm
Viola, you now have a nice, usable graphical interface and login screen.
While most distros come with a kernel with support for most hardware devices built in, using a generic kernel isn't always the best way to go. For example, the kernels that Debian provide come with Advanced Power Management support disabled, so suspending your laptop isn't possible. Most distros also come with kernels with SCSI support, which is something most laptops don't need. We want to make sure that the kernel for our laptop contains only the drivers we need, so it's best to compile it yourself. If you've never done this before, you might want to get the help of a more experienced Linux user at this point.
Go here (or your nearest mirror) to download the source code. The latest version (2.4.2 as of this article) contains PCMCIA, USB, Toshiba-specific support, and much more. It's just a matter of compiling in what you need. Here is a short list of things you may want to compile in:
Yes, this was a rather simplistic explanation of a kernel compile, there are far more in-depth instructions usually found in /path-to-linux-src/Documentation/. After configuring and installing, reboot and enjoy!
GNU/Linux has progressed to a point where installation on a laptop computer is now viable. If you intend to purchase a laptop to install Linux on, it's best to check out a few different models for their varying degrees of Linux support. Take note of the onboard hardware, and don't give up when something doesn't work first time. If I can be of further assistance, or if you would like clarification of anything contained in this article, I can be contacted via email here*.