[Guide] 🖥️ Arch Linux for Single-Board Computers!

Supposdly the ‘all great framework of all times’ armbian has it updated. So you might wanna try armbian.

But yeah we gotta wait for Joshuas return to do an overall fix on things.

If you are like me and use the sbc as media center, there is a new maintained project from kde plasma called plasma-bigscreen. The point of it is, it gives a tv and remote friendly ui to navigate the DE.

I made it work with alarm and is avalaible in agrrepo : https://github.com/hbiyik/agrrepo

Package name is: plasma-bigscreen-git

So far i really enjoyed it, somehow too much android vibes but nice overall

1 Like

Huhuuhh enjoying netflix disney+ and others without widevine… huhuhh (kidding) Looks very interesting since no one wants to get the official google chromecast that gets updated by them / at least they can the this newer project.

Hi Boogiepop,

I had a look at your github repo, thank you for this work!

Which kernel is recommended in order to run mpp modified stuff (firefox or mpv)? Also, does mpp need panfrost, panthor or maybe the closed driver (I can see the libmali valhall g610 driver in the repo)?
Would gnome wayland work?

Mpp requires downstream bsp kernel. Mainline linux uses another api called v4l2 requests.

To render stuff you need a proper mesa, mainline mesa works fine with panthor kernel driver.

Panthor kernel driver is backported to bsp kernel since 1 or 2 years ago.

I dont think you anyone needs to run blob drivers anymore, unless he is after something specific and knows what he is doing. Blobs dont have GL (only gles), and kills all the linux pleasure.

You can check the wiki of nyanmisakas ffmpeg fork for details https://github.com/nyanmisaka/ffmpeg-rockchip/wiki/Rendering

Not related but ofc wayland gnome or whaever works. Such topics are related to gpu (mpp is related to vpu) and panthor is in quite a good shape. See few post above about plasma bigscreen, it is running over wayland.

mpv-mpp actually works :slight_smile:

I could find mpv-mpp and install it from the boogie repo:

pacman -Ss mpv-mpp
boogie/mpv-mpp 1:0.40.0-6 [installed: 1:0.40.0-5]
    a free, open source, and cross-platform media player

There are some error messages on start, but the playback seems fine, and the hardware decode is propably working, based on cpu use.

mpv --profile=fast --hwdec=rkmpp someporn_4k.mp4

mpp[4712]: mpp_platform: client 12 driver is not ready!
● Video  --vid=1  --vlang=eng  (h264 3840x2160 29.97 fps) [default]
● Audio  --aid=1  --alang=eng  (aac 2ch 44100 Hz 196 kbps) [default]
mpp[4712]: mpp_info: mpp version: ac16b2c6 author: Yanjun Liao   2025-07-31 fix[h264e_api_v2]: Fix bit_real calc in skip mode
[ffmpeg/video] h264_rkmpp: An invalid frame was output by a decoder. This is a bug, please report it.
Error while decoding frame (hardware decoding)!
Using hardware decoding (rkmpp).
AO: [pipewire] 44100Hz stereo 2ch floatp
VO: [gpu] 3840x2160 drm_prime[nv12]
AV: 00:00:21 / 00:48:27 (1%) A-V:  0.000 Cache: 74s/146MB
Exiting... (Quit)

How do I get hold of firefox-mpp though? I can see it in the repo (/hbiyik/agrrepo/mpp/firefox-mpp) when browsing, but I can see only a PKGBUILD file there. Pacman won’t find it, ‘pacman -Ss firefox-mpp’ will return nothing.

This is the relevant part in my pacman.conf, does it look ok?

...
[boogie]
SigLevel = Never
Server = https://github.com/hbiyik/agrrepo/releases/download/alarm-$arch

firefox-mpp no more builds due to recent updates in firefox codebase, firefox guys changed shit loads of things in video decoding side so i did not rebase the mpp patchset cos it would take so much time to rebase even rewrite the patchset.

same is true for for sunshine-mpp

And now to make it worse these ones that do stuff are likely loosing their browser… https://www.theverge.com/news/758218/perplexity-google-chrome-bid-unsolicited-offer

Things are not looking good for linux…

If firefox (and sunshine) are problematic, is there any alternative? Firefox was quite reliable on my arch x64, therefore it was my first choice on arm too.

How about chromium? Is there an mpp git out there?

I have a reverted the firefox-mpp package to a slightly older version 139.x

You can install with pacman now

1 Like

This version installs fine. Thank you for reverting.

