Search:  
Gentoo Wiki

Acer_TravelMate_2403

This article is part of the Hardware series.
Laptops TV Tuner Cards Wireless Servers Storage Other Hardware Motherboards Related

Gentoo on an Acer TravelMate 2403 NoteBook

Contents

Introduction

The Acer TravelMate is small (33.5 x 24 x 3.4 cm) and lightweight (2.4 kg) laptop. It is powered by the Intel Celeron M CPU and comes with a wireless network card built in, DVD+/-RW drive.

TravelMate 2403 comes in two versions WXMi and NWXMi which differs only in OS installed - NWXMi has a Linpus Linux system installed, WXMi - Windows XP HE (AFAIR). Linpus is very limited in software included (no X window system, only text consoles), hence this tutorial on how to install Gentoo Linux instead.

This is still 'a work in progress' since I have not finished the configuration of all devices. Come back soon for a more detailed version.

Hardware spec.

or if you like the hardcore way:

Code: Output of lspci
00:00.0 Host bridge: Intel Corporation Mobile 915GM/PM/GMS/910GML Express Processor to DRAM Controller (rev 04)
00:02.0 VGA compatible controller: Intel Corporation Mobile 915GM/GMS/910GML Express Graphics Controller (rev 04)
00:02.1 Display controller: Intel Corporation Mobile 915GM/GMS/910GML Express Graphics Controller (rev 04)
00:1c.0 PCI bridge: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) PCI Express Port 1 (rev 04)
00:1c.1 PCI bridge: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) PCI Express Port 2 (rev 04)
00:1d.0 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #1 (rev 04)
00:1d.1 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #2 (rev 04)
00:1d.2 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #3 (rev 04)
00:1d.3 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #4 (rev 04)
00:1d.7 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB2 EHCI Controller (rev 04)
00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev d4)
00:1e.2 Multimedia audio controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) AC'97 Audio Controller (rev 04)
00:1e.3 Modem: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) AC'97 Modem Controller (rev 04)
00:1f.0 ISA bridge: Intel Corporation 82801FBM (ICH6M) LPC Interface Bridge (rev 04)
00:1f.1 IDE interface: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) IDE Controller (rev 04)
00:1f.3 SMBus: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) SMBus Controller (rev 04)
05:01.0 Ethernet controller: Broadcom Corporation BCM4401-B0 100Base-TX (rev 02)
05:02.0 Network controller: Broadcom Corporation BCM4318 [AirForce One 54g] 802.11g Wireless LAN Controller (rev 02)
05:04.0 CardBus bridge: Texas Instruments PCI1410 PC card Cardbus Controller (rev 02)

Installing Gentoo

First of all you need to download a minimal or univeral boot cd from the gentoo homepage, how to do this is documented in the Gentoo-Installation Manual. Boot from the CD, partition the harddrive, mount the / partition,... come on, you know all that ;-)

I have choosen stage3 for i686 CPU. First thing was the upgrade of gcc to 3.4.4 version, then setting -march=pentium-m in the CFLAGS then emerge -e system.

Kernel

After the first reboot you get surprised, because system hangs with the message "Uncompressing linux.... done. Now booting the kernel.".

Google claims that you need to add
acpi=off
or
pci=noacpi
or
pci=biosirq
to the kernel command line. Ok. It seems that it works. However in this case we will run into troubles with the DRI later.

The key is to *disable* the Local IO APIC in the kernel.

Linux Kernel Configuration: Disable Local IO APIC
Linux Kernel Configuration --->
   Processor type and features --->
          Subarchitecture Type (PC-compatible) --->
          Processor family (Pentium-M) --->
      [*] Local APIC support on uniprocessors
      [ ]   IO-APIC support on uniprocessors

Notice the "Pentium-M" processor family. This laptop has Celeron-M CPU, which works perfectly with this kernel option enabled. Just make sure that you are using gcc-3.4 or above. If necessary first compile the kernel with "Pentium" processor family, then emerge >=sys-devel/gcc-3.4, then change processor family to "Pentium-M" and...

Recompile (make), install the modules (make modules_install), copy bzImage to /boot (cp arch/i386/boot/bzImage /boot/vmlinuz), edit grub.conf. You may remove the kernel command (if you appended it before) and reboot.

Graphic Card

See this HowTo.

Sound

First enable it in the kernel:

Linux Kernel Configuration: Sound
Linux Kernel Configuration --->
   Device Drivers --->
      Sound --->
         <*> Sound card support
             Advanced Linux Sound Architecture --->
                <*> Advanced Linux Sound Architecture
                    PCI devices --->
                       <M> Intel/SiS/ nVidia/AMD/ALi AC97 Controller

If you build the intel-8x0 card support as a module, you'll have to remember to make sure that /etc/modprobe.d/alsa contains:

File: /etc/modprobe.d/alsa
alias snd-card-0 snd-intel8x0
alias sound-slot-0 snd-card-0

There are similar lines in that file, so just change them to correct values and uncomment. Afterwards run update-modules.

A good idea is to add the alsa flag in your USE variables, and append a line to /etc/modules.autoload/kernel-2.6

Keyboard

There are some additional keys, I assume they come handy to run web browser or mail client. xev does not display events when those keys are pressed. There is an ebuild called acerhk but I haven't tried too hard to make it work...

DVD read/write

Recording CD's and DVD+R(W) works perfectly. I have troubles with DVD-R(W) discs - I am only able to read them. Make sure that cdrecord does *not* run with root set-user-ID, and the user who wants to use the recorder is in the "cdrom" group (check permissions).

