Skip to content
View in the app

A better way to browse. Learn more.

Armbian Community Forums

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

admin

Members
  • Joined

  • Last visited

    Never

Everything posted by admin

  1. 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
  2. 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
  3. 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
  4. 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
  5. 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
  6. 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
  7. 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
  8. 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
  9. 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
  10. 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
  11. 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
  12. 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
  13. 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
  14. 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
  15. 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
  16. 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
  17. 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
  18. 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
  19. 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
  20. 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
  21. Why thermal management is non-negotiable for modern SBCsBy Michael Robinson As Western Europe endures severe summer conditions with climate monitors at the Copernicus Climate Change Service reporting unprecedented regional heatwaves and extreme highs stretching across the continent ambient indoor conditions are testing the limits of self-hosted edge hardware. In unconditioned workspaces, home server racks, and industrial enclosures, rising ambient air temperatures erode the thermal headroom that single-board computers (SBCs) rely on. Modern System-on-Chips (SoCs) such as the Rockchip RK3588, Allwinner, and Broadcom platforms integrate high-performance CPUs, GPUs, and neural processing units on a single piece of silicon. When summer weather drives up ambient baselines, that extreme component density makes uncooled hardware uniquely vulnerable to severe throttling and instability. Why ambient heat hits SBCs harderUnlike desktop workstations equipped with liquid cooling loops or expansive fan arrays, small form-factor boards operate under strict physical constraints: High component density: High-performance SoCs integrate the processor cores, graphics processing unit, memory controller, and power management IC onto a compact footprint.Bare-board defaults: Most SBCs ship without pre-mounted thermal hardware, depending almost entirely on passive air movement around the bare board.Eroded thermal headroom: Passive cooling relies on heat transferring from the warm chip into cooler surrounding air. As room temperatures climb during a heatwave, that temperature gap shrinks, causing the board's baseline resting temperature to rise right along with the room.When workload demands push internal silicon temperatures past safety limits, the hardware triggers automatic protective mechanisms. The system governor scales down operating frequencies and voltages to protect the silicon from permanent damage a process known as thermal throttling. Thermal throttling: The silent bottleneckThermal throttling rarely triggers explicit desktop warnings or system crashes. Instead, it degrades board behavior behind the scenes: Degraded throughput: Code compilation, container builds, and database queries take significantly longer as clock speeds drop under sustained load.Latency spikes and stutter: Frame drops occur during media playback, desktop rendering, or video stream processing.System instability: Prolonged high-temperature operation can destabilize power delivery components, causing unexpected kernel panics or filesystem corruption.When a self-hosted node or edge gateway exhibits sluggish performance on hot summer afternoons, reduced thermal headroom rather than a software bug is frequently the root cause. Real-world impact: High-performance SoCsUnder sustained computational workloads, powerful SBCs like the Orange Pi 5 (powered by the Rockchip RK3588S SoC) clearly demonstrate the need for thermal dissipation hardware: Without thermal protection: Operating as a bare board under full CPU or NPU load, the SoC quickly reaches its built-in thermal threshold, forcing steep frequency cuts within seconds.With passive cooling: Mounting a finned aluminum heatsink provides the added surface area needed to dissipate heat into ambient air, helping the board sustain target frequencies through typical day-to-day tasks.With active cooling: Adding forced airflow via a low-noise fan sweeps hot air clear of the heatsink fins, completely eliminating throttling even during multi-threaded stress testing or local AI workloads.Choosing the right thermal strategyPassive radiative heatsinks: Extruded aluminum or copper blocks rely on natural air convection. They are silent and durable, making them ideal for headless servers provided the board isn't trapped in a sealed plastic case that acts as an insulator.Active cooling (heatsink + fan): Combining a heatsink with a dedicated fan uses forced air to clear heat buildup. This approach is recommended for heavy continuous workloads like video encoding, local machine learning models, or continuous software builds.Full-body aluminum enclosures: These designs turn the entire outer chassis into a heat sink, using internal thermal pads to transfer heat directly away from the SoC.Mounting best practicesAlways use thermal interface material (TIM): Microscopic air gaps between metal and silicon trap heat. Apply a thin thermal pad or an even layer of thermal paste to establish proper conductive contact.Clean contact surfaces: Clear away oils or residue on the SoC die using high-purity isopropyl alcohol before mounting hardware.Ensure even pressure: Verify that the heatsink sits flat and makes uniform contact across the top of the chip.Cool secondary heat sources: Under heavy continuous operation, secondary components such as power management ICs (PMICs), system RAM, and NVMe drives also benefit from smaller passive heatsinks.ConclusionAs seasonal temperature extremes become more common, proactive thermal management is essential for maintaining server stability and device longevity. Adding proper cooling hardware protects your single-board computers from silent performance bottlenecks and ensures reliable operation through summer heatwaves. View the full article
  22. This 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 the Recomputer RK3576 devkit. BeagleY-AI features were forward-ported through kernel 7.2, the Mekotronics R58S2 gained rockusb recovery-key support, and the NanoPi R3S received an ethernet alias. Vendor logos and board imagery were also refreshed on the website. On the kernel and bootloader side, the cix-p1 edge kernel moved to 7.1.5 with refreshed patches, meson64 dropped multiple upstreamed patches, and rk3328 DMC was repaired for newer kernels. U-Boot bumps landed for Rockpi-4A and EasePi-A2/R2 at v2026.07, rk35xx vendor patches were isolated from 2024.03 boards, and Rockchip vendor UFS support was corrected. Several BigTreeTech CB1 and sunxi issues were resolved, including WiFi power sequencing and PWM driver race conditions. Infrastructure changes introduced a BTRFS_CHECKSUM build switch and a DOCKER_FORCE_PULL option, parallelized patch rewriting up to nproc, and raised the CI artifact build timeout from 60 to 120 minutes. Runner cleanup logic now installs and selects docker buildx by flavor, stable-track dispatch inputs were trimmed, and the AI README generator was made feedback-aware while forbidden from inventing paths. #Armbian #EmbeddedLinux #Rockchip #Sunxi #UBoot #CI ChangesAdd a BTRFS_CHECKSUM build switch for choosing the checksum algorithm. by @dlitz in armbian/build#10288add parallel patching switches. by @EvilOlaf in armbian/documentation#945Add Sovol vendor logo and board images (Zero, SV08, SV08 Max). by @lexfrei in armbian/armbian.github.io#366Add support for Sovol Zero, SV08 and SV08 Max (H616). by @lexfrei in armbian/build#10255arduino: fetch qcombin at image-build time, not config time. by @igorpecovnik in armbian/build#10226Build-Switches: document BTRFS_CHECKSUM. by @dlitz in armbian/documentation#946Build-Switches: document DOCKER_FORCE_PULL. by @igorpecovnik in armbian/documentation#943ci: force a fresh Docker image pull on manual builds (default yes). by @igorpecovnik in armbian/ci#30ci: raise artifact build timeout 60 -> 120 minutes. by @igorpecovnik in armbian/ci#33ci: stable-track cleanup — reuse version + trim dispatch inputs. by @igorpecovnik in armbian/ci#31ci: unite & clean the armbian-* build configs (fix apps OCI cache). by @igorpecovnik in armbian/ci#32cix-p1: edge: update patches for 7.1.5, remove version pin. by @EvilOlaf in armbian/build#10297cix-p1: pin edge kernel to v7.1.4 (Panthor patchset breaks on 7.1.5). by @igorpecovnik in armbian/build#10282cli-patch: generalize to-git push (PUSH_TO_GITHUB / PUSH_TO_REPO), for u-boot too. by @igorpecovnik in armbian/build#10193docker: add DOCKER_FORCE_PULL=yes to bypass the base-image pull cache. by @igorpecovnik in armbian/build#10251docker: warn when buildx is missing, and reap leftover per-build images. by @iav in armbian/build#10239Fix Darwin Docker Host Arch. by @Grippy98 in armbian/build#10279fix(patching): render patch summary tables at the reader's real terminal width. by @iav in armbian/build#10262fix(sovol): reuse CB1 u-boot board patches on Sovol H616 boards. by @lexfrei in armbian/build#10285fix(sunxi): use named i2c-gpio properties on BigTreeTech CB1. by @lexfrei in armbian/build#10287generate_targets: build rootfs-riscv64 on the native ubuntu-24.04-riscv runner. by @igorpecovnik in armbian/armbian.github.io#363k3-beagle: forward port BeagleY-AI features through 7.2. by @Grippy98 in armbian/build#10266k3: handle optional boot firmware artifacts cleanly. by @Grippy98 in armbian/build#10272k3: restore required edge platform drivers. by @Grippy98 in armbian/build#10273mainline: bump bleedingedge to 7.2-rc4. by @EvilOlaf in armbian/build#10253mekotronics-r58s2: Make recovery key enter rockusb mode. by @HeyMeco in armbian/build#10257meson64-6.18: drop upstreamed pinctrl-meson can_sleep patch. by @igorpecovnik in armbian/build#10277meson64-7.1: drop 2 upstreamed patches + rebase aiu HDMI fix onto v7.1.5. by @igorpecovnik in armbian/build#10278nanopi-r3s: Add "ethernet1" alias for the LAN port. by @dlitz in armbian/build#10275orangepi5: add AP6275P support to non-vendor kernels. by @efectn in armbian/build#10289readme-updater: forbid inventing directory/file paths in generated README. by @igorpecovnik in armbian/armbian.github.io#369readme-updater: make the AI README generator feedback-aware. by @igorpecovnik in armbian/armbian.github.io#365realtek-rtd1619b: don't error on int/pointer conversions (gcc >= 14). by @igorpecovnik in armbian/build#10283recomputer-rk3576-devkit: edge/mainline enablement. by @rpardini in armbian/build#10235recomputer: drop 'Devkit' from BOARD_NAME. by @igorpecovnik in armbian/build#10256release-targets: blacklist sk-am62-lp from stable builds. by @igorpecovnik in armbian/armbian.github.io#368release-targets: drop deprecated DESKTOP_ENVIRONMENT_CONFIG_NAME / DESKTOP_APPGROUPS_SELECTED. by @igorpecovnik in armbian/armbian.github.io#362Revert "odroidc2: u-boot: use minimal patchset for v22.01 u-boot". by @ssilnicki-dev in armbian/build#10265rewrite patches: speed up the process up to nproc. by @EvilOlaf in armbian/build#10163rk35xx u-boot: isolate 2024.10-only vendor patches from the 2024.03 boards. by @igorpecovnik in armbian/build#10281rockchip64-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#10291rockchip64: fix rk3328 dmc driver on newer kernels. by @paolosabatino in armbian/build#10261rockpi-4a: bump u-boot to v2026.07 with btrfs root and working SPI. by @iav in armbian/build#10260runner-clean: install docker buildx if not present. by @igorpecovnik in armbian/actions#30runner-clean: pick buildx package by docker flavor (docker-ce vs docker.io). by @igorpecovnik in armbian/actions#32runner-clean: simplify buildx install to docker-buildx only (drop jammy). by @igorpecovnik in armbian/actions#31SpacemiT K1: Enable PCIe on OrangePi R2S and add other misc thermal spi and pcie fixups. by @pyavitz in armbian/build#10269starfive2-vendor: fix img-rogue build on GNU Make 4.4 (trixie). by @igorpecovnik in armbian/build#10286sunxi64: build sunxi pwm driver in to fix ac300 EPHY probe race. by @lexfrei in armbian/build#10242sunxi: cb1: fix wifi pwrseq clock name so the 32k LPO is actually enabled. by @lexfrei in armbian/build#10240sunxi: cb1: stop exposing wifi power lines as gpio LEDs. by @lexfrei in armbian/build#10241sunxi: drop upstreamed kernel patches failing as 'previously applied' (6.12/6.18/7.0). by @igorpecovnik in armbian/build#10276sunxi: fix BigTreeTech CB1 patches failing to apply (all kernel branches). by @igorpecovnik in armbian/build#10252u-boot: Rockchip vendor u-boot fix UFS being utterly broken. by @HeyMeco in armbian/build#10254uboot: bump EasePi-A2/R2 mainline U-Boot to v2026.07 and add resolute release support. by @ifroncy01 in armbian/build#10274Update vendor logo. by @igorpecovnik in armbian/armbian.github.io#364uwe5622: switch to unified driver in dedicated repo. by @EvilOlaf in armbian/build#10113 View the full article
  23. This week's updates center on new hardware enablement, a broad U-Boot v2026.07 modernization, and build system hardening for toolchain and infrastructure changes. Board support expanded across multiple SoC families, including the X88 PRO RK3566 TV box, Avnet MaaXBoard 8ULP (i.MX8ULP), EASY EAI Nano (RV1126), and the AYN Odin3. The Youyeetoo R1 v3 was promoted to standard support with named audio outputs, while the Radxa Dragon Q8B gained an edge kernel (7.1) target. Rockchip work included RK3588 CAN support for kernels 6.18/7.1/7.2, HDMI-RX fixes on the OrangePi 5 Ultra, and Mixtile Blade3 refinements on the 7.2 bleeding edge. A coordinated U-Boot bump to v2026.07 landed across Helios4, Odroid HC4/M1, Turing RK1, Radxa E52C, Qidi X6, Mekotronics R58X-Pro, and the Espressobin/Macchiatobin (paired with TF-A 2.14.0). This surfaced toolchain issues on Trixie, addressed through SWIG 4.3 pylibfdt compatibility, demotion of gcc 14 int-conversion and implicit-declaration errors to warnings, and related pin cleanups. Infrastructure work strengthened build reliability and CI. The rootfs stage gained DNS fallback and apt retry hardening for chroot operations, armbian-firstlogin received power-loss recovery with atomic writes, and armbian-install now reports bootloader write failures explicitly. Docker framework updates enable native riscv64 image generation on trixie and noble runners, while new extensions introduce sysrq serial trigger, kernel-debug tiers, ram-boot via rkusbboot, and generic SATA park-on-shutdown enabled by default on the Odroid HC4. #Armbian #EmbeddedLinux #UBoot #Rockchip #RISCV ChangesAdd support for X88 PRO RK3566 TV box. by @Ovaday in armbian/linux-rockchip#500Add AI-driven README updater (central, cross-repo). by @igorpecovnik in armbian/armbian.github.io#359Add Avnet MaaXBoard 8ULP (i.MX8ULP) support. by @govindsi in armbian/build#9991Add AYN Odin3 firmware. by @kasimling in armbian/firmware#136Add ayn-odin3 board image. by @kasimling in armbian/armbian.github.io#358Add board: EASY EAI Nano RV1126. by @hqnicolas in armbian/build#10154Add minimal SWT6621S firmware support for KICKPI K3B. by @retro98boy in armbian/firmware#134armbian-firstlogin: power-loss recovery and atomic writes. by @mingzhangqun in armbian/build#9954armbian-install: report bootloader write failures instead of "Done.". by @iav in armbian/build#10204artifact-rootfs: surface git-log failure when computing configng hash. by @igorpecovnik in armbian/build#9849board: aml-c400-plus: Fix eMMC boot format and partition layout. by @jomadeto in armbian/build#9911boards/easy-eai-nano: enable usb and brcm wifi. by @hqnicolas in armbian/build#10177brcm: add brcmfmac firmware aliases for easy-eai nano (rv1126). by @igorpecovnik in armbian/firmware#133bsp: generic SATA park-on-shutdown (HDD_PARK_ON_SHUTDOWN), enable on Odroid HC4. by @igorpecovnik in armbian/build#10191bsp: use kernel version argument in ABL postinst scripts (fixes #10108). by @rorystandley in armbian/build#10109can: rockchip: add RK3588 CAN support (for kernel v6.18 / v7.1 / v7.2). by @lch08 in armbian/build#10184ci(board-assets): don't check out fork head under pull_request_target. by @igorpecovnik in armbian/build#10194cix-acpi: bump edge to 7.1.y. by @EvilOlaf in armbian/build#10167Cleanup patches. by @EvilOlaf in armbian/build#10174csc board: NORCO EMB-3531: Do not reset LTE moden. by @retro98boy in armbian/build#10222docker/framework: build riscv64 images on native runners (trixie, noble). by @igorpecovnik in armbian/docker-armbian-build#34docker/framework: generate riscv64 images (trixie, noble, resolute). by @igorpecovnik in armbian/docker-armbian-build#33docker/riscv64: fix cross-compiler availability for generate-dockerfile. by @igorpecovnik in armbian/build#9589docker: allow overriding host_arch for foreign-arch Dockerfile generation. by @igorpecovnik in armbian/build#10211docs: refresh README (AI-assisted). by @igorpecovnik in armbian/ci#29Enable memory compaction and RK630 PHY on Rockchip vendor kernels . by @lukaszsobala in armbian/build#10175Enable pwm gpio. by @frank-f in armbian/build#10238extensions/nvidia: per-distro version detection + runtime auto-disable on no-GPU hosts. by @igorpecovnik in armbian/build#9845extensions/radxa-aic8800: use local dir as download cache. by @rpardini in armbian/build#10156extensions/rkusbboot: easy ramboot mainline u-boot on Rockchip devices. by @rpardini in armbian/build#10158feat(extensions): sysrq-serial-trigger + kernel-debug-tiers (on-device kernel debugging via serial console). by @iav in armbian/build#9776feat(flash): keep the success screen when verification is cancelled. by @SuperKali in armbian/imager#166Fix build for Linux 7.1. by @EvilOlaf in armbian/bcmdhd-dkms#7fix hdmi rx on orangepi5 ultra by adding hpd-gpios. by @pdapandapda in armbian/build#10172fix Radxa U-Boot ITB dependency. by @yisding in armbian/build#10196Fix sata2 target-supply for Orange Pi 3B and Station M2. by @dust-7 in armbian/build#10137fix the hdmirx HPD patch against kernel6.18 & kernel 7.1. by @pdapandapda in armbian/build#10180fix(offline): honor OFFLINE_WORK in git-ref2info and memoize TTL. by @iav in armbian/build#9797gha: disable build cronjobs (moved to armbian/ci). by @igorpecovnik in armbian/os#482git: match safe.directory literally, not as a regex. by @igorpecovnik in armbian/build#10223git: silence spurious SUBSHELL error annotation from safe.directory check. by @igorpecovnik in armbian/build#10225helios4: bump u-boot to v2026.07. by @iav in armbian/build#10183helios4: drop stale u-boot patch dir v2025.10/board_helios4. by @iav in armbian/build#10189input: remotectl: rockchip-pwm: prefer dedicated channel-3 IRQ. by @rpardini in armbian/linux-rockchip#503k3: sk-am62-lp: shrink R5 SPL to fit SRAM + silence k3 cp noise. by @igorpecovnik in armbian/build#10230luckfox-lyra-ultra-w: Add spidev overlay with 2 CS. by @vidplace7 in armbian/linux-rockchip#505mainline: bump bleedingedge to v7.2-rc3. by @EvilOlaf in armbian/build#10181mekotronics-r58x-pro: u-boot: bump to v2026.07. by @rpardini in armbian/build#10232mixtile-blade3: edge: u-boot: fancy it up (lwIP, mbedTLS, efi, btrfs, etc). by @rpardini in armbian/build#10234mvebu64: modernize EspressoBin/MacchiatoBin firmware (u-boot 2026.07 + TF-A 2.14.0 + A3720 fixes). by @igorpecovnik in armbian/build#10213odroidhc4: u-boot: bump to v2026.07, drop upstreamed patch. by @rpardini in armbian/build#10233odroidm1: bump u-boot to v2026.07. by @iav in armbian/build#10201Qidi X6: update to u-boot 2026.07. by @Shadowrom2020 in armbian/build#10228radxa-dragon-q8b: add edge kernel (7.1) target. by @SuperKali in armbian/build#10215radxa-e52c: bump uboot to v2026.07. by @okrc in armbian/build#10135Rk3588 es8388 codec silence log. by @CT1IQI in armbian/build#10198rockchip64-6.18: rework rk3588-0010-fix-clk-divisions to avoid patching include/linux/math.h. by @rpardini in armbian/build#10207rockchip64-7.2: bleedingedge: enable REALTEK_PHY_HWMON. by @rpardini in armbian/build#10206rockchip64-7.2: rk3588-mixtile-blade3, many fixes and additions. by @rpardini in armbian/build#10203rootfs-image: move pre_install_distribution_specific inside install_distribution_specific(). by @rpardini in armbian/build#10157rootfs: DNS fallback for build-time chroot resolv.conf. by @igorpecovnik in armbian/build#10205rootfs: harden chroot apt against transient fetch failures (retries + fail-fast update). by @igorpecovnik in armbian/build#10202rootfs: pin tar for resolute kernel deb install (all families). by @igorpecovnik in armbian/build#10187rootfs: revert resolute tar pin (#10187) — fixed upstream. by @igorpecovnik in armbian/build#10209runner-clean: drop stale amlogic FIP source caches. by @igorpecovnik in armbian/actions#28runner-clean: ensure tree is installed on the host. by @igorpecovnik in armbian/actions#27runner-clean: register qemu binfmt handlers on the host. by @igorpecovnik in armbian/actions#26sc8280xp: fix wrong LINUXCONFIG name for the sc8280xp branch. by @igorpecovnik in armbian/build#10227SpacemiT: Defconfig: Enable CONFIG_PWM_PXA. by @fkpwolf in armbian/build#10182sun55iw3-syterkit: skip TF-A build (SyterKit is self-contained). by @igorpecovnik in armbian/build#10214targets: drop resolute from riscv64 userspace builds (RVA23 vs RV64GC). by @igorpecovnik in armbian/ci#27turing-rk1: bump u-boot v2024.04 → v2026.07 (fix SWIG 4.3 build break on trixie). by @igorpecovnik in armbian/build#10216u-boot: bump 2026.07-rc4/rc5 pins to final v2026.07. by @igorpecovnik in armbian/build#10186u-boot: don't error on implicit declarations (gcc ≥ 14 / trixie). by @igorpecovnik in armbian/build#10221u-boot: fix old pylibfdt build against SWIG ≥ 4.3 (trixie). by @igorpecovnik in armbian/build#10217u-boot: sync btrfs zstd short-extent fix into shadowed board/pool copies. by @iav in armbian/build#10208uboot: demote int-conversion & incompatible-pointer-types to warnings (gcc 14). by @igorpecovnik in armbian/build#10224Up rtw8822b to v30.20.0. by @farwayer in armbian/firmware#135update Helios4 BSP postinst. by @leggewie in armbian/build#9065workflows: add Delete Old Releases (copied from os). by @igorpecovnik in armbian/ci#26workflows: enable build cronjobs (taking over from armbian/os). by @igorpecovnik in armbian/ci#25youyeetoo-r1-v3: bump mainline u-boot to v2026.04. by @SuperKali in armbian/build#10219youyeetoo-r1-v3: promote to standard support and name audio outputs. by @SuperKali in armbian/build#10220View the full article
  24. This week's updates center on expanded board support, Rockchip and Qualcomm platform maturation, and build system refinements. New hardware coverage grew across multiple SoC families, with the Lubancat 5IO (RK3588), KickPi K3B, Mellow Fly C5 3D printer board, and community support for the Orange Pi Zero 3W (Allwinner A733). The Arduino UNO Q advanced to mainline 7.1 on the edge kernel and gained desktop hardware acceleration via Mesa pinned to Trixie backports, while the BeagleY-AI received ISP, IMX219, and VPAC patches. Companion fixes addressed NVMe/SD boot conflicts on the NanoPi M6, Ethernet on the BigTreeTech CB1, and AIC8800 UART Bluetooth on Orange Pi A733 hardware. Rockchip work concentrated on the YY3588 and CM3588-NAS platforms, with device tree cleanups, a corrected HDMI-RX detect GPIO, and quieter DRM logging for dw-hdmi-qp and dw-dp bridges. Newer bl31, bl32, and DDR blobs landed for RK3576, and stale U-Boot was refreshed fleet-wide to resolve a SWIG build break. On the Qualcomm side, SC8280XP was refactored from a board to a family configuration, and the Radxa Dragon Q8B gained UFS image provisioning, QDL flashing support via the imager, and a mainline 7.1 edge target for the Q6A variant. Build and tooling improvements included a new show-extensions CLI command, a switch from the adduser suite to useradd/groupadd during first login, non-interactive Dpkg conffile handling in chroot, and clang compatibility fixes for carried Rockchip64 patches and SpacemiT RTL8852BS builds. The mainline kernel target advanced to 7.2-rc2, and MGLRU was enabled across sunxi, sunxi64, and sun60iw2 kernel configurations. #Armbian #EmbeddedLinux #Rockchip #Qualcomm #SBC ChangesAdd board: Lubancat 5IO (RK3588). by @lch08 in armbian/build#10029Add kickpi-k3b board and KICKPI vendor image. by @retro98boy in armbian/armbian.github.io#355Arduino UNO Q: bump edge kernel to mainline 7.1. by @SuperKali in armbian/build#10171arduino-uno-q: add BOARD_MAINTAINER, INTRODUCED, KERNEL_TEST_TARGET. by @igorpecovnik in armbian/build#10161arduino-uno-q: enable desktop hardware acceleration in Debian Trixie by pinning Mesa to trixie-backports. by @sdeleeuw in armbian/build#10160arm64: dts: rockchip: fix dynamic dclk for CM3588-NAS. by @rpardini in armbian/linux-rockchip#502arm64: dts: rockchip: overlay: yy3588: disable eDP overlay temporarily. by @SuperKali in armbian/linux-rockchip#509arm64: dts: rockchip: yy3588: drop non-existent SPI NOR flash. by @SuperKali in armbian/linux-rockchip#512arm64: dts: rockchip: yy3588: drop unused wifi_disable regulator. by @SuperKali in armbian/linux-rockchip#510BeagleY-AI Add Patches for ISP + IMX219 & VPAC. by @Grippy98 in armbian/build#10129Bigtreetech CB2: bump u-boot to 2026.04. by @JohnTheCoolingFan in armbian/build#10144boards/youyeetoo-yy3588: name audio outputs on pipewire too. by @SuperKali in armbian/build#10146cli: add show-extensions command to list extension hook points. by @iav in armbian/build#10023config: build and expose q8b UFS images on the debian:trixie base. by @SuperKali in armbian/os#478config: drop radxa-dragon-q6a from apps and community trixie base. by @SuperKali in armbian/os#479desktops: add libspa-0.2-bluetooth for OOB Bluetooth headphone audio. by @igorpecovnik in armbian/configng#948drm/bridge: dw-hdmi-qp: limit DDC i2c retries on NACK. by @SuperKali in armbian/linux-rockchip#513drm/rockchip: dw-dp: ratelimit AUX timeout logging. by @SuperKali in armbian/linux-rockchip#514feat(qdl): serve the board registry from the API. by @SuperKali in armbian/imager#163Feat: Add support for the Mellow Fly C5 3D Printer board. by @deece in armbian/build#9584feat: flash locally-built UFS images over QDL. by @SuperKali in armbian/imager#164firstlogin: use useradd/groupadd instead of the adduser suite. by @igorpecovnik in armbian/build#10127Fix ethernet on BigTreeTech CB1. by @JohnTheCoolingFan in armbian/build#10155fix(chroot): add Dpkg conffile options to prevent interactive prompts. by @Grippy98 in armbian/build#10134fix: stop setting LC_ALL in armbian-lang.sh. by @saschabuehrle in armbian/build#10132generate-build-lists: only gate manual runs on team membership. by @igorpecovnik in armbian/armbian.github.io#353jethome: fix jethub-burn extension: add BETA=yes support. by @adeepn in armbian/build#10152k3-beagle: fix malformed csi0-imx219 overlay patch (bad hunk count). by @igorpecovnik in armbian/build#10136kde-neon: switch to resolute base, then disable (broken). by @igorpecovnik in armbian/configng#949kickpik2b: Change vendor from SoC-level to board-level (KICKPI). by @retro98boy in armbian/build#10143mainline: bump to 7.2-rc2. by @EvilOlaf in armbian/build#10150Makena: add SC8280XP firehose and Radxa Dragon Q8B UFS provisioning. by @SuperKali in armbian/qcombin#3media: rockchip: hdmirx: quiet signal-not-lock polling spam. by @SuperKali in armbian/linux-rockchip#515Meson64: Update Waveshare CM4-IO-BASE-B DTS and add emc2305 fixups for driver to BLEEDINGEDGE branch. by @pyavitz in armbian/build#10169nanopi-m6: fix nvme prevents sd card from booting. by @efectn in armbian/build#10170orangepizero3w: Add community support for Orange Pi Zero 3W (Allwinner A733). by @shkolnik in armbian/build#10103Radxa Dragon Q6A: add mainline 7.1 edge kernel target. by @SuperKali in armbian/build#10162release-targets: add radxa-dragon-q8b with ufs extension. by @SuperKali in armbian/armbian.github.io#354rk3576: newer blobs bl31/bl32/ddr. by @rpardini in armbian/rkbin#49rockchip64: fix clang -Wincompatible-pointer-types-discards-qualifiers in carried patches. by @iav in armbian/build#10140rockchip64: yy3588: fix HDMI-RX detect GPIO to GPIO1_D5. by @SuperKali in armbian/build#10151rockchip: bump stale u-boot to fix the SWIG build break (fleet). by @igorpecovnik in armbian/build#10107SC8280XP: Initial refactor from board to family config. by @HeyMeco in armbian/build#9818SpacemiT: Add a current branch to the K3 and update K1 current kernel source URL. by @pyavitz in armbian/build#10138spacemit: rtl8852bs: guard GCC-only warning flags for clang builds. by @iav in armbian/build#10139sun60iw2: bring up AIC8800 UART Bluetooth on the Orange Pi A733 boards. by @shkolnik in armbian/build#10149sunxi, sunxi64, sun60iw2: enable MGLRU in kernel config. by @ValdikSS in armbian/build#10133sunxi: mellowflyc5: port U-Boot to v2026.07 & enable network boot. by @deece in armbian/build#10165Use relative symbolic links for some BSP files. by @retro98boy in armbian/build#10145View the full article
  25. This week's cycle emphasizes broad U-Boot modernization, new board and SoC enablement, and kernel and wireless driver consolidation. A large-scale U-Boot bump moves sunxi 32-bit and 64-bit targets from v2024.01 to v2026.07-rc4, with follow-on updates for self-pinned H616/H618 boards (Zero2W, Zero3, Longan Pi 3H), Mixtile Edge2, NanoPi R5S (now patch-less), and the Youyeetoo YY3588 switching to mainline v2026.04. The imx6 line (UDOO, Cubox-i) was modernized to U-Boot v2026.07 with legacy 6.12, current 6.18, and edge 7.1 kernels. Related toolchain work fixes ODROID-C1, ODROID-XU4, Recore, and X96Q builds under Trixie's GCC 14, and resolves errexit failures on Rockchip SPI boards. Platform expansion introduces community support for the Allwinner A733-based Radxa Cubie A7Z and Orange Pi Zero 3W, Rockchip Graperain G3568 v2, and Anbernic RG Vita Pro and Lubancat-5IO image entries. BeagleY-AI gained USB, PCIe, ISP + IMX219, and VPAC patches on the vendor kernel, alongside GPU acceleration fixes for TI K3 targets and TI Wave5 VPU firmware. Rockchip RV1106 support was split into distinct RV1103G and RV1103B families, and new SPI/NVMe boot and Maskrom recovery paths were added. On the kernel and driver side, sunxi received an H3/H5 DVFS RCU-stall fix, MMC/I2C PM deadlock resolution, MGLRU enablement, and LTE modem USB serial support. Meson64 gained a GPIO pinctrl cansleep series and v7.2-rc1 via bleedingedge, while SpacemiT K1 was updated to linux-7.2.y. The RTL8189ES, RTL8189FS, and RTL8192EU wireless drivers were migrated to dedicated forks with 7.2 compatibility and patch cleanup, and an RTW88 SDIO interrupt storm was addressed. User-visible improvements include swapfile creation fixes, useradd-based first-login provisioning, and video-group access to Rockchip MPP codec devices. #Armbian #EmbeddedLinux #UBoot #Rockchip #Allwinner Changesboard: visionfive2: optimize config for modern U-Boot and single-partition booting. by @zevlaoxie2010 in armbian/build#10097Add Anbernic RG Vita Pro board image. by @crackerjacques in armbian/armbian.github.io#351Add Lubancat-5IO board image and vendor logo. by @lch08 in armbian/armbian.github.io#348Add TI Wave5 VPU firmware. by @Grippy98 in armbian/firmware#132beaglebadge: drop vendor-edge u-boot target (not in ti-u-boot-2026.01). by @igorpecovnik in armbian/build#10126BeagleY-AI Add Patches for ISP + IMX219 & VPAC. by @Grippy98 in armbian/build#10129board: anbernic-rg-ds: make OTG-C port dual-role so USB hubs work. by @crackerjacques in armbian/build#10124Build-Switches: document KERNEL_DO_STUBBLE. by @iav in armbian/documentation#928Bump/rk uboot swig fleet mkspi 2. by @redrathnure in armbian/build#10122chore(deps): patch vulnerable transitive deps. by @SuperKali in armbian/website#33ci(docs-preview): skip publish/comment steps on fork PRs. by @iav in armbian/documentation#934ci: auto-regenerate build lists when image-info.json changes. by @igorpecovnik in armbian/armbian.github.io#349ci: bump image build cap 30m → 45m. by @igorpecovnik in armbian/os-ci-test#24ci: widen auto-retry budget and the systemic-failure threshold. by @igorpecovnik in armbian/os-ci-test#23clk: sunxi-ng: ccu_common: Replace ktime-dependent lock wait loop with udelay. by @deece in armbian/build#10119config: rockpi-e: change rkbin repository and use spl-blobs. by @chenxmqqqq in armbian/build#10027cubie-a7z: Add community support for Radxa Cubie A7Z (Allwinner A733). by @shkolnik in armbian/build#10036docs: add Datacenter access section (Netbird VPN + board access). by @igorpecovnik in armbian/documentation#936docs: document PREFER_NATIVE_ARMHF and enrich arm64-compat-vdso entry. by @iav in armbian/documentation#921docs: exclude docs/README.md from mkdocs build. by @iav in armbian/documentation#933docs: use unpinned python3-dev in setup instructions. by @igorpecovnik in armbian/documentation#935Drop testing-wireless-performance-test.yml. by @igorpecovnik in armbian/armbian.github.io#350Enable USB and PCIe on BeagleY-AI vendor kernel. by @Grippy98 in armbian/build#10115fake-ubuntu-advantage-tools: provide ubuntu-pro-client. by @Grippy98 in armbian/build#10116family-rv1106: Split RV1103G and RV1103B, cleanup overrides. by @vidplace7 in armbian/build#10011feat(api): serve QDL board metadata and proxy-cache firehose assets. by @SuperKali in armbian/website#31feat(qdl): serve the board registry from the API. by @SuperKali in armbian/imager#163firstlogin: use useradd/groupadd instead of the adduser suite. by @igorpecovnik in armbian/build#10127Fix swapfile creation. by @pierg75 in armbian/build#10065Fix TI K3 Suite Matching for Ubuntu Hosts and Enable GPU Acceleration for BeagleBoards. by @Grippy98 in armbian/build#10112fix: stop setting LC_ALL in armbian-lang.sh. by @saschabuehrle in armbian/build#10132Guard config-disabled static helpers to silence -Wunused-function. by @iav in armbian/wifi-rtl8852bs#9Import long-carried armbian/build regd-init fix, with authorship. by @iav in armbian/wifi-rtl8852bs#8imx6 modernization: udoo + cubox-i u-boot v2026.07 + kernel (legacy 6.12 / current 6.18 / edge 7.1). by @igorpecovnik in armbian/build#10098kernel-rust: ship prebuilt Rust crate artifacts in linux-headers. by @iav in armbian/build#10117Makena: add SC8280XP firehose and Radxa Dragon Q8B UFS provisioning. by @SuperKali in armbian/qcombin#3meson64: add GPIO shared-proxy/pinctrl cansleep series (upstream v3). by @adeepn in armbian/build#10090meson64: enable v7.2-rc1 via bleedingedge. by @EvilOlaf in armbian/build#10079mixtile-edge2: u-boot: main: bump (generic) u-boot to v2026.07-rc5. by @rpardini in armbian/build#10071nanopi-r5s: u-boot: main: bump u-boot to v2026.07-rc5 + make it patch-less. by @rpardini in armbian/build#10072odroidc1: fix u-boot build on trixie (GCC 14) via config.mk -fpermissive. by @igorpecovnik in armbian/build#10111odroidxu4: fix u-boot build on trixie (GCC 14 implicit-decl errors). by @igorpecovnik in armbian/build#10110orangepizero3w: Add community support for Orange Pi Zero 3W (Allwinner A733). by @shkolnik in armbian/build#10103recore: fix ATF v2.8.0 build - drop -Wl, prefix from LD flag. by @igorpecovnik in armbian/build#10100refactor(api): drop min_imager_version from QDL enrichment. by @SuperKali in armbian/website#32rockchip64: fix errexit build failure on SPI boards (undefined hook). by @igorpecovnik in armbian/build#10101rockchip64_common: add board_uboot postprocess hooks. by @mingzhangqun in armbian/build#10031rockchip: add support for Graperain G3568 v2. by @rbqvq in armbian/build#10056rockchip: udev: grant video group access to MPP codec devices and DMA-heaps. by @yisding in armbian/build#10085rtl8189es: switch fork, clean up patches, bump to 7.2. by @EvilOlaf in armbian/build#10086rtl8189fs: switch to own fork, add 7.2 compatibility, drop patches from misc. by @EvilOlaf in armbian/build#10092rtl8192eu: switch to own fork, add 7.2 compat, remove integrated patches from misc. by @EvilOlaf in armbian/build#10095shellfmt: run lib/tools/shellfmt.sh, no changes. by @rpardini in armbian/build#10087SpacemiT K1: Update EDGE to linux-7.2.y. by @pyavitz in armbian/build#10123sunxi (32+64-bit): bump u-boot v2024.01 -> v2026.07-rc4. by @igorpecovnik in armbian/build#10089sunxi, sunxi64, sun60iw2: enable MGLRU in kernel config. by @ValdikSS in armbian/build#10133sunxi-6.18: fix H3/H5 RCU stall / CPU hang during DVFS (current kernel). by @igorpecovnik in armbian/build#10083sunxi64: bump self-pinned H616/H618 boards to v2026.07 (zero2w, zero3, longanpi-3h). by @igorpecovnik in armbian/build#10102sunxi64: enable USB_SERIAL_OPTION (module) for GSM/UMTS/LTE modem support. by @pumuckly in armbian/build#10050sunxi: pin mmc and i2c controllers to active to break circular PM deadlock. by @deece in armbian/build#10120uboot: add SPI/NVMe boot support and Maskrom SD-card/flash fixes. by @mingzhangqun in armbian/build#10030wifi: rtw88: sdio: Fix unhandled RX request interrupt storm. by @deece in armbian/build#10121WifiPerformance: update infrastructure section to autotests framework. by @igorpecovnik in armbian/documentation#931x96q: fix u-boot build hang — add missing CONFIG_DRAM_SUNXI_TPR6. by @igorpecovnik in armbian/build#10114youyeetoo-yy3588: switch to mainline U-Boot v2026.04. by @SuperKali in armbian/build#10125youyeetoo: fix 7" touch with TPC2059 config, add YY3588 display overlays. by @SuperKali in armbian/linux-rockchip#507yy3588: fix eDP video port and timing, document panel requirement. by @SuperKali in armbian/linux-rockchip#508View the full article

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.