Debian GNU/Linux on Acer Aspire 5102WLMi

Installing, configuring and using Debian GNU/Linux on Acer Aspire 5102 WLMi notebook.

Hardware overview

Acer Aspire 5102WLMi

  • AMD Turion™ 64 X2 Mobile Technology TL-50 (2x256KB L2 cache, 1.6GHz)
  • 1GB (512/512) DDR SDRAM
  • 120GB hard drive
  • integrated Super-Multi drive (DVD+R, DVD-R, DVD-RAM)
  • 5-in-1 card reader
  • 15.4″ WXGA (1280 x 800) TFT display
  • integrated ATI® Mobility™ Radeon® Xpress 1100 graphics
  • 802.11b/g WLAN
  • 10/100 LAN
  • V.92 modem

Devices that works with Linux

  • USB (works just after install),
  • DVD+/-RW (works with boot CD),
  • Graphic: both 2D and 3D works with both FLOSS and proprietary drivers, radeonfb does not works (yet), vesafb works,
  • Sound: works, but I need to pass options to module to make sound work properly,
  • Ethernet: works with Debian Installer images,
  • Wireless LAN: works even in Monitor mode with packet injection,
  • Bluetooth: works fine (tested with Sony Ericsson K700i mobile phone),
  • PCMCIA: works (tested with TP-Link TL-WN510G WLAN card).

Also “Suspend to RAM” works using sysfs method of hibernate script. “Suspend to disk” works using ususpend method.

Devices that does not work with Linux

  • Webcam: does not work (m560x driver is in pre-alpha state),
  • Card reader: memory card is not detected (but at least SDHCI detected),
  • Modem: does not work with sl-modem-daemon,

Devices

Configuration

CPU

To use PowerNow technology included in AMD Turion(tm) 64 X2 Mobile Technology TL-50 you need to insert some modules into kernel and use userspace powernowd daemon.

Use modprobe to load this modules, and do not forget to include them in /etc/modules.

cpufreq-userspace
powernow-k8

Now test if everything load properly with dmesg | tail. Messages about your processor(s) should appear.

# dmesg | tail
powernow-k8: Found 2 AMD Athlon 64 / Opteron processors (version 1.60.2)
powernow-k8:    0 : fid 0x8 (1600 MHz), vid 0x12 (1100 mV)
powernow-k8:    1 : fid 0x0 (800 MHz), vid 0x1e (800 mV)
cpu_init done, current fid 0x8, vid 0x12

Install powernowd:

# aptitude install powernowd

Note: you may use any CPUfreq policy governor (powersave, conservative, ondemand). I just prefer userspace tool. LessWatts folks prefer ondemand.

Note: to test if it works as expected try:

# invoke-rc.d powernowd stop
Stopping powernowd: powernowd.
# cat /proc/cpuinfo | grep MHz
cpu MHz         : 1600.000
cpu MHz         : 1600.000
# invoke-rc.d powernowd start
Starting powernowd: powernowd.
# cat /proc/cpuinfo | grep MHz
cpu MHz         : 800.000
cpu MHz         : 800.000

HDD

Install hdparm’ and edit /etc/hdparm.conf. At the bottom add:

/dev/hda {
        io32_support = 1
        mult_sect_io = 16
        interrupt_unmask = on
        dma = on
        lookahead = on
}

Now restart hdparm:

# invoke-rc.d hdparm restart
Setting parameters of disc:
/dev/hda:
 setting 32-bit IO_support flag to 1
 setting multcount to 16
 setting unmaskirq to 1 (on)
 setting using_dma to 1 (on)
 setting drive read-lookahead to 1 (on)
 multcount    = 16 (on)
 IO_support   =  1 (32-bit)
 unmaskirq    =  1 (on)
 using_dma    =  1 (on)
  /dev/hda.

Graphic

No FLOSS 3D drivers for Radeon Xpress 200M available yet.

