Tag/tag.png

Unsupported Version
This article applies to an unsupported version of Ubuntu. More info...

This page contains suggested fixes and/or hacks to get hardware working properly with Ubuntu on the Acer Aspire One.

Important: SSD and Karmic

There was a bug #445852 in libatasmart introduced in Karmic which leads to massive logical SSD corruption and, eventually, to a non-bootable system.

Among other things, it largely degrades I/O performance and can cause other errors like failing Gnome Panel applets.

So, if you experience long boot times, ATA failures or the above mentioned applet failures even on a cleanly installed Karmic, you may either read what is advised in the bug report, or use the below recipe which is proven to help (source; also relevant for other SSD systems with UNR):

Installing Ubuntu Karmic 9.10 UNR on a system with an affected SSD

  1. Boot from a live Ubuntu "Karmic" 9.10 USB stick.

  2. If the SSD has been trashed by previous encounters with the bug, it may need to be wiped to eliminate bad blocks. Open a terminal and issue the following command (this assumes the SSD mounts to /dev/sda—you must be certain of the device name on your system because everything on it will be erased):

    $ sudo dd if=/dev/zero of=/dev/sda bs=1M
  3. After step 2 finishes (it can take awhile), launch the Install Ubuntu-Netbook-Remix 9.10 application (ubiquity) and install Ubuntu to your SSD. (If you have sufficient RAM, choose a custom partition and install a single / (root) partition without any swap space. I recommend using ext3 or the default ext4. Some recommend using ext2, however, in my experience it does not recover from crash problems gracefully.)

  4. When the installer finishes, a dialog will come up suggesting you can restart now. Don't restart yet! While that dialog is open, the install partition should still be mounted at /target ... HOWEVER if you already closed the dialog, open a Terminal and mount the partition:

    $ sudo mount /dev/sda1 /target
  5. Now chroot into the target system

    $ sudo chroot /target
  6. The terminal is chroot'ed into the target system as root (no need for sudo). You can now divert the problematic file on the target system:

    # dpkg-divert --divert --add --rename --divert /lib/udev/devkit-disks-
    probe-ata-smart.bak /lib/udev/devkit-disks-probe-ata-smart
  7. Now create a file. You will type three lines directly into the file, finishing with a control-D. (If you make a mistake that you can't fix using backspace, close the file with control-D and use nano or vim to edit the file.)

    # cat > /lib/udev/devkit-disks-probe-ata-smart 
    #!/bin/bash
    #
    exit 0
    [type control-D here]
  8. Make the new file executable:

    # chmod 755 /lib/udev/devkit-disks-probe-ata-smart
  9. exit the chroot and terminal

    # exit
    $ exit
  10. Shutdown, remove the USB stick or SD card, and boot into the new system. Install all software updates as needed.

Re-enabling devicekit-disks package

After you know this bug has been fixed AND after the correct updated devicekit-disks package has been installed on your system, you can re-enable it using these commands:

$ sudo rm /lib/udev/devkit-disks-probe-ata-smart
$ sudo dpkg-divert --rename --remove /lib/udev/devkit-disks-probe-ata-smart

Hard Disk: Load Cycle Count

Both Hardy and intrepid may suffer from excessive load cycling on the AA1.

http://ubuntuforums.org/showthread.php?t=805570

This will fix the issue, but the value "128" in the script should be modified to "200".

Card Reader(s)

Upgrading to BIOS v. 3309 from Acer will fix visibility issues with the card reader (so you don't need to have a card in on boot for it to be visible).

You may have to append acpiphp to /etc/modules:

# /etc/modules: kernel modules to load at boot time.
#
# This file contains the names of kernel modules that should be loaded
# at boot time, one per line. Lines beginning with "#" are ignored.

lp
acpiphp

Wireless

The wireless card on the AA1 contains an Atheros chipset.

There are at least three native drivers available for this chipset, which have been used with varying success:

There is also an alternative driver called ndiswrapper, which uses the Windows-native drivers for the card.

Before trying any of these drivers, ensure that only the wireless driver you wish to use is allowed to load by blacklisting the others. This is important, since drivers may load and compete for access to the hardware, leaving the end user confused.

NOTE: The file /etc/modprobe.d/options no longer exists in newer versions of Ubuntu. It is still supported by the kernel, however the filename needs the .conf extension, i.e. /etc/modprobe.d/options.conf would be the file you create to save your options. Actually the filename doesn't matter as long as the .conf extension is used.

Here is an example of a blacklist file named /etc/modprobe.d/blacklist-wifi that only allows the use of ndiswrapper:

blacklist ath_pci
blacklist ath5k
# blacklist ndiswrapper

madwifi from kernel (ath_pci)

This driver does not support the chipset revision on the AA1, and thus is useless as of this writing.

ath5k from Intrepid backports or native in Jaunty (ath5k)

This driver has been reported to connect to the hardware, but experience disconnects on medium to heavy wireless activity. It has been further noted that it may not communicate with some AP's using a WPA2-PSK authentication mechanism. If you don't have these problems, this is the best module to use, since it comes with Jaunty.

WiFi LED

To get the WiFi access LED (only the right one, unfortunately) and the killswitch to work in Jaunty, install the package linux-backports-modules-jaunty:

sudo aptitude install linux-backports-modules-jaunty

Then reboot. Hopefully, the WiFi LED and killswitch will work. However, currently plasma-widget-network-manager (and presumably network-manager-gnome) can't detect when the killswitch is used, and so they often get very confused for a few seconds whilst they try to figure out why the signal just jumped from 70% to 0%.

madwifi-hal from http://snapshots.madwifi-project.org/ (ath_pci)

This snapshot of madwifi-hal from http://snapshots.madwifi-project.org/ appears to work reliably.

wget http://snapshots.madwifi-project.org/madwifi-hal-0.10.5.6-current.tar.gz
sudo apt-get install build-essential linux-headers-$(uname -r)
tar -xzf madwifi-hal-0.10.5.6-current.tar.gz
cd madwifi-hal-0.10.5.6*/
make
sudo make install
sudo modprobe ath_pci

You may have to append ath_pci to /etc/modules:

# /etc/modules: kernel modules to load at boot time.
#
# This file contains the names of kernel modules that should be loaded
# at boot time, one per line. Lines beginning with "#" are ignored.

fuse
lp
ath_pci

This driver should work under all conditions.

At least one user has tested the driver under heavy load (3MB/s sustained for 2 hours, no hangup), tested for correct suspend/resume functionality, and verified it communicates correctly with WEP, WPA, WPA2, against recent Linksys, Dlink, and Cisco hardware.

Now, you should create a script to restart the interface on awake from suspend mode, as it will otherwise hang. As root, create /etc/pm/sleep.d/00wireless:

#
# Restart WiFi interface after suspension
#

case "$1" in
        resume|thaw)
                /sbin/ip link set wifi0 down
                /sbin/ip link set wifi0 up
        ;;
        *)
        ;;
