yocto integration - best practice

Enrico Jörns ejo at pengutronix.de
Mon Oct 11 01:29:54 PDT 2021


Hi Konsti,

Am Montag, dem 11.10.2021 um 10:11 +0200 schrieb Sascha Hauer:
> Hi Konsti,
> 
> On Fri, Oct 08, 2021 at 03:18:56PM +0200, Konstantin Kletschke wrote:
> > Hi All,
> > 
> > I wonder how to properly integrate bare box into my yocto. I read many other
> > examples in
> > the internet how other people do this and I am a little stupid now.
> > 
> > I have a yocto poky image up and running based on their beaglebone-yocto
> > subset which can be utlilized
> > in my case with a rather minimal setup with a local.conf only. This since I
> > by accident actually
> > use a Beaglebone Black board.
> > 
> > I added my own meta-insidem2m layer also and in this layer I modify kernel
> > config, integrate out of
> > kernel modules and other stuff. Also barebox patches (for default boot
> > configs) are added from there.
> > The local.conf shrunk to a rather minimal content, because I have an own
> > distro in it with three
> > different images.
> > 
> > Additionally I integrated meta-barebox successfully into this and use
> > barebox in my daily development
> > work to boot from internal MMC and external SD-Card.
> > 
> > What I wonder, what is need to be done to integrate MLO and barebox.bin into
> > the SD-Card image?
> 
> We use https://github.com/pengutronix/genimage for this task. The tool
> can generate all kinds of images with complete partitioning, also
> containing bootloader images and barebox environment images if you like.
> 

yes, this is actually one option. The other one (wic) I shortly describe below.

So when you want to use 'genimage' then you should add the meta-ptx layer:

https://github.com/pengutronix/meta-ptx

This comes with a 'genimage' recipe as well as 'genimage.bbclass':

https://github.com/pengutronix/meta-ptx/blob/master/classes/genimage.bbclass

Basically, you need to create an additional disk image recipe in Yocto that
includes this class and provides a 'genimage.config' file.

The rest is then mainly genimage-generic (where Sascha already posted a link
to). The artifacts used for building the disk image are expected to be located
in the deploy folder.

An example beaglebone genimage config you can get form the PTXdist DistroKit for
example:

https://git.pengutronix.de/cgit/DistroKit/tree/configs/platform-v7a/config/images/beaglebone.config


Now, the other approach (which is probably more yocto-like), is 'wic'.

Wic is the image toolkit that comes with Yocto and basically has the same
purpose as genimage has. However, it has a different syntax describing the
content and is a bit tighter coupled into bitbake process.
It also allows extending it by plugins written in python.

Unlike with genimage, you also do not need a separate recipe, but add the 'wic'
to IMAGE_FSTYPES.

An example Beaglebone wic kickstarter (.wks) file is:

http://git.yoctoproject.org/cgit/cgit.cgi/meta-yocto/tree/meta-yocto-bsp/wic/beaglebone-yocto.wks

The comprehensive documentation on wic you can find in the Yocto docs here:

https://docs.yoctoproject.org/dev-manual/common-tasks.html#creating-partitioned-images-using-wic

The full wks reference is here:

https://docs.yoctoproject.org/ref-manual/kickstart.html

> I'm not very much into YOCTO, I don't know how genimage is integrated
> into YOCTO, there must be the right receipt files somewhere. Added
> Enrico to Cc: for that.
> 

I hope I could at least give some pointers. For detailed help on specific Yocto-
related topics, you can also join the #oe or #yocto irc channels.


Best regards

Enrico

> Regards,
>   Sascha
> 

-- 
Pengutronix e.K.                           | Enrico Jörns                |
Embedded Linux Consulting & Support        | https://www.pengutronix.de/ |
Steuerwalder Str. 21                       | Phone: +49-5121-206917-180  |
31137 Hildesheim, Germany                  | Fax:   +49-5121-206917-9    |




More information about the barebox mailing list