Setup your apt to use “non-free” and install ATI proprietary driver if you need 3D. 2D operations are handled by FLOSS driver included in your X.Org installation.

To install fglrx use this:

# aptitude upgrade
# aptitude --with-recommends install fglrx-driver fglrx-kernel-src fglrx-control-qt3
# m-a update
# m-a a-i fglrx-kernel-src
# modprobe fglrx
# dmesg | tail
# aticonfig --initial

Note: you need installed module-assistant. If you do not have it install it and run ”module-assistant prepare”.

Note: after reload of X server screen stays blank for unknown reason. After reboot everything works fine.

POWERplay

(Tested only with proprietary ATI drivers.)

To list available POWERplay states type:

$ aticonfig --lsp
    core/mem      [flags]
-----------------
  1: 100/133 MHz
* 2: 301/301 MHz  [default state]

To set power state:

$ aticonfig --set-powerstate=1

Note: display will flash once while profile is changed.

List power states again to check:

$ aticonfig --lsp
    core/mem      [flags]
-----------------
* 1: 100/133 MHz
  2: 301/301 MHz  [default state]

External VGA connector

(Tested only with proprietary ATI drivers.)

To enter single display mode use:

# aticonfig --dtop single

To enter mirror mode (both display show same image, useful for presentation) use:

# aticonfig --dtop mirror

Note: you need to restart X server to changes take effect.

Note: you will not be able to use POWERplay in dual head mode. To use POWERplay when in mirror mode you have to disable overlay on second head with command:

# aticonfig --ovon=0

Sound

ATI Technologies Inc SB450 HDA Audio works with ALSA driver snd-hda-intel from alsa-source package.

To install ALSA form sources use:

# aptitude install alsa-source
# m-a a-i alsa-source

Note: you may use ALSA drivers included in kernel, but they may be a bit outdated.

If you got so many errors similar to this when loading module:

ALSA /usr/src/modules/alsa-driver/pci/hda/hda_codec.c:215: hda_codec: invalid dep_range_val 0:7fff

If you see those errors try to create file /etc/modprobe.d/sound with this content:

options snd-hda-intel probe_mask=3 position_fix=3

ALSA mixer may not work at all showing only this error:

alsamixer: function snd_mixer_load failed: Invalid argument

To fix this remove /var/lib/alsa/asound.state, reload driver with command:

# rmmod snd_hda_intel
# modprobe snd_hda_intel

Then save this asound.state as /root/asound.state.

And restore settings with:

# alsactl -F -f /root/asound.state restore

Note: aumix works fine.

dmix / dsnoop setup

This sound card cannot mix audio streams itself and forbid multiple access to sound device. As a workaround we can use dmix and dsnoop ALSA plugins. It will mix everything in software.

Download .asoundrc and save it as ~/.asoundrc.

MIDI sequencer setup

This sound card does not support MIDI itself. As a workaround we can use Timidity++. It will synthesize MIDI in software and send as wave to PCM device on real sound card.

Install timidity, freepats and alsa-utils:

# aptitude install timidity freepats alsa-utils

Edit /etc/default/timidity and uncomment:

TIM_ALSASEQ=true

Load snd-seq module (and add it to /etc/modules):

# modprobe snd-seq

Then restart timidity:

# invoke-rc.d timidity restart

Finally, try to play some mid file:

$ aplaymidi /path/to/sample.mid

Ethernet

Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 10) works fine with 8139too driver.

# dmesg | tail
8139cp: 10/100 PCI Ethernet driver v1.2 (Mar 22, 2004)
8139cp: pci dev 0000:06:01.0 (id 10ec:8139 rev 10) is not an 8139C+ compatible chip
8139cp: Try the "8139too" driver instead.
8139too Fast Ethernet driver 0.9.27
ACPI: PCI Interrupt 0000:06:01.0[A] -> GSI 21 (level, low) -> IRQ 50
eth0: RealTek RTL8139 at 0xffffc20000058000, 00:16:XX:XX:XX:XX, IRQ 50
eth0:  Identified 8139 chip type 'RTL-8100B/8139D'
eth0: link up, 100Mbps, full-duplex, lpa 0x45E1

