[yocto] How do I generate a dtb for my board support package?

Peter Spierenburg peter.spierenburg at nautel.com
Thu Jan 25 05:16:04 PST 2018


I am trying to write a board support package for the adzs-sc589-ezlite board from Analog Devices, because AD only supplies a buildroot package, and I would prefer to use yocto.


AD's buildroot produces a uImage kernel with dtb that is served to the board using tftp. The root file system is served to the board by nfs.


I've begun working on my own bsp for this board. I have successfully booted and interacted with the board using buildroot's kernel and dtb combined with yocto's root filesystem.


I'd now like to replace the buildroot kernel and dtb file with ones generated by yocto.


My bsp layer is called meta-adzs-sc589-ezlite.


The meta-adzs-sc589-ezlite/conf/machine/adzs-sc589-ezlite.conf contains:



#@TYPE: Machine
#@NAME: adzs-sc589-ezlite

#@DESCRIPTION: Machine configuration for adzs-sc589-ezlite systems


PREFERRED_PROVIDER_virtual/kernel ?= "linux-yocto"
PREFERRED_VERSION_linux-yocto ?= "4.12%"


require conf/machine/include/qemu.inc
require conf/machine/include/tune-arm926ejs.inc


KERNEL_IMAGETYPE = "uImage"
KERNEL_EXTRA_ARGS += "LOADADDR=c2008000"
KERNEL_DEVICETREE = "sc589-ezkit.dts"
SERIAL_CONSOLE = "115200 ttyAMA0"


and my meta-adzs-sc589-ezlite/recipes-kernel/linux/linux-yocto_4.12.bbappend


FILESEXTRAPATHS_prepend := "${THISDIR}/files:"

PR := "${PR}.1"

COMPATIBLE_MACHINE_adzs-sc589-ezlite = "adzs-sc589-ezlite"


KERNEL_FEATURES_append_adzs-sc589-ezlite += " cfg/smp.scc"

SRC_URI += "file://adzs-sc589-ezlite.scc \
            file://adzs-sc589-ezlite.cfg \
            file://adzs-sc589-ezlite-standard.scc \
            file://adzs-sc589-ezlite-user-config.cfg \
            file://adzs-sc589-ezlite-user-features.scc \
            file://adzs-sc589-ezlite-user-patches.scc \
            file://sc589-ezkit.dts \
            file://sc58x.dtsi \
           "

# replace these SRCREVs with the real commit ids once you've had
# the appropriate changes committed to the upstream linux-yocto repo
SRCREV_machine_pn-linux-yocto_adzs-sc589-ezlite ?= "${AUTOREV}"
SRCREV_meta_pn-linux-yocto_adzs-sc589-ezlite ?= "${AUTOREV}"
#LINUX_VERSION = "4.10"
#Remove the following line once AUTOREV is locked to a certain SRCREV
KERNEL_VERSION_SANITY_SKIP = "1"



However, when I perform a build, I get:


