Debian etch on Dell Precision M65 laptop

Created by Simon Josefsson on 2007-03-23. Last updated 2008-02-26.

If you want to comment on this, please go to the blog entry.

Debian Etch RC2 was just released and I decided to do a clean re-install on my laptop and write this page about the experience. I have later installed the full Debian etch release as well. The machine is a fairly standard modern laptop:

CPU2.0GHz Intel T2500 Core Duo
RAM1.5GB RAM DDR2 PC2-5300 SDRAM SODIMM
BIOSDell Precision M65 A07 (see warning below)
GraphicsnVidia Quadro FX 350M with 256MB
Screen (internal)1920x1200 WUXGA flat-panel
Screen (external)Dell 2405FPW connected via DVI in the docking port
AudioIntel HDA (BIOS reports Sigmatel 9200)
CD/DVD burnerTSSTcorp DVD+-RW TS-L532B
Mouse 1Synaptics touchpad
Mouse 2Mouse button a'la IBM
NetworkBroadcom BCM5752
WirelessIntel 3945ABG
PrinterHP PhotoSmart 3310
BluetoothDell wireless 350
Smartcard readerO2 Micro's Oz776
Fingerprint readerSGS Thomson fingerprint reader
TCPA TPMThe laptop has a TPM chip

BIOS Warning

I have tried upgrading the BIOS version to A09 but the machine runs hot and the fans are on most of the time. Reverting to version A07 solves this. It appears safe to revert BIOS versions.

I have a theory that the A09 BIOS is for machines with Core 2 Duo CPU's, and I have an earlier version of the machine with a Core Duo processor.

Installation

The installation was unexciting except for:

What works?

What doesn't work (perfectly)?

Hardware clock

During boot I get the following error message:

select() to /dev/rtc to wait for clock tick timed out

The problem appear to lead to incorrect time on the system, on my machine it typically is one hour off (which happens to be the same offset between GMT and my local time zone). For some reason it only happens sometimes. The fix is to add the following line to /etc/default/rcS:

HWCLOCKPARS=--directisa

Mouse

The synaptics touchpad pointer is slow. Fortunately, the machine has two mouse devices built-in, and the other works fine.

This is seems to be a widely known problem. You can solve it by adding the following to the "Synaptics touchpad" InputDevice section of /etc/X11/xorg.conf:

        Option "MinSpeed" "1.0"
        Option "MaxSpeed" "1.0"
        Option "AccelFactor" "0.3"

Video

The free nVidia "nv" driver (xserver-xorg-video-nv, automatically installed) suffer from a bug that causes visual artefacts. See the bug report below for a description. This can be worked around by adding the following line to the "Screen" section of /etc/X11/xorg.conf:

        Option "XaaNoSolidFillRect"

#345700. This problem is also solved if you dist-upgrade to testing. Then you do not need to modify your configuration.

The driver doesn't seem to handle switching between internal and external display properly -- only half of the screen is visible, and there is a big black area. Switching between console and graphics once or twice also fixes the problem. (Yes, twice, because usually on the first change the graphics will be garbled.) #428556 and #10785.

I did experiment with the non-free nVidia driver but it seemed to generate more problems than it solved, so I wouldn't recommend it.

Audio

Almost works. The volume control seems a bit non-linear, and from a cold-boot, to get any sound at all, you need to change the volume slightly.

Software suspend

Software suspend does not work. When invoked, the GNOME power manager said that suspend failed to work and linked to a FAQ which was completely unhelpful. It turns out that this machine is not supported:

mocca:~# s2ram
Machine is unknown.
This machine can be identified by:
    sys_vendor   = "Dell Inc."
    sys_product  = "Precision M65                   "
    sys_version  = ""
    bios_version = "A07"
See http://en.opensuse.org/S2ram for details.

If you report a problem, please include the complete output above.
mocca:~#

Running "s2ram -f" works, except that I have to switch to a non-X virtual console and back again to fix graphics. The non-free "nvidia" driver worked fine.

Wireless

The built-in Intel 3945 doesn't work without non-free drivers, but you can install them like this:

mocca:/home/jas# apt-get install ipw3945-modules-2.6-686 ipw3945d firmware-ipw3945
mocca:/home/jas# modprobe ipw3945

Smartcard reader

Seems to work with pcscd and gpg, using my FSFEurope OpenPGP smartcard. You'll have to install pcscd:

# apt-get install pcscd

