Unable to run Qt app on ARM linux with an /tmp and /dev/fb0 issues



  • My host system is Ubuntu-12.04 ×86_64bit
    My target system is Pandaboard- ARMv7 Ubuntu-12.04
    My toolchain is arm-linux-gnueabihf-
    I configured Device type as Desktop in Qt Creator->Tools->Options

    I am successful in compiling Qt source on host system with qmake.conf as
    ————————————————————————————————————————————————————

    qmake configuration for building with arm-panda-g++

    include(../../common/linux.conf)
    include(../../common/gcc-base-unix.conf)
    include(../../common/g++-unix.conf)
    include(../../common/qws.conf)

    modifications to g++.conf
    QMAKE_CC = arm-linux-gnueabihf-gcc
    QMAKE_CXX = arm-linux-gnueabihf-g++
    QMAKE_LINK = arm-linux-gnueabihf-g++
    QMAKE_LINK_SHLIB = arm-linux-gnueabihf-g++
    modifications to linux.conf
    QMAKE_AR = arm-linux-gnueabihf-ar cqs
    QMAKE_OBJCOPY = arm-linux-gnueabihf-objcopy
    QMAKE_STRIP = arm-linux-gnueabihf-strip
    load(qt_config)
    ————————————————————————————————————————————————————
    and build Qt src with following configuration

    ./configure -opensource -confirm-license -prefix /opt/qt-panda-armhf -embedded arm -platform qws/linux-x86_64-g++ -xplatform qws/linux-panda-g++ -no-pch -little-endian

    After this i copied /opt/qt-panda-armhf/lib from host to the target with same location as /opt/qt-panda-armhf/lib.

    Then i built qt app in QtCreator , by setting qmake, after building qt source with above mentioned qmake.conf. and setting arm-linux-gnueabihf- g++ compiler.

    I am successful in building qt gui app in qtcreator and got executable file.

    Then i copied the executable onto pandaboard target board and run by exporting the /opt/qt-panda-armhf/lib

    run as
    $ ./my_app -qws

    But i am unable to run the app. with following issue
    Cannot create Qt for Embedded Linux data directory: /tmp/qtembedded-0

    < for this i tried by changing /tmp folder in qt src path to user directory
    But got the same error as
    Cannot create Qt for Embedded Linux data directory: ~/App/temp/qtembedded-0 >

    < even i tried with mount point in /etc/fstab as
    none /tmp/ tmpfs size=1M 0 0
    But in this case also iam unable to run

    One more issue i found when running app as
    $ ./my_app
    then i got the issue as QScreenLinuxFb::connect: No such file or directory
    Error opening frame buffer device /dev/fb0

    < for this i tried

    $ ./my_app -qws -display LinuxFb

    But i am unsuccessful>

    need help regarding the same…


  • Lifetime Qt Champion

    Hi,

    It seems that you don't have a frame buffer (or it's name is not /dev/fb0)



  • Hi. I deleted /tmp and recreate, then i launched application with sudo and -qws parameter. It works for me.



  • i am able to to see /dev/fb0 in my system. ...
    So, frame buffer is available. with the same name fb0.

    [quote author="SGaist" date="1373624460"]Hi,

    It seems that you don't have a frame buffer (or it's name is not /dev/fb0)[/quote]



  • I even tried with sudo and -qws. But no use...
    any other thing i missed...?

    [quote author="pozitiffcat" date="1373625369"]Hi. I deleted /tmp and recreate, then i launched application with sudo and -qws parameter. It works for me.[/quote]


  • Lifetime Qt Champion

    Are you sure that your /dev/fb0 points to something valid ?



  • Thx..for your reply

    I tried deleting /tmp and tried by recreating. but no result.

    < for this i tried by changing /tmp folder in qt src path to user directory
    But got the same error as

    Cannot create Qt for Embedded Linux data directory: ~/App/temp/qtembedded-0 >

    < even i tried with mount point in /etc/fstab as
    none /tmp/ tmpfs size=1M 0 0
    But in this case also iam unable to run

    How to get rid of this problem...


  • Lifetime Qt Champion

    Does this path exist on your target ?



  • yes...


  • Lifetime Qt Champion

    And that the user rights are correct ?



  • yes , The App directory has permissions drwxrwxrwx


  • Lifetime Qt Champion

    Does it contain a temp folder ?



  • Existing Path is /home/xvg783/App/temp
    Whether we have to create qtembedded-0 or it is created runtime.

    I didn't find this qtembedded-0, in *App/temp/ *

    As it is saying
    Cannot create Qt for Embedded Linux data directory: ~/App/temp/qtembedded-0 >

    is this path has to create runtime or the path has to be there before running the app.



  • When does this issue occur...? I unable to find out the problem.
    I am using Pandaboard-ES with Ubuntu-12.04_64bit Desktop version installed on it., with kernel ubuntu-precise-hf from launchpad.

    can you please tell me the steps to follow..where i am going wrong.
    i followed the steps as mentioned in my first post.


  • Lifetime Qt Champion

    temp must exist before, qtembedded-0 will be created by the application acting as server.



  • Sorry I misunderstood the explanation.
    I will reformulate mi question



  • Hi all,
    I spend weeks trying to cross compile in QT for my Panda board and no way, finally I try the steps from this posts but I can't pass the ./configure.
    If someone could give me a help I'll appreciate.
    My host system is Ubuntu-13.04 ×86_64bit(running un Virtualbox)
    My target system is Pandaboard Xm Ubuntu-12.04.
    All the steps in host box:
    sudo apt-get install arm-linux-gnueabihf
    sudo mkdir /opt/qt-485-armhf
    cd /usr/src
    sudo wget http://download.qt-project.org/official_releases/qt/4.8/4.8.5/qt-everywhere-opensource-src-4.8.5.tar.gz
    sudo tar xf qt-everywhere-opensource-src-4.8.5.tar.gz
    cd /usr/src/qt-everywhere-opensource-src-4.8.5
    sudo cp -r mkspecs/qws/linux-arm-gnueabi-g++ mkspecs/qws/linux-arm-gnueabihf-g++
    sudo vim mkspecs/qws/linux-arm-gnueabihf-g++/qmake.conf

    include(../../common/gcc-base-unix.conf)
    include(../../common/g++-unix.conf)
    include(../../common/linux.conf)
    include(../../common/qws.conf)

    #Compiler Flags to take advantage of the ARM architecture
    #N.B.:I also tried to uncomment the two following instructions with no success
    QMAKE_CFLAGS = -march=armv7-a -mtune=cortex-a8 -mfpu=neon -mfloat-abi=softfp
    QMAKE_CXXFLAGS = -march=armv7-a -mtune=cortex-a8 -mfpu=neon -mfloat-abi=softfp

    modifications to g++.conf

    QMAKE_CC = arm-linux-gnueabihf-gcc
    QMAKE_CXX = arm-linux-gnueabihf-g++
    QMAKE_LINK = arm-linux-gnueabihf-g++
    QMAKE_LINK_SHLIB = arm-linux-gnueabihf-g++

    modifications to linux.conf

    QMAKE_AR = arm-linux-gnueabihf-ar cqs
    QMAKE_OBJCOPY = arm-linux-gnueabihf-objcopy
    QMAKE_STRIP = arm-linux-gnueabihf-strip

    load(qt_config)

    sudo sed -i -e "/#if/d" -e "/#error/d" -e "/#endif/d" config.tests/unix/libmng/libmng.cpp (This command fixes detection of libmng 2.0.)
    export QTDIR=/opt/qt4-485-armhf
    And finally:
    sudo ./configure -prefix /opt/qt4-485-armhf -sysconfdir /etc/xdg -embedded arm -little-endian -host-big-endian -no-qt3support -nomake examples -nomake demos -opensource -confirm-license -release -openssl-linked -no-phonon -no-phonon-backend -no-nis -platform qws/linux-x86_64-g++ -xplatform qws/linux-arm-gnueabihf-g++ -optimized-qmake

    With this result:
    Creating qmake. Please wait...
    g++ -c -o option.o -pipe -m64 -DQMAKE_OPENSOURCE_EDITION -O2 -g -I. -Igenerators -Igenerators/unix -Igenerators/win32 -Igenerators/mac -Igenerators/symbian -Igenerators/integrity -I/usr/src/qt-everywhere-opensource-src-4.8.5/include -I/usr/src/qt-everywhere-opensource-src-4.8.5/include/QtCore -I/usr/src/qt-everywhere-opensource-src-4.8.5/src/corelib/global -I/usr/src/qt-everywhere-opensource-src-4.8.5/src/corelib/xml -I/usr/src/qt-everywhere-opensource-src-4.8.5/tools/shared -DQT_NO_PCRE -DQT_BUILD_QMAKE -DQT_BOOTSTRAPPED -DQLIBRARYINFO_EPOCROOT -DQT_NO_TEXTCODEC -DQT_NO_UNICODETABLES -DQT_NO_COMPONENT -DQT_NO_STL -DQT_NO_COMPRESS -I/usr/src/qt-everywhere-opensource-src-4.8.5/mkspecs/qws/linux-x86_64-g++ -DHAVE_QCONFIG_CPP -DQT_NO_THREAD -DQT_NO_QOBJECT -DQT_NO_GEOM_VARIANT -DQT_NO_DEPRECATED option.cpp
    g++ -o "/usr/src/qt-everywhere-opensource-src-4.8.5/bin/qmake" project.o property.o main.o makefile.o unixmake2.o unixmake.o mingw_make.o option.o winmakefile.o projectgenerator.o meta.o makefiledeps.o metamakefile.o xmloutput.o pbuilder_pbx.o borland_bmake.o msvc_vcproj.o msvc_vcxproj.o msvc_nmake.o msvc_objectmodel.o msbuild_objectmodel.o symmake.o initprojectdeploy_symbian.o symmake_abld.o symmake_sbsv2.o symbiancommon.o registry.o epocroot.o gbuild.o qtextcodec.o qutfcodec.o qstring.o qtextstream.o qiodevice.o qmalloc.o qglobal.o qbytearray.o qbytearraymatcher.o qdatastream.o qbuffer.o qlist.o qfile.o qfilesystementry.o qfilesystemengine_unix.o qfilesystemengine.o qfilesystemiterator_unix.o qfsfileengine_unix.o qfsfileengine.o qfsfileengine_iterator.o qregexp.o qvector.o qbitarray.o qdir.o qdiriterator.o quuid.o qhash.o qfileinfo.o qdatetime.o qstringlist.o qabstractfileengine.o qtemporaryfile.o qmap.o qmetatype.o qsettings.o qsystemerror.o qlibraryinfo.o qvariant.o qvsnprintf.o qlocale.o qlocale_tools.o qlocale_unix.o qlinkedlist.o qnumeric.o qcryptographichash.o qxmlstream.o qxmlutils.o

    You have not explicitly asked to use pkg-config and are cross-compiling.
    pkg-config will not be used to automatically query cflag/lib parameters for
    dependencies

    The system floating point format could not be detected.
    This may cause data to be generated in a wrong format
    Turn on verbose messaging (-v) to see the final report.
    OpenSSL support cannot be enabled due to functionality tests!
    Turn on verbose messaging (-v) to ./configure to see the final report.
    If you believe this message is in error you may use the continue
    switch (-continue) to ./configure to continue.

    Thank's in advance.


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.