Adding a custom kernel and bootloader
Development in U-Boot and the Linux kernel is usually done externally to Yocto, as they are easy to build using a toolchain, like the one provided by Yocto.
The development work is then integrated into Yocto in one of two ways:
With patches added to the kernel and U-Boot
bbappend
files. This method will build the same source as the reference design board we are using as base, and apply our changes over it.Using a different Git repository, forked from the Linux kernel and U-Boot Git repositories being used by the reference design, and using a
bbappend
file to point the recipe to it. This way, we can directly commit the changes to the repository and the Yocto build system will build them.
Usually a forked Git repository is only needed when the hardware changes are substantial and the work in the Linux kernel and bootloader is going to be extensive. The recommendation is to start with patches, and only use a forked repository when they become difficult to...