$ show ophub/amlogic-s9xxx-armbian
This repository is a comprehensive build system and distribution for Armbian, a lightweight Linux distribution for ARM devices, specifically targeting Amlogic, Rockchip, and Allwinner SoCs used in TV boxes and single-board computers. It provides scripts and GitHub Actions workflows to build custom Armbian images, compile kernels, and manage system software. The architecture is based on a layered filesystem overlay pattern: common-files (shared across all devices), platform-files (per-SoC family), and different-files (per-board overrides), allowing flexible device-specific customization. Key entry points include the `rebuild` script for local image building, GitHub Actions workflows for CI, and a suite of `armbian-*` command-line tools for end-user system management (install, update, kernel management, software center). The project includes a software center with dozens of pre-configured Docker, desktop, and service applications, and extensive device support documented in a model database and per-board boot configurations. While the codebase is functional and widely used, it exhibits high duplication across board-specific files, contains binary device tree blobs without accompanying source, and has several hardcoded paths and vendor-specific dependencies that increase maintenance burden.
The LLM identified 3 files worth highlighting for reuse:
A reusable shell library that provides a consistent interface for installing, updating, and removing software packages (Docker containers, desktop applications, system services). It defines generic functions like `software_install`, `software_remove`, `check_release`, and `error_msg`, and supports declarative configuration via `software-list.conf`. The script is self-contained with minimal dependencies (jq, find, docker) and can be extracted to manage custom software catalogs in other embedded Linux distributions.
A comprehensive, parameterized shell script that automates the entire kernel compilation pipeline: dependency installation, toolchain setup, source fetching (with version query from upstream Makefiles), patch application, configuration, compilation, and packaging into .deb and tar.gz archives. It supports multiple kernel versions, cross-compilation, and ccache. The script is highly self-contained and could be adapted to compile kernels for other ARM platforms or embedded systems by adjusting a few variables and dependency lists.
A reusable GitHub Actions composite action that provides two modes: 'rebuild' (build Armbian images) and 'kernel' (compile kernels). It encapsulates the complex build environment setup (Docker, sparse checkout, caching, output handling) and exposes clean input parameters (board, kernel, uboot, etc.). This action can be directly used in other repositories or workflows to build Armbian images for custom devices without duplicating the build logic.