SuSE 9.2/Gentoo on the Acer TravelMate 4002 WLMi Notebook

In this page I'll try to document my way to a nicely configged installation of SuSE 9.2 on my new notebook.
Some time ago I migrated to Gentoo, I won't rewrite the whole page, but will add some usefull info.
Comments, questions and help on unsolved issues are welcome. You can send me an email at christophe AT vandeplas DOT com

Christophe Vandeplas

ChangeLog

- 16 Now 2005: finally added info about the SmartBattery, and how to patch the dsdt.
- 16 Nov 2005: link to project for mailLED
- 04 Sept 2005: info about suspend2disk (hibernate)
- 21 Jun 2005: uploaded new lineak configuration files to make the Multiledia/Special keys working. Thanks to Antoni Villalonga for his mail containing keycodes and his hotkeys script. See below for config settings
- 27 Apr 2005: uploaded new xorg.conf file, works better with projector now. Start with: startx -- -layout "PROJ"
- 24 Apr 2005: TV out works, image is not perfeclty filling the screen, but it's ok
- 18 Apr 2005: compiled + patched fglrx, corrections in XF86Config, minor changes in text
- 16 Apr 2005: added info about SmartBatterySystem, compiled 2.6.11.4 kernel
- 15 Apr 2005: completed the XF86Config or xorg.conf file
- 09 Apr 2005: started this HOWTO

TODO

- Suspend to Ram and to disk and resume
- Hotkey buttons
- Infrared
- firewire

Index

Base Installation
Hardware
Kernel
Networking
 BCM4401 Fast Ethernet
 Intel 2200BG 802.b/g Wireless Lan
Graphics
Interfaces
 IEEE1394 / Firewire
 Infrared Port
 Cardbus/PCMCIA
 Modem: Intel AC'97 Modem Controller
 External VGA
 TV Out
Input Devices
 Touchpad
 Keyboard
 Mulitmedia/Special Keys
Mobile device issues
 Smart Battery System
 Battery Times
 Suspend / Standby
Thanks

Base Installation

I don't think I need to explain more than this: insert DVD, follow instructions.

An interesting thing is that apt4rpm rulez ! Howto here: http://linux01.gwdg.de/apt4rpm/

Hardware

Pentium ® M Processor, 1.6 GHz          OK     No special procedure required during installation.
15.4" WXGA LCD Display                  OK     Bright, fairly fast and great range of visibility
ATI Radeon Mobility 9700                OK     need Closed Source ATI driver for 3D accel.
512 MB memory - 2 X 256                 OK
80 GB HD Ultra ATA                      OK
Panasonic Lion SmartBattery             OK     with acpi_sbs
Floppy                                  N/A
Touchpad                                OK     (need to configure in XF86Config)
IEEE 1394(firewire)                     ???
Broadcom BCM4401 Fast Ethernet          OK     b44 module (autodetected)
Intel 2200 BG Wireless Card             OK     ipw2200 (with proprietary firmware)
56k Modem                               ???    Closed source driver (slamr), "cant detect dialtone error"
Audio                                   OK 
Infrared Port                           ???
DVD Dual +- Burner                      OK

     N/A = not available  N.F.T = not fully tested  ??? = not tested

Kernel

Networking

We have two network interfaces, a BCM4401 10/100 Mbit Ethernet interface and the new 11/54 Mbit Centrino WLAN chipset by the name of 2200BG.

BCM4401 Fast Ethernet

This device uses the b44 module, it's automatically detected and configured.

Intel 2200BG 802.b/g Wireless Lan

Native driver project under http://ipw2200.sf.net
The driver is included on the SuSE 9.2 installation DVD, BUT you need to connect to the internet to get the firmware. I downloaded the latest version from sourceforge and compiled it for my running kernel.
Gentoo: The latest version is in portage

Graphics

The newest version 8.19.10 should support suspend !

The TM 4002 has an ATI Radeon Mobility 9700 gfx card with 64MB and a 1280x800 WXGA lcd display.
I'm using the closed source driver from ATI. Here ar the instructions:

Download the right rpm from the ATI website. now check/install the folowing software
- glibc version 2.2 or 2.3
- XFree86 or xorg
- kernel source code
- kernel header(include) files
- GCC compiler
- Make utility

Then install the package using the following command:

rpm -Uvh fglrx_6_8_0-8.12.10-1.i386.rpm

UPDATE: I didn't have the problems with the latest driver, so discard the info about patching the code.
My modules didn't compiled. So I needed to do this myself.
I had some problems while compiling this fglrx version. After searching the web, I found some usefull patches. tm4002.fglrx.p1.patch and tm4002.fglrx.p2.patch.

cp tm4002.fglrx.p* /lib/modules/fglrx/build_mod/
patch < tm4002.fglrx.p1.patch;
patch > tm4002.fglrx.p2.patch;
chmox +x make.sh
./make.sh
cd ..
chmod +x make_install.sh
./make_install.sh
modprobe fglrx

This builded my kernel module.
Now you can either choose to run the "fglrxconfig" command to generate a new XF86Config-4 file, or just copy/analyse my file. XF86Config (warning: the generated of the config file is really ugly! and badly configged, it will need a lot of tweaking for inputdevices)

Gentoo:

emerge ati-drivers
opengl-update ati

Interfaces

IEEE1394 / Firewire

