dev packages not getting included in Yocto SDK - yocto

We are generating Yocto SDK using the following command: bitbake -c populate_sdk <image-name>
Yocto Branch : Dunfell
We don't see header files getting included in the SDK, for example we have libmodbus part of IMAGE_INSTALL, we don't see modbus.h file in SDK which is present in libmodbus-dev package

Could you execute the command below so we can verify your setup:
bitbake -e <image-name> | grep SDKIMAGE_FEATURES
Development packages are automatically included into SDK when they are installed into the image when SDKIMAGE_FEATURES variable defines it
SDKIMAGE_FEATURES = "dev-pkgs staticdev-pkgs"
https://www.yoctoproject.org/docs/3.1/mega-manual/mega-manual.html#var-SDKIMAGE_FEATURES

Related

Cyclone DDS Package configuration file missing

I'm a beginner looking for some clarity on how to create and run Example for Cyclone DDS
I had build cyclone dds with visual studio 2019, after build i was trying to build and run the basic helloword example
im getting following error when i try to do so. Im pretty much new to Cmake and stuff, can any one help in resolving this error ?
rkpsr#Rahul MINGW64 ~
$ cd cyclonedds
rkpsr#Rahul MINGW64 ~/cyclonedds (master)
$ cd examples
rkpsr#Rahul MINGW64 ~/cyclonedds/examples (master)
$ cd helloworld
rkpsr#Rahul MINGW64 ~/cyclonedds/examples/helloworld (master)
$ cd build
rkpsr#Rahul MINGW64 ~/cyclonedds/examples/helloworld/build (master)
$ cmake ../
-- Selecting Windows SDK version 10.0.19041.0 to target Windows 10.0.19042.
CMake Error at CMakeLists.txt:17 (find_package):
By not providing "FindCycloneDDS.cmake" in CMAKE_MODULE_PATH this project
has asked CMake to find a package configuration file provided by
"CycloneDDS", but CMake did not find one.
Could not find a package configuration file provided by "CycloneDDS" with
any of the following names:
CycloneDDSConfig.cmake
cyclonedds-config.cmake
Add the installation prefix of "CycloneDDS" to CMAKE_PREFIX_PATH or set
"CycloneDDS_DIR" to a directory containing one of the above files. If
"CycloneDDS" provides a separate development package or SDK, be sure it has
been installed.
-- Configuring incomplete, errors occurred!
See also "C:/Users/rkpsr/cyclonedds/examples/helloworld/build/CMakeFiles/CMakeOutput.log".
rkpsr#Rahul MINGW64 ~/cyclonedds/examples/helloworld/build (master)
$

Unable to build Windows toolchain from Yocto

I am attempting to build a Windows toolchain from Yocto (running on Linux) so that we can use a different build system to build applications for our embedded device. Yocto is running on Ubuntu 18.04.
I looked at Can't generate SDK for Windows with Yocto and How do I generate a toolchain for Windows using Yocto? and have added meta-mingw to my Yocto work directory; I am running Yocto Zeus, so I cloned it with command git clone git://git.yoctoproject.org/meta-mingw -b zeus and added it to my bblayers.conf file. I also added SDK_ARCH = "x86_64" to my local.conf
I am building the toolchain by running bitbake meta-toolchain. I am trying to build a set of 64 bit binaries (we have had out of memory issues with our existing 32-bit Linaro toolchain).
I am seeing the install script as you would expect in /home/gen-ccm-root/workdir/tools/poky/build-dev/tmp/deploy/sdk but all the binaries it built were Linux ELF files. What step am I missing? I didn't see how to do this in the Yocto SDK manual (https://www.yoctoproject.org/docs/3.0/sdk-manual/sdk-manual.html) Is there a different document I should be looking at?
A couple of other things I have tried:
Changing SDK_ARCH in my local.conf to SDK_ARCH = "x86_64-mingw64" which didn't rebuild anything (after I built the Linux toolchain above)
Adding #SDKMACHINE ?= "x86_64-mingw64" to the local.conf
I tried mingw32 as well since that is what is in the layer conf.
meta-toolchain doesn't appear to work anymore.
In the end, I added meta-mingw to my bblayers.conf and the following to my local.conf:
SDKMACHINE = "x86_64-mingw32"
SDK_ARCHIVE_TYPE = "zip"
And, after building building my project, used the following to build the SDK: bitbake mi-dev -c populate_sdk where mi-dev is my build.

How to use the latest oe-depends-dot in Yocto

From this link:
http://embeddedguruji.blogspot.com/2018/11/oe-depends-dot-in-yocto.html
It says
To use oe-depends-dot utility you need to first generate
recipe-depends.dot file
When i run in zeus branch of poky, i don't get recipe-depends.dot file
$ bitbake -g core-image-minimal
It only creates pn-buildlist, task-depends.dot
Can we pass 'task-depends.dot' to oe-depends-dot tool?
Generation of recipe-depends.dot has been removed in Bitbake version 1.43.2 (and newer), see commit 4c484cc01e3eee7ab2ab0359fd680b4dbd31dc30. This affects Yocto versions 3.0 and up.
It appears that the documentation had not been updated right away. However, the latest Bitbake documentation does not include references to the file anymore.

