KyberImage is a flexible and extensible build system designed to simplify the process of creating virtual machine images for various platforms.
KyberBench is a container-based project for building virtual development environments.
KyberLab Virt-AArch64 is a virtual development platform for AArch64 architecture.
中文版本 | English Version
KyberLab Virt-AArch64 is a virtual development platform for AArch64 architecture:
By implementing automated building and running of various system images, it achieves DevOps for basic software development, enabling one-to-one mapping from source code and configuration to system images, simplifying configuration management for basic software development, and improving development efficiency and quality.
In the AI era, software development methods such as Vibe Coding and Spec Coding are becoming increasingly popular. However, in the basic software development field, due to the variability of development and runtime environments and the complexity of build and deployment steps, development efficiency is low. It is also not conducive to automated coding and testing through AI. To address this, KyberLab simplifies and automates the setup of basic software development environments, building, deployment, and running of various system images, making it easier for AI and engineers to develop basic software.
Ensure the following dependencies are installed:
git clone https://github.com/KyberLab/Virt-AArch64.git
cd Virt-AArch64
git submodule update --init --recursive
# Build Dockpin virtual workbench image
make build_dockpin
# Build Virt-AArch64 virtual workbench image
make build_virt-aarch64
# Start Virt-AArch64 virtual workbench environment and enter interactive shell
make run_virt-aarch64
# Build default image (will automatically enter container and execute in build directory by default)
make image_build
# Install default image (specified by IMAGE_BUILD_LIST variable)
make image_install
# Install BusyBox (default installation to output directory)
make busybox_install
# Run default image
make run
# Run BuildRoot image
make run QEMU_BOOT_IMAGE=BuildRoot
KyberLab Virt-AArch64/
├── bench/ # Virtual workbench environment
│ ├── image/ # Workbench image configurations
│ ├── rules/ # Build rules and utilities
│ └── *.mk # Workbench build and run scripts
├── config/ # Configuration directory
│ └── image/ # Build goal configurations
│ ├── BuildRoot/ # BuildRoot configuration
│ ├── BusyBox/ # BusyBox configuration
│ ├── KyberEmu/ # Emulator configuration
│ ├── Linux/ # Linux configuration
│ ├── U-Boot/ # U-Boot configuration
│ └── Ubuntu/ # Ubuntu configuration
├── image/ # Image building directory
│ ├── goal/ # Build goals
│ ├── method/ # Build method configurations
│ ├── scripts/ # Build scripts
│ └── type/ # Image type configurations
├── download/ # Download directory (ignored)
├── build/ # Build output directory (ignored)
├── output/ # Final output directory (ignored)
├── Makefile # Main build script
├── WorkSpace.mk # Workspace configuration
├── README.md # English project documentation
└── README_zh.md # Chinese project documentation
Build goals are located in the config/image/ directory and are instances of system image building. Each build goal must specify a build type (Type) and can override the build methods within it.
Build types define the build methods and steps for build goals (Goal). Currently supported build types include:
Build phases are the basic steps that each build goal (Goal) needs to execute during the build process, mainly including:
The specific implementation methods for each build type (Type) and build phase (Phase), mainly include:
The project supports multiple image builds, located in the config/image/ directory:
Supports multiple build methods located in the image/method/ directory, and multiple build types located in the image/type/ directory.
For more details, see the image documentation.
The virtual workbench environment is located in the bench/ directory, providing:
For more details, see the bench documentation.
This project is licensed under the Apache License 2.0. See the LICENSE file for details.