To enable automatic module loading on access to eth0 add this to /etc/modprobe.d/network:

alias eth0 8139too

Note: Use ifscheme package to easily maintain different network configurations.

Wireless LAN

Atheros Communications, Inc. AR5005G 802.11abg NIC (rev 01) handled by madwifi driver.

You need to install from sources:

# aptitude install madwifi-source madwifi-tools madwifi-doc wireless-tools
# m-a a-i madwifi-source
# modprobe ath_pci

Driver initialization log should appears in dmesg log:

# dmesg | tail -n 13
ath_pci: 0.9.4.5 (0.9.3)
ACPI: PCI Interrupt 0000:06:02.0[A] -> GSI 22 (level, low) -> IRQ 233
wifi0: 11b rates: 1Mbps 2Mbps 5.5Mbps 11Mbps
wifi0: 11g rates: 1Mbps 2Mbps 5.5Mbps 11Mbps 6Mbps 9Mbps 12Mbps 18Mbps 24Mbps 36Mbps 48Mbps 54Mbps
wifi0: H/W encryption support: WEP AES AES_CCM TKIP
wifi0: mac 7.8 phy 4.5 radio 5.6
wifi0: Use hw queue 1 for WME_AC_BE traffic
wifi0: Use hw queue 0 for WME_AC_BK traffic
wifi0: Use hw queue 2 for WME_AC_VI traffic
wifi0: Use hw queue 3 for WME_AC_VO traffic
wifi0: Use hw queue 8 for CAB traffic
wifi0: Use hw queue 9 for beacons
wifi0: Atheros 5212: mem=0xc0200000, irq=233

To enable automatic module loading on access to ath0 add this to /etc/modprobe.d/network:

alias ath0 ath_pci

STA mode

Edit /etc/network/interfaces. Add these lines:

auto ath0
iface ath0 inet static
        address 192.168.0.3
        netmask 255.255.255.0
        network 192.168.0.0
        broadcast 192.168.2.255
        gateway 192.168.0.1
#       hwaddress ether 00:XX:XX:XX:XX:XX # if you need to spoof it
        dns-nameservers 192.168.5.1
        wireless-mode Managed
        wireless-essid StarGate
        wireless-key xxxxxxxxxxxxxxxxxxxxxxxxxx # if you need any key
        wireless-keymode restricted
#       wireless-ap xx:xx:xx:xx:xx:xx # change to AP's MAC
#       wireless-sens 60
#       wireless-retry min 100 retry max 250
#       wireless-rate 11M
#       wireless-nick NickName
#       post-up modprobe tun ; openvpn --config /etc/openvpn/stargate-client.conf \
#        --daemon --mute-replay-warnings # to connect using VPN
#       pre-down killall -q openvpn ; sleep 3 ; route add default gw 192.168.2.1 ; rmmod tun

You need to know AP’s MAC you connecting to. You may obtain it by scanning. To start scan type:

# iwlist ath0 scan

Association is made after you specify AP’s MAC:

# iwconfig ath0 ap 00:01:02:03:AB:CD

Finally check if you are associated typing:

# iwconfig ath0
ath0      IEEE 802.11g  ESSID:"StarGate"
          Mode:Managed  Frequency:2.422 GHz  Access Point: 00:01:02:03:AB:CD
          Bit Rate:0 kb/s   Tx-Power:9 dBm   Sensitivity=0/3
          Retry:off   RTS thr:off   Fragment thr:off
          Encryption key:XXXX-XXXX-XXXX-XXXX-XXXX-XXXX-XX   Security mode:restricted
          Power Management:off
          Link Quality=0/94  Signal level=-92 dBm  Noise level=-92 dBm
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:0   Missed beacon:0

Monitor mode