Python3-glob and Python3-shutil Missing in Bitbake

Using openembedded-core Morty branch:
For whatever reason, python 2 has these package but when attempting to run:
bitbake python3-glob
and
bitbake python3-shutil
These packages are not available. When installing just python3 as part of a project they are missing as well.
However, another "standard package" (not sure if this is an accurate statement but this comes included in python3 on debian) subprocess can be installed by adding python3-subprocess as a dependency.
Is glob and shutil part of some larger python3 standard packages recipe?
Found it:
the openembedded-core Python3 recipe comes with a file called python-3.5-manifest. This file outlines different sub-recipes of python3.
glob and shutil are available by building python3-shell.
It appears for these to show up in an image they must be added to IMAGE_INSTALL in your image recipe.

How to get to menuconfig for u-boot in Yocto environment

I'm using Yocto for the first time for an ARM embedded system with a Xilinx Zynq.
I want to make some configuration changes that requires going in the menuconfig utility. Yocto documentation shows how to do it for the Linux Kernel
bitbake yocto-xlnx -c menuconfig
Which, for Xilinx, I turned into
bitbake linux-xlnx -c menuconfig
It works very well.
Now, I want to do the same with u-boot and change the .config file using the menuconfig utility. I can't find any way to do it in Yocto or Xilinx documentation. I tried the obvious like
bitbake u-boot-xlnx -c menuconfig
just to get an error message:
ERROR: Task do_menuconfig does not exist for target u-boot-xlnx
Any Idea how to get to u-boot menuconfig with Yocto?
Edit:
here are the layers I use
BBLAYERS ?= " \
/home/sylvain/poky/meta \
/home/sylvain/poky/meta-poky \
/home/sylvain/poky/meta-yocto-bsp \
/home/sylvain/poky/openembedded-core/meta \
/home/sylvain/poky/meta-xilinx \
"
It's currently, as of 2.3 Pyro, not possible to run bitbake u-boot -c menuconfig as no-one has implemented that functionality for the U-Boot recipe. Please, file a bug if you'd have uses for this.
Normally, I'd recommend either of the following approaches:
bitbake u-boot -c devshell
Use of devtool.
Use the SDK.
All of these would not only allow you to run make menuconfig, but also to cross-compile U-Boot to verify your configuration.
I found the solution. It works for xilinx distribution. I did not test it for others but it's likely to be similar and it's likely to work for any other menuconfig of any package. It turns out that the full source package is located in my case at:
~/poky/build/tmp/work/zedboard_zynq7-poky-linux-gnueabi/u-boot-xlnx/v2016.07-xilinx-v2016.3+gitAUTOINC+95e11f6eb4-r0/build
I'll let you decode the "board, machine, version etc" coding in the folder string since it depends on each case, but just want to give the idea.
Using the terminal, just go to that folder then run just like in the old days:
make menuconfig
and voilĂ !
I guess when I get to configure busybox and things like that, it will just be the same.
I ran into the same problem.
I build u-boot-at91 for at91sam9x35, but it should be the same for other architectures as well.
Yocto still doesn't support
bitbake u-boot -c menuconfig
I managed to do it with the following steps:
In build directory run:
devtool modify u-boot-at91
This will automatically create the u-boot source files' external directory under: build/workspace/u-boot-at91.
cd build/workspace/u-boot-at91
run menuconfig using:
make menuconfig
If menuconfig doesn't show up you might have to run the do_configure task for u-boot and then retry:
bitbake u-boot-at91 -c configure
Perform required menuconfig changes in the UI and save the configuration in New.config file.
Copy the New.config file to override your target's defconfig file
(in my case at91sam9x5ek_spiflash_config) using:
cp New.config configs/at91sam9x5ek_spiflash_defconfig
Notice the defconfig suffix instead of config!
Push the change to your local git repository:
pushd build/workspace/sources/u-boot-at91
git add at91sam9x5ek_spiflash_defconfig
git commit -m "summary of changes made here"
git status
popd
Create the patch to override the default defconfig file:
devtool update-recipe u-boot-at91
This actually appends the following lines to your u-boot-at91.bb files:
SRC_URI = "git://github.com/linux4sam/u-boot-at91.git;protocol=https;branch=${UBRANCH} \
file://0001-summary-of-changes-made-here.patch \
and creates the patch file with relevant modifications to the recipe's directory.
8. Run BitBake:
bitbake u-boot-at91
or
bitbake core-image-minimal
The new u-boot binary will be built with the new configuration.