I recently decided to reinstall a perfectly good install of Arch on my Aspire One because someone said they couldn’t get it to work. I don’t know why this install was more troublesome than the last but it was. I’m not taking any credit here – this information is available on the Arch Wiki, its more to jog my memory for next time.
If you intend to use an SD card as a home partition you need to know two things – suspend to ram will not work with the stock kernel (it will with one of the Aspire One kernels) and you must not use ext2 for it – XFS seems much more stable.
The version of dhcpcd on the current Arch install image seems to have a bug – it will not initiate a DHCP request on the Aspire One. I got round this is by installing from the USB Core Image and then download the current dhcpcd (4.0.7-1) to a USB stick and used:
pacman -U dhcpcd-4.0.7-1-i686.pkg.tar.gz
Then rebooted. It required me to manually drop then raise the interface and call the daemon.
Update: I redid another machine on the weekend and had to edit /etc/rc.conf to add the interface before rebooting:
eth0="dhcp" interfaces=(etho)
The upgrade in klibc has also caused me to have to do a:
pacman -Syu --force
/etc/rc.conf needs a couple of tweaks for timezone, input and modules – not to mention network but I’ll leave that for now. Here is my modified one:
# /etc/rc.conf - Main Configuration for Arch Linux#
# ----------------------------------------------------------------------- # LOCALIZATION # -----------------------------------------------------------------------
LOCALE="en_GB.utf8" HARDWARECLOCK="localtime" USEDIRECTISA="no" TIMEZONE="Europe/London" KEYMAP="uk" CONSOLEFONT= CONSOLEMAP= USECOLOR="yes"
# ----------------------------------------------------------------------- # HARDWARE # -----------------------------------------------------------------------
MOD_AUTOLOAD="yes" MODULES=(!memstick !snd-pcsp acpi_cpufreq r8169 pciehp ath5k uvcvideo)
# Scan for LVM volume groups at startup, required if you use LVM USELVM="no"
# ----------------------------------------------------------------------- # NETWORKING # ----------------------------------------------------------------------- HOSTNAME="aspireone"
# Interfaces are controlled by wicd INTERFACES=(!eth0 !wlan0)
# Routes to start at boot-up (in this order) gateway="default gw 192.168.0.1" ROUTES=(!gateway)
# ----------------------------------------------------------------------- # DAEMONS # ----------------------------------------------------------------------- DAEMONS=(hal fam syslog-ng !network @wicd @alsa)
Bringing me to the interesting issue of Xorg. I didn’t really like hotplug support – the initial Xorg install generated an xorg.xonf fine but of course the keyboard and mouse didn’t work because evdev wasn’t available. The need to manipulate slightly obscure text files from one folder to another is a step back for Linux I think.
So, now we need to:
pacman -S libgl xorg xf86-input-evdev xf86-video-intel xf86-input-synaptics
Before we can work with the damn X configuration. The beginners guide over at the Arch Wiki covers this well enough that I don’t need to regurgitate it but I will mention how to get the keyboard and mouse to work.
First, add hal to the daemons in /etc/rc.conf and then copy the hotplug files to a permanent location (otherwise upgrades will remove them):
cp /usr/share/hal/fdi/policy/10ovendor/10-keymap.fdi /etc/hal/fdi/policy/.
Then edit it, changing the “input.xkb.layout” key to the right one for you (in my case the UK is “gb”). Now restart hal:
/etc/rc.d/hal restart
And then get a default X config:
xorg -configure
Test it using:
X -config /root/xorg.conf.new
If all is well, then copy it to etc:
cp /root/xorg.conf.new /etc/X11/xorg.conf
I’m going to install XFCE, but you can install other desktops just as easily – change “xfce” to “gnome”, “kde” or whatever:
pacman -S xfce4
73.99Mb’s later, XFCE is in place. You can use “startxfce” to run it or configure a login manager – I use SLIM:
pacman -S slim
I use inittab – you can use /etc/rc.conf and load slim as a daemon but I don’t care for that. So edit /etc/inittab, change:
id:3:initdefault:
To
id:5:initdefault:
You also need to set the login manager, so change:
x:5:respawn:/usr/bin/xdm -nodaemon
To:
x:5:respawn:/usr/bin/slim >& /dev/null
Before we can reboot however, we need to add the XFCE session to the system xinitrc (/etc/X11/xinit/xinitrc) to point to XFCE otherwise we get a error message from Slim. Remove the relevant comment mark to enable (exec startxfce4).
There are also some keyboard tweaks we require, so I changed /etc/rc.local to include the WiFi switch and the function keys:
/usr/bin/setkeycodes e055 159 /usr/bin/setkeycodes e056 158 /usr/bin/setkeycodes e025 130 /usr/bin/setkeycodes e026 131 /usr/bin/setkeycodes e027 132 /usr/bin/setkeycodes e029 122 /usr/bin/setkeycodes e071 134 /usr/bin/setkeycodes e072 135
Next onto that perrenial favourite – wireless. The kernel update does the work here – just need to install a managment system. I prefer wicd, fewer dependencies and no reliance on QT:
sudo pacman -S wicd
Notice from my /etc/rc.conf that I’ve stopped the eth0 and wlan0 interfaces loading and added wicd to the daemon list. This refused to play without a reboot and remember when using wicd-client to configure that when it says it can’t do something without encryption it wants a password entered in the settings.
Power management was one good reason to reinstall. So lets put acpid on:
pacman -S acpid
Once installed, I added two events, one to suspend on shutting the lid and another to shutdown when the button is pressed:
/etc/acpi/events/lid
event=button/lid.* action=/usr/sbin/pm-suspend
/etc/acpi/events/power
event=button/power.* action=/sbin/poweroff
The wireless wont restart after suspend, so you need to add /etc/pm/config.d/modules:
SUSPEND_MODULES="ath5k"
OK so that’s the meat of it. I have also made some alterations to system files specific to the A110, such as fstab, menu.lst and inittab.
Now, I like the filters to improve the display of fonts, so download the tarballs from AUR – libxft-lcd, cairo-lcd and fontconfig-lcd. Uninstall libxft and cairo then build and install.