Orange Pi OS (Arch) on Orange Pi Zero 3


I recently ordered a Orange Pi Zero 3 board and installed Arch Linux ARM on it.

The official image list includes an image for “Orange Pi OS(Arch)”.

Extract the compressed image to an SD card at /dev/sdc as root:

xzcat Opios-arch-aarch64-xfce-opizero3-23.07-linux6.1.31-1gb-2gb.img.xz | dd of=/dev/sdc status=progress

After first boot and wifi and configured I disabled the window manager since it uses too much memory.

systemctl disable lightdm


It turns out rebooting the device is not trivial as it tends to shutdown instead.

Related issues:

Reboot commands tested:

reboot -f
shutdown -r now
systemctl reboot -f

USB Audio

In order to get this USB Speaker to work, I had to make sure my user was in the audio group:

usermod -a -G audio alarm

After that I could run commands like the following to identify which device it was (or run as root):

$ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: audiocodec [audiocodec], device 0: CDC PCM Codec-0 [CDC PCM Codec-0]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 2: ahubhdmi [ahubhdmi], device 0: ahub_plat-i2s-hifi i2s-hifi-0 [ahub_plat-i2s-hifi i2s-hifi-0]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 3: Device [USB2.0 Device], device 0: USB Audio [USB Audio]
  Subdevices: 1/1
  Subdevice #0: subdevice #0

Then we update the /usr/share/alsa/alsa.conf file such that the following is updated from 0 to 3:

defaults.ctl.card 3
defaults.pcm.card 3


I found that the pacman repository had issues when trying to install some packages like go, etc.:

$ cat /etc/pacman.d/mirrorlist
Server =$arch/$repo

Instead, created a separate mirrorlist for core, extra, and community.

cat > /etc/pacman.d/mirrorlist-arch << EOF
Server =\$arch/\$repo

Then edit pacman.conf to use that instead:

Include = /etc/pacman.d/mirrorlist-arch

Include = /etc/pacman.d/mirrorlist-arch

Include = /etc/pacman.d/mirrorlist-arch

Include = /etc/pacman.d/mirrorlist

The first time I tried to udpate from these repos I ran into issues with the keys so I resolved it with the following:

pacman-key --init
pacman -S archlinuxarm-keyring
pacman-key --populate archlinuxarm
pacman -Syu