How to Install Arch Linux ARM on a PinePhone

How to Install Arch Linux ARM on a PinePhone

Arch Linux ARM is a lightweight and flexible Linux distribution that brings the Arch Linux philosophy to ARM devices. One of the most exciting and community-supported devices in this space is the PinePhone, a smartphone developed by Pine64 with a focus on openness, privacy, and Linux-based mobile operating systems.

If you’re looking for a way to transform your PinePhone into a Linux-powered, fully hackable mobile device using Arch Linux ARM, you’re in the right place. This guide walks you through the process step-by-step — from prerequisites to post-installation setup.


1. What is Arch Linux ARM?

Arch Linux ARM is a port of Arch Linux for ARM processors. It maintains the same simplicity and rolling-release philosophy of Arch, tailored for devices like Raspberry Pi, Pine64 boards, and mobile devices like the PinePhone.

Unlike pre-packaged mobile Linux OSes (e.g., Mobian, postmarketOS), Arch Linux ARM gives users full control over the software stack, including which UI (user interface) and system services to use.


2. Why Use Arch Linux ARM on PinePhone?

There are several reasons why someone might choose Arch Linux ARM for their PinePhone:

  • Rolling release model: You always have the latest packages and features.
  • Customizability: Build the system from the ground up, tailored to your needs.
  • Community support: The Arch and PinePhone communities are active and helpful.
  • Minimal bloat: Start with a lean base and install only what you need.

This makes it an ideal OS for tinkerers, developers, and Linux enthusiasts.


3. Requirements

Before diving in, make sure you have the following:

Hardware

  • PinePhone (any version: BraveHeart, Community Edition, etc.)
  • MicroSD card (8GB minimum, 16GB+ recommended)
  • MicroSD card reader
  • USB keyboard and mouse (optional, for early setup)
  • Access to another Linux machine or a Linux VM

Software

  • Arch Linux ARM image for PinePhone
  • bsdtar, dd, or bmaptool for flashing the image
  • A terminal emulator

4. Step 1: Download Arch Linux ARM for PinePhone

The Arch Linux ARM community provides prebuilt images specifically for the PinePhone.

Visit:
👉 https://archlinuxarm.org/platforms/armv8/allwinner/pinephone

Download the latest root filesystem (tar.gz), or look for community-built images with UIs already installed if you want a quicker setup.

Alternatively, some users prefer images provided by the DanctNIX project — a popular Arch-based mobile distro for PinePhone.


5. Step 2: Prepare the MicroSD Card

Use a reliable tool to format the MicroSD card. On a Linux host machine:

  1. List storage devices:

    lsblk
    
  2. Identify your SD card (e.g., /dev/sdX). Be careful — selecting the wrong device can erase your data.

  3. Wipe and format:

    sudo wipefs -a /dev/sdX
    sudo mkfs.ext4 /dev/sdX
    

Most ready-made images come as .img.xz or .img.gz files that include boot and root partitions, so formatting isn’t always necessary — just flash them directly.


6. Step 3: Flash the Image to the MicroSD Card

If you’re using a .img.xz or .img.gz:

xzcat ArchLinuxARM-pinephone-latest.img.xz | sudo dd of=/dev/sdX bs=4M status=progress && sync

If you’re using a raw rootfs tarball:

  1. Partition the card manually:

    • Create two partitions:
      • boot (e.g., 200MB, FAT32)
      • root (rest of the space, ext4)
  2. Mount and extract the contents:

    sudo mount /dev/sdX2 /mnt
    sudo mkdir /mnt/boot
    sudo mount /dev/sdX1 /mnt/boot
    sudo bsdtar -xpf ArchLinuxARM-pinephone-latest.tar.gz -C /mnt
    sync
    
  3. Unmount everything:

    sudo umount /mnt/boot
    sudo umount /mnt
    

7. Step 4: Booting the PinePhone

  1. Insert the microSD card into your PinePhone.
  2. Power on the device.

The PinePhone should boot from the microSD card by default. If it doesn’t, ensure your image is correctly written and supports U-Boot.

The screen may remain black for several seconds during the initial boot — be patient.


8. Step 5: Initial Setup and Login

Once booted:

  • The default user is often alarm with password alarm
  • The root account typically uses root / root

Log in via the on-screen keyboard (if GUI is available), or connect via serial/SSH if you’re debugging.

Once logged in, it’s time to update and configure the system.


9. Step 6: Updating and Installing Packages

Arch uses pacman as its package manager. Start by updating the system:

sudo pacman -Syu

Install essential packages for system administration:

sudo pacman -S nano git base-devel wget openssh

10. Step 7: Choosing a Mobile Interface

Arch Linux ARM gives you the flexibility to choose any of the following mobile-friendly UIs:

  • Phosh – GNOME-based UI used by Purism’s Librem 5
  • Plasma Mobile – KDE’s modern touch-friendly UI
  • Sxmo – A minimalist and keyboard-centric interface using dwm or sway

Each interface has pros and cons based on usability and resource consumption.


11. Step 8: Installing a Graphical Shell (Phosh, Plasma Mobile, or Sxmo)

A. Installing Phosh

sudo pacman -S phosh phoc squeekboard
sudo systemctl enable gdm.service

Set up required services:

sudo systemctl enable NetworkManager.service
sudo systemctl enable ModemManager.service

Reboot and Phosh should load as your graphical shell.


B. Installing Plasma Mobile

sudo pacman -S plasma-mobile plasma-wayland-session kwin
sudo systemctl enable sddm.service

Again, enable networking:

sudo systemctl enable NetworkManager

Reboot and enjoy KDE’s mobile interface.


C. Installing Sxmo

sudo pacman -S sxmo-utils sxmo-dwm sxmo-modemmanager sxmo-scripts

Sxmo is highly efficient but has a steeper learning curve. It’s perfect for terminal power users.


12. Troubleshooting Tips

  • Blank screen after boot: Check U-Boot compatibility and ensure display drivers are loaded.
  • Modem not working: Make sure ModemManager and ofono or eg25-manager are installed and running.
  • Touchscreen calibration issues: Install libinput and tweak via xinput.
  • Battery not charging: Some kernels have issues with battery reporting; try a different kernel package.
  • Wi-Fi issues: Ensure rtl8723cs or related firmware is installed for the PinePhone Wi-Fi module.

13. Conclusion

Installing Arch Linux ARM on a PinePhone opens up a powerful and customizable Linux experience right in your pocket. While not as polished as mainstream smartphone OSes, it empowers users with full control over their device — perfect for developers, security enthusiasts, and DIYers.

With a bit of patience and experimentation, the PinePhone becomes a mobile platform where the terminal is just a tap away, updates come straight from the Arch repositories, and every component is modifiable.

Whether you choose Phosh for usability, Plasma for aesthetics, or Sxmo for minimalism, you’re embracing the spirit of Linux — freedom, flexibility, and fun.