Getting started on Embedded Linux development, tutorial confusion

Showing results for 
Search instead for 
Did you mean: 

Getting started on Embedded Linux development, tutorial confusion

Contributor III

I have a Sabre SD (MCIMX6Q-SDB) with which I am trying to build and expand on a yocto distribution.

I followed this tutorial, which I find nice and detailed... until it comes to adding packages and working on the BSP:

* Changes on u-boot

The tutorial says on p.22 to 'Check ""'. I don't know what that means, or where this file is to be found.

The line 'PREFERRED_PROVIDER_u-boot ?= "u-boot-fslc"' is not clear either. It looks like something to be added to build/conf/local.conf, but I am not sure. Maybe rather in the recipe?

And it would be nice to know what it does and why it is needed.

I am also a bit concerned with the u-boot recipe starting with:

"require recipes-bsp/u-boot/"

since I have no such file at that location. Is something missing?

* Toolchain

I have baked and installed the toolchain as per p.26. Then what? How do I even call the toolchain's compiler?

* User space Packages

The convoluted expression to list "all packages available on an image":

build $ bitbake -g fsl-image-test && cat | grep -v -e '-native' | grep -v digraph | grep -v -e '-image' | awk '{print $1}' | sort | uniq

does work. It does not show "canutils", I guessed that was because the sabresd is not for automotive, and that it did not have support for CAN busses.

BUT, I could still do bitbake canutils!

Isn't it strange that I could bake it although it did not show up as available for this image?

The tutorial says that baking canutils will 'generate a package and binary files'. It does not really say where though, there is a screenshot that shows a partial path, I could find something there:


but I am not sure it is the correct location. It looks like it when I look at the dates.

'Deploy it on the target using a package manager or simply copying it to the target', I don't know how to do that. My Yocto image is running on target, but there is no package manager (no smart, no apt-get). "Simply" copying it to the target, how? I have no SSH, no NFS, the only thing I have is an RS-232, and file transfers over RS-232 seem to require an application on the target as well.

Copy directly to the SD card's rootfs? Which files in this case, all of them? And if I build another package than canutils, how do I know what needs to be copied?

If anyone would be nice enough to try and shed a light, I'd be very glad. What I secretely hope for is that I have missed a comprehensive tutorial about how to setup a development environment, and guides about how to add packages to a Yocto distribution (first ready-done ones, then custom ones), for people who haven't worked with embedded linux in the past.

Labels (3)
Tags (1)
0 Kudos
1 Reply

NXP TechSupport
NXP TechSupport

In case of the file that you’re not seeing, it’s most likely that the file gets fetched once BitBake starts building the dependencies. The sources folder does not actually contains source code per se, as you may most likely already noticed, but rather metadata that allows BitBake to build task dependencies and then fetch and compile the required files.

I would recommend looking at the available information on Yocto on these communities as for example the training on the link at the end of this post which there are separate tasks including how to create the toolchain and manually building the kernel using it.

Once you baked and installed the toolchain you should be able to use it with the commands in Task 8 of the training.

I’m not familiar with canutils but in case you want it on your image you should be able to add the canutils package on the image recipe or in local.conf as:

IMAGE_INSTALL_append = " canutils"

The canutils recipes should have the information on where in the rootfs to add the compiled packages and what dependencies need to be downloaded. I hope this helps.

Yocto Training

0 Kudos