This repository setup a simplest Yocto build system to emulate a complete aarch64 Linux system (trusted-firmware-a, u-boot, kernel, initrd, rootfs). This might be helpful for those who want to:
- Understand all basic components in a Aarch64 Linux Embedded System and how they work together.
- Develop your own Linux distro, write BSP layer, and port components (kernel, u-boot, trusted-firmware-a) to your platform.
- Have hardware limitations or want to learn emulating with QEMU.
For more detail about the system, visit the Main Blog.
This layer contains minimal components to build an Aarch64 Linux distro run QEMU platform. This includes:
- 1 distro:
lava-distro. - 1 machine:
lava-machine. - And few recipes that build components from local sources.
The directory structure:
meta-lava/
βββ classes
β βββ lava_src.bbclass
βββ conf
β βββ distro
β β βββ lava-distro.conf
β βββ layer.conf
β βββ machine
β βββ include
β βββ lava-machine.conf
βββ README.md
βββ recipes-bsp
β βββ tfa
β βββ u-boot
βββ recipes-core
β βββ images
βββ recipes-kernel
β βββ linux
βββ wic
βββ lava-extlinux.cfg
βββ lava.wks
To clone external repos (tfa, u-boot, kernel):
git submodule update --initBuild system:
kas checkout
kas buildAnd start emulating with runqemu:
source openembedded-core/oe-init-build-env
runqemu nographicThat's it π