This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

can not run qt3d executable file on AM335x starter kit

I am trying to run 3d demo on AM335x starter kit. for that I had done succesfully crosscompile qt3d library on my host pc. After that I copied whole library and generated ".so" file which is compatible for ARM. Still when I run demo example I get following errors.

root@am335x-evm:~# cd qt3d/bin/
root@am335x-evm:~/qt3d/bin# ./monkeygod -qws
QGLContext::makeCurrent(): Cannot make invalid context current
Segmentation fault

After that I made my different project which uses same qt3d library and tried to run executable file on hardware but I got following errors.

root@am335x-evm:~# cd demo/project/
root@am335x-evm:~/demo/project# ./project -qws
[ 6438.577301] Alignment trap: not handling instruction edd17a00 at [<42904334>]
[ 6438.584838] Unhandled fault: alignment exception (0x001) at 0x00071cae
Bus error

Please helpme out from this two problem.

Thanks.

 

  • Hi,

    I will forward this to the SW team.

  • Thank you for your support.
    There was some steps which needed to complete. I had done all following steps. Still error remains same
    steps for troubleshoot qt3d:
    doc.qt.digia.com/.../qt3d-troubleshooting.html

    Many Thanks and Regards
  • I Deep,

    I need a bit more information regarding your self. What SDK are you using? You said you cross compiled qt3d so I'm assuming your trying to use Qt 5. Have you taken a look at the latest SDK for AM335x that was released recently? It already includes Qt 5 and the monkeygod demo is already in the filesystem (/usr/share/qt5/examples/qt3d)

  • hello,

    I am using ti-­sdk-­am335x­-evm­-06.00.00.00. Qt version that I am using is qt 4 because library code does not succesfully compile on qt 5. There are many dependencies related to qt5 but it is easily compiled on qt 4. I had also run some basic example of qml and qt like helloworld but these qt3d example shows errors.

    Thank you  

  • How did you build qt3d and what repository did you use?

    I cloned git://gitorious.org/qt-quick3d/qt-quick3d.git
    I sourced the SDK's environment-setup script
    Ran qmake and then make.
    All the files compiled successfully and I don't see any library files being built

    So what were these library files that you copied over?
  • first of all to install qt4 my command is as follows

    sudo apt-get build-dep qt4-qmake
    sudo apt-get install libqt4-dev

    for qt3d source I cloned
    git clone github.com/.../qt3d.git
    git checkout --track -b qt4 origin/qt4
    export QMAKESPEC=/usr/share/qt4/mkspecs/linux-g++
    sudo qmake-qt4
    sudo make

    library file generated in /usr/lib/x86_64-linux-gnu/
    they are x86 executable
    deep@deep:/usr/lib/x86_64-linux-gnu$ file libQt3D.so.1.0.0
    libQt3D.so.1.0.0: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, BuildID[sha1]=0x26a9afd36ae0eeb1349b43b3ad2f1f9a364fbad8, not stripped

    after that I crosscompiled using am335x-sdk-06.00.00.00
    source ti-sdk-am335x-evm-06.00.00.00/linux-devkit/environment-setup
    export ARCH=arm
    export CROSS_COMPILE=arm-linux-gnueabihf-
    qmake-qt4
    make

    so, ARM executable examples generated in bin folder of qt3d and libraries are generated in /usr/lib/x86_64-linux-gnu/ folder that are
    deep@deep:/usr/lib/x86_64-linux-gnu$ file libQt3DE.so.1.0.0
    libQt3DE.so.1.0.0: ELF 32-bit LSB shared object, ARM, version 1 (SYSV), dynamically linked, BuildID[sha1]=0x3e42bfaaf648ba3eed1f2a605a60692a8bfd32be, not stripped

    deep@deep:/usr/lib/x86_64-linux-gnu$ file libQt3DQuickE.so.1.0.0
    libQt3DQuickE.so.1.0.0: ELF 32-bit LSB shared object, ARM, version 1 (SYSV), dynamically linked, BuildID[sha1]=0x4cf004ee16bc7af0e76c93746a050cfc02c55366, not stripped

    at time of crosscompilation, I also copied these lib files in toolchain lib folder.

    these ".so" files I copied into my am335x sk hardware in /usr/lib/ folder
    and also copied qt4 's import and plugin folders into hardware /usr/lib/qtopia/ folder


    Thank you
  • hello,

    Actually qt3d source was following

    git@gitorious.org:qt/qt3d.git

    Still I am getting same error like

    QGLContext::makeCurrent(): Cannot make invalid context current
    Segmentation fault

    kindly, help me to get through this problem.

  • Hello,

    I think the problem is with gles2test

    It gives following output

    --------------------- started ---------------------                             
    Error: Failed to open shader file 'glsltest1_vertshader.txt'!                   
    --------------------- finished ---------------------   


    while I execute qt3d library with support of powervr it gives following error

    root@am335x-evm:~/qt3d/bin# ./monkeygod -qws -display powervr
    QEglContext::createSurface(): Unable to create EGL surface, error = 0x300b
    QEglContext::createSurface(): Unable to create EGL surface, error = 0x300b
    QGLContext::makeCurrent(): Cannot make invalid context current
    QGLContext::makeCurrent(): Cannot make invalid context current
    QGLShader: could not create shader
    Vertex shader for simpleShaderProg (MainVertexShader & PositionOnlyVertexShader) failed to compile
    QGLShader: could not create shader
    Fragment shader for simpleShaderProg (MainFragmentShader & ShockingPinkSrcFragmentShader) failed to compile
    QGLShaderProgram: could not create shader program
    Errors linking simple shader: ""
    QGLShader: could not create shader
    Vertex shader for blitShaderProg (MainWithTexCoordsVertexShader & UntransformedPositionVertexShader) failed to compile
    QGLShader: could not create shader
    Fragment shader for blitShaderProg (MainFragmentShader & ImageSrcFragmentShader) failed to compile
    QGLShaderProgram: could not create shader program
    Errors linking blit shader: ""
    QGLContext::makeCurrent(): Cannot make invalid context current
    Segmentation fault


    kindly solve out this problem.