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
Forum Update on Monday, May 27th 2025

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