I’m trying since some days to run a Qt OpenGL ES example application on my Beaglebone Black.
I’m using the latest debian image from beagleboard.org with the 3.12 kernel from Robert C Nelson’s linux-dev repository. The Graphics SDK was downloaded and compiled by the sgx-build-modules.sh script (which is also provided in the git repository from Robert). I copied the sgx folders to /opt on the BBB and ran the sgx-install script, which setups and loads the pvrsrv and omaplfb modules. The sgx graphic examples (EvilSkull, ChameleonMan, etc.) run like a charm. (Before compilation I had to change this line https://github.com/RobertCNelson/linux-dev/blob/am33x-v3.12/sgx_build_modules.sh#L272 from “no” to “yes”, otherwise there is a EGL error when I want to start a graphics sdk example)
Now I want to compile Qt-4.8.6 applications with OpenGL ES support. I changed my qws mkspec to use OpenGL and use the same compiler which was used for compiling the kernel and the Graphics SDK (gcc-linaro-arm-linux-gnueabihf-4.8-2013.10_linux). Also I had to apply these two patches: https://github.com/prabindh/qt-configs/tree/master/qt4.8
My configure directive is:
./configure -v -opensource -confirm-license -prefix /opt/qt -embedded arm -platform qws/linux-x86-g++ -xplatform qws/linux-TIarmv7-sgx-g++ -depths 16,24,32 -no-mmx -no-3dnow -no-sse -no-sse2 -no-ssse3 -no-glib -no-cups -no-largefile -no-accessibility -no-openssl -no-gtkstyle -qt-mouse-pc -qt-mouse-linuxtp -qt-mouse-linuxinput -plugin-mouse-linuxtp -plugin-mouse-pc -fast -little-endian -host-big-endian -no-pch -no-sql-ibase -no-sql-mysql -no-sql-odbc -no-sql-psql -no-sql-sqlite -no-sql-sqlite2 -no-webkit -no-qt3support -nomake demos -nomake docs -nomake translations -qt-mouse-tslib -opengl es2 -qt-gfx-linuxfb -plugin-gfx-powervr -D QT_NO_QWS_CURSOR -D QT_QWS_CLIENTBLIT
After make install I’m copying the examples, libs and plugins to the BBB. Any non-opengl application works properly. But when I want to start the opengl_es2 example, a GLSurface error comes up:
debian@beaglebone:/opt/qt/examples/opengl/hellogl_es2$ sudo ./hellogl_es2 -qws -display powervr
QEglContext::createSurface(): Unable to create EGL surface, error = 0x300b
On the BBB display (HDMI) I can see the running Qt application, but there’s only a completely green area where the OpenGL rendering should happen.
Well, I don’t have any clue how to solve this problem. I even don’t know if it’s a problem with my Qt compilation OR my graphics sdk compilation. Maybe I’ve only missed to add a neccessary patch, which isn’t automatically applied by Robert C Nelson’s building scripts?
Many thanks in advance!
Here I’ll provide some information which could be helpful to figure out the problem.
I disabled the window manager “lightdm”.