Debian GNU/Linux on the Acer Travelmate 8004LMib

Summary

Part Type Status
Processor Intel Dothan Pentium M 1.7GHz Works
Memory 1 GB DDR Works
Video card Radeon 9700 Mobility (RV350 M11) 64MB Works
Sound card Intel ICH4 Works
Touchpad Synaptics Touchpad Works
Keyboard Acer with hotkeys Works
Hard disk 60GB IDE TOSHIBA MK6025GAS Works
PCMCIA Cardbus O2Micro OZ711M3 Works
Network Broadcom NetXtreme BCM5705 Gigabit Ethernet Works
Wifi Intel PRO/Wireless 2200BG Works
Bluetooth Cambridge Silicon Radio, Ltd Bluetooth Dongle Works
Infrared   Untested
4 USB 2.0 ports Intel ICH4 with TetraHub Works
IEEE1394 (Firewire) port Texas Instruments TSB43AB21 Untested
ACPI   Works
DVD-RW MATSHITA DVD-RAM UJ-831S Works
Modem Intel/Agere AC97 Works
TV-Out S-Video port Untested
Card reader O2Micro OZ711Mx Unsupported
Smartcard reader O2Micro OZ711M3 Unsupported
Port replicator 100-pin Acer Portreplicator connector Untested

Introduction

I run Debian Sid (unstable) on the Travelmate, with GNU/Linux kernel 2.6.11.
You can find summaries of possibly useful files and program output at the bottom of this mini-howto.

The Acer laptop came with a few pre-made partitions (after I let it install Windows XP). A small acer partition (diagnostics or whatever), then the 30GB WinXP partition and then a 30GB "ACERDATA" partition (which probably held the ghost images for the XP versions). Luckily for me, these were FAT32 (as I can read/write data from Linux much more reliably). I used Partition Magic to do some resizing. C: became 43GB, the rest is Linux (100MB /boot, 512MB swap).

Disk /dev/hda: 60.0 GB, 60011642880 bytes
255 heads, 63 sectors/track, 7296 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/hda1               1         383     3076416   12  Compaq diagnostics
/dev/hda2   *         384        5919    44467920    c  W95 FAT32 (LBA)
/dev/hda3            5920        7296    11060752+   f  W95 Ext'd (LBA)
/dev/hda5            5920        5932      104391   83  Linux
/dev/hda6            5933        5998      530113+  82  Linux swap / Solaris
/dev/hda7            5999        7296    10426153+  83  Linux

To install Debian, I used a woody CD to do a netinstall, where I ran into some problems.... The onboard network card wasn't supported, and my PCMCIA NIC (3c575) refused to work. Both lights lit up, but no connection :| I ended up doing a regular 1-CD install, then installing more over the net, as strangely, the PCMCIA card started working after I rebooted. When woody was installed, I apt-get dist-upgraded to Sarge, then up to Sid. apt-get install module-init-tools, compile a fresh 2.6.11 kernel, and off we go. All hardware which was supported is described below, no more need for the PCMCIA card. Feeling bleeding-edge, and after hearing Robert Love's talk at Fosdem 2004, I also installed udev on my system. You can find my kernel .config in the files section.

I suggest installing the hotplug package for easy and on-the-fly loading of modules and firmware (you'll need it for ipw2200). laptop-net might also be handy, and waproamd with ifplugd if you use wifi a lot.

Processor

Thanks to Tomas Drajsajtl I have CPU frequency scaling working on the laptop. From /proc/cpuinfo:
model name      : Intel(R) Pentium(R) M processor 1.70GHz
stepping        : 6
cpu MHz         : 996.947

I installed the cpuspeed package, coming from this aptsource:

deb http://tassi.web.cs.unibo.it/debian/cpuspeed ./
deb-src http://tassi.web.cs.unibo.it/debian/cpuspeed ./

Videocard

I have installed the ATI Radeon drivers by following the Howto by Flavio Stanchina. Ofcourse you can also use the 'radeon' opensource driver if you don't need all that speed... glxinfo shows DRI is enabled and fgl_glxgears runs very smoothly. I've played Armagetron, Tuxracer, Tuxkart, lxdoom, Race and they all run nicely as well ;) My XF86Config-4 file is here.

For 2.6.11, I needed to patch the ATI driver a little with this patch. That way, the driver compiled. However, the module did not load due to unresolved symbols - I'm back at 2.6.10.

