Build always fails with missing pykwalify.
Build always fails with missing pykwalify.
Hi Stefan
Could you try to open a terminal instace where you have loaded the toolchain enviroment
For example like this:
And then try to install the dependencies as mentioned here
Regards
Runar
Ok,
Focusing on pykwalify for now, I got a notice it's already installed. Is there any chance that the toolchain will pick up my Linux Python install instead of its own?
stefan@stefan-Latitude-7390:~/workspace/nrf/blinky/sysbuild/blinky_pwm$ pip install pykwalify
Requirement already satisfied: pykwalify in /home/stefan/ncs/toolchains/b77d8c1312/usr/local/lib/python3.12/site-packages (1.8.0)
Requirement already satisfied: docopt>=0.6.2 in /home/stefan/ncs/toolchains/b77d8c1312/usr/local/lib/python3.12/site-packages (from pykwalify) (0.6.2)
Requirement already satisfied: python-dateutil>=2.8.0 in /home/stefan/ncs/toolchains/b77d8c1312/usr/local/lib/python3.12/site-packages (from pykwalify) (2.8.2)
Requirement already satisfied: ruamel.yaml>=0.16.0 in /home/stefan/ncs/toolchains/b77d8c1312/usr/local/lib/python3.12/site-packages (from pykwalify) (0.17.32)
Requirement already satisfied: six>=1.5 in /home/stefan/ncs/toolchains/b77d8c1312/usr/local/lib/python3.12/site-packages (from python-dateutil>=2.8.0->pykwalify) (1.16.0)
[notice] A new release of pip is available: 24.2 -> 25.0
[notice] To update, run: pip install --upgrade pip
stefan@stefan-Latitude-7390:~/workspace/nrf/blinky/sysbuild/blinky_pwm$
After running cmake in the terminal, I seem to get a different error:
stefan@stefan-Latitude-7390:~/workspace/nrf/blinky/sysbuild/blinky_pwm$ cmake .
Loading Zephyr default modules (Zephyr base).
-- Application: /home/stefan/workspace/nrf/blinky/sysbuild/blinky_pwm
-- CMake version: 3.21.0
-- Using NCS Toolchain 2.8.20241119.788085347090 for building. (/home/stefan/ncs/toolchains/b77d8c1312/cmake)
-- Found Python3: /home/stefan/ncs/toolchains/b77d8c1312/usr/local/bin/python3 (found suitable version "3.12.4", minimum required is "3.8") found components: Interpreter
-- Cache files will be written to: /home/stefan/.cache/zephyr
-- Zephyr version: 3.7.99 (/home/stefan/ncs/v2.9.0/zephyr)
-- Found west (found suitable version "1.2.0", minimum required is "0.14.0")
CMake Warning at /home/stefan/ncs/v2.9.0/zephyr/cmake/modules/boards.cmake:110 (message):
Deprecated BOARD=nrf5340dk_nrf5340_cpuapp specified, board automatically
changed to: nrf5340dk/nrf5340/cpuapp.
Call Stack (most recent call first):
/home/stefan/ncs/v2.9.0/zephyr/cmake/modules/zephyr_default.cmake:133 (include)
/home/stefan/ncs/v2.9.0/zephyr/share/zephyr-package/cmake/ZephyrConfig.cmake:66 (include)
/home/stefan/ncs/v2.9.0/zephyr/share/zephyr-package/cmake/ZephyrConfig.cmake:92 (include_boilerplate)
CMakeLists.txt:9 (find_package)
-- Board: nrf5340dk, qualifiers: nrf5340/cpuapp
-- Found host-tools: zephyr 0.17.0 (/home/stefan/ncs/toolchains/b77d8c1312/opt/zephyr-sdk)
-- Found toolchain: zephyr 0.17.0 (/home/stefan/ncs/toolchains/b77d8c1312/opt/zephyr-sdk)
-- Found Dtc: /home/stefan/ncs/toolchains/b77d8c1312/usr/local/bin/dtc (found suitable version "1.5.0", minimum required is "1.4.6")
-- Found BOARD.dts: /home/stefan/ncs/v2.9.0/zephyr/boards/nordic/nrf5340dk/nrf5340dk_nrf5340_cpuapp.dts
-- Found devicetree overlay: /home/stefan/workspace/nrf/blinky/sysbuild/blinky_pwm/boards/nrf5340dk_nrf5340_cpuapp.overlay
-- Generated zephyr.dts: /home/stefan/workspace/nrf/blinky/sysbuild/blinky_pwm/zephyr/zephyr.dts
-- Generated devicetree_generated.h: /home/stefan/workspace/nrf/blinky/sysbuild/blinky_pwm/zephyr/include/generated/zephyr/devicetree_generated.h
-- Including generated dts.cmake file: /home/stefan/workspace/nrf/blinky/sysbuild/blinky_pwm/zephyr/dts.cmake
Parsing /home/stefan/workspace/nrf/blinky/sysbuild/blinky_pwm/Kconfig
/home/stefan/ncs/v2.9.0/zephyr/scripts/kconfig/kconfig.py: [Errno 21] Is a directory: '/home/stefan/workspace/nrf/blinky/sysbuild/blinky_pwm/Kconfig'
CMake Error at /home/stefan/ncs/v2.9.0/zephyr/cmake/modules/kconfig.cmake:396 (message):
command failed with return code: 1
Call Stack (most recent call first):
/home/stefan/ncs/v2.9.0/nrf/cmake/modules/kconfig.cmake:29 (include)
/home/stefan/ncs/v2.9.0/zephyr/cmake/modules/zephyr_default.cmake:133 (include)
/home/stefan/ncs/v2.9.0/zephyr/share/zephyr-package/cmake/ZephyrConfig.cmake:66 (include)
/home/stefan/ncs/v2.9.0/zephyr/share/zephyr-package/cmake/ZephyrConfig.cmake:92 (include_boilerplate)
CMakeLists.txt:9 (find_package)
-- Configuring incomplete, errors occurred!
stefan@stefan-Latitude-7390:~/workspace/nrf/blinky/sysbuild/blinky_pwm$
And, running the "build command" (cogwheel) starts cmake, but goes back to the original pykwalify missing state.
Hi
It seems to me like you are running cmake when you are trying to build.
Could you rather try with the following
west build -p -b nrf5340dk/nrf5340/cpuapp
And post the output
Regards
Runar
I can now build blinky and run it.
The real target app is a SPI connected IMU (BHI360), but there are no examples so I tried the BMI270 example, but it does not compile.
Executing task: nRF Connect: Generate config bl5340_dvk/nrf5340/cpuapp/ns for blinky/sysbuild/bmi270
Building bmi270
west build --build-dir /home/stefan/workspace/nrf/blinky/sysbuild/bmi270/build /home/stefan/workspace/nrf/blinky/sysbuild/bmi270 --pristine --board bl5340_dvk/nrf5340/cpuapp/ns -- -DNCS_TOOLCHAIN_VERSION=NONE -DCONFIG_DEBUG_OPTIMIZATIONS=y -DCONFIG_DEBUG_THREAD_INFO=y
-- west build: generating a build system
Loading Zephyr module(s) (Zephyr base): sysbuild_default
-- Found Python3: /home/stefan/ncs/toolchains/b81a7cd864/usr/local/bin/python3.12 (found suitable version "3.12.4", minimum required is "3.8") found components: Interpreter
-- Cache files will be written to: /home/stefan/.cache/zephyr
-- Found west (found suitable version "1.2.0", minimum required is "0.14.0")
-- Board: bl5340_dvk, qualifiers: nrf5340/cpuapp/ns
Parsing /home/stefan/ncs/v2.8.0/zephyr/share/sysbuild/Kconfig
Loaded configuration '/home/stefan/workspace/nrf/blinky/sysbuild/bmi270/build/_sysbuild/empty.conf'
Merged configuration '/home/stefan/workspace/nrf/blinky/sysbuild/bmi270/build/_sysbuild/empty.conf'
Configuration saved to '/home/stefan/workspace/nrf/blinky/sysbuild/bmi270/build/zephyr/.config'
Kconfig header saved to '/home/stefan/workspace/nrf/blinky/sysbuild/bmi270/build/_sysbuild/autoconf.h'
--
****************************
* Running CMake for bmi270 *
****************************
Loading Zephyr default modules (Zephyr base).
-- Application: /home/stefan/workspace/nrf/blinky/sysbuild/bmi270
-- CMake version: 3.21.0
-- Found Python3: /home/stefan/ncs/toolchains/b81a7cd864/usr/local/bin/python (found suitable version "3.12.4", minimum required is "3.8") found components: Interpreter
-- Cache files will be written to: /home/stefan/.cache/zephyr
-- Zephyr version: 3.7.99 (/home/stefan/ncs/v2.8.0/zephyr)
-- Found west (found suitable version "1.2.0", minimum required is "0.14.0")
-- Board: bl5340_dvk, qualifiers: nrf5340/cpuapp/ns
-- Found host-tools: zephyr 0.16.8 (/home/stefan/ncs/toolchains/b81a7cd864/opt/zephyr-sdk)
-- Found toolchain: zephyr 0.16.8 (/home/stefan/ncs/toolchains/b81a7cd864/opt/zephyr-sdk)
-- Found Dtc: /home/stefan/ncs/toolchains/b81a7cd864/usr/bin/dtc (found suitable version "1.5.0", minimum required is "1.4.6")
-- Found BOARD.dts: /home/stefan/ncs/v2.8.0/zephyr/boards/ezurio/bl5340_dvk/bl5340_dvk_nrf5340_cpuapp_ns.dts
-- Found devicetree overlay: /home/stefan/workspace/nrf/blinky/sysbuild/bmi270/app.overlay
devicetree error: /home/stefan/workspace/nrf/blinky/sysbuild/bmi270/app.overlay:7 (column 1): parse error: undefined node label 'arduino_i2c'
CMake Error at /home/stefan/ncs/v2.8.0/zephyr/cmake/modules/dts.cmake:295 (execute_process):
execute_process failed command indexes:
1: "Child return code: 1"
Call Stack (most recent call first):
/home/stefan/ncs/v2.8.0/zephyr/cmake/modules/zephyr_default.cmake:133 (include)
/home/stefan/ncs/v2.8.0/zephyr/share/zephyr-package/cmake/ZephyrConfig.cmake:66 (include)
/home/stefan/ncs/v2.8.0/zephyr/share/zephyr-package/cmake/ZephyrConfig.cmake:92 (include_boilerplate)
CMakeLists.txt:8 (find_package)
-- Configuring incomplete, errors occurred!
CMake Error at cmake/modules/sysbuild_extensions.cmake:514 (message):
CMake configure failed for Zephyr project: bmi270
Location: /home/stefan/workspace/nrf/blinky/sysbuild/bmi270
Call Stack (most recent call first):
cmake/modules/sysbuild_images.cmake:20 (ExternalZephyrProject_Cmake)
cmake/modules/sysbuild_default.cmake:20 (include)
/home/stefan/ncs/v2.8.0/zephyr/share/zephyr-package/cmake/ZephyrConfig.cmake:75 (include)
/home/stefan/ncs/v2.8.0/zephyr/share/zephyr-package/cmake/ZephyrConfig.cmake:92 (include_boilerplate)
/home/stefan/ncs/v2.8.0/zephyr/share/sysbuild-package/cmake/SysbuildConfig.cmake:8 (include)
template/CMakeLists.txt:10 (find_package)
-- Configuring incomplete, errors occurred!
See also "/home/stefan/workspace/nrf/blinky/sysbuild/bmi270/build/CMakeFiles/CMakeOutput.log".
FATAL ERROR: command exited with status 1: /home/stefan/ncs/toolchains/b81a7cd864/usr/local/bin/cmake -DWEST_PYTHON=/home/stefan/ncs/toolchains/b81a7cd864/usr/local/bin/python3.12 -B/home/stefan/workspace/nrf/blinky/sysbuild/bmi270/build -GNinja -DBOARD=bl5340_dvk/nrf5340/cpuapp/ns -DNCS_TOOLCHAIN_VERSION=NONE -DCONFIG_DEBUG_OPTIMIZATIONS=y -DCONFIG_DEBUG_THREAD_INFO=y -S/home/stefan/ncs/v2.8.0/zephyr/share/sysbuild -DAPP_DIR:PATH=/home/stefan/workspace/nrf/blinky/sysbuild/bmi270
* The terminal process terminated with exit code: 1.
* Terminal will be reused by tasks, press any key to close it.
* Executing task: nRF Connect: Generate config bl5340_dvk/nrf5340/cpuapp/ns for blinky/sysbuild/bmi270
Building bmi270
west build --build-dir /home/stefan/workspace/nrf/blinky/sysbuild/bmi270/build_1 /home/stefan/workspace/nrf/blinky/sysbuild/bmi270 --pristine --board bl5340_dvk/nrf5340/cpuapp/ns -- -DNCS_TOOLCHAIN_VERSION=NONE -DCONFIG_DEBUG_OPTIMIZATIONS=y -DCONFIG_DEBUG_THREAD_INFO=y
-- west build: generating a build system
Loading Zephyr module(s) (Zephyr base): sysbuild_default
-- Found Python3: /home/stefan/ncs/toolchains/b81a7cd864/usr/local/bin/python3.12 (found suitable version "3.12.4", minimum required is "3.8") found components: Interpreter
-- Cache files will be written to: /home/stefan/.cache/zephyr
-- Found west (found suitable version "1.2.0", minimum required is "0.14.0")
-- Board: bl5340_dvk, qualifiers: nrf5340/cpuapp/ns
Parsing /home/stefan/ncs/v2.8.0/zephyr/share/sysbuild/Kconfig
Loaded configuration '/home/stefan/workspace/nrf/blinky/sysbuild/bmi270/build_1/_sysbuild/empty.conf'
Merged configuration '/home/stefan/workspace/nrf/blinky/sysbuild/bmi270/build_1/_sysbuild/empty.conf'
Configuration saved to '/home/stefan/workspace/nrf/blinky/sysbuild/bmi270/build_1/zephyr/.config'
Kconfig header saved to '/home/stefan/workspace/nrf/blinky/sysbuild/bmi270/build_1/_sysbuild/autoconf.h'
--
****************************
* Running CMake for bmi270 *
****************************
Loading Zephyr default modules (Zephyr base).
-- Application: /home/stefan/workspace/nrf/blinky/sysbuild/bmi270
-- CMake version: 3.21.0
-- Found Python3: /home/stefan/ncs/toolchains/b81a7cd864/usr/local/bin/python (found suitable version "3.12.4", minimum required is "3.8") found components: Interpreter
-- Cache files will be written to: /home/stefan/.cache/zephyr
-- Zephyr version: 3.7.99 (/home/stefan/ncs/v2.8.0/zephyr)
-- Found west (found suitable version "1.2.0", minimum required is "0.14.0")
-- Board: bl5340_dvk, qualifiers: nrf5340/cpuapp/ns
-- Found host-tools: zephyr 0.16.8 (/home/stefan/ncs/toolchains/b81a7cd864/opt/zephyr-sdk)
-- Found toolchain: zephyr 0.16.8 (/home/stefan/ncs/toolchains/b81a7cd864/opt/zephyr-sdk)
-- Found Dtc: /home/stefan/ncs/toolchains/b81a7cd864/usr/bin/dtc (found suitable version "1.5.0", minimum required is "1.4.6")
-- Found BOARD.dts: /home/stefan/ncs/v2.8.0/zephyr/boards/ezurio/bl5340_dvk/bl5340_dvk_nrf5340_cpuapp_ns.dts
-- Found devicetree overlay: /home/stefan/workspace/nrf/blinky/sysbuild/bmi270/app.overlay
devicetree error: /home/stefan/workspace/nrf/blinky/sysbuild/bmi270/app.overlay:7 (column 1): parse error: undefined node label 'arduino_i2c'
CMake Error at /home/stefan/ncs/v2.8.0/zephyr/cmake/modules/dts.cmake:295 (execute_process):
execute_process failed command indexes:
1: "Child return code: 1"
Call Stack (most recent call first):
/home/stefan/ncs/v2.8.0/zephyr/cmake/modules/zephyr_default.cmake:133 (include)
/home/stefan/ncs/v2.8.0/zephyr/share/zephyr-package/cmake/ZephyrConfig.cmake:66 (include)
/home/stefan/ncs/v2.8.0/zephyr/share/zephyr-package/cmake/ZephyrConfig.cmake:92 (include_boilerplate)
CMakeLists.txt:8 (find_package)
-- Configuring incomplete, errors occurred!
CMake Error at cmake/modules/sysbuild_extensions.cmake:514 (message):
CMake configure failed for Zephyr project: bmi270
Location: /home/stefan/workspace/nrf/blinky/sysbuild/bmi270
Call Stack (most recent call first):
cmake/modules/sysbuild_images.cmake:20 (ExternalZephyrProject_Cmake)
cmake/modules/sysbuild_default.cmake:20 (include)
/home/stefan/ncs/v2.8.0/zephyr/share/zephyr-package/cmake/ZephyrConfig.cmake:75 (include)
/home/stefan/ncs/v2.8.0/zephyr/share/zephyr-package/cmake/ZephyrConfig.cmake:92 (include_boilerplate)
/home/stefan/ncs/v2.8.0/zephyr/share/sysbuild-package/cmake/SysbuildConfig.cmake:8 (include)
template/CMakeLists.txt:10 (find_package)
-- Configuring incomplete, errors occurred!
See also "/home/stefan/workspace/nrf/blinky/sysbuild/bmi270/build_1/CMakeFiles/CMakeOutput.log".
FATAL ERROR: command exited with status 1: /home/stefan/ncs/toolchains/b81a7cd864/usr/local/bin/cmake -DWEST_PYTHON=/home/stefan/ncs/toolchains/b81a7cd864/usr/local/bin/python3.12 -B/home/stefan/workspace/nrf/blinky/sysbuild/bmi270/build_1 -GNinja -DBOARD=bl5340_dvk/nrf5340/cpuapp/ns -DNCS_TOOLCHAIN_VERSION=NONE -DCONFIG_DEBUG_OPTIMIZATIONS=y -DCONFIG_DEBUG_THREAD_INFO=y -S/home/stefan/ncs/v2.8.0/zephyr/share/sysbuild -DAPP_DIR:PATH=/home/stefan/workspace/nrf/blinky/sysbuild/bmi270
* The terminal process terminated with exit code: 1.
* Terminal will be reused by tasks, press any key to close it.
So I would presume that your device do not have the arduino I2C overlay, so you will need to set this up yourself or use another i2c for your sensor.
You can see how they setup the Arduino i2c here https://github.com/nrfconnect/sdk-zephyr/blob/main/boards/nordic/nrf5340dk/nrf5340_cpuapp_common.dtsi
If you are not to familiar with the devicetree I would recommend that you have a look at lesson 6 here. Or if this is your first time using NCS I would highly recommend having a look at the whole course
Regards
Runar