Dell Latitude D600

From ArchWiki
Revision as of 04:57, 5 January 2008 by Beissemj (talk | contribs) (Video Card)
Jump to: navigation, search

Installing Arch on a Dell Latitude D600

The d600 was a released by Dell on 3/12/03. At the time of its release it was met with great reviews. Despite being almost 5 years old this business laptop is perfectly capable of delivering a satisfying Linux experience.


This is not a guide on how to install Arch (for help with that see the installation guide), but rather an attempt to cover the steps of how to take full advantage of the laptop's hardware. Despite being an Arch-wiki page, everything explained here should apply to other Linux distributions as well.

Getting most of the hardware to work correctly under Linux, is not overly difficult (in fact these days most things are auto-detected, and "just kinda work"TM. Keep in mind I am by no means an expert of hardware in Linux so you may find better solutions than the ones presented here. If you do please edit this guide so that other people may benefit as well.


As always the documentation for a Dell laptop is almost non-existant. The only documentation you are going to find for the d600 is the spec sheet and some useless pdf files (although the service guide can be useful if you need to take the laptop apart for some reason). So with that being said the only way to find out useful information is to inspect each individual hardware component.


Here's the output of Template:Box Command


  • Intel Pentium M Processor
  • ATI Radeon 9000 (RV250 Mobility FireGL 9000 4x AGP)
  • Intel 2200 Pro/Wireless LAN card OR
    • Broadcom 54g Wireless card
  • Broadcom BCM570 Ethernet card
  • Integrated Intel 82801 (intel8x0) sound card
  • PCMCIA card port
  • Alps touchpad
  • Function/Audio keys
  • CD/RW, DVD+/-RW
  • IRDA


  • Cpu frequency scaling
  • Video Card: including framebuffer (open source radeon driver)
  • Intel 2200 Pro/Wireless Lan card (ipw2200 driver)
    • Broadcom 54g Wireless card (ndiswrapper with windows driver bcmwl5 or native kernel module)
  • Soundcard (including mixing with alsa)
  • Function/audio keys
  • Touchpad
  • CD/RW, DVD+/-RW
  • Ethernet Card
  • Hardware monitoring (i8k kernel module)


  • IRDA
  • Modem (not planning on testing)
  • ACPI Sleep States


Bios Update

Now before you delete the Windows partition, you'll want to update the bios to the newest version (rev. A16 as of this writing), to avoid any potential non-OS hardware related problems. Grab the executable and install it.

Post Installation

PC Speaker

The first thing to do is to disable that annoying PC speaker, for our current session. Template:Box Command

Now to make it permanent. Edit Template:Filenameand add or uncomment the following: Template:Box File

Make a User

If you forgot to make a user now is the time to do so. Arch comes equipped with adduser which is a nice command line interface for useradd. So use that. When prompted for Initial group you should most likely take the default of users. For Additional groups lp,wheel,network,video,audio,optical,floppy,storage,camera will probably cover most everything. You can always add a user to a group later via:

Template:Box Command

Compiling from Source

Chances are you'll probably want to setup ABS so that you can use the AUR. (For more complete instructions see the appropriate wikis.) Edit Template:Filenameto your liking, and then setup the ABS tree via:

Template:Box Command

Once the tree is built it's a good idea to create a build directory, so

Template:Box Command

Now whenever you want to build a package put the PKGBUILD in the Template:Filenamefolder and build it by

Template:Box Command

Now that we have our build environment setup, the next step is to configure GCC to optimize our package builds. To do this lets take a look at the CPU.

Template:Box Command

(Information taken shamelessly from here). Most of the information isn't critical although some of it is interesting, so here it is for the curious. (If you are going to do a lot of your own package building and want to know more about optimization, then you may be interested in Template:Filename

processor Linux's denotation of what processor is being used.
vendorID The vendor of your processor. Intel/AMD/Cyrix/etc.
CPU family Indexed indication of your processor's architecture.
model  ???
model name English language string specifying what CPU your computer has.
stepping CPU revision number (more or less).
cpu MHz Speed of CPU.
cache size Amount of cache your CPU has.
*_bug Tells whether or not your CPU is susceptible to some well known processor bugs.
fpu Whether your processor has a math co-processor (floating point unit).
fpu_exception Whether your processor follows the IEEE specifications for handling floating point exceptions.
cpuid level Allows programs to get specifications from the CPU.
wp  ???
bogomips A Linux approximation of your processor speed.

Now that we know about our processor it's time to setup Template:Filename. An example file using safe Cflags with optimization set for a pentium M is listed below. Template:Box File


A common error is to not set a locale which leads to pacman complaining with "warning: current locale is invalid; using default "C" locale". So uncomment your locale from

Template:Box File

and then run

Template:Box Command


The D600 comes with either an Intel Pro Wireless 2200 or a Broadcom BCM43xx. The BCM43xx can be quite fickle under Linux, however the Intel Pro Wireless works flawlessly and is trivial to install. As the driver is already included in the kernel the only thing that needs to be done is to install the firmware.

Template:Box Command

Now add the entry ipw2200 in the modules section of Template:Filename, and add/change the line NET_PROFILES=(main). Now make a main network-profile in Template:Filenamefollowing the template in that directory. It will look something like the following.

Template:Box File

CPU Scaling

Frame Buffer


The pre-compiled Arch kernel certainly works, however, it has a lot of bloat so you'll probably want to compile your own. It's possible to make a custom kernel via ABS, however, building a kernel manually is much easier. Grab the source from and extract it to Template:Filename. Make a simlink (ln -s /usr/src/linux /usr/src/kernel-folder) and then make menuconfig.

(NOTE: You probably need to install make (for obvious reasons) and diffutils or you will probably get the following error message.)

/bin/sh: cmp: command not found
Inconsistent kallsyms data
make: *** [vmlinux] Error 1

If you need a starting point for your kernel a sample .config can be found here.

(IMPORTANT: if you use this you will probably have to edit Template:Filenameand Template:Filenameto use /dev/hdax and not /dev/sdax or else your kernel will not boot!!)

When the .config is to your liking do:

Template:Box Command

Before you reboot be sure to edit Template:Filename.

Template:Box File

Aside: The kernel line processor.max_cstate=2 disables the CPU from going into the 2 higher power saving states. While this causes the battery to use several hundred more mW of power it also disables the annoying CPU wine that is usually very noticeable. (This problem also exists in Windows.) It seems that the kernel module usb-uhci is partially related to this problem. Disabling this is an option but it will disables USB support...


Video Card

Use the open source radeon driver. ATI dropped support for the Radeon (RV250) Mobility FireGL 9000 after catalyst driver version 8.28.8. The binary and the userspace tools are available in the AUR, however they WILL NOT load with Xorg >= 7.2.


Dual Monitors



Config Files