ERROR: linux-yocto-4.12.18+gitAUTOINC+0d0f74b803_8506961765-r0.1 do_compile: oe_runmake failed
ERROR: linux-yocto-4.12.18+gitAUTOINC+0d0f74b803_8506961765-r0.1 do_compile: Function failed: do_compile (log file is located at /home/user/work/sad-yocto/poky/build/tmp/work/adzs_sc589_ezlite-poky-linux-gnueabi/linux-yocto/4.12.18+gitAUTOINC+0d0f74b803_8506961765-r0.1/temp/log.do_compile.28883)
ERROR: Logfile of failure stored in: /home/user/work/sad-yocto/poky/build/tmp/work/adzs_sc589_ezlite-poky-linux-gnueabi/linux-yocto/4.12.18+gitAUTOINC+0d0f74b803_8506961765-r0.1/temp/log.do_compile.28883
Log data follows:
| DEBUG: Executing shell function do_compile
| NOTE: make -j 4 HOSTCC=gcc  -isystem/home/user/work/sad-yocto/poky/build/tmp/work/adzs_sc589_ezlite-poky-linux-gnueabi/linux-yocto/4.12.18+gitAUTOINC+0d0f74b803_8506961765-r0.1/recipe-sysroot-native/usr/include -O2 -pipe -L/home/user/work/sad-yocto/poky/build/tmp/work/adzs_sc589_ezlite-poky-linux-gnueabi/linux-yocto/4.12.18+gitAUTOINC+0d0f74b803_8506961765-r0.1/recipe-sysroot-native/usr/lib -L/home/user/work/sad-yocto/poky/build/tmp/work/adzs_sc589_ezlite-poky-linux-gnueabi/linux-yocto/4.12.18+gitAUTOINC+0d0f74b803_8506961765-r0.1/recipe-sysroot-native/lib -Wl,-rpath-link,/home/user/work/sad-yocto/poky/build/tmp/work/adzs_sc589_ezlite-poky-linux-gnueabi/linux-yocto/4.12.18+gitAUTOINC+0d0f74b803_8506961765-r0.1/recipe-sysroot-native/usr/lib -Wl,-rpath-link,/home/user/work/sad-yocto/poky/build/tmp/work/adzs_sc589_ezlite-poky-linux-gnueabi/linux-yocto/4.12.18+gitAUTOINC+0d0f74b803_8506961765-r0.1/recipe-sysroot-native/lib -Wl,-rpath,/home/user/work/sad-yocto/poky/build/tmp/work/adzs_sc589_ezlite-poky-linux-gnueabi/linux-yocto/4.12.18+gitAUTOINC+0d0f74b803_8506961765-r0.1/recipe-sysroot-native/usr/lib -Wl,-rpath,/home/user/work/sad-yocto/poky/build/tmp/work/adzs_sc589_ezlite-poky-linux-gnueabi/linux-yocto/4.12.18+gitAUTOINC+0d0f74b803_8506961765-r0.1/recipe-sysroot-native/lib -Wl,-O1 HOSTCPP=gcc  -E uImage CC=arm-poky-linux-gnueabi-gcc  -mno-thumb-interwork -marm -fuse-ld=bfd -ffile-prefix-map=/home/user/work/sad-yocto/poky/build/tmp/work-shared/adzs-sc589-ezlite/kernel-source=/kernel-source/  LD=arm-poky-linux-gnueabi-ld.bfd   LOADADDR=c2008000
|   CHK     include/config/kernel.release
|   Using /home/user/work/sad-yocto/poky/build/tmp/work-shared/adzs-sc589-ezlite/kernel-source as source for kernel
|   GEN     ./Makefile
|   CHK     include/generated/uapi/linux/version.h
|   CHK     include/generated/utsrelease.h
|   CHK     include/generated/timeconst.h
|   CHK     include/generated/bounds.h
|   CHK     include/generated/asm-offsets.h
|   CALL    /home/user/work/sad-yocto/poky/build/tmp/work-shared/adzs-sc589-ezlite/kernel-source/scripts/checksyscalls.sh
|   CHK     scripts/mod/devicetable-offsets.h
|   CHK     include/generated/compile.h
|   CHK     kernel/config_data.h
|   Kernel: arch/arm/boot/Image is ready
|   Kernel: arch/arm/boot/zImage is ready
|   Kernel: arch/arm/boot/uImage is ready
| NOTE: make -j 4 HOSTCC=gcc  -isystem/home/user/work/sad-yocto/poky/build/tmp/work/adzs_sc589_ezlite-poky-linux-gnueabi/linux-yocto/4.12.18+gitAUTOINC+0d0f74b803_8506961765-r0.1/recipe-sysroot-native/usr/include -O2 -pipe -L/home/user/work/sad-yocto/poky/build/tmp/work/adzs_sc589_ezlite-poky-linux-gnueabi/linux-yocto/4.12.18+gitAUTOINC+0d0f74b803_8506961765-r0.1/recipe-sysroot-native/usr/lib -L/home/user/work/sad-yocto/poky/build/tmp/work/adzs_sc589_ezlite-poky-linux-gnueabi/linux-yocto/4.12.18+gitAUTOINC+0d0f74b803_8506961765-r0.1/recipe-sysroot-native/lib -Wl,-rpath-link,/home/user/work/sad-yocto/poky/build/tmp/work/adzs_sc589_ezlite-poky-linux-gnueabi/linux-yocto/4.12.18+gitAUTOINC+0d0f74b803_8506961765-r0.1/recipe-sysroot-native/usr/lib -Wl,-rpath-link,/home/user/work/sad-yocto/poky/build/tmp/work/adzs_sc589_ezlite-poky-linux-gnueabi/linux-yocto/4.12.18+gitAUTOINC+0d0f74b803_8506961765-r0.1/recipe-sysroot-native/lib -Wl,-rpath,/home/user/work/sad-yocto/poky/build/tmp/work/adzs_sc589_ezlite-poky-linux-gnueabi/linux-yocto/4.12.18+gitAUTOINC+0d0f74b803_8506961765-r0.1/recipe-sysroot-native/usr/lib -Wl,-rpath,/home/user/work/sad-yocto/poky/build/tmp/work/adzs_sc589_ezlite-poky-linux-gnueabi/linux-yocto/4.12.18+gitAUTOINC+0d0f74b803_8506961765-r0.1/recipe-sysroot-native/lib -Wl,-O1 HOSTCPP=gcc  -E sc589-ezkit.dts
| make[2]: *** No rule to make target `sc589-ezkit.dts'.  Stop.
| make[1]: *** [sub-make] Error 2
| make: *** [__sub-make] Error 2
| ERROR: oe_runmake failed
| WARNING: exit code 1 from a shell command.
| ERROR: Function failed: do_compile (log file is located at /home/user/work/sad-yocto/poky/build/tmp/work/adzs_sc589_ezlite-poky-linux-gnueabi/linux-yocto/4.12.18+gitAUTOINC+0d0f74b803_8506961765-r0.1/temp/log.do_compile.28883)
ERROR: Task (/home/user/work/sad-yocto/poky/meta/recipes-kernel/linux/linux-yocto_4.12.bb:do_compile) failed with exit code '1'
NOTE: Tasks Summary: Attempted 2444 tasks of which 2443 didn't need to be rerun and 1 failed.



What is the common practice for adding .dts/.dtsi files to a bsp in order to generate a .dtb file during the build?


Peter.


This communication, including any attached documentation, is intended only for the person or entity to which it is addressed, and may contain confidential, personal, and/or privileged information. Any unauthorized disclosure, copying, or taking action on the contents is strictly prohibited. If you have received this message in error, please contact us immediately so we may correct our records. Please then delete or destroy the original transmission and any subsequent reply. Thank you.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.yoctoproject.org/pipermail/yocto/attachments/20180125/4ec182f1/attachment.html>


More information about the yocto mailing list