Fedora Core 5/6 on a Acer Travelmate 3012 WTMi


Hardware | Software | Xorg | Network | Modem | Sound | IrDA | Bluetooth | ACPI | Firewire | Card Reader | Misc | Files | Links

This document covers the installation of RedHat Fedora Core 5/6 on a Acer Travelmate 3012 WTMi. The installation is straightforward, just follow the instructions of the installation wizard. Therefore, I concentrated on special, tricky things. I used the vanilla kernel 2.6.17.1, to

without patching the kernel.
Update regarding Fedora Core 6
With FC6 I used the kernel shipped with the distribution (kernel-2.6.18-1.2798.fc6), which is SMP-able and works also with ACPI (see below).


This notebook was shipped with preinstalled MS Windows XP (on FAT32!), therefore I used a dual boot configuration. I advise to keep the windows partition, since enable/disable of sound (and probly wlan and bluetooth) can only be done through the acer windows tools. For wlan and bluetooth the two buttons (LED) in front of the notebook should work, even if the key is unknown to the kernel.


Hardware

The mandatory output of lspci
00:00.0 Host bridge: Intel Corporation Mobile Memory Controller Hub (rev 03)
00:02.0 VGA compatible controller: Intel Corporation Mobile Integrated Graphics Controller (rev 03)
00:02.1 Display controller: Intel Corporation Mobile Integrated Graphics Controller (rev 03)
00:1b.0 Audio device: Intel Corporation 82801G (ICH7 Family) High Definition Audio Controller (rev 02)
00:1c.0 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express Port 1 (rev 02)
00:1c.1 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express Port 2 (rev 02)
00:1c.2 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express Port 3 (rev 02)
00:1c.3 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express Port 4 (rev 02)
00:1d.0 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI #1 (rev 02)
00:1d.1 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI #2 (rev 02)
00:1d.2 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI #3 (rev 02)
00:1d.3 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI #4 (rev 02)
00:1d.7 USB Controller: Intel Corporation 82801G (ICH7 Family) USB2 EHCI Controller (rev 02)
00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev e2)
00:1f.0 ISA bridge: Intel Corporation 82801GBM (ICH7-M) LPC Interface Bridge (rev 02)
00:1f.2 IDE interface: Intel Corporation 82801GBM/GHM (ICH7 Family) Serial ATA Storage Controllers cc=IDE (rev 02)
00:1f.3 SMBus: Intel Corporation 82801G (ICH7 Family) SMBus Controller (rev 02)
02:00.0 Network controller: Intel Corporation Unknown device 4222 (rev 02)
03:00.0 Ethernet controller: Broadcom Corporation NetLink BCM5789 Gigabit Ethernet PCI Express (rev 11)
0a:09.0 CardBus bridge: Texas Instruments Unknown device 8039
0a:09.1 FireWire (IEEE 1394): Texas Instruments Unknown device 803a
0a:09.2 Mass storage controller: Texas Instruments Unknown device 803b


Software

I used the images of RedHat Fedora Core 5/6 as available at Red Hats site or at www.linuxiso.org. For the installation described here, only the binary CDs are needed.
Partition Magic was used to resize the FAT32 partition.


Xorg

Following the instructions of the installation wizard results in a working X environment based on the VESA framebuffer device. The following issues must be addressed afterwards.
  1. resolution 1280x800 not available
  2. X driver i810 does not work this new chip
add 1.)
To get highest possible resolution the VESA BIOS must be patched. The tool 915resolution does this job very well. The rpm package includes a init script to re-patch the VESA BIOS on every boot and should work out-of-the-box.
For testing purposes you can use the command
	$ 915resolution -l 
to pick up an entry, you don't need, i.e. 38. and patch it with the following command.
	$ 915resolution 38 1280 800

add 2.)
The i810 Xorg driver release (1.4.1.3) shipped with FC5 does not like the graphic chip, it simply says: no device detected. I gave the development version (1.6.0) a try and it works, but DRI is not available. To fix this the packages for libdrm and mesa must be also updated.
Let's hope for regular update packages which addresses this issue.
Update: A beta version of Xorg 7.1 was released by the Fedora Project. The packages can be downloaded here - new librm and mesa packages are also in this directory. :-)

Update regarding Fedora Core 6
Everything works out of the box since FC6 is shipped with Xorg 7.1 :-))
Also, Fedora Core 6 is shipped with an experimental X driver for Intel graphic chipsets up to and including i945. This new driver supports screen resolutions which are not provided by the BIOS. Consequently, patching the VESA BIOS is obsolete if this new driver is used.


Network


Modem

Not tested yet, I guess it's not supported.


Sound