WiFi

See the Broadcom 43xx article.

IRDA

There is no IRDA port in this laptop.

Modem

Not fully tested yet - I am at the stage of loading modules without errors :-)

First of all make sure that you have proper kernel configuration:

Linux Kernel Configuration: Modem configuration
Linux Kernel Configuration --->
     Device Drivers  --->
          Sound  --->
               Advanced Linux Sound Architecture  --->
                    PCI devices --->
                         <M> Intel/SiS/nVidia/AMD MC97 Modem (EXPERIMENTAL)
          Network device support --->
               [*] Network device support
               <*>   PPP (point-to-point protocol) support
               <*>     PPP support for async serial ports
               <*>     PPP Deflate compression
               <*>     PPP BSD-Compress compression

You'll have to decide whether you want to build the modem support into the kernel or as the modules. My way (shown above) may be confusing - part as a module and part into the kernel. It is because I want to connect my iPAQ via the USB cable, what requires PPP support - I use it much more frequently then MC97 modem...

Notice that you'll have to configure the alsa sound system (as shown above)

Next step is the slmodem package:

$ echo 'net-dialup/slmodem ~x86' >> /etc/portage/package.keywords
$ emerge slmodem

First line is to make sure that you build recent version of the module (in my case it is 2.9.11_pre20051101), compatible with the kernel - otherwise you'll get the messages of unknown symbols.

Next, add the following line to the file /etc/modprobe.d/alsa:

File: /etc/modprobe.d/alsa
alias snd-card-1 snd-intel8x0m

Afterwards run update-modules. Edit the configuration file /etc/conf.d/slmodem to match your counrty, and add the slmodem to startup scripts:

$ rc-update add slmodem default

Ethernet

Works fine. Just use the b44 kernel module:

Linux Kernel Configuration: Ethernet
Linux Kernel Configuration --->
     Code maturity level options --->
          [*] Prompt for development and/or incomplete code/drivers
     Networking --->
          [*] Networking support
     Device drivers --->
          Network decice support --->
               [*] Network device support
                   Ethernet (10 or 100Mbit) --->
                        [*] EISA, VLB, PCI and on board controllers
                        <M>   Broadcom 4400 ethernet support

PC Card

See this guide.

Battery & Thermal

Thermal Zones are *NOT* working. However the fan does switch off when unused, and does switch on when compilation or other things which demand CPU's power are in progress - I assume this is done by the BIOS, so damage of CPU due to overheating is not likely. Linux just doesn't have the information on thermal zones.

Battery indicators are working fine when ACPI is compiled into kernel. You just have to emerge acpid.

Linux Kernel Configuration: ACPI
Linux Kernel Configuration --->
     Power management options (ACPI, APM) --->
          ACPI (Advanced Configuration and Power Interface) Support --->
               [*] ACPI Support
               <*> AC Adapter
               <*> Battery

In order to scale cpu frequency p4clockmod module & cpufreqd package are essential.

Optimizing performance

I am using following CFLAGS:

Code: grep FLAGS /etc/make.conf
CFLAGS="-Os -march=pentium-m -fomit-frame-pointer"
CXXFLAGS="-Os -march=pentium-m"

Somebody told me (actually I must have read it somewhere) that -fomit-frame-pointer can cause troubles when used to compile c++ programs. I have no experience to be able to confirm it - all I can tell is that c++ programs work fine without this flag.

You'll have to remember that -march=pentium-m requires >=sys-devel/gcc-3.4

Optimizing battery-saver

Suspend to RAM aka STR

It works fine, i did not even have to use any hibernate script or other stuff unloading modules. It just works - i left my acer over night suspended to ram and did not notice any serious battery energy drain;) What is more, I have even my wifi connection restored after resume:D

Linux Kernel Configuration: STR
Linux Kernel Configuration --->
     Power management options (ACPI, APM) --->
          ACPI (Advanced Configuration and Power Interface) Support --->
          [*]   Sleep States

However, you may experience shutdown on resume caused by power button signal. In order to prevent that I had to patch my kernel. Don't worry, it's nothing frightening :d Just please follow these instructions:

 # cd /usr/src

I changed this patch a bit to fit usual gentoo kernel paths naming (I assume you have linux symlink to your kernel sources in /usr/src directory)

 # wget http://www.wpk.p.lodz.pl/~vishna/acer2403/suppress_power_button_event_on_s3_resume.patch

Now it's time we applied the patch

 # patch -p0 < suppress_power_button_event_on_s3_resume.patch

It should give some output, if so change directory to /usr/src/linux and make clean; make && make modules_install then copy bzImage

Having booted the new kernel you can now suspend your computer (as root of course)

 # echo mem > /sys/power/state

However if you would like for example to suspend your laptop when you press the power button simply change one line of /etc/acpi/default.sh

#!/bin/sh
# Default acpi script that takes an entry for all actions

set $*

group=${1/\/*/}
action=${1/*\//}

case "$group" in
   button)
      case "$action" in
         power)  echo mem > /sys/power/state
           ;;
         *) logger "ACPI action $action is not defined"
            ;;
      esac
      ;;

   *)
      logger "ACPI group $group / action $action is not defined"
      ;;
esac

Summary

Stuff that works

Stuff that doesn't work

Stuff that hasn't been tested yet

Acknowledgement

Feel free to contact me if you have any questions or hints :-) -> sbart [at] o2.pl

Retrieved from "http://www.gentoo-wiki.info/Acer_TravelMate_2403"

Last modified: Sun, 20 Jul 2008 22:04:00 +0000 Hits: 19,521