I made this post primarily for my own reference by combining several tutorials in the net and my own observations into one comprehensive tutorial, but I hope this can be for the benefit of other Arch Linux ARM users, too. Of course this tutorial applies as such only on Raspberry Pi models with WiFi: RPi Zero W, RPi 3A+, RPi 4B and so on.
All these instructions must be run as root from a Linux computer with a SD card reader, Windows is useless here. Replace sdX in the following instructions with the device name for the SD card as it appears on your computer.
- Start fdisk to partition the SD card:
- At the fdisk prompt, delete old partitions and create a new one:
- Type o. This will clear out any partitions on the drive.
- Type p to list partitions. There should be no partitions left.
- Type n, then p for primary, 1 for the first partition on the drive, press ENTER to accept the default first sector, then type +100M for the last sector.
- Type t, then c to set the first partition to type W95 FAT32 (LBA).
- Type n, then p for primary, 2 for the second partition on the drive, and then press ENTER twice to accept the default first and last sector.
- Write the partition table and exit by typing w.
- Create and mount the FAT filesystem:
mount /dev/sdX1 boot
- Create and mount the ext4 filesystem:
mount /dev/sdX2 root
- The root filesystem versions for different Raspberry Pi models are:
- ArchLinuxARM-rpi-latest.tar.gz for Zero and old RPis
- ArchLinuxARM-rpi-2-latest.tar.gz for RPi2s
- ArchLinuxARM-rpi-3-latest.tar.gz for RPi3s
- ArchLinuxARM-rpi-4-latest.tar.gz for RPi4s
Download and extract the correct root filesystem:
bsdtar -xpf ArchLinuxARM-rpi-latest.tar.gz -C root
- Move boot files to the first partition:
mv root/boot/* boot
- Configure the system for WiFi networking by first editing
- Then, replace SSID and PASS with the relevant ones for your WiFi network in the following wpa_supplicant configuration steps:
wpa_passphrase "SSID" "PASS" > root/etc/wpa_supplicant/wpa_supplicant-wlan0.conf
ln -s /usr/lib/systemd/system/wpa_supplicant@.service email@example.com
- Unmount the two partitions:
umount boot root
- Remove the SD card, insert it into the Raspberry Pi, and apply 5V power.
- SSH to the IP address given to the board by your router.
- Login as the default user alarm with the password alarm.
- Then su to root. The default root password is root.
- Initialize the pacman keyring and populate the Arch Linux ARM package signing keys:
pacman-key --populate archlinuxarm
- The default name resolution does not work with WiFi, so to have a working DNS you need to type in the following (Replace the nameserver IP address with one of your preference, if needed):
systemctl stop systemd-resolved
systemctl disable systemd-resolved
echo "nameserver 126.96.36.199" > /etc/resolv.conf
- And finally, update the system:
- If you install later networkmanager or equivalent, remember to undo step 8 before starting it for the first time to prevent networking issues:
systemctl stop firstname.lastname@example.org
systemctl disable email@example.com
Now you can continue with normal Arch Linux installation guide!