Debian GNU/Linux on Laptops
I've been using Linux on laptop computers for some time. Those
that I had to live with, over the years, were (most recent first):
Dell Latitude D800
Config: Pentium-M/1600, WUXGA, 1GB RAM, 80GB HD (Hitachi
IC25N080ATMR04-0), Dell TrueMobile 1300 MiniPCI, Bluetooth.
Summary: a heavyweight "desktop
replacement-type" laptop, with a superb display, which I
couldn't resist even though I knew I'd have trouble
getting it to operate properly with Linux. Here are some
notes on how it's turning out (I'm assuming you already know
how to get Linux up and running on the box, this is mostly
about some of the "fine points"...)
Current status (2003.11.15): I've finally
achieved acceptable stability (like over a week "uptime"
with about a half dozen daily suspend-resume cycles along
the way, interrupted only because I did something foolish
;-) with kernel 2.4.22 and the following patches:
The kernel is configured with the following features:
No HIMEM support: I had trouble a while back with swsusp
and HIMEM so I turned it off; OK, so I waste about 128MB
of RAM (out of 1GB) but it works...
Kernel PCMCIA, but I stay away from using it as it (or the
specific modules I used) seems to interact badly with
My current kernel config is here.
I'm using the following off-kernel modules:
ALSA sound drivers (Debian package). These survive
suspend/resume cycles very well.
Broadcom's bcm5700 driver (Debian package) for the onboard
Linuxant's driverloader (version 1.41 as of right now) for
the MiniPCI TrueMobile 1300 WiFi (802.11g) card. It's not
a free driver (in either sense) but it works and is
relatively inexpensive ($19.95). You need the
Dell-supplied windows driver for this to do anything
I'm using a stripped-down acpid suspend script,
which seems to work for my D800. This version is neither
well commented nor guaranteed to work anywhere
else. Caveat emptor.
(More details on specific aspects follow)
To me, the single most important usability feature on a
laptop, the suspend-resume functionality: the Latitude
D-series laptops don't support APM anymore, so I had to
look for information on using the D800 with ACPI. The
links below provide pointers to information on how to get
a bit further.
Mike Hardy's page on Linux
2.4 on the Latitude D800, a very good starting
point, although I find his method of "suspending"
doesn't really work for me, as the laptop still gets
for the D800. Not for the faint of heart, but very
useful stuff in there...
Martin List-Petersen's page on Linux
on the Latitude D600, which has similar
information but for the D600. It can be useful.
Bert Hubert's page on Getting Linux 2.5
to work on a Dell Latitude D800. A bit old but
Suspend project for Linux 2.4, on SourceForge,
currently being developed by Nigel Cunningham. I
reccomend this highly for anyone trying to get
suspend/resume to work. It's a bit slow
(suspend-to-disk) but it's getting there on the
The ACPI on
Linux project, on SourceForge. Absolutely
The TuxMobil site
also provides several interesting pointers.
The wireless MiniPCI card (Dell TrueMobile 1300) which
doesn't work at all under Linux and apparently won't
anytime soon... Getting a 802.11b MiniPCI card seems to
be the way to go; there are reports that the Dell
TrueMobile 1150 works; I got it to work with what I think
is an identical card, the one supplied by Toshiba, for
instance in the Portégé T3500 tablet PC.
Update 2003.10.23: The Broadcom chipset
used in the TM1300 seems to be supported by the Linuxant driver
loader. This driver is not free (in both senses of the
word) but I think it will be very welcome, once it
supports 802.11b as well. It requires a Windoze
installation (or setup kit) to operate, as it's a
wrapper on top of the manufacturer-supplied Windows
drivers, which is kind of a neat idea, and it
Update 2003.10.27: The TM1300
can work with 802.11b WiFi networks, after all!
All that's needed is that it be configured in "automatic
bitrate" mode, i.e. the following command must be
iwconfig eth1 rate auto
- USING AN EXTERNAL MONITOR/PROJECTOR (2003.11.08):
The NVidia GeForce 4Go 4200 that equips this laptop (and a
few other Latitudes or Inspirons, I think) has only so-so
support on Linux. There are two X drivers for it:
The regular XFree86 nv
open-source driver module. I've been using this
mostly as it interacts nicely with swsusp,
which is what I need the most. I've been using the
prerelease server and modules which can be found here.
Just grab XFree86 and nv_drv.o and
use them to replace the ones in your XFree86
NVidia's driver: this closed-source driver can be
I've been using it for "special occasions" (see below)
because it can't suspend: it's not for regular use as
I can't keep my login sessions for long with it.
There are a few things that it does well,
like DPMS, OpenGL and... dealing with an external
monitor (for presentations, using a projector for
After getting tired of fooling around with Xinerama (nv)
and TwinView (nvidia) which may be very nice for
desktops but don't really fit the bill with dynamic
setups like this one, the only way I could find that
makes effective use of the external monitor without
screwing up the main LCD (1920x1200 is nowhere near
what's available for projectors...) is by using a
mixed setup, consisting of the
nv driver for regular use (works across
suspend/resumes) and the nvidia driver for
When I need to hook up a projector, I begin by plugging
in the projector so the NVidia chip knows there's
something out there and then I start another X
server (e.g. :1 on another vt), this time with
the nvidia driver; I always terminate the
second X server before suspending. Also, I stay
away from the Fn-F8 (CRT/LCD) key, as it's a
cause of major grief (compulsive reboots...)
I'm using gdm (via the gdmflexiserver
command) to start X on the outside display. These are
my configuration files:
Just a hint: do not create another Gnome
session for the same user on the second display; use KDE
or something else for this purpose. As usual, YMMV.
- Kernel 2.6:
I'm currently experimenting with two approaches: kernel
2.4.22 + swsusp and kernel 2.6.0-test* (up to test7).
Kernel 2.4 is what I use, but I've been checking out 2.6
kernels every now and then.
The 2.6.0-test* kernels hold a lot of
promise as they allow for suspend-to-RAM to work. I
haven't yet gotten it to work enough to actually use
this kernel, but it does suspend and resume (very
fast!), although I get a completely blank screen after
the resume. The keyboard is still there and,
apparently, other things besides the display work (I
managed to blind-type a few commands that suggest this.)
Some people on the linux-latitude-d800 list seem to
have 2.6 kernels working well, except for the
suspend/resume thing, so it remains a curiosity for me.
Dell Latitude C600
Configuration used: Pentium III/1000, SXGA+
Notes for the Latitude C600: I don't use this laptop
anymore, but it's very easy to get just about everything
working, except maybe for OpenGL... but then I never tried
Dell Latitude CPx H500GT
Configuration used: Pentium III/500, XGA
Notes for the Latitude CPx: I don't use this laptop anymore.
Yet another machine that was no trouble at all.
Digital HiNote Ultra 2000
Configuration used: Pentium MMX/166, XGA
Notes for the HiNote Ultra 2000: it's still around, even
though DEC has sort of gone under (sigh). Not a fast
machine, these days, it did have a very nice display for its
Digital HiNote Ultra 475CT
Configuration used: 486/75, VGA
Notes for the HiNote 475CT: my only "ultraportable" ever.
Nice machine, but quite unusable now.
I have notes for effectively using (or trying to use) Linux on
some of these laptops; just follow the link associated with the
one you're interested in, you might get lucky... If you come
across one of these, you may contact me if you like.
I ran all of these laptops under Debian GNU/Linux but, as the
issues are mostly kernel-related, whatever information you may
find should apply, regardless of distribution.
These days (2004 onward) I've been using Mac laptops, which dont
have ACPI or suspend-to-RAM issues. Linux still lives close by,
albeit inside a virtual machine.