I run GNU/Linux (Debian/Ubuntu) on my DELL Latitude E4200.
=====Graphics=====
Graphics works perfectly with the “intel” driver of xorg. I have a nice WXGA widescreen (1280x800), I am able to use a docking station and can switch to a video projector with [[http://www.thinkwiki.org/wiki/Xorg_RandR_1.2|the powerful randr extension]] (I recommend to use [[http://christian.amsuess.com/tools/arandr/|arandr]]). See also [[dual head with Intel GM45 on Linux]].
Main configuration in ’‘/etc/X11/xorg.conf’’:Section "ServerLayout" Identifier "XFree86 Configured" #Screen "fbdev-config" Screen "intel-config" #Inputdevice "touchpad catchall" EndSection Section "Device" Identifier "intel" Driver "intel" EndSectionTroubleshooting:
$ lspci | grep Graph 00:02.0 VGA compatible controller: Intel Corporation Mobile 4 Series Chipset Integrated Graphics Controller (rev 07) 00:02.1 Display controller: Intel Corporation Mobile 4 Series Chipset Integrated Graphics Controller (rev 07) $ cat /var/log/Xorg.0.log | grep Graphics [ 409.190] (II) intel: Driver for Intel Integrated Graphics Chipsets: i810, [ 409.207] (II) intel(0): Integrated Graphics Chipset: Intel(R) GM45
=====Touchpad===== The touchpad is “AlpsPS/2 ALPS GlidePoint”. It works with the synaptics driver. With some tweaking, it also supports two-fingers scrolling.
Main configuration in ’‘/etc/X11/xorg.conf’’:
Section "InputClass" Identifier "touchpad catchall" Driver "synaptics" MatchIsTouchpad "on" MatchDevicePath "/dev/input/event*" # required for running "synclient -m 300" Option "SHMConfig" "on" Option "TapButton1" "1" # disabling spurious right click emulation when scrolling with two fingers. Option "TapButton2" "0" Option "TapButton3" "0" # enabling scrolling with two fingers à la Mac Option "VertTwoFingerScroll" "on" Option "HorizTwoFingerScroll" "on" # as shown by "synclient -m 300", z>80 when two fingers are used Option "EmulateTwoFingerMinZ" "80" # as shown by "synclient -m 300", w is not used on this touchpad Option "EmulateTwoFingerMinW" "0" EndSection
Warning: gnome-settings-dameon overrides those settings. You may disable the plugins ‘’mouse’’ and ‘’pointing-device’’ with gconf-editor by deselecting “active” in ’‘/apps/gnome_settings_daemon/plugins/mouse’’ and ’‘/apps/gnome_settings_daemon/plugins/pointing-device’’.
See also [[https://wiki.archlinux.org/index.php/Touchpad_Synaptics]] and [[http://pages.cpsc.ucalgary.ca/~jnjackin/docs/two_finger_scrolling-linux.html]].
Troubleshooting (from the synaptics man page):Option "EmulateTwoFingerMinZ" "integer" For touchpads not capable of detecting multiple fingers but are capable of detecting finger pressure and width, this sets the Z pressure threshold. When both Z pressure and W width thresholds are crossed, a two finger press will be emulated. This defaults to a value that disables emulation on touchpads with real two- finger detection and defaults to a value that enables emulation on remaining touchpads that support pres- sure and width support. Property: "Synaptics Two-Finger Pressure" Option "EmulateTwoFingerMinW" "integer" For touchpads not capable of detecting multiple fingers but are capable of detecting finger width and pres- sure, this sets the W width threshold. When both W width and Z pressure thresholds are crossed, a two fin- ger press will be emulated. This feature works best with (PalmDetect) off. Property: "Synaptics Two-Finger Width"
=====Wireless=====
Update (August 2013):# latest version for amd64 $ wget http://fr.archive.ubuntu.com/ubuntu/pool/restricted/b/bcmwl/bcmwl-kernel-source_6.30.223.248+bdcom-0ubuntu1_amd64.deb $ dpkg -i bcmwl-kernel-source*.deb
There are two solutions to get the wireless working: using the module b43 or wl (aka broadcom-sta).
For wl (recommended), on Debian [[http://wiki.debian.org/wl#Squeeze|this page explains very well what to do]], on Ubuntu see [[https://help.ubuntu.com/community/WifiDocs/Driver/bcm43xx#Installing_STA_drivers]].
Note: After an upgrade to linux kernel 3.1, the wl solution stopped working, I had to redo the procedure described in [[http://wiki.debian.org/wl#Squeeze|this page]] to rebuil wl.ko (being created in ’‘/lib/modules/3.1.0-1-686-pae/kernel/drivers/net/wireless/wl.ko’’)# error before rebuilding wl.ko $ modprobe wl FATAL: Module wl not found. FATAL: Error running install command for wl
For b43, I had to do the following to get the appropriate firmware:
# debug info $ lspci | grep Broadcom 0c:00.0 Network controller: Broadcom Corporation BCM4322 802.11a/b/g/n Wireless LAN Controller (rev 01) # downloading the firmware $ wget http://mirror2.openwrt.org/sources/broadcom-wl-5.10.56.27.3_mipsel.tar.bz2 $ tar xvjf broadcom-wl-5.10.56.27.3_mipsel.tar.bz2 # installing the installation tool $ b43-fwcutter --version # installing the firmware in /lib/firmware (from broadcom-wl-5.10.56.27.3_mipsel.tar.bz2) $ b43-fwcutter -w /lib/firmware broadcom-wl-5.10.56.27.3/driver/wl_apsta/wl_prebuilt.o # loading the kernel module $ modprobe b43 # the rest of the configuration is made by ifconfig, NetworkManager, etc.
===== Virtualization =====
The processor provides hardware support for virtualization. It is disabled by default in the BIOS.
To enable it: * press F12 at startup, choose Bios setup * in the BIOS, select Virtualization Support >> Virtualization >> Enable Intel Virtualization Technology * in the BIOS, select Virtualization Support >> Virtualization >> Enable VT for Direct I/O
You can then use KVM as a virtualization solution (e.g. for running Windows under Linux, see [[report on using kvm for virtualization on linux]]).
===== Audio =====
Sound works with the module snd-hda-intel (’‘$ modprobe snd-hda-intel’’).
$ lspci | grep Audio 00:1b.0 Audio device: Intel Corporation 82801I (ICH9 Family) HD Audio Controller (rev 03) $ head -n 1 /proc/asound/card0/codec* ==> /proc/asound/card0/codec#0 <== Codec: IDT 92HD71B7X ==> /proc/asound/card0/codec#2 <== Codec: Intel Cantiga HDMI
===== Hard drive (SSD) =====
The solid-state disk (SAMSUNG SSD PM810 TM 256GB) has excellent performance (see below). Note that I took a special care that the partitions are aligned with 128k physical blocks, i.e. that the starting addresses of partitions (in sectors, not in cylinders) are divisible by 256 (see [[heads and sectors for partition alignment|my previous post]] and [[http://ldn.linuxfoundation.org/blog-entry/aligning-filesystems-ssd%E2%80%99s-erase-block-size|this post]]). I use the noop I/O scheduler (‘’echo noop > /sys/block/sda/queue/scheduler’’ in /etc/rc.local).
$ fdisk -l /dev/sda Disk /dev/sda: 256.1 GB, 256060514304 bytes 224 heads, 56 sectors/track, 39869 cylinders, total 500118192 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x00000000 Device Boot Start End Blocks Id System /dev/sda1 2048 449999871 224998912 83 Linux /dev/sda2 449999872 500118191 25059160 82 Linux swap / Solaris
$ hdparm -tT /dev/sda /dev/sda: Timing cached reads: 2614 MB in 2.00 seconds = 1307.77 MB/sec Timing buffered disk reads: 738 MB in 3.00 seconds = 245.89 MB/sec $ seeker /dev/sda Seeker v2.0, 2007-01-15, http://www.linuxinsight.com/how_fast_is_your_disk.html Benchmarking /dev/sda [244198MB], wait 30 seconds.............................. Results: 4637 seeks/second, 0.22 ms random access time
$ hdparm -i /dev/sda /dev/sda: Model=SAMSUNG SSD PM810 TM 256GB, FwRev=AXM06D1Q, SerialNo=S0NENEAB201091 Config={ Fixed } RawCHS=16383/16/63, TrkSize=0, SectSize=0, ECCbytes=4 BuffType=unknown, BuffSize=unknown, MaxMultSect=16, MultSect=16 CurCHS=16383/16/63, CurSects=16514064, LBA=yes, LBAsects=500118192 IORDY=on/off, tPIO={min:120,w/IORDY:120}, tDMA={min:120,rec:120} PIO modes: pio0 pio1 pio2 pio3 pio4 DMA modes: mdma0 mdma1 mdma2 UDMA modes: udma0 udma1 udma2 udma3 udma4 udma5 *udma6 AdvancedPM=no WriteCache=enabled Drive conforms to: ATA/ATAPI-7 T13 1532D revision 1: ATA/ATAPI-2,3,4,5,6,7
Error when ‘’apt-get install broadcom-sta-dkms’’ ‘’debian error struct cfg80211_bss has no member named len_information_elements’’