Hi.
Just installed the Mali Graphics Debugger and I'm trying to use it with an Orange Pi One (Mali400-MP2) running Armbian but the daemon can't recognize the driver
Followed the instructions and installed mgddaemon. When I run it got the messages:
INFO: Main: The MGD daemon is starting Daemon is version: D016
ERROR: DeviceInfo: Unable to load GPU information (GL_VENDOR, GL_RENDERER, GL_VERSION) for this device.
3D acceleration works fine in Armbian I can run glmark2-es2 and run other OpenGL ES examples fine.
If I run es2_info:
GL_VERSION: OpenGL ES 2.0GL_RENDERER: Mali-400 MP
I'm a beginner so I don´t know if glxinfo is relevant but it reports:
MESA-LOADER: failed to retrieve device informationlibGL error: unable to load driver: mali_drm_dri.solibGL error: driver pointer missinglibGL error: failed to load driver: mali_drm
Hi Graedus,I have to admit that I am not familar with Armbian but it looks to be a debian based Linux distribution so should work. From the messages you provided it looks to be that MGD is unable to detect where your OpenGL ES libraries are.Could you share with me the location of your Mali driver. You will be looking for libGLESv2.so and libEGL.so. The easiest way to work this out is to run the command ldd on one of the examples that is working correctly.
Also could you share the exact line you use when you are running your application that fails with MGD.
Kind regards,
Stephen
Yes I made a silly mistake. I just needed to point to the correct libraries with:
export LD_LIBRARY_PATH=/usr/lib/arm-linux-gnueabihf/mali-egl/
But now when I try to run an example I get an error with libintercept.so
DISPLAY=:0 LD_PRELOAD=/home/juan/libinterceptor.so es2tri
1508340432128: mgd_interceptor[2497]: [2497]:INFO: DuplicateLibraryDetector: First interceptor loaded1508340432131: mgd_interceptor[2497]: [2497]:ERROR: PassThroughClApi: Could not find any libraries for 'cl'. Looked in the following places: {/usr/lib/libOpenCL.so, /usr/lib64/libOpenCL.so, /usr/lib32/libOpenCL.so, libOpenCL.so}1508340432159: mgd_interceptor[2497]: [2497]:INFO: PassThroughEglApi: Found the following libraries for 'egl': {libEGL.so}1508340432161: mgd_interceptor[2497]: [2497]:INFO: PassThroughGlesApi: Found the following libraries for 'gles': {libGLESv2.so, libGLESv1_CM.so}1508340432167: mgd_interceptor[2497]: [2497]:WARNING: GatorConnection: Not connected to gatord, the application will run normally but Streamline will not collect annotations. To collect annotations, please verify you are running gatord 5.22 or later and that SELinux is disabled.1508340432170: mgd_interceptor[2497]: [2497]:ERROR: Interceptor: MGD failed to read the process whitelist file: No reason provided. (Does the file exist & have correct permissions?)1508340432170: mgd_interceptor[2497]: [2497]:INFO: MarshallerBase: Connecting to daemon. Sending header...1508340432170: mgd_interceptor[2497]: [2497]:INFO: Interceptor: Interceptor loaded for 2497: es2tri1508340432171: mgd_interceptor[2497]: [2497]:INFO: Interceptor: Activating tracing1508340432171: mgd_interceptor[2497]: [2501]:INFO: ListenerThread: Received new message: C:1 E:0 F:01508340432172: mgd_interceptor[2497]: [2501]:INFO: Interceptor: Host attached1508340432181: mgd_interceptor[2497]: [2497]:INFO: Interceptor: API TRACING: Enabled1508340432181: mgd_interceptor[2497]: [2497]:INFO: Interceptor: ASSET TRACKING: Enabled1508340432182: mgd_interceptor[2497]: [2501]:INFO: ListenerThread: Received new message: C:1 E:0 F:01508340432182: mgd_interceptor[2497]: [2497]:INFO: ApiStateAttachmentHandler: Sending tracked EGL asset objects to host1508340432182: mgd_interceptor[2497]: [2501]:INFO: Interceptor: Capture mode set to 01508340432182: mgd_interceptor[2497]: [2497]:INFO: ApiStateAttachmentHandler: Sending all EGL state objects to host for thread 24971508340432183: mgd_interceptor[2497]: [2497]:ERROR: DlOpenInterceptor: FATAL: Could not find libdl.so.2.Segmentation fault
libdl.so.2 is not present
I'm relatively new to Linux, (but I have experience with BSD) so I'm probably just missing some pkg this time.
Thank you.
Hi,Sorry about the delay in response. Looking at the error you have presented: "DlOpenInterceptor: FATAL: Could not find libdl.so.2". It looks like the interceptor can't find libdl.so.2 on your system. The interceptor uses this library to open the Mali Driver with a call to dlopen. If you run the command ldd libinterceptor.so it will list the libraries that are needed to use the application and I believe that it won't be able to show you the path to libdl.so.2.There can be two reasons for this. The first (unlikely) is that there is no libdl.so on your system. The second is that your libdl library isn't called libdl.so.2. It maybe be called libdl.so or libdl.so.1. In the second case what you need to do is find the location and name of your libdl library. Then create a symbolic link between your libdl library and the one mgd is expecting.ln -s locationOfYourRealLibdl.so libdl.so.2Hope this helps,Stephen
Hi,
I'm having same issues with Asus Tinkerboard that daemon cannot identify the Mali GPU:
ERROR: DeviceInfo: Unable to load GPU information (GL_VENDOR, GL_RENDERER, GL_VERSION) for this device.ERROR: DeviceInfo: eglInitialize, EGL error: 0x3008
I've added export LD_LIBRARY_PATH=/usr/lib and libraries are symbolic links to libMali.so (because that's what rockchip provides).
lrwxrwxrwx 1 root root 10 Jan 1 1970 libEGL.so -> libMali.solrwxrwxrwx 1 root root 10 Jan 1 1970 libEGL.so.1 -> libMali.solrwxrwxrwx 1 root root 16 Jan 1 1970 libFLAC.so.8 -> libFLAC.so.8.3.0-rwxr-xr-x 1 root root 366880 Jan 1 1970 libFLAC.so.8.3.0lrwxrwxrwx 1 root root 10 Jan 1 1970 libGLESv1_CM.so -> libMali.solrwxrwxrwx 1 root root 10 Jan 1 1970 libGLESv1_CM.so.1 -> libMali.solrwxrwxrwx 1 root root 10 Jan 1 1970 libGLESv2.so -> libMali.solrwxrwxrwx 1 root root 10 Jan 1 1970 libGLESv2.so.2 -> libMali.so-rwxr-xr-x 1 root root 17602544 Jan 1 1970 libMali.so
All OpenGL ES 2.0 applications work corretly, but daemon don't recognice Mali GPU and connection from GUI fails.
Br,
Pasi