Debian GNU/Linux
on the
Dell Latitude D420

Warning: this page was written in March 2007 and is now obsolete. Presently (2012) I use Debian GNU/Linux on a Dell Latitute E6500, a Dell Latitude E6220, and an Aleutia T1, and its works almost out of the box.

Dell Latitude D420

Dell Latitude D420

KDE docked applets. From top to bottom: kmix, kcpuload in SMP mode, 
 knetworkmanager, krandrtray, klipper, kwalletmanager, beryl-manager, 
 kpowersave. Screen shot of a French KDE session on the Dell Latitude D420. Screen shot of a French KDE session on the Dell Latitude D420.

Introduction

Debian

Dell offers the possibility to buy machines without any operating system. This is what I did with a Latitude D420 laptop. I installed Debian GNU/Linux testing/unstable (March 2007) by network install via a USB stick. The F12 keyboard key allows to enter the BIOS menu in order to boot from the stick. The Debian package linux-image-2.6-686 provided automatically a 2.6.18 Linux kernel via its dependencies. This kernel image is both SMP and ACPI capable, which is good for the Intel Core Duo CPU of the D420. It also provides a huge collection of loadable kernel modules. Like for most modern laptops, the integrated peripherals of the D420 are on PCI or USB or I2C buses. Debian works on the D420 almost out of the box, and minor additional efforts detailed in the sequel provide an even better support. However, perfection is still far away...

Hardware and integrated peripherals (see also the outputs section):

Hardware Components Debian GNU/Linux
April 2007 kernel 2.6.18-4
Notes
Screen 12.1" Screen WXGA TFT LCD 1280 x 800 (Matte).
Video Intel Mobile 945GM/GMS/940GML Express video controller
Up to 224MB of shared video memory (stolen from main RAM)
Input Full-size keyboard with touchpad and pointing stick
Wireless network Intel Pro Wireless 3945BG
ACPI power suspend to RAM and to disk
Works See below
CPU Intel Dual Core CPU (2 x Yonah U2005 @ 1.2GHz)
USB Intel 82801G (ICH7) Controller (USB UHCI, USB2 EHCI)
RAM 1.5 GB of DDR-II-533 SDRAM
HDD 1.8" Toshiba MK8009GAH 80 GB PATA Hard Disk (4200 RPM)
Power 65W AC Adaptor and 9-Cells/85 WHr "Smart" Li-Ion battery
Wired network Broadcom NetXtreme BCM5752 Gigabit (Tigon3)
Sound Intel High Definition Audio controller (ICH7 HDA)
PCMCIA Ricoh Co Ltd RL5c476 II CardBus yenta_socket
Works Out of the box
Firewire Ricoh Co Ltd R5C552 IEEE 1394
Memcards Ricoh Co Ltd R5C822 SD/SDIO/MMC/MS/MSPro
CD-RD/DVD External 24x Combo HL-DT-ST DVD+-RW GSA-T11N
Consists in a D-Bay with a special USB plug
Detected and
probably works
Not tested
Winmodem & IrDa Not detected Not tested

Most peripherals are automatically detected via udev and the corresponding kernel modules are automatically loaded.

Power managment

Suspend to ram and suspend to disk can be activated by the kpowersave applet (KDE), or via command line via powersave --suspend-to-disk, or even via the more crude s2disk command. The powersave method is better because it allows the automatic loading and unloading of kernel modules. The configutation is in /etc/powersave. It is not wise to use a direct echo in the /proc/ file system.

The acpid daemon manages the ACPI events, like lid (open and close), power button pressure or Fn-Esc key combination. The acpid daemon provides many scripts in /etc/acpid/ which are not really useful with the D420. However, the acpid deamon handles the ACPI events, which are thus available to the powersaver daemon via D-Bus and HAL.

Some modules need to be unloaded before suspend in order to avoid problems during the next suspend cycle. The corresponding lines in the /etc/powersave/sleep file are:

UNLOAD_MODULES_BEFORE_SUSPEND2DISK="tg3 sbp2" 
UNLOAD_MODULES_BEFORE_SUSPEND2RAM="tg3 sbp2"

The lid open and close events can be used for suspend to RAM. Here are some lines in /etc/powersave/events:

EVENT_BUTTON_LID_OPEN="switch_vt"
EVENT_BUTTON_LID_CLOSED="suspend_to_ram"

