Severe graphical glitches on KDE

While I have been using Manjaro on my desktop PC since a couple of years, this week I gave it a try, installing Manjaro ARM (KDE) on my shiny new Raspberry PI 5.

Installation was done to an SD card with the manjaro-arm-installer.

Unfortunately the logon screen and desktop look like this:

Mod edit:- Images are unnecessary when a text description can easily provide enough context.

No icons, no colors, no text. All screen elements and windows are just blueish-grey boxes. And this is an X11 session, so Wayland is not the culprit.

Switching to TTY works fine and in the terminal everything looks ok. Didn’t see anything suspicious in dmesg.
Meanwhile I also disabled SSDM service and started Plasma manually (X11). Same result (blueish-grey boxes). And when starting manually with Wayland I just get a black screen.
I can also provide Xorg log if that helps.

Erasing the SD card again and re-installing from scratch (manjaro-arm-installer) also didn’t get rid of the problem.

Any hints, what might cause this issue and how to fix it are highly appreciated!

1 Like

Can you verify which version does the manjaro arm installer flash when you use it? Is it version 23.02? If it is, then that version does not have the necessary files and configuration to work with Pi-5. I suggest you download a more recent version (preferably the latest one) from here:

https://github.com/manjaro-arm/rpi4-images/releases

The installer script creates a version matching the current repo state.

You should definately use arm-unstable branch.

If you were creating the image on x86_64 - did you remember to restart the service before writing the image?

 sudo systemctl restart systemd-binfmt

→ manjaro-arm / applications / manjaro-arm-installer · GitLab

If you are running plasma from an SDcard - depending on quality - you may expect a less than ideal performance - but graphical glitches - such as outright distortion shouldn’t happen.

Did you specify arm-unstable when creating the SD card?

//EDIT:

For the sake of verification - following my own instructions - to create an OOB experience

  • clone the manjaro-arm-installer repo
  • switch to root context (using su)
  • cd into the manjaro-arm-installer folder
  • run the installer
    manjaro-arm-installer arm-unstable
    
  • Insert the sd card into a rpi5-8G
  • login to Wayland - no issues

On my test system - running btop - Plasma is using 1G memory.

If you want to know more about how to configure the hardware

See → https://www.raspberrypi.com/documentation/computers/getting-started.html

Thanks!
I’m using the latest version of the manjaro-arm-installer script from gitlab.

Installation was started with

sudo bash ./manjaro-arm-installer arm-unstable

as that’s what is also recommended to be used for rpi5 in various other rpi5 related threads in this forum.

I also restarted the system a couple of times in the last days. So restart of systemd-binfmt isn’t the problem.

But your hint to check, whether I’m really on arm-unstable did help to pinpoint the problem.
Indeed on the raspberry pacman-mirrors -G reports arm-stable!
Despite starting manjaro-arm-installer with arm-unstable.

After adding a couple of read -p breaks to the script I found the culprit.
In line 148 of the manjaro-arm-installer script sed doesn’t change pacman-mirrors.conf to arm-unstable for some reason. But the $BRANCH variable is correctly set to arm-unstable.

sed -i 's|^Branch.*|Branch = '${BRANCH}'|' $TMPDIR/root/etc/pacman-mirrors.conf

Hence the mirrorlist afterwards is being generated for arm-stable.
Still trying to figure out why sed here apparently works for others but not for me… Maybe related to the non-US locale settings of my system? Is sed locale dependant?

Edit: maybe it’s not sed, but pacman-mirrors. At least when installation of the packages starts in line 152 of the script, I always have
/var/tmp/manjaro-arm-installer/root/etc/pacman-mirrors.conf
as well as
/var/tmp/manjaro-arm-installer/root/etc/pacman.d/mirrorlist
pointing to arm-stable and not to arm-unstable. Even when starting the script with arm-unstable parameter (and confirmed by checking that $BRANCH in the script is indeed set to arm-unstable). I’ll investigate a bit more tomorrow.

Meanwhile I managed to get Manjaro working for my raspi5. But I had to adapt the installation script in three places.

In line 148 of manjaro-arm-installer I had to replace

sed -i 's|^Branch.*|Branch = '${BRANCH}'|' $TMPDIR/root/etc/pacman-mirrors.conf

with

sed -i 's|^..Branch.*|Branch = '${BRANCH}'|' $TMPDIR/root/etc/pacman-mirrors.conf

Because the pacman-mirrors.conf extracted from Manjaro-ARM-aarch64-latest.tar.gz looks like:

#Branch Pacman should use (stable, testing, unstable)
# Branch = stable

And “^Branch” just doesn’t match that. But “^…Branch” does.

In line 144 of manjaro-arm-installer “pacman-key” complained about not being able to access the mirrorlist file. As Manjaro-ARM-aarch64-latest.tar.gz doesn’t contain an at least empty mirror list and the mirror list is only being generated later on in the script.
Which apparently did lead to some follow-on errors during keyring setup. Adding

touch $TMPDIR/root/etc/pacman.d/mirrorlist

before line 144 did fix that.

In line 150 “pacman-mirrors” complained about missing certificates and hence was not able to generate the mirror list. At least not a mirror list with working, reasonable fast mirrors based on fasttrack option. Just the default mirror list. And some of these were so slow that later on download of the packages did fail.
Rootcause was, that while Manjaro-ARM-aarch64-latest.tar.gz contains the /etc/ssl/certs/ca-certificates.crt link the target to which it links /etc/ca-certificates/extracted/tls-ca-bundle.pem does not exist in this rootfs archive.

My fix for that was to add

cp /etc/ca-certificates/extracted/* $TMPDIR/root/etc/ca-certificates/extracted/

also before line 144 to the script. So copying certificates from the host machine. A more elegant solution would probably have been to re-create the certificate store, but well, it worked…

I still don’t understand, why the manjaro-arm-installer script apparently works for others, but I need to apply these changes.

Edit:
I double checked with an older build (20241118) of Manjaro-ARM-aarch64-latest.tar.gz
from Releases · manjaro-arm/rootfs · GitHub and

  • there pacman-mirrors.conf looks different, maching the original sed command in the script
  • it contains a default mirrorlist
  • /etc/ca-certificates/extracted/tls-ca-bundle.pem exists

Hence my changes to the script would not have been neccessary.
So it seems there is something wrong with recent/latest Manjaro-ARM-aarch64-latest.tar.gz builds.

After re-routing all output and errors that the script sends to /dev/null to a log file, I saw also some other error messages further down in the installation process. Probably not important, as otherwise the rsulting installation wouldn’t have been functional. But I will double check these, too sometime this week.