diff --git a/.github/logo.png b/.github/logo.png new file mode 100644 index 000000000..e96ae1b46 Binary files /dev/null and b/.github/logo.png differ diff --git a/README.md b/README.md index 6791fbb00..5090524de 100644 --- a/README.md +++ b/README.md @@ -1,233 +1,78 @@ -

- - Armbian logo -
- Armbian Linux Build Framework
-
-GitHub contributors -Artifacts generation -GitHub last commit (branch) -

+

+ Armbian logo +

+

-## What does this project do? +### Purpose of This Repository -- 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. +The **Armbian Linux Build Framework** creates minimal, efficient, and fully [customizable operating system images](https://docs.armbian.com/#key-features) based on **Debian** or **Ubuntu**. It is designed specifically for **low-resource single board computers (SBCs)** and other embedded devices. -## Getting started +This toolchain compiles a custom **Linux kernel**, **bootloader**, and **root filesystem**, providing fine-grained control over: -### Requirements for self hosted +- Kernel versions and configuration +- Bootloader selection and customization +- Filesystem layout and compression +- Additional firmware, overlays, and device trees +- System optimizations for performance and size -- x86_64 / aarch64 / riscv64 machine -- at least 8GB (less for non-[BTF](https://docs.kernel.org/bpf/btf.html) builds) of memory and ~50GB 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 Armbian / 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 +The framework supports **native**, **cross**, and **containerized** builds for multiple architectures (`x86_64`, `aarch64`, `armhf`, `riscv64`), and is suitable for development, testing, production deployment, or automation pipelines. -For stable branch use `--branch=v25.05` +It ensures **consistency across devices** while remaining modular and extensible through a variety of configuration files, templates, and user patches. + +### Quick Start ```bash -apt-get -y install git -git clone --depth=1 --branch=main https://github.com/armbian/build +git clone https://github.com/armbian/build cd build ./compile.sh ``` +### Resources + +[Documentation](https://docs.armbian.com/Developer-Guide_Overview/) • [Website](https://www.armbian.com) • [Blog](https://blog.armbian.com) • [Community Forums](https://forum.armbian.com) + + + Armbian logo -- 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 Host Requirements -### Build parameter examples +- **Supported Architectures:** `x86_64`, `aarch64`, `riscv64` +- **System:** VM, container, or bare-metal with: + - **≥ 8GB RAM** (less with `KERNEL_BTF=no`) + - **~50GB disk space** +- **Operating System:** + - Armbian / Ubuntu 24.04 (Noble) for native builds + - Any Docker-capable Linux for containerized setup +- **Windows:** Windows 10/11 with WSL2 running Armbian / Ubuntu 24.04 +- **Access:** Superuser rights (`sudo` or `root`) +- **Important:** Keep your system up-to-date — outdated tools (e.g., Docker) can cause issues. -Show work-in-progress areas in interactive mode: +### Download -```bash -./compile.sh EXPERT="yes" -``` +Prebuilt Armbian OS Images: -Build minimal CLI Armbian Jammy for Bananapi M5 with LTS kernel: +### Contribute -```bash -./compile.sh \ -BOARD=bananapim5 \ -BRANCH=current \ -RELEASE=noble \ -BUILD_MINIMAL=yes \ -BUILD_DESKTOP=no \ -KERNEL_CONFIGURE=no -``` +Learn how to report issues, suggest improvements, or submit code: [CONTRIBUTING.md](CONTRIBUTING.md) -Build with GitHub actions: ([advanced version](https://github.com/armbian/os/blob/main/.github/workflows/complete-artifact-one-by-one.yml)) +### Support -``` -name: "Build Armbian" -on: - workflow_dispatch: -jobs: - build-armbian: - runs-on: ubuntu-24.04-arm # use ubuntu-24.04 when building x86 or riscv64 - steps: - - uses: armbian/build@main - with: - armbian_token: "${{ secrets.GITHUB_TOKEN }}" # GitHub token - armbian_release: "noble" # 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. +Armbian offers multiple support channels, depending on your needs: -## More information: +- **Community Forums** + Get help from fellow users and contributors on a wide range of topics — from troubleshooting to development. + 👉 [forum.armbian.com](https://forum.armbian.com) -- [Building Armbian](https://docs.armbian.com/Developer-Guide_Build-Preparation/) (how to start) -- [Build commands](https://docs.armbian.com/Developer-Guide_Build-Commands/) and [switches](https://docs.armbian.com/Developer-Guide_Build-Switches/) (build options) -- [User configuration](https://docs.armbian.com/Developer-Guide_User-Configurations/) (how to add packages, patches, and override sources config) -- [System config](https://docs.armbian.com/User-Guide_Armbian-Config/) (menu driven utility to setup OS and HW features) +- **Discord / IRC/ Matrix Chat** + Join real-time discussions with developers and community members for faster feedback and collaboration. + 👉 [Community Chat](https://docs.armbian.com/Community_IRC/) -## Download prebuilt images releases +- **Paid Consultation** + For advanced needs, commercial projects, or guaranteed response times, paid support is available directly from Armbian maintainers. + 👉 [Contact us](https://www.armbian.com/contact) to discuss consulting options. -### Point - -- [manually released **standard supported** builds](https://www.armbian.com/download/?device_support=Standard%20support) (quarterly) - -### Rolling - -- [automatically released **staging and standard supported** builds](https://github.com/armbian/os/releases/latest) (daily) -- [automatically released **community maintained** builds](https://github.com/armbian/community/releases/latest) (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 - -```text -├── 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 - ├── config-example.conf User: example user config file - ├── customize-image.sh User: script will execute just before closing the image -    ├── atf User: ARM trusted firmware -    ├── extensions User: Extend build system with specific functionality -    ├── 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: - -- [Code reviewer](https://forum.armbian.com/staffapplications/application/23-code-reviewer/) -- [Build framework maintainer](https://forum.armbian.com/staffapplications/application/9-build-framework-maintainer/) -- [Test Automation Engineer](https://forum.armbian.com/staffapplications/application/19-test-automation-engineer/) - -Just apply and follow! - -## Support - -For commercial or prioritized assistance: - - Book an hour of [professional consultation](https://calendly.com/armbian/consultation) - - Consider becoming a [project partner](https://forum.armbian.com/subscriptions/) - - [Contact us](https://armbian.com/contact)! - -Free support: - - Find free support via [general project search engine](https://www.armbian.com/search), [documentation](https://docs.armbian.com), [community forums](https://forum.armbian.com/) or [IRC/Discord](https://docs.armbian.com/Community_IRC/). Remember that our awesome community members mainly provide this in a **best-effort** manner, so there are no guaranteed solutions. - -## Contact - -- [Forums](https://forum.armbian.com) for Participate in Armbian -- IRC: `#armbian` on Libera.chat / oftc.net -- Matrix: [https://forum.armbian.com/topic/40413-enter-the-matrix/](https://forum.armbian.com/topic/40413-enter-the-matrix/) -- Discord: [https://discord.gg/armbian](https://discord.gg/armbian) -- Follow [@armbian](https://twitter.com/armbian) on 𝕏 (formerly known as Twitter), Mastodon or [LinkedIn](https://www.linkedin.com/company/armbian). -- Bugs: [issues](https://github.com/armbian/build/issues) / [JIRA](https://armbian.atlassian.net/jira/dashboards/10000) -- Office hours: [Wednesday, 12 midday, 18 afternoon, CET](https://calendly.com/armbian/office-hours) - -## Contributors +### Contributors Thank you to all the people who already contributed to Armbian! @@ -235,24 +80,6 @@ Thank you to all the people who already contributed to Armbian! -### Also - -- [Current and past contributors](https://github.com/armbian/build/graphs/contributors), our families and friends. -- [Support staff](https://forum.armbian.com/members/2-moderators/) that keeps forums usable. -- [Friends and individuals](https://armbian.com/authors) who support us with resources and their time. -- [The Armbian Community](https://forum.armbian.com/) helps with their ideas, reports and [donations](https://www.armbian.com/donate). - ## Armbian Partners -Armbian's partnership program helps to support Armbian and the Armbian community! Please take a moment to familiarize yourself with our Partners: - -- [Click here to visit our Partners page!](https://armbian.com/partners) -- [How can I become a Partner?](https://forum.armbian.com/subscriptions) - -## Star History - -[![Star History Chart](https://api.star-history.com/svg?repos=armbian/build&type=Date)](https://star-history.com/#armbian/build&Date) - -## License - -This software is published under the GPL-2.0 License license. +Armbian's [partnership program](https://forum.armbian.com/subscriptions) helps to support Armbian and the Armbian community! Please take a moment to familiarize yourself with [our Partners](https://armbian.com/partners).