GPU/Driver/libGL error on Rock 4C plus on Debian

Hey there,

I got several gpu driver issues with my 4c-plus.
For me it looks like that it isn’t using the right path.

All packages are installed…

any ideas how to fix that ?

Hello @Radxa… could get any help or advice… what an awful support :rage:

meanwhile I tried everything armbian different versions, Debian 10,Debian 11 (4.4 & 5.1) & Ubuntu.
But there is always Software Rendering active (llvmpipe).

I searched the internet a lot but nothings works out.
As far as I know it should work OOTP because in debian the drivers are included, isnt it ?

Here’s the issue in the Xorg.log:

10.961] (II) systemd-logind: logind integration requires -keeptty and -keeptty was not provided, disabling logind integration
[ 10.963] (II) xfree86: Adding drm device (/dev/dri/card0)
[ 10.977] (II) no primary bus or device found
[ 10.977] falling back to /sys/devices/platform/display-subsystem/drm/card0
[ 10.978] (II) LoadModule: “glx”
[ 10.982] (II) Loading /usr/lib/xorg/modules/extensions/libglx.so
[ 11.130] (II) Module glx: vendor=“X.Org Foundation”
[ 11.130] compiled for 1.20.11, module version = 1.0.0
[ 11.130] ABI class: X.Org Server Extension, version 10.0
[ 11.130] (II) LoadModule: “modesetting”
[ 11.131] (II) Loading /usr/lib/xorg/modules/drivers/modesetting_drv.so
[ 11.155] (II) Module modesetting: vendor=“X.Org Foundation”
[ 11.155] compiled for 1.20.11, module version = 1.20.11
[ 11.156] Module class: X.Org Video Driver
[ 11.156] ABI class: X.Org Video Driver, version 24.1
[ 11.156] (II) modesetting: Driver for Modesetting Kernel Drivers: kms
[ 11.243] (II) modeset(0): using drv /dev/dri/card0
[ 11.243] (WW) VGA arbiter: cannot open kernel arbiter, no multi-card support
[ 11.244] (II) modeset(0): Creating default Display subsection in Screen section
“Default Screen” for depth/fbbpp 24/32
[ 11.244] (==) modeset(0): Depth 24, (==) framebuffer bpp 32
[ 11.244] () modeset(0): Option “AccelMethod” “exa”
[ 11.244] (
) modeset(0): Option “FlipFB” “none”
[ 11.244] () modeset(0): Option “NoEDID” “true”
[ 11.244] (==) modeset(0): RGB weight 888
[ 11.244] (==) modeset(0): Default visual is TrueColor
[ 11.244] (
) modeset(0): glamor disabled
[ 11.244] (II) modeset(0): ShadowFB: preferred NO, enabled NO
[ 11.824] (II) modeset(0): Output HDMI-1 using monitor section Default Monitor
[ 11.824] (**) modeset(0): Option “Rotate” “normal”
[ 11.824] (II) modeset(0): Output DP-1 has no monitor section
[ 12.369] (II) modeset(0): EDID for output HDMI-1

10.961] (II) systemd-logind: logind integration requires -keeptty and -keeptty was not provided, disabling logind integration
[ 10.963] (II) xfree86: Adding drm device (/dev/dri/card0)
[ 10.977] (II) no primary bus or device found
[ 10.977] falling back to /sys/devices/platform/display-subsystem/drm/card0
[ 10.978] (II) LoadModule: “glx”
[ 10.982] (II) Loading /usr/lib/xorg/modules/extensions/libglx.so
[ 11.130] (II) Module glx: vendor=“X.Org Foundation”
[ 11.130] compiled for 1.20.11, module version = 1.0.0
[ 11.130] ABI class: X.Org Server Extension, version 10.0
[ 11.130] (II) LoadModule: “modesetting”
[ 11.131] (II) Loading /usr/lib/xorg/modules/drivers/modesetting_drv.so
[ 11.155] (II) Module modesetting: vendor=“X.Org Foundation”
[ 11.155] compiled for 1.20.11, module version = 1.20.11
[ 11.156] Module class: X.Org Video Driver
[ 11.156] ABI class: X.Org Video Driver, version 24.1
[ 11.156] (II) modesetting: Driver for Modesetting Kernel Drivers: kms
[ 11.243] (II) modeset(0): using drv /dev/dri/card0
[ 11.243] (WW) VGA arbiter: cannot open kernel arbiter, no multi-card support
[ 11.244] (II) modeset(0): Creating default Display subsection in Screen section
“Default Screen” for depth/fbbpp 24/32
[ 11.244] (==) modeset(0): Depth 24, (==) framebuffer bpp 32
[ 11.244] () modeset(0): Option “AccelMethod” “exa”
[ 11.244] (
) modeset(0): Option “FlipFB” “none”
[ 11.244] () modeset(0): Option “NoEDID” “true”
[ 11.244] (==) modeset(0): RGB weight 888
[ 11.244] (==) modeset(0): Default visual is TrueColor
[ 11.244] (
) modeset(0): glamor disabled
[ 11.244] (II) modeset(0): ShadowFB: preferred NO, enabled NO
[ 11.824] (II) modeset(0): Output HDMI-1 using monitor section Default Monitor
[ 11.824] (**) modeset(0): Option “Rotate” “normal”
[ 11.824] (II) modeset(0): Output DP-1 has no monitor section
[ 12.369] (II) modeset(0): EDID for output HDMI-1

[ 12.696] (WW) modeset(0): Option “DRI” is not used
[ 12.696] (WW) modeset(0): Option “Rotate” is not used
[ 12.698] (II) modeset(0): [DRI2] Setup complete
[ 12.699] (II) modeset(0): [DRI2] DRI driver: rockchip
[ 12.699] (II) modeset(0): [DRI2] VDPAU driver: rockchip
[ 12.699] (II) Initializing extension Generic Event Extension
[ 12.700] (II) Initializing extension SHAPE
[ 12.701] (II) Initializing extension MIT-SHM
[ 12.702] (II) Initializing extension XInputExtension
[ 12.707] (II) Initializing extension XTEST
[ 12.708] (II) Initializing extension BIG-REQUESTS

[ 15.224] (EE) AIGLX error: Calling driver entry point failed
[ 15.449] (II) IGLX: Loaded and initialized swrast
[ 15.449] (II) GLX: Initialized DRISWRAST GL provider for screen 0
[ 15.450] (II) Initializing extension XFree86-VidModeExtension
[ 15.451] (II) Initializing extension XFree86-DGA
[ 15.451] (II) Initializing extension XFree86-DRI
[ 15.464] (II) Initializing extension DRI2

here are the full logs :
https://1drv.ms/u/s!AtrQgFkS9MX5uaMteyfssj_FIYHXkQ?e=AXhog6

On our official image we use mali driver provided by Rockchip, which supports OpenGL ES only. Modern desktop uses regular OpenGL, and will report software rendering when no compatible hardware is available. But our X.org is a customized version from Rockchip, which will use GPU acceleration for desktop rendering.

You can read more about this from Rockchip documentation section 7.10 (warning: Chinese only).

Are you fucking kidding me ?

Thats far away from giving me a solution…

Again I tried Armbian,Debian & Ubuntu with different kernels.
Even my mouse is lagging if I start kodi.
NO GPU IS DETECTED AT ALL !

Meanwhile… I found out the DTB is causing this issue…

With TwisterOS GPU is detected but it doesn’t supports the 4c+ , 4b dtb was loaded & just one usb is working.

With the latest armbian image GPU is not detected, but changing the DTB to the 4C (not plus) makes my GPU work.
But it’s not an acceptable workarround, just one usb is working again…

Indeed there was an issue in the DTB file, the gpu was disbaled by default.
I changed this and now the GPU is working & detected as it should be.

Thats in the latest Build of armbian, but I still dont have any luck with bluetooth and in the dtb file I noticed that there was no entry about it, maybe there is something missing.

Unfortunately I need my gpu to work in Debian, how do I change the DTB in debian & where is it located ?

The best would be to have images with a working a DTB …

How to solve this @radxa ?

Armbian is based on Debian. Can you tell me why you need Debian specifically?

Also @RadxaNaoki can you check 4C+ GPU in Armbian? How come it was disabled?

Debian because its the only OS which is supported to run Home assistant supervised.
But it looks like that the gpu isn’t deactivated. in debian… but I still believe the issue is in the dtb file please check this too .

But maybe I would skip that if I would find a solution to bring my Bluetooth to work in armbian.
As I said before I couldn’t find a Bluetooth entry in the dtb file, maybe a missing entry ?

In armbian exists also a 2nd dtb file for my board but with that dtb it doesn’t starts.

Are these Dtb files are kernel or OS specific ?

Because I found in the dtb file of debian a lot more entries for the gpu than in the dtb for armbian .

it seems armbian uses their own incomplete dts/dtb even on edge kernel. I’ll try to make a patch which uses correct dts from mainline.

btw, generally speaking, armbian issue should be reported to armbian, it should be handled by armbian.
I(we) cannot change their code directly.

@RadxaNaoki Yes I understand but the point is all of your provided images are not working especially with Debian is no chance to get the gpu working.
And it should be your concern to provide at least one working image…
And even me as an non experienced linux user has found that the issue in the DTB on ammbian.

Meanwhile after a lot of trial an errors I was able with a userbuilt armbian bullseye 6.1.20 to make everything to work.

I found out it only works with a forced resolution of 1080p (everything above will crash the video output)
And with that forced Resolution I was able to use the other DTB file. (the one without pi in the name)
This DTB only works with kernel 6

With that GPU, BT & all usb ports are working .
But I’m missing the temperatures, folder tempzone doesnt exists…

even lm_sensors & psensors couldn’t detect anything.