Installing Arch Linux on the Raspberry Pi Zero

Let me start by saying that I am no stranger to Linux. I've been playing with it for nearly 20 years and it has been my primary OS for over 13 years. Heck, I've even built my own distributions with the help of the Linux From Scratch project. My everyday distro is Arch Linux, so naturally, I will start using Arch on my Raspberry Pi.

Why do I like Arch Linux? Several reasons:

  • Light weight: since you install what you need and want
  • Purer: Arch Linux sticks to the original sources as much as possible, avoiding patches
  • Simple: Arch Linux doesn't try to complicate things; it's motto is Keep It Simple
  • Up-to-date: Arch Linux is a rolling distribution, which means you can update several times a day and be completly up-to-date
  • Compiled: Unlike Gentoo, most packages for Arch are already precompiled, so they are easy to install

Arch Linux for ARM

It is important to note that Arch Linux proper only provides precompiled binaries for x86 and x86_64 platforms. Arch Linux has a sister project called Arch Linux Arm which contains several ports for ARM architectures, including two for the Raspberry Pi and other systems like the Odroid. For the Raspberry Pi Zero, you must use the ARMv6 image for the original Raspberry Pi since it also uses a Broadcom BCM2835 processor.

Installation was simple, and it went as outlined in the installation tab. Basically, you partition your SD card with a 100MB FAT partition for the boot files, then create an ext4 partition for the rest of the Linux system. You download the files, untar them on to the ext4 partition, move the boot files to the boot partition, and boot! Yeah, it's that simple. Did it work? YES! I inserted the card, hooked up the peripherals and monitor, and provided power. A few seconds later, my monitor showed a square with lots of colors and Linux came to life.

Image description

Post Installation

As stated in the instructions, the installation comes with the root and alarm users. (I presume alarm stands for arch linux arm.) After some exploring, I decided to make the environment my own. I renamed the alarm user to my standard username, added some Bash aliases and preferences, changed the hostname, set my timezone, etc. However, I had a problem: my USB hub had not arrived yet and I could only connect one USB peripheral to the Pi Zero. I could either use the keyboard, or the wireless network.

Luckily, the base installation came with netctl and wireless tools. So I was able to create and enable a profile for my wireless network. I unplugged my keyboard, plugged in a cheap USB wireless card, and nothing! At that point I powered off the device and restarted it. After the restart, the Pi Zero connected to the network and obtained an IP address. At that point, I was able to log in via SSH, so I ran pacman -Syu and the system upgraded all packages. I was also able to replace VI with VIM and copy my VIM settings. This was starting to feel like one of my Linux systems.

Except. . . that installing packages was really slow. That's because the SD card is not very fast (yes, it's a 10x card, but 10 x "really slow" is simply slow). Oh well, that was to be expected.

Arch Linux LXDE Screenshot After a quick search, I really couldn't find any X drivers for the Raspberry Pi, so I decided to leave the desktop thing aside. I may play with it later, or get a Raspberry Pi 3 or an Odroid C2 for that purpose instead.