Suspend to RAM is not directly accessible since the D420 is black listed, as pointed out by the s2ram command. To force suspend to RAM, one can adjust a variable in /etc/powersave/sleep:

SUSPEND2RAM_FORCE="yes"

There is an USB bug in powersave. Sometimes, the usbcore module is not removed and refuses to suspend. The message in /var/log/syslog is

suspend_device(): usb_generic_suspend+0x0/0xe4 [usbcore]() returns -16
Could not suspend device 2-2.3.2: error -16
Some devices failed to suspend

This problem is probably a bug in the kernel. A work around consists simply in removing the usbcore module. This is not possible if the filesystem /proc/bus/usb is mounted, even if no USB device is used. This problem can be solved by adding an usb step in /etc/powersave/events:

EVENT_GLOBAL_RESUME_SUSPEND2RAM="restore_after_suspend_to_ram usb-on"
EVENT_GLOBAL_RESUME_SUSPEND2DISK="restore_after_suspend_to_disk usb-on"
EVENT_GLOBAL_SUSPEND2RAM="usb-off prepare_suspend_to_ram screen_saver do_sus pend_to_ram"
EVENT_GLOBAL_SUSPEND2DISK="usb-off prepare_suspend_to_disk screen_saver do_suspend_to_disk"

Here usb-on corresponds to the bash script /usr/lib/powersave/scripts/usb-on:

#!/bin/bash
# usb-on script
# first get helper functions (e.g. DEBUG, load_scheme, ...)
. "${0%/*}/helper_functions"
for m in usbcore ehci_hcd uhci_hcd; do modprobe $m; done
mount -t usbfs none /proc/bus/usb
$SCRIPT_RETURN $EV_ID 0 "USB fixup finished for $1"
EXIT 0

and usb-off to the bash script /usr/lib/powersave/scripts/usb-off:

#!/bin/bash 
# usb-off script 
# first get helper functions (e.g. DEBUG, load_scheme, ...) 
. "${0%/*}/helper_functions" 
for m in ehci_hcd uhci_hcd usbcore; do modprobe -r $m; done 
umount /proc/bus/usb/ 
$SCRIPT_RETURN $EV_ID 0 "USB fixup finished for $1" 
EXIT 0 

Beware that these scripts do not handle mounted filesystems on USB devices. You must umount all USB keys etc before doing a suspend to RAM.

Networking

The ethernet network adapter is a Tigon3, reported by lspci as Broadcom Corporation NetXtreme BCM5752 Gigabit Ethernet PCI Express. The kernel module is named tg3. It works fine, exept for suspend, see above.

The wireless IEEE802.11g network adapter is an Intel Pro Wireless 3945BG. The corresponding kernel module is ipw3945. This module is not provided by the Debian standard kernel package. This chipset needs a firmware and an external daemon. One can install the following Debian packages: ipw3945-modules-2.6-686, firmware-ipw3945, ipw3945d. It works fine. The forthcoming next generation Linux Kernel wireless stack will probably greatly simplify and enhence the support for this chipset.

One can install the Debian package network-manager, which makes networking very cool. From the NetworkManager web page  “ For both, Wireless LAN and Wired LAN, NetworkManager supports devices known to HAL. Unless working in offline mode, NetworkManager tries to keep the system connected at any time. For this, NetworkManager follows the following policy. Once started, NetworkManager asks HAL about available network interfaces. If a wired network interface with a carrier is found, NetworkManager connects to this. Either by DHCP (default) or by setting up previously defined static configuration. Later on, when KNetworkManager starts up, NetworkManager will expose its information about network devices and wireless networks found by scanning to the applet. At this point, if a user decides to unplug the wired connection, NetworkManager will not connect to an arbitrary wireless network. By default all available networks are untrusted. Only if a user decides to connect to a network manually once, this specific network n henceforth being marked as trusted. “ 

Here is my /etc/network/interfaces/ file:

auto lo
iface lo inet loopback
address 127.0.0.1
netmask 255.0.0.0
# 
allow-hotplug eth0
iface eth0 inet dhcp
#
allow-hotplug eth2
iface eth2 inet dhcp

One can also install the network-manager-kde Debian package which provides a KDE applet called KNetworkManager. The ESSID and WEP/WAP keys are stored by kwallet. Notice that the KDE wallet subsystem must be configured and enabled. One can safely remove the knemo, kwifimanager, and knetworkconf Debian packages.

Video and pointing devices