Sound did not work out-of-the-box and it did not work anyway as it can be read here.
With the following patch applied to alsa-driver-1.0.12rc3 I was able to get sound working. Here is the corresponding section of my /etc/modprobe.conf
	alias snd-card-0 snd-hda-intel
	options snd-card-0 index=0 
	remove snd-hda-intel { /usr/sbin/alsactl store 0 >/dev/null 2>&1 || : ; }; /sbin/modprobe -r --ignore-remove snd-hda-intel
I also managed to get the hardware volume keys working within the X environment - the solution does not depend on special window or session managers. I use the software piece xbindkeys. You can start it manually, I use a start script in /etc/X11/xinit/xinitrc.d/. Here is the output of $HOME/.xbindkeysrc. You can double check the keycode with xmodmap.
# set keycode directly (here control + f with my keyboard)
# use xbindkeys -mk to find the definition


#Vol -5% # 
 "amixer sset Front 1- unmute  > /dev/null"
    c:174
#    m:0x0 + c:174 # <- also possible
#    XF86AudioLowerVolume

#Vol +5% # 
 "amixer sset Front 1+ unmute > /dev/null"
    c:176
#    XF86AudioRaiseVolume

 #Vol 0% # 
 "amixer sset Front toggle > /dev/null"
    c:160
#    XF86AudioMute


Update regarding Fedora Core 6
Due to a change in the kernel header files you need to amand the sources of many applications, e.g. alsa-driver. Mostly the following line in the directory of the application sources will help.
grep -rl '#include <linux/config.h>' . | xargs perl -pi -e's,#include <linux/config.h>,/* #include <linux/config.h> */,'
Unfortunately, to get the alsa-driver package compiled you need an additional change. You can download the complete patch for alsa-driver-1.0.13 here.


IrDA

Well, in the past I had no problems to get IrDA working in SIR mode. But with this notebook I had to use a different method than usual.
I enabled both serial interfaces in the BIOS (the first one is only available with a docking station). Instead of talking to device ttyS1 I had to use the specific FIR driver with the alias name irda0. The contents of the files /etc/sysconfig/irda and the IrDA part of /etc/modprobe.conf are shown below
	$ cat /etc/sysconfig/irda
	IRDA=yes
	DEVICE=irda0
	DISCOVERY=yes
	$

	$ cat /etc/modprobe.conf
	...
	alias irda0 nsc-ircc
	options nsc-ircc io=0x2f8 irq=3 dma=1
	install nsc-ircc /bin/setserial /dev/ttyS1 uart none ; /sbin/modprobe --ignore-install nsc-ircc
	remove nsc-ircc /sbin/modprobe -r --ignore-remove nsc-ircc ; /bin/setserial /dev/ttyS1 uart unknown
	...
	$	
The openobex tools to use the IrDA interface are part of the distribution.

I have not yet tested the FIR mode, maybe it's not available at this time.
	$ grep nsc /var/log/messages
	Apr 16 20:20:52 tuvok kernel: nsc-ircc, chip->init
	Apr 16 20:20:52 tuvok kernel: nsc-ircc, Found chip at base=0x164e
	Apr 16 20:20:52 tuvok kernel: nsc-ircc, driver loaded (Dag Brattli)
	Apr 16 20:20:52 tuvok kernel: nsc-ircc, Found dongle: Supports SIR Mode only

Update regarding FIR:
With the following options I was able to enhance the transfer speed
	options nsc-ircc io=0x2f8 irq=3 dma=1
Unfortunately, my test transfers spotted out a transfer speed of 2x SIR, at least far away from FIR.


Bluetooth

Tested, works but not yet documented. :-(

To enable the bluetooth hardware itself press the left LED button in front of the notebook.


ACPI

Three things should be taken into account.
  1. suspend partition
  2. hardware keys
  3. cpu frequency scaling/brightness adjustment

add 1.)
I use the swap partition for suspend to disk. The partition can be determined during the kernel configuration (CONFIG_PM_STD_PARTITION) and/or named with the kernel parameter resume (e.g.resume=/dev/sda6) in the bootloader configuration or interactively during the boot process.
add 3.)
No manual intervention for cpu frequency scaling needed, works out-of-the box. The brightness adjustment has to be done manually using the special Fn keys.
add 2.)
I started the acpi daemon with a virgin configuration and checked the output of /var/log/acpid while pressing FN and the corresponding special keys. I decided to use the power button for a normal shutdown, the lid control stick for suspend to disk (S4) and the suspend button for suspend to RAM (S3).
Finally I got ACPI working, at least Suspend to disk. Some issues are still outstanding, i.e. sometimes the X server is reseted during resume.
These are the steps to solve the former ACPI problem:
  1. Use the latested released stable kernel, 2.6.17.1 in this case.
  2. Fix the broken DSDT an incorporate the fixed version into the kernel
  3. Adapt the script for the suspend modi.
