<<Include(AA1/Header)>> This page contains suggested fixes and/or hacks to get hardware working properly with Ubuntu on the Acer Aspire One.
- 1 Important: SSD and Karmic
- 2 Hard Disk: Load Cycle Count
- 3 Card Reader(s)
- 4 Wireless
- 5 Audio (Intel HDA)
- 6 DPI Correction
- 7 Fan Control
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
- Boot from a live Ubuntu "Karmic" 9.10 USB stick.
- 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
- 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.)
- 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
- Now chroot into the target system
$ sudo chroot /target
- 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
- 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]
- Make the new file executable:
# chmod 755 /lib/udev/devkit-disks-probe-ata-smart
- 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 packageAfter 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".
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).
- Need link here, google for it for now.
Note that this does not work on some models, such as the ZG1 (needs confirmation). In this case, you will need to use the following workaround. Note that this will add around 5 seconds to boot and resume time. Open /boot/grub/menu.lst with your favourite text editor as root:
sudo gedit /boot/grub/menu.lst
Find the Ubuntu entry for the latest kernel (usually the entry just under the line
). Add the following to the end of the line starting with "kernel":
Do the same with the line a bit further up starting "
" to make it be added to future kernels (from what I've gathered, you should NOT uncomment it (remove the #), but I might be wrong).
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:
- madwifi from kernel (ath_pci)
- ath5k from intrepid backports (ath5k)
- madwifi-hal from http://snapshots.madwifi-project.org/ (ath_pci)
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.
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/ifconfig wifi0 down /sbin/ifconfig 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:
Either reboot, or run
sudo sysctl -p
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-220.127.116.11.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:
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.
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:
Save and close the file, then restart X.
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