I don't have a firewire device, so I can't test it. If you have tested it, please tell me if/how it works

Infrared Port

Not tested yet

Cardbus/PCMCIA

Works fine out of the box, yenta_socket module

Modem: Intel AC'97 Modem Controller

With the standard kernel the kernel module is already included, if you use your own kernel you need to compile the kernel module yourself.
You can find the drivers here.

SuSE had a little problem with the configuration of the modem. It thinks that the device is accessed at /dev/ttySL0, but the slamr module made a /dev/slamr0 block. By adding this to my /etc/udev/rules.d/50-udev.rules file udev did what I wanted him to do, unlease the power of udev.

 "KERNEL="slamr*         name="ttySL%n"

It seems that the modem doesn't detect the dial-tone. I can't find a solution at the moment

External VGA

Works fine, the best thing is to change the settings in your XF86Config file.
Here's a little cut from my config file

# === Screen Management ===
    Option "DesktopSetup"               "0x00000400"
                            # 0x00000000 for 2nd screen disabled
                            # 0x00000100 for identical screens
                            # 0x00000200 for wide screen
                            # 0x00000300 for high screen
    Option "MonitorLayout"              "LVDS, CRT"
                            # TMDS for DVI monitors
                            # CRT for CRT monitors
                            # STV for TV Out
                            # LVDS for Laptop Panels

TV Out

Works fine when you know how to configure it. I lost loads of time to discover that the TV should be set as primary screen to ahve it working. See my XF86Config file for configuration.

Input Devices

Touchpad

The touchpad works fine with the XF86 driver for synaptics touchpads.
If you want an example for the config have a look at my XF86Config file.
It works fine in combination with an USB mouse.
Pressing upper right corner = middleclick, lower right corner = right click

Keyboard

Some keys are working standard:
- screen brightness
- screen on/off
- mousepad on/off
- power button

Antoni Villalonga has send me an email with the keycodes for his TM4001WLMi and his configurations files for the KDE client of lineakd. Using e17 I had to finish (yes, I started these config files some time ago, but didn't finish it until today) the lineakd keyboard mapping and the lineak.conf file.
The keyboard mapping is here: tm4002.acertm4000.def, you need to copy the text into the /etc/linkeakd.def file.
In your /etc/init.d/boot.local file you should add a reference to the tm4002.hotkeys script that set the right keycodes in your kernel mapping. (need to run the script outside of your X)
Afterwards run:

# did you run the hotkeys script outside of your X?
lineakd -c ACER-TM4000  # set the right keyboard
lineakd -v              # and test it by pressing the keys, finish by CTRL+C

MailLED

You can now copy my lineakd.conf to your ~/.lineakd/ home directory. Now run 'lineakd&' to run the lineakd daemon. (don't forget to add it to one of your run-on-X-login files so that it's automagialy loaded on login.

Johan Vromans hacked around and made a driver for the MailLED. Driver+info here

Mobile device issues

Smart Battery System

This battery is a kind of Smart Battery, unfortunately the kernel doesn't support it fully at the moment of writing. There is a solution: patchking your dsdt.
Read this gentoo-wiki page to know how to patch your kernel to load your own dsdt.
You can get my patched and compiled DSDT.aml

Before I recommended to use the acpi_sbs kernel module, but it is incompatible with recent kernels, and generates segmentation faults (I lost hours to discover that was the origin of my segfaults)

Battery times

Depending on the powersaving options you choose (cpu throttling,..) and the activity you can get 4 to 4:30 hours of battery work. If you know a script that simulates workload on the PC to estimate batterytimes, please send me an email.

Suspend / Standby

The suspend2disk works if you are not using the ATI proprietary driver.
Gentoo delivers the 'suspend2-sources' and 'suspend2-userui' ebuilts. Emerge them and configure your /etc/hibernate/hibernate.conf file. To hibernate enter 'hibernate' as root.
I edited my /etc/acpi/defaults.sh to hibernate when pressing the power button.

Another way is to use a normal kernel with the normal suspend. To enable that run 'echo -n disk > /sys/power/state'. Don't forget to unload your usb modules before entering hibernation. Here's the script I wrote when I used that system to go into hibernation.

#!/bin/bash
MODULES="uhci_hcd ehci_hcd";
SWAPS="/dev/hda2";

#
# start software suspend stuff
#
echo "Preparing to Resume";
chvt 1;                         # changing to virtual terminal 1
echo "- removing some modules";
for module in $MODULES; do      # remove dangerous modules
  rmmod $module;
done;

#
# goto softsusp
#
sync                            # ensure no dataloss
echo -n disk > /sys/power/state

#
# resume normal stuff
#
echo -e "Returning from Resume";
chvt 7;
echo "- reloading some modules";
for module in $MODULES; do      # restore modules
  modprobe $module&
done;

# WARNING: remove this if you have to many applications open and your system is already swapping
# I don't know what will happen when removing the swap if your ram is not large enough
echo "- flushing swap";
for swap in $SWAPS; do          # add swap again
  swapoff $swap && swapon $swap;
done;
echo "- restarting hotplug";
/etc/init.d/hotplug restart&     # maybe not needed

Thanks

- me for writing this page :-)
- Werner Heuser for managing Tuxmobil (I've used it many times, and loads of other g33ks also)
- you for reading this page and sending your comments.

Tuxmobil listed Valid CSS! Valid XHTML 1.0!