Acer Aspire 5024 WLMi
From Gentoo Linux Wiki
| Laptops • TV Tuner Cards • Wireless • Servers • Storage • Other Hardware • Motherboards • Related |
This text content of this article is licensed under the Creative Commons Attribution-ShareAlike 3.0 License
. The article's authors are noted at the bottom of the page.
Images used in this article individually Copyright 2005 Notebook Review (www.notebookreview.com). Click each image for copyright details.
This document describes the settings used to configure Gentoo 7000.1 64bit on an Acer Aspire 5024WLMi (aka TravelMate 4400). Currently updated for the 2.6.25 kernel including:
- Fast DRI and OpenGL rendering with the MIT licensed Radeon driver (6.8)
- Stable wireless with the in-kernel B43 driver
- Reliable suspend to RAM including reapplication of wifi and system settings on resume
- Emulation of the middle mouse button with two-finger tap on the touchpad
- Recogonition of unique keyboard buttons by the kernel and xorg
Todo
- Undervolt the CPU to reduce heat and lengthen battery runtime PHC patch or Gentoo patch
Contents |
[edit] Overview
[edit] Hardware Configuration
This system is configured with:
- Processor: 1.6Ghz 64bit AMD Turion64 ML-30
- Motherboard: ATI RS480 Chipset
- Memory: 512MB 200/400Mhz DDR
- Graphics: ATI Radeon X700 Mobile
- Disk: 100GB Hitachi Travelstar 5K100 series
- LCD: LG Philips LP154W01-A5 wide screen 1280x800 (100 dpi)
- LAN: Realtek RTL-8169 Gigabit Ethernet
- Wifi: Broadcom BCM4318 [AirForce One 54g]
- Battery: 8-cell battery
[edit] Benchmarks
[edit] Bonnie++ 1.03
| Code: bonnie results |
Version 1.03c ------Sequential Output------ --Sequential Input- --Random-
-Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
Machine Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP /sec %CP
arnold 1G 31218 93 37207 24 14150 9 19807 54 30893 10 193.9 0
------Sequential Create------ --------Random Create--------
-Create-- --Read--- -Delete-- -Create-- --Read--- -Delete--
files /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP
16 14860 89 +++++ +++ 15162 99 16326 99 +++++ +++ 14109 99
|
[edit] OpenSSL 0.9.8d
| Code: openssl speed rsa4096 dsa2048 |
compiler: x86_64-pc-linux-gnu-gcc -O3 -fomit-frame-pointer
-ftracer -mfpmath=sse,387 -ffast-math -march=athlon64
-pipe -Wa,--noexecstack
available timing options: TIMES TIMEB HZ=100 [sysconf value]
timing function used: times
sign/s verify/s
rsa 4096 bits 27.2 1961.6
dsa 2048 bits 672.8 563.5
|
[edit] power consumption
Measured with a Kill-a-Watt device (still coming...)
- Idle wattage, LCD on: TBD, LCD off: TBD
- CPU at 100%, LCD on: TBD
[edit] Configuration
[edit] Processor
| File: /proc/cpuinfo |
processor : 0 vendor_id : AuthenticAMD cpu family : 15 model : 36 model name : AMD Turion(tm) 64 Mobile Technology ML-30 stepping : 2 cpu MHz : 800.000 cache size : 1024 KB |
| Linux Kernel Configuration: Processor and General Settings |
[*] Prompt for development and/or incomplete code/drivers
Processor type and features --->
[*] Tickless System (Dynamic Ticks)
[ ] High Resolution Timer Support (buggy ACPI on ATI RS480 chipset block HR timer!)
Processor family (Opteron/Athlon64/Hammer/K8)
Preemption Model (Preemptible Kernel (Low-Latency Desktop))
[*] Machine check support
[*] AMD MCE features
[*] MTRR (Memory Type Range Register) support
Timer frequency (1000 HZ)
<*> Hardware Monitoring support --->
<*> AMD Athlon64/FX or Opteron temperature sensor
|
[edit] make.conf
| File: /etc/make.conf |
CHOST="x86_64-pc-linux-gnu"
CFLAGS="-Os -march=athlon64 -msse3 -mfpmath=sse,387 \
-ffast-math -ftracer -fomit-frame-pointer \
-pipe"
CXXFLAGS="${CFLAGS}"
FFLAGS="${CFLAGS}"
USE="3dnow 3dnowext mmx mmxext sse sse2 ssse3"
|
[edit] Related packages to install
lm_sensors pciutils
[edit] Memory
| Code: lspci |
Advanced Micro Devices [AMD] K8 DRAM Controller |
[edit] Startup Settings
Boost FSB DDR speed from 166/333Mhz to 200/400Mhz and Disable 2T timing
setpci -v -s 0:18.2 96.b=70:70 setpci -v -s 0:18.2 93.b=00:10
[edit] Power Management and Suspend
| Code: cat bus/input/devices |
N: Name="Power Button (FF)" P: Phys=LNXPWRBN/button/input0 S: Sysfs=/class/input/input0 N: Name="Lid Switch" P: Phys=PNP0C0D/button/input0 S: Sysfs=/class/input/input1 |
| Linux Kernel Configuration: ACPI and Power Management |
Power management options --->
[*] Power Management support
[*] Suspend to RAM and standby
ACPI (Advanced Configuration and Power Interface) Support --->
[*] Deprecated /proc/acpi/event support
[*] ACPI Support
[*] Sleep States
<*> AC Adapter
<*> Battery
<*> Button
<*> Processor
<*> Thermal Zone
-*- WMI (EXPERIMENTAL)
CPU Frequency scaling --->
[*] CPU Frequency scaling
<*> CPU frequency translation statistics
Default CPUFreq governor (ondemand) --->
<*> powersave governor
<*> ondemand cpufreq policy governor
<*> AMD Opteron/Athlon64 PowerNow!
[*] CPU idle PM support
Kernel hacking --->
[*] Kernel debugging
[*] Collect kernel timers statistics
|
[edit] Related packages to install
powertop sys-power/suspend
[edit] Hibernation / Suspend-to-RAM
Suspend to RAM works with the following:
- s2ram utility (part of the openSuSE suspend package)
- vanilla 2.6.25
- supplied kernel dot configuration file #2.6.25.
- supplied /etc/acpi/events/power script (found below)
- supplied /etc/acpi/lid.sh script (found below)
- supplied /etc/conf.d/powersave script in the Gentoo-specific section
[edit] S2RAM Installation
First emerge the latest s2ram:
echo sys-power/suspend >> /etc/portage/package.keywords emerge -u suspend
[edit] ACPI Event Scripts
| File: /etc/acpi/events/default |
# event=.* # action=/etc/acpi/default.sh %e |
| File: /etc/acpi/events/lid |
event=button[ /]lid.* action=s2ram --vbe_post --force && /etc/conf.d/powersave |
| File: /etc/acpi/events/power |
event=button[ /]power.* action=/sbin/init 0 |
[edit] Startup Settings
Lower the frequency step-up threshold and increase the sampling rate
cd /sys/devices/system/cpu/cpu0/cpufreq/ondemand echo 30 > up_threshold cp sampling_rate_min sampling_rate cd -
Never let output devices starve input devices, so start the PCI latency wide open on input (memory, HD, network) and incrementally step down to output devices (sound, video)
setpci -v -s 00:14.4 latency_timer=ff # PCI-PCI Bridge setpci -v -s 00:14.1 latency_timer=f0 # IDE Controller setpci -v -s 06:07.0 latency_timer=e6 # RTL-8169 Gigabit Ethernet setpci -v -s 00:13.2 latency_timer=e0 # USB2 (EHCI) setpci -v -s 00:13.0 latency_timer=d6 # USB (OHCI) setpci -v -s 00:13.1 latency_timer=d6 # USB (OHCI) setpci -v -s 06:05.0 latency_timer=d0 # BCM4318 802.11g Wireless setpci -v -s 01:00.0 latency_timer=c6 # Radeon Mobility X700 (PCIE) setpci -v -s 00:14.5 latency_timer=c0 # AC'97 Audio Controller (rev 02)
Prevent HAL from starting ACPI-related daemons for things we already manage:
cd /usr/libexec chmod -x hald-addon-acpi hald-addon-cpufreq hald-addon-input cd -
[edit] Video & Display
| Code: lspci |
ATI Technologies Inc Radeon Mobility X700 (PCIE) |
| Linux Kernel Configuration: Graphics Settings |
Graphics support ---> --- /dev/agpgart (AGP Support) <*> Direct Rendering Manager (XFree86 4.1.0 and higher DRI support) <*> ATI Radeon [*] Backlight & LCD device support ---> <*> Lowlevel LCD controls <*> Lowlevel Backlight controls |
[edit] Make.conf
| File: /etc/make.conf |
VIDEO_CARDS="radeon" USE="xv opengl dri xvmc xrandr X" |
[edit] Xorg
As of 8 March 2008, the stable radeon driver (xf86-video-ati 6.6.3) issues an interrupt for each vertical screen refresh, which prevents the CPU from entering lower sleep states resulting in wasted power usage. This can be fixed by unmasking and emerging the unstable (xf86-video-xati 6.8) driver, in addition to using the latest xorg-server version (xorg-server 1.4.0.90-r3)
| File: /etc/portage/package.keywords |
x11-apps/mesa-progs x11-base/xorg-server x11-drivers/xf86-input-keyboard x11-drivers/xf86-input-mouse x11-drivers/xf86-video-ati x11-libs/libXrender x11-libs/pixman x11-proto/renderproto |
| File: /etc/portage/package.unmask |
x11-drivers/xf86-video-ati |
[edit] startx
The latest 6.8 radeon driver doesn't properly calculate the DPI (even with the DisplaySize attribute in xorg.conf) which results in KDE or GNOME using massive fonts. The temporary fix until the driver is fixed is to explicity tell X the DPI.
Edit /usr/bin/startx and add the dpi argument as following:
defaultserverargs="-nolisten tcp -br -dpi 100"
[edit] Portions of Xorg Configuration
It took me a while to figure out why X was feeling so slow (along with CPU spikes to 100%) when using simply GUI elements in 2D, even with DRI enabled. Clicking the file menu in Firefox would spike the CPU to 100% for a split second.
Enabling the XAA software renderer and other small tweaks significantly improve 2D performance in xorg (tested with gtkperf).
| File: /etc/X11/xorg.conf |
Section "Module"
Load "dbe"
Load "ddc"
Load "dri"
Load "glx"
...
EndSection
Section "Monitor"
Identifier "panel"
Option "DPMS"
DisplaySize 323 202
EndSection
Section "Device"
Identifier "radeon"
Driver "radeon"
Option "RenderAccel" "on"
Option "AccelMethod" "XAA"
Option "ColorTiling" "on"
Option "DynamicClocks" "on"
Option "EnablePageFlip" "on"
Option "XAANoOffscreenPixmaps" "off"
# enable radeon specific xinerama
# Option "MergedFB" "true"
# Option "CRT2Position" "RightOf"
# Option "CRT2Hsync" "50-75"
# Option "CRT2VRefresh" "30-82"
# Option "MetaModes" "1024x768-1280x1024"
# Option "MergedNonRectangular" "true"
# Video overlay
# Option "OverlayOnCRTC2" "on"
EndSection
Section "Screen"
Identifier "screen"
Device "radeon"
Monitor "panel"
DefaultDepth 24
SubSection "Display"
Viewport 0 0
Depth 24
Modes "1280x800"
EndSubSection
EndSection
Section "Extensions"
Option "Composite" "true"
EndSection
Section "ServerFlags"
Option "AIGLX" "false"
EndSection
Section "DRI"
Mode 0666
EndSection
|
[edit] DRI Configuration
| File: /etc/drirc |
<driconf>
<device screen="0" driver="r300">
<application name="all">
<option name="force_s3tc_enable" value="true" />
<option name="fp_optimization" value="0" />
<option name="fthrottle_mode" value="0" />
<option name="tcl_mode" value="3" />
<option name="vblank_mode" value="3" />
</application>
</device>
</driconf>
|
[edit] Mplayer Configuration
| File: /etc/mplayer.conf |
vo=xv # currently GL is too slow w/ radeon driver # gl:rectangle=1:swapinterval=1:slice-height=0 lavdopts=fast=1:skiploopfilter=all:threads=3 vfm=ffmpeg cache=1024 double=true vsync=true autosync=30 framedrop=true noborder=true colorkey="0x101010" brightness=5 really-quiet=true afm=mp3lib ao=alsa stop-xscreensaver=true ## # Subtitles # font="/usr/share/fonts/corefonts/times.ttf" ffactor="1" # black outline sub-bg-alpha="0" # background color ala closed captions sub-bg-color="0" # black to white subpos="90" # By default subtitles are too low subalign="2" spuaa=4 # Anti-alias subs. (4: best and slowest) slang=en,eng sub-fuzziness=1 # Find subtitle files. subfont-autoscale=2 # Set font size. (2: proportional to movie width) subfont-blur=3.5 # Set font blur radius. (default: 2) subfont-outline=2.5 # Set font outline thickness. (default: 2) subfont-text-scale=4.5 # Set autoscale coefficient. (default: 5) subfont-osd-scale=4.4 # Set autoscale coefficient. (default: 6) |
[edit] Related packages to install
vbetool mesa-progs xdpyinfo xdriinfo xvinfo driconf read-edid
[edit] IO Subsystem
| Linux Kernel Configuration: Block Settings |
Block layer ---> [*] Block layer SG support v4 (EXPERIMENTAL) IO Schedulers ---> <*> CFQ I/O scheduler Device Drivers ---> [*] Block devices ---> <*> Loopback device support |
[edit] IDE
| Code: lspci |
ATI Technologies Inc Standard PCI IDE Controller |
| File: cat /sys/block/*/device/model |
Hitachi 100GB (HTS541010G9AT00) CD/DVDW TS-L632B |
| Linux Kernel Configuration: IDE/SCSI Settings |
Device Drivers ---> SCSI device support ---> <*> SCSI disk support <*> SCSI CDROM support <*> SCSI generic support Serial ATA (prod) and Parallel ATA (experimental) drivers ---> <*> ATI PATA support |
[edit] Startup Settings
Enable read-ahead, write caching, and disable spin down and HD head parking both of which can kill laptop HDs
hdparm -A1 -a1024 -W1 -S0 -B254 /dev/sda &> /dev/null
for i in /sys/block/*/queue/{read_ahead_kb,nr_requests}; do echo 1024 > $i; done
[edit] Related packages to install
hdparm smartmontools
[edit] USB
| Code: lspci |
ATI Technologies Inc IXP SB400 USB Host Controller ATI Technologies Inc IXP SB400 USB2 Host Controller |
| File: sort -u /sys/bus/*/devices/usb*/product |
EHCI Host Controller OHCI Host Controller |
| Linux Kernel Configuration: USB Settings |
Device Drivers ---> USB support ---> <*> Support for Host-side USB [*] USB device filesystem [*] USB selective suspend/resume and wakeup (EXPERIMENTAL) <*> EHCI HCD (USB 2.0) support [*] Full speed ISO transactions (EXPERIMENTAL) <*> OHCI HCD support <*> USB Mass Storage support |
[edit] Startup Settings
Enable USB auto-suspend for all USB devices
for i in /sys/bus/usb/devices/*/power/autosuspend; do echo 1 > $i; done
[edit] Related packages to install
lsusb
[edit] Firewire
| Code: lspci |
Texas Instruments OHCI Compliant IEEE 1394 Host Controller |
| Linux Kernel Configuration: Firewire Settings |
Device Drivers ---> IEEE 1394 (FireWire) support ---> <*> IEEE 1394 (FireWire) support - alternative stack <*> Support for OHCI FireWire host controllers <M> Support for storage devices (SBP-2 protocol driver) |
[edit] SD Flash Reader
| Code: lspci |
Texas Instruments PCIxx21 Integrated FlashMedia Controller |
| Linux Kernel Configuration: Flash Reader Settings |
Device Drivers ---> MMC/SD Card support ---> <*> MMC support <*> MMC block device driver [*] Use bounce buffer for simple hosts <*> Secure Digital Host Controller Interface support <*> TI Flash Media MMC/SD Interface support [*] Misc devices ---> -*- TI Flash Media interface support <*> TI Flash Media PCI74xx/PCI76xx host adapter support |
[edit] Sound
| Code: lspci |
ATI Technologies Inc IXP SB400 AC'97 Audio Controller |
| Linux Kernel Configuration: Sound Settings |
Device Drivers ---> Sound ---> <*> Sound card support <*> Advanced Linux Sound Architecture <*> RTC Timer support PCI devices ---> <*> ATI IXP AC97 Controller [*] AC97 Power-Saving Mode (1) Default time-out for AC97 power-save mode |
[edit] Startup Settings
Enable power savings, which requires inputs to be muted
amixer set Line mute nocap &> /dev/null amixer set Mic mute nocap &> /dev/null echo Y > /sys/module/snd_ac97_codec/parameters/power_save
To save and restore your volume and audio IO settings over reboots, issue the following on the command line:
/etc/init.d/alsasound save rc-update add alsasound default
[edit] Network
| Linux Kernel Configuration: Generic Network Settings |
Networking options ---> <*> Packet socket [*] Packet socket: mmapped IO <*> Unix domain sockets [*] TCP/IP networking <*> Large Receive Offload (ipv4/tcp) [*] TCP: advanced congestion control <*> CUBIC TCP <*> TCP Veno Default TCP congestion control (Cubic) |
[edit] Ethernet Card
| Code: lspci |
Realtek Semiconductor Co., Ltd. RTL-8169 Gigabit Ethernet |
| Linux Kernel Configuration: NIC Settings |
Device Drivers ---> Network device support ---> [*] Ethernet (1000 Mbit) <*> Realtek 8169 gigabit ethernet support |
[edit] Related packages to install
sys-apps/ifplugd sys-apps/ethtool
[edit] Startup Settings
Disable wake-on-LAN and, if not plugged in reduce LAN to 100mbit, because both draw additional power
ethtool -s eth0 wol d ethtool eth0 | grep -q "detected: no" && ethtool -s eth0 speed 100
Add the following to /etc/conf.d/net to reduce the frequency rate ifplug queries the interface:
ifplugd_eth0="-t 15"
[edit] Wireless
| Code: lspci |
Broadcom Corporation BCM4318 802.11g Wireless LAN Controller |
See the Broadcom 43xx article.
[edit] IrDA (Infrared Port)
| Linux Kernel Configuration: IrDA Settings |
Networking ---> <*> IrDA (infrared) subsystem support ---> <*> IrCOMM protocol Infrared-port device drivers ---> <M> NSC PC87108/PC87338 |
It is important that the NSC PC87108/PC87338 driver is compiled as a module (will be called nsc-ircc). You may want to enable additional protocols which your IrDA devices support.
[edit] Related packages to install
sys-apps/setserial net-wireless/irda-utils
[edit] Configuration
Unfortunately, the 8250 serial driver will grab the IrDA port on boot. So we need to release it before loading the nsc-ircc module.
| File: /etc/serial.conf |
/dev/ttyS1 uart none |
| File: /etc/modules.autoload.d/kernel-2.6 |
nsc-ircc |
| File: /etc/conf.d/irda |
IRDA=yes IRDADEV=irda0 DISCOVERY=yes |
Finally, make sure that everything starts in the correct order on boot:
rc-update add serial boot rc-update add irda default
This will make the /etc/init.d/serial start before the nsc-ircc module is loaded, and /etc/init.d/irda afterwards. Test your IrDA port by bringing an IrDA device near the port and running
irdadump
Note that users who want to access the IrDA port need to be in the uucp group.
[edit] Bluetooth
For device/application specific setup see Category:Bluetooth
In some regions, Aspire 5020 notebooks were sold with Bluetooth modules connected via an internal usb interface.
| Code: lsusb |
Bus 002 Device 002: ID 0a12:0001 Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode) |
| Linux Kernel Configuration: Bluetooth Settings |
Networking ---> <*> Bluetooth subsystem support ---> <*> HCI USB driver |
[edit] Related packages to install
net-wireless/bluez-utils
[edit] Test your setup
echo "1" > /sys/devices/platform/acer-wmi/bluetooth /etc/init.d/bluetooth start hcitool scan
[edit] User Input
| Linux Kernel Configuration: Input Settings |
Device Drivers --->
Input device support --->
<*> Mouse interface
<*> Event interface
[*] Keyboards --->
<*> AT keyboard
[*] Mouse --->
<*> PS/2 mouse
[*] HID Devices --->
<*> USB Human Interface Device (full HID) support
|
[edit] Make.conf
| File: /etc/make.conf |
INPUT_DEVICES="keyboard mouse evdev synaptics" |
[edit] Keyboard
The Acer keyboard includes roughly 14 unique keys that aren't understood by the kernel or xorg. The following sections include keycode settings and xorg settings.
| Code: cat bus/input/devices |
N: Name="AT Translated Set 2 keyboard" P: Phys=isa0060/serio0/input0 S: Sysfs=/class/input/input3 |
[edit] Startup Settings
| File: /etc/conf.d/local.start |
# Identify keycodes the kernel doesn't understand setkeycodes e033 202 # 148 Euro key setkeycodes e034 203 # 149 Dollar key setkeycodes e058 210 # Bluetooth key setkeycodes e056 218 # Wireless off setkeycodes e055 206 # Wireless on setkeycodes e073 148 # P key setkeycodes e074 149 # e key (Acer Empowering Technology) setkeycodes e025 138 # Fn+F1 key, XF86Book setkeycodes e026 141 # Fn+F2 key, XF86Launch3 setkeycodes e027 152 # Fn+F3 key, XF86Launch4 setkeycodes e029 212 # Fn+F4 key, XF86Sleep setkeycodes e078 213 # Fn+F4 key, return from sleep setkeycodes e071 222 # Fn+F7 key (turn on touch pad) setkeycodes e072 223 # Fn+F7 key (turn off touch pad) |
[edit] Xinit - Extra keys
| File: /etc/X11/xinit/extra_keys |
keycode 174 = XF86AudioLowerVolume keycode 176 = XF86AudioRaiseVolume keycode 160 = XF86AudioMute keycode 162 = XF86AudioPlay XF86AudioPause keycode 164 = XF86AudioStop keycode 144 = XF86AudioPrev keycode 153 = XF86AudioNext keycode 101 = XF86BrightnessAdjust keycode 212 = XF86BrightnessAdjust keycode 171 = EuroSign keycode 172 = dollar cent keycode 245 = XF86Book keycode 193 = XF86Launch3 keycode 146 = XF86Launch4 keycode 223 = XF86Sleep keycode 187 = XF86Video keycode 118 = XF86Display keycode 148 = XF86LaunchA keycode 202 = XF86LaunchB keycode 236 = XF86Mail keycode 178 = XF86WWW keycode 159 = XF86Launch1 keycode 151 = XF86Launch2 |
[edit] Xinit - 10-xkb
| File: /etc/X11/xinit/xinitrc.d/10-xkb |
#!/bin/bash
if [ -f ~/.xkbmap.sh ]; then
. ~/.xkbmap.sh
fi
xmodmap /etc/X11/extra_keys
|
Make sure the script is executable:
chmod +x /etc/X11/xinit/xinitrc.d/10-xkb
[edit] Portion of Xorg Configuration
| File: /etc/X11/xorg.conf |
Section "InputDevice" Identifier "Keyboard1" Driver "kbd" Option "AutoRepeat" "500 30" Option "XkbRules" "xorg" Option "XkbModel" "pc101" Option "XkbLayout" "us" EndSection |
[edit] Touchpad
| Code: cat bus/input/devices |
N: Name="SynPS/2 Synaptics TouchPad" P: Phys=isa0060/serio4/input0 S: Sysfs=/class/input/input4 |
[edit] Udev - 70-touchpad.rules
This dynamically links the correct intput/event* device file to /dev/input/touchpad:
| File: /etc/udev/rules.d/70-touchpad.rules |
SUBSYSTEM=="input",KERNEL=="event*",SYSFS{name}=="SynPS/2 Synaptics TouchPad",SYMLINK+="input/touchpad"
|
[edit] Portion of Xorg Configuration
| File: /etc/X11/xorg.conf |
Section "InputDevice"
Identifier "synaptics"
Driver "synaptics"
Option "CorePointer" "true"
Option "SendCoreEvents" "true"
Option "Device" "/dev/input/touchpad"
Option "Protocol" "auto-dev"
Option "TapButton1" "1"
Option "TapButton3" "3"
Option "FastTaps" "1"
Option "LeftEdge" "1700"
Option "RightEdge" "5300"
Option "TopEdge" "1700"
Option "BottomEdge" "4200"
Option "FingerLow" "25"
Option "FingerHigh" "30"
Option "MaxTapTime" "120"
Option "MaxTapMove" "150"
Option "VertScrollDelta" "100"
Option "VertEdgeScroll" "true"
Option "VertTwoFingerScroll" "false"
Option "HorizScrollDelta" "250"
Option "HorizTwoFingerScroll" "true"
Option "HorizEdgeScroll" "false"
# enables middle-mouse button with two-finger tab on the pad
Option "TapButton2" "2"
Option "EmulateMidButtonTime" "70"
Option "Emulate3Buttons" "true"
Option "SHMConfig" "1"
EndSection
|
[edit] ACER-specific Controllers
| Linux Kernel Configuration: ACER Settings |
Device Drivers ---> [*] Misc devices ---> <*> Acer WMI Laptop Extras [*] LED Support ---> <*> LED Class Support |
[edit] LCD brightness
[edit] Wireless kill switch
To enable wireless, run
echo "1" > /sys/devices/platform/acer-wmi/wireless
To disable wireless, run
echo "0" > /sys/devices/platform/acer-wmi/wireless
[edit] Bluetooth kill switch
Note: This only works if an internal Bluetooth module is installed.
To enable Bluetooth, run
echo "1" > /sys/devices/platform/acer-wmi/bluetooth
To disable Bluetooth, run
echo "0" > /sys/devices/platform/acer-wmi/bluetooth
[edit] Mailbox LED
[edit] Miscellaneous Files
[edit] Kernel dot-config files
Each subsection contains a link to a full copy of the kernel .config.
[edit] 2.6.25
Because gentoo-wiki.com only allows uploading of image files (png, jpeg, gif) the .config has been stegographically encoded into one of the images used in this article.
Fetching it is extremely simple:
emerge -u steghide cd /tmp wget http://gentoo-wiki.com/images/d/d6/Acer_Aspire_5020_13_uv.jpg steghide extract -p '' -sf Acer_Aspire_5020_13_uv.jpg rm Acer_Aspire_5020_13_uv.jpg more .config
[edit] Sysctl
The following are additions to sysctl.conf to improve system performance.
| File: /etc/sysctl.conf |
vm.vfs_cache_pressure = 100000 vm.swappiness = 0 vm.overcommit_memory = 2 vm.overcommit_ratio = 100 kernel.nmi_watchdog = 0 vm.laptop_mode = 0 fs.xfs.xfsbufd_centisecs = 1000 vm.dirty_ratio = 100 vm.dirty_background_ratio = 1 vm.dirty_expire_centisecs = 3000 vm.dirty_writeback_centisecs = 3000 net.ipv4.tcp_fin_timeout = 1 net.ipv4.tcp_tw_recycle = 1 net.ipv4.tcp_synack_retries = 2 net.ipv4.tcp_syn_retries = 2 |
[edit] Grub
| File: /boot/grub/grub.conf |
default 0
timeout 5
splashimage=/grub/splash.xpm.gz
title=Gentoo Linux 2.6.25
kernel /bzImage-2.6.25 root=/dev/sda6 ro clocksource=acpi_pm disable_timer_pin_1 quiet
|
[edit] Portage
| File: /etc/make.conf |
CHOST="x86_64-pc-linux-gnu"
CFLAGS="-Os -march=athlon64 -msse3 -mfpmath=sse,387 \
-ffast-math -ftracer -fomit-frame-pointer \
-pipe"
CXXFLAGS="${CFLAGS}"
FFLAGS="${CFLAGS}"
LDFLAGS="-Wl,-O1 -Wl,--enable-new-dtags -Wl,--sort-common -s"
CLEAN_DELAY="0"
PORTAGE_NICENESS="20"
PORTAGE_COMPRESS="lzma"
FEATURES="parallel-fetch -sandbox -metadata-transfer noinfo nodoc"
INPUT_DEVICES="keyboard mouse evdev synaptics"
VIDEO_CARDS="radeon"
ALSA_CARDS=""
USE="opengl dri kdeenablefinal kdehiddenvisibility lzo flac nsplugin \
speex xvid win32codecs fastcgi dvd ffmpeg dts a52 cgi fortran \
dvdread dvdr kdeenablefinal -gpm xv offensive aac x264 xvmc \
-ipv6 -gnome -quicktime -oss -esd -mysql alsa -fam libnotify \
-mozilla -ldap -java bash-completion slang gif pdf sqlite mad \
vorbis mp3 jpeg png truetype kde ogg mpeg spell -python fastcgi \
dbus hal -arts wifi 3dnow 3dnowext mmx mmxext sse sse2 ssse3 \
xrandr X"
|
[edit] Init Scripts
[edit] local.start
| File: /etc/conf.d/local.start |
ulimit -l unlimited linux_logo -L2 > /etc/issue # Lower the frequency step-up threshold and increase the sampling rate cd /sys/devices/system/cpu/cpu0/cpufreq/ondemand echo 30 > up_threshold cp sampling_rate_min sampling_rate cd - # prevent HAL from starting daemons for things we already manage cd /usr/libexec chmod -x hald-addon-acpi hald-addon-cpufreq hald-addon-input cd - # Setup power saving, hdparm, and pci settings /etc/conf.d/powersave # Identify keycodes the kernel doesn't understand setkeycodes e033 202 # 148 Euro key setkeycodes e034 203 # 149 Dollar key setkeycodes e058 210 # Bluetooth key setkeycodes e056 218 # Wireless off setkeycodes e055 206 # Wireless on setkeycodes e073 148 # P key setkeycodes e074 149 # e key (Acer Empowering Technology) setkeycodes e025 138 # Fn+F1 key (Acer Hotkey Help) setkeycodes e026 141 # Fn+F2 key (Acer eSettings) setkeycodes e027 152 # Fn+F3 key (Acer ePowerManagement) setkeycodes e029 212 # Fn+F4 key (switch to external monitor?) setkeycodes e078 213 # Fn+F4 key (switch to LCD panel?) setkeycodes e071 222 # Fn+F7 key (turn on touch pad) setkeycodes e072 223 # Fn+F7 key (turn off touch pad) # Manually setup and maintain the wifi connection nohup /etc/init.d/wlan0 &> /dev/null & |
[edit] /etc/conf.d/powersave
The following settings are applied during startup and after resuming from hibernation. This script is called from /etc/conf.d/local.start and /etc/acpi/events/lid (on resume).
| File: /etc/conf.d/powersave |
# Boost FSB DDR speed from 166/333Mhz to 200/400Mhz and disable 2T timing
setpci -v -s 0:18.2 96.b=70:70
setpci -v -s 0:18.2 93.b=00:10
# set the base PCI latency for all devices
setpci -v -d *:* latency_timer=32 &> /dev/null
# Never let output devices starve input devices, so start wide open on
# input (memory, HD, network) and incrementally step down to output
# devices (sound, video)
# Subsystem: Acer Incorporated [ALI] Aspire 5024WLMMi
setpci -v -s 00:14.4 latency_timer=ff # PCI-PCI Bridge
setpci -v -s 00:14.1 latency_timer=f0 # IDE Controller
setpci -v -s 06:07.0 latency_timer=e6 # RTL-8169 Gigabit Ethernet
setpci -v -s 00:13.2 latency_timer=e0 # USB2 (EHCI)
setpci -v -s 00:13.0 latency_timer=d6 # USB (OHCI)
setpci -v -s 00:13.1 latency_timer=d6 # USB (OHCI)
setpci -v -s 06:05.0 latency_timer=d0 # BCM4318 802.11g Wireless
setpci -v -s 01:00.0 latency_timer=c6 # Radeon Mobility X700 (PCIE)
setpci -v -s 00:14.5 latency_timer=c0 # AC'97 Audio Controller (rev 02)
# Disable wake-on-LAN and, if not plugged in
# reduce LAN to 100mbit, because both draw additional power
ethtool -s eth0 wol d
ethtool eth0 | grep -q "detected: no" && ethtool -s eth0 speed 100
# Enable USB auto-suspend for all USB devices
for i in /sys/bus/usb/devices/*/power/autosuspend; do echo 1 > $i; done
# enable power savings, which requires inputs to be muted
amixer set Line mute nocap &> /dev/null
amixer set Mic mute nocap &> /dev/null
echo Y > /sys/module/snd_ac97_codec/parameters/power_save
# Enable read-ahead, write caching, and disable
# spin down and HD head parking both of which can kill laptop HDs
hdparm -A1 -a1024 -W1 -S0 -B254 /dev/sda &> /dev/null
for i in /sys/block/*/queue/{read_ahead_kb,nr_requests}; do echo 1024 > $i; done
|
[edit] System Maintenance
[edit] Firmware Upgrade from DELL
Upgrading the firmware is straight forward with freedos, mtools, and syslinux:
emerge -u mtools syslinux echo 'drive a: file="/boot/freedos.img"' > /etc/mtools/mtools.conf echo 'mtools_lower_case=1' >> /etc/mtools/mtools.conf mount /boot cp /usr/lib/syslinux/memdisk /boot wget http://www.fdos.org/bootdisks/autogen/FDSTD.288.gz -O - | gunzip > /boot/freedos.img cd /tmp wget ftp://ftp.work.acer-euro.com/notebook/travelmate_4400/bios/bios%201.20.zip unzip bios\ 1.20.zip cd Bios\ 1.20 unzip FBB033WW.zip rm FBB033WW.zip */*.EXE mdeltree a:/bios mmd a:/bios mcopy -bsv * a:/bios
Now add the following to your /boot/grub/grub.conf, reboot into FreeDOS, and run cd bios, BOL120.bat:
title FreeDOS [Acer BIOS update] kernel /memdisk initrd /freedos.img
The latest BIOS can be found at Acer's support site and the latest FDSTD.288.gz boot disk at fdos.
[edit] Authors
- --Krcroft