esac

exit $?

Don't forget to make it executable:

sudo chmod u+x /etc/pm/sleep.d/00wireless

Enable LEDs with the ath_pci snapshot

  • The wireless leds must have an entry in /proc.
  • The wireless slide killswitch works, but there is no notification given by the desktop environment.

To enable LED notification based on traffic/association, put these lines at the end of /etc/sysctl.conf:

dev.wifi0.ledpin=3
dev.wifi0.softled=1

Either reboot, or run

sudo sysctl -p

ndiswrapper

If the above madwifi instructions didn't work for you, using ndiswrapper is an alternative that is known to work, but uses Windows drivers.

Download drivers for your wireless card from: http://download2.dvd-driver.cz/atheros/drivers/ar5008/xp32-6.0.3.85.zip

Unzip those drivers.

Install ndiswrapper, and launch the installer:

sudo aptitude install ndisgtk
sudo ndisgtk

Find the net5416.inf file from the archive you unzipped, and install it using the ndisgtk GUI.

If you have tried madwifi, unload it with:

madwifi-unload

from a terminal.

Restart the AA1, and the module should load.

Audio (Intel HDA)

Various issues with the Intel HDA audio chipset have been reported. They vary in nature, from sound not working at all to microphone issues. It is generally accepted that upgrading ALSA to 1.0.18a resolves the problems with this chipset.

To upgrade ALSA, download alsa-driver-1.0.18a.tar.bz2 (or later, 1.0.18a tested on 19 Jan 2009) from http://alsa-project.org/, unpack the archive, open terminal, cd into the newly-created folder and run the following commands:

sudo apt-get install build-essential linux-headers-$(uname -r)
./configure --with-cards=all
make
sudo make install

These commands will build new ALSA drivers and copy them to the proper location. After rebooting, adjust microphone volume: it is set to zero by default. Take the time to test the microphone with gnome-sound-recorder.

After the modules are installed, add the following to the end of /etc/modprobe.d/options:

options snd-hda-intel model=acer-aspire

Please note that since these directions replace existing ALSA drivers in the kernel's modules directory, you may have to repeat these directions after a kernel upgrade.

DPI Correction

The native resolution of the AA1 is 1024x600. If fonts are too large after installation, you may try setting the DPI of the screen to 96 DPI manually.

In the "Monitor" section of /etc/X11/xorg.conf, add:

DisplaySize  195 113

In the "Device" section of /etc/X11/xorg.conf, add:

Option     "NoDDC"

Save and close the file, then restart X.

Fan Control

The user space script "acerfand" originally used to fix the noisy fan problem may cause race conditions and lockups as it accesses registers asynchronous to the kernel. A kernel module to do the fan control has recently been created, and this avoids the race condition problem.

You can install the kernel module in the following way. Note that Karmic already has this module installed, so skip to the part marked "Karmic users rejoin here".

wget http://www.piie.net/files/acerhdf_kmod-0.4.0-3.tar.gz
tar -zxvf acerhdf_kmod-0.4.0-3.tar.gz 

cd acerhdf_kmod
make
sudo make install

Karmic users rejoin here.

Now load the kernel module using

sudo modprobe acerhdf

Check it worked by looking at the output of dmesg for lines with "acerhdf" in them.

To make sure it loads at boot time add acerhdf to /etc/modules

# /etc/modules: kernel modules to load at boot time.
#
# This file contains the names of kernel modules that should be loaded
# at boot time, one per line. Lines beginning with "#" are ignored.

fuse
lp
ath_pci
acerhdf

Fan control is disabled by default (bug #436768). In order to enable it you run  echo -n "enabled" > /sys/class/thermal/thermal_zone0/mode  as root.

But to make it enabled on every boot automatically, add

echo -n "enabled" > /sys/class/thermal/thermal_zone0/mode

to /etc/rc.local (before 'exit 0' line).

For further information on the kernel module, see: http://www.piie.net/index.php?section=acerhdf


CategoryHardware

AA1/Fixes (last edited 2012-04-26 22:03:29 by lozano-cv)