Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. Mobile and Embedded
  4. Unable to install LinuxFB

Unable to install LinuxFB

Scheduled Pinned Locked Moved Solved Mobile and Embedded
4 Posts 2 Posters 1.9k Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • cKol1313C Offline
    cKol1313C Offline
    cKol1313
    wrote on last edited by
    #1

    Hello! I've installed Qt 4.8.6 for embedded and I've been trying to run it on a Sabre Solox Imx6 board. I initially used:

    ./configure -qpa linuxfb -opengl es2 -arch arm -xplatform qws/linux-imx6-g++ -no-largefile -opensource -verbose -qt-libpng -qt-freetype -qt-libjpeg -fast -confirm-license -qt-zlib -qt-libpng -no-webkit -no-icu -make examples -nomake demos -make libs -release -exceptions -no-qt3support -no-glib -no-nas-sound -no-pch -no-iconv -no-cups -no-nis -no-openssl -no-libmng -no-mmx -no-3dnow -no-sse -no-sse2 -no-sse3 -no-ssse3 -no-avx -no-svg -no-sql-db2 -no-sql-ibase -no-sql-mysql -no-sql-mysql -no-sql-oci -no-sql-odbc -no-sql-psql -no-sql-sqlite -no-sql-sqlite2 -no-sql-sqlite_symbian -no-sql-symsql -no-sql-symsql -no-sql-tds -prefix /opt/qt4

    I was able to then later gmake/gmake install plugins like some mousedrivers, input, etc, including linuxfb. I was able to get a mouse to interact with a program. (A program that tracked the location of a mouse, animated a button, and text label changes when clicking a button) But I wasn't able to use any of the QWSServer functions, including functions to move the mouse automatically to try and contain it to the screen. I checked my configure again and found I had forgotten the -embedded tag so I added it and I've tried this command, it configures, makes, and installs fine, but when I try and build linuxfb I get errors.

    Here's my latest configuration command:
    ./configure -qpa linuxfb -embedded arm -no-libtiff -opengl es2 -arch arm -xplatform qws/linux-imx6-g++ -no-largefile -opensource -verbose -qt-libpng -qt-freetype -qt-libjpeg -fast -confirm-license -qt-zlib -qt-libpng -no-webkit -no-icu -make examples -nomake demos -make libs -release -exceptions -no-qt3support -no-glib -no-nas-sound -no-pch -no-iconv -no-cups -no-nis -no-openssl -no-libmng -no-mmx -no-3dnow -no-sse -no-sse2 -no-sse3 -no-ssse3 -no-avx -no-svg -no-sql-db2 -no-sql-ibase -no-sql-mysql -no-sql-mysql -no-sql-oci -no-sql-odbc -no-sql-psql -no-sql-sqlite -no-sql-sqlite2 -no-sql-sqlite_symbian -no-sql-symsql -no-sql-symsql -no-sql-tds -prefix /opt/qt4

    Here are the errors I get when I try to build qt-everywhere-opensource-src-4.8.6/src/plugins/platforms/linuxfb:
    arm-linux-gnueabihf-g++ -c -pipe -O2 -O2 -march=armv7-a -mfpu=neon -DLINUX=1 -DEGL_API_FB=1 -fvisibility=hidden -fvisibility-inlines-hidden -D_REENTRANT -Wall -W -fPIC -DQT_NO_FONTCONFIG -DFT2_BUILD_LIBRARY -DQT_NO_DEBUG -DQT_PLUGIN -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED -I../../../../mkspecs/qws/linux-imx6-g++ -I. -I../../../../include/QtCore -I../../../../include/QtNetwork -I../../../../include/QtGui -I../../../../include -I../../../3rdparty/harfbuzz/src -I../fontdatabases/basicunix -I../../../3rdparty/freetype/builds/unix -I../../../3rdparty/freetype/src -I../../../3rdparty/freetype/include -I../fontdatabases/genericunix -I.moc/release-shared-emb-arm -I/run/media/username/e693313c-709a-4d72-aacb-e52e83829bd0/usr/include -I/tftpboot/rootfs/usr/include/arm-linux-gnueabi/ -o .obj/release-shared-emb-arm/fb_base.o ../fb_base/fb_base.cpp
    ../fb_base/fb_base.cpp: In constructor ‘QFbWindowSurface::QFbWindowSurface(QFbScreen*, QWidget*)’:
    ../fb_base/fb_base.cpp:401:54: error: ‘class QWidget’ has no member named ‘platformWindow’
    platformWindow = static_cast<QFbWindow*>(window->platformWindow());
    ^
    ../fb_base/fb_base.cpp: In member function ‘void QFbWindowSurface::resize(const QSize&)’:
    ../fb_base/fb_base.cpp:450:5: error: ‘resize’ is not a member of ‘QWindowSurface’
    QWindowSurface::resize(size);
    ^
    qlinuxfbintegration.cpp: In member function ‘bool QLinuxFbIntegration::initDevice()’:
    qlinuxfbintegration.cpp:521:21: error: ‘pixelFormat’ was not declared in this scope
    if (pixelFormat() == QImage::Format_Invalid && screencols == 0
    ^
    qlinuxfbintegration.cpp:528:67: error: ‘qt_set_generic_blit’ was not declared in this scope
    vinfo.blue.offset, vinfo.transp.offset);
    ^
    Makefile:1532: recipe for target '.obj/release-shared-emb-arm/fb_base.o' failed
    gmake: *** [.obj/release-shared-emb-arm/fb_base.o] Error 1
    gmake: *** Waiting for unfinished jobs....
    Makefile:1282: recipe for target '.obj/release-shared-emb-arm/qlinuxfbintegration.o' failed
    gmake: *** [.obj/release-shared-emb-arm/qlinuxfbintegration.o] Error 1

    Any help would be greatly appreciated, thank you!

    1 Reply Last reply
    0
    • SGaistS Offline
      SGaistS Offline
      SGaist
      Lifetime Qt Champion
      wrote on last edited by
      #2

      Hi,

      Did you do the second configure call in a clean source tree ? Or better yet in a new shadow build folder ?

      Interested in AI ? www.idiap.ch
      Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

      cKol1313C 1 Reply Last reply
      0
      • SGaistS SGaist

        Hi,

        Did you do the second configure call in a clean source tree ? Or better yet in a new shadow build folder ?

        cKol1313C Offline
        cKol1313C Offline
        cKol1313
        wrote on last edited by
        #3

        @SGaist Yes, I'm working on a VM, so I just revert back to a saved state prior to trying that configure.

        I found a 'solution' but I'm sure it's not what I should have done. It kind of seems wrong to have to edit the source code. I added and commented out some source code:

        In the directory
        /qtDownload/Imx6/qt-everywhere-opensource-src-4.8.6/src/gui/painting

        qwindowsurface_qws_p.h:
        // I ADDED THIS
        void resize(const QSize &size)
        {
        QWindowSurface::resize(size);
        }

        To line 105, just below "virtual QPaintDevice *paintDevice() = 0;"

        qwindowsurface_p.h:
        // I ADDED THIS
        static void resize(const QSize &size);

        To line 101, just below the "#endif" for the "#if !defined(Q_WS_QPA)" define

        In the directory
        /qtDownload/Imx6/qt-everywhere-opensource-src-4.8.6/src/gui/kernel

        qwidget.h:
        // I ADDED THIS
        QPlatformWindow *platformWindow() const;

        To line 651, just below "friend class QDesktopScreenWidget; #endif"

        In the directory
        /qtDownload/Imx6/qt-everywhere-opensource-src-4.8.6/src/plugins/platforms/linuxfb

        qlinuxfbintegration.cpp:
        Comment out the block:
        #ifdef QT_QWS_DEPTH_GENERIC
        if (pixelFormat() == QImage::Format_Invalid && screencols == 0
        && d_ptr->doGenericColors)
        {
        qt_set_generic_blit(this, vinfo.bits_per_pixel,
        vinfo.red.length, vinfo.green.length,
        vinfo.blue.length, vinfo.transp.length,
        vinfo.red.offset, vinfo.green.offset,
        vinfo.blue.offset, vinfo.transp.offset);
        }
        #endif

        After adding those changes to the src, I did the 2nd configure command, with "-embedded arm", did "gmake -j8 && gmake install", it worked, and I was able to go into src/plugins/platforms/linuxfb and "gmake -j8 && gmake install" on it and all the other plugins I needed. I even wrote a program that had

        #include <QWSServer>
        #include <QDebug>

        #ifdef Q_WS_QWS
        QWSServer::setCursorVisible(false);
        qDebug() << "Ran code to set cursor invisble!!!" << endl;
        #endif

        in main.cpp. It built correctly on my machine, and ran with the command ./QWS_TEST -qws -platform linuxfb:fb=/dev/fb0:/dev/fb1 -plugin linuxinputmouse:/dev/inp/event6

        1 Reply Last reply
        0
        • SGaistS Offline
          SGaistS Offline
          SGaist
          Lifetime Qt Champion
          wrote on last edited by
          #4

          That's indeed surprising…

          By the way, since you are building Qt yourself, there's 4.8.7 that's the latest and last release of the Qt 4 series.

          In any case, if possible you should consider updating to either Qt 5.6 which is a LTS release or 5.7.0 which is the latest.

          Interested in AI ? www.idiap.ch
          Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

          1 Reply Last reply
          0

          • Login

          • Login or register to search.
          • First post
            Last post
          0
          • Categories
          • Recent
          • Tags
          • Popular
          • Users
          • Groups
          • Search
          • Get Qt Extensions
          • Unsolved