As everyone knows, I am a huge fan of Linux for many applications. I have a number of Linux-based servers running, I have been using different Linux dervates for work and privately in virtual machines, but until recently, I did not have a desktop system with Linux. I have been missing that every once in a while. Some things, such as network administration and software development are just so much easier on Linux. I did not want to spend much money on an additional machine though, especially since my daily driver will remain on Windows, for family reasons. I thus settled on a netbook. Yes, one of these small screen devices popular in the early 2000s. I figured that it should offer sufficient performance for my use cases, while remaining portable and cheap. Of course, I went with an Arch Linux installation.
Hardware
After some research, I decided to go with an Acer Aspire One 522. I managed to get one of these with power supply for less than 80 Euros on a classifieds platform. I was a bit worried about the battery, so I had the seller send me a photo of the “remaining time” once booted. Of course, this does not say much, but was sufficient to estimate that runtime should be more than zero. I was positively surprised when the device arrived as aside from some scratches on the lid, it looked almost new. The battery was not ideal, lasting about 1.5 hours, but since the power supply is small and I don’t expect it to use it outside of the house, that was sufficient for me. However, after some calibration (charge fully, discharge fully, charge fully), I managed to reach about 2.5-3 hours. That was ideal for me, as I barely every have more time than that in a row to “work” on things.
For performance, I did exchange the 1GB RAM with 4GB and replaced the harddrive with an Intel 320, 120GB SSD. Both bought used online for combined about 30 Euros.
Arch Linux Installation
I do like Arch Linux, especially with its minimal footprint, if desired, and the continuous upgrade proccess. Here are the steps for a minimal Arch installation. Of course this might vary depending on your setup, so consider this a general guideline.
Assumptions
This write-up assumes
- BIOS is used, not UEFI
- using a SWAP file rather than a SWAP partition
Preparations
Download Arch from https://archlinux.org/download/ and write to USB stick, e.g., with Win32DiskImager, Rufus, or dd.
Then, on the target machine, boot into the live environment.
Installation
- Set keymap for live environment:
loadkeys de-latin1
-
Connect to internet with either
ip
(Ethernet) oriwctl
(WiFi) withstation wlan0 connect <SSID>
. -
Update clock:
timedatectl set-ntp true
- Partition disks:
fdisk /dev/sda # delete all partitions (use 'd') # create new parition (use 'n' and defaults) # make bootable (use 'a') # write to disk (use 'w')
- Format partition:
mkfs.ext4 /dev/sda1
- Mount partition:
mount /dev/sda1 /mnt
- Install basic packages:
pacstrap /mnt base-devel linux linux-firmware
- Generate fstab:
genfstab -U /mnt >> /mnt/etc/fstab
- Move to new system:
arch-chroot /mnt
- SetHW clock to system time:
hwclock --systohc
-
Localization: Uncomment
en_US.UTF-8 UTF-8
in/etc/locale.gen
and runlocale-gen
In/etc/locale.conf
putLANG=en_US.UTF-8
-
Configure keyboard layout: In
/etc/vconsole.conf
putKEYMAP=de-latin1
- Configure hostname:
In
/etc/hostname
put<hostname>
. Inetc/hosts
put:127.0.0.1 localhost ::1 localhost 127.0.1.1 <hostname>.localdomain <hostname>
-
Change root password: Run
passwd
- Install networking packages:
pacman -S dhcpcd iwctl
-
Install and configure GRUB:
pacman -S grub # install to drive grub-install --target=i386-pc /dev/sda # change GRUB_TIMEOUT in /etc/default/grub # generate config grub-mkconfig -o /boot/grub/grub.cfg
- Reboot to newly installed system
Post Install
The following optional steps usually make sense:
- Update system:
pacman -Syu
- Create user & permissions:
pacman -S vi sudo useradd -m <user> visudo # uncomment 'sudo ALL=(ALL) ALL' groupadd sudo usermod -a -G sudo <user> passwd <user> logout # log in as <user>
- Install yay for AUR:
pacman -S --needed git git clone https://aur.archlinux.org/yay.git cd yay makepkg -si
- Set timezone:
timedatectl set-timezone Europe/Berlin
-
Install GUI:
yay -S i3-wm i3lock i3status dmenu xorg-server ttf-dejavu # in ~/.xinitrc put: 'exec i3' # in ~/.bash_profile put: if [[ -z $DISPLAY ]] && [[ $(tty) = /dev/tty1 ]]; then startx fi
-
Configure i3: In
/~/.config/i3/config
add:mode "exit: [e]xit, [r]eboot, [s]hutdown, loc[k]" { bindsym e exec i3-msg exit bindsym r exec systemctl reboot bindsym s exec systemctl shutdown bindsym k exec i3lock; mode "default" bindsym Escape mode "default" bindsym Return mode "default" } bindsym $mod+x mode "exit: [e]xit, [r]eboot, [s]hutdown, loc[k]" exec "setxkbmap -layout de"
Performance & Evaluation
I was surprised about the performance of the device, booting to login screen in about 20 seconds, plus an additional about 3 seconds to login and load i3. This is absolutely adequate for a 10+ year old device.
Typing this long text, the only issue I have with the device is the size of keyboard and screen: They are totally usable, but it is just no ThinkPag keyboard and the screen is a bit small for long texts. But that is of course expected of a netbook and I could always use my larger ThinkPad T430 for this.
Web surfing is of course also not the fastest experience ever seen, but perfectly fine for my needs on this device.
So overall, I am extremely happy with the money invested. For a total of about 150 Euro, I have a very portable, decently performing native Linux device.