The video controller is an Intel Mobile 945GM/GMS/940GML Express. The Debian package xserver-xorg-video-i810 provides a working automatic configuration in xorg.conf using the i810 driver of X.org. The package 915resolution provides a video mode vBIOS correction and enables the 1200x800 mode, very usefull for the wide screen of the D420.

You can switch between video modes with the xrandr command:

xrandr -s 1024x768
xrandr -s 1280x800

These commands are useful in scripts when connecting an external VGA video display. Aternatively, one can use an applet like KRandRTray provided by the kcontrol Debian package in order to switch between video modes by mouse. It seems that if you play too much with video mode switching, the resume after suspend can crash the machine.

The traditional Ctrl+Alt+Keypad-Plus and Ctrl+Alt+Keypad-Minus key combinations do not work. However, one can associate other key combinations to the X events XF86_Next_VMode and XF86_Prev_VMode, by using the xmodmap program.

The LCD brightness keys Fn-up and Fn-down work well, as well as the Fn-left key to automatically adjust the brightness. The brightness sensor is a small dark red square below the screen.

The D420 provides both touch pad and stick à la thinkpad. One can install the packages xserver-xorg-input-synaptics and ksynaptics. The touchpad pointer speed is slow and one can add these lines to the InputDevice section related to the touchpad in the /etc/X11/xorg file:

Option          "MinSpeed"              "0.8"
Option          "MaxSpeed"              "0.8"

Beryl and 3D-desktop

The Beryl 3D-Desktop works well on the Dell Latitude D420, without much efforts. Here are for instance some Beryl and VLC screenshots under KDE on my D420...

Beryl effect Bery effect

Beryl effect Berl effect

Beryl effect VLC (videolan)

So how to install Beryl? One can start by adding few lines to /etc/modules to ensure the loading of AGP and DRI/DRM support for i915

intel_agp 
agpgart 
drm 
i915

This ensures the loading at boot time. You may now reboot your system or use directly modprobe by hand on each module listed above. Next, check that your /etc/X11/xorg.conf file looks like...

Section "Module"
	# ...
        Load    "bitmap"
        Load    "ddc"
        Load    "extmod"
        Load    "freetype"
        Load    "record"
        Load    "int10"
        Load    "vbe"
        Load    "dri" 
        Load    "dbe"
        Load    "glx"
EndSection
# ...
# various sections not displayed here
# ...
Section "Device"
        Identifier      "Intel Corporation Mobile 945GM/GMS/940GML Express"
        Driver          "i810"
        BusID           "PCI:0:2:0"
        Option          "DRI"   "true"
        Option          "XAANoOffscreenPixmaps"
EndSection
Section "Screen"
	# ...	
        Option          "AddARGBGLXVisuals" "true"
        DefaultDepth    24
	# ...
EndSection
# ...
Section "ServerLayout"
	# ...
        Option          "AIGLX"         "true"
	# ...
EndSection
# ...
Section "DRI"
        Mode    0666
EndSection
Section "Extensions"
        Option "Composite" "Enable"
EndSection

Next, install the Mesa OpenGL packages as follows.

sudo apt-get install libgl1-mesa-dri libgl1-mesa-glx libglu1-mesa mesa-utils xlibmesa-gl libxcomposite1

After restarting the X server / KDE session, just test OpenGL with glxinfo. Now, add the following line to your /etc/apt/source.list file:

deb http://debian.beryl-project.org/ etch main

and install the Beryl packages (aquamarine and emerald are Beryl window decorators for KDE):

wget http://ubuntu.beryl-project.org/root@lupine.me.uk.gpg -O- | sudo apt-key add -
sudo apt-get install aquamarine beryl beryl-manager beryl-plugins beryl-settings beryl-settings-simple emerald emerald-themes

If you don't use sudo, just exec the commands above as root. Now you can restart your X server / KDE session and launch Beryl ! There is a docking applet called beryl-manager which can be found in the KDE System submenu. You can launch Beryl by launching this appel or by launching beryl. Your KDE session will remember this command and launch it automatically at log-on. Try Cltr-Alt-Arrows or Ctrl-Alt-LeftButton-MoveYourPointer or Ctrl-Alt-PgDown or Alt-MouseWheel, you will see! You will find may other fancy effects on the Beryl user guide web page. Actually, the CPU & RAM consumption of Beryl is reasonable. But beyond the proof of concept, one can decide to disable Beryl when running on batteries.

