The Dell Latitude D600 was released on 3/12/2003. Despite its age, it can prove to be quite a capable machine. With a couple exceptions, Linux support for the D600 is outstanding. Most of its components work automatically with Arch.

−

−

= 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 [http://reviews.cnet.com/laptops/dell-latitude-d600/4505-3121_7-20906166.html reviews]. Despite being almost 5 years old this business laptop is perfectly capable of delivering a satisfying Linux experience.

−

−

== Introduction==

−

This is not a guide on how to install Arch (for help with that see the [http://www.archlinux.org/static/docs/arch-install-guide.txt 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 work"<sup>TM</sup>. 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.

−

−

== Documentation ==

−

As always the documentation for a Dell laptop is almost non-existant. The only documentation you are going to find for the [http://support.dell.com/support/downloads/driverslist.aspx?c=us&l=en&s=gen&ServiceTag=&SystemID=LAT_PNT_PM_D600&os=WW1&osl=en&catid=&impid= d600] is the [http://www.dell.com/downloads/us/products/latit/d600_spec.pdf spec sheet] and some useless [http://support.dell.com/support/edocs/systems/latd600/en/index.htm#online_documentation 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.

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 [http://support.dell.com/support/downloads/driverslist.aspx?c=us&l=en&s=gen&ServiceTag=&SystemID=LAT_PNT_PM_D600&os=WW1&osl=en&catid=&impid= executable] and install it.

−

= Post Installation =

+

== Wireless ==

+

The D600 comes with either an Intel Pro Wireless 2200 or a Broadcom BCM4306 rev 2. Both are supported natively.

−

==PC Speaker==

+

=== Intel PRO Wireless 2200 ===

−

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

+

As the driver is already included in the kernel the only thing that needs to be done is to install the firmware.

−

{{Command|# modprobe -r pcspkr|(No output means it was successful.)}}

+

# pacman -S ipw2200-fw

−

Now to make it permanent. Edit {{Filename|/etc/inputrc}}and add or uncomment the following:

+

=== Broadcom BCM4306 rev 2 ===

−

{{Box File|/etc/inputrc|

+

The b43legacy driver is included in the kernel, so as with the Intel card, we just need to get the firmware for it.

−

set bell-style none

−

}}

−

−

−

==Make a User==

−

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

−

−

# gpasswd -a USERNAME DESIRED_GROUP

−

−

==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 {{Filename|/etc/abs/abs.conf}}to your liking, and then setup the ABS tree via:

(Information taken shamelessly from [http://ubuntuforums.org/archive/index.php/t-328588.html 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 {{Filename|/include/asm/cpufeature.h}}

−

{| class="wikitable" style="text-align:left"

−

|-

−

! 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.

It would be bad if udev were to load the b43 driver, as it would conflict with b43legacy, so let's go ahead and blacklist it:

−

en_US.UTF-8 UTF-8

−

}}

+

# modprobe -r b43

+

# echo "blacklist b43" >> /etc/modprobe.d/modprobe.conf

−

and then run

+

Finally, load the b43legacy driver:

−

{{Command|locale-gen| Generating locales...

+

# modprobe b43legacy

−

en_US.UTF-8... done

−

Generation complete.}}

+

==Trackpad==

+

The trackpad and pointing stick are supported out-of-the-box, but to enable certain features, such as tap-to-click or edge scrolling, you'll need to write some Xorg configuration files.

−

== Wireless ==

+

Open your favorite text editor to the following file:

−

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.

−

# pacman -S ipw2200-fw

+

/etc/X11/xorg.conf.d/10-evdev.conf

−

Now add the entry ''ipw2200'' in the modules section of {{Filename|/etc/rc.conf}}, and add/change the line <tt>NET_PROFILES=(main)</tt>. Now make a <tt>main</tt> network-profile in {{Filename|/etc/network-profile|}}following the template in that directory. It will look something like the following.

+

Comment out every line in the section referring to touchpads. It should look like this when you're done:

−

{{Box File|/etc/network-profile/main|

+

#Section "InputClass"

−

<pre>

+

# Identifier "evdev touchpad catchall"

−

# Network Profile

+

# MatchIsTouchpad "on"

−

DESCRIPTION="Default Network Profile"

+

# MatchDevicePath "/dev/input/event*"

+

# Driver "evdev"

+

#EndSection

−

# Network Settings

+

Next, you'll want to create a configuration file for your trackpad. The following is a good starting point. You can add more Synaptics config options if you'd like.

−

INTERFACE=eth1

−

HOSTNAME=home

−

# Wireless Settings (optional)

+

{{hc|/etc/X11/xorg.conf.d/10-synaptics.conf|2=

−

ESSID=Router

+

Section "InputClass"

−

IWOPTS="dhcp $ESSID"

+

Driver "synaptics"

−

#WIFI_INTERFACE=wlan0 # use this if you have a special wireless interface

+

Identifier "touchpad catchall"

−

# that is linked to the real $INTERFACE

+

MatchDevicePath "/dev/input/event*"

−

WIFI_WAIT=2 # seconds to wait for the wireless card to

+

MatchIsTouchpad "on"

−

</pre>

+

Option "VertEdgeScroll" "on"

−

}}

+

Option "HorizEdgeScroll" "on"

+

Option "TapButton1" "1"

+

EndSection}}

−

+

Finally, restart X, and your trackpad should be fully functional!

−

If you run into the strange problem of your wireless interface switching between eth0 and eth1 at boot then you may want to use <tt>nameif</tt>. Simply put your network id followed by the mac address in /etc/mactab.

In addition, a small change to /etc/rc.d/network is necessary to run the nameif command prior to configuring the interfaces. The following excerpt from /etc/rc.d/network shows the lines that need to be added. This change simply checks for the existance of the /etc/mactab file and if it exists executes nameif to assign interface names.

−

−

stat_busy "Starting Network"

−

error=0

−

##### begin nameif change #####

−

# set names

−

if [ -n /etc/mactab ]; then

−

/sbin/nameif

−

fi

−

##### end nameif change #####

−

# bring up bridge interfaces

−

bridge_up

−

# bring up ethernet interfaces

−

−

If you are using a Broadcom wireless card you will probably have issues trying to get the Gnome or KDE network gui's to manage your card correctly. <tt>[http://wiki.archlinux.org/index.php/Wicd wicd]</tt> doesn't seem to have any problems managing this card, however.

Some BIOS revisions don't work properly with acpi-cpufreq, likely due to the driver being buggy or incorrect DSDT tables. If you're experiencing problems, flash your BIOS to A16 (the latest version.)

−

This is easily accomplished by installing <tt>[http://aur.archlinux.org/packages/uswsusp/uswsusp/ uswsusp]</tt> from AUR. Contrary to the ominous output from pacman no additional configuration is needed. Additionally, <tt>s2ram</tt> will probably output an error message saying that ''This machine can only suspend without framebuffer.'' but I have not encountered problems with resuming from suspend.

−

{{Command|# s2ram -i|This machine can be identified by:

+

==Resuming from sleep==

−

sys_vendor = "Dell Computer Corporation"

+

There is a serious problem with KMS in the radeon driver that prevents normal resume from sleep mode with this laptop. This will remain unfixed for the foreseeable future. (see: [https://bugzilla.redhat.com/show_bug.cgi?id=531825 Redhat Bugzilla #531825]) Setting {{ic|1=AGPMode=1}} on the kernel boot line will workaround the issue. Another workaround, which works with varying degrees of success, is to set a primary password in the BIOS.

−

sys_product = "Latitude D600 "

−

sys_version = ""

−

bios_version = "A16" }}

−

−

# s2ram -f

−

−

==Frame Buffer==

−

Todo

−

−

=Kernel=

−

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 [http://wiki.archlinux.org/index.php/Kernel_Compilation_with_ABS ABS], however, building a kernel manually is just as easy. Grab the source from [http://www.kernel.org/pub/linux/kernel/v2.6/ kernel.org] and extract it to {{Filename|/usr/src/linux|}}. Make a simlink (<tt>ln -s /usr/src/linux /usr/src/kernel-folder</tt>) and then <tt>make menuconfig</tt>.

−

−

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

−

−

/bin/sh: cmp: command not found

−

Inconsistent kallsyms data

−

Try setting CONFIG_KALLSYMS_EXTRA_PASS

−

make: *** [vmlinux] Error 1

−

−

If you need a starting point for your kernel, here is a <tt>[http://www.geocities.com/beissemj/config_2.6.23.12.txt .config]</tt>.

−

−

('''IMPORTANT:''' if you use this you will probably have to edit {{Filename|/etc/fstab|}}and {{Filename|grub.conf}}/{{Filename|menu.lst}}to use <tt>/dev/hdax</tt> and not <tt>/dev/sdax</tt> or else your kernel will not boot!!)

−

−

−

When the .config is to your liking do:

−

−

# make prepare

−

# make

−

# make modules_install;

−

# cp /usr/src/linux/arch/i386/boot/bzImage /boot/kernel_name

−

−

Before you reboot be sure to edit {{Filename|grub.conf}}/{{Filename|menu.lst}}.

'''''Aside:''''' The kernel line <tt>processor.max_cstate=2</tt> 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 <tt>usb-uhci</tt> is partially related to this problem. Disabling this is an option but it will disables USB support...

−

−

=Xorg=

−

With the constant stream of updates, and TONS of outdated documentation on the web, Xorg can be a pain to configure.

==Video Card==

==Video Card==

−

'''Use the open source "xf86-video-ati" radeon driver.''' ATI dropped support for the Radeon (RV250) Mobility FireGL 9000 after catalyst driver version 8.28.8. The [http://aur.archlinux.org/packages.php?do_Details=1&ID=8286 binary] and the [http://aur.archlinux.org/packages.php?do_Details=1&ID=8287 userspace tools] are available in the AUR, however they ''WILL NOT'' load with Xorg >= 7.2.

+

'''Use the open source "xf86-video-ati" radeon driver.''' ATI dropped support for the Radeon (RV250) Mobility FireGL 9000 after catalyst driver version 8.28.8.

−

−

'''Note:''' Don't specify <tt>AGPFastWrite</tt> or <tt>AccelMethod</tt> in the xorg.conf <tt>Device</tt> section as it will cause X not to start.

−

−

==Fonts==

−

To make your fonts look better you can follow the wiki directions [http://wiki.archlinux.org/index.php/Fonts#Beautify_Fonts_for_LCD_in_X here] and/or [http://wiki.archlinux.org/index.php/Xorg_Font_Configuration here] and install cairo-lcd and libxft-lcd. Personally I don't think those packages look nearly as good as Fedora's, so I use those. Get <tt>rpmextract</tt> from pacman and then download the [http://www.bevenhall.se/jim/fedora-cleartype/ packages]. Extract the .so files and copy them into <tt>/usr/lib</tt>. ('''IMPORTANT!''' Copying over the old files may crash your current X-session, so it's best to do this from a console.)

−

−

==Dual Monitors==

−

Setting up dual monitors used to be an insanely frustrating ordeal because you would have to edit xorg.conf and then start/test/reset X. Luckily RandR fixes this. To summarize from [http://wiki.debian.org/XStrikeForce/HowToRandR12 here] and [http://intellinuxgraphics.org/dualhead.html here] "RandR 1.2 provides automatic discovery of modes (resolutions, refresh rates, etc.) coupled with the ability to configure outputs dynamically (resize, rotate, move, etc.)." The only thing required by the user is to specify a virtual display area, and run the appropriate <tt>xrandr</tt> command. (For a nice tutorial see [http://ubuntuforums.org/showthread.php?t=581947 here].)

−

−

'''Notes'''

−

#Xinerama is deprecated and will cause X to segfault. This is a known regression by the X developers and they have no intention of fixing it as Xinerama was basically a hack anyways.

−

#MergedFB has now been completely replaced by RandR.

−

−

This particular setup uses an external 20" LCD running at 1680x1050 and is connected to a docking station via a DVI cable. Now, it would be useful if the external monitor was auto detected and configured whenever we started the computer. Now because the computer is a laptop we also don't want to try and configure the screen if it isn't connected. The following bash script will do just that.

−

<pre>

−

#!/bin/bash

−

monitor=`xrandr | grep -i DVI | cut -d" " -f2`

−

if [ $monitor = "connected" ]; then

−

xrandr --output DVI-0 --right-of LVDS --mode 1680x1050

−

else

−

xrandr --output DVI-0 --off

−

fi

−

</pre>

−

−

==Mice==

−

Getting both the touchpad and an external mouse to play nicely together can be tricky. If you use the <tt>evdev</tt> driver then you don't have to specify the ButtonMapping, however, I've had better luck using the regular <tt>mouse</tt> driver. This particular setup specifies a Logitech MX400 USB mouse as the core pointer and Alps touchpad as a secondary device. (For more complete instructions see [http://wiki.archlinux.org/index.php/Get_All_Mouse_Buttons_Working here].)

An Epson Stylus Color C86 is used in this setup. It uses <tt>gutenprint</tt> (formerly <tt>gimp-print</tt>) for it's driver and can be setup via Firefox at http://localhost:631.

−

−

−

=Authors=

+

The [https://www.archlinux.org/packages/extra/i686/xf86-video-ati/ xf86-video-ati package] is available in the Extra repository.

−

mbeisser - (Jan '08) Initial version completed.

Revision as of 21:55, 27 July 2013

The Dell Latitude D600 was released on 3/12/2003. Despite its age, it can prove to be quite a capable machine. With a couple exceptions, Linux support for the D600 is outstanding. Most of its components work automatically with Arch.

CPU Scaling

Some BIOS revisions don't work properly with acpi-cpufreq, likely due to the driver being buggy or incorrect DSDT tables. If you're experiencing problems, flash your BIOS to A16 (the latest version.)

Resuming from sleep

There is a serious problem with KMS in the radeon driver that prevents normal resume from sleep mode with this laptop. This will remain unfixed for the foreseeable future. (see: Redhat Bugzilla #531825) Setting AGPMode=1 on the kernel boot line will workaround the issue. Another workaround, which works with varying degrees of success, is to set a primary password in the BIOS.

Video Card

Use the open source "xf86-video-ati" radeon driver. ATI dropped support for the Radeon (RV250) Mobility FireGL 9000 after catalyst driver version 8.28.8.