QT + EGLFS issue during qt configure

Viewed 50
  1. Host PC: Ubuntu 20.04
  2. Target Board : BeagleBone Black (bone-debian-10.3-console-armhf-2020-04-06-1gb)
  3. I’m trying to build qt-everywhere-src-5.12.1 for cross compiling BBB
  4. I have rsync -avz debian@192.168.7.2: for sysroot with its libs etc
  5. my configure command is sudo qt-everywhere-src-5.12.1/configure -release -eglfs -opengl es2 -device linux-beagleboard-g++ -device-option CROSS_COMPILE=~/BBB/tools/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf- -sysroot ~/BBB/sysroot -opensource -confirm-license -make libs -prefix /usr/local/qt5bbb -extprefix ~/BBB/qt5bbb -hostprefix ~/BBB/qt5 -v

6.and my config.summary for QPA backends: EGLFS … no

What do i do to get above EGLFS as …yes

1 Answers

I have a manual which I've done for myself around a year ago. This describes how to cross-compile Qt for ARM based PC. My was Orange Pi. I am able to run QtQuck applications on that which are required EGLFS.

  1. Download sources for desired version of Qt using Qt Maintenance Tool (there was some troubles with sources downloaded from web site).

  2. Make changes in file /qtbase/mkspecs/devices/linux-arm-generic-g++/qmake.conf with following:

    include(../common/linux_device_pre.conf)
    QMAKE_INCDIR_OPENGL_ES2 = $${QMAKE_INCDIR_EGL}
    
    QMAKE_LIBS_OPENGL_ES2   = $${VC_LINK_LINE} -lGLESv2
    
    # The official opt vc EGL references GLESv2 symbols: need to link it
    QMAKE_LIBS_EGL          = $${VC_LINK_LINE} -lEGL -lGLESv2
    
    QMAKE_LIBDIR_BCM_HOST   = =$$VC_LIBRARY_PATH
    QMAKE_INCDIR_BCM_HOST   = $$VC_INCLUDE_PATH
    QMAKE_LIBS_BCM_HOST     = -lbcm_host
    
    QMAKE_CFLAGS            = -march=armv7
    QMAKE_CXXFLAGS          = $$QMAKE_CFLAGS
    
    DISTRO_OPTS            += hard-float
    
    EGLFS_DEVICE_INTEGRATION= eglfs_brcm
    
    include(../common/linux_arm_device_post.conf)
    load(qt_config)
    
    

Maybe on this step you can create your own folder like linux-bbb-g++ and put there files like in linux-arm-generic-g++ then specify this folder after -device key in configure.

  1. Connect the sysroot from your board (I've been used sshfs not rsync)

    sshfs -o idmap=user,follow_symlinks username@192.168.0.211:/ boardname

  2. Configure Qt

    mkdir build
    cd build
    ../configure -release -opensource -confirm-license -opengl es2 -eglfs -device arm-generic-g++ -device-option CROSS_COMPILE=arm-linux-gnueabihf- -sysroot /tmp/orange -no-linuxfb -no-pch -reduce-exports -force-pkg-config -nomake examples -no-compile-examples -skip qtwayland -skip qtwebengine -skip qt3d -skip qtlocation -qt-pcre -ssl -evdev -glib -prefix /home/user/Qt/5.12.8/arm_linux_gnueabihf -no-use-gold-linker
    
    
  3. Build Qt

    make -j4

Related