Sound

The soundcard works nicely with ALSA, using module snd_intel8x0. Don't forget, with ALSA, on bootup the sound is muted. I don't mind, I even like it to boot muted, if I want sound I'll enable it (nicely with a hotkey, see below).

Touchpad

The touchpad is detected by the kernel upon boot:

Synaptics Touchpad, model: 1
Firmware: 5.8
180 degree mounted touchpad
Sensor: 29
new absolute packet format
Touchpad has extended capability bits
-> 4 multi-buttons, i.e. besides standard buttons
-> multifinger detection
-> palm detection
input: SynPS/2 Synaptics TouchPad on isa0060/serio4

For X, we need the XFree synaptics input driver: apt-get install xfree86-driver-synaptics, then we can configure our pointing device in XF86Config-4:

Section "InputDevice"
        Identifier "Touchpad"
        Driver "synaptics"
        Option "CorePointer"
        Option "Device" "/dev/psaux"
        Option "Protocol" "auto-dev"
        Option "LeftEdge" "1900"
        Option "RightEdge" "5400"
        Option "TopEdge" "1900"
        Option "BottomEdge" "4000"
        Option "FingerLow" "25"
        Option "FingerHigh" "30"
        Option "MaxTapTime" "180"
        Option "MaxTapMove" "220"
        Option "VertScrollDelta" "100"
        Option "MinSpeed" "0.12"
        Option "MaxSpeed" "0.28"
        Option "AccelFactor" "0.5000"
        Option "SHMConfig" "on"
        Option "Buttons" "7"
        Option "ZAxisMapping" "4 5 6 7"
EndSection

You can also find my full XF86Config-4 in the files section.

You can tweak the acceleration values etc. if you want to. Vertical scroll works, but I haven't gotten sideways scroll to work yet.

You can also install a synaptics control applet for KDE with apt-get install ksynaptics.

Keyboard

The keyboard itself is working fine, naturally. But we also want the hotkeys to work...

Initially, pressing hotkeys (except for the Bluetooth one), does nothing. Some of them (P1 & P2) actually generate messages in dmesg:

kernel: atkbd.c: Unknown key pressed (translated set 2, code 0xf4 on isa0060/serio0).
kernel: atkbd.c: Use 'setkeycodes e074 <keycode>' to make it known.
kernel: atkbd.c: Unknown key released (translated set 2, code 0xf4 on isa0060/serio0).
kernel: atkbd.c: Use 'setkeycodes e074 <keycode>' to make it known.
kernel: atkbd.c: Unknown key pressed (translated set 2, code 0xf3 on isa0060/serio0).
kernel: atkbd.c: Use 'setkeycodes e073 <keycode>' to make it known.
kernel: atkbd.c: Unknown key released (translated set 2, code 0xf3 on isa0060/serio0).
kernel: atkbd.c: Use 'setkeycodes e073 <keycode>' to make it known.

To enable these to be correctly recognized by X, we need to run the following (before starting X):

setkeycodes e074 180
setkeycodes e073 182

I have put these commands in a little script which I made to run upon boot.

Then what I did is make a script called modmap with the following content and put it in ~/.kde/Autostart:

#!/bin/bash

xmodmap -e 'keycode 236 = F16'
xmodmap -e 'keycode 178 = F17'
xmodmap -e 'keycode 176 = F18'
xmodmap -e 'keycode 174 = F19'
xmodmap -e 'keycode 160 = F20'
xmodmap -e 'keycode 251 = F15'
xmodmap -e 'keycode 138 = F14'

This fixes, in this order: mail, web, volume up, volume down, mute, P1, P2.
I have bound the hotkeys to unused F-keys. You can find these codes yourself by running the xev command. Noteworthy is that the bluetooth and the wifi button do not generate a key code anywhere that I can see. (See Bluetooth and Wifi for more information)

PS: As you might have guessed, stuff in the ~/.kde/Autostart is executed on login by KDE.

Then, to assign the keys, open the KDE Control Center and go into "Regional & Accessibility", then "KHotkeys". In there, I made a group (doesn't affect the actual use) called Acer hotkeys, then entered some keys which started a program. After you've done the above settings, you can just press the corresponding key to program the action. I bound the mail key to evolution, the browser key to mozilla, P1 to konsole, haven't decided about P2 yet.

Also, in the KMixer applet, I bound fn-up to "master volume up", fn-down to "master volume down" and fn-F8 to "mute", which is also exactly what those do under Windows ;)

