* Separate riscv64 We also need to specify runners * Update build-images.yml * Update build-images.yml
|15 hours ago|
|.github||15 hours ago|
|.vscode||9 months ago|
|config||15 hours ago|
|extensions||2 weeks ago|
|lib||3 days ago|
|packages||3 days ago|
|patch||1 day ago|
|tools||5 months ago|
|.dockerignore||5 years ago|
|.editorconfig||2 months ago|
|.gitignore||2 years ago|
|CONTRIBUTING.md||1 week ago|
|LICENSE||8 years ago|
|README.md||3 weeks ago|
|VERSION||1 week ago|
|compile.sh||2 months ago|
Table of contents
- What this project does?
- Getting started
- Compare with industry standards
- Download prebuilt images
- Project structure
What this project does?
- Builds custom kernel, image or a distribution optimized for low resource HW such as single board computers,
- Include filesystem generation, low-level control software, kernel image and bootloader compilation,
- Provides a consistent user experience by keeping system standards across different platforms.
- x64 or aarch64 machine with at least 2GB of memory and ~35GB of disk space for a virtual machine, container or bare metal installation,
- Ubuntu Jammy 22.04 x64 or aarch64 for native building or any Docker capable x64 / aarch64 Linux for containerised,
- Superuser rights (configured sudo or root access).
Simply start with the build script
apt-get -y install git git clone https://github.com/armbian/build cd build ./compile.sh
- Interactive graphical interface.
- The workspace will be prepared by installing the necessary dependencies and sources.
- It guides the entire process until a kernel package or ready-to-use image of the SD card is created.
Build parameter examples
Show work in progress areas in interactive mode:
Run build framework inside Docker container:
Build minimal CLI Armbian Focal image for Orangepi Zero. Use modern kernel and write image to the SD card:
./compile.sh \ BOARD=orangepizero \ BRANCH=current \ RELEASE=focal \ BUILD_MINIMAL=yes \ BUILD_DESKTOP=no \ KERNEL_ONLY=no \ KERNEL_CONFIGURE=no \ CARD_DEVICE="/dev/sda"
- Building Armbian — how to start, how to automate;
- Build options — all build options;
- Building with Docker — how to build inside container;
- User configuration — how to add packages, patches and override sources config;
Download prebuilt images
- quarterly released supported builds — https://www.armbian.com/download
- weekly released unsupported community builds — https://github.com/armbian/community
- upon code change unsupported development builds — https://github.com/armbian/build/releases
Compare with industry standards
Check similarity, advantages and disadvantages compared with leading industry standard build software.
|Target||general purpose||embedded||embedded / IOT|
|U-boot and kernel||compiled from sources||compiled from sources||compiled from sources|
|Board support maintenance||complete||outside||outside|
|Root file system||Debian or Ubuntu based||custom||custom|
|Getting started||quick||very slow||slow|
├── cache Work / cache directory │ ├── rootfs Compressed userspace packages cache │ ├── sources Kernel, u-boot and various drivers sources. │ ├── toolchains External cross compilers from Linaro™ or ARM™ ├── config Packages repository configurations │ ├── targets.conf Board build target configuration │ ├── boards Board configurations │ ├── bootenv Initial boot loaders environments per family │ ├── bootscripts Initial Boot loaders scripts per family │ ├── cli CLI packages configurations per distribution │ ├── desktop Desktop packages configurations per distribution │ ├── distributions Distributions settings │ ├── kernel Kernel build configurations per family │ ├── sources Kernel and u-boot sources locations and scripts │ ├── templates User configuration templates which populate userpatches │ └── torrents External compiler and rootfs cache torrents ├── extensions extend build system with specific functionality ├── lib Main build framework libraries ├── output Build artifact │ └── deb Deb packages │ └── images Bootable images - RAW or compressed │ └── debug Patch and build logs │ └── config Kernel configuration export location │ └── patch Created patches location ├── packages Support scripts, binary blobs, packages │ ├── blobs Wallpapers, various configs, closed source bootloaders │ ├── bsp-cli Automatically added to armbian-bsp-cli package │ ├── bsp-desktop Automatically added to armbian-bsp-desktopo package │ ├── bsp Scripts and configs overlay for rootfs │ └── extras-buildpkgs Optional compilation and packaging engine ├── patch Collection of patches │ ├── atf ARM trusted firmware │ ├── kernel Linux kernel patches | | └── family-branch Per kernel family and branch │ ├── misc Linux kernel packaging patches │ └── u-boot Universal boot loader patches | ├── u-boot-board For specific board | └── u-boot-family For entire kernel family ├── tools Tools for dealing with kernel patches and configs └── userpatches User: configuration patching area ├── lib.config User: framework common config/override file ├── config-default.conf User: default user config file ├── customize-image.sh User: script will execute just before closing the image ├── atf User: ARM trusted firmware ├── kernel User: Linux kernel per kernel family ├── misc User: various └── u-boot User: universal boot loader patches
You don't need to be a programmer to help!
- The easiest way to help is by "Starring" our repository - it helps more people find our code.
- Check out our list of volunteer positions and choose what you want to do ❤️
- Seed torrents
- Help with forum moderating
- Project administration
Want to become a maintainer?
Please review the Board Maintainers Procedures and Guidelines and if you can meet the requirements as well as find a board on the Board Maintainers list which has less than 2 maintainers, then please apply using the linked form.
Want to become a developer?
If you want to help with development, you should first review the Development Code Review Procedures and Guidelines and then you can review the pre-made Jira dashboards and additional resources provided below to find open tasks and how you can assist:
- pull requests that needs a review
- dashboard for junior and seniors developers
- continuous integration
Support is provided in one of two ways:
- For commercial or prioritized assistance:
- Alternatively free support is provided via general project search engine, documentation, community forums or IRC/Discord. Keep in mind this is mostly provided by our awesome community members in a best effort manner and therefore there are no guaranteed solutions.
- Forums for Participate in Armbian
- Discord: http://discord.armbian.com
- Follow @armbian on Twitter or LinkedIn.
- Bugs: issues / JIRA
- Office hours: Wednesday, 12 midday, 18 afternoon, CET
Thank you to all the people who already contributed Armbian!
- Current and past contributors, our families and friends.
- Support staff that keeps forums usable.
- Friends and individuals who support us with resources and their time.
- The Armbian Community that helps with their ideas, reports and donations.
Armbian's partnership program helps to support Armbian and the Armbian community! Please take a moment to familiarize yourself with our Partners:
This software is published under the GPL-2.0 License license.