Home
What is ...
Sirobot
Vocoder
m2n
PHIL
appointment.pl
BackendFS
Download
Sirobot
Vocoder
m2n
PHIL
appointment.pl
BackendFS
Screenshots
Sirobot
Vocoder
Various
Howtos
Songs
Debian on D610
Contact

Table of contents

Introduction

This is a list of things I had to configure to make Debian GNU/Linux run on my Dell D610 laptop. The information here are pretty short by purpose: They should serve as a hint for other users who run into the same problems I did. They should not be used as a click-through instruction set.

However, if you feel, the information presented here is not enough for you, feel free to contact me.

Display, X

Use the xorg package that comes with Debian, not xfree86, if possible.

The native resolution of 1400x1050 isn't supported out of the box. You need to patch the BIOS, so xorg knows the right resolution and not use the 1280x1024 fallback. But don't worry, the patch is done in RAM, so patching the BIOS is neither hard to do nor does it last forever.

In fact, the patch must be done after every boot. Fortunally, there's a package named 915resolution (855resolution works, too) that does the dirty work for you. Edit /etc/defaults/915resolution, then add your resolution to /etc/X11/xorg.conf.

/etc/defaults/915resolution
#
# 915resolution default
#
# find free modes by  /usr/sbin/915resolution -l
# and set it to MODE
#
MODE=38
#
# and set resolutions for the mode.
#
XRESO=1400
YRESO=1050
#
# We can also set the pixel mode.
# Please note that this is optional,
# you can also leave this value blank.
BIT=

Keyboard

Enable german keyboard layout with option nodeadkeys and inet layout for inspiron. This also add key symbols for raise/lower/mute volume, that can be used by a window manager or daemon to actually control the volume.

/etc/X11/xorg.conf
[...]

Section "InputDevice"
  Identifier "Generic Keyboard"
  Driver     "keyboard"
  Option     "CoreKeyboard"
  Option     "XkbRules"    "xorg"
  Option     "XkbModel"    "pc105"
  Option     "XkbLayout"   "de(nodeadkeys)+inet(inspiron)"
# Option     "XkbVariant"  ""
  Option     "XkbOptions"  "ctrl:nocaps"
EndSection

[...]

Touchpad

