Re: Cmake and DTC Version issues installing Zephyr


Lawrence King
 

Oops, I missed including the ‘west init’ step below, and the path to blinky was incorrect – instructions fixed, Ubuntu 18.04 still broken

 

Update: on a Ubuntu 19.04 VM I get a lot further, the versions of cmake, and dtc tools are acceptable. It gets stuck looking for elftools. This is addressed in an older zephyr question here: https://github.com/zephyrproject-rtos/zephyr/issues/1392 I would have thought the latest ‘west init’ would have installed the elftools. Easily fixed, I added

sudo -H pip3 install pyelftools

then ‘west build’ passes, but ‘west flash’ fails due to missing pyocd, and the rules for the device. Again easily fixed.

sudo -H pip3 install pyocd

git clone https://github.com/mbedmicro/pyOCD.git

cd pyocd/udev

sudo cp *.rules /etc/udev/rules.d

sudo udevadm control –reload

sudo udevadm trigger

I’m not sure why the install of pyocd didn’t automatically install the udev rules…

 

Lawrence King

Principal Developer

+1(416)627-7302

 

From: users@... <users@...> On Behalf Of Lawrence King
Sent: Wednesday, July 24, 2019 2:39 PM
To: Zephyr-users@...
Subject: [Zephyr-users] Cmake and DTC Version issues installing Zephyr

 

Today I wanted to ensure that my documentation on how to rebuild my code was complete and correct. I setup a new virtual machine with Ubuntu 18.04 LTS (which is the most recent LTS version available). I then install Zephyr following (mostly) the instructions in the getting started guide, followed by pulling my code from my local git and then attempting to build.

 

This is where things go bad.

 

First problem is west wants to build with cmake newer than 1.13.3, but the ‘default’ cmake in 18.04 LTS is much older, I was able to work around this by removing cmake, and installing with pip3.

 

