My Odroid N2 is in about the same situation, there's a lack of drivers coming from ARM because they're pushing Android and Wayland. BUT, if you're in a position to build a kernel, and I've done it a few times: take the kernel-level Mali package
https://developer.arm.com/tools-and-soft...ard-kernel and build it in, then add the user-space drivers from
https://developer.arm.com/tools-and-soft...user-space
The user-space driver is actually a libmali.so file with a few symlinks pointing at it, looks something like this:
Code:
lrwxrwxrwx 1 root root 11 Dec 2 13:43 libEGL.so -> libEGL.so.1
lrwxrwxrwx 1 root root 10 Dec 2 13:43 libEGL.so.1 -> libmali.so
lrwxrwxrwx 1 root root 17 Dec 2 13:43 libGLESv1_CM.so -> libGLESv1_CM.so.1
lrwxrwxrwx 1 root root 10 Dec 2 13:43 libGLESv1_CM.so.1 -> libmali.so
lrwxrwxrwx 1 root root 14 Dec 2 13:43 libGLESv2.so -> libGLESv2.so.2
lrwxrwxrwx 1 root root 10 Dec 2 13:43 libGLESv2.so.2 -> libmali.so
-rwxr-x--- 1 root root 149838991 Dec 18 2017 libmali.so
-rwxr-x--- 1 root root 19467864 Dec 18 2017 liboffline_compiler_api_gles.so
lrwxrwxrwx 1 root root 14 Dec 2 13:43 libOpenCL.so -> libOpenCL.so.1
lrwxrwxrwx 1 root root 10 Dec 2 13:43 libOpenCL.so.1 -> libmali.so
The library is a big binary blob but if you use nm to look into it you see functions and objects defined that belong to several Khronos languages. If it's complete with the kernel-level stuff added it could be used to do OpenGL ES or OpenCL at least. Looks like this wouldn't get OpenGL ES 2.1 but somewhere I saw 3.0 I think.
There are limitations on how it can be distributed but the workaround is to have everybody fetch their own package after agreeing to the distribution restrictions then use it with a package that somebody else made, you used to have to install Java that way. If you try to use the user-space stuff by itself you get "undefined reference" errors because you've only got part of it.
I have a hunch that OpenGL shaders are about the same as OpenCL kernels, they're little subroutines which get compiled before use. And that certainly didn't come from any OpenGL tutorial I've read.