GNU/Linux on laptops

Saturday, 13 August 2005, michuk

Although most modern laptops nowadays tend to scare people off with an ugly “Designed for Windows XP” mark, it does not mean that alternative operating systems, like GNU/Linux cannot be installed and function equally well. In this article I would like to describe a few common issues with Linux on laptops and maybe bust a few myths about using GNU/Linux on mobile computers.

Sample Linux Laptop

Author: Borys Musielak

Which distro is good for your laptop?

First of all, my goal is not to start a distro war. Linux is Linux – you can adjust it to your goals no matter which is your free distribution of choice (I am not going to cover the commercial systems not available for free download – they have their own marketing and I don’t get paid to advertise their products). The adjustment process can be however time-consuming and not everyone is willing to spend hours to get a stable and working OS on their mobile machines. Fortunately there are a few Linux distros for non-geeks out there, which are prepared to work with mobile computers out of the box.

One of the popular distros which are known for good laptop support is openSUSE. The support for mobile devices has been improved a lot in the recent releases, especially when it comes to wireless cards support, hibernation, energy saving, and popular notebook ports like FireWire, IRDa and PCMCIA. Ubuntu Linux is another strong player on the mobile computers market. It is also one of the top Linux distros in terms of out-of-the box WiFi support. Some other laptop-friendly distros are: Mandriva, Aurox and Fedora Core. Of course it does not mean that you cannot get the most of your laptop using Debian, Slackware, Gentoo or any other “hardcore” distro. It will be just a little more painful, especially if you’re a newbie Linux user [the target of this article :) ] – most of the installation and configuration tasks needs to be done manually.

Which laptops are the most Linux-compatible?

There are a few companies that manufacture special Linux certified laptops, but the majority of the market doesn’t and we have to live with it. The good news is that GNU/Linux is going to work on the majority of currently popular models. But, if you want to get the most out of your laptop, you need to be careful when selecting a computer to purchase.

Historically, the Linux-friendly brands have always been Acer, IBM (now Lenovo) or (recent history only) HP. Others like Sony, still do not seem to notice the huge potential offered by GNU/Linux. This is however generalizing. In order to be sure that your newly purchased notebook works fine under GNU/Linux, you need to check all included chipsets for Linux compatibility.

The key things you should look at are:

  • Wireless card – it’s very important to check whether the model is supported in kernel
  • Graphics card – Intel has the best support under GNU/Linux (open source drivers including 3D), NVIDIA and ATI still struglle to get open, but some of the models are well supported with either FOSS or proprtietary drivers – this needs to be checked
  • Sound card – it’s very hard to find a sound card that is not supported at all. Still, if you are going to buy a fancy card, it’s recommended to check whether all the functions are supported
  • Mainboard – situation similar to sound cards (often integrated into the mainboard) – some fancy features may (rarely) not be supported. Especially check whether software suspend does not cause problems due to broken ACPI module
  • Processor – all major processors (x86, amd64, PowerPC) are well supported under GNU/Linux. Remember that you need different install CD for each processor architecture!

Cutting the long story short – it is always good to find out whether or not all the features offered by some specific notebook are well supported under Linux. Buying a computer with Linux system preinstalled is also a good option.

Common hardware issues

Overall, the key problem is still connected with hardware compatibility and availability of free (or even binary) drivers. The situation in this area has been changing rapidly recently, but the sad truth is that still not all the features of the modern laptops are supported equally well by GNU/Linux and the Default OS.

The most typical problems with Linux on laptops are:

  • Wireless cards and modems support
  • Software suspend support
  • Proper 3D-acceleration
  • Full touchpad support with all the additional multimedia keys
  • Problems with energy saving (ACPI, APM) and CPU speed management

Modern distros tend to cope with those issues quite well and usually they are not even issues. And even if they don’t, most of these problems can be solved manually. Still, you have been warned – things can go wrong sometimes and you need to know how to deal with it.

What can you do when Linux installation fails?

