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
Rebooting
It turns out rebooting the device is not trivial as it tends to shutdown instead.
Related issues:
- https://github.com/orangepi-xunlong/orangepi-build/issues/2
- https://linux-sunxi.org/H6#Errata
- http://www.orangepi.org/orangepiwiki/index.php/Orange_Pi_Zero_3#Prepare_the_required_accessories
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
Updates
I found that the pacman repository had issues when trying to install some packages like go
, etc.:
$ cat /etc/pacman.d/mirrorlist
Server = http://nl.mirror.orangeinfra.online/unstable/$arch/$repo
Instead, created a separate mirrorlist for core, extra, and community.
cat > /etc/pacman.d/mirrorlist-arch << EOF
Server = https://ca.us.mirror.archlinuxarm.org/\$arch/\$repo
EOF
Then edit pacman.conf
to use that instead:
...
[core]
Include = /etc/pacman.d/mirrorlist-arch
[extra]
Include = /etc/pacman.d/mirrorlist-arch
[community]
Include = /etc/pacman.d/mirrorlist-arch
[opios]
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
Links