Hi,
I had an issue with the OpenCL Driver on my Chomebook.
I followed ARM's instruction and successfully boot into Linux. However, I got an error message said that libxcb-dri2.so missing. After install libxcb-dri2.0-dev, I can compile Mali OpenCL SDK sample codes. But they won't be executed correctly under X11 or via fbdev. I past error message below. Any suggestion? Thanks.
> ./hello_world_opencl OpenCL error: CL_OUT_OF_HOST_MEMORY Creating an OpenCL context failed. common.cpp:248 Failed to create an OpenCL context. hello_world_opencl.cpp:39 > ldd hello_world_opencl libOpenCL.so => /opt/mali/fbdev/libOpenCL.so (0x76efc000) libstdc++.so.6 => /usr/lib/arm-linux-gnueabihf/libstdc++.so.6 (0x76e4a000) libgcc_s.so.1 => /lib/arm-linux-gnueabihf/libgcc_s.so.1 (0x76e39000) libc.so.6 => /lib/arm-linux-gnueabihf/libc.so.6 (0x76d55000) /lib/ld-linux-armhf.so.3 (0x76f07000) libmali.so => /opt/mali/fbdev/libmali.so (0x76304000) libpthread.so.0 => /lib/arm-linux-gnueabihf/libpthread.so.0 (0x762e9000) libm.so.6 => /lib/arm-linux-gnueabihf/libm.so.6 (0x7627e000) librt.so.1 => /lib/arm-linux-gnueabihf/librt.so.1 (0x76270000) libdl.so.2 => /lib/arm-linux-gnueabihf/libdl.so.2 (0x76265000)
> ./hello_world_opencl
OpenCL error: CL_OUT_OF_HOST_MEMORY
Creating an OpenCL context failed. common.cpp:248
Failed to create an OpenCL context. hello_world_opencl.cpp:39
> ldd hello_world_opencl
libOpenCL.so => /opt/mali/fbdev/libOpenCL.so (0x76efc000)
libstdc++.so.6 => /usr/lib/arm-linux-gnueabihf/libstdc++.so.6 (0x76e4a000)
libgcc_s.so.1 => /lib/arm-linux-gnueabihf/libgcc_s.so.1 (0x76e39000)
libc.so.6 => /lib/arm-linux-gnueabihf/libc.so.6 (0x76d55000)
/lib/ld-linux-armhf.so.3 (0x76f07000)
libmali.so => /opt/mali/fbdev/libmali.so (0x76304000)
libpthread.so.0 => /lib/arm-linux-gnueabihf/libpthread.so.0 (0x762e9000)
libm.so.6 => /lib/arm-linux-gnueabihf/libm.so.6 (0x7627e000)
librt.so.1 => /lib/arm-linux-gnueabihf/librt.so.1 (0x76270000)
libdl.so.2 => /lib/arm-linux-gnueabihf/libdl.so.2 (0x76265000)
Did you use root account to execute OpenCL codes?
I found that only root account could execute the OpenCL sample codes in my case.
Does anyone know if there is a way to solve this? Thanks.
Running any program as sudo works I can live with that. Thanks for the hint
Hi j.c.,
This is because mali is set up as a misc device, and therefore under /dev/mali0 only root has rw permission. It might be possible to change the group of /dev/mali0, give that group rw permission to it, and add yourself to that group, but as you have discovered sudo also works . We're noting all these things down for future releases so thanks for the feedback!
Thanks,
Chris
chmod & chown changes are not persistent over reboot. You can use udev rules. Create a file say '10-mali.rules' in /etc/udev/rules.d/ and add this
KERNEL=="mali[0-9]", GROUP="video" MODE="0660"
and add yourself to video group, or change mode to 0666
This way you have rw permissions to /dev/mali0
--Krishnaraj