Skip to content

experientials/build-template

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

38 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Firmware Template

Automates the build of multiple packages forming the /Brain. The software built is for Ziloo

To clone the repository remember submodules and use git clone --recurse-submodules https://github.com/experientials/build-template.

Target Platforms

The aim is to produce software that can be run on embedded systems:

Maix II Allwinner V831 / Sipeed Maix II (Tina Linux)

Maix IIS / M2S Allwinner V833 / Sipeed Maix IIS (Tina Linux)

Maix III / M3 Rockchip RV1126 (Primary target)

Raspberry Pi Raspberry Pi 3+ (Raspbian or OpenWRT?)

Firefly CAM-C1126S2U Rockchip RV1126 based

The two main options intended to be used in the finished product are V833 and RV1126. The other platforms are intended to be experimental.

In order to test and develop software that is abstracted from the hardware Docker containers are run on Mac OS and Linux.

System Endgoal

In the ultimate system:

A single git repository holds multiple directories under /Brain with CMake.txt or Cargo.toml. These directories are compiled as projects to produce binaries. The binaries are combined with static files and bundled into packages.

The main branch contains the latest successful change. Changes are pushed to the stage branch. On new pushes the CI kicks in building a new release. If successfully built the changes are merged into the main branch.

Tests verify the packages installed in the system responding to video and audio input as expected. A video is run and an expected event log compared with the one recorded during the run.

A public package repository hosts(webhost) all packages from successful builds in a structure usable by OpenWRT or Alpine Linux installation. The package repository is divided into streams alpha, beta and stable. New releases start in the alpha stream, as they prove stability on real devices they are introduced in the beta and stable streams.

A dedicated uboot codebase is held in a sub-repository and built together with the packages.

Reading List

In order to understand and develop consider the following.

Build System

Virtual Camera on Linux Webcamoid akvcam, Virtual camera driver for Linux Wiki.

GitHub Actions are used to trigger building, testing and release.

Docker Buildx Doc Github Action

Rust builds with Cargo Chef Multi stage docker Cross-compiling static Rust binaries in Docker for Raspberry Pi

Musl libc must be used to compile packages.

Base Operating System

OpenWRT RPi Download Buildroot UVC Driver Opkg package manager

Buildroot Documentation

U-Boot Intro Documentation

Alpine Intro Handbook

Subcognition

Various

About

Template for building Ziloo firmware

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published