Acer Aspire 3000 (300x)

From ArchWiki
Revision as of 13:19, 9 August 2011 by Mrstegeman (talk | contribs) (DAEMONS: cups -> cupsd)
Jump to navigation Jump to search

This page was created using knowledge collected while playing with Acer Aspire 3003 WLMi, but i will be probably compatible with other 300x Aspires. You can add your laptops to the compatibility list.

Compatibility list


00:00.0 Host bridge: Silicon Integrated Systems [SiS] 760/M760 Host (rev 03)
00:01.0 PCI bridge: Silicon Integrated Systems [SiS] SG86C202
00:02.0 ISA bridge: Silicon Integrated Systems [SiS] SiS963 [MuTIOL Media IO] (rev 25)
00:02.1 SMBus: Silicon Integrated Systems [SiS] SiS961/2 SMBus Controller
00:02.5 IDE interface: Silicon Integrated Systems [SiS] 5513 [IDE]
00:02.6 Modem: Silicon Integrated Systems [SiS] AC'97 Modem Controller (rev a0)
00:02.7 Multimedia audio controller: Silicon Integrated Systems [SiS] AC'97 Sound Controller (rev a0)
00:03.0 USB Controller: Silicon Integrated Systems [SiS] USB 1.1 Controller (rev 0f)
00:03.1 USB Controller: Silicon Integrated Systems [SiS] USB 1.1 Controller (rev 0f)
00:03.2 USB Controller: Silicon Integrated Systems [SiS] USB 2.0 Controller
00:04.0 Ethernet controller: Silicon Integrated Systems [SiS] SiS900 PCI Fast Ethernet (rev 91)
00:06.0 CardBus bridge: Texas Instruments PCI1410 PC card Cardbus Controller (rev 02)
00:0b.0 Network controller: Broadcom Corporation BCM4318 [AirForce One 54g] 802.11g Wireless LAN Controller (rev 02)
00:18.0 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] HyperTransport Technology Configuration
00:18.1 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] Address Map
00:18.2 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] DRAM Controller
00:18.3 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] Miscellaneous Control
01:00.0 VGA compatible controller: Silicon Integrated Systems [SiS] 661/741/760 PCI/AGP or 662/761Gx PCIE VGA Display Adapter


laptop-init-script is small rc.d script located in (/etc/rc.d/laptop-init) i am using to enable/disable laptop optimalizations you need to install cpufrequtils, pm-utils and laptop-mode-tools to use it. This script can be instaled from aur (aur/laptop-init-script) or you can find it here:

 #universal daemon controller
 # general config
 . /etc/rc.conf
 . /etc/rc.d/functions

 case "$1" in
  stat_busy "Enabling cpufreq CPU scaling"
    #cpufreq-set -g conservative  #less dynamic (saving more power, but slooooow)
    cpufreq-set -g ondemand   #more dynamic (saving power, when speed is not needed)
  stat_busy "Entering laptop mode"
    echo 1 > /proc/sys/vm/laptop_mode
  stat_busy "Launching pm-powersave true"
    pm-powersave true
  stat_busy "Disabling cpufreq CPU scaling"
    cpufreq-set -g performance
  stat_busy "Leaving laptop mode"
    echo 0 > /proc/sys/vm/laptop_mode
  stat_busy "Launching pm-powersave false"
    pm-powersave false
  $0 stop
  sleep 1
  $0 start
    echo "usage: $0 {start|stop|restart}"

You can also update /etc/acpi/ to use pm-suspend (or pm-hibernate) for sleep button



Modules needed by some hardware:

 sisfb mii sis900 b43 wacom
 ac97_bus snd-mixer-oss snd-pcm-oss snd-page-alloc snd-pcm snd-timer snd snd-ac97-codec snd-intel8x0 snd-intel8x0m soundcore !snd-pcsp
 tun fuse vboxdrv
 powernow-k8 cpufreq_powersave cpufreq_userspace cpufreq_conservative cpufreq_stats cpufreq_ondemand

Note that you need to install some drivers like SiS manually by pacman and b43 module (broadcom wifi driver) needs you to manually download and extract latest firmware using b43fwcutter.


