Debian Squeeze on the Acer Aspire One 753


Base installation

For the installation of the base system I did the following:


Kernel configuration

The standard Debian kernel 2.6.32-5-amd64 supports almost all hardware of the laptop (ethernet and WiFi have to be compiled seperately but can be used without compiling a custom kernel).
The only problem I had with the standard Debian kernel was some sound issues (headphone jack not working), so I decided to compile a custom kernel. I am now running kernel 2.6.38, with this config file.


Ethernet

The ethernet card is supported by the atl1c driver of recent kernels (CONFIG_ATL1C in Device Drivers - Network device support - Ethernet (1000 Mbit) - Atheros L1C Gigabit Ethernet support (EXPERIMENTAL)). Thanks to Kirill Kornilov for pointing this out.

Ethernet after base installation (kernel 2.6.32-5-amd64)

Older kernels do not support the card directly. The first steps to make ethernet working with 2.6.32-5-amd64 standard kernel after a base installation is to install a build system. The following commands assume that the USB stick used for base installation is still present as /dev/sdb (check /var/log/messages) and the Debian CD 1 iso image is in /dev/sdb1.

mount /dev/sdb1 /media/usb
mount -o loop /media/usb/debian-testing-amd64-CD-1.iso /media/cdrom
aptitude install linux-headers-2.6.32-5-amd64
aptitude install build-essential

Now download (using another computer) the atl1e driver from the Atheros website and copy the file AR81Family-Linux-v1.0.1.14.tar.gz onto the Acer Aspire One to (for example) /usr/src/ar81xx/AR81Family-Linux-v1.0.1.14.tar.gz (create the directory). Then compile and install the driver:

cd /usr/src/ar81xx/
tar xzvf AR81Family-Linux-v1.0.1.14.tar.gz
make && make install
rmmod atl1e
modprobe atl1e

Wireless

The wireless card can be used with Broadcom's STA driver. To install this driver download the 64-bit driver put the file in a directory named for example /usr/src/broadcom-sta (create the directory) and run

cd /usr/src/broadcom-sta
tar xzvf hybrid-portsrc_x86_64-v5_100_82_38.tar.gz
Now edit the file /usr/src/broadcom-sta/src/wl/sys/wl_linux.c, to to line 485 and change
init_MUTEX(&wl->sem);
to
#ifdef init_MUTEX
  init_MUTEX(&wl->sem);
#else
  sema_init(&wl->sem,1);
#endif
Now in /usr/src/broadcom-sta/ run
make
make install depmod -a modprobe wl

Afterwards the wireless interface eth1 is usable.

Note: Fn-F3 can be used to switch off the WiFi hardware. For details see the section on bluetooth. The WiFi LED indicates whether the WiFi hardware is switched on or not.

Note: With earlier versions of the driver the kernel configuration (as from 2.6.33) needs CONFIG_HOSTAP set (Device Drivers - Network Device Support - Wireless LAN - IEEE 802.11 for Host AP (Prism2/2.5/3 and WEP/TKIP/CCMP)), to implicitely enable CONFIG_WIRELESS_EXT. This option can no longer be configured using menuconfig, see also The Gentoo Linux Wiki on Broadcom 43xx. I did not confirm whether this is still the case for the latest version of the driver, my kernel config still sets CONFIG_HOSTAP.
Furtheremore for older version of the driver I had to make sure not to enable ACER_WMI (Device Drivers - X86 Platform Specific Device Drivers - Acer WMI Laptop Extras) in the kernel configuration, or, blacklist the module with a standard Debian kernel. Using this module resulted in a completely unusable wireless interface after a suspend (reset doesn't help). I again did not confirm whether this is still the case with newer versions of the wl driver, my kernel config does not set ACER_WMI.


Audio

Audio output on internal speakers, headphones, and HDMI works. Audio input through the internal microphone and an external microphone also works. Both work with alsa (hda-intel) as provided by kernel 2.6.38. I is important to load the module snd-hda-intel without any options (at least I couldn't find any options that improve the functionality). For audio input, the "Mic Boost" and "Internal Mic Boost" have to be above 0 in the mixer settings. The input volume is controlled by "Capture".
I had problems with audio input in Skype version 2.1.0.81 (it worked fine in, e.g., audacity), these issues are gone with the Skype Beta 2.2.0.25. Thanks to Kirill Kornilov for his help with getting audio working properly.


Hotkeys

The hotkeys work:


HDMI and VGA output

HDMI and VGA outputs work. I use xrandr (package x11-xserver-utils) to control video outputs. For HDMI audio output create a file .asoundrc with the following content:

pcm.!default hdmi:Intel

This will set the HDMI audio output as default device and output all sound only via HDMI. Commenting out the above line with # goes back to usual audio output (speakers if no headphones are plugged, headphones when they are plugged). For sounds configuration also see the section on audio.


Suspend and Hibernate

Suspend to RAM works using the program pm-suspend contained in the pm-utils package. I am using Fn-F4 to send the laptop to suspend by running acpid (package acpid) and putting the following in /etc/acpi/events/sleep

event=button/sleep
action=/etc/acpi/actions/sleep.sh

and the following in /etc/acpi/actions/sleep.sh

#!/bin/bash /usr/sbin/pm-suspend

This will require making /etc/acpi/actions/sleep.sh executable (for root).


Webcam

The webcam is supported through "Video for Linux" in the kernel (Device Drivers - Multimedia devices - Video For Linux) and the USB Video Class Linux device driver (Device Drivers - Multimedia devices - Video For Linux - Video capture adapters - V4L USB devices - USB Video Class). Furthermore you will need to install libv4l (package libv4l-0). To check whether the webcam works you can use the program luvcview (package luvcview).


Card reader

The card reader works out of the box. Plugging an SD card (haven't tried any other cards) detects the card as /dev/sdb it basically works just like a USB stick. If this does not work, then maybe the card reader is disabled, it can be enabled by (repeatedly) pressing Fn-F3 (which should enable/disable bluetooth and WiFi). I am still working on figuring out the details. In any case watching /var/log/messages for some /dev/sdb showing up (for example with tail -f) while pressing Fn-F3 helps.


Bluetooth

Bluetooth also works with kernel 2.6.38 and the above config. Wireless network interface (bluetooth and WiFi) are enabled and disabled by Fn-F3. This is not handeled by acpid but directly by the hardware. Thanks to Kirill Kornilov for pointing this out.
My understanding of the enable/disable sequence for successively hitting Fn-F3 is

After installing the packages bluez and bluez-utils and with bluetooth enabled I can discover my mobile phone using "hcitool scan". I haven't tried to do anything more advanced with bluetooth.