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
- have an more up-to-date ALSA driver,
- have the latest ieee80211 stack,
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
- Intel Pentium M Core Duo 1.66 GHz (T2300)
- HDD ST9100824AS (SATA, 100.0 GByte)
- 224 MB Intel 950GMA graphic adapter
- 12.1" WXGA-Display
- 1024 MByte RAM
- DVD+-RW Double Layer Slim-Line drive (external FireWire; 8x DVD-+R, 4x DVD-+RW, 3x DVD-RAM, 24x CD-R, 10x CD-RW, 12x DVD, 24x CD-ROM)
- USB 2.0 (Intel)
- Broadcom Corporation NetXtreme BCM5789 Gigabit ethernet
- Intel Pro Wireless 3945 WLAN (802.11a/b/g)
- FIR-Chip (2nd serial interface)
- Bluetooth 2.0
- Firewire (IEEE 1394) Texas Instruments
- Sound Intel 82801G (ICH7 Family) HDA
- PCMCIA (Texas Instruments)
- 5in1 Card Reader (Texas Instruments; for SD,MMC,MS,MS PRO and xD)
- 1.3 Megapixel Webcam (USB)
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.
- resolution 1280x800 not available
- 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
- gigabit ethernet card
No manual intervention needed, the tigon driver tg3 is used
- wlan interface card
If the wlan hardware is disabled (i.e. due to windows configuration or
you removed the battery), press the right LED button in front of the notebook -
yes, it's a button.
Since this chipset is very new, no linux driver is available within the
kernel sources. Two approaches to get the WLAN stuff working are possible
- ipw3945
The linux kernel 2.6.14 and newer includes the ieee80211 subsystem, so the
ipw3945 can be used without patching
the kernel. The latest official stable version can be downloaded on a
Intel site.
For compiling the ipw3945 module I used the ieee82011 files which
come with the kernel (make IEEE80211_INC=/lib/modules/`uname -r`/source/include/)
The logical name of the wlan interface is eth1.
Here is the wlan part of my /etc/modprobe.conf
alias eth1 ipw3945
install ipw3945 /sbin/modprobe --ignore-install ipw3945 ; sleep 0.5; /sbin/ipw3945d --quiet
remove ipw3945 /sbin/ipw3945d --kill ; /sbin/modprobe -r --ignore-remove ipw3945
However, the wlan was never started automatically. I added some lines to the
file /etc/sysconfig/network-scripts/network-functions
--- network-functions.ORIG 2006-04-15 00:28:01.000000000 +0200
+++ network-functions 2006-04-17 00:00:58.000000000 +0200
@@ -201,6 +201,10 @@
if [ -z "$alias" -o "$alias" = "off" -o "$alias" = "/bin/true" ]; then
return 2
fi
+ if [ x"$alias"y = xipw3945y ]; then
+ /sbin/ipw3945d --kill
+ /sbin/ipw3945d --quiet
+ fi
modprobe $1 > /dev/null 2>&1 || {
return 1
}
to fix this.
Update regarding Fedora Core 6
To get the ipw3945 driver compiled you need (again) to apply a
patch. Details about the problem
are document here.
Also, I decided to change the way how the driver is loaded. I removed the lines dealing with the daemon
ipw3945d from the file /etc/modprobe.conf and use now init script to start that daemon during the
boot process.
- ndiswrapper
In the past I used ndiswrapper
in conjunction with the windows driver to get the wlan interface working for linux.
The logical name for the interface was wlan0
I made only one test with linux kernel 2.6.16.5 which ended up in kernel oops.
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.
- suspend partition
- hardware keys
- 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:
- Use the latested released stable kernel, 2.6.17.1 in this case.
- Fix the broken DSDT an incorporate the fixed version into the kernel
- 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