Madwifi support Monitor mode on this card. It works with kismet and airodump.

To put card into Monitor mode use:

# wlanconfig ath0 destroy
# wlanconfig ath0 create wlandev wifi0 wlanmode monitor

Edit /etc/kismet/kismet.conf, add new source:

source=madwifi_ag,wifi0,madwifi

Finally start kismet:

# kismet

Note: kismet create kis device automatically, so you do not need to create device by hand.

Packet injection

You need to install aircrack-ng:

# aptitude install aircrack-ng

Packet injection works with standard Debian’s drivers. Start kismet, then use kis device with aireplay-ng (or create device by hand). Arpreplay and deauth attacks works.

Some patches are available from patches.aircrack-ng.org. I did not try them as madwifi driver works fine for me.

Bluetooth

Switching Bluetooth switch in front of keyboard attaches Broadcom dongle to USB.

Power on bluetooth adapter. Check kernel messages:

# dmesg | tail
ohci_hcd 0000:00:13.1: wakeup
usb 3-3: new full speed USB device using ohci_hcd and address 3
usb 3-3: configuration #1 chosen from 1 choice

Install Bluetooth software:

# aptitude install bluetooth bluez-passkey-gnome obexftp

Make your phone visible, then run:

$ sdptool browse
Inquiring ...
Browsing 00:0F:XX:XX:XX:XX ...
[...]

You should see your phone’s services.

Edit /etc/bluetooth/hcid.conf, set:

security auto;
passkey "chosen-default-pin-eg-01234";
name "SomeName";
iscan disable;
pscan enable;

Restart bluetooth daemons:

# invoke-rc.d bluetooth restart

Try to list files in your phone.

$ obexftp -b 00:0F:XX:XX:XX:XX -l

Now your phone and computer will ask for PIN. Supply same PIN to both. Directory list of phone should appear.

PCMCIA

Works out of the box:

Yenta: ISA IRQ mask 0x0cf8, PCI irq 177
Socket status: 30000006
pcmcia: parent PCI bridge I/O window: 0xa000 - 0xafff
pcmcia: parent PCI bridge Memory window: 0xc0200000 - 0xc02fffff
pcmcia: parent PCI bridge Memory window: 0x50000000 - 0x51ffffff

WLAN card inserted and removed:

pccard: CardBus card inserted into slot 0
PCI: Enabling device 0000:07:00.0 (0000 -> 0002)
ACPI: PCI Interrupt 0000:07:00.0[A] -> GSI 20 (level, low) -> IRQ 177
wifi1: 11b rates: 1Mbps 2Mbps 5.5Mbps 11Mbps
wifi1: 11g rates: 1Mbps 2Mbps 5.5Mbps 11Mbps 6Mbps 9Mbps 12Mbps 18Mbps 24Mbps 36Mbps 48Mbps 54Mbps
wifi1: H/W encryption support: WEP AES AES_CCM TKIP
wifi1: mac 7.8 phy 4.5 radio 5.6
wifi1: Use hw queue 1 for WME_AC_BE traffic
wifi1: Use hw queue 0 for WME_AC_BK traffic
wifi1: Use hw queue 2 for WME_AC_VI traffic
wifi1: Use hw queue 3 for WME_AC_VO traffic
wifi1: Use hw queue 8 for CAB traffic
wifi1: Use hw queue 9 for beacons
wifi1: Atheros 5212: mem=0x52000000, irq=177
pccard: card ejected from slot 0
ACPI: PCI interrupt for device 0000:07:00.0 disabled

Suspend to RAM or disk

Install hibernate, uswsusp, vbetool and radeontool:

# aptitude --with-recommends install hibernate uswsusp vbetool radeontool

(Re)configure uswsusp (answer to all its questions):

# dpkg-reconfigure uswsusp

Update all your initramfs images (as reconfigure updates only currently running kernel):

# update-initramfs -u -t -k all

Edit /etc/hibernate/ram.conf and comment out:

