Debian Lenny on an Acer Aspire One 110
Base Installation
For base installation I followed [1] and did the following:
- Download the latest Debian boot.img.gz,
- Download the latest Debian netinst ISO image
- Put a USB stick in the computer, check the device by looking at /var/log/messages. In the following I will assume that the device is /dev/sdb
- As root do
zcat boot.img.gz > /dev/sdb
- Mount the USB stick and copy the netinst ISO image over:
mount /dev/sdb /mnt/usb/ && cp debian-testing-i386-netinst.iso /mnt/usb/
- Put the USB stick in the Acer Aspire One, boot and press F12 to get the boot menu, choose the USB drive as boot device.
- Follow usual Debian installation
Partitioning of SSD and SD card
During the Debian installation I had an 8GB SDHC card in the storage expansion slot allowing me to directly partition it and use it as
/home.
I played around a little bit with a configuration with swap partition, this will however increase number of write operations to the SSD and
thus reduce its lifetime. If you want to use swap I would recommend to set the "swappiness" to 0 by putting the line
at the end of /etc/sysctl.conf after installation. I recommend the following partitioning:
Device | Size | Fileystem | Mount options | Mount point |
---|---|---|---|---|
/dev/sda1 | 8GB | ext2 | noatime | / |
/dev/mmcblk0p1 | 8GB (max size) | XFS (see suspend) | noatime | /home/$USER or /home |
When booting after installation you won't be able to boot the current standard Debian kernel with SD card in the storage expansion slot. Remove the card, hit Ctrl-D when prompted and put the card back in later (preferably with a new custom kernel).
Keeping /var/log, /tmp and /var/tmp in RAM
In order to reduce write access to the SSD I keep the three directories /var/log, /tmp and /var/tmp in a RAM filesystem by putting the following lines at the end of /etc/fstab:none | /var/log | tmpfs | defaults,size=10M | 0 | 0 |
none | /tmp | tmpfs | defaults,size=100M | 0 | 0 |
none | /var/tmp | tmpfs | defaults,size=20M | 0 | 0 |
Kernel configuration
I'm using a vanilla kernel, here is my .config for kernel version 2.6.32.2.
Since kernel version 2.6.32, also the thermal sensors are supported by the kernel. For older versions I used the following
to get support for them:
Edit the file drivers/hwmon/coretemp.c in the kernel tree and in the function coretemp_init change
if ((c->cpuid_level < 0) || (c->x86 != 0x6) ||
!((c->x86_model == 0xe) || (c->x86_model == 0xf) ||
(c->x86_model == 0x16) || (c->x86_model == 0x17) ||
(c->x86_model == 0x1A))) {
to
if ((c->cpuid_level < 0) || (c->x86 != 0x6) ||
!((c->x86_model == 0xe) || (c->x86_model == 0xf) ||
(c->x86_model == 0x16) || (c->x86_model == 0x17) ||
(c->x86_model == 0x1A) || (c->x86_model == 0x1C))) {
before compiling the kernel.
Ethernet (Realtek RTL8101E/RTL8102E)
The Ethernet card is supported by the r8169 driver, which in the kernel configuration can be found in Device Drivers - Network Device Support - Ethernet (1000 MBit).
Wireless LAN (Atheros AR242x)
For recent kernel versions (≥ 2.6.27), the ath5k driver in the vanilla kernel supports the wireless chip.
The wireless LED works since kernel version 2.6.30.5 for me.
Card readers
With the above kernel configuration both card readers work. To activate them I put
setpci -d 197b:2382 AE=47
at the end (before "exit 0") in /etc/rc.local. The multi-cardreader recognizes cards only if they are inserted before booting the Acer, in order to be able to hot-plug memory cards create the file /etc/modprobe.d/pciehp with the following content:
Sound
Sound works with the intel-hda driver. However make sure to load the module with option "model=acer" by putting the following line at the end of /etc/modprobe.d/alsa-base:
With kernel version 2.6.27.4 sound also works after resuming from suspend. Microphone is working as well, to switch to the internal
microphone use e.g. "alsamixer -V all" and switch "Input Source" to "Internal".
Headphones work and since 2.6.28 (support for the AA1) plugging in headphones also mutes the internal speakers. Didn't check external microphone, yet.
Configuration of the X-Server
After installation of e.g. gdm the complete X environment works, however there are some tweaks that I applied according to the hints in [1] and [3]. To get reasonable fonts in X put the following two lines in the Monitor section of /etc/X11/xorg.conf:
Furthermore put the following lines in the Device section of the same file for better graphics performance:
Option "MigrationHeuristic" "greedy"
Option "NoDDC"
Suspend to RAM
Suspend to RAM works, however, as described in [3]
To suspend just use pm-suspend (from the package pm-utils).
I had some problems with suspend corrupting the partition
table of the SD card in the Storage Expansion slot.
The solution to this problem as described in [3] is to set CONFIG_MMC_UNSAFE_RESUME in the kernel configuration (can be
found in Device Drivers - MMC/SD card support - Allow unsafe resume) and use XFS as file system for the (only) partition on the SD
card.
This solution sounds weird but really works for me.
Suspend without root password
The program pm-suspend only works with root permissions so you will have to type the root password every time before suspending. You can avoid that by putting the line
in the file /etc/sudoers. In this line replace USERNAME with your username. The file /etc/sudoers has to be edited with the
"visudo" command as root.
Now you are able to suspend with
Suspend on lid closure
If you want your Aspire One to suspend when you close the lid, install the packages acpid and acpi-support and then edit the file /etc/acpi/lid.sh to just contain/usr/sbin/pm-suspend
Hibernation
So far, I wasn't able to get hibernation working, even if I have swap properly set up.
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). To check whether the webcam works you can use luvcview.
Fan control
The fan is considered "noisy" by some people. The way to a more silent fan seems to be the use of
acerfand as described in [1] (search for Quiet
Fan).
This solution only works for older BIOS versions (< 3304), I'm using BIOS version 3305 and do not consider the fan to noisy (see also
section on BIOS update).
Hotkeys
Brightness control works out of the box with the Fn-left/right keys.
Switching on and off the Touchpad with Fn-F7 works out of the box.
Switching on and off the Display with Fn-F6 works out of the box.
In order to get the remaining hotkeys working put the follwoing lines in your ˜/.Xmodmap
(create the file if it doesn't exist):
keycode 174 = XF86AudioLowerVolume
keycode 176 = XF86AudioRaiseVolume
keycode 223 = XF86Standby
keycode 210 = XF86Display
Now further configuration depends on your window manager, for fluxbox put the following lines in your ˜/.fluxbox/keys:
None XF86AudioRaiseVolume :execcommand amixer -q set Master 2+ unmute
None XF86AudioMute :execcommand amixer -q set Master mute
None XF86Standby :execcommand sudo /usr/sbin/pm-suspend
The behaviour of the Fn-F8 key is perhaps not the "original" behaviour with this configuration. It does not toggle the state but always mutes (sound remains muted when you hit the key twice). To unmute just use one of the volume keys.
BIOS update
My Acer came with a quite old BIOS version, so I upgraded to a newer version. This requires to first download the newes BIOS version from
the http://support.acer-euro.com/drivers/notebook/as_one_110.html.
You will then have to boot some DOS system, the way to get that for me was to format a USB stick with exactly one partition (partition type
b W95 FAT32). With mkfs.msdos (from the package dosfstools) I then created a FAT32 file system on this partition.
I then used unetbootin to write a bootable Freedos to the USB stick. In
order to install unetbootin with
you will first have to install the packages
syslinux, p7zip-full and libqt4-gui.
Now I extracted the zip file containing the new driver and copied the whole resulting folder to the USB stick. Afterwards I booted the
Freedos from the stick and type
3305.BAT
where 3305 is the BIOS version.
References
[1] http://wiki.debian.org/DebianAcerOne
[2] https://help.ubuntu.com/community/AspireOne
[3] http://wiki.archlinux.org/index.php/Acer_Aspire_One