The ‘latest’ zephyr (actually west and cmake) insists that I need a device tree compiler with version  1.4.6, unfortunately the latest is version on Ubunti 18.04 is 1.4.5 (see https://launchpad.net/ubuntu/+source/device-tree-compiler) hence I can’t build. OK, to work around this I went into zephyr/cmake/host-tools.cmake and changed the MIN_DTC_VERSION to 1.4.5. OK, I am past this…

 

But things continue to be bad. The next issue I hit is cmake can’t find the file zephyr/cmake/toolchain/zephyr/0.10.1/host-tools.cmake and when I look, sure enough the file isn’t there. In fact the directory isn’t there. There are directories for 0.10.0 and 0.9.5, but I installed zephyr tools 0.10.1 so I am not sure why the directory is not there, and more importantly why is cmake even looking there?.

 

Here is a ‘step-by-step’ of the process I followed after bringing up a new Ubuntu 18.04 box:

 

sudo apt-get upgrade

sudo apt-get install -y build-essential module-assistant

sudo apt-get install -y --no-install-recommends git ninja-build gperf \

  ccache dfu-util device-tree-compiler wget \

  python3-pip python3-setuptools python3-tk python3-wheel xz-utils file \

  make gcc gcc-multilib

sudo apt remove cmake

 

sudo -H pip3 install --upgrade setuptools

sudo -H pip3 install --user cmake

wget https://github.com/zephyrproject-rtos/sdk-ng/releases/download/v0.10.1/zephyr-sdk-0.10.1-setup.run

chmod +x zephyr-sdk-0.10.1-setup.run

sudo ./zephyr-sdk-0.10.1-setup.run

export ZEPHYR_TOOLCHAIN_VARIANT=zephyr

export ZEPHYR_SDK_INSTALL_DIR=/opt/zephyr-sdk

# cmake must be version 1.13.3 or better!

cmake --version

 

sudo -H pip3 install git+https://github.com/zephyrproject-rtos/west

west init

west update

 

At this point I checkout my code from git and try to build, but it fails just as well on the blinky program.

cd zephyr/samples/basic/blinky

export BPOARD=nrf52840_mdk

west -v build

 

Here is the output:

lawrence@Bob:~/zephyr/samples/basic/blinky$ west -v build

ZEPHYR_BASE=/home/lawrence/zephyr (origin: configfile)

source directory: /home/lawrence/zephyr/samples/basic/blinky

build directory: /home/lawrence/zephyr/samples/basic/blinky/build (created)

BOARD: nrf52840_mdk (origin: env)

Running CMake: /usr/local/bin/cmake -B/home/lawrence/zephyr/samples/basic/blinky/build -S/home/lawrence/zephyr/samples/basic/blinky -GNinja -DBOARD=nrf52840_mdk

Zephyr version: 1.14.99

-- Found PythonInterp: /usr/bin/python3 (found suitable version "3.6.8", minimum required is "3.4")

-- Selected BOARD nrf52840_mdk

CMake Error at /home/lawrence/zephyr/cmake/toolchain/zephyr/host-tools.cmake:46 (include):

  include could not find load file:

 

    /home/lawrence/zephyr/cmake/toolchain/zephyr/0.10.1/host-tools.cmake

Call Stack (most recent call first):

  /home/lawrence/zephyr/cmake/host-tools.cmake:3 (include)

  /home/lawrence/zephyr/cmake/app/boilerplate.cmake:386 (include)

  CMakeLists.txt:4 (include)

 

 

-- Found west: /usr/local/bin/west (found suitable version "0.6.0", minimum required is "0.5.6")

CMake Error at /home/lawrence/zephyr/cmake/toolchain/zephyr/generic.cmake:7 (include):

  include could not find load file:

 

    /home/lawrence/zephyr/cmake/toolchain/zephyr/0.10.1/generic.cmake

Call Stack (most recent call first):

  /home/lawrence/zephyr/cmake/generic_toolchain.cmake:64 (include)

  /home/lawrence/zephyr/cmake/app/boilerplate.cmake:402 (include)

  CMakeLists.txt:4 (include)

 

 

-- Loading /home/lawrence/zephyr/boards/arm/nrf52840_mdk/nrf52840_mdk.dts as base

-- Overlaying /home/lawrence/zephyr/dts/common/common.dts

CMake Error at /home/lawrence/zephyr/cmake/dts.cmake:126 (message):

  command failed with return code: No such file or directory

Call Stack (most recent call first):

  /home/lawrence/zephyr/cmake/app/boilerplate.cmake:403 (include)

  CMakeLists.txt:4 (include)

 

 

-- Configuring incomplete, errors occurred!

ERROR: command exited with status 1: /usr/local/bin/cmake -B/home/lawrence/zephyr/samples/basic/blinky/build -S/home/lawrence/zephyr/samples/basic/blinky -GNinja -DBOARD=nrf52840_mdk

Traceback (most recent call last):

  File "/usr/local/lib/python3.6/dist-packages/west/main.py", line 566, in main

    args.handler(args, unknown)

  File "/usr/local/lib/python3.6/dist-packages/west/main.py", line 325, in ext_command_handler

    command.run(args, unknown, topdir)

  File "/usr/local/lib/python3.6/dist-packages/west/commands/__init__.py", line 112, in run

    self.do_run(args, unknown)

  File "/home/lawrence/zephyr/scripts/west_commands/build.py", line 161, in do_run

    self._run_cmake(board, origin, self.args.cmake_opts)

  File "/home/lawrence/zephyr/scripts/west_commands/build.py", line 380, in _run_cmake

    run_cmake(final_cmake_args, dry_run=self.args.dry_run)

  File "/home/lawrence/zephyr/scripts/west_commands/zcmake.py", line 68, in run_cmake

    raise subprocess.CalledProcessError(p.returncode, p.args)

subprocess.CalledProcessError: Command '['/usr/local/bin/cmake', '-B/home/lawrence/zephyr/samples/basic/blinky/build', '-S/home/lawrence/zephyr/samples/basic/blinky', '-GNinja', '-DBOARD=nrf52840_mdk']' returned non-zero exit status 1.

lawrence@Bob:~/zephyr/samples/basic/blinky$

 

Lawrence King

Principal Developer

Connected Transport Market Unit

https://www.Irdeto.com

+1(416)627-7302

 

1  2 - linkedin  3 - instagram  4 - youtube  6 - facebook  7

            

CONFIDENTIAL: This e-mail and any attachments are confidential and intended solely for the use of the individual(s) to whom it is addressed. It can contain proprietary confidential information and be subject to legal privilege and/or subject to a non-disclosure Agreement. Unauthorized use, disclosure or copying is strictly prohibited. If you are not the/an addressee and are in possession of this e-mail, please delete the message and notify us immediately. Please consider the environment before printing this e-mail. Thank you.

 

 

 

Join users@lists.zephyrproject.org to automatically receive all group messages.