TryMethod ususpend-ram.conf

with #.

Than enable:

EnableVbetool yes
VbetoolPost yes
RadeonTool yes

Edit /etc/hibernate/common.conf and comment out all VBE related option. Also consider enabling LockXScreenSaver or LockConsoleAs.

To suspend to RAM use:

# hibernate-ram

And for suspend to disk:

# hibernate-disk

Software

You may install 64-bit (AMD64) or 32-bit (i386) version of Debian. I decided to install Debian “unstable” for AMD64 architecture.

See also

11 comments to Debian GNU/Linux on Acer Aspire 5102WLMi

  • This was enormously helpful in getting my system (Xubuntu Gutsy Gibbon AMD64 7.10, a derivation of the Ubuntu 7.10 based on Debian GNU/Linux) up and running with hibernation. Thank you for this concise, clear, and nearly comprehensive guide. Bookmarked!

  • Gérard Robin

    With linux-image-2.6.23-1-amd64 my memory card is detected now.

  • Abit un related stuff :
    to send your laptop to sleep when you close your lid and plug out the power : http://bsh83.blogspot.com/2007/12/how-to-run-function-when-you-close-your.html

    Also i am using 2.6.23 kernel (debian) but i was unable to actually see the event when you put in the card can you see the content of the card when you plug it in if so please write which models are loaded and what excatly you do for it to work .

  • Gérard Robin

    Hi Jabka now I use 2.6.24 and when I put my canon SD memory card in the laptop (I use gnome) gthumb download the photos immediatly.
    The device is /dev/mmcblk0p1 and it is mounted to /media/disk/
    hth
    Gerard

  • nora

    Hmm no wonder i couldnt get 3d working on my mobile x1300, at least 2d works with propriety drivers.Is there anyway to get 3d working with my card?

  • caqui

    wow!!! i’m impressed!

    solves a lot of problems for me!!!

    thank you

  • caqui

    i’m having some problems using a ipod with my debian etch: gtkpod, amarok and rhythmbox don’t initialize with ipod plugged.

    do you know what may be happening?

    ps: everything were nice when i was using ubuntu gutsy….

  • atiquzzaman

    please send the software of wabcam acer5102WLMI because the mine is out of order and me very far from our house please help me acer

  • caqui

    well, the alsamixer problem was not solved for me!

    everytime i reboot my note i have to reconf the sound follwing your tutorial. looks like alsactl store is not working properly…

  • ah

    hello,
    i’ve reported a weird ‘problem’. I own the same laptop as you do, tho my debian lenny says the cpu has only one single core, as shown bye the dmesg command:
    dmesg | grep powernow
    [ 16.748010] powernow-k8: Found 1 AMD Turion(tm) 64 X2 Mobile Technology TL-50 processors (1 cpu cores) (version 2.20.00)
    [ 16.748010] powernow-k8: 0 : fid 0x8 (1600 MHz), vid 0x13
    [ 16.748010] powernow-k8: 1 : fid 0x0 (800 MHz), vid 0x1e

    i notice tho, that there’s a 0 and a 1, but cpuinfo doesn’t inform about the two cores either:
    cat /proc/cpuinfo
    processor : 0
    vendor_id : AuthenticAMD
    cpu family : 15
    model : 72
    model name : AMD Turion(tm) 64 X2 Mobile Technology TL-50
    stepping : 2
    cpu MHz : 800.000
    cache size : 256 KB
    fdiv_bug : no
    hlt_bug : no
    f00f_bug : no
    coma_bug : no
    fpu : yes
    fpu_exception : yes
    cpuid level : 1
    wp : yes
    flags : fpu vme …

    As you can see there is no “cpu_cores: 2” line there, unlike your ‘cpuinfo’ file capture.
    any ideas?
    thank you! : D

  • Chris Koresko

    Your ALSA module options got my microphone working. I’d spent hours on that. THANKS!

    — Chris

Leave a Reply

You can use these HTML tags

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>