Because of bug #381689 and #381834 (which actually refer to the same problem), you'll have to change the ifdDriverOptions value from 0x0000 to 0x0004 in /etc/libccid_Info.plist.

jas@mocca:~$ /usr/bin/gpg --card-status
gpg: detected reader `O2 Micro Oz776 00 00'
...
Name of cardholder: Simon Josefsson
...
General key info..: pub  1024R/AABB1F7B 2006-03-18 Simon Josefsson 
...
jas@mocca:~$

For some reason, Debian doesn't seem to have scdaemon which GnuPG 2.x uses, so gpg2 cannot use the smartcard. Update! scdaemon is part of the gpgsm package.

A small problem is some excessive logging, but it is tolerable.

Update! There is a new version of libccid in Debian unstable which should just work fine without any changes /etc/libccid_Info.plist. Install it like this:

mocca:/home/jas# apt-get install libccid -t unstable

Output from pcscd on startup, for reference:

Mar 24 11:54:47 mocca pcscd: pcscdaemon.c:464:main() pcsc-lite 1.3.2 daemon ready.
Mar 24 11:54:47 mocca pcscd: hotplug_libusb.c:407:HPAddHotPluggable() Adding USB device: 003:004
Mar 24 11:54:47 mocca pcscd: readerfactory.c:1093:RFInitializeReader() Attempting startup of O2 Micro Oz776 00 00 using /usr/lib/pcsc/drivers/ifd-ccid.bundle/Contents/Linux/libccid.so.1.2.1
Mar 24 11:54:47 mocca pcscd: readerfactory.c:964:RFBindFunctions() Loading IFD Handler 3.0
Mar 24 11:54:47 mocca pcscd: ifdhandler.c:1231:init_driver() LogLevel: 0x0003
Mar 24 11:54:47 mocca pcscd: ifdhandler.c:1241:init_driver() DriverOptions: 0x0000
Mar 24 11:54:47 mocca pcscd: ifdhandler.c:77:IFDHCreateChannelByName() lun: 0, device: usb:0b97/7762:libusb:003:004
Mar 24 11:54:47 mocca pcscd: ccid_usb.c:229:OpenUSBByName() Manufacturer: Ludovic Rousseau ([email protected])
Mar 24 11:54:47 mocca pcscd: ccid_usb.c:239:OpenUSBByName() ProductString: Generic CCID driver v1.2.1
Mar 24 11:54:47 mocca pcscd: ccid_usb.c:245:OpenUSBByName() Copyright: This driver is protected by terms of the GNU Lesser General Public License version 2.1, or (at your option) any later version.
Mar 24 11:54:47 mocca pcscd: ccid_usb.c:393:OpenUSBByName() Found Vendor/Product: 0B97/7762 (O2 Micro Oz776)
Mar 24 11:54:47 mocca pcscd: ccid_usb.c:395:OpenUSBByName() Using USB bus/device: 003/004
Mar 24 11:54:47 mocca pcscd: ccid_usb.c:779:get_data_rates() declared: 9600 bps
Mar 24 11:54:47 mocca pcscd: ifdhandler.c:271:IFDHGetCapabilities() lun: 0, tag: 0xFAE
Mar 24 11:54:47 mocca pcscd: ifdhandler.c:313:IFDHGetCapabilities() Reader supports 1 slots

lm-sensor

The module 'coretemp' is not supported by the Debian etch kernel, and I believe that's the one I need.

TCPA TPM chip

No idea how to test this one.

Software problems

While not specifically related to this hardware, I have made some notes about the software problems I had too.

Wine

Wine doesn't work when being invoked from 'make', which is often the case when you cross-compile to mingw32 and have self-tests. I found a workaround for this problem (see bug report).

#403941

I'm now using wine 0.9.44-1 and the problem has been fixed, so upgrading is an alternative to the workaround.

Further, to automatically run EXE files via Wine, you'll need to install the binfmt-support package.

Gaim with IRC

Gaim with IRC crashes.

#416249

DotGNU

The DotGNU cscc compiler doesn't seem to work, although I found a workaround for the problem.

#417226

Additional information

GPRS via BlueTooth DUN

Get a bluetooth connection working by using hcitool, noting the Bluetooth address, and sdptool and noting the channel.

jas@mocca:~$ hcitool scan
Scanning ...
        00:12:34:56:78:9A       Simon's N80
jas@mocca:~$ sdptool search --bdaddr 00:12:34:56:78:9A DUN
Searching for DUN on 00:12:34:56:78:9A ...
Service Name: Dial-Up Networking
Service RecHandle: 0x1002c
Service Class ID List:
  "Dialup Networking" (0x1103)
Protocol Descriptor List:
  "L2CAP" (0x0100)
  "RFCOMM" (0x0003)
    Channel: 2
Language Base Attr List:
  code_ISO639: 0x454e
  encoding:    0x6a
  base_offset: 0x100
Profile Descriptor List:
  "Dialup Networking" (0x1103)
    Version: 0x0100

jas@mocca:~$

Now you now the bluetooth address and channel of your modem. Add the following to /etc/bluetooth/rfcomm.conf:

rfcomm0 {
        bind yes;
        device 00:12:D1:96:38:93;
        channel 2;
}

Then install pppd. I chose to use the gnome-ppp frontend.

# apt-get install gnome-ppp pppd

Then start gnome-ppp (it's in the Applications->Internet menu) and set up the connection.

I'm using Tele2/Comviq GPRS provider. The phone number *99*# works for me, and any username/passwords will work. The important step is to specify the address using AT+CGDCONT so be sure to add an AT init string as follows:

AT+CGDCONT=1,"IP","internet.tele2.se"

Then connect. If you haven't paired the devices, bluetooth will ask for PINs. The phone will ask to approve the GPRS connection, and then you're in.

Update! The same configuration also works with a HUAWEI 3G GPRS PCMCIA card that gives a /dev/ttyUSB0. Just change the device setting from /dev/rfcomm0 above to /dev/ttyUSB0 and it works.

lspci output

00:00.0 Host bridge: Intel Corporation Mobile 945GM/PM/GMS/940GML and 945GT Express Memory Controller Hub (rev 03)
00:01.0 PCI bridge: Intel Corporation Mobile 945GM/PM/GMS/940GML and 945GT Express PCI Express Root Port (rev 03)
00:1b.0 Audio device: Intel Corporation 82801G (ICH7 Family) High Definition Audio Controller (rev 01)
00:1c.0 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express Port 1 (rev 01)
00:1c.1 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express Port 2 (rev 01)
00:1c.2 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express Port 3 (rev 01)
00:1c.3 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express Port 4 (rev 01)
00:1d.0 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI #1 (rev 01)
00:1d.1 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI #2 (rev 01)
00:1d.2 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI #3 (rev 01)
00:1d.3 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI #4 (rev 01)
00:1d.7 USB Controller: Intel Corporation 82801G (ICH7 Family) USB2 EHCI Controller (rev 01)
00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev e1)
00:1f.0 ISA bridge: Intel Corporation 82801GBM (ICH7-M) LPC Interface Bridge (rev 01)
00:1f.2 IDE interface: Intel Corporation 82801GBM/GHM (ICH7 Family) Serial ATA Storage Controller IDE (rev 01)
00:1f.3 SMBus: Intel Corporation 82801G (ICH7 Family) SMBus Controller (rev 01)
01:00.0 VGA compatible controller: nVidia Corporation Unknown device 01dc (rev a1)
03:01.0 CardBus bridge: O2 Micro, Inc. Cardbus bridge (rev 21)
03:01.4 FireWire (IEEE 1394): O2 Micro, Inc. Firewire (IEEE 1394) (rev 02)
09:00.0 Ethernet controller: Broadcom Corporation NetXtreme BCM5752 Gigabit Ethernet PCI Express (rev 02)
0c:00.0 Network controller: Intel Corporation PRO/Wireless 3945ABG Network Connection (rev 02)

lsusb output

Bus 005 Device 004: ID 413c:8103 Dell Computer Corp. Wireless 350 Bluetooth
Bus 005 Device 002: ID 413c:a005 Dell Computer Corp.
Bus 005 Device 001: ID 0000:0000
Bus 003 Device 001: ID 0000:0000
Bus 004 Device 001: ID 0000:0000
Bus 001 Device 001: ID 0000:0000
Bus 002 Device 002: ID 0b97:7761 O2 Micro, Inc.
Bus 002 Device 004: ID 0b97:7762 O2 Micro, Inc. Oz776 SmartCard Reader
Bus 002 Device 003: ID 0483:2016 SGS Thomson Microelectronics Fingerprint Reader
Bus 002 Device 001: ID 0000:0000

lspcmcia output

Socket 0 Bridge: [yenta_cardbus] (bus ID: 0000:03:01.0)


Comments or feedback?