Hard Disk

The disk controller is supported by Linux. You can tweak the speed and powersaving of your harddisk with the hdparm tool. I have put the following configuration in /etc/hdparm.conf:

quiet

/dev/hda {
      mult_sect_io = 16
      dma = on
      interrupt_unmask = on
      io32_support = 1
      spindown_time = 241
}

This accomplishes the following: sets multisector I/O to 16bytes, enables DMA, 32-bit support and interrupt unmasking. These make disk access quite a bit faster. Spindown time is set to 30 minutes, so after 30 minutes of idling, the disk will spin down to save battery life.

PCMCIA Cardbus

Works fine with the yenta_socket cardbus driver module:

Yenta: CardBus bridge found at 0000:02:06.0 [1025:0051]
Yenta O2: res at 0x94/0xD4: ea/00
Yenta O2: enabling read prefetch/write burst
Yenta: ISA IRQ mask 0x08b8, PCI irq 6
Socket status: 30000006
Yenta: CardBus bridge found at 0000:02:06.1 [1025:0051]
Yenta: ISA IRQ mask 0x08b8, PCI irq 6
Socket status: 30000006
Yenta: CardBus bridge found at 0000:02:06.3 [1025:0051]
Yenta: ISA IRQ mask 0x08b8, PCI irq 6
Socket status: 30000410

Curiously, there is only one card slot, but cardctl ident shows:

Socket 0:
  no product info available
Socket 1:
  no product info available
Socket 2:
  product info: "O2Micro", "SmartCardBus Reader", "V1.0"
  manfid: 0xffff, 0x0001

Seems like the smartcard reader is implemented as a PCMCIA device. Inserting my 3Com PCMCIA cardbus card (3c575) worked fine.

Network

Supported through the tg3 module:

tg3.c:v3.14 (November 15, 2004)
eth0: Tigon3 [partno(BCM95705A50) rev 3003 PHY(5705)] (PCI:33MHz:32-bit) 10/100/1000BaseT Ethernet 00:c0:9f:69:c2:d3
eth0: RXcsums[1] LinkChgREG[0] MIirq[0] ASF[0] Split[0] WireSpeed[0] TSOcap[1]

Wifi

Supported through the ipw2200 project at sourceforge. You need the hotplug and wireless-tools packages. Also make sure your kernel has wireless extension support enabled. Put the firmware into the correct directory, make, make install, modprobe ipw2200.

If you get a message in dmesg that the radio kill switch is on, you'll need to press the "wifi" button at the front. I don't always get this (and in the BIOS it's set to always activate the radio), but it's consistent, if it says that, it won't work until you press the button. I haven't gotten the LED to work (yet?), but the radio is definately working.

Also, I found this card to have a very good range.

Bluetooth

The bluetooth connection is very nicely done, in my opinion. Upon pressing the bluetooth button, a "bluetooth dongle" gets "inserted" into the USB bus. As such, it simply appears as a well-supported USB device, and when disabled, it's "unplugged" from the bus. I have tested the connection with my Dell Axim X30 PDA, and it works.

A nice addition for KDE users is the KDE Bluetooth project:

deb http://www.stud.uni-karlsruhe.de/~uddw/debian ./

apt-get install kdebluetooth will give you an extra panel in the KDE Control Center and an icon in your system tray if you wish so. The bluez bluetooth stack will also come in handy ;)

Infrared

Untested.

4 USB 2.0 ports

After loading the uhci-hcd driver, lsusb (from apt-get install usbutils) shows the following:

Bus 004 Device 002: ID 04b4:6560 Cypress Semiconductor Corp. CY7C65640 USB-2.0 "TetraHub"
Bus 004 Device 001: ID 0000:0000
Bus 003 Device 003: ID 0a12:0001 Cambridge Silicon Radio, Ltd Bluetooth Dongle
Bus 003 Device 001: ID 0000:0000
Bus 002 Device 001: ID 0000:0000
Bus 001 Device 001: ID 0000:0000

The TetraHub are actually the 4 ports at the left side of the acer. I assume the other devices may be usable through the port replicator.

IEEE1394 (Firewire) port

I don't have any firewire gear to test, but the modules load fine and I get an extra ethernet device as well.

ohci1394       31556   0
ieee1394       94712   2 eth1394,ohci1394