There are few daemons needed by some hardware to run properly...

DAEMONS=( ... @laptop @gpm @alsa @acpid @cupsd @cpufreq ... )


Before editing xorg.conf, you will need to install few drivers:

xf86-input-keyboard 1.3.1-1 (xorg xorg-input-drivers)
   X.Org keyboard input driver
xf86-input-mouse 1.3.0-1 (xorg xorg-input-drivers) mouse input driver
xf86-input-synaptics 0.99.3-1
   synaptics driver for notebook touchpads
xf86-video-sis 0.10.1-1 (xorg-video-drivers) SiS video driver
xf86-video-vesa 2.1.0-1 (xorg xorg-video-drivers) vesa video driver

You can use this xorg.conf to get your Synaptics touchpad, USB mouse (or optionally wacom tablet) and SiS graphical adapter with sisctrl support working.

# Section "Extensions"
#	Option "Composite" "Enable"
# EndSection

Section "ServerLayout"

Identifier     "Layout0"
Screen      0  "Screen0" 0 0
InputDevice    "Keyboard0" "CoreKeyboard"
InputDevice    "Mouse0" "CorePointer"
InputDevice    "Wacom Tablet" "SendCoreEvents"
InputDevice    "Wacom Pen" "SendCoreEvents"
InputDevice    "Wacom Eraser" "SendCoreEvents"
InputDevice    "Wacom Mouse" "SendCoreEvents"

Section "Module"
Load  "dbe"
Load  "i2c"
Load  "bitmap"
Load  "ddc"
Load  "dri"
Load  "extmod"
Load  "freetype"
Load  "glx"
Load  "int10"
Load  "vbe"
# Harvie:
Load  "synaptics"

Section "ServerFlags"
Option	    "AllowEmptyInput" "false"
Option	    "AutoAddDevices" "False"

Section "InputDevice"
Identifier  "Mouse0"
Driver      "mouse"
Option	    "Protocol" "ImPS/2"
Option	    "Emulate3Buttons"
Option	    "Device" "/dev/psaux"

Section "InputDevice"
Identifier  "Keyboard0"
Driver      "kbd"
Option	    "XkbModel" "acer_laptop"
Option	    "XkbLayout" "cz"

Section "InputDevice"

#	Option		"SendCoreEvents"	"true"
Identifier  "Mouse 1"
Driver      "synaptics"
Option	    "Device" "/dev/psaux"
#	Option	    "Protocol" "ImPS/2"
Option	    "Protocol" "auto-dev"
Option	    "Emulate3Buttons"
#	Option		"HorizScrollDelta"	"0"

Option		"SendCoreEvents"	"true"
Option		"SHMConfig"	"on"
Option		"SHMConfig" "true"

Section "InputDevice"
Identifier  "Wacom Pen"
Driver      "wacom"
Option	    "Device" "/dev/input/wacom"
Option	    "Type" "stylus"
Option	    "USB" "on"
Option	    "PressCurve" "0,0,100,100"

Section "InputDevice"
Identifier  "Wacom Eraser"
Driver      "wacom"
Option	    "Device" "/dev/input/wacom"
Option	    "Type" "eraser"
Option	    "USB" "on"

Section "InputDevice"
Identifier  "Wacom Mouse"
Driver      "wacom"
Option	    "Device" "/dev/input/wacom"
Option	    "Type" "cursor"
Option	    "Mode" "relative"
Option	    "USB" "on"

Section "InputDevice"
Identifier  "Wacom Tablet"
Driver      "wacom"
Option	    "Device" "/dev/input/wacom"
Option	    "Type" "pad"
Option	    "ButtonsOnly" "on"
Option	    "Button9" "2"
Option	    "Button10" "3"
Option	    "USB" "on"

Section "Monitor"
Identifier   "Monitor0"
HorizSync    31.5 - 48.5
VertRefresh  50.0 - 90.0
Gamma 1.000 1.000 1.000

Section "Device"
Identifier "Card0"
Driver "sis"
Card        "** SiS (generic)                      [sis]"
BusID "PCI:1:0:0"

