Difference between revisions of "Dell Latitude D600"

From ArchWiki
Jump to: navigation, search
(use new templates, see Help:Style)
m (Resuming from sleep)
(9 intermediate revisions by 2 users not shown)
Line 1: Line 1:
[[Category:Dell (English)]]
+
[[Category:Dell]]
The Dell Latitude D600 was released 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.
+
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.
 
+
== 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.
+
  
 
= Hardware =
 
= Hardware =
 
===Working===
 
===Working===
* Pentium M, with CPU frequency scaling  
+
* Intel Pentium-M, with CPU frequency scaling  
* ATI Mobility Radeon 9000, including framebuffer (open source radeon driver)
+
* ATI Mobility Radeon 9000 (radeon driver)
 
* Wireless card:
 
* Wireless card:
 
** Intel 2200 Pro/Wireless Lan card (ipw2200 driver)
 
** Intel 2200 Pro/Wireless Lan card (ipw2200 driver)
 
** Broadcom BCM4306 rev2 Wireless card (b43legacy driver)
 
** Broadcom BCM4306 rev2 Wireless card (b43legacy driver)
* Sigmatel STAC9750 audio (including mixing with alsa)
+
* Sigmatel STAC9750 AC'97 audio
* Function/audio keys
+
* Fn key combos and audio buttons
* Alps Touchpad and pointing stick (synaptics driver)
+
* Alps DualPoint trackpad and pointing stick (synaptics driver)
 
* O2Media PCMCIA slot
 
* O2Media PCMCIA slot
 
* CD/RW, DVD+/-RW
 
* CD/RW, DVD+/-RW
* Broadcom BCM5702 ethernet card
+
* Broadcom BCM5702 gigabit ethernet (tg3 driver)
 
* Hardware monitoring (i8k kernel module, hddtemp)
 
* Hardware monitoring (i8k kernel module, hddtemp)
 +
* Sleep and resume (see Resuming from sleep section)
  
 
===Untested===
 
===Untested===
 
* IRDA
 
* IRDA
* Modem
+
* Conexant V.56 modem (probably works)
* ACPI Sleep States
+
  
 
= Post-Installation =
 
= Post-Installation =
 +
 
== Wireless ==
 
== Wireless ==
The D600 comes with either an Intel Pro Wireless 2200 or a Broadcom BCM4306 rev 2. Both cards work flawlessly with their ipw2200 or b43legacy drivers, respectively.  
+
The D600 comes with either an Intel Pro Wireless 2200 or a Broadcom BCM4306 rev 2. Both are supported natively.
  
 
=== Intel PRO Wireless 2200 ===
 
=== Intel PRO Wireless 2200 ===
Line 38: Line 31:
  
 
  # pacman -S ipw2200-fw
 
  # pacman -S ipw2200-fw
 
