Skip to content

EmbeddedOS/arm64_emulation_system

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

61 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

AArch64 emulation system

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.

meta-lava layer

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

Build system

To clone external repos (tfa, u-boot, kernel):

git submodule update --init

Build system:

kas checkout
kas build

And start emulating with runqemu:

source openembedded-core/oe-init-build-env
runqemu nographic

That's it πŸ˜›

About

Build a complete Emulation Linux distro for Aarch64.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors