rockchip_dri.so missing

Hi all,
I’m trying to port the flutter engine on Tinker board on the top of DietPi OS.
I installed some missing packages but now the embedder says that the rockchip_dri.so driver is missing.

Where I can find it, please?
Thanks!

Hi,
I don’t think it is an issue of DietPi as DietPi isn’t an own OS. It’s a set of script on top of a base image. In your case probably Armbian. I fond an old Armbian forum entry that sounds similar https://forum.armbian.com/topic/5344-rock64-rockchip_dri-driver-missing/

Not sure how that engine is trying to talk to the GPU, but you need to assure that it uses GLES/EGL. Probably installing the related libraries will already work:

apt install libgles2 libegl1

The libraries are yet installed, even if there was a substitution:

root@DietPi:~# apt install  libgles1-mesa-dev
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Note, selecting 'libmali-xu4-x11-gbm-fbdev' instead of 'libgles1-mesa-dev'
libmali-xu4-x11-gbm-fbdev is already the newest version (19.0.6-3armbian1).
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

After little modifications (needed for Raspberry..) now the messages are:

[modesetting] Could not set DRM client universal planes capable. drmSetClientCap: Operation not supported
[flutter-pi] Could not create drmdev from device at "/dev/dri/card1". Continuing.
[flutter-pi] WARNING: display didn't provide valid physical dimensions.
             The device-pixel ratio will default to 1.0, which may not be the fitting device-pixel ratio for your display.
===================================
display mode:
  resolution: 1920 x 1080
  refresh rate: 60Hz
  physical size: 0mm x 0mm
  flutter device pixel ratio: 1.000000
===================================
flutter-pi: symbol lookup error: flutter-pi: undefined symbol: gbm_surface_create_with_modifiers

I don’t know exactly what does it mean; the driver seems to be there, so why it is not able to create drmdev?
My guess the undefined symbol error is the effect of the first error + continuing

Regards

What the hack. So you use the ASUS Tinker Board, right? I just checked the Armbian repository and it seems it actively overrides the EGL/GLES packages with their own libmali proprietary blobs, on armhf the one for Odroid XU4, which is a completely different SoC and of course cannot work like that. Furthermore GUI software installed from Debian won’t work with these likely.

Luckily it is a separate component we do not add to new images anymore. Please remove it: Edit /etc/apt/sources.list.d/armbian.list and remove buster-desktop and buster-utils there, so only main remains (which holds the essential kernel and firmware packages).

Then purge libmali-xu4-x11-gbm-fbdev and its dependencies. Also check dpkg -l for other possible GPU related packages pulled from Armbian, identified by the suffix in the version string. Then again install the Mesa drivers from Debian. But I just checked the package lists, and for Rockchip support, the newer Mesa drivers from Buster backports are required: https://packages.debian.org/buster-backports/armhf/libgl1-mesa-dri/filelist

apt install -t buster-backports libgl1-mesa-dri libegl1 libgles2

Thanks a lot!!!
I followed your statement and the code moves on …
Now it is breaking some rows ahead with an exception:

printf("init .. %p %d %d\n", flutterpi.egl.display, major, minor);
        eglInitialize(flutterpi.egl.display, &major, &minor);
printf(".. after\n");

Output:
init .. 0x167e4e0 19137245 5122628
Segmentation fault

The challenge continues … :smiley:

Segmentation fault usually points into direction of corrupted files

Dears,
yesterday I had a OS upgrade to DietPi v7.6.2.
Now I’m not able to compile the flutter-pi project.
I have the follolwing error:

root@DietPi:~/flutter-pi/build# make
[  5%] Building C object CMakeFiles/flutter-pi.dir/src/flutter-pi.c.o
/root/flutter-pi/src/flutter-pi.c:36:10: fatal error: EGL/egl.h: No such file or directory
 #include <EGL/egl.h>
          ^~~~~~~~~~~
compilation terminated.

I look into the /usr/include/ directory and I see only the GL directory.
So I realize that the reuired libegl1-mesa-dev library is not installed, so:

root@DietPi:~/flutter-pi/build# apt install  libegl1-mesa-dev
Reading package lists... Done
Building dependency tree
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 libegl1-mesa-dev : Depends: libglvnd-dev but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

Then I try to install libglvnd-dev library:

root@DietPi:~/flutter-pi/build# apt install libglvnd-dev
Reading package lists... Done
Building dependency tree
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 libglvnd-dev : Depends: libglvnd0 (= 1.1.0-1) but 1.3.2-1~bpo10+2 is to be installed
                Depends: libegl1 (= 1.1.0-1)
                Depends: libgles1 (= 1.1.0-1)
                Depends: libgles2 (= 1.1.0-1)
                Depends: libgl1 (= 1.1.0-1) but it is not going to be installed
                Depends: libglx0 (= 1.1.0-1) but it is not going to be installed
                Depends: libopengl0 (= 1.1.0-1) but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

There is something wrong …
:cry: :cry: :cry:

I guess you would need to install from Buster backports as stated above

apt install -t buster-backports libgl1-mesa-dri libegl1 libgles2

oh my … thanks a lot …

Or downgrade all related packages to Buster non-backports :wink:. But yeah, as long as you do not use a Raspberry Pi (where those packages are shipped from the dedicated RPi repo), Mesa backports are a nice thing to benefit from better hardware support.