armbian/build
Fork: 2041 Star: 3701 (ๆดๆฐไบ 2024-05-05 20:46:59)
license: GPL-2.0
Language: Shell .
Armbian Linux build framework generates custom Debian or Ubuntu image for x86, aarch64, riscv64 & armhf
ๆๅๅๅธ็ๆฌ๏ผ v24.2.1 ( 2024-03-04 00:14:07)
What does this project do?
- Builds custom kernel, image or a distribution optimized for low-resource hardware,
- 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
Requirements for self hosted
- x86_64 / aarch64 machine
- at least 2GB of memory and ~35GB of disk space for VM, container or bare metal installation
- Armbian / Ubuntu Jammy 22.04.x for native building or any Docker capable Linux for containerised
- Windows 10/11 with WSL2 subsystem running Ubuntu Jammy 22.04.x
- Superuser rights (configured sudo or root access).
- Make sure your system is up-to-date! Outdated Docker binaries, for example, can cause trouble.
For stable branch use --branch=v23.11
apt-get -y install git
git clone --depth=1 --branch=main https://github.com/armbian/build
cd build
./compile.sh
- Interactive graphical interface.
- Prepares the workspace by installing the necessary dependencies and sources.
- It guides the entire process and creates a kernel package or a ready-to-use SD card image.
Build parameter examples
Show work-in-progress areas in interactive mode:
./compile.sh EXPERT="yes"
Build minimal CLI Armbian Jammy for Bananapi M5 with LTS kernel:
./compile.sh \
BOARD=bananapim5 \
BRANCH=current \
RELEASE=jammy \
BUILD_MINIMAL=yes \
BUILD_DESKTOP=no \
KERNEL_CONFIGURE=no
Build with GitHub actions: (advanced version)
name: "Build Armbian"
on:
workflow_dispatch:
jobs:
build-armbian:
runs-on: ubuntu-latest
steps:
- uses: armbian/build@main
with:
armbian_token: "${{ secrets.GITHUB_TOKEN }}" # GitHub token
armbian_release: "jammy" # userspace
armbian_target: "build" # build=image, kernel=kernel
armbian_board: "bananapim5" # build target
Generated image will be uploaded to your repository release. Note: GitHub upload file limit is 2Gb.
More information:
- Building Armbian (how to start, how to automate)
- Build options (all build options)
- User configuration (how to add packages, patches, and override sources config)
Download prebuilt images releases
Point
- manually released standard supported builds (quarterly)
Rolling
- automatically released staging and standard supported builds (daily)
- automatically released community maintained builds (weekly)
Compared with industry standards
Expand
Check similarities, 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
Expand
โโโ cache Work / cache directory
โย ย โโโ aptcache Packages
โย ย โโโ ccache C/C++ compiler
โย ย โโโ docker Docker last pull
โย ย โโโ git-bare Minimal Git
โย ย โโโ git-bundles Full Git
โย ย โโโ initrd Ram disk
โย ย โโโ memoize Git status
โย ย โโโ patch Kernel drivers patch
โย ย โโโ pip Python
โย ย โโโ rootfs Compressed userspaces
โย ย โโโ sources Kernel, u-boot and other sources
โย ย โโโ tools Additional tools like ORAS
โย ย โโโ utility
โโโ 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
โย ย โโโ functions
โย ย โย ย โโโ artifacts
โย ย โย ย โโโ bsp
โย ย โย ย โโโ cli
โย ย โย ย โโโ compilation
โย ย โย ย โโโ configuration
โย ย โย ย โโโ general
โย ย โย ย โโโ host
โย ย โย ย โโโ image
โย ย โย ย โโโ logging
โย ย โย ย โโโ main
โย ย โย ย โโโ rootfs
โย ย โโโ tools
โโโ 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
Want to help?
We always need those volunteering positions:
Just apply and follow!
Support
For commercial or prioritized assistance:
- Book an hour of professional consultation
- Consider becoming a project partner
- Contact us!
Free support:
Find free support via general project search engine, documentation, community forums or IRC/Discord. Remember that our awesome community members mainly provide this in a best-effort manner, so there are no guaranteed solutions.
Contact
- Forums for Participate in Armbian
- IRC:
#armbian
on Libera.chat / oftc.net - Discord: https://discord.gg/armbian
- Follow @armbian on ๐ (formerly known as Twitter), Mastodon or LinkedIn.
- Bugs: issues / JIRA
- Office hours: Wednesday, 12 midday, 18 afternoon, CET
Contributors
Thank you to all the people who already contributed to 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 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:
Star History
License
This software is published under the GPL-2.0 License license.
ๆ่ฟ็ๆฌๆดๆฐ:(ๆฐๆฎๆดๆฐไบ 2024-05-11 16:36:43)
2024-03-04 00:14:07 v24.2.1
2024-01-02 03:17:50 v23.11.2
2024-01-01 01:21:36 v23.11.1
2023-02-13 05:01:38 23.02.0-trunk.0256
2023-02-13 03:48:28 23.02.0-trunk.0254
2023-02-12 08:48:25 23.02.0-trunk.0252
2023-02-10 22:50:37 23.02.0-trunk.0250
2023-02-10 11:39:33 23.02.0-trunk.0248
2023-02-10 10:08:10 23.02.0-trunk.0247
2023-02-08 15:50:54 23.02.0-trunk.0245
ไธป้ข(topics):
aarch64, arm, debian, firmware, framework, image, iso, kernel, kernel-compilation, kernel-hacking, lightweight, linux, linux-distribution, operating-system, u-boot, ubuntu, uefi, wsl2, x86
armbian/buildๅ่ฏญ่จ Shellๆ่ฟๆดๆฐไปๅบ
2024-05-10 17:09:30 iranee/qnap-alist-webdav
2024-05-06 15:11:30 89luca89/distrobox
2024-05-06 03:32:27 dockur/windows
2024-05-06 00:01:30 RROrg/rr
2024-05-05 08:13:50 termux/termux-packages
2024-05-03 00:46:17 sbwml/luci-app-alist