Acer TravelMate 2403
From Gentoo Linux Wiki
| Laptops • TV Tuner Cards • Wireless • Servers • Storage • Other Hardware • Motherboards • Related |
[edit] Gentoo on an Acer TravelMate 2403 NoteBook
Contents |
[edit] 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.
[edit] Hardware spec.
- Intel Celeron-M with 1024kB of cache
- Intel 915 graphics card (DualHead, 128 MB of shared ram)
- Broadcom Wireless Lan card
- Broadcom Ethernet card
- Texas Instruments Cardbus
- AC/MC 97 soundcard and modem (Intel 8x0)
- 40 GB HDD
- 256 RAM
- 3 USB 2.0 ports
- Dual layer DVD+/-RW
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) |
[edit] 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.
[edit] 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 addacpi=offor
pci=noacpior
pci=biosirqto 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.
[edit] Graphic Card
See this HowTo.
[edit] 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
[edit] 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...
[edit] 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).
[edit] WiFi
See the Broadcom 43xx article.
[edit] IRDA
There is no IRDA port in this laptop.
[edit] 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
[edit] 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
|
[edit] PC Card
See this guide.
[edit] 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.
[edit] 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
[edit] Optimizing battery-saver
[edit] 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
[edit] Summary
[edit] Stuff that works
- DRI on Intel 915 graphics card
- Ethernet adapter
- USB 2.0
- Sound chip
- Wireless Network Card
[edit] Stuff that doesn't work
- Thermal zones
- 4-way button on touchpad and mail led
[edit] Stuff that hasn't been tested yet
- Modem
- PCMCIA
- DualHead
[edit] Acknowledgement
- Other Acer pages in the Hardware section of this wiki
- Mirek Szymanski for his hint on how to configure DRI
- VinzC for his thread on how to patch the X-server
- This good soul(s) who corrected some mistakes and changed my formatting to official wiki style :-)
Feel free to contact me if you have any questions or hints :-) -> sbart [at] o2.pl