The mpp acceleration, based on apparent cpu use in btop, seems to be working. Yet, the playback is not very smooth, especially at higher resolutions. Is there anything I could do to improve this? Maybe is this some sort or power save mode, e.g. mpp processor throttled? (I saw something similar on x86 when the amd gpu stuck in some power save mode, and playback was choppy)

firefox time to time sucks on rendering on wayland. You can try to force X11 with

MOZ_ENABLE_WAYLAND=0 firefox

and run it either under xwayland if you are under wayland or native X if no wayland is involved. I experinced that it improves firefox rendering performance a lot.

Also now sunshine-mpp is building again, and can be installed via pacman. Sunshine performance can be improved a lot, but currently i only use it for remote desktop purposes and it saves the day for me.

you can verify if the windowing is switched to X by checking about:support page in firefox. (somewhere in the table should show xwayland…)

After a video is played about:support should also list the hardware accelerated codecs.

I tried xwayland with the MOZ_ENABLE_WAYLAND=0 parameter. I could see “xwayland” at “Window Protocol” in about:support. (xeyes showed xwayland too). As far as the video playback smoothness is concerned, I do not see a huge difference between wayland and xwayland (maybe native x11 would be better).

Even the low resolution youtube videos (e.g. 480p) are not total smooth. Neither those small icon clips when you hoover the mouse over them. But I am quite convinced the hardware acceleration is working because of the low cpu loads I can see.

There are some errors reported in the about:support, but they may not be relevant:

Failure Log
|(#0) Error|true: ERROR|
|---|---|
|(#1) Error|trueV4L2 device /dev/video2 does not support M2M modes|
|(#2) Error|true: ERROR|
|(#3) Error|trueV4L2 device /dev/video1 does not support M2M modes|
|(#4) Error|true: ERROR|
|(#5) Error|trueV4L2 device /dev/video-enc0 failed to query capabilities|
|(#6) Error|true: ERROR|
|(#7) Error|trueV4L2 device /dev/video-dec0 failed to query capabilities|
|(#8) Error|true: ERROR|
|(#9) Error|trueV4L2 device /dev/video0 does not support M2M modes|

mpv playback is very smooth though.

Dont mind abou those errors, they are fine and unrelated.

Can you open a youtube video right click and open stats for nerds and monitor dropped frames. And share the same link so that i can try. I get 0 frames dropped in 4k vids.

ok nevermind, i reproduced the problem, firefox is choppy, most likely a firefox issue somewhere.

I can see a few dropped frames during youtube playback in the nerds’ stats, about 100-150 from 5000. Sometimes the codec was h264 sometimes vp9, depending on the video, which were 60 Hz 4k. I can see dropped frames at lower (e.g. 1080p) resolution too, in similar numbers.
The number of dropped frames is low and probably should not cause the playback so choppy.

Is there any way I could print the mpp processor or gpu clock and load? A bit like an equivalent of radeontop. Than I could compare the load/clock during firefox youtube playback and mpv playback.

Unrelated to the mpp - firefox issues, but somehow one of my cpu cores disappeared. inxi says I have a 7-core cpu, htop says core 7 is offline, btop lists cpus from 0 to 6, so 7 alltogether. My system is running for a while (about 1 and half days) and I often use suspend/resume cycles.

The 8th core comes back after reset.

mpv is able to play with hw acceleration. The playback looks fine (i.e. not choppy as firefox), and cpu use is also fine.

There is an issue though. mpv is able to stream from youtube, but the playback is then not hardware accelerated. If I download the same stream (same stream ids etc), and play the file from a local drive, it is hw accelerated.

So I thought maybe some initial frames are missing or something, and tried to turn on the hw acceleration during streaming playback (by throttling with control+h). Well, the hw acceleration did not turn on, but in the terminal trace I could see an error message about missing vdpau.

AV: 00:00:20 / 00:30:06 (1%) A-V:  0.000 Dropped: 61Failed to open VDPAU backend libvdpau_nvidia.so: cannot open shared object file: No such file or directory

The downloaded video already starts playing with hw acceleration. When I throttle while playing, hw acceleration turns off as expected. However, when I throttle again, it does not turn back on, instead I can see the vdpau related error message again in the terminal trace.

In the mpv config file I have the mpp related settings (profile=fast; hwdec=rkmpp). I also tried with these settings in the command line but got the same results.

It seems vdpau is some hardcoded setting when it comes to control+h. Is there any way to set rkmmp as default instead?

btw, acestreams are not hw acceleated either. It would be of course nice to have hw acceleration here too.

Are you sure you are using mpv-mpp instead of normal mpv package?