user25719232
user25719232

Reputation: 1

Yocto/PetaLinux use make xconfig instead of make menuconfig for configuration

I am using PetaLinux (2024.1) to build linux images. Component configuration (e.g. uboot) is done with

petalinux-config -c uboot

which opens a tui interface to interact with the .config and the corresponding Kconfig files.

I found out that one can use make xconfig instead of make menuconfig in order to use a Qt gui (instead of a tui). I would much rather configure components via the Qt gui.

When

petalinux-config -c uboot

is called, the do_menuconfig task is invoked for uboot. I found out that the do_menuconfig task is defined in:

<project_root>/components/yocto/layers/poky/meta/classes-recipe/cml1.bbclass

In this file, i set KCONFIG_CONFIG_COMMAND to xconfig, which was previously set to menuconfig.

When i run petalinux-config -c uboot again, i get the following error:

  HOSTCC  scripts/basic/fixdep
  GEN     Makefile
  HOSTCC  scripts/kconfig/zconf.tab.o
*
* Could not find Qt via pkg-config.
* Please install either Qt 4.8 or 5.x. and make sure it's in PKG_CONFIG_PATH
*
make[3]: *** [/home/test/petalinux-projects/2024_1/build/tmp/work/zynq_generic_7z020-xilinx-linux-gnueabi/u-boot-xlnx/1_v2024.01-xilinx-v2024.1+gitAUTOINC+fbed1010e5-r0/git/scripts/kconfig/Makefile:226: scripts/kconfig/.qconf-cfg] Error 1
make[2]: *** [/home/test/petalinux-projects/2024_1/build/tmp/work/zynq_generic_7z020-xilinx-linux-gnueabi/u-boot-xlnx/1_v2024.01-xilinx-v2024.1+gitAUTOINC+fbed1010e5-r0/git/Makefile:586: xconfig] Error 2
make[1]: *** [Makefile:177: sub-make] Error 2
make: *** [Makefile:15: __sub-make] Error 2
Command failed.
Press any key to continue... 

The cml1.bbclass contains the following line:

do_menuconfig[depends] += "ncurses-native:do_populate_sysroot"

I thought i have to do the same for qtbase:

do_menuconfig[depends] += "ncurses-native:do_populate_sysroot"
do_menuconfig[depends] += "qtbase-native:do_populate_sysroot"

but the error message stays the same. Running make xconfig from the build directory works as expected.

For debugging purposes, I put printenv right before the make xconfig call:

oe_terminal("sh -c \"printenv; make %s; if [ \\$? -ne 0 ]; then echo 'Command failed.'; printf 'Press any key to continue... '; read r; fi\"" % d.getVar('KCONFIG_CONFIG_COMMAND'),
                d.getVar('PN') + ' Configuration', d)

PKG_CONFIG_PATH consists of two paths:

/home/test/petalinux-projects/2024_1/build/tmp/work/zynq_generic_7z020-xilinx-linux-gnueabi/u-boot-xlnx/1_v2024.01-xilinx-v2024.1+gitAUTOINC+fbed1010e5-r0/recipe-sysroot-native/usr/lib/pkgconfig
/home/test/petalinux-projects/2024_1/build/tmp/work/zynq_generic_7z020-xilinx-linux-gnueabi/u-boot-xlnx/1_v2024.01-xilinx-v2024.1+gitAUTOINC+fbed1010e5-r0/recipe-sysroot-native/usr/share/pkgconfig

The first path contains Qt stuff:

/home/test/petalinux-projects/2024_1/build/tmp/work/zynq_generic_7z020-xilinx-linux-gnueabi/u-boot-xlnx/1_v2024.01-xilinx-v2024.1+gitAUTOINC+fbed1010e5-r0/recipe-sysroot-native/usr/lib/pkgconfig $ ls
 ...
-rw-r--r--  4 test test   274 Mai 20 21:13 Qt5Concurrent.pc
-rw-r--r--  4 test test   811 Mai 20 21:13 Qt5Core.pc
-rw-r--r--  4 test test   244 Mai 20 21:13 Qt5DBus.pc
-rw-r--r--  4 test test   239 Mai 20 21:13 Qt5Gui.pc
-rw-r--r--  4 test test   259 Mai 20 21:13 Qt5Network.pc
-rw-r--r--  4 test test   392 Mai 20 21:13 Qt5OpenGLExtensions.pc
-rw-r--r--  4 test test   272 Mai 20 21:13 Qt5OpenGL.pc
-rw-r--r--  4 test test   302 Mai 20 21:13 Qt5PrintSupport.pc
-rw-r--r--  4 test test   239 Mai 20 21:13 Qt5Sql.pc
-rw-r--r--  4 test test   256 Mai 20 21:13 Qt5Test.pc
-rw-r--r--  4 test test   266 Mai 20 21:13 Qt5Widgets.pc
-rw-r--r--  4 test test   239 Mai 20 21:13 Qt5Xml.pc
...

The second path does not contain any Qt stuff.

To my understanding, pkg-config should have access to Qt5. Can someone help me?

Upvotes: 0

Views: 83

Answers (0)

Related Questions