This reverts commit
|
||
---|---|---|
.github | ||
.vscode | ||
config | ||
extensions | ||
lib | ||
packages | ||
patch | ||
tools | ||
.dockerignore | ||
.editorconfig | ||
.gitignore | ||
CONTRIBUTING.md | ||
LICENSE | ||
README.md | ||
VERSION | ||
compile.sh |
README.md
Table of contents
- What this project does?
- Getting started
- Compare with industry standards
- Download prebuilt images
- Project structure
- Contribution
- Support
- Contact
- Contributors
- Sponsors
- License
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.
Getting started
Basic requirements
- 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:
./compile.sh EXPERT="yes"
Run build framework inside Docker container:
./compile.sh docker
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"
More information:
- 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.
Function | Armbian | Yocto | Buildroot |
---|---|---|---|
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 |
Package manager | APT | any | none |
Configurability | limited | large | large |
Initramfs support | yes | yes | yes |
Getting started | quick | very slow | slow |
Cross compilation | yes | yes | yes |
Project structure
├── 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
🙌 Contribution
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
- Donate.
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
- documentation
- continuous integration
Support
Support is provided in one of two ways:
- For commercial or prioritized assistance:
- book a an hour of professional consultation,
- consider becoming a project partner. Reach us out at https://armbian.com/contact,
- 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.
Contact
- Forums for Participate in Armbian
- IRC:
#armbian
on Libera.chat - Discord: http://discord.armbian.com
- Follow @armbian on Twitter or LinkedIn.
- Bugs: issues / JIRA
- Office hours: Wednesday, 12 midday, 18 afternoon, CET
Contributors
Thank you to all the people who already contributed Armbian!
Also
- 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 Partners
Armbian's partnership program helps to support Armbian and the Armbian community! Please take a moment to familiarize yourself with our Partners:
License
This software is published under the GPL-2.0 License license.