Everything posted by admin
-
[Armbian newsletter] - Your whole smart home, on a new board, before the coffee gets cold
We moved our Home Assistant to a bigger board, and nothing needed re-pairingOur house runs on Armbian, and it has for years. Its Home Assistant setup started on an Allwinner H5 NanoPi K1 Plus. In 2025, it moved to the Rockchip NanoPi R3S LTS as soon as that board came out. This month it moved again, to the NanoPi M6. It was a live install: a Z-Wave mesh, a Zigbee network, a pile of automations and years of history. We expected at least one evening of re-pairing sensors. It took about half an hour, and every device came back on its own. Before: NanoPi R3S LTS After: NanoPi M6 V2 SoC Rockchip RK3566 Rockchip RK3588S CPU 4 × Cortex-A55 4 × Cortex-A76 + 4 × Cortex-A55 RAM 2 GB 8 GB Storage 32 GB eMMC 64 GB eMMC, NVMe slot free Both on Armbian trixie with Home Assistant Supervised. The R3S served us well, but the M6 is a big step up. Its Cortex-A76 cores and four times the memory mean dashboards open faster, history loads quicker, and there’s room for more apps. Everything runs from the 64 GB on-board eMMC for now, so the NVMe slot is free for later. The whole move, by the numbers: one backup file, one armbian-config entry, zero re-paired devices, about 30 minutes end to end. Why it’s this easyTwo things do the heavy lifting. First, a Home Assistant backup holds the whole house: configuration, dashboards, automations, history and installed apps. Armbian runs the same Supervised stack on every board it supports, so the backup doesn’t care what hardware it’s restored onto. Second, your Z-Wave and Zigbee networks live on the USB sticks, not on the computer. Move the sticks and the devices follow. The move, step by step1. Take a backup on the old device Go to Settings → System → Backups, create a full backup, and download the .tar file to your computer. 2. Put Armbian on the new board Download the Armbian Debian Trixie minimal image for your board from armbian.com, write it to an SD card or eMMC, and boot. Home Assistant Supervised on Armbian only works on Debian Trixie, so don’t pick Ubuntu or another Debian release. 3. Give it a fixed IP address Your phones, dashboards and automations expect Home Assistant at an address that doesn’t change. Set a static IP in armbian-config, as described in Network settings. You can also edit Netplan by hand using the networking guide, or set a DHCP reservation on your router. If you want everything to keep working as before, reuse the old device’s address. Just switch the old device off first so the two don’t fight over it. 4. Install Home Assistant with armbian-config Open armbian-config → Software → Home Automation and pick Home Assistant. Or do it in one line: armbian-config --cmd HAS001The installer sets up Docker, the Supervisor and the OS agent, then waits until the web interface responds. Reboot when it asks. 5. Plug in your USB radios Move the Z-Wave and Zigbee sticks from the old device to the new one before you restore. That way the apps find their hardware the first time they start. 6. Upload the backup Open http://<board-ip>:8123. On the welcome screen, choose to restore from a backup and upload your .tar file. The restore runs in the background. When Home Assistant restarts, reload the page and log in with your usual account. That’s it. Your house is back. The radios just workHome Assistant finds USB sticks by their stable names under /dev/serial/by-id/. Those names come from the stick itself, not from the board, so they’re identical on the new machine. In our move: Aeotec Z-Stick Gen5: Z-Wave JS connected, and every node reported ready.Sonoff Zigbee 3.0 Dongle Plus: ZHA picked up the network with every device in place.Forgot to plug a stick in first? No harm done. Plug it in now and restore just that app from the same backup: ha backups restore <backup-slug> --app core_zwave_jsA couple of finishing touchesTake a fresh backup on the new board once everything is running, so your next move starts from here.Check your custom integrations. If you use HACS or other custom components, make sure they loaded, and reinstall any that are missing.A note on support: the Supervised installation method is maintained by the Armbian team and isn’t officially supported by the Home Assistant project. Hardware questions go to the Armbian forum. Application issues you can also reproduce on the official Home Assistant OS go to the Home Assistant community. View the full article
-
[Armbian newsletter] - Armbian Imager 2.5 is out
The easiest way to get Armbian onto your board just got easier. In Armbian Imager 2.5, you set up a board by answering a few simple questions, and Imager double-checks your storage right before it writes. Settings now has a page of its own, and the app speaks Greek and Serbian too. Armbian Imager 2.5 in four minutes: the real app, from start to finish. Set up your board with a few answersA first-boot profile writes your network, user account, SSH keys, language and time zone onto the card, so the board is ready to use the moment it boots. In 2.5, New profile walks you through setup one question at a time: how the board connects, who logs in, which language and time zone to use, and how you sign in. Skip whatever you don’t need. Your answers build up in a column next to the questions, so you always see what the profile will do. Imager also catches the mistakes that are hardest to track down on a board with no screen. If you type a static address that can’t work, like your subnet’s broadcast address or a gateway outside the subnet, Imager tells you while you type. Add SSH keys from GitHub, GitLab or a link, and Imager fetches them and shows you which keys it found. A typo in a user name shows up right there, not after your first failed login. Profiles also fit more naturally into the rest of the app: Use one profile for every board, or only for the boards you pick.Choose a profile from a menu just before you write. Icons show Wi-Fi or cable, user, time zone and keys at a glance.Use profiles with Armbian images you build yourself.A board with no screen and no network no longer gets stuck at first login asking “Connect via wireless?”. The profile answers for it.Pick any Wi-Fi country that Linux’s wireless regulatory database accepts.One last check before anything is erasedJust before it writes, Imager checks the target one more time. It only writes to a writable disk it found itself, at the exact size you confirmed. Swapping cards while the password prompt is open can’t send the image to the wrong one. If the image is too big for the storage, or the file is empty, Imager stops before erasing anything. And if a device can’t be used, Imager tells you why, in your language. You can now cancel at any stage, even while the image is still being prepared. When the write finishes, the last screen tells you what you wrote to: an SD card, a USB drive or a disk. For Qualcomm boards in EDL mode, Imager matches the board you selected by its serial number, so it writes to that board and no other. A nicer app all roundSettings get a page of their own: The gear icon now opens a full page with five sections: General, Writing, First-boot profiles, Downloads and storage, and About and support. Each section has a small animation that reacts to its settings. The General scene changes with your theme, and the Downloads scene shows when you’re offline. Change the theme or reduce motion, and you see the result before you save. More room on the home screen: The page numbers under the manufacturer and board grids are now a small glass pager. It floats over the cards and opens when you point at it, so the grid gets the whole window. Board names are no longer cut short, and vendor logos keep their colors. Twenty languages: Imager now speaks Greek and Serbian, which brings it to twenty languages. The first time you open it, it starts in your system’s language. Help when something goes wrong: If Armbian’s servers don’t respond, Imager says so and gives you a Retry button. Upload Logs sends this session’s log to paste.armbian.com and gives you a link to add to your bug report, plus a QR code if you’d rather grab it on your phone. If a Settings section can’t load, it tells you. Checksum, verification and decompression errors now come with a plain-language explanation. Updates in the background: When a new version is out, you’ll see it in the sidebar and under About and support in Settings. Click Install and the update downloads in the background while you keep working. Click Restart Now when you’re ready. If a write is in progress, the restart waits until it’s done. Under the hoodDebug builds include a scenarios panel that simulates SD cards, USB drives, EDL boards, write errors and network failures. That’s how we filmed the video above: every shot is the real app, and not a single real card was erased. Every release build is checked to make sure none of that code ships. CI now also audits dependencies and checks the Windows code. Thank youSpecial thanks to Superkali, the main developer behind this application, for doing the heavy lifting and driving most of the improvements. Thanks also to Emmanouil C. for reviewing the Greek translation, Aleksandar D. for reviewing the Serbian translation, Igor P. for improving static IP checks and fixing the wireless prompt, Cyrus Ho for adding missing Wi-Fi country codes, and Xavier S. for displaying the device type on the final screen. Get itArmbian Imager 2.5 is out now for Mac, Linux and Windows, free and open source. Already running 2.0 or later? Imager will offer you the update. Download Armbian Imager 2.5 View the full article
-
[Armbian newsletter] - Github Highlights
This cycle is defined by three themes: broad new board enablement, a coordinated U-Boot v2026.10 refresh across Rockchip and Allwinner platforms, and substantial Rockchip kernel, media, and wireless work. Board support expanded on multiple SoC families, including the EasePi R1 and Pine64 Quartz64 Zero on RK3568, the ArmSoM CM7s IO board and Boardcon EM3588 on RK3588, Forlinx OK3572-C, and the Skysi X5 laptop. The Banana Pi BPI-M4 (RTD1395) and Cubieboard 4 returned with full enablement including A80 cpufreq, thermal, HDMI, and audio. Qualcomm support advanced with the Lenovo Legion Y700 Gen 4 on an SM8750 edge kernel bumped to 7.2.11, while the NVIDIA Jetson Nano joined the uefi-arm64-dt target. A sweeping bootloader refresh moved numerous platforms to U-Boot v2026.10, TF-A lts-v2.14.11, and refreshed DDR blobs, covering Radxa RK3399, RockPro64, Rock Pi 4C, NanoPi M4, Orange Pi 4 variants, Tinker Board 2, Mixtile Blade3 and Edge2, and the Recomputer RK3588 devkit. GRUB images gained a separate ext2/ext4 /boot partition and now honour UEFISIZE, and the build framework switched to the new git.u-boot-project.org upstream host. On the kernel side, the RK3588 gained working 6 Gbps SoC SATA and CAN node support, while HDMI received a 31.5 MHz clock for RK356x and a 16-bit audio fix for RK3576. Rockchip wireless work includes WPA3/SAE handling in bcmdhd and backported rtw88 support for rtl8723bs. Amlogic saw multiple meson64 VDEC fixes for H.264, MPEG-1/2, and GStreamer/FFmpeg start failures, and Sophgo SG2000 gained H.264 encoder and JPEG unit support in coda. #Armbian #EmbeddedLinux #Rockchip #UBoot #SBC Changesadd board EasePi-R1 (RK3568). by @kunxiang1 in armbian/build#11077add board image for Lenovo Legion Y700 Gen4. by @retro98boy in armbian/armbian.github.io#511Add board image: dshanpi-a1-cm5-waveshare-cm5-to-pi5-adapter. by @sckiyo in armbian/armbian.github.io#519Add board: Pine64 Quartz64 Zero. by @pablo-cabrera in armbian/build#11028Add Boardcon EM3588 board image. by @boardcon-arm in armbian/armbian.github.io#518Add Forlinx OK3572-C board support. by @lch08 in armbian/linux-rockchip#594add linux-source-package extension. by @EvilOlaf in armbian/build#10777add rtw8723b_fw.bin for upcoming rtw88 driver support for rtl8723bs. by @paolosabatino in armbian/firmware#153add support for ArmSom CM7s IO board. by @amazingfate in armbian/build#11061arm64: dts: rockchip: add ArmSoM CM7s IO board support. by @amazingfate in armbian/linux-rockchip#595arm64: dts: rockchip: add Boardcon EM3588 device tree. by @boardcon-arm in armbian/linux-rockchip#600arm64: dts: rockchip: add Skysi X5 laptop. by @bingo1991 in armbian/linux-rockchip#596arm64: dts: rockchip: rework the DshanPi R1 and R1+ boards. by @sckiyo in armbian/linux-rockchip#572armbian-audio-config: return instead of exit when sourced. by @puding-svk in armbian/build#11117ASoC: rockchip: support sleepable headphone detect GPIO. by @boardcon-arm in armbian/linux-rockchip#599bananapim4: add the Banana Pi BPI-M4 (RTD1395). by @igorpecovnik in armbian/build#11071Bluetooth: hci_aic: Add module ready check to setup. by @wukibaka in armbian/linux-rockchip#555board-images: add ArmSoM CM7s-IO board. by @amazingfate in armbian/armbian.github.io#514board-images: add Banana Pi BPI-M4. by @igorpecovnik in armbian/armbian.github.io#515board-images: add Cubieboard 4. by @igorpecovnik in armbian/armbian.github.io#512board-images: add EasePi R1 board image. by @kunxiang1 in armbian/armbian.github.io#517board-instructions: add Orange Pi 4. by @igorpecovnik in armbian/armbian.github.io#513board: mixtile-blade3: update mainline DTS for rockchip64. by @evtest-hash in armbian/build#11052board: mixtile-core3588e: update edge kernel support. by @evtest-hash in armbian/build#11114boards: remove duplicate vendor names from BOARD_NAME. by @stevenjoezhang in armbian/build#10932brcm: add ROCK Pi 4C and Orange Pi 4 links for BCM43456. by @igorpecovnik in armbian/firmware#152brcm: link AP6330 firmware for the Cubieboard 4. by @igorpecovnik in armbian/firmware#150bsp-cli: version the package on the packages/dirs its hooks install from. by @lukaszsobala in armbian/build#10327bsp: aic8800: skip bluetooth attach without the wireless module. by @sckiyo in armbian/build#11057bsp: create the hardware groups and add new users to them. by @xsalaices in armbian/build#11015bsp: remove armbian-ssh-title.sh. by @p-durlej in armbian/build#10960build-framework: document firmware source and branch switches. by @igorpecovnik in armbian/documentation#1672build-framework: document GITHUB_TOKEN. by @igorpecovnik in armbian/documentation#1671build-framework: fix UBOOT_MIRROR default and add denx. by @igorpecovnik in armbian/documentation#1673build-framework: separate /boot on GRUB images. by @igorpecovnik in armbian/documentation#1683bump SM8750 edge kernel to 7.2.11 and initial support for the Lenovo Legion Y700 Gen 4. by @retro98boy in armbian/build#11044chore(deps): bump rustls and tokio to clear cargo audit. by @SuperKali in armbian/imager#227chore(deps): resolve Dependabot alerts published 2026-10-21. by @SuperKali in armbian/website#61chore(deps): resolve open Dependabot alerts. by @SuperKali in armbian/website#59clk: rockchip: rk3328: fix armclk parent/mux mismatch. by @xsalaices in armbian/linux-rockchip#568complete-artifact-matrix: set image chunk outputs in 4 jobs. by @igorpecovnik in armbian/ci#95Cubieboard 4: U-Boot v2026.10, A80 cpufreq, thermal, HDMI and audio. by @igorpecovnik in armbian/build#11047d1: kernel: build mainline v7.3 with HDMI. by @khaliforce in armbian/build#11050desktops: bianbu: make archive.spacemit.com a thin overlay (fix riscv64 rootfs build). by @igorpecovnik in armbian/configng#1052drm/rockchip: dw_hdmi: skip PHY debugfs without a PHY. by @lukaszsobala in armbian/linux-rockchip#585drm/rockchip: more HDMI/DP outputs for Mecotronic R58-HD (DT-gated) — ported to rkr7.2. by @igorpecovnik in armbian/linux-rockchip#545drm: dw-hdmi: guard optional CEC adapter in HPD worker. by @novadusk in armbian/linux-rockchip#582eltay-rm66: fix mainline overlay prefix. by @RiPetitor in armbian/build#11081external: add obs-studio-rockchip for trixie and resolute. by @HeyMeco in armbian/os#494feat(ui): show a real error state when a selection panel fails to load. by @SuperKali in armbian/imager#230feat(update): download updates in the background from Settings. by @SuperKali in armbian/imager#229firmware: newest linux-firmware tag, with mirror fallback. by @igorpecovnik in armbian/build#10950Fix Steam install script. by @ginkage in armbian/configng#1069fix(config): add display names for vendors without a company name. by @EvilOlaf in armbian/website#63fix(config): match vendor name suffixes as whole words. by @EvilOlaf in armbian/website#62fix(flash): refuse empty images before they can erase a device. by @SuperKali in armbian/imager#226fix(ui): stop clipping board card photos that fill their frame. by @SuperKali in armbian/imager#228Gaming: add native Steam client module and heroic launcher. by @HeyMeco in armbian/configng#1066gha-matrix: let separate jobs set the images outputs. by @igorpecovnik in armbian/build#11055gha-matrix: limit the matrix by size, not by job count. by @igorpecovnik in armbian/build#11054grub: allow a separate ext2/ext4 /boot. by @igorpecovnik in armbian/build#11084grub: honour UEFISIZE, and size the EFI partition when it is also /boot. by @igorpecovnik in armbian/build#11072input: touchscreen: gt9xx: update I2C device name. by @boardcon-arm in armbian/linux-rockchip#598invalidate rootfs cache, force rebuild. by @EvilOlaf in armbian/build#11065kickpi-k2b-v2: add Seekwave SWT6621S (vs6621s) SDIO WiFi/BT driver. by @Novice-PG in armbian/build#11006KVM: arm64: PMU: Don't overwrite PMUSERENR with vcpu loaded. by @monolith-jaehoon in armbian/linux-rockchip#571lckfb-taishanpi: set vdd_npu to 900 mV in U-Boot. by @sckiyo in armbian/build#11066lubancat-5io: sync device trees with Linux submission. by @lch08 in armbian/build#10945mainline: bump to unreleased 7.4-rc1 to make room for 7.3-stable. by @EvilOlaf in armbian/build#11046mangopi-mq: u-boot: build v2026.10 with board patches. by @khaliforce in armbian/build#11049media: i2c: techpoint: Update TP2855 register settings. by @boardcon-arm in armbian/linux-rockchip#597media: rockchip: hdmirx: keep the 5V detect IRQ disabled while suspended. by @gconaty in armbian/linux-rockchip#567meson64: vdec: fix H.264 luma in the first GOP. by @outhud in armbian/build#11098meson64: vdec: fix MPEG-1/2 decoding. by @outhud in armbian/build#11069meson64: vdec: fix start failures with GStreamer and FFmpeg. by @outhud in armbian/build#11070mfd: rk808: write DEV_OFF for RK809/RK817 on poweroff. by @sckiyo in armbian/linux-rockchip#565mixtile-blade3: u-boot/kernel: boot-from-SATA & eMMC fixes. by @rpardini in armbian/build#11102mixtile-blade3: u-boot: mainline: bump to v2026.10 (+USB-PD powering; +recover vendor u-boot for comparison). by @rpardini in armbian/build#11093mixtile-edge2: mainline u-boot: v26.10; new DT/defconfig; +fancy; +env-in-emmc-boot0/1. by @rpardini in armbian/build#11073nanopi-r28s: build the AIC8800 SDIO driver as DKMS. by @igorpecovnik in armbian/build#11063nanopim4, nanopim4v2: u-boot v2026.10 with mainline TF-A. by @igorpecovnik in armbian/build#11094net: wireless: bcmdhd: handle NL80211_WPA_VERSION_3 (WPA3/SAE with wpa_supplicant 2.11). by @defcom5-rockchip in armbian/linux-rockchip#561olinux-som-a13: merge configs, drop duplicate, move to .csc, eltay: add missing hw description. by @EvilOlaf in armbian/build#11105orangepi4, orangepi4-lts, tinkerboard-2: u-boot v2026.10, own targets, DT fixes. by @igorpecovnik in armbian/build#11056phy: rockchip-inno-usb2: respect fixed peripheral role. by @jannikbecher in armbian/linux-rockchip#578qcom: add Lenovo Y700 Gen4 firmware from ZUXOS 1.5.10.259. by @retro98boy in armbian/firmware#149radxa rk3399: U-Boot v2026.10, TF-A lts-v2.14.11, DDR blob v1.30 TPL. by @igorpecovnik in armbian/build#11091recomputer-rk3588-devkit: mainline u-boot: bump v2026.07 -> v2026.10. by @rpardini in armbian/build#11074release-targets: add NVIDIA Jetson Nano on uefi-arm64-dt. by @igorpecovnik in armbian/armbian.github.io#510Report missing board pinouts, schematics and instructions, without blocking. by @igorpecovnik in armbian/build#11037rk3399pro: add ddr 800MHz v1.30. by @igorpecovnik in armbian/rkbin#53rk3588: kernel & u-boot: fixes for working, 6gbps, SoC SATA. by @rpardini in armbian/build#11101rock-2f, rock-2a: add current kernel, u-boot v2026.10, newer blobs, SD and USB fixes. by @igorpecovnik in armbian/build#11088rockchip64-7.3: mixtile-blade3: recover fixed-function RTL8125 PCIe description and ethernet0/1 alias. by @rpardini in armbian/build#11092rockchip64-7.3: mixtile-blade3: restore fan curve & tach pull-up. by @rpardini in armbian/build#11103rockchip64: add 31.5 MHz HDMI clock for RK356x. by @RiPetitor in armbian/build#11067rockchip64: add PocketTerm35 touch overlay for ELTAY RM66. by @RiPetitor in armbian/build#11079rockchip64: fix RK3576 HDMI audio for 16-bit samples. by @sckiyo in armbian/build#11095rockchip64: rk3399: keep thermal trips below the hardware shutdown, add throttle floor. by @igorpecovnik in armbian/build#11059rockchip64: rock-pi-4: describe the Ethernet PHY in DT. by @iav in armbian/build#11108rockchip: add the RK3588 CAN nodes for kernel 7.3 and U-Boot v2026.04. by @igorpecovnik in armbian/build#11090rockchip: backport rtw88 support for rtl8723bs. by @paolosabatino in armbian/build#11099rockchip: Drop redundant boot soc in board config file. by @amazingfate in armbian/build#11036rockpi-4c: u-boot v2026.10, mainline TF-A, SPI NOR cap. by @igorpecovnik in armbian/build#11053rockpro64: U-Boot v2026.10, TF-A lts-v2.14.11, Rockchip DDR blob as TPL. by @igorpecovnik in armbian/build#11085Software nav: list categories in alphabetical order. by @igorpecovnik in armbian/documentation#1657sophgo-sg200x: add the SG2000 H.264 encoder and JPEG unit to coda. by @lukaszsobala in armbian/build#11039sophgo: add the SG2000 CODA980 firmware. by @lukaszsobala in armbian/firmware#151sunxi-6.18/sunxi-7.3: port A523/T527 patches (Avaota-A1, Cubie-A5E, OrangePi-4A). by @juanesf in armbian/build#11040sunxi64: U-Boot v2026.10, TF-A lts-v2.14.11, Crust v0.6+; Banana Pi M64 fixes. by @igorpecovnik in armbian/build#11051u-boot: use git.u-boot-project.org, the new upstream host. by @vidplace7 in armbian/build#10477uefi-arm64-dt: Jetson Nano support, current branch, edge 7.3. by @igorpecovnik in armbian/build#11034ZeroPi, Orange Pi PC Plus, Orange Pi Plus 2E: U-Boot v2026.10 with Crust; fix ARM DMA oops. by @igorpecovnik in armbian/build#11058View the full article
-
[Armbian newsletter] - Github Highlights
This week's work centers on expanded board support, Rockchip and Realtek platform maturation, and continued refinement of installation and BSP tooling. New hardware enablement spans several SoC families. Initial build support arrives for the Altera Agilex 5 SoCDK, Banana Pi R3 Mini, Firefly AIBOX-K3, and the Allwinner H5 PBS TV Stick, while a new realtek-rtd129x family brings mainline kernel and U-Boot to the Banana Pi W2. The MangoPi MQ Pro gains Debian GRUB EFI boot and a proper maintainer, and the Radxa CM5-IO transitions to mainline kernel and U-Boot. Supporting firmware updates include Tegra210 USB, GPU and VIC blobs, Amlogic VDEC firmware, Realtek rtl8261c, and Qualcomm EDK2 firmware for Radxa boards. Rockchip receives sustained attention across kernel branches, with RK3576 Panfrost GPU overlays, vendor-next OPP and GPU-name corrections for RK356x Panfrost, RK356x suspend fixes for USB and NVMe, and patch repairs for the 6.18 and 7.3 trees. The new Realtek RTD129x family lands multiple stabilization patches covering hwnat RX overflow, watchdog timeout handling, and the r8169soc driver. Sunxi edge advances to 7.3, A523 gains HDMI audio DTS, and Meson moves VIM4 to 7.3 with GPU and audio support. On the user-facing side, armbian-install gains a standalone mode for U-Boot boot disks and board-defined firmware naming, while the BSP layer improves conffile handling, preserves user edits to periodic configuration, and defers armbianEnv.txt rewrites. The imager stops mislabeling every target as an SD card, mainline U-Boot advances to v2026.10, and the documentation site adds DUT inventory, board pinouts, schematics, and installation instructions. #Armbian #EmbeddedLinux #Rockchip #Realtek #UBoot ChangesAdd board and vendor logo images for the Altera Agilex5 SoCDK. by @dinguyen702 in armbian/armbian.github.io#483Add board image for Banana Pi BPI-W2. by @igorpecovnik in armbian/armbian.github.io#496Add board image for pbstvstick. by @JulioRamos0 in armbian/armbian.github.io#495Add board instructions. by @igorpecovnik in armbian/armbian.github.io#508Add board pinouts and schematics. by @igorpecovnik in armbian/armbian.github.io#507Add DKMS support. by @Vladnwx in armbian/uwe5622#22Add DUT inventory workflow (NetBox -> data branch). by @igorpecovnik in armbian/armbian.github.io#501Add initial board configuration for Firefly AIBOX-K3. by @leoppark94 in armbian/build#10956add Shaghal isologo. by @JulioRamos0 in armbian/armbian.github.io#497add vendor-next to ci. by @EvilOlaf in armbian/uwe5622#26apt-cacher-ng: fetch Armbian repositories from mirrors directly. by @igorpecovnik in armbian/docker-armbian-build#43arm64: dts: rockchip: add NanoPi M6 V2. by @igorpecovnik in armbian/linux-rockchip#584arm64: dts: rockchip: add RK3576 Panfrost GPU overlay. by @HeyMeco in armbian/linux-rockchip#592arm64: dts: rockchip: mixtile-blade3: raise the USB-C1 sink PDOs to 3A. by @evtest-hash in armbian/linux-rockchip#590arm64: dts: rockchip: retune reComputer RK3588 devkit fan curve. by @rpardini in armbian/linux-rockchip#588armbian-add-overlay: quote paths, run #include overlays through cpp. by @iav in armbian/build#10981armbian-firstlogin: write Wi-Fi password as YAML literal block. by @jfcabral in armbian/build#10996armbian-hardware-optimization: only rewrite armbianEnv.txt when it changes. by @pablo-cabrera in armbian/build#11029armbian-install: add a standalone mode for disks u-boot boots from. by @SuperKali in armbian/configng#1065armbian-install: let boards name the firmware they flash. by @SuperKali in armbian/configng#1064armbian-led-state: wait for LEDs registered by modules. by @igorpecovnik in armbian/build#10987armbian-upgrades: set APT::Periodic::Enable. by @igorpecovnik in armbian/configng#1059armbian-upgrades: show the checkboxes in the unattended-upgrade dialog. by @igorpecovnik in armbian/configng#1063bananapiw2: u-boot: use 1 GiB with one DRAM controller, turn on the eth1 LEDs. by @igorpecovnik in armbian/build#11026board-images: add MangoPi MQ Pro. by @igorpecovnik in armbian/armbian.github.io#500board-images: add Pine64 Quartz64 Zero. by @pablo-cabrera in armbian/armbian.github.io#506board: add Agilex 5 SoCDK build support. by @dinguyen702 in armbian/build#10938board: add Banana Pi R3 Mini. by @SuperKali in armbian/build#10678board: mixtile-edge2: update mainline DTS for rockchip64. by @evtest-hash in armbian/build#11045board: sunxi: add Allwinner H5 PBS TV Stick (pbstvstick) support. by @JulioRamos0 in armbian/build#10986boards: fix broken module-devkit build, add resolute btattach workaround. by @Lesords in armbian/build#11009bsp/armbian-ramlog - allow armbian-ramlog to recognize .lz files. by @tabrisnet in armbian/build#10993bsp: keep user edits to 02-armbian-periodic. by @igorpecovnik in armbian/build#10985bsp: skip a conffile that an extension removed from the BSP. by @igorpecovnik in armbian/build#11017bsp: write the conffiles list after the hooks, and check the files are there. by @igorpecovnik in armbian/build#11008ci: enable remaining uwe related kernel modules. by @EvilOlaf in armbian/uwe5622#27cix-6.18: rebase SCMI ACPI patch onto 6.18.57. by @SuperKali in armbian/build#11016community: build orangepi4pro from the manual list. by @igorpecovnik in armbian/armbian.github.io#499download-external: fetch arch-independent debs from GitHub releases. by @SuperKali in armbian/armbian.github.io#503drop kernel configs no longer referenced. by @EvilOlaf in armbian/build#11032dut-inventory: trigger web directory rebuild after data update. by @igorpecovnik in armbian/armbian.github.io#502external: add Radxa EDK2 firmware for Qualcomm boards. by @SuperKali in armbian/os#493fix(flash): stop calling every target an SD card. by @SuperKali in armbian/imager#223Index board pinouts, schematics and instructions in armbian-images.json. by @igorpecovnik in armbian/armbian.github.io#509JetHome: Add board image for JetHub D3 (j310). by @QwaSeeK in armbian/armbian.github.io#493kickpi-k2b-v2: fix 1G Ethernet packet loss and enable 1512 MHz OPP. by @Novice-PG in armbian/build#11014mangopi-mq: boot through Debian GRUB EFI. by @khaliforce in armbian/build#10925mangopi-mq: name the board MQ Pro, add a maintainer and a test target. by @igorpecovnik in armbian/build#11001meson-s4t7: replace current (7.1) with edge (7.3), add VIM4 GPU and audio. by @igorpecovnik in armbian/build#10984meson64-7.3: aiu: keep the HDMI source bounds check. by @iav in armbian/build#10982meson64-7.3: phylink WoL: give the MAC the PHY's SecureOn password. by @iav in armbian/build#10983meson: add vdec firmware from linux-firmware. by @igorpecovnik in armbian/firmware#146mvebu: edge: Helios4 OLED via the kernel ssd130x driver. by @neheb in armbian/build#11002nightly: build Khadas VIM1S/VIM4 on edge, add GNOME mid desktop. by @igorpecovnik in armbian/armbian.github.io#498nvidia: add Tegra210 USB, GPU and VIC firmware. by @igorpecovnik in armbian/firmware#148odroidhc4: u-boot: power-cycle the SD card after a watchdog reset. by @iav in armbian/build#10992ping-unresolved-reviews: wait 48 hours before a ping. by @igorpecovnik in armbian/armbian.github.io#494Radxa Dragon Q6A: expose the SPI NOR and update firmware from armbian-install. by @SuperKali in armbian/build#11007radxa-cm5-io: u-boot: fix SPI image build. by @igorpecovnik in armbian/build#10999realtek-rtd129x: add family and BananaPi W2 with mainline kernel and u-boot. by @igorpecovnik in armbian/build#10988realtek-rtd129x: hwnat: fix RX buffer overflow on eth1. by @igorpecovnik in armbian/build#11022realtek-rtd129x: r8169soc: drop CSI access, log link changes once. by @igorpecovnik in armbian/build#11027realtek-rtd129x: watchdog: allow timeouts above the hardware limit. by @igorpecovnik in armbian/build#11023remove orphaned u-boot patches. by @EvilOlaf in armbian/build#11033Revert "drivers: net: wireless: add aic8800 sdio support". by @rpardini in armbian/linux-rockchip#587rk356x: vendor-next: make Panfrost work (OPP masks, GPU names). by @lukaszsobala in armbian/linux-rockchip#586rk35xx-vendor: enable ES8389 codec for NanoPi M6 V2. by @igorpecovnik in armbian/build#10980rockchip-6.18: fix pm-domains patch after 6.18.y update. by @igorpecovnik in armbian/build#11012rockchip-7.3: fix general-rockchip-various-fixes for 7.3-rc7. by @igorpecovnik in armbian/build#10978rockchip64-6.18: fix broken iommu driver patch. by @EvilOlaf in armbian/build#11010rockchip64-7.3: helios64: drop DTS properties that nothing reads. by @iav in armbian/build#11030rockchip64-7.3: helios64: split add-board-helios64.patch into numbered patches. by @iav in armbian/build#11004rockchip64-7.3: RK356x: suspend with USB and NVMe. by @iav in armbian/build#11005rockchip64: drop the rk_crypto2 (montjoie) crypto engine series. by @xfournet in armbian/build#10969rtd129x: add CODA980 (VE1) firmware. by @igorpecovnik in armbian/firmware#147rtl_nic: add rtl8261c.bin from linux-firmware. by @iav in armbian/firmware#145runner-cleanup: remove corrupt apt-cacher-ng by-hash entries. by @igorpecovnik in armbian/configng#1062Simplify the odroidxu4 rtl8821cu fix. by @belegdol in armbian/build#11021sophgo-sg200x: add camera support for the Milk-V Duo S J1 and J2 connectors. by @leafpmpmp in armbian/build#10936sun60iw2: install the patched Xorg only for the X11 desktops. by @igorpecovnik in armbian/build#11000sunxi-6.18: sun55i-iommu: pass old domain to attach_dev. by @EvilOlaf in armbian/build#11011sunxi-7.2: a523 HDMI audio DTS (I2S2 -> DW-HDMI, playback-only). by @juanesf in armbian/build#10913sunxi: bump edge to 7.3. by @EvilOlaf in armbian/build#11031u-boot: mainline: v2026.10 - open the floodgates. by @rpardini in armbian/build#10976u-boot: ship BOOTLOADER_BOOTS_FROM in platform_install.sh. by @SuperKali in armbian/build#11025uboot: enable EEPROM MAC sourcing for reComputer RK3576 Module Dev Kit. by @Lesords in armbian/build#10990unisocwifi: size the remaining reply buffers with sizeof (-Wvla). by @lukaszsobala in armbian/uwe5622#24Update odroidxu4-current to 6.6.159. by @belegdol in armbian/build#11013Update the ELTAY RM66 photo. by @RiPetitor in armbian/armbian.github.io#504uwe5622: bump pinned commit hash. by @EvilOlaf in armbian/build#10989uwe5622: open files from the init root on kernel 7.3. by @lukaszsobala in armbian/uwe5622#23vendor-next: Fix AIC8800 bug. by @HeyMeco in armbian/build#10977wireless: apply the RTL8821CU 6.6.157 fix only where the driver exists. by @igorpecovnik in armbian/build#11019Automatic refresh repository README. by @igorpecovnik in armbian/docker-armbian-build#41radxa-cm5-io: mainline kernel & u-boot. by @JohnTheCoolingFan in armbian/build#10979View the full article
-
[Armbian newsletter] - Github Highlights
This week's development centers on expanded board support and vendor kernel work, mainline kernel progression to 7.3 with CI resilience improvements, and a substantial refresh of the Armbian Imager. New hardware enablement spans multiple SoC families, including the Boardcon SBC3568 (RK3568), ELTAY RM66 (RK3566) with vendor HDMI and power-domain workarounds, the Anbernic RG Rotate on the new Unisoc UMS512 family, and the NanoPi M6 V2. The NanoPi R6S, R6C, M6/M6V2, and NanoPC T6/T6-LTS have been unified under a single image with shared aliases, reducing duplication across the FriendlyELEC RK3588 lineup. On the vendor side, an initial rk35xx-vendor-next branch based on 6.12-rkr1 consolidates Rockchip vendor families, while fixes land for Orange Pi CM5 boot, Orange Pi 3B U-Boot unification, and RS485 support in the 8250 serial driver. Mainline moves to 7.3-rc7 across rockchip64, meson64, and uefi targets, with SpacemiT K1 edge migrating from 7.2.y to 7.3.y and an RK3568 PCIe Root Port reset loop fix. Build infrastructure gains a GitHub mirror fallback for mainline kernel fetches, longer git proxy timeouts, overflow of arm64 image jobs to X64 runners, and ccache refactored into a swappable extension. The Armbian Imager received broad investment: full-page Settings with board-scoped first-boot profiles, a critical fix preventing the ext4 writer from corrupting the rootfs, hardened disk target validation before flashing, cache correctness fixes on Windows, and expanded CI coverage including Rust linting on Windows and functional test builds for fork PRs. #Armbian #EmbeddedLinux #Rockchip #MainlineKernel #SBC ChangesAdd board image for Firefly AI Box K3. by @leoppark94 in armbian/armbian.github.io#487Add RTL8723D Bluetooth firmware. by @boardcon-arm in armbian/firmware#144Add support for Boardcon SBC3568 (RK3568). by @boardcon-arm in armbian/build#10723anbernic-rg-vita-pro: prefer the built-in codec over HDMI for audio. by @crackerjacques in armbian/build#10919arm64: dts: rockchip: orangepi5: alias GbE as ethernet0 (stable NIC name). by @igorpecovnik in armbian/linux-rockchip#575arm64: dts: rockchip: orangepi5: drop sd-uhs-sdr104 (SD reliability). by @igorpecovnik in armbian/linux-rockchip#573arm64: dts: rockchip: rk3566: remove empty rockchip,supported-hw from GPU OPP table. by @outhud in armbian/linux-rockchip#574armbian-kernel: globally disable CONFIG_DMABUF_DEBUG explicitly. by @rpardini in armbian/build#10928assets: add ELTAY RM66 board images and ELTAY brand artwork. by @RiPetitor in armbian/armbian.github.io#469autoconfig: decline first login's wireless prompt in every preset. by @igorpecovnik in armbian/imager#193blacklist NanoPi R6S/R6C/M6 and NanoPC T6/T6-LTS from all CI targets. by @igorpecovnik in armbian/armbian.github.io#486board-images: add Anbernic RG Rotate. by @crackerjacques in armbian/armbian.github.io#468board-images: add Xiaomi Pad 8 Pro (xiaomi-piano) board image. by @code002-2 in armbian/armbian.github.io#480board: add Anbernic RG Rotate (Unisoc T618 / UMS512) and the sprd-ums512 family. by @crackerjacques in armbian/build#10813board: add ELTAY RM66 (RK3566) community support. by @RiPetitor in armbian/build#10788board: add NanoPi M6 V2 (image + virtual board). by @igorpecovnik in armbian/armbian.github.io#417board: unify NanoPi R6S, R6C, M6/M6V2 and NanoPC T6 at a single image. by @igorpecovnik in armbian/build#10946bsp-cli: accept .dtso files in armbian-add-overlay. by @novadusk in armbian/build#10963bsp: avoid sysctl defaults file collision. by @nightcityblade in armbian/build#10944build-images: raise image build timeout to 60 min. by @igorpecovnik in armbian/ci#89chore(deps): clear RustSec advisories and make cargo audit blocking. by @SuperKali in armbian/imager#200chore(deps): let an MCP client drive the app in dev builds. by @SuperKali in armbian/imager#197chore: add a pull request template. by @SuperKali in armbian/imager#198ci: add PR labelling automation (from armbian/build). by @igorpecovnik in armbian/linux-rockchip#576ci: give fork PRs working test build links. by @SuperKali in armbian/imager#209ci: lint the Rust code on Windows too. by @SuperKali in armbian/imager#211ci: reuse main's caches and the npm Tauri CLI in PR checks. by @SuperKali in armbian/imager#217Create sync_user.sh. by @EvilOlaf in armbian/armbian.github.io#460datacenter: add an architecture picture. by @igorpecovnik in armbian/documentation#1521debian/changelog: release 101.10.591.52.27-10. by @igorpecovnik in armbian/bcmdhd-dkms#14Disable Bianbu desktop target for SpacemiT K1. by @igorpecovnik in armbian/armbian.github.io#484docs: ccache is an extension now; USE_CCACHE has no effect. by @iav in armbian/documentation#1528docs: sync the language count and build output with main. by @SuperKali in armbian/imager#208Document MAINLINE_MIRROR=github. by @igorpecovnik in armbian/documentation#1559Drop deprecated apa extension (fixes K3 rootfs cache miss). by @igorpecovnik in armbian/build#10947Enable User Button to Boot into Loader Mode for Luckfox Lyra Ultra. by @pdxlocations in armbian/build#10939env_init: set ARCH on hosts without /etc/armbian-release. by @igorpecovnik in armbian/configng#1055extensions: ccache: add @description; one-line compile_wrapper_pre summary. by @iav in armbian/build#10922feat(dev): add a dev scenarios simulator for debug builds. by @SuperKali in armbian/imager#206feat(settings): full-page Settings and board-scoped first-boot profiles. by @SuperKali in armbian/imager#215feat(settings): new animated hero scenes for the Settings sections. by @SuperKali in armbian/imager#222Fetch mainline kernel from the GitHub mirror. by @igorpecovnik in armbian/ci#87Fetch mainline kernel from the GitHub mirror in all configs. by @igorpecovnik in armbian/ci#88filogic: enable Linux 7.2 for GL-MT2500. by @JiaY-shi in armbian/build#10638fix building for Linux 7.3. by @EvilOlaf in armbian/bcmdhd-dkms#12Fix Goodix touchscreen X-axis orientation on SBC3568. by @boardcon-arm in armbian/build#10958fix(autoconfig): stop the ext4 writer from corrupting the rootfs. by @SuperKali in armbian/imager#221fix(build): repair the local build scripts. by @SuperKali in armbian/imager#207fix(cache): drop UFS images cached before the #196 fix. by @SuperKali in armbian/imager#214fix(custom): keep decompressed image deletes inside their folder. by @SuperKali in armbian/imager#212fix(download): keep cache file names inside their folder on Windows. by @SuperKali in armbian/imager#213fix(dts): restore ELTAY RM66 vendor HDMI. by @RiPetitor in armbian/linux-rockchip#577fix(flash): check the target disk in the backend before writing. by @SuperKali in armbian/imager#201fix(qdl): inject the UFS autoconfig into a per-flash copy. by @SuperKali in armbian/imager#210fix(soc): enable RM66 power-domain workaround in vendor kernel. by @RiPetitor in armbian/linux-rockchip#581fix(ui): stop data views hanging on skeletons or hiding load errors. by @SuperKali in armbian/imager#199fix(ui): translate checksum, verify and decompress errors. by @SuperKali in armbian/imager#216generate_targets: fill 'alfa' runners first with kernel jobs. by @igorpecovnik in armbian/armbian.github.io#492gha-matrix: add by-name-and-arch-overflow-max runner cap. by @rpardini in armbian/build#10967git: fall back to other kernel remotes when one does not answer. by @iav in armbian/build#10929git: GitHub fallback and longer timeout for the runner git proxy. by @igorpecovnik in armbian/build#10935git: mark the MEMO_DICT nameref in git2info for shellcheck. by @iav in armbian/build#10961haos: accept ARCH=arm for 32-bit ARM. by @igorpecovnik in armbian/configng#1056haos: let NetworkManager manage netplan interfaces. by @igorpecovnik in armbian/configng#1054helios4: stable MAC address from SPI NOR unique ID. by @iav in armbian/build#10962helios64: arm auto power-on in U-Boot, fix its GPIO numbers, make it configurable. by @iav in armbian/build#10906i18n: translate the rolling release labels. by @SuperKali in armbian/imager#219JetHome: Add board image for JetHub D3 (j310). by @QwaSeeK in armbian/armbian.github.io#493kernel-debug-tiers: detect hard lockups in tier 1. by @iav in armbian/build#10921kernel-rust: ship the generated arch asm include files in headers. by @iav in armbian/build#10931kernel: add github mainline mirror. by @igorpecovnik in armbian/build#10949kickpi-k2b-v2: add fail-soft prebuilt FFmpeg v4l2-request install (cedrus HW decode). by @Novice-PG in armbian/build#10915mainline: bump to 7.3-rc7. by @EvilOlaf in armbian/build#10975maintainers: virtual boards inherit maintainers of their base board. by @igorpecovnik in armbian/armbian.github.io#489mangopi-mq: replace Boot0/TOC1 with SPL/FIT. by @khaliforce in armbian/build#10926mangopi-mq: update OpenSBI to v1.9. by @khaliforce in armbian/build#10924meson64: meson64-reboot on gpiod for current and edge, drop the SD power-off DT patch. by @iav in armbian/build#10899mmc: core: Handle NULL vqmmc in voltage setting. by @jannikbecher in armbian/linux-rockchip#564mvebu: don't fetch the 64-bit Marvell bootloader tools. by @iav in armbian/build#10970nanopi-r3s-lts: name ports wan/lan, blink LEDs on traffic. by @igorpecovnik in armbian/build#10953nanopi-r76s: name ports wan/lan, blink LEDs on traffic. by @igorpecovnik in armbian/build#10954Orangepi CM5 boot fixes. by @ECO1AI in armbian/build#10916orangepi3b: one U-Boot image for NVMe and SATA, fix overlay prefix. by @lukaszsobala in armbian/build#10896orangepi5: drop sd-uhs-sdr104 for SD card reliability (mainline). by @igorpecovnik in armbian/build#10917partitioner: keep board hook stderr off the dialog gauge. by @iav in armbian/configng#1053perf(autoconfig): speed up the profile step and honour an early cancel. by @SuperKali in armbian/imager#220piano: add Xiaomi Pad 8 Pro (SM8750) firmware. by @code002-2 in armbian/firmware#143Ping PR authors about new unresolved review conversations. by @igorpecovnik in armbian/armbian.github.io#481ping-unresolved-reviews: wait 48 hours before a ping. by @igorpecovnik in armbian/armbian.github.io#494qca: Added missing bluetooth firmware for WCN7860. by @kasimling in armbian/firmware#142refactor(compilation): extract ccache support into a swappable extension. by @iav in armbian/build#9840refactor(ui): move hard-coded values into config, dedupe helpers. by @SuperKali in armbian/imager#205reusable: enable friendlyelec-rk3588 aliases for R6S, R6C, M6, T6, T6-LTS. by @igorpecovnik in armbian/armbian.github.io#490reusable: hide friendlyelec-rk3588 download page, keep its aliases. by @igorpecovnik in armbian/armbian.github.io#488Ripetitor/eltay rm66 vendor support. by @RiPetitor in armbian/linux-rockchip#560rk35xx-vendor-next: initial 6.12-rkr1 from Meco; consolidate & fold families. by @rpardini in armbian/build#10966rockchip-7.3: fix general-rockchip-various-fixes for 7.3-rc7. by @igorpecovnik in armbian/build#10978rockchip64-7.3: add opt-in helios64 CPU stability overlay. by @iav in armbian/build#10942rockchip64-7.3: fix RK3568 PCIe Root Port reset loop. by @igorpecovnik in armbian/build#10937rockchip64/meson64/uefi-*: bump edge to v7.3(-rc6). by @rpardini in armbian/build#10920rockchip64: current/edge: build REALTEK_PHY in. by @sckiyo in armbian/build#10923serial: 8250: add RS485 support with RTS and GPIO DE control. by @boardcon-arm in armbian/linux-rockchip#569soc: rockchip: pm_domains: don't panic on handshake timeout when always_on is set. by @RiPetitor in armbian/linux-rockchip#558software: add SolidPing uptime monitoring module. by @fclairamb in armbian/configng#1057SpacemiT K1: Edge: Migrate from linux-7.2.y to 7.3.y. by @pyavitz in armbian/build#10965SpacemiT K1: Remove CONFIG_BPF_JIT_ALWAYS_ON=y and other misc fixups "current". by @pyavitz in armbian/build#10959sun60iw2: fetch camera tools from orangepi-build. by @igorpecovnik in armbian/build#10951sunxi/rockchip64/meson64: rewrite patches. by @EvilOlaf in armbian/build#10964sunxi: recore: set the A5/A6 GPU clock, throttle instead of powering off at 90 C, keep pstore. by @eliasbakken in armbian/build#10940targets: overflow arm64 image jobs to X64 runners above the ARM64 capacity. by @igorpecovnik in armbian/armbian.github.io#491Update Boardcon SBC3568 board configuration. by @boardcon-arm in armbian/build#10952wl_cfg80211: handle NL80211_WPA_VERSION_3 (WPA3/SAE with wpa_supplicant 2.11). by @defcom5-rockchip in armbian/bcmdhd-dkms#11View the full article
-
[Armbian newsletter] - Github Highlights
This week's work centers on expanded board and SoC support, build and repository infrastructure modernization, and refinements to user-facing tooling and documentation. On the hardware side, mainline support arrived for the Radxa Rock 2A/2F and the Toradex Verdin iMX8M Mini, while the KickPi K2B V2.2 DDR3 gained a full board definition including a new Maxio MAE0621 PHY driver. The Allwinner sun60iw2 platform saw substantial advancement on the Orange Pi 4 Pro with GPU, desktop, and hardware video decode enablement, alongside kernel configuration refinements. The Amlogic C400-plus received U-Boot repacking and Mali-T820 stabilization, the Rockchip armhf edge kernel was bumped to 7.3, and smaller fixes landed for the BPI-M4-Zero, Allwinner D1 RISC-V, MangoPi MQ, and Anbernic handhelds. The build framework received a significant repository management overhaul, adopting the production singlemode repo.sh into main and publishing with Acquire-By-Hash for integrity. OCI storage became configurable with a read-only OCI_PROXY, propagated through CI chunk workflows and runner cleanup. NXP and Trusted Firmware sources were migrated to Armbian-hosted GitHub mirrors, user patches can now override same-named core patches, and USERPATCHES_PATH was restored to working order. For end users, armbianmonitor received a full refactor, armbian-firstlogin gained unattended-preset safety and broader username validation, and the APT lock handling was hardened against stale cache locks. The configng project introduced a read-only registry-cache for ghcr.io, fixed static IP cancellation handling, and corrected tuning-profile swappiness regressions. Documentation expanded to cover OCI storage, unattended first login, and application installation workflows. #Armbian #EmbeddedLinux #SBC #Rockchip #Allwinner #UBoot ChangesActions: Fix noble dkms, add to test matrix. by @vidplace7 in armbian/MorseMicro-DKMS#18Actions: Use numbered distro release in deb version. by @vidplace7 in armbian/MorseMicro-DKMS#19aml-c400-plus: repack blob; u-boot: env-in-mmc; +fancy-ish (<1MiB bl33). by @rpardini in armbian/build#10907aml-c400-plus: u-boot: fix u-boot.ext (bare bl33 for chainloading/toothpick). by @rpardini in armbian/build#10918anbernic-rg-ds: MBR image, fix battery charging, rumble at power-on. by @crackerjacques in armbian/build#10900anbernic-rg-vita-pro: MBR image, rumble at power-on. by @crackerjacques in armbian/build#10901apt: wait on lock + clear stale cache lock (fix "held by process 0"). by @igorpecovnik in armbian/build#10893armbian-firstlogin: allow underscore and hyphen in usernames. by @xsalaices in armbian/build#10844armbian-firstlogin: don't block an unattended preset run on questions. by @igorpecovnik in armbian/build#10840armbian-kernel: enable SMB/CIFS client and ksmbd on all kernels. by @igorpecovnik in armbian/build#10885Armbianmonitor refactor. by @EvilOlaf in armbian/build#9327autoconfig: document unattended first login and static IP scope. by @igorpecovnik in armbian/documentation#1419ayn-odin3: Migrate kernel to Linux 7.2. by @kasimling in armbian/build#10690bcm2711: always use official raspberrypi/firmware for start4.elf (and co). by @rpardini in armbian/build#10855bcm2711: don't enable a second serial getty on the Raspberry Pi UART. by @igorpecovnik in armbian/build#10848board-images: add KickPi K2B V2.2 board image. by @Novice-PG in armbian/armbian.github.io#478board-vendor-logos: add 9tripod logo. by @igorpecovnik in armbian/armbian.github.io#477board: add Toradex Verdin iMX8M Mini (board+vendor). by @lucshl in armbian/armbian.github.io#475board: bananapicm4io: blacklist out-of-tree 88x2cs wifi driver. by @igorpecovnik in armbian/build#10872board: mixtile-blade3: use rk3588-mixtile-blade3.dtb on the vendor branch. by @evtest-hash in armbian/build#10774boards: add Toradex Verdin iMX8M Mini support. by @lucshl in armbian/build#10867boards: aml-c400-plus: stabilize Mali-T820 by pinning runtime-PM on probe and reset. by @jomadeto in armbian/build#10797BPI-M4-Zero: Adjust LPDDR4 timings and AXP313 regulators. by @pyavitz in armbian/build#10873BPI-M4-Zero: Optimize mmc1 DT properties for fast SDIO initialization. by @pyavitz in armbian/build#10880BPI-M4-Zero: U-Boot: Drop HACK: sunxi: gpu enable. by @pyavitz in armbian/build#10881bring USERPATCHES_PATH back into working state and fix inconsistencies. by @EvilOlaf in armbian/build#10776bsp: refresh the release checksum after version changes. by @khaliforce in armbian/build#10909build-framework: document OCI storage and OCI_PROXY. by @igorpecovnik in armbian/documentation#1445bump rockchip armhf edge kernel to 7.3. by @paolosabatino in armbian/build#10864cache services: publish on the host and local containers only by default. by @igorpecovnik in armbian/configng#1043chunk workflows: export the runner's oci_cache as OCI_PROXY. by @igorpecovnik in armbian/ci#83ci: expand kernel defconfigs before the security check. by @igorpecovnik in armbian/build#10897contribute/datacenter: add infra repo screenshot to gallery. by @igorpecovnik in armbian/documentation#1507contribute/datacenter: add rack photo gallery. by @igorpecovnik in armbian/documentation#1503contribute/datacenter: correct console server port count. by @igorpecovnik in armbian/documentation#1508create AGENTS.md. by @EvilOlaf in armbian/build#10843d1: backport the RISC-V clocksource rating fix. by @khaliforce in armbian/build#10886d1: enable RTL8723DS Wi-Fi and fix regulatory database support. by @khaliforce in armbian/build#10887data: fail closed when a mirror is unreachable, not silently short. by @igorpecovnik in armbian/armbian.github.io#447docker_publish_local: use the default when BIND_ADDRESS has no address. by @igorpecovnik in armbian/configng#1045docs: link app pages to the install steps. by @igorpecovnik in armbian/configng#1049extension: add interactive shell. by @EvilOlaf in armbian/build#10879extensions: arm64-compat-vdso: fix the riscv64 host handling. by @iav in armbian/build#10869feat: Add Seeed Studio reComputer RK3576 Module devkit dts. by @Lesords in armbian/linux-rockchip#570fix customize-image and config-example . by @EvilOlaf in armbian/build#10878generate-servers-jsons: include VMs tagged "github runner". by @igorpecovnik in armbian/armbian.github.io#476getting-started: document armbian-debug; fix armbian-upgrade wording. by @igorpecovnik in armbian/documentation#1428git: don't hard-abort when the global safe.directory write fails. by @xsalaices in armbian/build#10845git: fetch trustedfirmware.org shared submodules from GitHub mirrors. by @igorpecovnik in armbian/build#10877gl-mt2500: use lowercase vendor slug gl.inet. by @igorpecovnik in armbian/build#10895helios4: u-boot: drop obsolete patches. by @iav in armbian/build#10883imx8m, imx93, imx8ulp: fetch NXP firmware from armbian/nxp-firmware. by @igorpecovnik in armbian/build#10868kernel-debs: headers: depend on python3-minimal. by @iav in armbian/build#10846kickpi-k2b-v2: add KickPi K2B V2.2 DDR3 board (DDR3 u-boot defconfig, DTS, WiFi watchdog). by @Novice-PG in armbian/build#10902main-config: cause error when lib.config is present. by @EvilOlaf in armbian/build#10876mainline: bump to 7.3-rc6. by @EvilOlaf in armbian/build#10914mangopi-mq: fix board configuration and clock handling. by @khaliforce in armbian/build#10908mangopi-mq: replace bundled boot firmware with source builds. by @khaliforce in armbian/build#10888meson-gxm-c400-plus: enable front panel display. by @jomadeto in armbian/build#10903meson64-6.12: rebase the old aiu HDMI codec patch onto 6.12.111+. by @iav in armbian/build#10898meson64-7.2: fix due to upstream changes broken patch. by @EvilOlaf in armbian/build#10890mkdocs: cache-bust extra_css with a version query. by @igorpecovnik in armbian/documentation#1506module_redis: opt-in cache mode (REDIS_MAXMEMORY). by @igorpecovnik in armbian/configng#1038module_tuning_profile: apply was undoing its own swappiness. by @igorpecovnik in armbian/configng#1039mvebu64: fetch TF-A from its GitHub mirror. by @igorpecovnik in armbian/build#10866network: abort static IP setup on dialog cancel instead of crashing netplan. by @xsalaices in armbian/configng#1040oci: configurable OCI storage and read-only OCI_PROXY. by @igorpecovnik in armbian/build#10860Odroidxu4 wifi adjustment. by @EvilOlaf in armbian/build#10875orangePi CM5 USB3 enhancement + exprimental mode. by @ECO1AI in armbian/build#10904pack-debian: publish the repository with Acquire-By-Hash. by @igorpecovnik in armbian/scripts#94patching: let a userpatch override the same-named core patch. by @iav in armbian/build#10884pkg_remove: use purge instead of autopurge to stop cascade removal. by @xsalaices in armbian/configng#1037Radxa Rock 2A/2F mainline. by @lukaszsobala in armbian/build#10852redirector: torrent check needs proof before reporting in sync. by @igorpecovnik in armbian/armbian.github.io#474redirector: verify mirror sync by file-probe, not directory mirroring. by @igorpecovnik in armbian/armbian.github.io#471repo management: adopt the production (singlemode) repo.sh into main. by @igorpecovnik in armbian/build#10304repo: publish with Acquire-By-Hash. by @igorpecovnik in armbian/build#10911repository update: publish stable only every STABLE_REPOSITORY_UPDATE days. by @igorpecovnik in armbian/armbian.github.io#472repository update: use repo.sh from build main. by @igorpecovnik in armbian/armbian.github.io#473rockchip64-7.2: media: rkvdec: Add VP9 support for VDPU381 variant (v1). by @rpardini in armbian/build#10874rockchip64: 7.3: helios64: Wake-on-LAN through the PHY. by @iav in armbian/build#10865rockchip64: copy the RK3562 patch set from 7.2 to 7.3. by @retro98boy in armbian/build#10863rockchip: rk3506: fix RockUSB full-speed enumeration data abort. by @stevenjoezhang in armbian/build#10833runner-clean: export the runner's oci_cache as OCI_PROXY. by @igorpecovnik in armbian/actions#43runner-cleanup: keep build-cache service images. by @igorpecovnik in armbian/configng#1048runner-cleanup: never wipe _work of a runner with a live job. by @igorpecovnik in armbian/configng#1050software: add registry-cache, a read-only cache of ghcr.io. by @igorpecovnik in armbian/configng#1044software: explain how to install an app. by @igorpecovnik in armbian/documentation#1504software: stop offering Watchtower install, keep Disable. by @xsalaices in armbian/configng#1041sophgo-sg200x-aic8800: fetch the driver only when the kernel builds. by @igorpecovnik in armbian/build#10847sophgo-sg200x-aic8800: keep the 7.3 RoC cookie in the RoC element. by @lukaszsobala in armbian/build#10854sun60iw2: fix GPU userspace install ELOOP on headless builds. by @ijiki16 in armbian/build#10882sun60iw2: GPU, desktop and hardware video decode for Orange Pi 4 Pro. by @ijiki16 in armbian/build#10835sun60iw2: keep the Dirty Frag mitigation over the Armbian default. by @igorpecovnik in armbian/build#10912sun60iw2: kernel config: modulize drivers, add wireguard, mitigate dirty frag. by @EvilOlaf in armbian/build#10871sunxi-7.2: drop patch upstreamed with v7.2.9. by @EvilOlaf in armbian/build#10889sunxi: add Maxio MAE0621 PHY driver (KickPi K2B V2.2 DDR3 ethernet fix). by @Novice-PG in armbian/build#10894sunxi: recore: add device trees for Recore A5-A8. by @eliasbakken in armbian/build#10850sunxi: recore: update U-Boot and put BL31 in DRAM. by @eliasbakken in armbian/build#10853tests: skip stable switch on forky, disable redis and portainer tests. by @igorpecovnik in armbian/configng#1051u-boot: report SPL/TPL size against CONFIG_*_MAX_SIZE. by @igorpecovnik in armbian/build#10858uefi-x86-6.18: rebase i915 4-lane quirk patch for 6.18.55. by @igorpecovnik in armbian/build#10891View the full article
-
[Armbian newsletter] - Armbian Newsletter September 2026
Welcome to the latest Armbian Newsletter: your source for the latest developments, community highlights, and behind-the-scenes updates from the world of open-source ARM and RISC-V computing. JetHome boosts Armbian CIJetHome (Shenzhen JetHome Technology Co.) donated a build server for Armbian. The server compiles Armbian images, kernels and U-Boot packages. Thank you, JetHome. HW Specifications CPU 2 × Intel Xeon Gold 6148, 80 threads Memory 384 GB Storage 3.84 TB SSD, plus 20 TB of disk Network 2 × 1Sponsored Github HighlightsThis week’s work centers on Rockchip platform maturation, kernel and toolchain modernization, and board-level enablement across vendors. Rockchip received the largest share of attention, with RK3528 gaining a thermal driver, cooling-map refinements, and cleanup of legacy PCIe and pmdomain workarounds. The Radxa E24C now stores its U-Booting every board, every nightArmbian builds for hundreds of boards. A kernel bump that is clean on one SoC can leave another unbootable and no build log will tell you. So there is a rack, and the rack boots them. Compiling is not evidence. A kernel that builds, packages that install, an image thatMali GPU with LiteRT-LMRunning Gemma 4 E2B on a Mali GPU with LiteRT-LM This guide should work on any armbian minimal/console (trixie) system with a working Mali-g610 GPU. DO NOT USE DESKTOP Verified on: Orange Pi 5 Max (Rockchip RK3588, Arm Mali-G610 MC4), Armbian/Debian 13 (trixie), aarch64, 8View the full article
-
[Armbian newsletter] - Booting every board, every night
Armbian builds for hundreds of boards. A kernel bump that is clean on one SoC can leave another unbootable and no build log will tell you. So there is a rack, and the rack boots them. Compiling is not evidence. A kernel that builds, packages that install, an image that flashes — none of it proves a board comes back after reboot. Armbian supports a very large number of boards across a dozen vendors and twenty SoC families, maintained largely by volunteers who each own one or two of them. The failure mode that hurts is not a broken build. It is a change that builds perfectly and quietly bricks the boot path on hardware nobody happened to have on their desk that week. The automated test facility exists to close that gap. It is a rack of real boards, wired for remote power, that installs what Armbian published and then tries to use it: upgrade, switch kernel branches, reboot repeatedly, measure, report. What follows is what it does today, the hardware it takes to run, where AI fits into maintaining the stack around it, and the change we want to make next: moving hardware validation from nightly builds to pull requests. What is in the rackFleet composition, as recorded in inventory 65 Boards under test 62 Distinct models 22 Vendors 20 SoC families The boards are the point, and the spread is deliberate. Rockchip, Amlogic, Allwinner, NXP, Marvell, Broadcom, TI, Samsung, Qualcomm, SpacemiT and x86 are all represented, because that is where the differences live; a change to a shared kernel config lands differently on rockchip64 than on meson64, and only one of them will tell you so. Vendors currently on the bench include Radxa, FriendlyELEC, Khadas, Orange Pi, Banana Pi, Odroid, Raspberry Pi, Pine64, SolidRun, Mekotronics, Kobol, Cubietech, Udoo, Inovato and Arduino. Of the 65, 56 are active and 9 are in a failed state at the moment article was done boards that need a hand in the rack. That number is itself a signal: a board that has stopped answering is a board that stopped being able to report, which is usually more interesting than a test that merely failed. Every board is registered in NetBox, which is the source of truth for the whole system. Not just an asset list the orchestrator reads it to decide what a board can be tested with. Power is derived from cabling topology rather than a field someone typed: a board's power port is cabled to an outlet on a controller device, and the controller carries the driver. If the cable is not in the model, the board is treated as having no managed power, and the tests that need a hard power cut are skipped rather than faked. The hardware it takesPer bench, and the shared infrastructure behind it The cost of adding a board is not the board. It is the wiring around it. Each bench needs some subset of the following, and which subset a board has determines which tests it is eligible for. Remote power Required A way to cut and restore power without a human. Three backends are in use: PoE switch ports for anything powered over Ethernet, a switched rack PDU for mains devices, and a 24-channel relay board driven over GPIO for DC-barrel and USB-powered boards. Without this there is no cold-boot test, only a soft reboot which is exactly the case that tends to pass while the real one fails. Network Required Wired Ethernet on a managed switch. This is the control channel (the harness drives boards over SSH), the measurement channel for throughput tests, and on PoE benches, the power channel too. A board that only has Wi-Fi is testable but much harder to recover. Power metering Strongly recommended PoE ports meter per-port draw, so the harness samples watts throughout a run. This is how you tell a board that genuinely rebooted from one whose SoC never stopped executing the power trace is flat across what was supposed to be a power cycle. Serial console Recommended USB-to-TTL adapters on a powered hub, exposed over the network as named consoles. Without one, a board that fails to boot tells you nothing at all: you get silence and have to guess. Several boards in the rack currently lack one, and every hang on those is an investigation that stalls at "it does not come back". Clean-flash path Not yet wired An SD-card switcher that presents the card to a flasher host or to the board, or USB access for vendor recovery modes. This is what makes a board recoverable from software that does not boot. The framework supports it; no bench in the rack is currently wired for it, which is the single biggest constraint on what comes next. Behind the benches sits the shared infrastructure, the part people underestimate when they picture "a few boards on a shelf": Switching. Three core switches and four access switches, several of them PoE, which do double duty as the fleet's power controllers. Between them they carry the control network, the test traffic and the power for a large fraction of the boards. This is no longer just a 1 GbE network: newer boards increasingly come with 2.5 GbE, while the uplinks and core need 10 GbE to aggregate traffic from many boards running tests in parallel. Without that headroom, the lab network itself becomes the bottleneck and network-performance results stop measuring the board under test.Power delivery. A switched rack PDU, multi-channel DC supplies, multiple 16-way USB supply, switched power strips, and a UPS in front of all of it because a lab that loses power mid-write is a lab that corrupts SD cards.Console and out-of-band. Dedicated console hosts, including a KVM device for the machines that need screen-level access.Compute. Six servers in the same site, including two Ampere-class ARM machines, running the CI runners that execute the build and test jobs and the services the fleet depends on.All of it is scripted. Each class of hardware has a small command-line tool with the same shape — status, on, off, powercycle so the harness does not care whether a board is switched by a PoE port, a PDU outlet or a relay channel. It resolves the path from the inventory model and calls whichever tool matches. What a nightly run doesThe cycle, end to end The fleet does not stay powered. A full cycle brings it up, tests it, and puts it back to sleep. The last step runs even when everything before it failed. Power on The fleet is brought up from the PDU and the boards are given several minutes to boot.Scan and reconcile Every board is probed and the inventory updated: what version it is running, what kernel, when it was last seen. Drift between the model and reality is recorded rather than assumed away.Sync maintainer keys Board maintainers' SSH keys are pushed to the boards they own, so the person responsible for a board can log into the actual unit that failed.Run the board pipeline A matrix job per board, in parallel across the runners. This is the part below.Scan again Post-test state is captured; what the run left behind, not just what it reported.Power off Always, including after a failure. A rack left powered on a failed run is a rack that cooks.Inside step four, each board runs the same pipeline. It upgrades to the nightly repository, reboots, and then walks every kernel branch that board is configured to test: StepWhat it doesupgradePoint at the nightly repository and install what is currently published.rebootVerify that the board comes back with what it already had installed.For each branchRepeat the steps below for each kernel branch (current, edge, …).↳ kernel-switchInstall that branch's kernel and verify that it is fully configured.↳ rebootPerform warm reboots, followed by a cold power cycle where switched power is available.↳ hw-performanceTest CPU, memory, disk and temperature.↳ dvfsVerify that the governor actually reaches the frequencies it claims.↳ network-iperfMeasure throughput on each cabled network interface.↳ store-versionsRecord exactly what is installed and running.restore-stablePut the board back the way it was found. Two details in there carry more weight than they look. The reboot module does warm reboots followed by a cold power cycle, because those fail differently: a board can survive reboot indefinitely and still not come back from a real power cut. Testing both is the only way to catch both failure modes. And kernel-switch verifies that the package is genuinely configured rather than trusting an exit code, because the interesting failures can leave a kernel half-installed while every command reports success. What the results look like Current results are published publicly at docs.armbian.com/status/board-tests, refreshed as runs complete. What it actually catchesHere are few examples from recent runs. Reboots that hang on both kernelsOne board fails every reboot attempt on both of its kernel branches. The power trace shows the draw holding steady through what should have been a restart — the SoC never stopped executing. That points at firmware rather than the kernel, but the issue remains unresolved. It is also a good example of the console gap: that bench has no serial console, so the investigation is relying on power measurements and inference instead of a boot log. A test that was wrong about x86The frequency-scaling check assumed that a governor under load should reach at least 95% of the maximum advertised frequency. That works for ARM cpufreq, but not for Intel and AMD, where the driver manages turbo behaviour itself and the advertised maximum is not a promise. Every x86 board was therefore failing a test that was itself wrong. The test was fixed by detecting the driver and applying the check only where it makes sense. Telling a broken board from a broken runnerSelf-hosted runners occasionally drop mid-job: the test finishes green, then the job dies later and the run is marked failed. Retrying everything would be wrong. A board pipeline power-cycles hardware and takes about half an hour, so retrying a genuine failure wastes rack time and keeps cycling a board that may already be unwell. The retry logic therefore re-runs only jobs whose test step did not fail. A real hardware or test failure stays red rather than being hidden by an automatic retry. Where AI fitsAnd where it explicitly does not A large share of the tooling described here — the test modules, hardware control scripts, inventory reconciliation and documentation — is now written and maintained with AI assistance. That is worth being plain about, including the parts that go wrong. What AI is genuinely good at is shortening the distance from symptom to candidate explanation. A board fails; there is a transcript, a package state, a power trace, a kernel version and forty thousand lines of shell across several repositories. Correlating those quickly, proposing a mechanism and drafting a patch is work that used to take an evening and can now take a few minutes. What it is bad at is knowing when it is wrong. In the course of this work, an analysis confidently concluded that a particular board had never appeared in the test results. The conclusion came from a sample that covered about three-quarters of the archive and happened to miss both of that board's records. The reasoning was sound; the evidence was partial; nothing in the output said so. The pointAI shortens the distance from symptom to patch. It does not shorten the distance from patch to proof. Those are different problems, and only one of them has been made easier. That is precisely why the rack matters more now, not less. If proposing changes gets cheaper while validating them does not, the amount of unverified change grows faster than our ability to verify it. And the most dangerous bugs here are exactly the ones that compile cleanly, install without error, and fail only when a specific board is asked to come back from a power cut. A machine that is confidently wrong is a fine collaborator as long as something downstream can check it. Sixty-five boards that will actually try to boot are that something. So the working rule is simple: AI is free to propose anything, but nothing reaches a board on its say-so. Hardware evidence is the gate, and every conclusion that matters is expected to point at a run, a trace or a package state rather than an argument. What is next: validation at pull-request timeThe change we want to make Today the facility validates nightly builds. Whatever was published overnight gets installed on real hardware and exercised. That is genuinely useful, and it is how the bugs above were found, but it is validation after the fact. By the time a board fails, the change is already in the nightly repository and, depending on timing, already on users' machines. The goal is to move that gate earlier: a pull request that touches a board family gets that family's boards booted before it merges. Not the whole rack for every PR, just the boards the change can actually reach. Several things have to be true first, and they are worth stating honestly rather than as a roadmap of solved problems. SelectionA diff has to map to boards. A change to a board configuration file implicates that board; a change to a kernel family implicates every board in it; a change to the packaging code implicates everything. Select too broadly and every PR occupies the entire rack for half an hour. Select too narrowly and the one board that would have caught the regression never gets tested. ArtifactsA PR build currently proves a compile. Hardware testing needs installable packages the rack can pull and install exactly as a user would, which means PR builds must publish to an isolated repository the fleet can reach. Our current build machinery is already stretched by existing CI and release workloads. Making hardware testing part of routine PR validation will require additional build capacity, storage and package-publishing infrastructure. Time budgetA full board pipeline takes around thirty minutes. That is acceptable overnight and much too slow as a merge gate, particularly when a nightly cycle already has the rack. This needs a short profile for PRs: install, switch kernel, reboot warm and cold, and confirm it is running what was installed. Performance and throughput work can stay in the nightly run. It also needs real contention handling, so a PR does not simply queue behind a fleet cycle. RecoveryThis is the hard one, and it is a hardware problem rather than a software one. Testing unmerged code means occasionally installing a kernel that does not boot. Right now every bench in the rack is tested in place; there is no remote path to reflash a board whose boot is broken. A board that a bad PR bricks is a board that stays bricked until somebody walks to the rack. So PR-stage testing starts on benches that can be recovered remotely: SD-card switchers for boards that boot from removable media, and vendor recovery modes over USB for those that support it. Wiring that up across the fleet is the prerequisite that gates everything else, and it is where the next round of hardware effort goes. Boards that cannot be recovered remotely stay on nightly testing, where a failure is an inconvenience instead of a dead unit. Signal qualityA merge gate that fails for reasons unrelated to the change is worse than no gate: it trains people to ignore it. The distinction between a board failure and a broken bench, already important for nightly runs, becomes critical the moment a red result blocks a merge. HelpingInfrastructure, capacity, partnerships There are three practical ways to move this forward. Bench infrastructure. Remote recovery is the immediate blocker for PR-stage testing, particularly SD-card switchers and the wiring around them. The network also needs to grow with the hardware being tested: managed PoE switches with 2.5 GbE access ports and 10 GbE uplinks, plus PoE splitters for boards that cannot be powered directly over Ethernet. These are not just infrastructure upgrades; they expand what can be tested, measured and recovered without somebody standing in front of the rack. Build capacity. PR-stage hardware testing needs PR builds, and build queue time is already a constraint on how quickly a fix reaches hardware. More build capacity, storage and package-publishing infrastructure are needed to move validation from nightly runs into the pull-request workflow. If you can host a build server, the requirements are documented, and the current fleet is listed on the build machinery page. Hardware partnerships. For vendors, the facility provides a way to keep hardware under continuous validation rather than testing it once around release. Devices covered by support and maintenance agreements can become part of the permanent test fleet, where kernel updates, upgrades, reboots, networking and other regressions are exercised on real hardware as Armbian evolves. The value is not the board itself; it is keeping that board working over its supported lifetime. View the full article
-
[Armbian newsletter] - JetHome boosts Armbian CI
JetHome (Shenzhen JetHome Technology Co.) donated a build server for Armbian. The server compiles Armbian images, kernels and U-Boot packages. Thank you, JetHome. HW Specifications CPU 2 × Intel Xeon Gold 6148, 80 threads Memory 384 GB Storage 3.84 TB SSD, plus 20 TB of disk Network 2 × 1 Gbit/s, bonded Build runners 40 That is about a tenth of the fleet's capacity, running up to 3 kernel or 40 full image builds at once. The server also remembers work it has already done: Compiled code is reused. A rebuild takes under a minute instead of three.Software packages are downloaded once and shared by all 40 build jobs.Source code and ready-made parts, such as kernels, are fetched once and kept on the server.The fleet today18 build servers · 774 CPU threads · 322 build runners With 2371 GB of memory across x86-64 and ARM servers. Part of the fleet sleeps and powers up only when builds are waiting. Current build servers are sponsored by JetHome, the OSU Open Source Lab and netcup. Armbian members sponsor all other servers. See the live list on the build machinery page. We need more build servers!More servers mean more than more boards. We want faster CI, and more building and testing of every pull request, so community developers get feedback sooner and fixes reach users faster. Today the build queue is longer than it should be. Minimum Ideal CPU 16 cores 32 cores Memory 64 GB 128 GB Storage (NVMe) 512 GB 1 TB Upload 50 Mbit/s 1 Gbit/s Both x86-64 and arm64 help. The server runs only Armbian builds, and we credit your hosting on the build machinery page. Spare CPU cores and a fast uplink? Put them to work compiling Armbian for hundreds of boards. Donate build capacity View the full article
-
[Armbian newsletter] - Mali GPU with LiteRT-LM
Running Gemma 4 E2B on a Mali GPU with LiteRT-LMThis guide should work on any armbian minimal/console (trixie) system with a working Mali-g610 GPU. DO NOT USE DESKTOP Verified on: Orange Pi 5 Max (Rockchip RK3588, Arm Mali-G610 MC4), Armbian/Debian 13 (trixie), aarch64, 8 GB RAM. Status summary: Both CPU (XNNPACK) and GPU (WebGPU/Dawn → Vulkan → panvk → panthor) work on the mainline panthor kernel — numbers below. The GPU path needed one line of local patching in Mesa's panvk driver (raise maxImageDimension3D 512 → 2048 to meet the WebGPU minimums that LiteRT's Dawn library enforces; recipe in §5, rationale in §7.1). The model is multimodal (Text + Vision + Audio): the vision encoder runs on the same patched panvk via--vision-backend gpu (§5 "VL path" results). The vendor Rockchip libmali route and OpenCL remain unavailable on mainline panthor (§7.2, §7.3). Stack (as shipped): Gemma 4 E2B (.litertlm, int4) → LiteRT-LM CLI → LiteRT GPU accelerator (WebGPU/ML Drift) Dawn (WebGPU impl) → Vulkan → panvk → panthor (kernel) → Mali-G610 1. PrerequisitesARM (aarch64) Linux with a Mali GPU and at least 8 GB RAM.Armbian/Debian 13 (trixie)The panthor (or panfrost for older Mali) kernel driver active:ls /dev/dri/renderD128 # render node must exist lsmod | grep panthor # or panfrost / lima Full ARMv8.2-A dotprod support is required — LiteRT's ARM64 binaries are built with it and will SIGILL otherwise:lscpu | grep -w asimddp (both A55 and A76 cores list it here). 2. Install Mesa + Vulkan for Mali (needs root)sudo apt update # Prefer the newest Mesa (backports on Debian) for the best panvk coverage of Valhall CSF GPUs: sudo apt install -y -t trixie-backports mesa-vulkan-drivers libvulkan1 vulkan-tools # Optional (see §7 — currently yields NO usable OpenCL device on panthor): sudo apt install -y -t trixie-backports mesa-opencl-icd clinfo Verify the GPU is visible to Vulkan: vulkaninfo --summary | grep -iE "deviceName|driverName" # Expect: deviceName = Mali-G610 MC4 driverName = panvk 3. Install the LiteRT-LM CLI (user space, no root)curl -LsSf https://astral.sh/uv/install.sh | sh export PATH="$HOME/.local/bin:$PATH" uv tool install litert-lm # current: v0.17.x; incl. CPU (XNNPACK/YNNPACK) + GPU (WebGPU/Vulkan) backends 4. Get the model (Gemma 4 E2B, int4 .litertlm, 2.58 GB)mkdir -p ~/litert-lm-bench && cd ~/litert-lm-bench curl -L -o gemma-4-E2B-it.litertlm \ https://huggingface.co/litert-community/gemma-4-E2B-it-litert-lm/resolve/main/gemma-4-E2B-it.litertlm # or have the CLI fetch it for you: # litert-lm benchmark --from-huggingface-repo litert-community/gemma-4-E2B-it-litert-lm gemma-4-E2B-it.litertlm Other ready models: google/gemma-3n-E2B-it-litert-lm (gemma-3n-E2B-it-int4.litertlm),litert-community/gemma-4-E4B-it-litert-lm, ... (see litert-lm list / HF). 5. BenchmarkLock the CPU governor to performance first (fair, repeatable numbers): sudo sh -c 'for c in /sys/devices/system/cpu/cpu[0-7]/cpufreq/scaling_governor; do echo performance > $c; done' CPU baseline (XNNPACK, 8 threads): litert-lm benchmark ~/litert-lm-bench/gemma-4-E2B-it.litertlm \ -p 1024 -d 256 --backend cpu --cpu-thread-count 8 --cache disk --runs 2 GPU (patched panvk, §7.1). One-time local Mesa build — stays entirely in userland, the system Mesa is untouched: # 1) Mesa source + one-line patch (26.1.2) cd ~/litert-lm-bench curl -L -o mesa.tar.xz https://archive.mesa3d.org/mesa-26.1.2.tar.xz tar -xf mesa.tar.xz && cd mesa-26.1.2 python3 - <<'PY' p = 'src/panfrost/vulkan/panvk_vX_physical_device.c' s = open(p).read() s = s.replace('.maxImageDimension3D = PAN_ARCH <= 10 ? (1 << 9) : (1 << 14),', '.maxImageDimension3D = (1 << 11), /* 2048 — meets WebGPU min */') open(p, 'w').write(s) PY # 2) build deps (the LLVM/CLC chain is required — panvk bakes CLC-compiled SPIR-V for libpan) sudo apt install -y --no-install-recommends meson ninja-build pkg-config gcc g++ python3-mako \ python3-yaml python3-ply libdrm-dev llvm-19-dev libllvmspirvlib-19-dev spirv-tools \ libclang-19-dev libclang-cpp19-dev # 3) panvk-only build (~10–25 min on the 5 Max) meson setup build-panvk -Dvulkan-drivers=panfrost -Dgallium-drivers= -Dbuildtype=release \ -Dllvm=enabled -Dmesa-clc=auto -Dplatforms= -Degl=disabled -Dgbm=disabled -Dglx=disabled \ -Dopengl=false -Dglvnd=disabled -Dtools= -Dbuild-tests=false ninja -C build-panvk -j6 # 4) benchmark with the patched driver, process-scoped. First put the WebGPU prebuilts # (libLiteRtTopKWebGpuSampler.so + libwebgpu_dawn.so etc., litert-lm repo tag v0.17.1, # prebuilt/linux_arm64) in ~/litert-lm-bench/prebuilt_v0171/ — see Troubleshooting. export BUILD=~/litert-lm-bench/mesa-26.1.2/build-panvk export VK_ICD_FILENAMES="$BUILD/src/panfrost/vulkan/panfrost_devenv_icd.aarch64.json" export LD_LIBRARY_PATH="$BUILD/src/panfrost/vulkan:$HOME/litert-lm-bench/prebuilt_v0171" export PATH="$HOME/.local/bin:$PATH" # uv-installed CLI litert-lm benchmark ~/litert-lm-bench/gemma-4-E2B-it.litertlm \ -p 1024 -d 256 --backend gpu --cache disk --runs 2 First GPU run compiles the WebGPU/Vulkan shaders (one-time) and uploads GPU-rearranged weights (~0.8 GB weight cache); --cache disk persists both next to the model, so later loads start fast — the compile cost is NOT repaid on every run. Results on this Orange Pi 5 Max (Mali-G610 MC4) Backend Prefill (tk/s) Decode (tk/s) TTFT (s) CPU (XNNPACK, 8 threads) 123.6 12.3 8.4 GPU (WebGPU/Dawn→Vulkan, patched panvk §5/§7.1) 374.0 8.7 2.9 Google's on-device-class references for Gemma 4 E2B: S26 Ultra GPU 3808/52 tk/s, Raspberry Pi 5 CPU 133/7.6 tk/s. On this board the GPU wins the prefill race by ~3.0× (374 vs 124 tk/s) and TTFT by ~2.9× (2.9 vs 8.4 s), while decode stays on the CPU's side (8.7 vs 12.3 tk/s) — as expected, decode is the bottleneck on Mali-class hardware; the Mali GPU is a prefill/TTFT accelerator here, not a decode accelerator. GPU clock note (measured, no guesswork): the Mali-G610 is an integrated GPU sharing the board's DDR. The devfreq governor (simple_ondemand, stock) boosts it to 1 GHz under load and parks it at 200 MHz idle — confirmed by sampling cur_freq at 400 ms during the run (233/263 samples at 1000 MHz, temps 41→56 °C, no thermal trip). Leave the governor alone: forcingperformance/min/max via sysfs was counterproductive (idle readbacks that look like the clock collapsed, and it destabilized perfectly good runs). The numbers above are at the stock governor's real 1 GHz boost. Results: Gemma 4 E4B (4B) — text GPU via the web flavor, vision GPU straight from stockE4B (the 4B sibling) ships as three files in the HF repo: the stock gemma-4-E4B-it.litertlm (text+vision+audio, 3.66 GB) plus an -gpu and a -web (text-only, 2.97 GB) variant. On this 8 GB board the stock file cannot run on the GPU — two structural walls, both measured: panthor job watchdog: a fixed one-shot pipeline dispatch (dmesg: job timeout ... seqno=144, same job on every E4B attempt) exceeds the driver's compiled-in 1 s job timeout even at the real 1 GHz boost (E2B's equivalent is seqno=77 and fits). The GPU is reset, Dawn reports VK_ERROR_DEVICE_LOST, generation aborts. 8 GB RAM ceiling: GPU buffers (pinned, unrescalable shmem) peak near 4–5 GB on top of the 3.66 GB model; every run ended in a global OOM-kill (EXIT=137) during iteration 2 even with a 2048-token KV cap + ringbuffers + disk cache. The -web flavor dodges both — its finer op layout splits the killer dispatch under the 1 s bar and shrinks the GPU working set (peak 4.3 GB observed, holds 1 GHz the whole run): Gemma 4 E4B lane Flavor Prefill (tk/s) Decode (tk/s) TTFT (s) CPU (XNNPACK, 8 threads) stock 52.6 5.58 19.6 GPU (patched panvk) web (text-only) 75.1 4.54 13.9 (reproducible to the decimal across --runs 2; init 6.2 s; note --cache disk does not persist for the web flavor — expect a recompile each run. --speculative-decoding true gave no gain:4.37 vs 4.54 tok/s decode (this build ships no draft model).) Reference: Raspberry Pi 5 (16 GB, CPU) 51/3.2/20.5 — this board matches or beats it on every column. Same shape as E2B: GPU wins prefill +1.4× and TTFT 19.6→13.9 s, but decode stays CPU-favored (4.5 vs 5.6 tk/s). E4B vision (VL) on GPU works — cpu text + gpu visionThe stock E4B's vision encoder is a separate 1477-op subgraph that fits under the panthor watchdog and inside 8 GB even though the full stock model's text lane does not. Drive it via the Engine API (this repo's vl_bench.py --model ...), LLM lane = CPU, vision encoder = GPU (patched panvk): the test image (resized to 912×672 → 2394 patches, near E4B's max_num_patches 2520) is encoded on the Mali. E4B VL (LLM lane = cpu) vision cpu vision gpu (patched panvk) TTFT (s) 12.3–12.5 9.6 Decode (tok/s) 7.33–7.37 7.28–7.39 Reply (same image) "coyote walking on a dirt path" identical Text-only CPU control: TTFT ≈ 2.0 s (7-token prompt, decode ~7.8 tok/s). Isolated vision-encode cost: ~10.4 s CPU vs ~7.6 s GPU — the Mali cuts E4B vision latency by ~2.9 s/image (~27%). No watchdog hits, no OOM (peaks well below ceiling; vision weights are a fraction of a GB). Same conclusion as E2B: for vision work keep the LLM on CPU and let the GPU run the encoder. # 1. SET ENVIRONMENT FOR GPU VISION DELEGATE export LITERT_VISION_DELEGATE=gpu # 2. RUN VL HARNESS FOR STOCK GEMMA-4-E4B ~/.local/share/uv/tools/litert-lm/bin/python vl_bench.py \ --text cpu \ --vision gpu \ --image \ --iters 3 \ --model gemma-4-E4B-it.litertlm# Ensure directory exists and download model mkdir -p ~/litert-lm-bench curl -L -o ~/litert-lm-bench/gemma-4-E4B-it-web.litertlm \ https://huggingface.co/litert-community/gemma-4-E4B-it-litert-lm/resolve/main/gemma-4-E4B-it-web.litertlm # Execute benchmark with standard LiteRT-LM flags litert-lm benchmark ~/litert-lm-bench/gemma-4-E4B-it-web.litertlm \ --backend=gpu \ -p 1024 \ -d 256 \ --runs 2Results: VL (vision) pathThe benchmark sub-command only benches the text path. To time the vision encoder, drive the same engine via the Python API (vl_bench.py in this directory) — it loads the model, streams a real image (test_multi.jpg, httpbin.org/image/jpeg) + text through vision_backend=cpu|gpu and prints TTFT (vision encode + prefill + first token), per-chunk decode rate, and the reply. One sentence prompt, 13-token answer, ~290-token total prefill (280 vision + text), generations deterministic (temperature=0). Medians over 3+ runs after compile: Combo (text / vision) VL TTFT (s) Decode (tok/s) Reply matches CPU? cpu / cpu 8.93–9.40 17.4 baseline cpu / gpu (patched panvk) 6.16–6.62 17.2 yes, identical gpu / gpu (patched panvk) 5.62–6.16 9.8 yes, identical Text-only controls (7-token prompt): CPU TTFT ≈ 0.8 s, GPU TTFT ≈ 0.57 s. Isolating the vision cost (VL TTFT − text-only TTFT for the same text backend): ~8.1 s on a CPU vision encoder vs ~5.4 s GPU — the Mali GPU cuts vision-encoder latency by ~2.7–3 s per image (~30%), and the full-GPU combo is ~37% faster end-to-end (5.6 vs 8.9 s). The patched panvk covers the model's separate VISION_ENCODER subgraph too (no extra Dawn limits tripped). Caveat: for short generations (< ~20 tokens) GPU decode is slower than CPU (9.8 vs 17.4 tok/s) — per-iteration GPU sync overhead — so for chatty/VL replies the CPU text lane with GPU vision is often the best mix (6.2 s TTFT, CPU-fast decode). Benchmarking the VL path yourself# 1. FETCH SAMPLE TEST IMAGE curl -sL -o ~/litert-lm-bench/test_multi.jpg https://httpbin.org/image/jpeg # 2. SET PYTHON INTERPRETER PATH VL_PY=~/.local/share/uv/tools/litert-lm/bin/python # 3. BASELINE: TEXT (CPU) + VISION (CPU) $VL_PY ~/litert-lm-bench/vl_bench.py --text cpu --vision cpu --image --iters 3 # 4. HYBRID: TEXT (CPU) + VISION (GPU) — EXPORT PANVK MESA ENVS FIRST export BUILD=~/litert-lm-bench/mesa-26.1.2/build-panvk export VK_ICD_FILENAMES="$BUILD/src/panfrost/vulkan/panfrost_devenv_icd.aarch64.json" export LD_LIBRARY_PATH="$BUILD/src/panfrost/vulkan:$HOME/litert-lm-bench/prebuilt_v0171" $VL_PY ~/litert-lm-bench/vl_bench.py --text cpu --vision gpu --image --iters 3 # 5. FULL ACCELERATION: TEXT (GPU) + VISION (GPU) $VL_PY ~/litert-lm-bench/vl_bench.py --text gpu --vision gpu --image --iters 3 # 6. TEXT-ONLY CONTROLS (ISOLATE VISION-ENCODER COST) $VL_PY ~/litert-lm-bench/vl_bench.py --text cpu --iters 3 $VL_PY ~/litert-lm-bench/vl_bench.py --text gpu --iters 3 Prints per-iteration TTFT / decode tok/s / reply. Run cases sequentially — parallel GPU runs contend for the Mali GPU and inflate the numbers (observed 2× TTFT when two ran at once). 6. Inference# 1. DIRECT CLI EVALUATION litert-lm run ~/litert-lm-bench/gemma-4-E2B-it.litertlm \ --cache disk --prompt "What is the capital of France?" # 2. INTERACTIVE REPL MODE litert-lm run ~/litert-lm-bench/gemma-4-E2B-it.litertlm # 3. OPENAI-COMPATIBLE API SERVER litert-lm serve ~/litert-lm-bench/gemma-4-E2B-it.litertlm Vision (and audio) input uses run with attachments — one per --attachment, placed before the first user text (images and audio can be mixed): litert-lm run ~/litert-lm-bench/gemma-4-E2B-it.litertlm \ --attachment ~/litert-lm-bench/test_multi.jpg \ --prompt "What is in this image? Answer in one sentence." \ --vision-backend cpu # or gpu (patched panvk, §5) — ~2.7–3 s faster vision encode --vision-backend/--audio-backend pick the encoder lane independently of --backend (which chooses the LLM lane). Like --backend gpu, --vision-backend gpu needs the §5 env (VK_ICD_FILENAMES + LD_LIBRARY_PATH) exported for that run. Notes: --cache disk persists compiled artifacts next to the model — the first GPU load compiles shaders, later loads start instantly. The load time is NOT paid on every run. Observed caches: <model>_*_mldrift_program_cache.bin (compiled kernels) and<model>_*_mldrift_weight_cache.bin (GPU-rearranged weights, ~0.8 GB). The vision encoder's kernels live in the same cache files — first GPU --vision-backend gpu run compiles, later runs reuse. GPU (patched panvk) is ~2.8× faster at prefill and ~2.7× on TTFT, but ~30% slower at decode — pick the lane by workload (§7.4). Vision: --vision-backend gpu cuts vision-encode latency by ~2.7–3 s per image; CPU text + GPU vision is the best blend for short/chatty replies (§5 VL results). Speculative decoding (--speculative-decoding true) can lift decode on CPU+GPU for rewrite/summarize/coding style prompts (Gemma 4 E2B supports it). 7. GPU deep dive: the blocker and how it was unblocked hereEverything below was reproduced with LiteRT-LM v0.17.1 (CLI + litert-lm-api), Mesa 26.1.2 (trixie-backports), kernel 7.2.4-edge-rockchip64 (mainline panthor). 7.1 The panvk limit blocker — RESOLVED with a one-line local patchLiteRT's WebGPU accelerator uses Dawn, which enforces the WebGPU spec minimums against the Vulkan driver and refuses to proceed when they are unmet. Stock panvk reports: maxImageDimension3D = 512 # WebGPU spec requires ≥ 2048 Dawn logs exactly this (PhysicalDeviceVk.cpp:794: "Insufficient Vulkan limits for maxTextureDimension3D ... must be at least 2048"), and stock panvk then dies with a null-pointer dispatch (SIGSEGV, pc=0x0) inside the WebGPU path on the first real GPU execution. The root cause is the driver limit, not packaging: the crash is identical even with the WebGPU prebuilts (libLiteRtTopKWebGpuSampler.so + friends) fetched from the litert-lm repo prebuilt/linux_arm64 @ v0.17.1 on LD_LIBRARY_PATH. The fix (validated on this board): panvk caps 3D textures at 512 for Valhall (PAN_ARCH <= 10), but the Mali-G610 hardware handles 2048³ — raising the advertised limit to 2048 makes Dawn accept the adapter: -.maxImageDimension3D = PAN_ARCH <= 10 ? (1 << 9) : (1 << 14), +.maxImageDimension3D = (1 << 11), /* 2048 — meets WebGPU min (was 512 on arch <= 10) */ Why it's safe: Dawn only validates the advertised limit against its spec minimum, and the value also caps future image allocations — so if a kernel ever genuinely requested a 2048³ 3D texture, panvk would fail cleanly at allocation instead of corrupting anything. LiteRT/ML-Drift's LLM and vision-encoder kernels allocate buffers and 2D textures only, so real GPU behaviour is unchanged; Dawn simply stops rejecting the adapter, the SIGSEGV disappears, and the full benchmark runs (§5). Confirmed via vulkaninfo on the patched build: maxImageDimension3D = 2048. All other WebGPU minimums (per-stage descriptors, workgroup sizes, buffer ranges) were already comfortably met. The build is process-scoped (VK_ICD_FILENAMES + LD_LIBRARY_PATH per run), the system Mesa is never touched, and reverting is unsetting two variables. Unless/until Mesa raises this limit upstream for Valhall, keep this build around for LiteRT-LM GPU runs. 7.2 The vendor route (Rockchip libmali) — needs a different kernelRockchip's proprietary blob would satisfy Dawn (it exposes Vulkan 1.3 with full limits), but the blob's userspace talks to Rockchip's proprietary kbase kernel driver (/dev/mali) and cannot attach to the mainline panthor driver: "libmali-valhall-g610-g13p0-gbm" → loads, exports NO Vulkan ICD (0 vk_* symbols) "libmali-valhall-g610-g24p0-gbm" libMaliVulkan.so.1 (api 1.3.276) → loads, "No mali devices found" then SIGSEGV (no /dev/mali) Installable packages exist (tsukumijima/libmali-rockchip releases, e.g. v1.9-1-20260312-bd33ee2), but they all presume the vendor kernel. Unblock: flash a vendor-kernel image (kernel with kbase/mali.ko, e.g. Armbian images with the Rockchip BSP kernel), then install libmali-valhall-g610-g13p0-gbm (or g24p0) and point Dawn/Vulkan at it (VK_DRIVER_FILES/LD_LIBRARY_PATH). That same blob also provides OpenCL 3.0 (libMaliOpenCL.so + /etc/OpenCL/vendors/mali.icd), which would additionally satisfy the "would OpenCL be faster?" curiosity — for running LLMs, both WebGPU/Vulkan and OpenCL on the same GPU land in the same class of throughput; the win is the mature compiler's fast startup, not raw speed. 7.3 OpenCL on the current kernel — not availableMesa's rusticl on panthor currently exposes zero devices (clinfo -l shows only the rusticl platform, no device). So there is no OpenCL device at all on the mainline stack, and LiteRT-LM has no Linux OpenCL accelerator anyway. 7.4 Practical advice for this board todayChat / streaming (decode-bound): CPU is the better lane — 12.3 vs 8.7 tk/s decode.Long prompts / RAG / document Q&A (prefill-bound): GPU pays off — 345 vs 124 tk/s prefill, 3.1 vs 8.4 s TTFT.Images / VL: --vision-backend gpu cuts vision-encode latency by ~2.7–3 s (~30%). Shortest VL TTFT is text+vision both on GPU (5.6 vs 8.9 s all-CPU), but keep the LLM on CPU when replies are short and chatty (6.2 s TTFT plus CPU-fast decode). --speculative-decoding true can lift decode further on both lanes (Gemma 4 E2B supports it).Serving an OpenAI-compatible endpoint (litert-lm serve)litert-lm serve exposes an OpenAI API on 0.0.0.0:9379, so LAN clients (LiteCode, opencode, aider, Continue, scripts) use the board like any OpenAI endpoint. Import a model once (litert-lm import ./gemma-4-E2B-it.litertlm, registry at ~/.litert-lm/models/), then litert-lm serve. Per-model settings come from ~/.litert-lm/config.json (default + models.<id>), so clients stay plain-OpenAI: { "default": { "backend": "cpu", "cpu_thread_count": 8, "cache": "disk" }, "models": { "gemma-4-E2B-it.litertlm": { "speculative_decoding": true, "max_num_tokens": 4096 } } } Endpoints: GET /v1/models and POST /v1/chat/completions (streaming + non-streaming). OpenAI tools / tool_choice are bridged to the model's function-calling template — verified to return valid tool_calls JSON (non-streaming and streamed) and to complete the full agent cycle (assistant tool_call → tool result → final answer). /v1/embeddings exists but is not tied to LLM models. Even though litert-lm describe reports Supports Function Call: NO for Gemma 4, the serve layer still bridges tools into the model template (empirically verified); that flag only means the CLI's interactive run has no native FC template. RAM budget (E2B, CPU): max_num_tokens preallocates KV/ringbuffer arenas up front.Measured process RSS: 4096 → ~3.1 GB (4.9 GB free — recommended), 8192 → ~7 GB (1.1 GB free — works but leaves no headroom). Keep 4096 and let clients budget. Config keys (0.15+): backend, vision_backend, audio_backend, cpu_thread_count, cache, max_num_tokens, speculative_decoding, thinking, thinking_budget, gpu_decode_steps_per_sync, sampling. CLI flags override config. For a persistent border, run under systemd. Verified client on this boardLiteCode (razvanneculai/litecode) — works end-to-end. Its Planner ({"synthesis","tasks"} strict JSON) and Executor (raw file content, no fences) prompts fit the 4096 budget; single-request task runs completed correctly and files linter-clean. litecode.json: { "provider": { "baseURL": "http://<yourIP>:9379/v1", "apiKey": "", "model": "gemma-4-E2B-it.litertlm" }, "tokenLimit": 4096, "reservedOutputTokens": 1500, "systemPromptBudget": 1000, "maxParallelExecutors": 1 } TroubleshootingFATAL ERROR: This binary was compiled with dotprod enabled... → CPU lacks FEAT_DotProd, not supported by the ARM64 prebuilt wheels. RK3588 has it. GPU benchmark errors but CPU works → with stock Mesa this is the §7.1 Dawn limit crash (maxImageDimension3D = 512); with the patched build, check vulkaninfo --summary again — panvk must list the Mali device and report maxImageDimension3D = 2048. ExportVK_ICD_FILENAMES+LD_LIBRARY_PATH for every run that should use the patched driver. Could not load shared library libLiteRtTopKWebGpuSampler.so → the CLI wheel does not bundle the WebGPU samplers; fetch them from the litert-lm repo prebuilt/linux_arm64/ at the matching version tag (e.g. v0.17.1) and export their directory on LD_LIBRARY_PATH. First GPU run is slow (one-time kernel compilation) — normal; use --cache disk so later loads skip it. Caches persist next to the model. Bigger models (e.g. stock gemma-4-E4B-it.litertlm, 3.66 GB) fail on the GPU even with the patched driver: panthor ... job timeout in dmesg (fixed 1 s driver watchdog, not tunable; the model has a one-shot dispatch that exceeds it even at the real 1 GHz boost) theVK_ERROR_DEVICE_LOST, and/or a global OOM-kill (EXIT=137) when pinned GPU buffers + the model outgrow 8 GB. E2B fits, E4B-stock doesn't. Use the text-only -web flavor (gemma-4-E4B-it-web.litertlm, 2.97 GB) for E4B-on-GPU — its finer kernels stay under the watchdog and its GPU set peaks ~4.3 GB (§5 E4B section). Join the conversation on the Armbian Forum and let us know how it runs on your hardware! View the full article
-
[Armbian newsletter] - Github Highlights
This week's work centers on Rockchip platform maturation, kernel and toolchain modernization, and board-level enablement across vendors. Rockchip received the largest share of attention, with RK3528 gaining a thermal driver, cooling-map refinements, and cleanup of legacy PCIe and pmdomain workarounds. The Radxa E24C now stores its U-Boot environment in SPI flash and reads switch port MAC addresses from EEPROM, while device trees for the Mixtile Blade 3, Core3588E, and Edge 2 were corrected. New board support was added for the Boardcon SBC3568, and the Rock 5T now ships an edge kernel. On the configuration side, hyphenated LINUXFAMILY handling was fixed in both the kernel selector and firmware remap logic for the rk35xx family. Kernel and build infrastructure saw significant modernization. Mainline advanced to 7.3-rc5, several C23 build errors were resolved for D1 ATF, OpenSBI, and libbpf, and the default FRAME_WARN was restored on 64-bit configs. Deprecated patch directories for imx6 and the RK BSP 5.10 legacy kernel were retired, parallel patch queueing was optimized, and kernel-debs postinst ordering was hardened for DKMS safety. CI switched to remote ccache only, and ATF builds now honor USE_CCACHE correctly. Board-level enablement spanned multiple vendors. ODROID-HC4 gained PCIe suspend, Wake-on-LAN, and RTC alarm support, along with a usable SPI NOR and SD card power-down. ODROID-XU4 was bumped from 6.15 to 7.2 on edge, the Amlogic C400 Plus received SD-boot and Wi-Fi profile fixes, and the Raspberry Pi 4B added support for Waveshare and Raspberry touchscreen v2 panels. The MorseMicro DKMS project also matured substantially with split MM6108/MM8108 packages, Linux 7.1 API compatibility, and initial NetworkManager udev integration. #Armbian #EmbeddedLinux #Rockchip #Kernel #SBC ChangesActions: Test DKMS module against many kernels. by @vidplace7 in armbian/MorseMicro-DKMS#16Actions: Update to Ubuntu 26.04. by @vidplace7 in armbian/MorseMicro-DKMS#10arm64: dts: rockchip: add Boardcon SBC3568 support. by @boardcon-arm in armbian/linux-rockchip#562arm64: dts: rockchip: fix the Mixtile Blade 3, Core3588E and Edge 2 device trees. by @evtest-hash in armbian/linux-rockchip#556arm64: dts: rockchip: rk3528: drop pcie2x1 skip-reset-in-config. by @rpardini in armbian/linux-rockchip#552armbian_firmware: apply RK3588 family remap for BOARDFAMILY=rk35xx too. by @igorpecovnik in armbian/configng#1030armbian_firmware: fix kernel selector truncating hyphenated LINUXFAMILY. by @igorpecovnik in armbian/configng#1028artifacts: hash compile_crust into the u-boot artifact version. by @iav in armbian/build#10829atf: fix C23 build errors for D1 (OpenSBI). by @khaliforce in armbian/build#10772bcm2711: don't wipe the firmware kernel when removing one of several kernels. by @igorpecovnik in armbian/build#10783board-tests: sections + right-hand TOC, no collapsed cards. by @igorpecovnik in armbian/documentation#1343board: ztl-a568: enable OTG connector VBUS switch. by @yanhy2000 in armbian/build#10823boards: aml-c400-plus: fix SD card booting capability, QCA9377 profiles and blacklist simpledrm. by @jomadeto in armbian/build#10793bootscripts: rk35xx: fall back to PARTUUID instead of hardcoded rootdev. by @akshar27 in armbian/build#10622ci: use remote ccache only, drop the duplicate local cache. by @igorpecovnik in armbian/ci#77cleanup deprecated kernel patch directories. by @EvilOlaf in armbian/build#10810cli: obtain host release and arch for config-only artifact dumps. by @iav in armbian/build#10485compilation: add compile-wrapper and ATF/Crust make hooks. by @iav in armbian/build#10828deprecate rk bsp 5.10 "legacy" kernel. by @EvilOlaf in armbian/build#10811docs: widen the content column 25%, site-wide. by @igorpecovnik in armbian/documentation#1342drm: rockchip: dw_hdmi_qp: support inverted HDMI HPD. by @evtest-hash in armbian/linux-rockchip#559env_init: fix KERNELPKG_LINUXFAMILY truncating hyphenated family. by @igorpecovnik in armbian/configng#1029extensions: arm64-compat-vdso: do nothing on non-arm64 targets. by @iav in armbian/build#10809extensions: gxlimg: cleanups, better logging, debugging. by @rpardini in armbian/build#10769external: add ZFS for resolute from arter97 PPA. by @igorpecovnik in armbian/os#490external: pull the Raspberry Pi archive suite that matches the release. by @igorpecovnik in armbian/os#491Fix build against Linux 7.0 by updating kernel API usage to match 7.1. by @vidplace7 in armbian/MorseMicro-DKMS#17Fix Documentation references in systemd unit files for hostapd and wpa_supplicant. by @vidplace7 in armbian/MorseMicro-DKMS#14fix(atf): honour USE_CCACHE; no leading space when CCACHE is empty. by @iav in armbian/build#10820imx6: drop abandoned patch dirs for 6.1, 6.6 and 6.10. by @EvilOlaf in armbian/build#10795Initial usage docs + udev rules for NM. by @vidplace7 in armbian/MorseMicro-DKMS#15inovato-quadra: force an explicit HDMI mode for the switch-fed port. by @igorpecovnik in armbian/build#10800kernel-debs: copy the kernel into FAT32 /boot, and give FAT32 /boot room for it. by @igorpecovnik in armbian/build#10801kernel-debs: run header_postinst.d from linux-headers postinst (DKMS order-safety). by @igorpecovnik in armbian/build#10775kernel: 7.3: fix false test_fortify failures with colored diagnostics. by @iav in armbian/build#10805kernel: drop NETFILTER_NETLINK from the forced module list. by @iav in armbian/build#10808kernel: fix C23 build errors for libbpf in D1. by @khaliforce in armbian/build#10773kernel: use the default FRAME_WARN (2048) on 64-bit configs. by @iav in armbian/build#10821mainline: bump to 7.3-rc4. by @EvilOlaf in armbian/build#10785mainline: bump to v7.3-rc5. by @EvilOlaf in armbian/build#10841meson64-6.18: fix broken patch with upstream changes, general patch maintenance. by @EvilOlaf in armbian/build#10786meson64: 7.2, 7.3: HEVC decoder patch: fallthrough keyword, source. by @iav in armbian/build#10807meson64: new tm16xx driver; aml-t95z-plus: bump & fixes. by @rpardini in armbian/build#10814meson64: odroid c4/hc4: let the SD card be powered down. by @iav in armbian/build#10781meson64: odroidhc4: make the SPI NOR usable — mux HOLD#/WP#, clock it at 40 MHz. by @iav in armbian/build#10779meson64: sleep and wake on ODROID-HC4 - PCIe, Wake-on-Lan and the RTC alarm. by @iav in armbian/build#10740milkv-duos: make the MAC addresses truly stable. by @lukaszsobala in armbian/build#10778MorseMicro 2.1.0. by @vidplace7 in armbian/MorseMicro-DKMS#11mvebu: CPU bugfixes. by @neheb in armbian/build#10789net: stmmac: don't claim IFF_UNICAST_FLT without address registers. by @rpardini in armbian/linux-rockchip#551odroidxu4: bump edge kernel 6.15 → 7.2 (validated on HC1). by @igorpecovnik in armbian/build#10796odroidxu4: name on-board ethernet end0 via device tree. by @igorpecovnik in armbian/build#10831parallel-patches: optimize chain queue to start from largest set. by @EvilOlaf in armbian/build#10818patching: keep the b4 footer after the diff out of the diff. by @iav in armbian/build#10806radxa-e24c: u-boot: environment in SPI Flash. by @rpardini in armbian/build#10836Remove D-Bus integration from wpa-supplicant-s1g and update service configs. by @vidplace7 in armbian/MorseMicro-DKMS#13rewrite various patches. by @EvilOlaf in armbian/build#10830rock-5t: build and publish an edge kernel. by @igorpecovnik in armbian/build#10824rockchip64-7.2: radxa-e24c: read ethernet switch ports MAC from EEPROM. by @rpardini in armbian/build#10817rockchip64-7.2: rk3528: add thermal driver. by @rpardini in armbian/build#10816rockchip64-7.2: rk3528: drop "pmdomain/rockchip: skip domains returning -EPROBE_DEFER". by @rpardini in armbian/build#10815rockchip64-7.2: rk3528: thermal: cooling-map on the first passive trip. by @rpardini in armbian/build#10837rockchip64-7.3: fix warnings from overlay-configfs, rk3328-dmc and hdmi-clock patches. by @iav in armbian/build#10822rockchip64: fix u-boot builds for 9tripod-x3568-v4 and graperain-g3568-v2. by @igorpecovnik in armbian/build#10825rpi4b: add support for waveshare and Raspberry touchscreen v2. by @EvilOlaf in armbian/build#10784runner-cleanup: don't wipe _diag under a busy runner. by @igorpecovnik in armbian/configng#1035seeed-extension: don't fetch external repo during config-dump-json (fixes matrix race). by @igorpecovnik in armbian/build#10763Split MM6108 / MM8108 packages. by @vidplace7 in armbian/MorseMicro-DKMS#9star64: change KERNEL_TARGET to the last available "vendor". by @EvilOlaf in armbian/build#10794sun55i-a523 fix/restore delays on the network adapters. by @juanesf in armbian/build#10804sunxi-6.18: current: fix stk3310 patches causing breakage. by @EvilOlaf in armbian/build#10787Sync from mainline for 9tripod-x3568-v4 and graperin-g3568-v2. by @rbqvq in armbian/build#10819system: add tuning profiles for the machine's actual role. by @igorpecovnik in armbian/configng#1033uefi-x86: refresh applesmc drvdata patch for the workqueue-leak fix. by @igorpecovnik in armbian/build#10791Update hostap_s1g and mm6108/mm8108 driver DKMS configurations. by @vidplace7 in armbian/MorseMicro-DKMS#12Automatic refresh repository README. by @igorpecovnik in armbian/documentation#1196Automatic refresh repository README. by @igorpecovnik in armbian/shallow#12View the full article
-
[Armbian newsletter] - Github Highlights
This cycle centers on expanded board and SoC support, kernel maintenance across sunxi, rockchip, and sophgo families, and infrastructure refinements to installer, extensions, and CI tooling. New platform enablement covers a broad range of vendors and architectures. Notable additions include the EmbedFire LubanCat 3 v2 and Seeed reComputer RK3576 devkits, the TQ-Systems MBa62xx/MBa67xx TI K3 boards, the Tanix TX6s (Allwinner H616), and the ZTL A568 (RK3568). The Allwinner A733 line advances with a full HDMI display pipeline (DE33/RCQ), PCIe/NVMe, and U-Boot 2026.07 integration for sun55iw3, while the Sophgo SG200x family bumps edge to 7.2, gains TPU support for the Milk-V Duo S, and doubles the /boot partition to 256 MB. Kernel work spans multiple maintenance streams. The sunxi 6.18 and 7.2 patch sets were rewritten against upstream changes, with fixes for a sun8i_thermal NULL-caldata Oops that also resolves a reboot hang, and a correction for H616/H618 analog LINEOUT playing at half speed. Rockchip receives an RK3588 SDMMC fix for bus-width > 1, plymouth and ttyGS0 gadget console improvements on RK35xx, and Radxa E24C network fixes. Amlogic meson64 gains GPIO wakeup sources, PCIe port service requirements, and a rebased MPS series, while the cix-6.18 sky1 PDC driver was converted to the new syscore API. Tooling and distribution changes improve reliability and lifecycle handling. A new backward-compatible switch-alias mechanism formalizes deprecation, armbian-install gains an "spi" mode for self-contained boot on NVMe, SATA, or USB, and armbian_firmware now installs linux-headers before linux-image to satisfy first-pass DKMS. GitHub release lookups are checked and authenticated with GITHUB_TOKEN propagated through CI, kernel-deb postinst symlinks are made resilient to hook failures, and download-external mirrors only the newest version of each package to reduce archive bloat. #Armbian #EmbeddedLinux #Rockchip #Allwinner #KernelDevelopment Changesa bunch of cosmetics across board configs, and removed outdated readmes. by @EvilOlaf in armbian/build#10764Add board image for Tanix TX6s. by @lagosproject in armbian/armbian.github.io#451Add Boardcon SBC3568 board assets. by @boardcon-arm in armbian/armbian.github.io#456Add EmbedFire LubanCat 3 v2 (RK3576) support. by @hqnicolas in armbian/build#10689add overlay to restore orangepi 5 pro fan params.. by @eebssk1 in armbian/build#10737arm64: dts: rockchip: bunch of Radxa E24C network fixes. by @rpardini in armbian/linux-rockchip#553armbian-install: add "spi" mode for self-contained boot on NVMe/SATA/USB. by @igorpecovnik in armbian/configng#1024armbian_firmware: don't silently swallow old-kernel purge failures on switch. by @igorpecovnik in armbian/configng#1025armbian_firmware: install linux-headers before linux-image (first-pass DKMS). by @igorpecovnik in armbian/configng#1026armbian_firmware: resolve RK3588 kernel family by branch on install. by @igorpecovnik in armbian/configng#1027bcm2711: enable the serial console by default on Raspberry Pi. by @igorpecovnik in armbian/build#10726board assets: add ZTL A568 image and vendor logo. by @yanhy2000 in armbian/armbian.github.io#464board-images: add mba62xx/mba67xx board images. by @schmiedelm in armbian/armbian.github.io#457board: add reComputer RK3576 Module Dev Kit support. by @Lesords in armbian/build#10693board: add ZTL A568 (DC_A568, RK3568). by @yanhy2000 in armbian/build#10761Board: fix u-boot mainline for JP-Tvbox Rk3566. by @hqnicolas in armbian/build#10752board: name Lyra Ultra and Ultra W together. by @stevenjoezhang in armbian/build#10754board: nanopi-r28s: remove obsolete Bluetooth workaround. by @wukibaka in armbian/build#10753boards: add MBa62xx and MBa67xx (TQ-Systems TI K3 boards). by @schmiedelm in armbian/build#10724bsp: end hdmi-hotplug and sheng-ucm-init.sh with a newline. by @iav in armbian/build#10758ci: pass GITHUB_TOKEN into the build so release lookups authenticate. by @igorpecovnik in armbian/ci#76cix-6.18: convert sky1 PDC driver to the new syscore API. by @igorpecovnik in armbian/build#10715cix-6.18: rebase SCMI ACPI patch onto 6.18.52. by @igorpecovnik in armbian/build#10706cloud-init: stop persisting zram swap into /etc/fstab (slow cloud boot). by @igorpecovnik in armbian/build#10324deprecations: backward-compatible switch-alias mechanism. by @igorpecovnik in armbian/build#10525Disable fast for mba62xx and exclude mba62xx/mba67xx from stable builds. by @schmiedelm in armbian/armbian.github.io#459docs(contribute): ask for build servers, the way we ask for mirrors. by @igorpecovnik in armbian/documentation#1291docs(contribute): modernize the automation page. by @igorpecovnik in armbian/documentation#1261docs(datacenter): describe what the lab can actually do. by @igorpecovnik in armbian/documentation#1241download-external: mirror only the newest version of each package. by @igorpecovnik in armbian/armbian.github.io#463extensions: add seeed-extension wrapper pinning Seeed's external repo. by @Mkiring in armbian/build#10698extensions: add uboot-mainline-mmc-env-storage. by @rpardini in armbian/build#10658extensions: make the GitHub release lookup checked and authenticated. by @igorpecovnik in armbian/build#10720external: drop armhf where upstream no longer builds it. by @igorpecovnik in armbian/os#488external: drop the $Version floors from aptly GLOBs. by @igorpecovnik in armbian/os#489families: don't call display_alert in write_uboot_platform (runs on target). by @igorpecovnik in armbian/build#10765feat(board): add Tanix TX6s (Allwinner H616 with AXP305 PMIC). by @lagosproject in armbian/build#10699feat: Add Seeed Studio reComputer RK3576 Module devkit dts. by @Lesords in armbian/linux-rockchip#550firstlogin: start the setup on the console where Enter is pressed. by @enthropy7 in armbian/build#10716github_latest_release_tag: say whether the lookup was authenticated. by @igorpecovnik in armbian/build#10762i18n: add Greek (el) and Serbian Cyrillic (sr) translations. by @igorpecovnik in armbian/imager#169kernel-debs: relink /boot kernel symlinks even when postinst.d hooks fail. by @igorpecovnik in armbian/build#10766kernel/sc8280xp-edge: fix QPS615 (TC956x) never linking at 1G on Radxa Dragon Q8B. by @yuskesh in armbian/build#10683kernel: rtc-pcf8563: fix oops on the first alarm interrupt. by @iav in armbian/build#10729lint-scripts: name files shfmt flags without a hunk. by @iav in armbian/build#10759mainline: bump to v7.3-rc3. by @EvilOlaf in armbian/build#10700meson64: allow GPIO interrupts to act as wakeup sources. by @iav in armbian/build#10738meson64: move the pending MPS series from v7 to v9. by @iav in armbian/build#10743meson64: require the PCIe port services on boards that have PCIe. by @iav in armbian/build#10739meson64_common: uboot_gxl_postprocess_ng: run aml_encrypt_gxl under run_host_x86_binary_logged. by @rpardini in armbian/build#10755mvebu, spacemit: drop patches that landed upstream, fix K3 xsk call. by @igorpecovnik in armbian/build#10709mvebu: alternate implementation of WoL. by @neheb in armbian/build#10595mvebu: gpio and mmc backports. by @neheb in armbian/build#10730odroidhc4: let the ethernet PHY wake the board. by @iav in armbian/build#10741profile: lead with what to do next. by @igorpecovnik in armbian/.github#2python: pylibfdt: drop fork, use upstream release 1.7.2-2 with swig 4.4.x. by @rpardini in armbian/build#10756qcs6490: enable CONFIG_HIDRAW. by @cfarley137 in armbian/build#10736radxa-cubie-a5e: u-boot: fall back to alternative DRAM parameters. by @Guation in armbian/build#10694readme workflow: open PRs as armbianworker, not a person. by @igorpecovnik in armbian/armbian.github.io#454release-targets: blacklist xiaomi-sheng from community builds. by @igorpecovnik in armbian/armbian.github.io#462release-targets: fix the delimiter on two dead extension-map entries. by @igorpecovnik in armbian/armbian.github.io#465Remove 'odroidc2' from targets-release-nightly blacklist. by @igorpecovnik in armbian/armbian.github.io#461remove experimental status for PARALLEL_PATCHES. by @EvilOlaf in armbian/documentation#1260Remove sk-am62-lp from blacklist and add uefi-loong64. by @igorpecovnik in armbian/armbian.github.io#453reorder contributors. by @EvilOlaf in armbian/documentation#1250rewrite sunxi 6.18 and 7.2 patches. by @EvilOlaf in armbian/build#10768rk35xx vendor: enable CONFIG_LED_TRIGGER_PHY. by @rpardini in armbian/build#10757rk35xx: bound plymouth-quit-wait to fix headless boot deadlock. by @Mkiring in armbian/build#10719rk35xx: enable ttyGS0 gadget serial console with clean first connect. by @Mkiring in armbian/build#10697rockchip64: rk3399: keep the watchdog from resetting the board in sleep. by @iav in armbian/build#10705soc: rockchip: grf: Fix SDMMC not working on RK3588 with bus-width > 1. by @evtest-hash in armbian/linux-rockchip#554sophgo-sg200x-7.2: drop DMA compatible patch, it is upstream. by @igorpecovnik in armbian/build#10710sophgo-sg200x: add TPU support for the Milk-V Duo S (mainline port of the vendor driver). by @leafpmpmp in armbian/build#10760sophgo-sg200x: bump edge to 7.2 and bleedingedge to 7.3, fix SDHCI clocks, run Duo S eMMC at HS200. by @lukaszsobala in armbian/build#10714sophgo-sg200x: increase the /boot partition size from 128 MB to 256 MB. by @lukaszsobala in armbian/build#10751SpacemiT K3: Update OpenSBI / U-Boot to k3-br-v1.0.8. by @pyavitz in armbian/build#10742sun55iw3: HDMI display pipeline (DE33/RCQ), PCIe/NVMe on U-Boot 2026.07 and board support. by @juanesf in armbian/build#10587sun60iw2/orangepizero3w: fix GPU 600MHz clock cap (PowerVR, 1008MHz + matching voltage). by @davidhfrankelcodes in armbian/build#10702sun60iw2: drop dead pd_gpu_core_test override from cubie-a7z DTS. by @igorpecovnik in armbian/build#10747sun60iw2: fix cubie-a7z patch broken by upstream dtb Makefile change. by @igorpecovnik in armbian/build#10744sun60iw2: re-anchor the GPU clk_rate hunk below the power-domains line. by @igorpecovnik in armbian/build#10771sunxi-6.12: resync three patches with 6.12.110. by @igorpecovnik in armbian/build#10711sunxi-6.18: drop upstreamed patch and rewrite the rest. by @EvilOlaf in armbian/build#10704sunxi-6.18: fix sun8i_thermal NULL-caldata Oops (also fixes reboot hang). by @trueell in armbian/build#10727sunxi-7.2: adjust patches to compensate upstream changes in 7.2.6. by @EvilOlaf in armbian/build#10703sunxi-7.2: fix sun8i_thermal NULL-caldata Oops (also fixes reboot hang). by @trueell in armbian/build#10728sunxi64-edge: rewrite kernel config against 7.2.6. by @EvilOlaf in armbian/build#10767sunxi: fix H616/H618 analog LINEOUT playing at half speed after HDMI clock fix. by @vdju in armbian/build#10745sunxi: mellowflyc5: prefer SD card over eMMC in U-Boot boot order. by @deece in armbian/build#10749switches: document backward-compatible switch renaming (deprecation aliases). by @igorpecovnik in armbian/documentation#1251tanix-tx6s: fix u-boot build hang — add missing CONFIG_DRAM_SUNXI_TPR6. by @igorpecovnik in armbian/build#10748targets-extensions: enable seeed-extension for reComputer boards. by @Mkiring in armbian/armbian.github.io#452u-boot: aml-c400-plus: clean up defconfig, correct DTSI naming and fi…. by @jomadeto in armbian/build#10750uefidt: bump edge to 7.2. by @amazingfate in armbian/build#10734wireless: fix Realtek USB drivers against 6.6.157. by @igorpecovnik in armbian/build#10708Automatic refresh repository README. by @igorpecovnik in armbian/actions#41Automatic refresh repository README. by @igorpecovnik in armbian/ci#72Automatic refresh repository README. by @igorpecovnik in armbian/distribution#15View the full article
-
[Armbian newsletter] - Github Highlights
This week's work centers on new board and SoC enablement, a broad wireless driver and firmware overhaul, and continued kernel, boot, and installer refinements. Board support expanded on multiple fronts. A new RK3562 family was introduced alongside the KICKPI K3B with mainline U-Boot and Linux, and mainline 7.2 bring-up landed for the S5P6818 platform covering NanoPC-T3+, NanoPi M3, and Fire3. The FriendlyELEC NanoPi R28S, Wildfire Lubancat 3 v2, OrangePi CM5 Base edition, and SpacemiT Musebook (current branch) were added, while the Mixtile Edge2 and Blade 3, Orange Pi 5 Max/Ultra, and Banana Pi M2 Ultra received targeted fixes for Bluetooth, eMMC, Ethernet, and thermal behavior. Wireless support saw substantial cleanup and expansion. The rtl8723ds driver underwent an extensive warning-elimination pass — addressing -Wmissing-prototypes, -Wempty-body, -Wmaybe-uninitialized, -Wrestrict, and -Warray-bounds findings — with parallel improvements to rtl8189es/fs, rtl8192eu, rtl8852bs, and uwe5622. Firmware additions include MT7986 Wi-Fi and Airoha EN8811H blobs, AIC8800 D80 SDIO names, and AP6212 NVRAM for S5P6818 boards, complemented by Bluetooth and 5 GHz Wi-Fi fixes on Rockchip and AYN Odin 2 targets. On the platform side, the mainline kernel was bumped to 7.3-rc2, a critical stmmac resume-ordering backport restores Ethernet after suspend on RK3588, and sunxi 6.18 and 7.2 gained fixes for eMMC boot hangs and post-reboot Ethernet loss. The installer engine now supports extlinux boards and native USB/NVMe boot on RPi-style hardware, zram-config was corrected for modern kernels, and BSP changes make SSH host key regeneration power-loss safe. Build infrastructure improvements include ORAS gitball use for U-Boot, better shallow-export handling during merge windows, and expanded CI coverage. #Armbian #EmbeddedLinux #Rockchip #SBC #KernelDevelopment ChangesAdd board image for lubancat-3-v2. by @igorpecovnik in armbian/armbian.github.io#450Add board-images/bananapir3mini.png. by @igorpecovnik in armbian/armbian.github.io#445Add CI to build kernel module on chance. by @EvilOlaf in armbian/wifi-rtl8852bs#29add watchdog for failed workflows. by @EvilOlaf in armbian/wifi-rtl8852bs#30aic8800: add generic D80 SDIO firmware names. by @sormy in armbian/firmware#138aml-c400-plus: fix boot chain migration and resolve OverlayFS CI failure. by @jomadeto in armbian/build#10682aml-c400-plus: migrate to modern U-Boot v2026.07 and improve boot chain. by @jomadeto in armbian/build#10548arm64: dts: rockchip: add FriendlyELEC NanoPi R28S. by @wukibaka in armbian/linux-rockchip#542arm64: dts: rockchip: add Wildfire Lubancat 3 v2. by @hqnicolas in armbian/linux-rockchip#549arm64: dts: rockchip: mixtile-edge2: fix Bluetooth wake GPIOs and enable eMMC HS400ES. by @evtest-hash in armbian/linux-rockchip#544armbian-install: sd mode on RPi-style boards, + native (full USB/NVMe boot). by @igorpecovnik in armbian/configng#1021Ayn Odin 2: add SDL gamepad mappings. by @Clownacy in armbian/build#10681AYN Odin2 updates. Edge kernel to 7.2.3, fixing 5GHz wifi not working. by @kasimling in armbian/build#10625BACKPORT rkr5.1: ARM: dts: rockchip: rk3502: add 2M alignment for CMA address. by @vidplace7 in armbian/linux-rockchip#543be nicer to git upstreams; use ORAS gitball for u-boot as well as kernel. by @rpardini in armbian/build#10655board images: add a minimum object size, re-crop the 32 images outside the bounds. by @igorpecovnik in armbian/armbian.github.io#442board-images: add NanoPC-T3/T3 Plus and NanoPi Fire3/M3 renders. by @igorpecovnik in armbian/armbian.github.io#443board-images: add reComputer RK3576 Module Dev Kit. by @Lesords in armbian/armbian.github.io#449board: add FriendlyELEC NanoPi R28S. by @wukibaka in armbian/build#10601brcm: add AP6212 (BCM43430) NVRAM for FriendlyARM S5P6818 boards. by @igorpecovnik in armbian/firmware#140bsp: survive power loss during SSH host key regeneration. by @Mkiring in armbian/build#10696cfg80211: keep the ndev alias alive for the wdev-based ops (fix the CONFIG_RTW_DEBUG=y build). by @iav in armbian/rtl8723ds#24ci(unit-tests): post-merge dispatch runs the tests the merge changed. by @igorpecovnik in armbian/configng#1006ci: auto-label PRs "Work in progress" from review state. by @igorpecovnik in armbian/build#10294Declare the last two undeclared functions (-Wmissing-prototypes 2 -> 0). by @iav in armbian/rtl8723ds#23desktops/xmonad: run the session under GNOME Flashback, add autostart. by @igorpecovnik in armbian/configng#1019docs(contribute): add S5P6818 as a new-board(-family) example. by @igorpecovnik in armbian/documentation#1208docs: publish software category hubs at /software//. by @igorpecovnik in armbian/configng#1020docs: retire the /User-Guide_Armbian-Software/ URLs. by @igorpecovnik in armbian/documentation#1202download-images-report: do not flag virtual boards as non-standard. by @igorpecovnik in armbian/documentation#1217download-images-report: drop the virtual boards listing. by @igorpecovnik in armbian/documentation#1219Draw dialog borders with Unicode box characters. by @iav in armbian/configng#1016Extension Brostrend-AIC8800: skip for kernel > 7.2. by @Shadowrom2020 in armbian/build#10652firmware: refresh the apt index before the repository madison check. by @igorpecovnik in armbian/configng#1022firstlogin: prefer the GNOME Flashback xmonad session when it can start. by @igorpecovnik in armbian/build#10663Fix -Wempty-body (114 -> 0). by @iav in armbian/rtl8723ds#11Fix -Wformat-truncation in the 8723D coex debug output (13 -> 0). by @igorpecovnik in armbian/rtl8723ds#21Fix -Wmaybe-uninitialized in the proc write handlers (36 -> 0). by @iav in armbian/rtl8723ds#13Fix -Wrestrict (58 -> 0). by @iav in armbian/rtl8723ds#12Fix clang warnings: -Wmissing-prototypes (330 → 2) and mismatched header guards. by @iav in armbian/rtl8723ds#6fix shallow export during merge window, rework mirrors across retries. by @rpardini in armbian/shallow#13fix sunxi edge build and patch maint. by @EvilOlaf in armbian/build#10664Fix two clang findings: dead recv-frame helpers, inverted HT/VHT test in phydm_debug. by @iav in armbian/rtl8723ds#17fix(autoconfig): add missing Wi-Fi country codes. by @hlhc in armbian/imager#190fix(rockchip64): fix Bluetooth on Orange Pi 5 Max and Ultra. by @fbernier in armbian/build#10673fix(rockchip64): remove conflicting rfkill node on orangepi-5-max. by @fbernier in armbian/build#10667generate_targets: classify S5P6818 as slow HW (XFCE, not GNOME). by @igorpecovnik in armbian/armbian.github.io#448gl-mt2500-v2: stop shipping Airoha firmware in the BSP. by @igorpecovnik in armbian/build#10686gnome: add gnome-tweaks and libopengl0 to minimal tier. by @igorpecovnik in armbian/configng#929helios64: fix stray /thermal_zone0 symlink. by @iav in armbian/build#10640images: generate /etc/armbian-release so repository switching works. by @igorpecovnik in armbian/docker-armbian-build#42Import two long-carried armbian/build patches, with authorship. by @iav in armbian/rtl8723ds#7initial introduction of OrangePi-CM5-Base edition. by @ECO1AI in armbian/build#10643install engine: read the partition table without opening the disk for writing. by @iav in armbian/configng#1017install-engine: support extlinux boards when repointing root. by @igorpecovnik in armbian/configng#985Introduce RK3562 family and KICKPI K3B (mainline U-Boot and mainline Linux). by @retro98boy in armbian/build#10613Introduce xiaomi-sheng-thp to fix touch issues. by @code002-2 in armbian/build#10631Keep the log arguments referenced when CONFIG_RTW_DEBUG is off. by @iav in armbian/wifi-rtl8852bs#27luckfox-rk3308b-nova: use bootph-all for the SPL console. by @crackerjacques in armbian/build#10688mainline: bump to 7.3-rc2. by @EvilOlaf in armbian/build#10661maintenance-private-packages: also render the table on the run summary. by @igorpecovnik in armbian/ci#68mediatek: add MT7986 Wi-Fi and Airoha EN8811H firmware. by @SuperKali in armbian/firmware#141menu: draw dialog borders with Unicode box characters. by @iav in armbian/build#10660modules/software: add HedgeDoc (and fix module_postgres sidecar handling). by @igorpecovnik in armbian/configng#741Move cfg80211_roam_info off the stack in rtw_cfg80211_indicate_connect(). by @igorpecovnik in armbian/rtl8723ds#22mvebu: fix the carried patches (PWM, atheros, gpio-keys) and enable drivetemp. by @iav in armbian/build#10605net: stmmac: fix dead Ethernet after suspend on RK3588 (backport the 6.15 phylink/stmmac resume ordering). by @defcom5-rockchip in armbian/linux-rockchip#548oci: link pushed packages to their GitHub repository. by @igorpecovnik in armbian/build#10584patching.py: render the failed-patches table at the terminal width. by @iav in armbian/build#10641phydm: fix broken include guards in phydm_features.h and phydm_kfree.h. by @iav in armbian/rtl8723ds#8proc: read only what was written in the sa_query / tx_deauth / tx_auth handlers. by @iav in armbian/rtl8723ds#16recomputer-rk35xx-common.inc: fix ttyGS0 login loop under PrivateDevices. by @Mkiring in armbian/build#10475Revert "aml-c400-plus: migrate to modern U-Boot v2026.07 and improve boot chain". by @igorpecovnik in armbian/build#10665rockchip64-7.2: Mixtile Blade 3: fix pwm-fan tacho & regulator; levels. by @rpardini in armbian/build#10656rtl8189es/fs: bump pins to c204f13 / 1c2f168. by @iav in armbian/build#10670rtl8189es/fs: move the pins to 2fef6c67 / 185ab67f (warning cleanup). by @iav in armbian/build#10691rtl8192eu: move the pin to e84384b5 and drop the set_monitor_channel patch. by @iav in armbian/build#10695rtl8723ds: bump pin to b5c8a00 (warning fixes, 7.3 compat). by @iav in armbian/build#10669rtl8852bs: bump pin to 643a4990 (no_printk log stubs). by @iav in armbian/build#10676runners: fix label fallback, runner listing and parameter handling. by @igorpecovnik in armbian/configng#1023S5P6818 (NanoPC-T3+ / NanoPi M3 / Fire3): mainline 7.2 bring-up. by @igorpecovnik in armbian/build#10674SpacemiT K1: Disable CSI by default on BPI-F3 and MusePI Pro. by @pyavitz in armbian/build#10685SpacemiT K1: Musebook: Add to current branch. by @pyavitz in armbian/build#10659sunxi-6.18: add sun8i-r40-emmc compatible, fixes eMMC boot hang (Banana Pi M2 Ultra). by @trueell in armbian/build#10635sunxi-6.18: dwmac-sun8i: fix Ethernet lost after warm reboot on external-PHY H616/H618 boards. by @seupedro in armbian/build#10492sunxi-6.18: enable USB0 OTG as host on Banana Pi M2 Ultra (sun8i-r40). by @trueell in armbian/build#10636sunxi-7.2: add sun8i-r40-emmc compatible, fixes eMMC boot hang (Banana Pi M2 Ultra). by @trueell in armbian/build#10637sunxi-7.2: enable USB0 OTG as host on Banana Pi M2 Ultra (sun8i-r40). by @trueell in armbian/build#10672tests: add Proxmox VE install test (trixie only). by @igorpecovnik in armbian/configng#1015u-boot/filogic: fix two defects in the Airoha PHY driver. by @SuperKali in armbian/build#10679uefi-x86-7.2: update applet2 patches from t2linux/linux-t2-patches@1637df4. by @rpardini in armbian/build#10657unisocwifi: size the reply buffers with sizeof instead of a runtime length (-Wvla-larger-than 2 -> 0). by @iav in armbian/uwe5622#21Update cfg80211_port_authorized conditions to match 6.1.172 rk35xx. by @ii343hbka in armbian/bcmdhd-dkms#9Use C99 flexible array members for the trailing variable-length arrays (-Warray-bounds 30 -> 0). by @iav in armbian/rtl8723ds#18uwe5622: bump pin to 6eb2184 (-Wvla-larger-than 2 -> 0). by @iav in armbian/build#10671zram-config: don't write read-only max_comp_streams on modern kernels. by @igorpecovnik in armbian/build#10677Automatic refresh repository README. by @igorpecovnik in armbian/bcmdhd-dkms#10Automatic refresh repository README. by @igorpecovnik in armbian/ci#34Automatic refresh repository README. by @igorpecovnik in armbian/hastebin-ansi#8View the full article
-
[Armbian newsletter] - Github Highlights
This cycle centers on Linux 7.2/7.3 kernel enablement across out-of-tree drivers, new board support and platform fixes across Rockchip, SpacemiT, and Amlogic, and a broad documentation and CI cleanup. Kernel progression dominated the driver ecosystem, with 7.3 patch sets prepared for rockchip64, meson64, and the UEFI targets, and edge bumps to 7.2.3 landing for qcs6490, qrb2210, and sc8280xp. A wave of Wi‑Fi drivers was re-enabled and bumped for 7.3 compatibility, including rtl8189es/fs, rtl8192eu, rtl8723ds, rtl8852bs, uwe5622, and bcmdhd-dkms, most addressing the strncpy removal and the cfg80211 remain_on_channel cookie signature change. The rk35xx vendor kernel also advanced to the 6.1.172 rkr7.2 SDK. Board and platform work introduced GL.iNet GL-MT2500, Xiangcheng XC3399FR, and NanoPi R28S, alongside U-Boot bumps to v2026.07 for Helios64, Odroid N2, Khadas VIM3L, and Mixtile Core3588e. Notable hardware corrections include a cold-boot switch fix on BananaPi R2, RK808 LDO mapping repair on Firefly RK3399 to restore analog audio, RTC correction on Orange Pi Zero 3W, an MSDOS partition table workaround for GPT/eGON on Orange Pi 4A, and SPI controller selection on NanoPi NEO3 Plus. SpacemiT K3 saw defconfig refinements and a transition from extlinux to boot.scr on the Pico ITX. Infrastructure work focused on documentation consolidation and workflow hardening: a new "Armbian vs Debian & Ubuntu" comparison page, pinned third-party actions with scoped GITHUB_TOKEN, removal of dead PDF plumbing and unused announce workflows, and CI adjustments including GHCR visibility reporting and a lower stall-retry threshold in the SDK. The configng TUI received usability improvements to help text and top-level navigation. #Armbian #EmbeddedLinux #Rockchip #LinuxKernel #SBC Changesadd compat for 7.3. by @EvilOlaf in armbian/rtl8723ds#19add compatibilty for kernel 7.3. by @EvilOlaf in armbian/uwe5622#20arm64: dts: rockchip: describe PCIe RTL8125 Ethernet on reComputer RK3588. by @rpardini in armbian/linux-rockchip#541arm64: dts: rockchip: fixes for Mixtile boards (Edge2 and Blade3). by @rpardini in armbian/linux-rockchip#540assets: add GL.iNet GL-MT2500 images. by @JiaY-shi in armbian/armbian.github.io#438assets: add NanoPi R28S board image. by @wukibaka in armbian/armbian.github.io#439auxdisplay: vk2c21: add sysfs brightness control. by @rpardini in armbian/linux-rockchip#539board assets: add Xiangcheng XC3399FR image and ProEmbed logo. by @liamhnam in armbian/armbian.github.io#440board-vendor-logos: add yuzukihd logo. by @igorpecovnik in armbian/armbian.github.io#436board: add 7.2 kernel target support to NanoPi NEO3 Plus. by @cjkoenig in armbian/build#10614board: add 7.3 kernel target support to NanoPi NEO3 Plus. by @cjkoenig in armbian/build#10623board: add GL.iNet GL-MT2500 support. by @JiaY-shi in armbian/build#10598board: add Xiangcheng XC3399FR (RK3399). by @liamhnam in armbian/build#10619bootscripts: seeed-rk35xx: pass boot disk tokens on kernel cmdline. by @Mkiring in armbian/build#10573ci: also prune www docs previews for merged/closed PRs. by @igorpecovnik in armbian/documentation#1187ci: lower stall-retry threshold to 30% (inclusive). by @igorpecovnik in armbian/sdk#48docs: hide the stale version chip in the repository header. by @igorpecovnik in armbian/documentation#1139docs: remove redundant DOCUMENTATION.md (superseded by README.md). by @igorpecovnik in armbian/documentation#1183docs: update networking & FAQ links to the new lowercase docs paths. by @igorpecovnik in armbian/configng#1012DOCUMENTATION.md: drop the dead PDF link. by @igorpecovnik in armbian/documentation#1182Drop the announce workflows, neither of which has ever run. by @igorpecovnik in armbian/documentation#1179Drop the leftover PDF plumbing. by @igorpecovnik in armbian/documentation#1178firstlogin: let the console with a user take the setup. by @enthropy7 in armbian/build#10578Fix build on Linux 7.2 (strncpy removal + remain_on_channel rx_addr). by @igorpecovnik in armbian/bcmdhd-dkms#8fix NanoPi NEO3 Plus (current): select correct SPI controller to let spidev registration not fail. by @cjkoenig in armbian/build#10580fix(bsp): do not block basic.target while resizing the rootfs. by @adeepn in armbian/build#10527getting-started: add "Armbian vs Debian & Ubuntu" comparison page. by @igorpecovnik in armbian/documentation#1165getting-started: wireless drivers & advanced networking in the comparison. by @igorpecovnik in armbian/documentation#1167Harden workflows: pin third-party actions, scope GITHUB_TOKEN. by @igorpecovnik in armbian/documentation#1180helios64: bump u-boot to v2026.07. by @iav in armbian/build#10645Ignore power down event with disable_powersave=1 module option. by @ValdikSS in armbian/uwe5622#18info: strip bash trailing comments before parsing board vars. by @igorpecovnik in armbian/build#10585Keep strncpy() byte-count semantics on Linux 7.2+. by @iav in armbian/rtl8723ds#10kernel: enable the IP tunnel drivers for every kernel. by @igorpecovnik in armbian/build#10569khadas-vim3l: u-boot: bump to v2026.07 + fancy. by @rpardini in armbian/build#10612maintenance: report private GHCR packages that should be public. by @igorpecovnik in armbian/ci#64meson64-6.12: drop upstreamed pinctrl-meson can_sleep patch. by @adeepn in armbian/build#10650mixtile-core3588e: u-boot: bump to v2026.07 + fancy. by @rpardini in armbian/build#10611mt7623: bananapi-r2: fix cold-boot switch data path (use RGMII CPU port). by @igorpecovnik in armbian/build#10577mvebu: helios4: remove bad patch. by @neheb in armbian/build#10581mvebu: update to 7.2. by @neheb in armbian/build#10594nightly: build Ubuntu minimal for Khadas VIM1S and VIM4 on current. by @igorpecovnik in armbian/armbian.github.io#437odroidn2: bump u-boot to v2026.07. by @iav in armbian/build#10630orangepi-4a.csc: use msdos partition table to fix GPT + eGON incompatibility. by @ValdikSS in armbian/build#10648qcs6490: bump edge kernel to Linux 7.2.3. by @SuperKali in armbian/build#10626qrb2210: bump edge kernel to Linux 7.2.3. by @SuperKali in armbian/build#10604recomputer-rk3588-devkit: drop duplicate common.inc sourcing. by @Mkiring in armbian/build#10649remove orphaned files. by @EvilOlaf in armbian/build#10608remove stray . in patch name. by @EvilOlaf in armbian/build#10599Restore the cookie output parameter on kernels before 7.3. by @iav in armbian/rtl8723ds#20Revert "input: remotectl: rockchip-pwm: prefer dedicated channel-3 IRQ". by @rpardini in armbian/linux-rockchip#537Revert "input: remotectl: rockchip-pwm: prefer dedicated channel-3 IRQ". by @rpardini in armbian/linux-rockchip#538RK3506: Update DDR, TEE, ROCKUSB blobs. by @vidplace7 in armbian/build#10620rk35xx-vendor: bump to 6.1.172 rkr7.2 sdk kernel. by @nyanmisaka in armbian/build#10363rockchip64-7.3: fix whitespace in orangepi-5 es8388 mclk patch. by @iav in armbian/build#10628rockchip64/meson64/uefi-x86/uefi-arm64: prepare 7.3 patches. by @EvilOlaf in armbian/build#10579rockchip64: firefly-rk3399: fix RK808 LDO mapping (analog audio is dead). by @i6941 in armbian/build#10610rpi4b: bump edge to 7.2.y. by @EvilOlaf in armbian/build#10590rtl8189es/rtl8189fs: re-enable add Linux 7.3 compatibility. by @EvilOlaf in armbian/build#10591rtl8192eu: re-enable and bump commit hash to add Linux 7.3 compat. by @EvilOlaf in armbian/build#10592rtl8723ds: re-enable, bump commit hash for add 7.3 compat. by @EvilOlaf in armbian/build#10593rtl8852bs: bump commit hash to include 7.3 compat and drop the lt 7.3 gate. by @iav in armbian/build#10629rtl88x2cs: bump driver to f4263fc6 (2026-09-01). by @adeepn in armbian/build#10586Run the config sync on a daily cron instead of a dead push trigger. by @igorpecovnik in armbian/documentation#1181sc8280xp: bump edge kernel to Linux 7.2.3. by @SuperKali in armbian/build#10615show-extensions: fix hook-doc rendering (heading marker + btrfs docs). by @igorpecovnik in armbian/build#10532SpacemiT K3: RE-Add CONFIG_CRYPTO_CRC32C=y. by @pyavitz in armbian/build#10644SpacemiT K3: Transition Pico ITX from extlinux to boot scr and update current defconfig. by @pyavitz in armbian/build#10627SpacemiT K3: Update legacy defconfig and add CRYPTO_*_RISCV64 to current. by @pyavitz in armbian/build#10639sun60iw2: fix RTC on Orange Pi Zero 3W (use SoC RTC, drop phantom hym8563). by @periqles in armbian/build#10576Take the cfg80211 cookie by value on Linux 7.3. by @iav in armbian/wifi-rtl8852bs#26TUI: Help describes the tool, top-level leaf entries work, shorter Storage entry. by @igorpecovnik in armbian/configng#1010uefi-x86 (6.12 + 6.18): fix T2 magicmouse raw_event split ('nested' undeclared). by @igorpecovnik in armbian/build#10609unisocwifi: reconcile connect and roam state. by @YipKo in armbian/uwe5622#17uwe5622: re-enable and bump to new commit hash including 7.3 compat. by @EvilOlaf in armbian/build#10589xradio: bump driver to 3ce657ae (2026-09-01). by @Maeur1 in armbian/build#10583[v2]: sunxi: bump edge to 7.2. by @EvilOlaf in armbian/build#10603Automatic refresh repository README. by @igorpecovnik in armbian/documentation#942View the full article
-
[Armbian newsletter] - Github Highlights
This week's development centered on kernel and toolchain progression, expanded board support, and substantial wireless driver cleanup. Mainline tracking advanced with kernel bumps to 7.2-rc7, Rockchip edge promoted to 7.2, and sunxi edge moved to 7.1.y. Platform work included loong64 migration from debian-ports to the main Debian archive with corresponding apt repository publishing, mainline kernel and U-Boot enablement on the Avaota A1, restored CONFIG_DWMAC_SUN8I for sunxi64, and a new RK3528 bl32/DDR blob update. Rockchip64 also received backported fixes for an 8250 DMA reopen crash and for CAN TX stalls. Board coverage grew across multiple vendors, with the NanoPi NEO3 Plus (RK3528A) added and standard-support promotions for the Anbernic RG DS and RG Vita Pro, LubanCat 5IO, Luckfox Nova, and Qidi X-6. UEFI device-tree support was extended with Qualcomm X1E patches and new CIX mainline support, while the Radxa E24C was reworked against U-Boot 26.07 and the v7.2-rcX kernel. Wireless stacks saw a coordinated quality pass: the rtl8852bs driver had thousands of compiler warnings resolved across missing prototypes, unused functions and variables, enum conversions, and empty-body cases, alongside a NULL-dereference fix and stricter proc write handling. The uwe5622 (unisocwifi) driver received parallel structural cleanups, including a flexible array conversion and forward-declaration hygiene, with both drivers rebased to their August 2026 upstreams. #Armbian #EmbeddedLinux #Rockchip #Allwinner #MainlineKernel #WirelessDrivers #LoongArch ChangesAdd board image for gateway-gz80x (Amper Gateway AM-GZ80x). by @igorpecovnik in armbian/armbian.github.io#395Add board-images/nanopineo3plus.png. by @cjkoenig in armbian/armbian.github.io#392armbian-config: make sure LC_ALL is consistent. by @efectn in armbian/configng#982armbian-install: add standalone "flash bootloader (u-boot) only" option. by @igorpecovnik in armbian/configng#978armbian-kernel.sh: reword display alert for accuracy. by @EvilOlaf in armbian/build#10405bluetooth-hciattach: only deploy the service on BSP (vendor/legacy) branches. by @defcom5-rockchip in armbian/build#10410board-images: add easy-eai-nano + vendor logo. by @igorpecovnik in armbian/armbian.github.io#399board-images: add graperain-g3568-v2 + vendor logo. by @igorpecovnik in armbian/armbian.github.io#400board-images: add hinlink-hnas. by @igorpecovnik in armbian/armbian.github.io#401board-images: add r69-xr821. by @sormy in armbian/armbian.github.io#397board-images: add xiaobao-nas. by @igorpecovnik in armbian/armbian.github.io#398board: add NanoPi NEO3 Plus (RK3528A). by @cjkoenig in armbian/build#10409board: promote Anbernic RG DS to supported. by @crackerjacques in armbian/build#10415board: promote Anbernic RG Vita Pro to supported. by @crackerjacques in armbian/build#10426board: promote LubanCat 5IO to supported. by @lch08 in armbian/build#10424board: promote Luckfox Nova to supported. by @crackerjacques in armbian/build#10432build-standard-support: publish images under images/ not stable/. by @igorpecovnik in armbian/ci#51ci: add a base-files-only build workflow. by @igorpecovnik in armbian/ci#53Cleanup sunxi patches. by @EvilOlaf in armbian/build#10418delete-old-releases: retain stable per release-series + trunk (version-aware). by @igorpecovnik in armbian/ci#50deprecated various channels and helper service. by @EvilOlaf in armbian/documentation#970docker: forward CPUTHREADS into the build container. by @igorpecovnik in armbian/build#10414drivers: bump uwe5622 to d6bec75 (Aug 15, 2026). by @iav in armbian/build#10439drivers: bump wifi-rtl8852bs to 3e7d964 (Aug 14, 2026). by @igorpecovnik in armbian/build#10419drivers: bump wifi-rtl8852bs to 6099b02 (Aug 15, 2026). by @iav in armbian/build#10441Drop unused locals in sdiohal and cfg80211. by @iav in armbian/uwe5622#14easepi: normalize BOARD_VENDOR to lowercase 'linkease'. by @igorpecovnik in armbian/build#10397Enable mainline kernel & u-boot on Avaota A1. by @juanesf in armbian/build#10434firmware: novatek: add nt36532_n81a_fw_csot.bin for Xiaomi Pad 6S Pro. by @code002-2 in armbian/firmware#139Fix -Wmissing-prototypes warnings across the driver (2179 → 42). by @iav in armbian/wifi-rtl8852bs#7Fix -Wunused-variable: 1545 -> 48 (DEBUG=n) / -> 4 (DEBUG=y). by @iav in armbian/wifi-rtl8852bs#17Fix build with podman - no .Server.Arch. by @cfraz89 in armbian/build#10438Fix ethernet on tx6s-axp-313. by @alnahian2011 in armbian/build#10443Fix misc warning tail: unused labels, no-effect statements, set-but-unused parameters (22 -> 0). by @iav in armbian/wifi-rtl8852bs#13Fix mixed-enum usage outside h2cb_alloc (-Wenum-conversion 143 -> 116). by @iav in armbian/wifi-rtl8852bs#14Fix NULL dereference on efuse alloc/parameter failure. by @iav in armbian/wifi-rtl8852bs#16fix(api): key partner tiers on company_slug. by @SuperKali in armbian/website#41fix(autoconfig): replace existing preset contents. by @Guflly in armbian/imager#179install-engine: drop per-scenario LC_ALL=C (handled globally). by @igorpecovnik in armbian/configng#983install: keep the Rockchip reserved window. by @sormy in armbian/configng#981loong64: migrate from debian-ports to the main Debian archive. by @igorpecovnik in armbian/build#10404mainline: bump to 7.2-rc7. by @EvilOlaf in armbian/build#10396maintenance-rewrite-kernel-patches: enable parallel patch rewriting. by @igorpecovnik in armbian/build#10308nanopi-r4s: add missing #cooling-cells to pwm-fan node. by @iav in armbian/build#10431orangepizero: remove tve from DEFAULT_OVERLAYS. by @EvilOlaf in armbian/build#10417pack-debian: publish loong64 in the apt repo architecture list. by @igorpecovnik in armbian/scripts#93partners: expose company_slug in partners.json. by @igorpecovnik in armbian/armbian.github.io#396Qidi X-6: promote board config to standard support. by @Shadowrom2020 in armbian/build#10412radxa-e24c: rework u-boot 26.07 + v7.2-rcX kernel with USB. by @rpardini in armbian/build#10421release: build uefi-loong64 only as Debian sid CLI minimal. by @igorpecovnik in armbian/armbian.github.io#391Remove unused static functions (-Wunused-function 140 -> 6). by @iav in armbian/wifi-rtl8852bs#15Rename board-images/nanopineo3plus.png. by @cjkoenig in armbian/armbian.github.io#394rk3528: new bl32 v1.08 and ddr 1.14. by @rpardini in armbian/rkbin#50rkr7.2: Revert "ARM: dts: rockchip: add rv1126b-evb1-v12-4x-cam.dts". by @vidplace7 in armbian/linux-rockchip#522rockchip64: backport 8250 DMA reopen crash fix. by @lch08 in armbian/build#10420rockchip64: fix CAN TX stalls and races. by @lch08 in armbian/build#10423rockchip: bump edge kernel to 7.2. by @paolosabatino in armbian/build#10400rtl8852bs: drop RTW_WARN_LMT sed workaround. by @iav in armbian/build#10428rtw_proc: reject unparsable input in three write handlers. by @iav in armbian/wifi-rtl8852bs#18runner-clean: cap CPUTHREADS from the runner's NetBox field. by @igorpecovnik in armbian/actions#37servers feed: expose cputhreads in github-runners.jq. by @igorpecovnik in armbian/armbian.github.io#393setup-usbgadget-network.sh: fix breaking copy&paste flaw. by @EvilOlaf in armbian/build#10406SpacemiT K1: Exclude Musebook from USB boot. by @pyavitz in armbian/build#10435sunxi-edge: update kernel config to 7.1. by @EvilOlaf in armbian/build#10436sunxi64: restore CONFIG_DWMAC_SUN8I (Allwinner EMAC) on current & edge. by @igorpecovnik in armbian/build#10430sunxi: bump edge to 7.1.y. by @EvilOlaf in armbian/build#10399targets-compositor: add include-eos for userspace inventory. by @igorpecovnik in armbian/build#10425uefidt-edge: add qcom x1e patches back. by @amazingfate in armbian/build#10394uefidt: add cix mainline support. by @amazingfate in armbian/build#10411unisocwifi: forward-declare struct sprdwl_intf in intf_ops.h. by @iav in armbian/uwe5622#11unisocwifi: make pcie_addr_buffer::pcie_addr a flexible array member. by @iav in armbian/uwe5622#16unisocwifi: map sm_state onto wifi_connection_state in llstat. by @iav in armbian/uwe5622#12unisocwifi: mark the two intentional switch fall-throughs. by @iav in armbian/uwe5622#15Update odroidxu4-current to 6.6.151. by @belegdol in armbian/build#10413wcn_boot: stop ordering-comparing the int_ap gpio_desc pointer. by @iav in armbian/uwe5622#13wireless: eliminate -Wempty-body (239 -> 0), fix CONFIG_RTW_DEBUG=n build. by @iav in armbian/wifi-rtl8852bs#11wireless: fix h2cb_alloc PHL prototype enum type (-Wenum-conversion 143 -> 27). by @iav in armbian/wifi-rtl8852bs#12View the full article
-
[Armbian newsletter] - Armbian Newsletter August 2026
Welcome to the latest Armbian Newsletter: your source for the latest developments, community highlights, and behind-the-scenes updates from the world of open-source ARM and RISC-V computing. Armbian 26.8 brings a major shift to the ecosystem, focusing heavily on rebuilding and refining the core tools users interact with every day. Anchored by the Linux 7.1 kernel across the tree, this milestone release introduces three major overhauls: a redesigned armbian-install utility featuring expanded boot topologies and standalone bootloader flashing, the all-new Imager 2.0, and standardized UEFI ISO images for seamless deployment across desktop and minimal environments. Paired with expanded platform support stretching from new Rockchip and Qualcomm SBCs to gaming handhelds and 3D printer mainboards Armbian 26.8 turns raw single-board computer hardware into an accessible, enterprise-grade foundation for developers, self-hosters, and hardware enthusiasts alike. SPONSORED Join us in making open source better! Every donation helps Armbian improve security, performance, and reliability — so everyone can enjoy a solid foundation for their devices. Armbian release 26.8Rebuilding the tools you actually touch Kernel 7.1 across the tree, a rewritten installer, Imager 2.0, and UEFI ISO images Three rewrites in one cycle Most releases are a long list of small improvements. This one had three larger pieces landing at roughly the same time, and allSBC storageModernizing SBC Storage: From Qualcomm EDL Flashing to SPI-to-NVMe Boots For years, single-board computer (SBC) storage followed a simple, predictable pattern: flash an image onto a microSD card or eMMC module, plug it in, and turn on the board. However, as modern embedded hardware approaches laptop-gradeOne board, two architectures: Armbian on the Milk-V Duo SThe Milk-V Duo S is a very cheap and small board. It runs a Sophgo SG2000 with an Arm Cortex-A53 and a RISC-V C906, 512 MB of RAM, and a physical slide switch decides which one boots. Armbian now supports both architectures. PR #10326 landed the portArmbian image writerArmbian has this awesome Image Writer that I have to show off — it’s just too good not to. And if you haven’t checked out the Armbian website recently, do yo…View the full article
-
[Armbian newsletter] - One board, two architectures: Armbian on the Milk-V Duo S
The Milk-V Duo S is a very cheap and small board. It runs a Sophgo SG2000 with an Arm Cortex-A53 and a RISC-V C906, 512 MB of RAM, and a physical slide switch decides which one boots. Armbian now supports both architectures. PR #10326 landed the port (175 files) as two thin board targets – milkv-duos-arm and milkv-duos-riscv – over a single shared family include, so the bootloader pins can't drift apart. PR #10510 moved the edge branch to kernel 7.1. Standing on the shoulders of othersThere are at least 2 projects the port owes a lot to: queenkjuul/milkv-duo-ubuntu (Ubuntu on a mainline kernel 7.0, RISC-V) and Fishwaldo/sophgo-sg200x-debian (Debian sid, vendor kernel 5.10). Armbian takes the mainline route, adds arm64, and builds the entire boot chain from source: no prebuilt fip.bin. What the patches addKernel (57 patches per branch, one series for both architectures – the arm64 device tree includes the RISC-V ones): thermal sensor, watchdog, PWM, eFuse, DMA, MDIO mux, I2S, mailbox, the C906L coprocessor, correct eMMC and microSD pin muxing, USB gadget mode, ramoops, and overlays for the 26-pin header (I²C, SPI, UART, PWM) and USB device mode. U-Boot (vendor 2021.10): distroboot: the standard armbianEnv.txt + boot.scr mechanism works and overlays are chosen at boot rather than at build (like in other implementations), plus a fix for the SD slot being powered down when empty. 1050 MHz as a default RISC-V speed. Provided by a build option SOPHGO_CPU_OVERDRIVE. Both bootloaders ship in every image, so one image boots from microSD or eMMC – but flashing to the eMMC still requires special treatment using sophgo-emmc-install. ./compile.sh build BOARD=milkv-duos-arm BRANCH=edge Usage exampleThe board runs under 1 W, so it can make a nice always-on serial console. milkv-duos-uart turns a Duo S into a recorder for Rockchip boards (or any others!): enable the UART2 overlay, connect three pins, and it keeps a 32 MiB RAM ring buffer you can follow, dump as history, or attachand use like a normal console. This way a guest's boot log can survive even it it dies. What are your ideas for this board? View the full article
-
[Armbian newsletter] - SBC storage
Modernizing SBC Storage: From Qualcomm EDL Flashing to SPI-to-NVMe Boots For years, single-board computer (SBC) storage followed a simple, predictable pattern: flash an image onto a microSD card or eMMC module, plug it in, and turn on the board. However, as modern embedded hardware approaches laptop-grade performance, that legacy approach is starting to break down. The latest quarter of Armbian development highlights a major shift toward modern storage pipelines. By combining Qualcomm Emergency Download (EDL) flashing in Armbian Imager 2.0 with a redesigned installation engine, Armbian is making high-performance hardware far easier to set up. Direct Qualcomm Flashing with Imager 2.0 As boards like the Radxa Dragon Q6A and Q8B bring Qualcomm Snapdragon chips to developers, standard image writers no longer work. These devices require low-level vendor tools to write to storage before an operating system can even start. Armbian Imager 2.0 now handles EDL flashing directly over USB without third-party software, automatically tailoring the setup to the specific hardware: Radxa Dragon (Q6A & Q8B): Flashes directly to high-speed UFS storage, setting up the board’s custom UEFI boot environment.(Note: Users will need to enter the UEFI menu and set the boot order manually after flashing to boot from UFS). Arduino Qualcomm Boards: Flashes directly to onboard eMMC storage, setting up a U-Boot environment. Because EDL writes straight to the main storage, it leaves external SPI flash completely untouched, providing a clean, single-step recovery or setup process. Decoupling Boot Files for Faster Drives On powerful boards like those using the Rockchip RK3588, running an entire system from an SD card or eMMC creates a storage bottleneck. The ideal setup separates where the board starts from where it runs: loading basic boot files from tiny onboard memory (SPI NOR flash), then handing the heavy lifting off to a fast NVMe SSD or SATA drive. View the full article
-
[Armbian newsletter] - Armbian release 26.8
Rebuilding the tools you actually touchKernel 7.1 across the tree, a rewritten installer, Imager 2.0, and UEFI ISO images Three rewrites in one cycleMost releases are a long list of small improvements. This one had three larger pieces landing at roughly the same time, and all three touch parts of Armbian that people use directly rather than parts they only read about in changelogs. The installer was rewritten. Armbian Imager reached 2.0. And our CI moved out of the repository it had outgrown into one built for the job. None of these were planned to coincide; they simply reached the point where postponing them again would have cost more than doing them. The installer rewrite is the one I expect people to notice first. It now ships as an armbian-config module, which means it is unit-tested, the same way the rest of armbian-config is tested, rather than living as a script that everyone was slightly afraid to touch. It can target SPI and MTD, treats eMMC and NVMe as separate flows instead of pretending they are the same thing, can flash a bootloader on its own, and — this one is overdue — reports when a bootloader write fails instead of printing "Done." and leaving you to find out at the next boot. As always, every image in this release was manually validated for basic functionality. The automation keeps improving, but a board that boots in CI and a board that boots on a desk are still two different things. Igor Project Manager Changes overviewThis release advances on three fronts: kernel and firmware baselines moved forward across the entire tree, the tooling around installing and writing images was rebuilt, and the build and CI infrastructure was restructured onto Debian Trixie with a weekly stable cadence. Kernels and firmwareMainline support moves to 7.1 stable, with 7.2 available on edge branches for rockchip64, meson64, mvebu64, sunxi and bcm2711. U-Boot went to v2026.07 across most of boards, including the Rockchip RK35xx family, Amlogic, i.MX6, and the mvebu. A number of long-carried patches were finally dropped this cycle because upstream fixed them properly — the 8250 DMA reopen crash, the SysRq-via-BREAK handling, several sunxi and meson64 patches. Carrying fewer patches is not a headline feature, but it is what makes the next kernel bump cheaper than the last one. Wireless driver cleanupThe rtl8852bs, rtl8189es, rtl8192eu and uwe5622 drivers now live in dedicated Armbian repositories, build against up to 7.2, and are several thousand compiler warnings quieter than they were in June. That work was not cosmetic: going through the warnings surfaced a use-after-free in the uwe5622 probe path, a NULL dereference on efuse allocation failure, a leaked path reference, and a handful of unbounded copies in ioctl handlers. Vendor Wi-Fi blobs have been the least-inspected code in the tree for years. They are meaningfully less so now. Incoming hardwareNew this cycle: Anbernic RG DS and RG Vita Pro, Radxa Cubie A7Z and Dragon Q6A/Q8B, Seeed reComputer RK3576 and RK3588 DevKits, TI BeagleBadge and TMDS64EVM, Orange Pi 4 Pro and Zero 3W, Sovol Zero and SV08, Walnut Pi Box and 1B, EmbedFire LubanCat 5IO, LuckFox Nova, SpacemiT K3 Pico-ITX, Milk-V DuoS, Avnet MaaXBoard 8ULP, NanoPi NEO3 Plus, KICKPI K3B, Graperain G3568 v2, EASY EAI Nano, Mellow Fly C5, CIX P1, Xiaomi Pad 6S Pro and Tanix TX6S. Fourteen existing boards were promoted to standard support, a few dropped to community support, and Banana Pi R2 came back from the dead on 6.18. Imager and image formatsArmbian Imager 2.0 adds QDL and UFS flashing for Qualcomm targets, pulls the board registry from the Armbian API rather than shipping a copy that goes stale, and enumerates devices more carefully on both Windows and Linux. UEFI images can now be built as bootable live ISOs through the new image-output-iso extension. This makes Armbian directly usable over IPMI virtual CD and in cloud environments where an ISO is the only accepted input. The download and redirector infrastructure was extended to carry those ISOs alongside the compressed raw images. Build framework and CICI moved out of armbian/os into its own armbian/ci repository. Runners register through NetBox, each one carrying its own proxy and cache export configuration, and a watchdog automatically retries runs killed by stalled runners rather than leaving a red cross for someone to notice in the morning. Stable builds now run weekly. The default build host and Docker base image are Debian Trixie, which forced a long tail of fixes to older U-Boot trees against GCC 14 and SWIG 4.3 — the kind of work that is invisible when it succeeds. riscv64 images are now generated natively, and kernel patch rewriting runs in parallel with stricter From-header hygiene. Every board, every promotion and every one of the 787 merged pull requests is listed in the release notes. Thank you787 pull requests went into this release, from long-standing team members and from people who showed up once to fix a device tree on a board nobody else owns. Both matter. The wireless cleanup in particular was one contributor deciding that thousands of warnings were worth working through, one file at a time. And to our partners and donors — hardware, infrastructure, engineering time, and money — thank you. The infrastructure work in this release is expensive in exactly the way that is hard to fundraise for, and it happened because you make it possible. View the full article
-
[Armbian newsletter] - Github Highlights
This week's changes center on expanded board and platform support, a modernized build and release pipeline anchored on Debian Trixie and ISO output, and a substantial documentation and release-process overhaul. On the hardware side, the EmbedFire LubanCat 4 (RK3588S) and Xiaomi Pad 6S Pro (sheng) join as new boards, Tanix TX6S is promoted to Supported, and Banana Pi R2 (MT7623) returns with kernel 6.18, edge 7.1, and U-Boot 2026.07. The reComputer RK3588 moves to the Panthor open-source GPU stack, NanoPCT6 U-Boot advances to v2026.07, and reComputer RK3576/RK3588 receives U-Boot fixes for SPI boot, NVMe, and rockusb. Several Rockchip and Qualcomm device trees are corrected, and RTL8852BS, RTL88x2CS, and related wireless drivers are refreshed with substantial warning cleanup. Build infrastructure sees the official host and default Docker image switch to Debian Trixie, Ubuntu Noble dropped from release and SDK targets, and image signing extended to every format. UEFI current/edge targets now ship as ISO for both minimal and desktop variants, nightly builds are restricted to platinum boards, and SDK CI moves to self-hosted runners with auto-retry and dispatch-driven index updates. A weekly stable build with automatic version bump is now scheduled. Documentation and release tooling receive extensive rework: armbian-config pages are reorganized under /config/ with per-subcategory splits, per-app SEO pages and category hubs are emitted, and the manual changelog is replaced by per-release pages with a quarterly digest published to docs.armbian.com. Release-summary generation now groups by source repository, recovers PR links, and is anchored to release windows. #Armbian #EmbeddedLinux #Rockchip #DebianTrixie #ReleaseEngineering Changesaction: include .iso images in the release assets manifest. by @igorpecovnik in armbian/build#10495action: sign every image format, not only .img.xz. by @igorpecovnik in armbian/build#10497Add board: EmbedFire LubanCat 4 (RK3588S). by @miskin-lee in armbian/build#10505Add support for Xiaomi Pad 6S Pro (sheng). by @code002-2 in armbian/build#9988arm64: dts: rockchip: rk3588s-orangepi-5: route ES8388 MCLK to the IO…. by @defcom5-rockchip in armbian/build#10493arm64: dts: rockchip: youyeetoo-r1: fix PCIe reset gpio and drop spi0 stub. by @SuperKali in armbian/linux-rockchip#530assets: add 8 missing app logos + improve the Home Assistant logo. by @igorpecovnik in armbian/configng#994Banana Pi R2 (mt7623): back from the dead — kernel 6.18 + edge 7.1, u-boot 2026.07. by @igorpecovnik in armbian/build#10457board-images: add lubancat-4.png. by @miskin-lee in armbian/armbian.github.io#418board: add BT support to bananpim5pro edge kernel. by @efectn in armbian/build#10445board: rk3588: switch reComputer RK3588 to Panthor open-source GPU stack. by @Mkiring in armbian/build#10320Board: tanix-tx6s-axp313 promote to Supported. by @alnahian2011 in armbian/build#10459bootscripts: seeed-rk35xx: harden armbianEnv.txt import against CRLF and invalid fdtfile. by @Mkiring in armbian/build#10474chore(license): declare GPL-2.0-or-later and add SPDX headers. by @SuperKali in armbian/imager#182ci: also publish an .iso from the SDK build. by @igorpecovnik in armbian/sdk#38ci: auto-retry SDK runs killed by runner stalls. by @igorpecovnik in armbian/sdk#42ci: compress qcow2 again + move image builds to self-hosted runners. by @igorpecovnik in armbian/sdk#41ci: dispatch download-index from the build, drop the separate workflow + watchdog. by @igorpecovnik in armbian/sdk#44ci: keep the mirror schedule alive. by @igorpecovnik in armbian/phytium-linux-kernel#1ci: weekly stable build on Mondays + automatic version bump. by @igorpecovnik in armbian/ci#56config: add git_sources.json with pinned source SHA1s. by @igorpecovnik in armbian/build#10453css: uniform app-page logo size (.app-logo). by @igorpecovnik in armbian/documentation#981delete-old-releases: keep last N stable releases by version. by @igorpecovnik in armbian/ci#57docs(markdown): clean up the armbian-config section pages. by @igorpecovnik in armbian/configng#995docs(markdown): emit per-app SEO pages + category link hubs. by @igorpecovnik in armbian/configng#991docs(markdown): point in-page armbian-config links at /config/. by @igorpecovnik in armbian/configng#996docs(markdown): tag app-page logos with .app-logo for uniform sizing. by @igorpecovnik in armbian/configng#993docs: move armbian-config pages to /config/ (keep old URLs). by @igorpecovnik in armbian/documentation#992docs: official build host is Debian Trixie. by @igorpecovnik in armbian/documentation#974docs: split armbian-config System into per-subcategory pages. by @igorpecovnik in armbian/documentation#989external: add arm64 to google-chrome. by @igorpecovnik in armbian/os#485feat(flash): show the kernel version in the confirm summary. by @SuperKali in armbian/imager#184Fix -Warray-bounds, -Wformat-truncation and -Wframe-larger-than (73/8/2 -> 0). by @iav in armbian/wifi-rtl8852bs#19Fix two clang findings: sscanf %7s overflow in mp ioctl, uninitialised max_bw in rtw_vht. by @iav in armbian/wifi-rtl8852bs#21fix(firstlogin): remove .not_logged_in_yet marker via EXIT trap. by @Mkiring in armbian/build#10450fix(rockchip64-6.18): drop 8250 DMA reopen patch, fixed upstream in 6.18.y. by @igorpecovnik in armbian/build#10482fix(rockchip64-7.1): drop 8250 DMA reopen patch, fixed upstream in 7.1.9. by @iav in armbian/build#10479fix(sm8250-6.18): rebase fastrpc revert patches onto current 6.18.y. by @igorpecovnik in armbian/build#10483fix(system): make overlayfs work out of the box. by @f00b4r0 in armbian/configng#989generate-armbian-images-json: fix empty nightly (ci) feed. by @igorpecovnik in armbian/armbian.github.io#415generate_CODEOWNERS: handle multi-dir KERNELPATCHDIR (fixes malformed spacemit-k3 entry). by @igorpecovnik in armbian/build#10499generate_targets: assemble riscv64 images on X64 runners, not native riscv. by @igorpecovnik in armbian/armbian.github.io#409generate_targets: update artifact/image runner mappings. by @igorpecovnik in armbian/armbian.github.io#405hal_ld_file: compose the external parameter file path after the folder is known. by @iav in armbian/wifi-rtl8852bs#25hal_ld_file: restore the missing continue in the TX power limit column-define stage. by @iav in armbian/wifi-rtl8852bs#24image-output-abl: wait for loop partition node before blkid (fix flaky build). by @igorpecovnik in armbian/build#10491images json: promote an image in .iso as well as .img.xz. by @igorpecovnik in armbian/armbian.github.io#412install-engine: silence null-byte warnings from the Rockchip probe. by @igorpecovnik in armbian/configng#986kernel config hash: ignore modifications the source config already declares. by @iav in armbian/build#10367kernel-debug-tiers: tier 2 enables PROC_KCORE and KALLSYMS_ALL for post-mortem tooling. by @iav in armbian/build#10458make-yaml-redirector: pass inputs through env, not inline ${{ }}. by @igorpecovnik in armbian/actions#38mirrors: add Poland and Sweden to the flag map. by @igorpecovnik in armbian/documentation#976nanopct6(-lts): u-boot: bump to v2026.07. by @rpardini in armbian/build#10511nav: point Unit Test Status at the unit tests. by @igorpecovnik in armbian/documentation#987osdep_service_linux: release the path reference taken by kern_path(). by @iav in armbian/wifi-rtl8852bs#23patching: tolerate non-ASCII From:/Subject: headers (fix sunxi 'got Header' build abort). by @igorpecovnik in armbian/build#10481phytium-embedded: switch to Armbian kernel mirror, rename current->vendor, drop legacy. by @igorpecovnik in armbian/build#10467PocketBeagle 2 - Disable building Desktop images. by @Grippy98 in armbian/build#10466proc: read only what was written in the sa_query / tx_deauth / tx_auth handlers. by @iav in armbian/wifi-rtl8852bs#22reComputer RK3576/RK3588: U-Boot fixes for SPI boot, NVMe, rockusb. by @Mkiring in armbian/build#10471recomputer-rk3588: do not fail the image when Panthor firmware is absent. by @igorpecovnik in armbian/build#10487recomputer-rk35xx-common: drop bluez juggle vs fcs960k-aic-bluez. by @rpardini in armbian/build#10358redirector: use download_path_archive for the archive variant. by @igorpecovnik in armbian/armbian.github.io#416Refactor CDN redirector workflow (dedupe + fix status classification). by @igorpecovnik in armbian/armbian.github.io#404release targets: drop Ubuntu noble. by @igorpecovnik in armbian/armbian.github.io#413release-doc: group by source repo, recover missing PR links. by @igorpecovnik in armbian/armbian.github.io#423release-summary: publish the quarterly digest to docs.armbian.com. by @igorpecovnik in armbian/armbian.github.io#420release-summary: push the docs PR as armbianworker. by @igorpecovnik in armbian/armbian.github.io#422release-summary: weekly-only GitHub releases, release-anchored quarterly window. by @igorpecovnik in armbian/armbian.github.io#421release-targets: add Raspberry Pi 5 virtual board. by @igorpecovnik in armbian/armbian.github.io#408release-targets: nightly only for platinum boards, block the rest. by @igorpecovnik in armbian/armbian.github.io#410release-targets: ship generic UEFI apps as .iso, not raw. by @igorpecovnik in armbian/armbian.github.io#414release-targets: UEFI current/edge images output ISO (minimal + desktop). by @igorpecovnik in armbian/armbian.github.io#411releases: replace the manual changelog with per-release pages. by @igorpecovnik in armbian/documentation#984replace patch From: headers across the framework with something meaningful. by @EvilOlaf in armbian/build#10472RK3506: Update ddr / tee / loader blobs. by @vidplace7 in armbian/rkbin#51rockchip64: rk356x rkvdec2: drop stray 4th interrupt cell. by @iav in armbian/build#10455rtl8852bs: bump driver to 58840d11 (2026-08-18). by @iav in armbian/build#10460rtl88x2cs: bump driver to a2066739 (2026-08-20). by @iav in armbian/build#10501runner-clean: ensure gh and mktorrent on self-hosted runners. by @igorpecovnik in armbian/actions#39runners: authenticate the release lookup and verify before removing anything. by @igorpecovnik in armbian/configng#990RV1103/RV1106: Update ddr / tee / loader blobs. by @vidplace7 in armbian/rkbin#52sc8280xp: drop DP patches now upstreamed in the 7.0.11 vendor kernel. by @igorpecovnik in armbian/build#10504sdk: ship .iso and .img.qcow2 uncompressed. by @igorpecovnik in armbian/sdk#40sdk: stop generating noble images. by @igorpecovnik in armbian/sdk#37seo: per-app software pages + per-page og/meta tags. by @igorpecovnik in armbian/documentation#978Silence -Wmaybe-uninitialized (84 -> 0) and bound the mp ioctl input copy. by @iav in armbian/wifi-rtl8852bs#20sm8550-sheng: scope clang to kernel build (fix linux-headers postinst clang: not found). by @igorpecovnik in armbian/build#10468SpacemiT K1: Revert USB boot and add SPI flash support to Musebook & MusePi Pro. by @pyavitz in armbian/build#10462spacemit-k3: fix ethercat K3 stmmac build (xsk_tx_metadata_request 4-arg API). by @igorpecovnik in armbian/build#10484Switch the build host and default Docker image to Debian Trixie. by @igorpecovnik in armbian/build#10494Tune low-memory Beagle board release targets. by @Grippy98 in armbian/armbian.github.io#403v4l2loopback-dkms: raise kernel skip cutoff from 6.12 to 7.2. by @igorpecovnik in armbian/build#10490wireless drivers: bump rtl8189es pin, re-point rtl8723ds pin. by @iav in armbian/build#10502xiaomi-sheng: add resolute (Ubuntu 26.04) to supported userspaces. by @code002-2 in armbian/build#10464youyeetoo-r1: fix M.2 PCIe reset gpio. by @SuperKali in armbian/build#10469View the full article
-
[Armbian newsletter] - Github Highlights
This week's development centered on kernel and toolchain progression, expanded board support, and substantial wireless driver cleanup. Mainline tracking advanced with kernel bumps to 7.2-rc7, Rockchip edge promoted to 7.2, and sunxi edge moved to 7.1.y. Platform work included loong64 migration from debian-ports to the main Debian archive with corresponding apt repository publishing, mainline kernel and U-Boot enablement on the Avaota A1, restored CONFIG_DWMAC_SUN8I for sunxi64, and a new RK3528 bl32/DDR blob update. Rockchip64 also received backported fixes for an 8250 DMA reopen crash and for CAN TX stalls. Board coverage grew across multiple vendors, with the NanoPi NEO3 Plus (RK3528A) added and standard-support promotions for the Anbernic RG DS and RG Vita Pro, LubanCat 5IO, Luckfox Nova, and Qidi X-6. UEFI device-tree support was extended with Qualcomm X1E patches and new CIX mainline support, while the Radxa E24C was reworked against U-Boot 26.07 and the v7.2-rcX kernel. Wireless stacks saw a coordinated quality pass: the rtl8852bs driver had thousands of compiler warnings resolved across missing prototypes, unused functions and variables, enum conversions, and empty-body cases, alongside a NULL-dereference fix and stricter proc write handling. The uwe5622 (unisocwifi) driver received parallel structural cleanups, including a flexible array conversion and forward-declaration hygiene, with both drivers rebased to their August 2026 upstreams. #Armbian #EmbeddedLinux #Rockchip #Allwinner #MainlineKernel #WirelessDrivers #LoongArch ChangesAdd board image for gateway-gz80x (Amper Gateway AM-GZ80x). by @igorpecovnik in armbian/armbian.github.io#395Add board-images/nanopineo3plus.png. by @cjkoenig in armbian/armbian.github.io#392armbian-config: make sure LC_ALL is consistent. by @efectn in armbian/configng#982armbian-install: add standalone "flash bootloader (u-boot) only" option. by @igorpecovnik in armbian/configng#978armbian-kernel.sh: reword display alert for accuracy. by @EvilOlaf in armbian/build#10405bluetooth-hciattach: only deploy the service on BSP (vendor/legacy) branches. by @defcom5-rockchip in armbian/build#10410board-images: add easy-eai-nano + vendor logo. by @igorpecovnik in armbian/armbian.github.io#399board-images: add graperain-g3568-v2 + vendor logo. by @igorpecovnik in armbian/armbian.github.io#400board-images: add hinlink-hnas. by @igorpecovnik in armbian/armbian.github.io#401board-images: add r69-xr821. by @sormy in armbian/armbian.github.io#397board-images: add xiaobao-nas. by @igorpecovnik in armbian/armbian.github.io#398board: add NanoPi NEO3 Plus (RK3528A). by @cjkoenig in armbian/build#10409board: promote Anbernic RG DS to supported. by @crackerjacques in armbian/build#10415board: promote Anbernic RG Vita Pro to supported. by @crackerjacques in armbian/build#10426board: promote LubanCat 5IO to supported. by @lch08 in armbian/build#10424board: promote Luckfox Nova to supported. by @crackerjacques in armbian/build#10432build-standard-support: publish images under images/ not stable/. by @igorpecovnik in armbian/ci#51ci: add a base-files-only build workflow. by @igorpecovnik in armbian/ci#53Cleanup sunxi patches. by @EvilOlaf in armbian/build#10418delete-old-releases: retain stable per release-series + trunk (version-aware). by @igorpecovnik in armbian/ci#50deprecated various channels and helper service. by @EvilOlaf in armbian/documentation#970docker: forward CPUTHREADS into the build container. by @igorpecovnik in armbian/build#10414drivers: bump uwe5622 to d6bec75 (Aug 15, 2026). by @iav in armbian/build#10439drivers: bump wifi-rtl8852bs to 3e7d964 (Aug 14, 2026). by @igorpecovnik in armbian/build#10419drivers: bump wifi-rtl8852bs to 6099b02 (Aug 15, 2026). by @iav in armbian/build#10441Drop unused locals in sdiohal and cfg80211. by @iav in armbian/uwe5622#14easepi: normalize BOARD_VENDOR to lowercase 'linkease'. by @igorpecovnik in armbian/build#10397Enable mainline kernel & u-boot on Avaota A1. by @juanesf in armbian/build#10434firmware: novatek: add nt36532_n81a_fw_csot.bin for Xiaomi Pad 6S Pro. by @code002-2 in armbian/firmware#139Fix -Wmissing-prototypes warnings across the driver (2179 → 42). by @iav in armbian/wifi-rtl8852bs#7Fix -Wunused-variable: 1545 -> 48 (DEBUG=n) / -> 4 (DEBUG=y). by @iav in armbian/wifi-rtl8852bs#17Fix build with podman - no .Server.Arch. by @cfraz89 in armbian/build#10438Fix ethernet on tx6s-axp-313. by @alnahian2011 in armbian/build#10443Fix misc warning tail: unused labels, no-effect statements, set-but-unused parameters (22 -> 0). by @iav in armbian/wifi-rtl8852bs#13Fix mixed-enum usage outside h2cb_alloc (-Wenum-conversion 143 -> 116). by @iav in armbian/wifi-rtl8852bs#14Fix NULL dereference on efuse alloc/parameter failure. by @iav in armbian/wifi-rtl8852bs#16fix(api): key partner tiers on company_slug. by @SuperKali in armbian/website#41fix(autoconfig): replace existing preset contents. by @Guflly in armbian/imager#179install-engine: drop per-scenario LC_ALL=C (handled globally). by @igorpecovnik in armbian/configng#983install: keep the Rockchip reserved window. by @sormy in armbian/configng#981loong64: migrate from debian-ports to the main Debian archive. by @igorpecovnik in armbian/build#10404mainline: bump to 7.2-rc7. by @EvilOlaf in armbian/build#10396maintenance-rewrite-kernel-patches: enable parallel patch rewriting. by @igorpecovnik in armbian/build#10308nanopi-r4s: add missing #cooling-cells to pwm-fan node. by @iav in armbian/build#10431orangepizero: remove tve from DEFAULT_OVERLAYS. by @EvilOlaf in armbian/build#10417pack-debian: publish loong64 in the apt repo architecture list. by @igorpecovnik in armbian/scripts#93partners: expose company_slug in partners.json. by @igorpecovnik in armbian/armbian.github.io#396Qidi X-6: promote board config to standard support. by @Shadowrom2020 in armbian/build#10412radxa-e24c: rework u-boot 26.07 + v7.2-rcX kernel with USB. by @rpardini in armbian/build#10421release: build uefi-loong64 only as Debian sid CLI minimal. by @igorpecovnik in armbian/armbian.github.io#391Remove unused static functions (-Wunused-function 140 -> 6). by @iav in armbian/wifi-rtl8852bs#15Rename board-images/nanopineo3plus.png. by @cjkoenig in armbian/armbian.github.io#394rk3528: new bl32 v1.08 and ddr 1.14. by @rpardini in armbian/rkbin#50rkr7.2: Revert "ARM: dts: rockchip: add rv1126b-evb1-v12-4x-cam.dts". by @vidplace7 in armbian/linux-rockchip#522rockchip64: backport 8250 DMA reopen crash fix. by @lch08 in armbian/build#10420rockchip64: fix CAN TX stalls and races. by @lch08 in armbian/build#10423rockchip: bump edge kernel to 7.2. by @paolosabatino in armbian/build#10400rtl8852bs: drop RTW_WARN_LMT sed workaround. by @iav in armbian/build#10428rtw_proc: reject unparsable input in three write handlers. by @iav in armbian/wifi-rtl8852bs#18runner-clean: cap CPUTHREADS from the runner's NetBox field. by @igorpecovnik in armbian/actions#37servers feed: expose cputhreads in github-runners.jq. by @igorpecovnik in armbian/armbian.github.io#393setup-usbgadget-network.sh: fix breaking copy&paste flaw. by @EvilOlaf in armbian/build#10406SpacemiT K1: Exclude Musebook from USB boot. by @pyavitz in armbian/build#10435sunxi-edge: update kernel config to 7.1. by @EvilOlaf in armbian/build#10436sunxi64: restore CONFIG_DWMAC_SUN8I (Allwinner EMAC) on current & edge. by @igorpecovnik in armbian/build#10430sunxi: bump edge to 7.1.y. by @EvilOlaf in armbian/build#10399targets-compositor: add include-eos for userspace inventory. by @igorpecovnik in armbian/build#10425uefidt-edge: add qcom x1e patches back. by @amazingfate in armbian/build#10394uefidt: add cix mainline support. by @amazingfate in armbian/build#10411unisocwifi: forward-declare struct sprdwl_intf in intf_ops.h. by @iav in armbian/uwe5622#11unisocwifi: make pcie_addr_buffer::pcie_addr a flexible array member. by @iav in armbian/uwe5622#16unisocwifi: map sm_state onto wifi_connection_state in llstat. by @iav in armbian/uwe5622#12unisocwifi: mark the two intentional switch fall-throughs. by @iav in armbian/uwe5622#15Update odroidxu4-current to 6.6.151. by @belegdol in armbian/build#10413wcn_boot: stop ordering-comparing the int_ap gpio_desc pointer. by @iav in armbian/uwe5622#13wireless: eliminate -Wempty-body (239 -> 0), fix CONFIG_RTW_DEBUG=n build. by @iav in armbian/wifi-rtl8852bs#11wireless: fix h2cb_alloc PHL prototype enum type (-Wenum-conversion 143 -> 27). by @iav in armbian/wifi-rtl8852bs#12View the full article
-
[Armbian newsletter] - Github Highlights
This week's work centers on kernel 7.2 enablement across out-of-tree drivers, a redesigned armbian-install with expanded boot topologies, and new UEFI cloud ISO delivery alongside board additions. The mainline bump to 7.2-rc6 drove a coordinated pass through wireless and peripheral drivers, with compatibility updates landing for uwe5622, rtl8723ds, rtl8852bs, and radxa-aic8800, plus a broader rewrite of kernel configs and patch sets for the new baseline. Rockchip received targeted fixes including RGA3 upscaling flicker correction, scoped rk3576 HS400 DLL calibration, RK808 clkout cell naming, and a switch to CUBIC congestion control as the default. Additional platform work covers mvebu64 kernel bumps to 6.12/6.18/7.1, SpacemiT K1 patch cleanup now that changes are upstream, imx93 build repair on 6.18.42, and a btrfs-enabling CRC32C config change applied across all boards. The armbian-install tool was redesigned as a tested armbian-config module, gaining eMMC/NVMe boot fixes, a split boot-from-eMMC installer, SPI/MTD boot with root on NVMe/SATA/USB, and clearer diagnostics for blocked dual-boot scenarios such as BitLocker or dirty NTFS volumes. Companion configng modules add Proxmox VE on Debian trixie, virt-manager alongside Cockpit for desktop hosts, UEFI defaults for new x86 VMs, and docker-buildx on distro-maintained installs. Image delivery expands with a new image-output-iso extension producing bootable live ISOs from UEFI images for cloud and IPMI virtual CD use, backed by CI changes to sign, torrent, and publish ISO artifacts, and a website update surfacing the new image type. Board support grows with the Milk-V DuoS (aarch64+riscv64), Walnut Pi Box and 1B DDR3 variant, Tanix TX6S, Odin3 bringup, and a promotion pass moving tested boards into supported configuration. #Armbian #EmbeddedLinux #Kernel72 #Rockchip #UEFI #RISCV Changesaction: derive image version from latest distribution release (drop os/stable.json). by @igorpecovnik in armbian/build#10371add 7.2 compatibility. by @EvilOlaf in armbian/uwe5622#10add compat for 7.2. by @EvilOlaf in armbian/rtl8723ds#9Add CONFIG_RTW88_8821AU=m to rockchip64 kernel config. by @adeepn in armbian/build#10322Add iso mapping to action.yml. by @efectn in armbian/actions#36Add Milk-V DuoS, an aarch64+riscv64 board. by @lukaszsobala in armbian/build#10326Add Milk-V vendor logo and Milk-V DuoS board images. by @lukaszsobala in armbian/armbian.github.io#376Add opi zero3w picture. by @igorpecovnik in armbian/armbian.github.io#389Add tanix-tx6s-axp313 board image. by @alnahian2011 in armbian/armbian.github.io#374Add Walnut Pi Box (CM1) and 1B DDR3 variant. by @TallGuy74 in armbian/build#10342Add Walnut Pi Box and 1B-DDR3 board images. by @TallGuy74 in armbian/armbian.github.io#379arm64: dts: sun50i-h618: bananapi-m4-zero: fix EMAC1 to use AC300 internal EPHY. by @juliovendramini in armbian/build#10328armbian-firstlogin: restart ssh.service instead of reload. by @Mkiring in armbian/build#10330armbian-install: don't offer eMMC boot0/boot1/rpmb as install targets. by @igorpecovnik in armbian/configng#962armbian-install: eMMC/NVMe boot fixes + boot-from-eMMC split install. by @igorpecovnik in armbian/configng#972armbian-install: redesign as a tested armbian-config module. by @igorpecovnik in armbian/configng#951armbian-install: tell the user why dual-boot can't proceed (BitLocker vs dirty NTFS). by @igorpecovnik in armbian/configng#974armbian-install: wire up "boot from SPI/MTD, root on NVMe/SATA/USB". by @igorpecovnik in armbian/configng#973auto-retry: fix workflow_run subscription name for standard-support. by @igorpecovnik in armbian/ci#43BeagleBadge prerelease add-ons. by @Grippy98 in armbian/build#10333BeagleY - Fix Patch warnings and add PWM/DSI/Arcade Overlays. by @Grippy98 in armbian/build#10356BeagleY - Fix small broken GRS Arcade Button Mapping. by @Grippy98 in armbian/build#10360bleedingedge: rewrite various kernel configs for 7.2. by @EvilOlaf in armbian/build#10393board-images: add uefi-arm64-dt board image. by @igorpecovnik in armbian/armbian.github.io#388board: orangepi-5b: fix BT host-wake IRQ direction. by @defcom5-rockchip in armbian/build#10372boards: adjust support status (CSC / supported). by @igorpecovnik in armbian/build#10377boards: promote tested boards to conf + maintainer cleanup. by @igorpecovnik in armbian/build#10368build-apps: publish apps images to armbian/distribution. by @igorpecovnik in armbian/ci#48build-lists: rename apps extensions (applications-*) and drop openHAB. by @igorpecovnik in armbian/armbian.github.io#385Build-Switches: document SKIP_COMPRESSING. by @igorpecovnik in armbian/documentation#951ci: add Delete Old Releases workflow (keep newest 3). by @igorpecovnik in armbian/distribution#13ci: bump create-pull-request v7 → v8 (Node 20 → Node 24). by @igorpecovnik in armbian/ci#44ci: push dropdown updates with ACCESS_TOKEN_ARMBIANWORKER (workflow scope). by @igorpecovnik in armbian/ci#45compress-checksum: SKIP_COMPRESSING to leave chosen formats uncompressed. by @igorpecovnik in armbian/build#10323Correct filename. by @lukaszsobala in armbian/armbian.github.io#377data: fix base-files loong64/sid fetch and harden against missing arches. by @igorpecovnik in armbian/armbian.github.io#382docs: refresh README (AI-assisted). by @igorpecovnik in armbian/distribution#14downloads: support the ISO image type. by @igorpecovnik in armbian/website#40drivers: fix out-of-tree wifi build on 6.12.101 (cfg80211 set_monitor_channel). by @igorpecovnik in armbian/build#10332drivers_network.sh remove version guards, rtl8723ds update hash & bind to family. by @EvilOlaf in armbian/build#10353Enable (=m) USB serial, ACM, printer support for RV1106/RK3506 families. by @vidplace7 in armbian/build#10388Extensions-List: document the image-output-iso extension. by @igorpecovnik in armbian/documentation#949extensions: add docker-ce and applications-{ha,kali,omv}. by @igorpecovnik in armbian/build#10369extensions: add image-output-iso — bootable live ISO from UEFI images (cloud/IPMI virtual CD). by @igorpecovnik in armbian/build#10314Feat/add tanix tx6s axp313. by @alnahian2011 in armbian/build#10290fix build on Linux 7.2. by @EvilOlaf in armbian/wifi-rtl8852bs#10Fix maintainers-sync / CODEOWNERS job errors. by @igorpecovnik in armbian/build#10385fix(ci): resolve the AppImage path before cd in the unbundle step. by @SuperKali in armbian/imager#177fix(ci): un-bundle libwayland from the AppImage to stop the EGL abort (#67). by @lukaszsobala in armbian/imager#170fix(rockchip): default to CUBIC congestion control, not Reno. by @yisding in armbian/build#10315generate-actions-report: scan ci repo instead of os. by @igorpecovnik in armbian/armbian.github.io#390generate-armbian-images-json: support UEFI cloud .iso artifacts. by @igorpecovnik in armbian/armbian.github.io#387H50 and T9 led , display and other overlays update. by @gpaesano in armbian/build#10359Handle .iso images in build-images-chunk (torrent + GPG sign). by @igorpecovnik in armbian/ci#42image-output-iso: accept vmlinux-* kernels (arm64 cloud branch). by @igorpecovnik in armbian/build#10325imx93: fix kernel-imx93-current build — drop redundant blk-ctrl.c hunk (6.18.42). by @igorpecovnik in armbian/build#10331installer: default to SPI/MTD boot for NVMe/SATA/USB installs. by @igorpecovnik in armbian/configng#976k3-6.18: make BeagleBadge e-ink overlay patch apply on all branches. by @igorpecovnik in armbian/build#10392kernel-debs: normalize misnamed arm64 vmlinux-* boot image back to vmlinuz-*. by @igorpecovnik in armbian/build#10340kernel: enable CONFIG_CRYPTO_CRC32C=y so btrfs mounts on every board. by @igorpecovnik in armbian/build#10350kernel: k3-6.18: fix BeagleBadge e-ink overlay patch not applying. by @igorpecovnik in armbian/build#10380mainline: bump to 7.2-rc6. by @EvilOlaf in armbian/build#10321maint: rewrite various patch sets. by @EvilOlaf in armbian/build#10384module_cockpit: install UEFI firmware and default new x86 VMs to UEFI. by @igorpecovnik in armbian/configng#969module_cockpit: install virt-manager GUI when a desktop is present. by @igorpecovnik in armbian/configng#964module_docker: install docker-buildx on distro-maintained installs. by @igorpecovnik in armbian/configng#967module_proxmox: add Proxmox VE (Debian trixie), keep the Armbian kernel. by @igorpecovnik in armbian/configng#965mtty: tty_alloc_driver returns ERR_PTR, not NULL. by @iav in armbian/uwe5622#8mvebu64: bump kernels — legacy 6.12, current 6.18, edge 7.1. by @igorpecovnik in armbian/build#10338nanopi-m5: drop GMAC tx_delay to stop the gigabit link flapping. by @SuperKali in armbian/build#10354Odin3 bringup. by @kasimling in armbian/build#10229odroidm1: clear SPI u-boot env on every (re)flash (fixes NVMe boot from SPI). by @igorpecovnik in armbian/build#10351Process_CI: fix broken release-target links (wrong branch + workflow name). by @igorpecovnik in armbian/documentation#952Process_CI: point automation docs at armbian/ci (armbian/os deprecated). by @igorpecovnik in armbian/documentation#950pull-mirrors: fix null mirror flags (rate-limited geoip) + show table in run summary. by @igorpecovnik in armbian/documentation#956radxa-aic8800: bump conditional to allow Linux version 7.2. by @EvilOlaf in armbian/build#10339radxa-dragon-q6a: bump alsa-ucm-conf backport to 1.2.16.1-radxa-1. by @SuperKali in armbian/build#10337radxa-dragon-q8b: pick up EDID changes behind the HDMI bridge. by @SuperKali in armbian/build#10343readme-updater: include armbian/distribution. by @igorpecovnik in armbian/armbian.github.io#386release-targets: live ISO for the cloud UEFI images (uefi-x86 + uefi-arm64). by @igorpecovnik in armbian/armbian.github.io#375release: build UEFI cloud ISO for Debian stable (trixie) minimal. by @igorpecovnik in armbian/armbian.github.io#380Remove interaction with CPUFreq limits. by @EvilOlaf in armbian/uwe5622#9reporting: fix download-images report — archive is the download, distribution is appliances. by @igorpecovnik in armbian/armbian.github.io#372rk35xx: isolate ttyGS0 getty in a private device namespace. by @Mkiring in armbian/build#10313rkr7.2: fixup RGA3 flickering pixels during upscaling. by @nyanmisaka in armbian/linux-rockchip#519rkr7.2: clk: rk808: fix platform_device_id names for the clkout cells + regulator, rtc, pwrkey cells. by @rpardini in armbian/linux-rockchip#518rockchip64: remove obsolete pll hdmi timings patches. by @EvilOlaf in armbian/build#10352rockchip64: RG Vita Pro drivers - address CodeRabbit review comments from #10321. by @crackerjacques in armbian/build#10376rockchip64: scope the rk3576 HS400 DLL calibration to rk3576 only. by @crackerjacques in armbian/build#10375rtl8852bs: bump to 7.2. by @EvilOlaf in armbian/build#10347Run closing finalization for stable builds, not only nightly. by @igorpecovnik in armbian/ci#41runner-clean: drop "Register qemu binfmt handlers" step. by @igorpecovnik in armbian/actions#35software modules: fix status-branch syntax, unsafe rm, and plex dispatch. by @igorpecovnik in armbian/configng#966sophgo-sg200x-aic8800: don't git-fetch the driver during config-dump. by @igorpecovnik in armbian/build#10381SpacemiT K1: Remove patches that made it upstream. by @pyavitz in armbian/build#10344sun60iw2: fix libbpf const build error on resolute (gcc 15). by @igorpecovnik in armbian/build#10383sunxi-6.12: fix AP6275P brcmfmac patch (BRCM_CC_43752 now upstream). by @igorpecovnik in armbian/build#10391sunxi64: a64-olinuxino u-boot — build eMMC device tree (fix eMMC boot). by @igorpecovnik in armbian/build#10349uefi-cloud: enable SQUASHFS so the live ISO boots. by @igorpecovnik in armbian/build#10345uefidt: bump edge kernel to 7.1. by @igorpecovnik in armbian/build#10373Update Armbian build action version. by @igorpecovnik in armbian/sdk#32uwe5622: bump commit hash, include Linux 7.2 support. by @EvilOlaf in armbian/build#10348youyeetoo-yy3568: bump to mainline U-Boot v2026.07. by @hqnicolas in armbian/build#10365📣 Call for testers: new armbian-install. by @igorpecovnik in armbian/build#10176View the full article
-
[Armbian newsletter] - Github Highlights
This week's work centers on a consolidated uwe5622 Wi-Fi/Bluetooth driver, CI and repository infrastructure changes, and board and toolchain enablement across multiple SoC families. The uwe5622 driver has been relocated to a dedicated repository and unified across kernel versions. Initial commits address a use-after-free in mtty_probe(), resolve 157 -Wmissing-prototypes warnings, correct dev_addr const guards for kernels 5.17–6.18 under clang, and fix sdio_pub_int_init for the newer gpiod int_ap API on GCC 14. The build system now sources the driver from this repository, adds a GitHub Actions test workflow, and refactors the associated DVFS patch and kernel configuration. CI and publishing pipelines received substantial attention. Nightly images have moved from the os to the ci release channel, with the download portal, router, and reporting scripts updated to match. The community build now publishes to its own repository and version series, dispatch inputs have been trimmed, and board/maintainer dropdowns are auto-generated for standard-support builds. Stall recovery gained a five-attempt budget with a >50% success gate, later raised back to ten attempts. On the repository side, repo-reprepro now skips missing .deb files rather than aborting and logs a single count of skipped packages. Platform work spans several architectures. New boards include the Anbernic RG Vita Pro (RK3576) handheld and the Recomputer RK3576 devkit, while EasePi-A2/R2 mainline U-Boot advances to v2026.07. Toolchain fixes enable imx8ulp libbpf builds on GCC 15, fit the AM62P/AM62-LP R5 SPL into SRAM under GCC 13, and correct a sunxi-6.12 Bluetooth quirk for the pre-6.16 API. Additional user-visible changes include a new BTRFS_CHECKSUM build switch, F2FS enabled across all kernels via a central config hook, and parallelized patch rewriting scaled to nproc. #Armbian #EmbeddedLinux #RK3576 #uwe5622 #CI ChangesAdd a BTRFS_CHECKSUM build switch for choosing the checksum algorithm. by @dlitz in armbian/build#10288Add board: Anbernic RG Vita Pro (RK3576 gaming handheld). by @crackerjacques in armbian/build#10128add parallel patching switches. by @EvilOlaf in armbian/documentation#945auto-retry-stalled: 5-attempt budget, retry only when >50% of jobs succeed. by @igorpecovnik in armbian/ci#36board: set HAS_VIDEO_OUTPUT at board level so the build-list inventory sees it. by @igorpecovnik in armbian/build#10309Build firmware paths with a single bounded snprintf. by @iav in armbian/uwe5622#6build-community: trim dispatch inputs to match nightly. by @igorpecovnik in armbian/ci#37Build-Switches: document BTRFS_CHECKSUM. by @dlitz in armbian/documentation#946ci: auto-generated board/maintainer dropdowns for standard-support builds. by @igorpecovnik in armbian/ci#40ci: community publishes to armbian/community with its own version series. by @igorpecovnik in armbian/ci#38ci: raise stall-recovery retry budget back to 10 attempts. by @igorpecovnik in armbian/ci#39cix-p1: edge: update patches for 7.1.5, remove version pin. by @EvilOlaf in armbian/build#10297cli-patch: generalize to-git push (PUSH_TO_GITHUB / PUSH_TO_REPO), for u-boot too. by @igorpecovnik in armbian/build#10193docs: document the show-extensions build command. by @iav in armbian/documentation#944Fix -Wmissing-prototypes warnings (157 → 0). by @iav in armbian/uwe5622#5Fix dev_addr const guards for kernels 5.17-6.18 (clang). by @iav in armbian/uwe5622#3Fix use-after-free in mtty_probe() error path. by @enromytase in armbian/uwe5622#4fix(sc8280xp-vendor): rebase DP retrain patch onto moving radxa 7.0.11 branch. by @igorpecovnik in armbian/build#10305gha: add test workflow based on armbian. by @EvilOlaf in armbian/uwe5622#7hetzner: stop masking create_servers.py errors on failure. by @igorpecovnik in armbian/actions#34imx8ulp: enable scoped kernel patches so the libbpf/gcc-15 fix applies. by @igorpecovnik in armbian/build#10312imx8ulp: fix libbpf const-discard so resolve_btfids builds on gcc 15. by @igorpecovnik in armbian/build#10310json: fix duplicate and over-length menu IDs. by @igorpecovnik in armbian/configng#957k3: fit am62p/am62-lp R5 SPL into SRAM (GCC 13 + per-SoC size handling), fix tispl rename & u-boot artifact hashing. by @igorpecovnik in armbian/build#10237kernel: enable F2FS on all kernels (central config hook). by @igorpecovnik in armbian/build#10178map: key nightly/ prefix on download_repository "ci" (nightly moved os→ci). by @igorpecovnik in armbian/armbian-router#42recomputer-rk3576-devkit: edge/mainline enablement. by @rpardini in armbian/build#10235Refactor DVFS patch and clean up uwe5622 driver kernel configuration. by @EvilOlaf in armbian/build#10316repo-reprepro: log a count of skipped debs, not one line each. by @igorpecovnik in armbian/build#10303repo-reprepro: skip debs missing on disk instead of aborting the whole repo. by @igorpecovnik in armbian/build#10301reporting: download-images report (versions provided + anomalies) to job summary. by @igorpecovnik in armbian/armbian.github.io#371rewrite patches: speed up the process up to nproc. by @EvilOlaf in armbian/build#10163rockchip64-6.18: overlays: rewrite README.md. by @EvilOlaf in armbian/build#10295rockchip64: add NanoPi NEO3 onboard fan (CON4) pwm-fan overlay. by @tenox7 in armbian/build#10291rootfs: bump force-rebuild counter to 007. by @igorpecovnik in armbian/build#10311runner-clean: keep qemu-user-static current (fixes stale-qemu cross-arch failures). by @igorpecovnik in armbian/actions#33scripts: source nightly images from armbian/ci releases (moved from os). by @igorpecovnik in armbian/armbian.github.io#370software/jellyfin - Add host mounts for music, books. by @jjg in armbian/configng#955sun60iw2: enable CONFIG_TUN as module for VPN support (Tailscale/WireGuard). by @diegodsgarcia in armbian/build#10302sunxi-6.12: fix bluetooth park-link quirk to use pre-6.16 API (test_bit). by @igorpecovnik in armbian/build#10299uboot: bump EasePi-A2/R2 mainline U-Boot to v2026.07 and add resolute release support. by @ifroncy01 in armbian/build#10274update readme. by @EvilOlaf in armbian/uwe5622#2uwe5622: bump driver commit. by @EvilOlaf in armbian/build#10317uwe5622: source the driver from armbian/uwe5622 (incl. the >=7.1 gpiod fix). by @igorpecovnik in armbian/build#10300uwe5622: switch to unified driver in dedicated repo. by @EvilOlaf in armbian/build#10113wcn_boot: fix sdio_pub_int_init for the >=7.1 gpiod int_ap (GCC14 -Wint-conversion). by @igorpecovnik in armbian/uwe5622#1View the full article
-
[Armbian newsletter] - Armbian Newsletter July 2026
Welcome to the latest Armbian Newsletter: your source for the latest developments, community highlights, and behind-the-scenes updates from the world of open-source ARM and RISC-V computing. The upcoming Armbian release 26.08 will be based on Linux 6.18 LTS, giving users the benefits of a long-term support kernel with improved hardware compatibility, security updates, and ongoing upstream maintenance. This provides a solid foundation for future development while keeping systems stable and reliable. SPONSORED Join us in making open source better! Every donation helps Armbian improve security, performance, and reliability so everyone can enjoy a solid foundation for their devices. Github HighlightsThis week’s work centers on new board enablement and platform maintenance, kernel and U-Boot refresh across Rockchip and Sunxi, and CI/build infrastructure improvements. Board support expanded with the addition of Sovol Zero, SV08, and SV08 Max on the H616 platform, alongside mainline and edge enablement for theBeat the heatRising summer ambient temperatures erode the thermal headroom SBCs rely on, causing silent throttling and instability. Here’s why high-density SoCs like the RK3588 are most at risk, and how to pick the right cooling strategy to stay stable.The factory behind ArmbianWhen you download an Armbian image, flash it to your SD card or SSD, and boot your board, a huge amount of automation has already happened behind the scenes. That invisible engine is what you can see at https://actions.armbian.com. Think of it as the mission control centerView the full article
-
[Armbian newsletter] - The factory behind Armbian
When you download an Armbian image, flash it to your SD card or SSD, and boot your board, a huge amount of automation has already happened behind the scenes. That invisible engine is what you can see at https://actions.armbian.com. Think of it as the mission control center of Armbian’s infrastructure. It doesn’t look flashy, but it represents one of the most important parts of the project: the system that builds, tests, validates, and maintains Armbian for hundreds of boards, kernels, and configurations. Armbian isn’t just an operating system. It’s an automated production platform for embedded Linux.What is actions.armbian.com?actions.armbian.com is Armbian’s public automation dashboard. It shows the real-time status of the workflows that power the project: Image buildsInfrastructure maintenancePackage and repository updatesTesting and validationData generation for tools and download pagesAll of this is driven by GitHub Actions, running on Armbian’s own infrastructure and cloud runners. In simple terms: If Armbian were a factory, actions.armbian.com would be the live dashboard showing which machines are running, which are done, and which need attention.Why does this matter to end users?Even if you never write code, this system directly impacts you: Reliability: Builds are reproducible and verified automaticallyFresh images: New kernels, fixes, and board support are rolled out fasterStability: Failures are detected early, before broken images reach usersScale: Armbian can support hundreds of boards without manual workWithout this automation, Armbian simply couldn’t exist in its current form. What can you see on the site?When you open actions.armbian.com, you’ll find: A list of workflows and jobsTheir current state (success, failed, running)Execution time and timestampsLinks to detailed logs and JSON outputsThis transparency is rare in open-source OS projects. You are literally watching Armbian being built in real time. From code to your SD cardHere’s what typically happens behind the scenes: A developer updates code (kernel patches, board definitions, build scripts)A workflow starts automaticallyThe system prepares a build environmentKernels and packages are compiledOS images are builtChecks and validations are executedResults appear on actions.armbian.comIf certain processes are green, images are publishedThis process runs thousands of times per month and is fully automated. From another perspective, our servers perform the equivalent of ten years of continuous compute time in a single calendar year. Why Armbian needs this level of automationArmbian is not a single OS for one device. It supports: ARM, RISC-V, and x86Dozens of SoCsHundreds of boardsMultiple kernels (legacy, current, edge)Multiple Debian and Ubuntu releasesManually maintaining this would be impossible. Action script behind is what makes Armbian scalable. Not just builds – a full ecosystemThe automation system also handles: Generation of download metadataRepository synchronizationMirror health checksInfrastructure housekeepingStatistics and reportingFuture tools like Armbian Imager integrationIt is the backbone of Armbian’s modern platform approach. Should users look at it?Most users don’t need to. But when something goes wrong, it becomes incredibly valuable: Why is my board image missing?Why did today’s build fail?Is Armbian currently building new images?The answers are often already visible there. In shortactions.armbian.com is the heart of Armbian’s automation. It represents: TransparencyQuality controlEngineering disciplineAnd the reason Armbian can support such a massive hardware ecosystemYou may never interact with it directly, but every Armbian image you use was born there. View the full article