and in dmesg:

ieee1394: Initialized config rom entry p1394'
ohci1394: $Rev: 1223 $ Ben Collins <bcollins@debian.org>
ohci1394: fw-host0: OHCI-1394 1.1 (PCI): IRQ=[10] MMIO=[d0218000-d02187ff] Max Packet=[2048]
ieee1394: Host added: ID:BUS[0-00:1023] GUID[00c09f000030143e]
eth1394: $Rev: 1224 $ Ben Collins <bcollins@debian.org>
eth1394: eth2: IEEE-1394 IPv4 over 1394 Ethernet (fw-host0)

ACPI

After apt-get install acpid, the power button works nicely... Debian's script goes as follows: If you are logged into KDE and press the powerbutton, you're logged out. If you press the powerbutton again (or aren't using KDE), the system shuts down.

I did notice something odd (which has no impact on usability):

tom@deepspace:~$ acpi -V
     Battery 1: charging, 95%, charging at zero rate - will never fully charge.
     Thermal 1: ok, 44.0 degrees C
  AC Adapter 1: on-line

ACPI is reporting the charging rate is 0 (see "present rate" in /proc/acpi/battery/BAT1/state), which is what causes the "will never fully charge" message. If you refresh that file a few times, you'll see however that the battery IS charging. Just a minor glitch :)

Second battery in the media bay works fine as well.

DVD-RW

The writer is recognized in k3b as a DVD writer automatically (I'm using the ATAPI interface with kernel 2.6).

Modem

At first, looks like loading snd-intel8x0m should do the trick, as it's modem support for the AC97 chipset, but no way ofcourse.. This is a winmodem (or now, a linmodem), which needs separate drivers... I've looked around for them, and browsed tons of pages, so now I know ...

Getting the modem to work in a few easy steps (you need a compiler installed ofcourse):

wget http://linmodems.technion.ac.il/packages/smartlink/slmodem-2.9.9a.tar.gz
apt-get install libasound2-dev
tar -zxvf slmodem-2.9.9a.tar.gz
cd slmodem-2.9.9a
make && make install
cd modem
make ALSA_SUPPORT=1
./slmodemd --alsa --country=BELGIUM hw:1

Tada, you now have a /dev/ttySL0 to fire AT commands at. I put the slmodemd line in my startup script (don't forget the & behind it!), as it needs to be running to use the modem.

If you get an error from wvdial saying Cannot open /dev/ttySL0: Cannot get information for serial port., upgrade your libwvstreams packages.

AT commands work fine, I also dialed up a BBS, that worked, then dialed up my ISP with wvdial, that worked. Good to go!

Only thing I need to figure out is how to hear the actual modem sounds.. I turned up all mixer slides with aumix but nothing...

TV-Out

Untested.

Card reader

Detected nowhere, no drivers found.

Smartcard reader

Seen in the PCMCIA cards. I have received a precompiled driver for 2.2.20-686, which I believe I'm not allowed to distribute. Unfortunately I cannot recompile anything for my kernel so I can't use it at all. Let's hope a version with an opensource wrapper (or even better yet, fully opensourced drivers) come soon :)

Port replicator

I don't have one and I don't intend to buy one, so unless I'm given one for free I don't think I'll ever test this ;) I have however read that if you use the replicator for networking, it only does 100Mbit and not gigabit. Also, the system detects a serial port (and/or modprobe 8250_acpi), this may be the one on the replicator (because unless I have severe sight problems, the laptop doesn't have a serial port).

Output & Files

Software suspend (hibernation)

For software suspend you need another kernel patch. I've successfully hibernated my laptop in text mode, hasn't worked from X yet (only tried once). You'll need to apt-get install hibernate to be able to use the interface.

Suspend-to-RAM

I read on some forum you could fix suspend-to-RAM by appending acpi_sleep=s3_bios to your kernel parameters, then using echo -n mem > /sys/power/state would put the machine to sleep. Pressing any key or the power button wakes the machine up fine. No magic required. NOT. The machine goes to sleep but hangs when trying to wake up. Could this be caused by the radeon driver again or something? I have no idea.

Power saving

Apart from the above-mentioned cpufreq and hdparm options, there are some minor things which might help...

Links

Revision history

Contact information: Tom Laermans, sid3windr@sid3windr.be.

Last modified: 19-Aug-2012 - Valid XHTML