Important: Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

Yocto Boot2Qt v5.15.1 build fails



  • I'm trying to build a Boot2Qt image for the RaspberryPi4 from scratch under Ubuntu 20.04 LTS with the v15.5.1.xml manifest file. I followed the official documentation:
    https://doc.qt.io/QtForDeviceCreation/qtee-custom-embedded-linux-image.html

    The build of qtbase fails with a missing reference to qxkbcommon definitions.
    Yocto bitbake output:

    WARNING: Host distribution "ubuntu-20.04" has not been validated with this version of the build system; you may possibly experience unexpected failures. It is recommended that you use a tested distribution.
    NOTE: Resolving any missing task queue dependencies
    
    Build Configuration:
    BB_VERSION           = "1.44.0"
    BUILD_SYS            = "x86_64-linux"
    NATIVELSBSTRING      = "ubuntu-20.04"
    TARGET_SYS           = "arm-poky-linux-gnueabi"
    MACHINE              = "raspberrypi4"
    DISTRO               = "b2qt"
    DISTRO_VERSION       = "3.0.3"
    TUNE_FEATURES        = "arm vfp cortexa7 neon vfpv4 thumb callconvention-hard"
    TARGET_FPU           = "hard"
    SDKMACHINE           = "x86_64"
    meta                 
    meta-poky            = "HEAD:eac84e73e8d94610173c3bb3b6c6d74b58e44f60"
    meta-raspberrypi     = "HEAD:0e05098853eea77032bff9cf81955679edd2f35d"
    meta-oe              
    meta-python          
    meta-networking      
    meta-initramfs       
    meta-multimedia      = "HEAD:9e60d30669a2ad0598e9abf0cd15ee06b523986b"
    meta-python2         = "HEAD:4400f9155ec193d028208cf0c66aeed2ba2b00ab"
    meta-boot2qt         
    meta-boot2qt-distro  = "HEAD:a995d61ce21e666feb2ec42d3f5d11ccf2312e07"
    meta-mingw           = "HEAD:756963cc28ebc163df7d7f4b4ee004c18d3d3260"
    meta-qt5             = "HEAD:0108285c3fb4f246fc73e33afd6a34ba1eb76356"
    
    ...
    
    | /home/ide/yocto/build-raspberrypi4/tmp/work/cortexa7t2hf-neon-vfpv4-poky-linux-gnueabi/qtbase/5.15.1+gitAUTOINC+e4961b35de-r0/recipe-sysroot-native/usr/bin/arm-poky-linux-gnueabi/../../libexec/arm-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/9.2.0/ld: /home/ide/yocto/build-raspberrypi4/tmp/work/cortexa7t2hf-neon-vfpv4-poky-linux-gnueabi/qtbase/5.15.1+gitAUTOINC+e4961b35de-r0/build/lib/libQt5InputSupport.a(qlibinputkeyboard.o): in function `QLibInputKeyboard::processKey(libinput_event_keyboard*)':
    | /usr/src/debug/qtbase/5.15.1+gitAUTOINC+e4961b35de-r0/git/src/platformsupport/input/libinput/qlibinputkeyboard.cpp:112: undefined reference to `QXkbCommon::modifiers(xkb_state*)'
    | /home/ide/yocto/build-raspberrypi4/tmp/work/cortexa7t2hf-neon-vfpv4-poky-linux-gnueabi/qtbase/5.15.1+gitAUTOINC+e4961b35de-r0/recipe-sysroot-native/usr/bin/arm-poky-linux-gnueabi/../../libexec/arm-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/9.2.0/ld: /usr/src/debug/qtbase/5.15.1+gitAUTOINC+e4961b35de-r0/git/src/platformsupport/input/libinput/qlibinputkeyboard.cpp:114: undefined reference to `QXkbCommon::lookupString(xkb_state*, unsigned int)'
    | /home/ide/yocto/build-raspberrypi4/tmp/work/cortexa7t2hf-neon-vfpv4-poky-linux-gnueabi/qtbase/5.15.1+gitAUTOINC+e4961b35de-r0/recipe-sysroot-native/usr/bin/arm-poky-linux-gnueabi/../../libexec/arm-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/9.2.0/ld: /usr/src/debug/qtbase/5.15.1+gitAUTOINC+e4961b35de-r0/git/src/platformsupport/input/libinput/qlibinputkeyboard.cpp:115: undefined reference to `QXkbCommon::keysymToQtKey(unsigned int, QFlags<Qt::KeyboardModifier>, xkb_state*, unsigned int, bool, bool)'
    | /home/ide/yocto/build-raspberrypi4/tmp/work/cortexa7t2hf-neon-vfpv4-poky-linux-gnueabi/qtbase/5.15.1+gitAUTOINC+e4961b35de-r0/recipe-sysroot-native/usr/bin/arm-poky-linux-gnueabi/../../libexec/arm-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/9.2.0/ld: /usr/src/debug/qtbase/5.15.1+gitAUTOINC+e4961b35de-r0/git/src/platformsupport/input/libinput/qlibinputkeyboard.cpp:119: undefined reference to `QXkbCommon::modifiers(xkb_state*)'
    | /home/ide/yocto/build-raspberrypi4/tmp/work/cortexa7t2hf-neon-vfpv4-poky-linux-gnueabi/qtbase/5.15.1+gitAUTOINC+e4961b35de-r0/recipe-sysroot-native/usr/bin/arm-poky-linux-gnueabi/../../libexec/arm-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/9.2.0/ld: /usr/src/debug/qtbase/5.15.1+gitAUTOINC+e4961b35de-r0/git/src/platformsupport/input/libinput/qlibinputkeyboard.cpp:119: undefined reference to `QXkbCommon::modifiers(xkb_state*)'
    | collect2: error: ld returned 1 exit status
    | make[4]: *** [Makefile:134: ../../../../plugins/platforms/libqlinuxfb.so] Error 1
    | mv -f libqvnc.so ../../../../plugins/platforms/libqvnc.so
    | make[4]: Leaving directory '/home/ide/yocto/build-raspberrypi4/tmp/work/cortexa7t2hf-neon-vfpv4-poky-linux-gnueabi/qtbase/5.15.1+gitAUTOINC+e4961b35de-r0/build/src/plugins/platforms/linuxfb'
    | make[4]: Leaving directory '/home/ide/yocto/build-raspberrypi4/tmp/work/cortexa7t2hf-neon-vfpv4-poky-linux-gnueabi/qtbase/5.15.1+gitAUTOINC+e4961b35de-r0/build/src/plugins/platforms/vnc'
    | make[3]: *** [Makefile:152: sub-linuxfb-make_first] Error 2
    | make[3]: Leaving directory '/home/ide/yocto/build-raspberrypi4/tmp/work/cortexa7t2hf-neon-vfpv4-poky-linux-gnueabi/qtbase/5.15.1+gitAUTOINC+e4961b35de-r0/build/src/plugins/platforms'
    | make[2]: *** [Makefile:105: sub-platforms-make_first] Error 2
    | make[2]: Leaving directory '/home/ide/yocto/build-raspberrypi4/tmp/work/cortexa7t2hf-neon-vfpv4-poky-linux-gnueabi/qtbase/5.15.1+gitAUTOINC+e4961b35de-r0/build/src/plugins'
    | make[1]: *** [Makefile:723: sub-plugins-make_first] Error 2
    | make[1]: Leaving directory '/home/ide/yocto/build-raspberrypi4/tmp/work/cortexa7t2hf-neon-vfpv4-poky-linux-gnueabi/qtbase/5.15.1+gitAUTOINC+e4961b35de-r0/build/src'
    | make: *** [Makefile:51: sub-src-make_first] Error 2
    | WARNING: /home/ide/yocto/build-raspberrypi4/tmp/work/cortexa7t2hf-neon-vfpv4-poky-linux-gnueabi/qtbase/5.15.1+gitAUTOINC+e4961b35de-r0/temp/run.do_compile.78952:1 exit 1 from 'exit 1'
    

    The configure of qtbase already showed some errors as well:

    QtCore: created fwd-include header(s) for <srcbase>/src/corelib/platform/wasm/ { qstdweb_p.h (1) }
    Creating qmake...
    {standard input}: Assembler messages:
    {standard input}:105627: Warning: end of file not at end of a line; newline inserted
    {standard input}:107034: Error: unknown pseudo-op: `.'
    g++: fatal error: Killed signal terminated program cc1plus
    compilation terminated.
    make: *** [Makefile:295: pbuilder_pbx.o] Error 1
    make: *** Waiting for unfinished jobs....
    WARNING: exit code 1 from a shell command.
    

    The latter could also lead to a g++ config/version mismatch..?

    Anyone got the same problem or has an idea?
    Thanks a lot in advance!!


  • Lifetime Qt Champion

    Hi,

    Boot2Qt being a commercial product, you should contact the Qt Company directly.



  • Thanks for your comment, but the Boot2Qt Yocto recipes are Open Source since 2016 and were made available by the Qt company here: https://code.qt.io/cgit/yocto/meta-boot2qt.git
    I'm not talking about the ready-to-use images that can prepared from within the Qt Maintenance tool with the commercial version.


Log in to reply