Now add the entry ''ipw2200'' in the modules section of {{ic|/etc/rc.conf}}, and add/change the line {{ic|1=NET_PROFILES=(main)}}. Now make a {{ic|main}} network-profile in {{ic|/etc/network-profile}}following the template in that directory.  It will look something like the following.
 
 
{{hc|/etc/network-profile/main|2=# Network Profile
 
DESCRIPTION="Default Network Profile"
 
 
# Network Settings
 
INTERFACE=eth1
 
HOSTNAME=home
 
 
# Wireless Settings (optional)
 
ESSID=Router
 
IWOPTS="dhcp $ESSID"
 
#WIFI_INTERFACE=wlan0  # use this if you have a special wireless interface
 
                        # that is linked to the real $INTERFACE
 
WIFI_WAIT=2            # seconds to wait for the wireless card to}}
 
 
If you run into the strange problem of your wireless interface switching between eth0 and eth1 at boot then you may want to use {{ic|nameif}}. Simply put your network id followed by the mac address in /etc/mactab.
 
 
eth0 00:0C:DB:E8:38:5A
 
wlan0 00:1F:12:62:2E:CC
 
 
(Taken from [http://wiki.archlinux.org/index.php/IBM_Thinkpad_T30 here].)
 
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
 
  
 
=== Broadcom BCM4306 rev 2 ===
 
=== Broadcom BCM4306 rev 2 ===
Not long ago, Broadcom cards used to be a nightmare under Linux, until the b43 drivers came along. The b43 and b43legacy drivers are included in the kernel, so as with the Intel card, we just need to get the firmware for it.
+
The b43legacy driver is included in the kernel, so as with the Intel card, we just need to get the firmware for it.
  
If you have an Ethernet connection, install b43-fwcutter from pacman, like so:
+
You'll need to download the following two firmware files:
  
  # pacman -S b43-fwcutter
+
* http://mirror2.openwrt.org/sources/broadcom-wl-4.150.10.5.tar.bz2<br />
 +
* http://downloads.openwrt.org/sources/wl_apsta-3.130.20.0.o
  
If not, download the b43-fwcutter tarball and compile it:
+
And use b43-fwcutter to install the firmware files.
 
+
  wget http://bu3sch.de/b43/fwcutter/b43-fwcutter-015.tar.bz2
+
  tar xjf b43-fwcutter-015.tar.bz2
+
  cd b43-fwcutter-015
+
  make
+
  sudo make install
+
  cd ..
+
 
+
Next, you'll need to download the following two files:
+
 
+
http://mirror2.openwrt.org/sources/broadcom-wl-4.150.10.5.tar.bz2<br />
+
http://downloads.openwrt.org/sources/wl_apsta-3.130.20.0.o
+
 
+
And use b43-fwcutter to install the firmware files:
+
  
 
   $ tar xfvj broadcom-wl-4.150.10.5.tar.bz2
 
   $ tar xfvj broadcom-wl-4.150.10.5.tar.bz2
Line 102: Line 46:
 
   # b43-fwcutter --unsupported -w /lib/firmware broadcom-wl-4.150.10.5/driver/wl_apsta_mimo.o
 
   # b43-fwcutter --unsupported -w /lib/firmware broadcom-wl-4.150.10.5/driver/wl_apsta_mimo.o
  
Since this card uses the b43legacy driver, we'll blacklist and remove the b43 driver just in case.
+
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:
  
 
   # modprobe -r b43
 
   # modprobe -r b43
Line 111: Line 55:
 
   # modprobe b43legacy
 
   # modprobe b43legacy
  
Once the firmware is installed, NetworkManager and Wicd both handle the card flawlessly. I haven't tested any other connection managers, but those are the two most popular.
+
==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.
  
==CPU Scaling==
+
Open your favorite text editor to the following file:
See [[CPU Frequency Scaling]].
+
 
 +
  /etc/X11/xorg.conf.d/10-evdev.conf
  
Some BIOS revisions don't work properly with acpi-cpufreq, likely due to the driver being buggy or incorrect DSDT tables. There isn't a fix for this that I know of yet.
+
Comment out every line in the section referring to touchpads. It should look like this when you're done:
  
==Suspend to Ram==
+
  #Section "InputClass"
This is easily accomplished by installing {{ic|[http://aur.archlinux.org/packages/uswsusp/uswsusp/ uswsusp]}} from AUR. Contrary to the ominous output from pacman no additional configuration is needed. Additionally, {{ic|s2ram}} 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.
+
  #        Identifier "evdev touchpad catchall"
 +
  #        MatchIsTouchpad "on"
 +
  #        MatchDevicePath "/dev/input/event*"
 +
  #        Driver "evdev"
 +
  #EndSection
 +
 
 +
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.
 +
 
 +
{{hc|/etc/X11/xorg.conf.d/10-synaptics.conf|2=
 +
Section "InputClass"
 +
  Driver      "synaptics"
 +
  Identifier  "touchpad catchall"
 +
  MatchDevicePath      "/dev/input/event*"
 +
  MatchIsTouchpad      "on"
 +
  Option "VertEdgeScroll" "on"
 +
  Option "HorizEdgeScroll" "on"
 +
  Option "TapButton1"  "1"
 +
EndSection}}
 +
 
 +
Finally, restart X, and your trackpad should be fully functional!
 +
 
 +
==CPU Scaling==
 +
See [[CPU Frequency Scaling]]. All Pentium-M CPUs support Enhanced Intel SpeedStep, so you'll need the ''acpi-cpufreq'' driver.
  
{{hc|# s2ram -i|2=This machine can be identified by:
+
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.)
    sys_vendor  = "Dell Computer Corporation"
+
    sys_product  = "Latitude D600                  "
+
    sys_version  = ""
+
    bios_version = "A16"}}
+
  
# s2ram -f
+
==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: [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.
  
 
==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.  
 
'''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 xf86-video-ati package is available in the Extra repository.
+
The [https://www.archlinux.org/packages/extra/i686/xf86-video-ati/ xf86-video-ati package] is available in the Extra repository.

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.

Hardware

Working

  • Intel Pentium-M, with CPU frequency scaling
  • ATI Mobility Radeon 9000 (radeon driver)
  • Wireless card:
    • Intel 2200 Pro/Wireless Lan card (ipw2200 driver)
    • Broadcom BCM4306 rev2 Wireless card (b43legacy driver)
  • Sigmatel STAC9750 AC'97 audio
  • Fn key combos and audio buttons
  • Alps DualPoint trackpad and pointing stick (synaptics driver)
  • O2Media PCMCIA slot
  • CD/RW, DVD+/-RW
  • Broadcom BCM5702 gigabit ethernet (tg3 driver)
  • Hardware monitoring (i8k kernel module, hddtemp)
  • Sleep and resume (see Resuming from sleep section)

Untested

  • IRDA
  • Conexant V.56 modem (probably works)

Post-Installation

Wireless

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

Intel PRO Wireless 2200

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

Broadcom BCM4306 rev 2

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

You'll need to download the following two firmware files:

And use b43-fwcutter to install the firmware files.

 $ tar xfvj broadcom-wl-4.150.10.5.tar.bz2
 # b43-fwcutter -w /lib/firmware wl_apsta-3.130.20.0.o
 # b43-fwcutter --unsupported -w /lib/firmware broadcom-wl-4.150.10.5/driver/wl_apsta_mimo.o

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:

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

Finally, load the b43legacy driver:

 # modprobe b43legacy

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.

Open your favorite text editor to the following file:

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

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

 #Section "InputClass"
 #        Identifier "evdev touchpad catchall"
 #        MatchIsTouchpad "on"
 #        MatchDevicePath "/dev/input/event*"
 #        Driver "evdev"
 #EndSection

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.

/etc/X11/xorg.conf.d/10-synaptics.conf
Section "InputClass"
   Driver      "synaptics"
   Identifier  "touchpad catchall"
   MatchDevicePath      "/dev/input/event*"
   MatchIsTouchpad      "on"
   Option "VertEdgeScroll" "on"
   Option "HorizEdgeScroll" "on"
   Option "TapButton1"  "1"
EndSection

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

CPU Scaling

See CPU Frequency Scaling. All Pentium-M CPUs support Enhanced Intel SpeedStep, so you'll need the acpi-cpufreq driver.

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.

The xf86-video-ati package is available in the Extra repository.