Option "UseFBDev" "true"
Option "EnableSisCtrl" "yes"
Option "ForceCRT1Type" "LCD"
Option "ForceCRT2Type" "NONE"
Option "CRT1Gamma" "on"
Option "CRT2Gamma" "on"
Option "Brightness" "0.000 0.000 0.000"
Option "Contrast" "0.000 0.000 0.000"
Option "CRT1Saturation" "0"
Option "XvOnCRT2" "yes"
Option "XvDefaultContrast" "2"
Option "XvDefaultBrightness" "10"
Option "XvDefaultHue" "0"
Option "XvDefaultSaturation" "0"
Option "XvDefaultDisableGfxLR" "no"
Option "XvGamma" "off"

Section "Screen"
Identifier "Screen0"
Device     "Card0"
Monitor    "Monitor0"
DefaultDepth 24

SubSection "Display"
Depth 1
Modes "1280x800" "1024x768" "832x624" "800x600" "720x400" "640x480"
SubSection "Display"
Depth 4
Modes "1280x800" "1024x768" "832x624" "800x600" "720x400" "640x480"
SubSection "Display"
Depth 8
Modes "1280x800" "1024x768" "832x624" "800x600" "720x400" "640x480"
SubSection "Display"
Depth 15
Modes "1280x800" "1024x768" "832x624" "800x600" "720x400" "640x480"
SubSection "Display"
Depth 16
Modes "1280x800" "1024x768" "832x624" "800x600" "720x400" "640x480"
SubSection "Display"
Depth 24
Modes "1280x800" "1024x768" "832x624" "800x600" "720x400" "640x480"

Section "DRI"
Mode         0666

FBDev (SiSFB FrameBuffer)


If you want have nicer screen resolutin in framebuffer (textmode), then you have to add this configuration in /boot/grub/menu.lst.


If you want to specify your own resolution using custom video driver, then you have to replace vga option with video option. For example if you want to user resolution 1280x800 with 32-bit color depth at 76Hz (which is recommended for Acer Aspire 3000) then you can use this option:


You can also play with memory consumption like this, but its not needed and it can cause some problems, if you don't know what are you doing:



Basically you can append this option to the kernel line in the menu.lst. This should work on any VGA compliant graphical adapter if it will have enough resources. But it will look ugly on widescreens, LCDs and similar, if they don't match the exact VGA resolution and it is better to use video=... option.


If you don't like 791 mode, then you can use this:


And you will be informed about all modes compatible with your system configuration after reboot.

So your GRUB entries in menu.lst should look like this:

# (0) Arch Linux
title  Arch Linux
root   (hd0,0)
kernel /vmlinuz26 root=/dev/disk/by-uuid/348c69e0-de31-4589-bf0a-276815c5e17a ro resume=/dev/sda3 video=sisfb:mode:1280x800x32,rate:76
initrd /kernel26.img

# (1) Arch Linux
title  Arch Linux Fallback
root   (hd0,0)
kernel /vmlinuz26 root=/dev/disk/by-uuid/348c69e0-de31-4589-bf0a-276815c5e17a ro vga=791
initrd /kernel26-fallback.img

Note that i am using vga=791 option for fallback kernel because i wan't it to be more failproof (so it will run in case of corrupted sisfb driver or without SiS graphical adapter). But you can still remove this option using GRUB command line before booting in case of some problems.


If you are using kernel option video=sisfb:... instead of vga=... then you should add following line to /etc/rc.local, to get better colours in terminal (for example to have nicer images in links -g)...

fbset -a -depth 32

32 bit mode should be set from video=... option in menu.lst, but it shouldn't work every time on every system. So it's better to check it from rc.local. Note this will cause one more "screen blink" during the boot and it will do nothing if sisfb (or any other video module) is not found or used.


You can also add sisfb module to mkinitcpio by adding it to the /etc/mkinitcpio.conf and regenerating mkinitcpio. This will allow sisfb get loaded before filesystems are mounted, so you will get nice screen resolution much earlier than without it.

MODULES="pata_acpi pata_sis ata_generic scsi_mod sisfb ..."

Simplest way to generate new mkinitcpio is reinstalling the kernel package like:

pacman -S kernel26

Related articles