Touchpad works out of the box with X.org, no need to install an extra driver. However, you may want to install the xfree86-driver-synaptics driver (don't get confused by the name, it works with X.org, too), especally if you need to fine tune your touchpad.

/etc/X11/xorg.conf
[...]

Section "InputDevice"
  Identifier "Synaptics Touchpad"
  Driver     "synaptics"
  Option     "SendCoreEvents"    "true"
# Option     "Protocol"          "auto-dev"
  Option     "Device"            "/dev/input/mice"
  Option     "Emulate3Buttons"   "on"
  Option     "Name"              "Touchpad"
  Option     "Vendor"            "Synaptics"
  Option     "ZAxisMapping"      "4 5"

  Option     "LeftEdge"          "85"
  Option     "RightEdge"         "1010"
  Option     "TopEdge"           "85"
  Option     "BottomEdge"        "730"
  Option     "FingerLow"         "25"
  Option     "FingerHigh"        "30"
  Option     "MaxTapTime"        "180"
  Option     "MaxTapMove"        "220"
# Option     "FastTaps"          "1"
  Option     "VertScrollDelta"   "100"
  Option     "HorizScrollDelta"  "0"
  Option     "MinSpeed"          "0.09"
  Option     "MaxSpeed"          "0.50"
  Option     "AccelFactor"       "0.30"
  Option     "CircularScrolling" "1"
  Option     "CircScrollTrigger" "6"
  Option     "SHMConfig"         "on"
EndSection

Section "ServerLayout"
	Identifier	"Default Layout"
	Screen		"Default Screen"
	InputDevice	"Generic Keyboard"
	InputDevice	"Configured Mouse"
	InputDevice	"Synaptics Touchpad"
EndSection

Lid

Closing and opening the lid turns off the backlight but not on again. Try xset dpms force on or install vbetool and use vbetool dpms on to manually turn the backlight on.

To automatically turn the backlight on again, install acpid and add a script, that runs whenever a lid event occurs.

/etc/acpi/actions/lid
#!/bin/sh

if grep -q "open" /proc/acpi/button/lid/LID/state; then
        /usr/sbin/vbetool dpms on
fi
/etc/acpi/events/lid
event=button[ /]lid
action=/etc/acpi/actions/lid %e

ACPI

ACPI access is handled by kernel modules. They come preinstalled with your kernel, you just need to load them. Add them to /etc/modules to ensure, they get loaded during boot time.

/etc/modules
[...]

# fan and temperature
i8k

# ACPI 
processor
thermal
battery
ac

If loading the processor module makes your laptop humming, see the Noise when idle section.

Noise when idle

Pretty much if not all models of the Dell D610 series produce a high, humming noise whenever the CPU is idle. There are two solutions: Add idle=halt to the kernel command line in your boot loader or force the processor module to only use C1 state (full speed) instead of switching between the modes C1-C4.

/etc/modprobe.d/processor
options processor max_cstate=1

Sound

Works out of the box with ALSA and the snd_intel8x0 driver.

DVD and harddrive

There are two drivers that can handle DVD and your harddrive: The ide_generic driver and the ata_piix driver. The latter one uses libata. Unfortunally, despite libata's capability to handle ATAPI devices such as the DVD ROM, the support is disabled by default. There are several ways to get your DVD ROM to work.

Patch kernel 2.6.12

In case you are using Linux kernel 2.6.12, you may compile your own kernel with just one line changed:

linux-source-2.6.12/include/linux/libata.h
#define ATA_ENABLE_ATAPI        /* define to enable ATAPI support */

Users of Linux kernel 2.6.12 who need SMART support might also want to apply the libata pass-thru patch (haven't tried myself).

Use old driver

If you don't want to build your own kernel and don't need any of libata's features, try to load the ide_generic module before ata_piix during boot time.

Enable ATAPI in kernel 2.6.15

As of Linux kernel 2.6.15, ATAPI support can be turned on via a module parameter, so there's no need to recompile the kernel. SMART support is built-in, too. No need to patch anything.

/etc/modprobe.d/libata
options libata atapi_enabled=1

With the ATA driver, your DVD ROM can be accessed as /dev/scd0.

See Problems with SATA and Linux to learn more about the ATA driver.

WLAN

To get your Intel PRO/Wireless 2200 WLAN card to run, you need the kernel drivers ieee80211 and ipw2200 as well as the corresponding firmware version.

To download the firmware, see the ipw2200 project page.

Linux kernel 2.6.15 comes with ieee80211 and ipw2200 drivers. Unfortunally, Users of 2.6.12 must compile the modules on their own, but that's quite easy to do: Install the ieee80211-source and ipw2200-source debian packages and use the module assistant to build and install the binary debian packages for you.

cd /usr/src
export KERNELDIRS=/usr/src/linux-source-2.6.12
module-assistant a-i ieee80211
module-assistant a-i ipw2200

WLAN LED

Support for the WLAN LED doesn't work as expected. You can turn the LED on if you are already connected to an access point with echo >/sys/bus/pci/drivers/ipw2200/0000*.0/led but the LED doesn't turn off when the connection is lost or the WLAN card is turned off (=radio kill or rf_kill) via Fn-F2. The only way I found to turn the LED off again is to switch from managed mode to ad-hoc (iwconfig eth1 mode ad-hoc) and back again (iwconfig eth1 mode managed) :-(

Update: Karol T. Gajowniczek emailed me with the following information: "I know how to switch wi-fi led off:
echo 1 > /sys/bus/pci/drivers/ipw2200/0000*.0/rf_kill
to switch it back on, just:
echo 0 > /sys/bus/pci/drivers/ipw2200/0000*.0/rf_kill".

Unfortunally, the LED still only reflects the software rf_kill state but not hardware rf_kill (Fn-F2).

Secure your WLAN

It is highly recommended that you use WPA to secure your WLAN setup and prevent malicous users from abusing your network. WEP is not secure enough, the encryption can be cracked within minutes. Fortunally, most modern access points support WPA encryption, just turn it on and set the shared key to a random combination of at least 20 numbers and letters.

On your laptop, WPA encryption is handled by the wpasupplicant daemon. Install the debian wpasupplicant package and edit /etc/default/wpasupplicant:

/etc/default/wpasupplicant (for kernel 2.6.15)
ENABLE=1
DRIVER=wext
INTERFACE=eth1
CONFIG=/etc/wpa_supplicant.conf
OPTIONS="-w -i ${INTERFACE} -D ${DRIVER} -c ${CONFIG}"
/etc/default/wpasupplicant (for kernel 2.6.12)
ENABLE=1
DRIVER=ipw
INTERFACE=eth1
CONFIG=/etc/wpa_supplicant.conf
OPTIONS="-w -i ${INTERFACE} -D ${DRIVER} -c ${CONFIG}"

Next, run the wpa_passphrase program included in the wpasupplicant package. It takes an ESSID and the shared key mentioned above as input and gives you the configuration lines needed for /etc/wpa_supplicant.conf as output. Use this output instead of the network={ ... } part in the example presented here:

/etc/wpa_supplicant.conf
ctrl_interface=/var/run/wpa_supplicant
ctrl_interface_group=0

eapol_version=1
ap_scan=1
fast_reauth=1

network={
        ssid="homer_simpson"
        #psk="[your key here]"
        psk=[your converted key here]
}

Finally, it's time to tell Debian about your new network.

/etc/network/interfaces
[...]

auto eth1
iface eth1 inet dhcp
pre-up /etc/init.d/wpasupplicant start
post-down /etc/init.d/wpasupplicant stop

Now you can give it a try and fire up your WLAN: ifup eth1. After about 10-20 seconds, the connection should be established.

For troubleshooting, use the tools iwconfig eth1, iwlist scan and wpa_cli.

Links

general links

WLAN (ipw2200) links

Last update: Thu, 23 Jan 2020
Design by klHexe, Settel and Gimp. Content by Settel and FTE.