According to the Beryl project user guide, the AIGLX users of the i810 driver may find that they get better performance out of Beryl if they set their xservers default depth in their xorg.conf to 16. This will result in some stepping on gradients but is generally acceptable for most everything else. Consequently, one can replace DefaultDepth "24" by DefautDepth "16" in the /etc/X11/xorg.conf file. Note that a depth of n corresponds by definition to n bits per pixel (bpp), in other words to 2n colors per pixel, so approximately 10n*0.3 colors per pixel.

In case of problems due to the configuration or update with Beryl, the deletion of ~/.beryl* can help. In order to avoid possible display problems with Videolan (VLC), one may select the X11 output in Settings/Preferences/Video/OutputModules (you need to check the "Advanced options" checkbox to show it). Unfortunately, the X11 output of VLC is a little bit more CPU consuming...

For the Xine video engine used for instance by Kaffeine, one may use the Xshm output driver for rendering. This is valid when using the Xorg server with a Depth of 16 Bpp. With a Depth of 24 Bpp, the Xv output driver works fine.

For the MPlayer video engine used for instance by KPlayer, one may use the X11 output driver, or the Xv output driver like for Xine if Xorg is configured with a 24 Bpp.

By the way, you will find various multimedia Debian packages on the Debian-Multimedia repository. You can add the following line to your /etc/apt/source.list.

deb http://www.debian-multimedia.org testing main

You can add the GPG key of this repository by using the following command.

gpg --keyserver hkp://wwwkeys.eu.pgp.net --recv-keys 1F41B907 && gpg -a --export 1F41B907 | sudo apt-key add -

I haven't tried yet Metisse.

Sound

The chipset is an Intel HDA. It works quite well with the corresponding ALSA module. The sound volume buttons can be easily mapped as follows. One can add a file /etc/X11/Xsession.d/63xmodmap containing:

/usr/bin/xmodmap /etc/X11/xmodmap 

and a file /etc/X11/xmodmap containing:

 
keycode 160 = XF86AudioMute 
keycode 174 = XF86AudioLowerVolume
keycode 176 = XF86AudioRaiseVolume 
keycode 210 = XF86Sleep 

Next, one can install the kmilo Debian package to take into account these X events under KDE.

The D420 has only one poor 1W mono speaker. However, the mini-jack output is stereo. There is also a microphone mini-jack input, useful for SIP.

Various things

For the Grub boot loader, one can use the 0x318 video mode by using the line kopt=root=/dev/hda1 ro vga=0x318 in /boot/grub/menu.lst. Do not forget to call the update-grub command!

The Debian packages i8kutils and gkrellm-i8k allow to get or set some specific informations related to Dell laptops like temperature, fans and power status. You need to load the i8k module, for instance by puting the name i8k in /etc/modules.

Bluetooth and various other optional non present peripherals can be disabled via BIOS options. This turns off some few USB errors at boot time.

The external CD/DVD reader/burner is recognized as a USB device. Here is the message in /var/log/messages after plug-in the cable.

usb 1-6: new high speed USB device using ehci_hcd and address 3
usb 1-6: configuration #1 chosen from 1 choice
Initializing USB Mass Storage driver...
scsi0 : SCSI emulation for USB Mass Storage devices
usbcore: registered new driver usb-storage
USB Mass Storage support registered.
  Vendor: HL-DT-ST  Model: DVD+-RW GSA-T11N  Rev: A103
  Type:   CD-ROM                             ANSI SCSI revision: 00
sr0: scsi3-mmc drive: 24x/24x writer cd/rw xa/form2 cdda tray
Uniform CD-ROM driver Revision: 3.20
sr 0:0:0:0: Attached scsi generic sg0 type 5

Beware: add your username to the groups dialout, cdrom, floppy, audio, video, plugdev, netdev, powerdev. Otherwise, you will experience problems with the corresponding peripherals and automatic mecanisms.

Not tested yet

VGA output, Firewire (IEEE1394), PCMCIA card reader, SD-Card reader, IrDa, Docking station, external CD/DVD reader and burner. One can notice that udev loads automatically several modules related to these aspects: mmc_core sdhci (for SD-Card), pcmcia_core pcmcia yenta_socket rsrc_nonstatic (for PCMCIA), sbp2 eth1394 ohci1394 ieee1394 (for Firewire).

Remaining problems

When booting with the wifi switch on (i.e. radio off) the system may hang during the boot sequence. Additionally, it seems that the ipw3945 module does not handle the off/on cycle correctly, and one may reload the kernel module (for instance with modprobe) in order to reenable the wifi interface.