Step i. - should be clear.
Step ii. - three different methods are available, two of them require a kernel patch. But the recent vanilla kernels provide a way to use a so-called custom DSDT - I used this one. I copied my fixed DSDT to /usr/src/linux-<version>/include/acpi/dsdt_table.h.
In the kernel configuration the option Select only drivers that don't need compile-time external firmware (located in Device Drivers -> Generic Driver Options) must be disabled. Afterwards enable Include Custom DSDT (located in Power management options (ACPI, PM) -> ACPI (...) Support) and provided the full path to the file dsdt_table.h in the next field. Due to my experiences I advise compile the drivers for SATA and EXT3 statically into the kernel to get ACPI working. My kernel configuration can be downloaded here.
Follow the normal procedure to compile the new kernel, put it in place, configure boot loader and reboot with the new kernel.
You may also checkout my step by step guide.
Step iii. - the acpi script is available here.
Update regarding Fedora Core 6
The kernel shipped with FC6 works, even with the broken ACPI BIOS from Acer. So you can go ahead with the pre-compiled/delivered kernel by/from Fedora.



Firewire

The notebook is shipped with an external Firewire DVD drive and it works like a charm. The firewire controller is accessable with the kernel module sbp2 and thus the DVD drive appears as SCSI device. For faster access try the option serialize_io=0


5in1 Card Reader

The driver tifmxx is needed to get the cardreader working (still some problems during writing). Compile and install the driver.
mkdir tifm-<version> && cd tifm-<version>
tar xjf /path/to/tifm-<version>.tar.bz2
make && cp *.ko /lib/modules/`uname -r`/kernel/drivers/mmc/ && depmod -a
modprobe tifm_7xx1 && modprobe mmc_block && modprobe tifm_sd
Once you insert a SD card it should be accessable using /dev/mmcblk*.

Update regarding Fedora Core 6
As already mentioned above you have to amand the sources to adapt them to the change in kernel header files. The full procedure is now:
mkdir tifm-<version> && cd tifm-<version>
tar xjf /path/to/tifm-<version>.tar.bz2
grep -rl '#include <linux/config.h>' . | xargs perl -pi -e's,#include <linux/config.h>,/* #include <linux/config.h> */,'
make && cp *.ko /lib/modules/`uname -r`/kernel/drivers/mmc/ && depmod -a


Misc

Instead of adding/removing lines to the file /etc/modprobe.conf, it's easier to add/remove files to the directory /etc/modpobe.d/.
	$ ls /etc/modprobe.d/
	ieee1394  ipw3945  irda  sound
	$ cat /etc/modprobe.d/ieee1394 
	options sbp2 serialize_io=0


Some the special keys are unknown to the keyboard driver of the kernel, thus it's not possible to assign them actions, i.e. using xbindkeys. I added the following lines to /etc/rc.local
	setkeycodes e073 148
	setkeycodes e074 149
	setkeycodes e026 202
	setkeycodes e027 203
and afterwards the 4 special keys on the top left corner can be accessed in a X window session with the keycodes 236, 178, 151 and 159 (from left to right).

If you want to coexist your linux with Windows you should decide which OS loader loads which operating system. In my case I decided that grub should load the second stage of the Windows loader too. My linux loader resides in the masterbootrecord. Here is my grub.conf
default=0
timeout=5
splashimage=(hd0,2)/grub/splash.xpm.gz
#hiddenmenu
title Fedora Core (2.6.17.1smp)
        root (hd0,2)
        kernel /vmlinuz-2.6.17.1smp ro root=LABEL=/ rhgb quiet 
        initrd /initrd-2.6.17.1smp.img
title Fedora Core (2.6.17-1.2139_FC5smp)
        root (hd0,2)
        kernel /vmlinuz-2.6.17-1.2139_FC5smp ro root=LABEL=/ rhgb quiet
        initrd /initrd-2.6.17-1.2139_FC5smp.img
title Other
        rootnoverify (hd0,1)
        chainloader +1

Well, I think I should also post the output of /sbin/fdisk -l /dev/sda for better reading of the "grub.conf"
Disk /dev/sda: 100.0 GB, 100030242816 bytes
255 heads, 63 sectors/track, 12161 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1         509     4088511   12  Compaq diagnostics
/dev/sda2   *         510        2039    12289725    c  W95 FAT32 (LBA)
/dev/sda3            2040        2052      104422+  83  Linux
/dev/sda4            2053       12161    81200542+   5  Extended
/dev/sda5            2053        4663    20972826   83  Linux
/dev/sda6            4664        4924     2096451   82  Linux swap / Solaris
/dev/sda7            4925       12161    58131171   83  Linux
where /dev/sda3 is mounted at "/boot" and /dev/sda5 is mounted at "/".

So far no chance to get the Webcam working ... but there is some development ongoing.


Files


Links


Last Modified: 02 December 2006

TuxMobil - Linux on Laptops, Notebooks, PDAs and Mobile Phones Linux On Laptops
udoseidel@gmx.de