Let’s assume we have a properly burned Linux installation CD inserted into our brand new notebook drive. We see some startup messages and suddenly the installation crashes for an unknown reason producing a kernel panic error or an infinite loop of messages. Well, first of all, we shall not panic :) The problem is very likely to be solvable.
Although there may be multiple reasons for such behavior (just as many reasons as many different hardware configurations exist), it is very unlikely that a Linux system cannot be installed and used on such notebook. Most of the issues can be resolved by setting appropriate kernel boot params (aka cheat codes).

Kernel boot parameters (cheat codes)

The typical reason for a system crash during the installation process is that the Linux kernel version provided by the installer is not compatible with your notebook hardware. Passing proper parameters to kernel before the installation process starts can be a good way of solving these problems. Params are passed in order to turn on and off the default kernel settings (which usually results in loading or not loading the corresponding kernel modules).

Here is a lit of the most useful params for laptop users:

  • acpi=off – deactivates ACPI support
  • apm=off – deactivates APM (older way of handling power management) support
  • nodma – deactivates DMA (direct memory access) for your disks – this may make the installation process a lot slower, but is useful if your chipset is not well supported by the default kernel
  • noapic – deactivates APIC (Advanced Programmable Interrupt Controler) support
  • pci=off – removed PCI device support
  • nomce – disables Machine Check Exception, some processors will be able to check for inconsistencies or faults, and stop booting to protect data. If you use this flag, make sure everything is working first (thanks to “eg” for clarification)
  • nofb – option used to disable frame buffers on some video cards/chipsets – if the graphical part of the installer won’t come up, reboot and add nofb to the command line (thanks to Maz)

If the above cheat codes do not work for you, take a look at the complete list of Knoppix cheat codes. It may be that your specific hardware requires special options.

How to pass those params? It’s very easy. For instance, if you want to start the installer without DMS and APM support, but at the same time you need to force ACPI support, type at the boot prompt something like:

linux acpi=on apm=off nodma

Warning: linux – is in this example the name of the kernel image file of the installer. In different distros the names vary, for example in Yoper 2.1 we have a choice of two kernels: yos and novesa and in this case our command would look something like: yos acpi=on apm=off nodma. Note: The kernel image name is one of the first things which appear during the installation bootup process so it is usually easy to notice.

Wireless connection

All of the modern laptops are equipped with a WiFi adapter. Only recently, forcing Linux to cooperate with standard wireless cards (usually “compatible” only with the leading OS) was a non-trivial (or even impossible) task. During last few years, the situation have changed dramatically due to ndiswrapper – the universal WiFi card driver which enables to emulate Windows drivers under GNU/Linux.

What is ndiswrapper?

In short, it is a mechanism of wrapping the incompatible Windows drivers in one standard Linux driver. Ndiswrapper uses the original drivers’ microcode and translates the communication so that the Linux kernel can understand it. Ndiswrapper is already available by default in most of the modern Linux systems, including openSUSE and Ubuntu. Probably in the nearest future it will become some kind of “standard” in the Linux world, giving Richard Stallman a huge headache. Still, the users benefit the most since they can now use their tainted WiFi cards in GNU/Linux.

Native drivers

Of course, there are native Linux drivers for many cards as well. These are usually the drivers provided or sponsored by the producer, or developed by the OSS programmers basing on the producer’s specifications. Intel is one of the pioneers in developing (or leading the development of) open-source drivers for Linux. Setting those cards up should not be an issue, since the OSS drivers are usually provided inn the installation CD and are detected automatically by the Linux installer.


The times when Linux had been a big issue on mobile computers have fortunately passed. There are still problems in special cases, but in general, Linux works on laptops equally well as the Default OS. This said, remember to always check the hardware compatibility before purchasing a laptop. Buying hardware from Linux-friendly vendors is the best way to force others to support Linux in the future.

Useful links:

External articles on Linux on laptops:

Find the best laptops for your Linux distibution with Laptop Logic’s comprehensive notebook reviews.