Modem not shown explicitely by lspci or lsusb. One can probably use alternatively the hwinfo package. It is probably a Conexant Winmodem. One can try to use the hsfmodem linmodem software package. Beware that there are currently some problems with sound and suspend.

After a resume, the sound chipset does not produce any sound and one must turn it off and on for instance by using a mixer like kmix. The networkmanager is also in off-line mode after a resume, and must be turned on for instance via KNetworKmanager. A possible workaround is to automatically call at resume the D-Bus script /etc/dbus-1/event.d/*NetworkManager* or to use

dbus-send --system --dest=org.freedesktop.NetworkManager \
 /org/freedesktop/NetworkManager org.freedesktop.NetworkManager.wake

Add support for the Fn-F1 key combination and for the wifi killer switch. The first one does not give any event. The wifi killer is noticed by the system (see Bouttier's page on the D420).

External links and resourses

Useful outputs

lspci -n

00:00.0 0600: 8086:27a0 (rev 03)
00:02.0 0300: 8086:27a2 (rev 03)
00:02.1 0380: 8086:27a6 (rev 03)
00:1b.0 0403: 8086:27d8 (rev 01)
00:1c.0 0604: 8086:27d0 (rev 01)
00:1c.1 0604: 8086:27d2 (rev 01)
00:1c.2 0604: 8086:27d4 (rev 01)
00:1d.0 0c03: 8086:27c8 (rev 01)
00:1d.1 0c03: 8086:27c9 (rev 01)
00:1d.2 0c03: 8086:27ca (rev 01)
00:1d.3 0c03: 8086:27cb (rev 01)
00:1d.7 0c03: 8086:27cc (rev 01)
00:1e.0 0604: 8086:2448 (rev e1)
00:1f.0 0601: 8086:27b9 (rev 01)
00:1f.1 0101: 8086:27df (rev 01)
00:1f.3 0c05: 8086:27da (rev 01)
02:01.0 0607: 1180:0476 (rev b4)
02:01.1 0c00: 1180:0552 (rev 09)
02:01.2 0805: 1180:0822 (rev 18)
09:00.0 0200: 14e4:1600 (rev 02)
0c:00.0 0280: 8086:4222 (rev 02)

lspci -tv

-[0000:00]-+-00.0  Intel Corporation Mobile 945GM/PM/GMS/940GML and 945GT Express Memory Controller Hub
           +-02.0  Intel Corporation Mobile 945GM/GMS/940GML Express Integrated Graphics Controller
           +-02.1  Intel Corporation Mobile 945GM/GMS/940GML Express Integrated Graphics Controller
           +-1b.0  Intel Corporation 82801G (ICH7 Family) High Definition Audio Controller
           +-1c.0-[0000:0b]--
           +-1c.1-[0000:0c]----00.0  Intel Corporation PRO/Wireless 3945ABG Network Connection
           +-1c.2-[0000:09]----00.0  Broadcom Corporation NetXtreme BCM5752 Gigabit Ethernet PCI Express
           +-1d.0  Intel Corporation 82801G (ICH7 Family) USB UHCI #1
           +-1d.1  Intel Corporation 82801G (ICH7 Family) USB UHCI #2
           +-1d.2  Intel Corporation 82801G (ICH7 Family) USB UHCI #3
           +-1d.3  Intel Corporation 82801G (ICH7 Family) USB UHCI #4
           +-1d.7  Intel Corporation 82801G (ICH7 Family) USB2 EHCI Controller
           +-1e.0-[0000:02-06]--+-01.0  Ricoh Co Ltd RL5c476 II
           |                    +-01.1  Ricoh Co Ltd R5C552 IEEE 1394 Controller
           |                    \-01.2  Ricoh Co Ltd R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter
           +-1f.0  Intel Corporation 82801GBM (ICH7-M) LPC Interface Bridge
           +-1f.1  Intel Corporation 82801G (ICH7 Family) IDE Controller
           \-1f.3  Intel Corporation 82801G (ICH7 Family) SMBus Controller

lsusb -tv

Bus#  5
`-Dev#   1 Vendor 0x0000 Product 0x0000
Bus#  4
`-Dev#   1 Vendor 0x0000 Product 0x0000
Bus#  3
`-Dev#   1 Vendor 0x0000 Product 0x0000
Bus#  2
`-Dev#   1 Vendor 0x0000 Product 0x0000
  `-Dev#   2 Vendor 0x413c Product 0xa005
    `-Dev#   3 Vendor 0x0b97 Product 0x7761
      `-Dev#   4 Vendor 0x0b97 Product 0x7762
Bus#  1
`-Dev#   1 Vendor 0x0000 Product 0x0000

cat /proc/cpuinfo

rocessor       : 0
vendor_id       : GenuineIntel
cpu family      : 6
model           : 14
model name      : Genuine Intel(R) CPU           U2500  @ 1.20GHz
stepping        : 8
cpu MHz         : 800.000
cache size      : 2048 KB
physical id     : 0
siblings        : 2
core id         : 0
cpu cores       : 2
fdiv_bug        : no
hlt_bug         : no
f00f_bug        : no
coma_bug        : no
fpu             : yes
fpu_exception   : yes
cpuid level     : 10
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx constant_tsc pni monitor vmx est tm2 xtpr
bogomips        : 2397.64

processor       : 1
vendor_id       : GenuineIntel
cpu family      : 6
model           : 14
model name      : Genuine Intel(R) CPU           U2500  @ 1.20GHz
stepping        : 8
cpu MHz         : 800.000
cache size      : 2048 KB
physical id     : 0
siblings        : 2
core id         : 1
cpu cores       : 2
fdiv_bug        : no
hlt_bug         : no
f00f_bug        : no
coma_bug        : no
fpu             : yes
fpu_exception   : yes
cpuid level     : 10
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx constant_tsc pni monitor vmx est tm2 xtpr
bogomips        : 2394.77

lsmod

Module                  Size  Used by
uhci_hcd               21164  0
ehci_hcd               28136  0
usb_storage            71840  0
usbcore               112644  4 uhci_hcd,ehci_hcd,usb_storage
arc4                    2112  1
ieee80211_crypt_wep     5056  1
binfmt_misc            10984  1
cpufreq_ondemand        6636  1
cpufreq_userspace       4448  0
cpufreq_powersave       1920  0
speedstep_centrino      8384  2
freq_table              4576  1 speedstep_centrino
ipv6                  226016  22
button                  6672  0
ac                      5188  0
battery                 9636  0
dm_snapshot            15552  0
dm_mirror              19152  0
dm_mod                 50232  2 dm_snapshot,dm_mirror
i915                   17600  3
drm                    61332  4 i915
i8k                     6072  1
sbp2                   20840  0
scsi_mod              124168  1 sbp2
loop                   15048  0
joydev                  9088  0
tsdev                   7520  0
pcmcia                 34140  0
ipw3945               179972  1
snd_hda_intel          17332  4
snd_hda_codec         137856  1 snd_hda_intel
i2c_i801                7468  0
yenta_socket           24460  1
rsrc_nonstatic         11840  1 yenta_socket
ieee80211              29416  1 ipw3945
psmouse                35016  0
snd_pcm                68676  3 snd_hda_intel,snd_hda_codec
snd_timer              20996  2 snd_pcm
snd                    47012  10 snd_hda_intel,snd_hda_codec,snd_pcm,snd_timer
soundcore               9248  1 snd
i2c_core               19680  1 i2c_i801
sdhci                  16844  0
mmc_core               23168  1 sdhci
eth1394                18212  0
pcmcia_core            36852  3 pcmcia,yenta_socket,rsrc_nonstatic
ieee80211_crypt         5952  2 ieee80211_crypt_wep,ieee80211
snd_page_alloc          9640  2 snd_hda_intel,snd_pcm
serio_raw               6660  0
rtc                    12372  0
intel_agp              21148  1
pcspkr                  3072  0
firmware_class          9600  2 pcmcia,ipw3945
agpgart                29896  3 drm,intel_agp
evdev                   9088  2
ext3                  119240  2
jbd                    52456  1 ext3
mbcache                 8356  1 ext3
ide_disk               14848  4
generic                 5476  0 [permanent]
ehci_hcd               28136  0
piix                    9444  0 [permanent]
uhci_hcd               21164  0
ide_core              110504  4 usb_storage,ide_disk,generic,piix
tg3                    94948  0
ohci1394               30800  0
ieee1394               86904  3 sbp2,eth1394,ohci1394
usbcore               112644  3 ehci_hcd,uhci_hcd
thermal                13608  0
processor              28840  2 speedstep_centrino,thermal
fan   

Debian GNU/Linux