RSS Bot
Bot-
Posts
4349 -
Joined
-
Last visited
Never
Content Type
Forums
Store
Crowdfunding
Applications
Events
Raffles
Community Map
Everything posted by RSS Bot
-
This week's work centers on a comprehensive CI pipeline overhaul, expanded board and SoC support, and notable U-Boot and kernel modernization across Rockchip platforms. A substantial portion of the changes target CI infrastructure hardening in the new os-ci-test repository, including self-contained release handling, GHCR authentication via builtin tokens, watchdog-based auto-retry for stalled runs, proxy normalization, and sane build timeouts (60m packages, 30m/60m images). Related fixes in armbian/actions resolve datacenter runner proxy issues, while a rootfs change strips mmdebstrap's apt proxy from shipped images. Codeowners pruning of inactive maintainers and a Docker per-build image tag for parallel builds round out the developer-experience work. On the platform side, new board and SoC enablement continues with cix-p1 support, Orange Pi 4 Pro (Allwinner A733) community files, and Radxa Dragon Q6A audio, Chromium, and libbpf fixes. RK3506 and RK3506B are now split with proper ROCKUSB_BLOB handling, and Helios4 gains dual-PWM fan control on 6.18. Kernel configurations enable ATH9K_HTC, NFS client across all three kernels, and REALTEK_PHY_HWMON on rockchip64, while an RK3588 I2S MCLK regression is corrected. U-Boot modernization is broad: rk3308 boards (Rock Pi S, Rock S0) move from v2024.10 to v2026.07 with booti FDT fixes, Khadas VIM3 jumps to v2026.04, and VIM1/VIM2 receive khadas-uboot 0.17.3. The MediaTek Genio and NIO-12L platforms transition to pure mainline v7.1.y with loadaddr fixes for large kernels and initrds, and UEFI builds bump to v7.1 with Phytium dwmac rework. #Armbian #EmbeddedLinux #Rockchip #UBoot #CI Changes(#9400 P2b) Replace echo|pipe subshells with here-strings/parameter expansion. by @iav in armbian/build#9947Add AX210 firmware a0-72. by @ginkage in armbian/firmware#130Add cix-p1 support. by @EvilOlaf in armbian/build#9854add firmware for xiaomi-sheng. by @code002-2 in armbian/firmware#131boards: fix ayn child boards dropped from build matrix (inventory can't follow source). by @igorpecovnik in armbian/build#10054ci(build-all): drop dispatch inputs, always run with fixed defaults. by @igorpecovnik in armbian/os-ci-test#6ci(nightly): expose only branch + version override on dispatch. by @igorpecovnik in armbian/os-ci-test#4ci(watchdog): manual trigger to re-run a run's failed jobs. by @igorpecovnik in armbian/os-ci-test#15ci: blank ambient http(s)_proxy so the runner map is authoritative. by @igorpecovnik in armbian/os-ci-test#18ci: bump build retry attempts 3 → 8. by @igorpecovnik in armbian/os-ci-test#13ci: bump softprops/action-gh-release v2 -> v3 (Node 24). by @igorpecovnik in armbian/os-ci-test#2ci: cosmetic — 'Build' job label, one-line matrix job name. by @igorpecovnik in armbian/os-ci-test#12ci: create + read releases in this repo (self-contained test CI). by @igorpecovnik in armbian/os-ci-test#1ci: DOCKER_SKIP_UPDATE=no (pull & rebuild image, safer). by @igorpecovnik in armbian/os-ci-test#21ci: drop "(cronjob)" suffix from build workflow names. by @igorpecovnik in armbian/os-ci-test#7ci: drop build retry attempts 8 -> 3. by @igorpecovnik in armbian/os-ci-test#19ci: drop the version-only assets-for-download artifact. by @igorpecovnik in armbian/os-ci-test#10ci: expose Framework build branch input on build-all. by @igorpecovnik in armbian/os-ci-test#20ci: ghcr login with builtin GITHUB_TOKEN, mirroring armbian/os. by @igorpecovnik in armbian/os-ci-test#9ci: label chunk jobs with hash-free matrix.name. by @igorpecovnik in armbian/os-ci-test#17ci: probe apt proxy before exporting it (drop stale entries). by @igorpecovnik in armbian/os-ci-test#16ci: push artifacts to org ghcr via ACCESS_TOKEN. by @igorpecovnik in armbian/os-ci-test#5ci: push OCI artifacts to armbian/os via ACCESS_TOKEN. by @igorpecovnik in armbian/os-ci-test#11ci: sane build timeouts (packages 60m, images 30m compute / 60m job). by @igorpecovnik in armbian/os-ci-test#22ci: watchdog to auto-retry runner-stalled runs. by @igorpecovnik in armbian/os-ci-test#14codeowners: drop inactive maintainers (>=365d) from PR pings. by @igorpecovnik in armbian/build#10044Enable 1 GHz frequency for Panthor. by @ginkage in armbian/build#10067Enable 1 GHz frequency for Panthor on mainline. by @ginkage in armbian/build#10035family-rockchip: Split RK3506 / RK3506B. Add ROCKUSB_BLOB. Cleanup overrides. by @vidplace7 in armbian/build#10017firmware: download kernel before removing old (anti-brick) + repo menu badge fix. by @igorpecovnik in armbian/configng#947Fix led trigger for nanopi 5s led-lan2. by @ruabmbua in armbian/build#10028fix(cache): show UFS as its own badge in the cache manager. by @SuperKali in armbian/imager#161fix(ci): cache real build/cache/* dirs so OCI memoization persists. by @igorpecovnik in armbian/os-ci-test#8fix(devices): hide internal/system disks from flash targets (#159). by @SuperKali in armbian/imager#160fix(docker): unique per-build image tag for parallel builds on a shared daemon. by @igorpecovnik in armbian/build#9878genio, nio-12l: bump to pure mainline v7.1.y + loadaddr fixes. by @rpardini in armbian/build#10034genio: u-boot: mt8195 (nio-12l): update addr's map patch for large kernels/initrds. by @rpardini in armbian/build#10039gha-matrix: add short hash-free name to matrix items for job labels. by @igorpecovnik in armbian/build#10053gha: DOCKER_SKIP_UPDATE=no. by @rpardini in armbian/os#476git-ref2info: support gitproxy (git_cdn) source for Makefile version fetch. by @igorpecovnik in armbian/build#10066HOTFIX runner-clean: only clear proxy env, never set it to acng (fixes datacenter runners). by @igorpecovnik in armbian/actions#25kernel configs: enable CONFIG_ATH9K_HTC (Atheros USB wifi), DEBUGFS off. by @igorpecovnik in armbian/build#10032kernel configs: enable NFS client on the 3 kernels that lacked it (NFS rootfs). by @igorpecovnik in armbian/build#10042kernel/rockchip64: fix RK3588 I2S MCLK clk_disable_unused regression. by @SuperKali in armbian/build#10049khadas-vim1 / khadas-vim2: bump prebuilt u-boot blob to khadas-uboot 0.17.3. by @igorpecovnik in armbian/build#9994khadas-vim3: bump mainline u-boot to v2026.04. by @igorpecovnik in armbian/build#10013maint: rewrite various patchsets. by @EvilOlaf in armbian/build#10012mvebu: drive both PWM fans on Helios4 (dual PWM per GPIO bank, 6.18). by @iav in armbian/build#10021mvebu: fix some dmesg warnings for Helios4 . by @neheb in armbian/build#10024orangepi4pro: Add community support for Orange Pi 4 Pro (Allwinner A733) [new files only]. by @shkolnik in armbian/build#9967radxa-cubie-a7z: add board image. by @shkolnik in armbian/armbian.github.io#346radxa-dragon-q6a: fix audio UCM bump, Chromium zink gate, libbpf build. by @SuperKali in armbian/build#10019Rename radxa-cubie-a7z to cubie-a7z for naming consistency. by @shkolnik in armbian/armbian.github.io#347Revert "Enable 1 GHz frequency for Panthor on mainline". by @EvilOlaf in armbian/build#10048rk3308 (rockpi-s, rock-s0): u-boot v2024.10 -> v2026.07 + fix booti FDT. by @igorpecovnik in armbian/build#10062rock-s0: drop u-boot v1.1 MMC patch that can't apply to v2026.07. by @igorpecovnik in armbian/build#10068rockchip64-7.0: drop deprecated patchset. by @EvilOlaf in armbian/build#10038rockchip64: current/edge: enable REALTEK_PHY_HWMON. by @rpardini in armbian/build#10052rockchip64: enable v7.2-rc1 via bleedingedge . by @EvilOlaf in armbian/build#10073rockchip64_common: collapse line-continued expansion exec to single line. by @rpardini in armbian/build#10059rootfs: strip mmdebstrap's apt proxy so it doesn't ship in the image. by @igorpecovnik in armbian/build#10058runner-clean: normalize http(s)_proxy to runner's advertised apt proxy. by @igorpecovnik in armbian/actions#24scripts: fix js-yaml ESM default-import break in actions report. by @igorpecovnik in armbian/armbian.github.io#343stubble: add host dependencies. by @amazingfate in armbian/build#10020stubble: only add host deps when KERNEL_DO_STUBBLE=yes. by @igorpecovnik in armbian/build#10022u-boot/legacy/u-boot-radxa-rk35xx: change a file here to force all rk vendor u-boots to rebuild. by @rpardini in armbian/build#10070u-boot: debug produced binaries with dumpimage -l as well as binwalk. by @rpardini in armbian/build#10063u-boot: v2026.04: own rk3588 blueberry & mixtile DTs (drop kernel symlinks). by @igorpecovnik in armbian/build#10041uefi: bump to v7.1 + arm64:phytium-dwmac rework + x86:applet2. by @rpardini in armbian/build#10033View the full article
-
Kraid is a new Rust-based compiler for Panfrost that replaces the aging Bifrost-rooted compiler stack with a cleaner, more flexible design for modern Mali GPUs, improving IR structure, register allocation, hardware testing, and long-term maintainability. View the full article
-
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. This week: the desktop installer in armbian-config has been rebuilt from the ground up tiered installs, clean uninstalls, and snap-free native browsers across all architectures. Armbian Imager 2.0 is out, rewritten interface and flashing engine, with boards that boot already configured (username, Wi-Fi, timezone) and byte-for-byte write verification. And the NanoPi M5 becomes the first RK3576 board to boot end-to-end from UFS on mainline U-Boot, with no proprietary image in the loop. 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 board portfolio expansion, kernel and U-Boot version bumps, and CI and infrastructure hardening across the build and documentation pipelines. Board support saw notable growth with the introduction of the SpacemiT K3 Pico-ITX and Luckfox Nova (RK3308B), alongside a new generic uefi-arm64-dt family and board intendedArmbian blogMichael RobinsonNative UFS boot lands on the NanoPi M5Armbian’s next release boots the FriendlyElec NanoPi M5 end-to-end from UFS on a mainline U-Boot, with no proprietary recovery image in the loop. It is the first RK3576 board in the catalogue to reach this state, and the integration pattern paves the way for the others. UFS, the storage classArmbian blogDaniele BriguglioMeet our new Armbian Imager 2.0We’re releasing Armbian Imager 2.0. We rebuilt the whole thing, the interface and the flashing engine underneath it. The part you’ll notice first: your board boots already set up. Username, password, Wi-Fi, timezone, language. You tell Imager once, it writes that into the image, and the board comes upArmbian blogDaniele BriguglioWe rewrote how Armbian installs desktops. Here’s what changedA friendlier, faster, snap-free desktop install in armbian-config If you’ve installed a desktop environment with armbian-config over the last few months, you may have noticed things feel different: there’s a tier you can pick, the browser actually works on every arch, uninstall doesn’t take half your system with it, andArmbian blogIgor PecovnikView the full article
-
This week's work centers on board portfolio expansion, kernel and U-Boot version bumps, and CI and infrastructure hardening across the build and documentation pipelines. Board support saw notable growth with the introduction of the SpacemiT K3 Pico-ITX and Luckfox Nova (RK3308B), alongside a new generic uefi-arm64-dt family and board intended to standardize UEFI device-tree targets. Qualcomm enablement advanced through Radxa Dragon Q6A and Q8B work, including UFS provisioning for Kodiak, EDL-based UFS flashing in the imager, and audioreach topology firmware for sc8280xp. Catalog assets were extended for the MaaXBoard 8ULP, Mellow Fly C5, Xiaomi Sheng, and the new Radxa and SpacemiT boards. On the kernel and bootloader front, rockchip64, meson64, and rpi4b edge branches were promoted to the stable 7.1 series, with the rtl8192eu driver rebuilt and re-enabled against the new tree. U-Boot was refreshed on cm3588-nas, nanopik2-s905, and the Luckfox Nova, while updated DDR, BL31, and BL32 blobs landed for RK3528 and new SPL loaders were published for RV1103, RV1106, and RK3506. Targeted kernel-config work restored md/RAID modules on sunxi, enabled MIPI DBI panels on sunxi64, and added CPUFreq support for the SpacemiT K1. Infrastructure changes focused on resilience and resource control. The git-trees workflow gained bounded retries, escalating timeouts, and Google mirror fallbacks; Docker base-image pulls now retry transient GHCR failures and split host dependencies into per-group apt layers. Image compression caps xz memory and thread usage, the info-gatherer no longer exhausts file descriptors, and a new CI policy enforces transparent backgrounds and object-size limits for board and vendor logos, with offending assets re-cropped. #Armbian #EmbeddedLinux #UBoot #Qualcomm #Rockchip ChangesActions: Disable debugsym builds. by @vidplace7 in armbian/MorseMicro-DKMS#7Add Board & Vendor logo for the Mellow Fly C5. by @deece in armbian/armbian.github.io#324Add board SpacemiT K3 Pico-ITX. by @pyavitz in armbian/build#10001Add board: Luckfox Nova (RK3308B). by @crackerjacques in armbian/build#9985Add K3 Pico ITX. by @igorpecovnik in armbian/armbian.github.io#341Add Luckfox Nova board image. by @crackerjacques in armbian/armbian.github.io#332Add MaaXBoard 8ULP board image and Avnet vendor logo. by @govindsi in armbian/armbian.github.io#340Add Radxa Dragon Q8B board image. by @SuperKali in armbian/armbian.github.io#342Add spl_loader bins for RV1103, RV1106, RK3506. by @vidplace7 in armbian/rkbin#46Add Xiaomi Sheng board image. by @code002-2 in armbian/armbian.github.io#337armbian-install: fix boot on UEFI systems. by @EvilOlaf in armbian/build#9945armbian-upgrade: use apt-get to silence apt CLI-warning noise. by @igorpecovnik in armbian/build#9998artifact-uboot: opt-in cache-bust via UBOOT_HASH_EXTRA for prebuilt blobs. by @igorpecovnik in armbian/build#9995board assets: fix 10 board-image dimensions + square the Huawei logo. by @igorpecovnik in armbian/armbian.github.io#334ci: board-asset validation — transparent background + object-size + full monthly scan. by @igorpecovnik in armbian/armbian.github.io#333ci: bound each retry attempt with a 10-minute timeout. by @rpardini in armbian/shallow#8ci: double retry timeout each attempt; fetch from Google mirrors. by @rpardini in armbian/shallow#9ci: enforce MAX_OBJECT_PCT=50 + re-crop the two over-limit board images. by @igorpecovnik in armbian/armbian.github.io#335ci: make git-trees workflow resilient to network failures. by @rpardini in armbian/shallow#7ci: push image-info data branch direct to github (bypass git cache proxy). by @igorpecovnik in armbian/armbian.github.io#338ci: vendor logos must be transparent + ≤80% object fill (+ fix the 6 opaque ones). by @igorpecovnik in armbian/armbian.github.io#336cm3588-nas: u-boot: bump to v2026.07-rc3. by @rpardini in armbian/build#9975docker: retry transient ghcr base-image pulls; guard the auto-pull cronjob. by @igorpecovnik in armbian/build#10006docker: split host deps into per-group apt layers in generated Dockerfile. by @rpardini in armbian/build#9999Feature/sunxi mainline stmmac ac300. by @deece in armbian/build#9952fix(images): hide UFS images from the catalog. by @SuperKali in armbian/imager#157fix(profiles): keep the flash profile picker in sync with Settings. by @SuperKali in armbian/imager#156Flash UFS images to Qualcomm boards over EDL. by @SuperKali in armbian/imager#158image: cap xz compression memory and lower the thread cap. by @igorpecovnik in armbian/build#10005info-gatherer: fix 'Too many open files' from cpu*4 parallel workers. by @igorpecovnik in armbian/build#10014introduce new family uefidt and new board uefi-arm64-dt. by @amazingfate in armbian/build#9923Kodiak: add Radxa Dragon Q6A UFS provisioning XML. by @SuperKali in armbian/qcombin#2luckfox-rk3308b-nova: bump U-Boot to v2026.07-rc4. by @crackerjacques in armbian/build#10010meson64: bleedingedge: enable CONFIG_GPIO_CDEV_V1. by @adeepn in armbian/build#9979nanopik2-s905: bump u-boot to v2026.04. by @igorpecovnik in armbian/build#9989PocketBeagle 2 - Fix NCM Networking w/ACM for Serial. by @Grippy98 in armbian/build#10007qcom/qcs6490: replace Radxa Dragon Q6A adsp/cdsp with linux-firmware. by @SuperKali in armbian/firmware#129qcom/sc8280xp: add Radxa Dragon Q8B audioreach topology. by @SuperKali in armbian/firmware#128radxa-cubie-a5e: tidy BOARD_NAME to "Cubie A5E". by @igorpecovnik in armbian/build#9990remove bleedingedge from all boards. by @EvilOlaf in armbian/build#10016rk3528: updated rkbins ddr/bl31/bl32 for rk3528. by @rpardini in armbian/rkbin#47rockchip64 & meson64: bump edge to stable 7.1. by @EvilOlaf in armbian/build#9980rpi4b: bump edge to 7.1.y. by @EvilOlaf in armbian/build#9982rtl8192eu: fix build against 7.1 and re-enable. by @EvilOlaf in armbian/build#10009SpacemiT K1: Update CPUFreq support EDGE. by @pyavitz in armbian/build#9981sunxi64: Enable CONFIG_DRM_PANEL_MIPI_DBI=m for current and edge configs. by @d93921012 in armbian/build#9984sunxi: restore md modules (software raid modules). by @k-popov in armbian/build#9992Update MorseMicro suite to 1.17.9. by @vidplace7 in armbian/MorseMicro-DKMS#8Update odroidxu4-current to 6.6.143. by @belegdol in armbian/build#10018View the full article
-
This week's work centers on board portfolio expansion, kernel and U-Boot version bumps, and CI and infrastructure hardening across the build and documentation pipelines. Board support saw notable growth with the introduction of the SpacemiT K3 Pico-ITX and Luckfox Nova (RK3308B), alongside a new generic uefi-arm64-dt family and board intended to standardize UEFI device-tree targets. Qualcomm enablement advanced through Radxa Dragon Q6A and Q8B work, including UFS provisioning for Kodiak, EDL-based UFS flashing in the imager, and audioreach topology firmware for sc8280xp. Catalog assets were extended for the MaaXBoard 8ULP, Mellow Fly C5, Xiaomi Sheng, and the new Radxa and SpacemiT boards. On the kernel and bootloader front, rockchip64, meson64, and rpi4b edge branches were promoted to the stable 7.1 series, with the rtl8192eu driver rebuilt and re-enabled against the new tree. U-Boot was refreshed on cm3588-nas, nanopik2-s905, and the Luckfox Nova, while updated DDR, BL31, and BL32 blobs landed for RK3528 and new SPL loaders were published for RV1103, RV1106, and RK3506. Targeted kernel-config work restored md/RAID modules on sunxi, enabled MIPI DBI panels on sunxi64, and added CPUFreq support for the SpacemiT K1. Infrastructure changes focused on resilience and resource control. The git-trees workflow gained bounded retries, escalating timeouts, and Google mirror fallbacks; Docker base-image pulls now retry transient GHCR failures and split host dependencies into per-group apt layers. Image compression caps xz memory and thread usage, the info-gatherer no longer exhausts file descriptors, and a new CI policy enforces transparent backgrounds and object-size limits for board and vendor logos, with offending assets re-cropped. #Armbian #EmbeddedLinux #UBoot #Qualcomm #Rockchip ChangesActions: Disable debugsym builds. by @vidplace7 in armbian/MorseMicro-DKMS#7Add Board & Vendor logo for the Mellow Fly C5. by @deece in armbian/armbian.github.io#324Add board SpacemiT K3 Pico-ITX. by @pyavitz in armbian/build#10001Add board: Luckfox Nova (RK3308B). by @crackerjacques in armbian/build#9985Add K3 Pico ITX. by @igorpecovnik in armbian/armbian.github.io#341Add Luckfox Nova board image. by @crackerjacques in armbian/armbian.github.io#332Add MaaXBoard 8ULP board image and Avnet vendor logo. by @govindsi in armbian/armbian.github.io#340Add Radxa Dragon Q8B board image. by @SuperKali in armbian/armbian.github.io#342Add spl_loader bins for RV1103, RV1106, RK3506. by @vidplace7 in armbian/rkbin#46Add Xiaomi Sheng board image. by @code002-2 in armbian/armbian.github.io#337armbian-install: fix boot on UEFI systems. by @EvilOlaf in armbian/build#9945armbian-upgrade: use apt-get to silence apt CLI-warning noise. by @igorpecovnik in armbian/build#9998artifact-uboot: opt-in cache-bust via UBOOT_HASH_EXTRA for prebuilt blobs. by @igorpecovnik in armbian/build#9995board assets: fix 10 board-image dimensions + square the Huawei logo. by @igorpecovnik in armbian/armbian.github.io#334ci: board-asset validation — transparent background + object-size + full monthly scan. by @igorpecovnik in armbian/armbian.github.io#333ci: bound each retry attempt with a 10-minute timeout. by @rpardini in armbian/shallow#8ci: double retry timeout each attempt; fetch from Google mirrors. by @rpardini in armbian/shallow#9ci: enforce MAX_OBJECT_PCT=50 + re-crop the two over-limit board images. by @igorpecovnik in armbian/armbian.github.io#335ci: make git-trees workflow resilient to network failures. by @rpardini in armbian/shallow#7ci: push image-info data branch direct to github (bypass git cache proxy). by @igorpecovnik in armbian/armbian.github.io#338ci: vendor logos must be transparent + ≤80% object fill (+ fix the 6 opaque ones). by @igorpecovnik in armbian/armbian.github.io#336cm3588-nas: u-boot: bump to v2026.07-rc3. by @rpardini in armbian/build#9975docker: retry transient ghcr base-image pulls; guard the auto-pull cronjob. by @igorpecovnik in armbian/build#10006docker: split host deps into per-group apt layers in generated Dockerfile. by @rpardini in armbian/build#9999Feature/sunxi mainline stmmac ac300. by @deece in armbian/build#9952fix(images): hide UFS images from the catalog. by @SuperKali in armbian/imager#157fix(profiles): keep the flash profile picker in sync with Settings. by @SuperKali in armbian/imager#156Flash UFS images to Qualcomm boards over EDL. by @SuperKali in armbian/imager#158image: cap xz compression memory and lower the thread cap. by @igorpecovnik in armbian/build#10005info-gatherer: fix 'Too many open files' from cpu*4 parallel workers. by @igorpecovnik in armbian/build#10014introduce new family uefidt and new board uefi-arm64-dt. by @amazingfate in armbian/build#9923Kodiak: add Radxa Dragon Q6A UFS provisioning XML. by @SuperKali in armbian/qcombin#2luckfox-rk3308b-nova: bump U-Boot to v2026.07-rc4. by @crackerjacques in armbian/build#10010meson64: bleedingedge: enable CONFIG_GPIO_CDEV_V1. by @adeepn in armbian/build#9979nanopik2-s905: bump u-boot to v2026.04. by @igorpecovnik in armbian/build#9989PocketBeagle 2 - Fix NCM Networking w/ACM for Serial. by @Grippy98 in armbian/build#10007qcom/qcs6490: replace Radxa Dragon Q6A adsp/cdsp with linux-firmware. by @SuperKali in armbian/firmware#129qcom/sc8280xp: add Radxa Dragon Q8B audioreach topology. by @SuperKali in armbian/firmware#128radxa-cubie-a5e: tidy BOARD_NAME to "Cubie A5E". by @igorpecovnik in armbian/build#9990remove bleedingedge from all boards. by @EvilOlaf in armbian/build#10016rk3528: updated rkbins ddr/bl31/bl32 for rk3528. by @rpardini in armbian/rkbin#47rockchip64 & meson64: bump edge to stable 7.1. by @EvilOlaf in armbian/build#9980rpi4b: bump edge to 7.1.y. by @EvilOlaf in armbian/build#9982rtl8192eu: fix build against 7.1 and re-enable. by @EvilOlaf in armbian/build#10009SpacemiT K1: Update CPUFreq support EDGE. by @pyavitz in armbian/build#9981sunxi64: Enable CONFIG_DRM_PANEL_MIPI_DBI=m for current and edge configs. by @d93921012 in armbian/build#9984sunxi: restore md modules (software raid modules). by @k-popov in armbian/build#9992Update MorseMicro suite to 1.17.9. by @vidplace7 in armbian/MorseMicro-DKMS#8Update odroidxu4-current to 6.6.143. by @belegdol in armbian/build#10018View the full article
-
Join us on June 18 for our low-latency ML video analytics demo on the Ryzen AI Max 300 Series at the AMD Embedded Computing Summit! View the full article
-
Linux kernel 7.1 brings improvements across filesystems, networking, scheduling, graphics, Rust, and hardware enablement, with Collabora contributing 65 patches from 16 engineers across Panthor, DRM, Rockchip, MediaTek, and driver fixes across the kernel. View the full article
-
This week's work centers on kernel and board enablement, CI infrastructure and caching, and user-facing tooling improvements across the imager and configuration utilities. On the kernel and board front, Rockchip edge moved to 7.1 and mainline was bumped to 7.1-rc7, while the Raspberry Pi 4B legacy target was re-enabled after a brief revert of the BCM2711 kernel bumps. New board support landed for BeagleBadge and TMDS64EVM (AM64x) on the TI platform, the Anbernic RG DS RK3568 handheld as CSC, and the Youyeetoo YY3588 received a mainline DTS rework with ES8388 audio routing. Several long-standing fixes were merged, including a meson64 GPIO can_sleep regression breaking 1-Wire, JMicron JMB582/JMB585 32-bit DMA forcing, and QRB2210 U-Boot load address corrections. A substantial CI and caching effort introduces a new git_cdn module providing a GitHub caching git+http proxy, an apt-cacher-ng configng module, and multi-arch Docker images for both. GitHub Actions runners now export per-runner apt, ghcr, ccache, and proxy environments from the NetBox registry, with added retry guards, SSH/rsync timeouts, and workspace ownership reconciliation between jobs. The rootfs builder now routes mmdebstrap through APT_PROXY_ADDR when configured. User-facing changes focus on the Armbian Imager and first-run experience. The imager gained marquee scrolling for long board names, a "Create new profile" shortcut, accurate progress-phase reporting, and surfaced flash write failures in place of blank error screens. The first-login flow now runs automatically on freshly-flashed boards, and armbian-firstrun uses atomic writes for armbianEnv.txt MAC randomization to prevent corruption. #Armbian #EmbeddedLinux #Rockchip #CICD #SBC ChangesAdd images for new board and missing images for existing boards. by @jonaswood01 in armbian/armbian.github.io#329Add module_aptcacherng: apt-cacher-ng caching proxy. by @igorpecovnik in armbian/configng#935add multi-arch git_cdn image build. by @igorpecovnik in armbian/docker-armbian-build#29Add new target boards for uefi arm64/x86 edge branch. by @igorpecovnik in armbian/armbian.github.io#327add usbip support to missing current 6.18.y configs. by @EvilOlaf in armbian/build#9971add usbip to more kernels. by @EvilOlaf in armbian/build#9973arm64: dts: rockchip: yy3588: bind ES8388 codec via es8328 driver. by @SuperKali in armbian/linux-rockchip#499armbian-firstrun: use atomic write for armbianEnv.txt MAC randomization. by @mingzhangqun in armbian/build#9937ata: ahci: force 32-bit DMA for JMicron JMB582/JMB585. by @HeyMeco in armbian/linux-rockchip#504Auto-run first-login on freshly-flashed boards. by @igorpecovnik in armbian/autotests#6ayn-thor: fix fused kernel args in LinuxLoader.cfg cmdline, add rw rootwait. by @eldandaman in armbian/build#9969bcm2711: bump kernels — legacy 6.18, current 7.0, edge 7.1. by @igorpecovnik in armbian/build#9964board: add Anbernic RG DS (RK3568 dual 4" 640x480 handheld) as CSC. by @crackerjacques in armbian/build#9934bootscript: rk35xx: simplify armbianEnv.txt corruption detection. by @mingzhangqun in armbian/build#9953bump mainline to 7.1-rc7. by @EvilOlaf in armbian/build#9950ci: build current apt-cacher-ng image (trixie/3.7.x). by @igorpecovnik in armbian/docker-armbian-build#28ci: cache GitHub runners from NetBox to github-runners.jq. by @igorpecovnik in armbian/armbian.github.io#328docs(git_cdn): add GCDN001 help header/footer markdown. by @igorpecovnik in armbian/configng#939docs: document gitproxy GITHUB_MIRROR and GITPROXY_ADDRESS. by @igorpecovnik in armbian/documentation#925feat(boards): scroll long board names with marquee. by @SuperKali in armbian/imager#146feat(flash): show only the progress phases that will actually run. by @SuperKali in armbian/imager#148feat(profiles): add "Create new profile" shortcut to the flash picker. by @SuperKali in armbian/imager#147Fix auto-firstlogin in CI: ssh-dut 1234 fallback + reconcile trigger. by @igorpecovnik in armbian/autotests#7fix(extensions/lvm): Fix support for non-ext filesystems. by @ojafuenf in armbian/build#9889fix(interactive): parse case alternatives in get_kernel_info_for_branch. by @iav in armbian/build#9798fix(mvebu-6.18): drop SysRq-via-BREAK patch, fixed upstream in 6.18.35. by @iav in armbian/build#9958fix(rockchip64-7.0): drop SysRq-via-BREAK patch, fixed upstream in 7.0.12. by @igorpecovnik in armbian/build#9956fix(rootfs/qemu-static): use direct armhf exec probe instead of broken arch-test gate. by @iav in armbian/build#9820fix(ui): keep marquee text aligned while scrolling. by @SuperKali in armbian/imager#149Fix: EasePi-A2 Boot & Ethernet on Vendor Kernel. by @ifroncy01 in armbian/build#9946gha/chunks: export per-runner apt/ghcr/ccache env from runner registry. by @igorpecovnik in armbian/os#471gha/chunks: export per-runner caches in images job. by @igorpecovnik in armbian/os#472gha: add retry and empty-result guard to NetBox server list step. by @igorpecovnik in armbian/os#469gha: add ssh/rsync timeouts to image upload so dead servers fail fast. by @igorpecovnik in armbian/os#473image/compress-checksum: cap compression threads (default 32). by @igorpecovnik in armbian/build#9949meson64: fix GPIO can_sleep regression that breaks w1-gpio (1-Wire). by @adeepn in armbian/build#9959module_aptcacherng: use current ghcr.io/armbian image. by @igorpecovnik in armbian/configng#937orangepi4pro: Add Orange Pi 4 Pro board photo. by @shkolnik in armbian/armbian.github.io#330qrb2210: fix U-Boot load addresses and root partition for 2GB variant. by @govindsi in armbian/build#9925README: document full image catalog (framework, automation, caching proxies). by @igorpecovnik in armbian/docker-armbian-build#31Revert "bcm2711: bump kernels — legacy 6.18, current 7.0, edge 7.1". by @EvilOlaf in armbian/build#9965rk35: add rk3568 DDR 1056MHz v1.23 and BL31 v1.45. by @crackerjacques in armbian/rkbin#45rockchip: bump edge kernel to 7.1. by @paolosabatino in armbian/build#9955rootfs: route mmdebstrap through APT_PROXY_ADDR when set. by @igorpecovnik in armbian/build#9961rpi4b: re-enable legacy target. by @EvilOlaf in armbian/build#9968rtl8192eu: fix -Wmissing-prototypes for 121 functions. by @iav in armbian/build#9963runner-clean: export per-runner proxy env and route git via git_cdn. by @igorpecovnik in armbian/actions#20runner-clean: export per-runner xz memory cap (IMAGE_XZ_MEMLIMIT). by @igorpecovnik in armbian/actions#22runner-clean: normalize git_proxy to one trailing slash. by @igorpecovnik in armbian/actions#21runner-clean: selectively chown root-owned workspace files before checkout. by @igorpecovnik in armbian/actions#23runner-cleanup: chown workspace after each job via JOB_COMPLETED hook. by @igorpecovnik in armbian/configng#944runner-cleanup: give job-completed hook a .sh extension. by @igorpecovnik in armbian/configng#945runner-cleanup: keep Armbian build images, stop wiping build cache hourly. by @igorpecovnik in armbian/configng#943runners: derive host from github_label custom field. by @igorpecovnik in armbian/armbian.github.io#331runners: make remove work via --api with named params and a range. by @igorpecovnik in armbian/configng#942software: add git_cdn module (GitHub caching git+http proxy). by @igorpecovnik in armbian/configng#938sunxi: patch maint. by @EvilOlaf in armbian/build#9957Surface flash write failures instead of a blank error screen. by @SuperKali in armbian/imager#150ti: configs: boards: Add initial BeagleBadge board support. by @jonaswood01 in armbian/build#9935ti: configs: boards: Add TMDS64EVM (AM64x SoC) board support. by @jonaswood01 in armbian/build#9962uwe5622: fix -Wmissing-prototypes warnings (155 -> 2). by @iav in armbian/build#9970Wifi: enable, connect every board, and record interfaces + IPs in NetBox. by @igorpecovnik in armbian/autotests#9youyeetoo-yy3588: rework DTS for mainline and switch audio to ES8388. by @SuperKali in armbian/build#9960View the full article
-
Next week we'll be in Long Beach, California for AWE USA 2026. Catch our talk exploring OpenXR, from its practical foundation for cross-platform XR interoperability, to its extension support across devices, and more! View the full article
-
This week's updates center on new board enablement, Rockchip platform refinements, and tooling and kernel maintenance. Board support expanded across multiple silicon families, with the addition of Seeed Studio reComputer RK3576/RK3588 DevKits and the Anbernic RG DS handheld image. The EasePi A2/R2 received substantial revisions to its board configurations and device trees, alongside a vendor logo transition to Linkease. SpacemiT K1 boot support was updated, and per-SoC LINUXCONFIG separation was introduced for the TQ family to better isolate kernel configurations. Rockchip received the bulk of low-level improvements. Notable changes include AUX recovery for USB-C DP Alt Mode in the dw-dp driver, device-tree-based LED configuration for the r8169/r8125 controllers, and an updated patch ensuring stable PCIe Ethernet MAC addresses across many boards. Additional fixes resolve slow WiFi on the NanoPi R76S via SDIO SDR104, enable Bluetooth on the Orange Pi 5 Ultra edge kernel, and restore the tm16xx driver on current kernels. On the tooling and maintenance side, Armbian Imager 2.0 was released, the mainline kernel was bumped to 7.1-rc6, and the rtl8192eu driver was re-enabled following a cleanup of compilation warnings. A previously merged USB gadget NULL pointer fix was reverted pending further evaluation. #Armbian #EmbeddedLinux #Rockchip #SBC #KernelDevelopment Changesmainline: bump to 7.1-rc6. by @EvilOlaf in armbian/build#9922Add Anbernic RG DS board image and Anbernic vendor logo. by @crackerjacques in armbian/armbian.github.io#326Add jellyfin-ffmpeg release constraints and ip-wrapper for easepi-r2. by @ifroncy01 in armbian/build#9942arm64: dts: overlay: add radxa display 8hd for rock5t. by @Ken-Vamrs in armbian/linux-rockchip#498board-vendor-logos: update EasePi vendor logo to Linkease. by @ifroncy01 in armbian/armbian.github.io#321drm: rockchip: dw-dp: add AUX recovery for USB-C DP Alt Mode. by @mingzhangqun in armbian/linux-rockchip#494easepi-r2/a2: fix device tree. by @jjm2473 in armbian/linux-rockchip#491feat(boards): Add Seeed Studio reComputer RK3576/RK3588 DevKit support. by @baorepo in armbian/build#9719Give each TQ SoC family its own LINUXCONFIG. by @schmiedelm in armbian/build#9924Introducing Armbian Imager 2.0. by @SuperKali in armbian/imager#143Milk-V Jupiter disable EEPROM node. by @pyavitz in armbian/build#9944nanopi-r76s: fix slow WiFi by enabling SDIO SDR104. by @SuperKali in armbian/build#9929net: r8169: add device tree based LED configuration for r8125. by @mingzhangqun in armbian/linux-rockchip#497orangepi5-ultra: enable Bluetooth on edge kernel via hci_bcm. by @pdapandapda in armbian/build#9697Revert "rockchip64: fix USB gadget NULL pointer crash in eth_get_drvinfo (6.18 + 7.0)". by @EvilOlaf in armbian/build#9926rockchip64: enable back tm16xx driver for current kernel. by @paolosabatino in armbian/build#9941rockchip64: update "describe PCIe Ethernet controllers" patch for stable MAC (many boards). by @rpardini in armbian/build#9933rtl8192eu: re-enable and fix tons of compilation warnings. by @EvilOlaf in armbian/build#9927SpacemiT: Update K1 boot support. by @pyavitz in armbian/build#9930Treat imx93 as slow hardware. by @schmiedelm in armbian/armbian.github.io#323Update EasePi A2/R2 board configs and device trees for improved hardware support. by @ifroncy01 in armbian/build#9907Update VERSION. by @EvilOlaf in armbian/build#9938View the full article
-
We're releasing Armbian Imager 2.0. We rebuilt the whole thing, the interface and the flashing engine underneath it. The part you'll notice first: your board boots already set up. Username, password, Wi-Fi, timezone, language. You tell Imager once, it writes that into the image, and the board comes up configured on first boot. No monitor, no keyboard, none of that blind first login. Set it up once. It configures itself.This is the big change in 2.0. You build a profile in settings: username and password, an SSH key, your Wi-Fi network and country code, timezone, locale, shell. Imager writes it straight into the image's filesystem while it flashes. Power on the board, it reads the profile and brings itself up. Qualcomm boards over QDL get the same treatment. It's the difference between "flash, hook up a screen and keyboard, sit through the setup" and "flash, slot the card, switch on." I didn't expect to care this much about it, and now I can't flash without it. Pick everything on one screenThe old pop-up windows are gone. In their place is a single animated flow: manufacturer, board, OS, device, all on one page that moves with you. You page through the board and vendor grids, the distro logos are drawn by hand, and the app glides instead of slamming between screens. Settings got the same redesign. So did the cache manager, which now shows where your gigabytes actually went, by category, and clears them in a tap. Know what you're writing before you write itEvery image tells you what it is up front: build date, badges for the desktop and the kernel branch, a label when it ships with something preinstalled like the SDK build, openHAB, or Kali. Anything you've already downloaded carries a small check, so you don't pull it twice. If you want the trunk rolling releases, there's a filter for them, with a plain warning before you commit. And images that can't be written to a card, like the VM disk formats, simply aren't in the list. Every write, checked byte for byteThe download is verified against its SHA256. After writing, the app reads the card back and compares it to the source, byte for byte. While that runs, your board floats over a warm glow that follows the progress, with one line telling you the stage instead of a wall of numbers. When the check turns green, it's because the data on the card matches. Not because we're optimistic. Bring your own images, online or offlineHave an image of your own? Drop it in. We handle img, iso, xz, gz, bz2, and zst, and decompress before writing. Lose your connection partway through the day and Imager still works: the offline mode was reworked so your cache and your own files stay one click away. The same app on Mac, Linux, and WindowsSame look and behavior on all three. On Mac it's a single universal build for Intel and Apple Silicon. Pick a light theme, a dark one, or let it follow the system. Eighteen languages, chosen automatically from your locale. Free and open source, the way it started. Get itArmbian Imager 2.0 is available now, free, on Mac, Linux, and Windows. It does the same job it always has, writing a good image to a card. The new part is what happens after: you power the board on, and it's already yours. Download Armbian Imager 2.0 View the full article
-
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 v26.5.1 delivers another strong round of improvements across the project, focusing on expanded hardware support, desktop and userland refinements, build framework modernization, and infrastructure enhancements. This release introduces new board images and platform updates, improves Ubuntu 26.04 "Resolute" integration, refines Bianbu desktop support, adds firmware and driver updates including AX210 wireless support, and continues ongoing work to strengthen the build system, CI pipelines, and developer tooling. Numerous kernel, bootloader, and device tree updates further improve stability, compatibility, and performance across a wide range of ARM and x86 platforms, reinforcing Armbian's commitment to providing a reliable and flexible Linux distribution for single-board computers, embedded devices, and edge computing deployments. 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. Release Armbian Quarterly digest · armbian/buildThis quarter’s work centers on three priorities: kernel modernization across SoC families, a redesigned desktop subsystem driven by armbian-config, and substantial expansion of board and platform c…GitHubarmbianNative UFS boot lands on the NanoPi M5Armbian’s next release boots the FriendlyElec NanoPi M5 end-to-end from UFS on a mainline U-Boot, with no proprietary recovery image in the loop. It is the first RK3576 board in the catalogue to reach this state, and the integration pattern paves the way for the others. UFS, the storage classArmbian blogDaniele BriguglioWe rewrote how Armbian installs desktops. Here’s what changedA friendlier, faster, snap-free desktop install in armbian-config If you’ve installed a desktop environment with armbian-config over the last few months, you may have noticed things feel different: there’s a tier you can pick, the browser actually works on every arch, uninstall doesn’t take half your system with it, andArmbian blogIgor PecovnikView the full article
-
Armbian's next release boots the FriendlyElec NanoPi M5 end-to-end from UFS on a mainline U-Boot, with no proprietary recovery image in the loop. It is the first RK3576 board in the catalogue to reach this state, and the integration pattern paves the way for the others. UFS, the storage class that replaced eMMC in phones, is packet-based and full-duplex with command queuing. The practical gain over an SD card shows up in random I/O, in latency under concurrent load, and in write endurance that holds up over years of deployment. FriendlyElec ships UFS on the M5 because the RK3576 has a native UFS controller, a sensible choice for any board destined for kiosks, robots, or industrial gateways. What mainline was missingThe UFS controller IP itself had a partial driver in mainline U-Boot. Everything around it was not wired: PHY init sequencing, the regulator rails the device needs before it responds, the device-tree glue that tells U-Boot "yes, this board has UFS." For the M5, none of it existed. There is also a cosmetic detail that catches every newcomer, namely that Rockchip's loader tooling labels UFS as SATA in the RKDevTool storage dropdown. Flashing goes through upgrade_tool, not the more familiar rkdeveloptool, because rkdeveloptool has never had UFS support. How it came togetherThree workstreams had to converge. Jonas Karlman's kwiboo/rk3576 branch carried the upstream RK3576 U-Boot enablement, pinctrl, clocks, storage controller bindings, and has been merging into mainline through 2026. The rockchip-linux/rkbin tree had to ship a UFS-capable MiniLoader, which the RK3576MINIALL.ini recipe assembles from the DDR init, the UFS-aware loader, and the OP-TEE/ATF blobs. The Armbian side was the integration: a board config on U-Boot v2026.04, a U-Boot DT overlay that brings the UFS regulators and PHY up at the right moment, and a flashing path that upgrade_tool accepts. None of these were individually hard. Making them line up is what took the time. On the device, the stack does its job cleanly. The BootROM reads the IDB off UFS and pulls in the TPL; the TPL initialises DDR and the UFS host controller, sequences the regulators, negotiates the link, and reads the next stage; ATF jumps to U-Boot; U-Boot enumerates ufs 0 and loads the kernel; the kernel re-probes the same controller it just booted through. The work, almost all of it, lived at the TPL stage. Controller fine, PHY fine, but the device sits silent if regulator sequencing is wrong by a handful of milliseconds. Once that is right, the upper layers see a clean SCSI-shaped block device and the rest is unsurprising. What it leaves us withFor users with a UFS-equipped M5, the next release image flashes through the FriendlyElec Rockchip workflow with upgrade_tool, BOOT switch on UFS/SD, storage dropdown labelled "SATA". The board boots without an SD card or eMMC involvement, and armbian-install writes the same image to UFS in place once the system is running from another medium. Against microSD on the same hardware the difference is felt rather than benchmarked: small reads land faster, the system stays responsive under concurrent I/O, and the write endurance is in a different ballpark. A few rough edges remain. The vendor tooling will keep calling UFS "SATA" until either Rockchip relabels the GUI or rkdeveloptool grows a cs ufs opcode, neither on the immediate horizon. The BOOT switch is a hardware gate with no software override. And upgrade_tool ships only as a Linux x86_64 ELF, so flashing from an Apple Silicon Mac means a Linux VM with USB passthrough or a Windows host running the GUI. The same plumbing now unlocks every other UFS-equipped RK3576 board in the catalogue. The M5 reached the line first because the hardware was available and the upstream pieces were the most complete. The others should be substantially less work, now that the integration pattern exists and the loader path has been proven on real silicon. View the full article
-
This week's work centers on board support expansion, kernel and U-Boot maintenance, and desktop and CI tooling refinements. On the platform side, the Radxa Cubie A5E received Wi-Fi enablement and a kernel refresh as part of a broader update, while the youyeetoo YY3588 was promoted from CSC to standard support and the YY3568 gained PCIe NVMe functionality. The NanoPi R76S and Rock 5 ITX were both migrated to mainline U-Boot v2026.04, dropping vendor-branch gates, and the Vanxoak HD-RK3506-EVB was added with vendor and board imagery. Kernel hygiene dominated the maintenance work: duplicate OPP labels on the Xiaoxin Pad Pro (sm8250) were corrected, broken UHS-I, xo-clock, SD, and DSI patches were removed from sm8550 trees for both 6.18 and 7.0, and a now-upstream r-spi backport was dropped from sunxi-6.18. The odroidxu4-current branch advanced to 6.6.141 across two successive bumps. Desktop and infrastructure tooling saw layered improvements through configng: alsa-ucm-conf and libcamera/v4l userspace were added to the minimal tier, PackageKit and AppStream landed at the mid tier, and DE postinst scripts now execute in the build chroot to resolve missing wallpaper. UEFI x86 and arm64 desktop spins were switched to GNOME on the edge kernel, and build infrastructure gained inline ShellCheck PR feedback, scoped token permissions, fork-aware artifact gating, and event-driven runner cleanup via systemd hooks. #Armbian #EmbeddedLinux #Rockchip #UBoot #KernelDevelopment ChangesAdd vendor and board image of Vanxoak HD-RK3506-EVB. by @SeeleVolleri in armbian/armbian.github.io#316Add wifi to Radxa Cubie A5E (kernel7.0). by @juanesf in armbian/build#9879ci: post ShellCheck findings and auto-fix suggestions inline on PRs. by @iav in armbian/build#9868ci: scope GITHUB_TOKEN writes to job-level in maintenance-lint-scripts-post. by @iav in armbian/build#9887ci: skip build-artifacts gating job on forks. by @iav in armbian/build#9865desktops: install alsa-ucm-conf at minimal tier. by @igorpecovnik in armbian/configng#923desktops: install libcamera/v4l userspace at minimal tier. by @igorpecovnik in armbian/configng#924desktops: run DE postinst scripts in build chroot (fix missing wallpaper). by @igorpecovnik in armbian/configng#927enh: substring filter for the board picker. by @iav in armbian/build#9843expose: switch uefi-x86 / uefi-arm64 to GNOME desktop on edge kernel. by @igorpecovnik in armbian/armbian.github.io#315feat(ccache-remote): parse password from DNS-SD TXT for redis backend. by @iav in armbian/build#9864feat(tools/shellfmt): accept positional file args for scoped format. by @iav in armbian/build#9863fix(runners): handle missing HOME in systemd hooks for runner-clean-pages. by @igorpecovnik in armbian/configng#928fix(sm8250): drop duplicate cpu7_opp21 label on Xiaoxin Pad Pro overclock OPP. by @igorpecovnik in armbian/build#9882fix(sm8550-6.18): drop broken sm8x50 UHS-I/xo-clock mbox patch. by @igorpecovnik in armbian/build#9884fix(sm8550-7.0): drop merged & broken SD/DSI patches. by @igorpecovnik in armbian/build#9885fix(sunxi-6.18): drop r-spi backport now merged in linux-6.18.y stable. by @igorpecovnik in armbian/build#9883gha: don't double-quote board/maintainer filter values. by @iav in armbian/os#462gnome: add packagekit + plugins + appstream at mid tier. by @igorpecovnik in armbian/configng#922module_cockpit: drop qemu-kvm (no riscv64 build; qemu-system covers it). by @igorpecovnik in armbian/configng#926nanopi-r76s: bump mainline u-boot to v2026.04 and drop vendor-branch gates. by @SuperKali in armbian/build#9869release-targets: flip UEFI desktop spins from current to edge. by @igorpecovnik in armbian/armbian.github.io#314rock-5-itx: link upstream kernel commit in pcie3 refclk u-boot patch. by @SuperKali in armbian/build#9861rock-5-itx: switch to mainline u-boot v2026.04. by @SuperKali in armbian/build#9848Rockchip: youyeetoo yy3568: enable pci-e NVMe ssd. by @hqnicolas in armbian/build#9877runner-cleanup: event-driven _diag/pages wipe via systemd hooks. by @igorpecovnik in armbian/configng#925Update for Radxa Cubie A5E. by @juanesf in armbian/build#9626Update odroidxu4-current to 6.6.140. by @belegdol in armbian/build#9867Update odroidxu4-current to 6.6.141. by @belegdol in armbian/build#9881Update radxa-cubie-a5e.csc with current kernel for build. by @juanesf in armbian/build#9874youyeetoo-yy3588: promote from CSC to standard support. by @SuperKali in armbian/build#9873View the full article
-
Embedded Recipes returns to Nice for its second standalone edition, along with Linux Media Summit, PipeWire, libcamera, GStreamer Spring Hackfest, and new Display Next Hackfest & BlueZ F2F. Visit our table for Tyr, ML video analytics & Flipper One prototype! View the full article
-
Collabora is proud to share that we've partnered with Flipper Devices to work together on building an open Linux platform for hardware hackers. The long-awaited Flipper One will be built on the Rockchip RK3576! View the full article
-
This week's work advances on three fronts: kernel and bleedingedge alignment across Rockchip and Sunxi trees, board and platform enablement spanning RV1106 to SpacemiT, and CI hardening with self-hosted runner maintenance. On the kernel side, bleedingedge was bumped to 7.1-rc3, accompanied by cfg80211 API fixes and re-enablement of the rtl8189fs and rtl8852bs drivers for the new release. Both the rockchip64 and sunxi patch stacks for current and edge were rewritten, an upstream ptrace fix for CVE-2026-46333 was backported to linux-rockchip, and the odroidxu4-current kernel moved to 6.6.139. Platform enablement was broad. The Ayn Odin2 gained 7.0 kernel support, the Mekotronics R58X-Pro switched its vendor build to mainline U-Boot with a corrected LCD driver, and the H96 TV box advanced to U-Boot v2026.04. RV1106 transitioned from extlinux to a bootscript and gained DS1307, PCF85063, and RV8803 RTC drivers, while SpacemiT received OpenSBI, U-Boot, and BPI-F3 DTS fixups. Smaller but user-visible improvements include NanoPi M5 second USB3 port exposure via DRD0 host-mode pinning, NORCO EMB-3531 LPDDR4X variants, RK3528 USB2 PHY corrections for high-speed NCM, and UEFI x86 images enabling iwlwifi MLD and Intel SOF audio for MTL, LNL, and PTL. Infrastructure work centered on self-hosted runner reliability and supply-chain hygiene. A new runner-cleanup module provides hourly disk and memory maintenance, skips busy runners, and ships via .deb, while a maintenance watchdog was added to the SDK repository. Multiple StepSecurity hardening passes landed across build and SDK workflows, though an overly strict egress-policy was subsequently reverted after breaking builds. #Armbian #EmbeddedLinux #Rockchip #RISCV #KernelDevelopment ChangesActions: Cleanup "Release" workflow. by @vidplace7 in armbian/MorseMicro-DKMS#4Actions: Create release workflow. by @vidplace7 in armbian/MorseMicro-DKMS#3Ayn Odin2 kernel 7.0 support. by @kasimling in armbian/build#9706Build for riscv64. by @vidplace7 in armbian/MorseMicro-DKMS#5Bump actions/download-artifact from 7 to 8. by @igorpecovnik in armbian/os#464Bump versions: stable 26.5.0, nightly 26.8.0-trunk.1. by @igorpecovnik in armbian/os#461bump bleedingedge to 7.1-rc3. by @EvilOlaf in armbian/build#9806cfg80211: fix API changes for Linux 7.1. by @EvilOlaf in armbian/wifi-rtl8852bs#5change recomputer rk35xx fan speed. by @ackPeng in armbian/linux-rockchip#472ci: add maintenance watchdog + rename action.yml → build-armbian-sdk.yml. by @igorpecovnik in armbian/sdk#25ci: drop step-security/harden-runner steps (egress-policy was breaking builds). by @igorpecovnik in armbian/sdk#26desktops: ship fprintd userspace at mid tier. by @igorpecovnik in armbian/configng#918desktops: split light/dark wallpapers in gnome + bianbu postinsts. by @igorpecovnik in armbian/configng#905Disable: SpacemiT: fix RX DMA params not set when TX is running. by @pyavitz in armbian/build#9808drivers_network: bump rtl8852bs commit ref to 35d3e266 (May 17). by @igorpecovnik in armbian/build#9841drop old lcd_vk2c21 LCD driver that never worked; backport workingvinka,vk2c21 driver; fix Mekos DTs. by @rpardini in armbian/linux-rockchip#482ebyte-ecb41-pge: Add spidev overlays (RPi-compatible). by @vidplace7 in armbian/linux-rockchip#467firmware-sof-signed: move from cli/amd64 baseline to UEFI common. by @igorpecovnik in armbian/build#9857fix(deps): add Pygments to requirements.txt (rich.syntax dep). by @iav in armbian/build#9819luckfox-lyra-zero-w: Default to onboard wifi antenna, add ipex overlay. by @vidplace7 in armbian/linux-rockchip#468maintenance-watchdog: target the workflow that actually exists. by @igorpecovnik in armbian/configng#915Mekotronics R58X-Pro (vendor): use mainline u-boot for vendor; use new LCD driver. by @rpardini in armbian/build#9836module_armbian_runners: skip busy runners + ship runner-cleanup assets via .deb. by @igorpecovnik in armbian/configng#914module_qbittorrent: poll for temporary password before showing dialog. by @igorpecovnik in armbian/configng#916nanopi-m5: pin DRD0 dwc3 to host mode to expose the second USB3 port. by @SuperKali in armbian/build#9844NORCO EMB-3531: Add LPDDR4X variants support. by @retro98boy in armbian/build#9823patch/sunxi-6.12: drop two Rockchip SPI patches (not applicable to sunxi). by @igorpecovnik in armbian/build#9827postinst/gnome: enable tap-to-click + clickpad right-click out of the box. by @igorpecovnik in armbian/configng#917Potential fix for code scanning alert no. 2: Code injection. by @iav in armbian/build#9799ptrace: backport upstream fix for CVE-2026-46333 (ssh-keysign-pwn). by @SuperKali in armbian/linux-rockchip#481restore backwards compatibility. by @EvilOlaf in armbian/wifi-rtl8852bs#6rockchip rk3566: h96-TVbox: bump to uboot v2026.04. by @hqnicolas in armbian/build#9807rockchip64-6.18: rebase rk3399 dwc3 phy-reset-quirk patch for 6.18.32. by @SuperKali in armbian/build#9847rockchip64: fix RK3528 USB2 PHY regmap split for high-speed NCM. by @rubycomm in armbian/build#9785rockchip64: opt-in helios64 CPU stability overlay (current + edge). by @iav in armbian/build#9822rockchip64: rewrite patches of current and edge. by @EvilOlaf in armbian/build#9829rtl8189fs: fix compilation for 7.1 and re-enable. by @EvilOlaf in armbian/build#9813rtl8852bs: re-enable for bleedingedge. by @EvilOlaf in armbian/build#9831runner-cleanup: drop redundant age-based _diag prune. by @igorpecovnik in armbian/configng#921runner-cleanup: hourly disk + memory maintenance for self-hosted runner hosts. by @igorpecovnik in armbian/configng#913runner-cleanup: wipe _diag/pages/ alongside _work/. by @igorpecovnik in armbian/configng#919runner-cleanup: wipe ~/_diag/ on every runner each pass. by @igorpecovnik in armbian/configng#920RV1106: add support for additional RTC drivers (DS1307, PCF85063, RV8803). by @vidplace7 in armbian/build#9812RV1106: Switch u-boot from extlinux to bootscript. by @vidplace7 in armbian/build#9801SpacemiT: Fixup OpenSBI, U-Boot and BPI-F3 DTS. by @pyavitz in armbian/build#9838sunxi: rewrite kernel patches of current and edge. by @EvilOlaf in armbian/build#9828uefi-x86: enable iwlwifi MLD + Intel SOF (MTL/LNL/PTL) audio. by @igorpecovnik in armbian/build#9846Update documentation / packaging URLs. by @vidplace7 in armbian/MorseMicro-DKMS#2Update MorseMicro suite to 1.17.8. by @vidplace7 in armbian/MorseMicro-DKMS#1Update nanopi r5s udev rule tweak for persistent net interface names. by @ruabmbua in armbian/build#9811Update odroidxu4-current to 6.6.139. by @belegdol in armbian/build#9837Workaround devcontainer/ci platform issues. by @vidplace7 in armbian/MorseMicro-DKMS#6[StepSecurity] Apply security best practices. by @step-security-bot in armbian/build#9833[StepSecurity] Apply security best practices. by @step-security-bot in armbian/build#9839[StepSecurity] Apply security best practices. by @step-security-bot in armbian/sdk#24[StepSecurity] ci: Harden GitHub Actions. by @step-security-bot in armbian/build#9803[StepSecurity] ci: Harden GitHub Actions. by @step-security-bot in armbian/build#9825View the full article
-
Join us next week in Utrecht for RustWeek! We'll be running a SuperTuxKart tournament to showcase Tyr, the Rust driver for Arm Mali GPUs. Come and see if you've got what it takes! View the full article
-
This week's work centers on release and CI infrastructure, board and U-Boot updates, and build framework hardening. On the release pipeline, asset manifest JSON is now emitted alongside uploads, third-party armbian-images.json sources are merged into the main download index, and dispatch chains were rewired so that build completion fans out cleanly to download-index regeneration and website sync. Ubuntu resolute (26.04) entered the daily build matrix, with corresponding prepare-host adjustments for its qemu-user packaging and a targeted blacklist for boards failing resolute plus GNOME. The new Armbian SDK images are now surfaced on the website and ship preloaded with the build framework, code-server, and developer tooling. On the platform side, U-Boot v2026.04 lands for Helios4, Rock-5B-Plus, Rock-5T, and NanoPi-M5 (with mainline UFS via a vendor-SPL hybrid), while new bleedingedge branches were introduced for rockchip64 and meson64. Initial support arrived for the Photonicat2 board, new RK3576 SPL and RK3588 DDR blobs were added, Panthor firmware expanded to cover additional Mali GPUs, and a PCIe LTSSM timeout fix improves cold-boot NVMe detection on Rockchip. NanoPC-T6 LTS Plus was renamed, panther-x2 moved from CSC to EOS, and odroidxu4-current advanced to 6.6.138. In the build framework, an unsafe eval was replaced with declare -g and namerefs, destructive commands were properly quoted, and Docker --privileged is now gated behind an explicit DOCKER_PRIVILEGED toggle. The desktop configuration tree migrated to the armbian-config module_desktops system, kernel build failures now propagate exit codes correctly, missing BOOT_FDT_FILE surfaces as an error alert, and SysRq-via-BREAK was restored on dw-apb-uart for mvebu-6.18 and rockchip64-7.0 kernels. #Armbian #EmbeddedLinux #UBoot #Rockchip #SBC #LinuxKernel Changes(#9400 P1b) Replace unsafe eval with declare -g and nameref. by @iav in armbian/build#9461action: emit assets manifest JSON alongside release uploads. by @igorpecovnik in armbian/build#9772action: leave torrent URLs empty in per-image asset manifests. by @igorpecovnik in armbian/build#9792Add expect-dev to package dependencies. by @igorpecovnik in armbian/configng#904Add support for Photonicat2 board with USB hub watchdog. by @HackingGate in armbian/build#9765arm64: dts: rockchip: rename NanoPC-T6 LTS Plus to NanoPC-T6 Plus. by @igorpecovnik in armbian/linux-rockchip#478Build-Switches: document DOCKER_PRUNE opt-in. by @igorpecovnik in armbian/documentation#920build: misc cleanup — DEBUG-gated mmdebstrap verbosity, DOCKER_PRUNE opt-in. by @igorpecovnik in armbian/build#9704chore(config/common): remove dead FAST_CREATE_IMAGE variable. by @iav in armbian/build#9756ci/maintenance-unit-tests: skip draft PRs. by @igorpecovnik in armbian/configng#910ci: add Maintenance: Watchdog workflow. by @igorpecovnik in armbian/docker-armbian-build#23ci: add Ubuntu resolute to the build matrix. by @igorpecovnik in armbian/sdk#22ci: aggregate per-cell asset manifests into armbian-sdk-images.json. by @igorpecovnik in armbian/sdk#13ci: cancel in-flight download-index runs when a new one starts. by @igorpecovnik in armbian/armbian.github.io#313ci: dispatch armbian.github.io download-index regen after green build. by @igorpecovnik in armbian/sdk#21ci: dispatch armbian/website sync after web-directory generation. by @igorpecovnik in armbian/armbian.github.io#310ci: fix dispatch chain — download-index fan-out + redirector ends with directory regen. by @igorpecovnik in armbian/armbian.github.io#311ci: rename build workflow to 'Docker Images For Automation'. by @igorpecovnik in armbian/docker-armbian-build#24Community: blacklist xpressreal-t3 (resolute desktops failing). by @igorpecovnik in armbian/armbian.github.io#308Community: enable Ubuntu minimal CLI for all boards (not just headless). by @igorpecovnik in armbian/armbian.github.io#309desktops: migrate from config/desktop/ tree to armbian-config module_desktops. by @igorpecovnik in armbian/build#9683Disable UDev Rule for Radxa Display 10 FHD. by @FlorianKohn in armbian/build#9503docker: gate --privileged behind DOCKER_PRIVILEGED toggle (default yes). by @iav in armbian/build#9733docs: add extensions reference list. by @iav in armbian/documentation#881feat(boards/helios4): enable watchdog extension by default. by @iav in armbian/build#9757Fix cmdline fsck argument. by @QwaSeeK in armbian/build#9779Fix rk3528 nanopi zero2 snps reset gpio property. by @EvilOlaf in armbian/build#9770fix(config): skip host filesystem compatibility check for ROOTFS_TYPE=nfs. by @iav in armbian/build#9759fix(kernel/mvebu-6.18): restore SysRq-via-BREAK on dw-apb-uart (8250_dw). by @iav in armbian/build#9760fix(kernel/rockchip64-7.0): restore SysRq-via-BREAK on dw-apb-uart (8250_dw). by @iav in armbian/build#9750framework: add resolute (Ubuntu 26.04) image to the daily matrix. by @igorpecovnik in armbian/docker-armbian-build#26helios4: bump u-boot to v2026.04. by @iav in armbian/build#9786image/compress-checksum: maximize CPU + memory use. by @igorpecovnik in armbian/build#9758Introduce bleedingedge BRANCH for rockchip64. by @EvilOlaf in armbian/build#9738kernel-dtb: surface missing BOOT_FDT_FILE as err alert (fixes #8083). by @iav in armbian/build#9700kernel: fix process not exit with kernel build failure. by @amazingfate in armbian/build#9771manage_zsh → module_zsh: align with current module style. by @igorpecovnik in armbian/configng#911Merge third-party armbian-images.json sources into the main download index. by @igorpecovnik in armbian/armbian.github.io#306meson64: introduce bleedingedge BRANCH with 7.1-rc2. by @EvilOlaf in armbian/build#9761nanopi-m5: mainline U-Boot v2026.04 + UFS (vendor-SPL hybrid). by @SuperKali in armbian/build#9788Nightly: blacklist 16 boards failing resolute+gnome_desktop. by @igorpecovnik in armbian/armbian.github.io#307panther-x2: move from CSC to EOS. by @igorpecovnik in armbian/build#9778panthor: Add firmware for more Mali GPUs. by @nyanmisaka in armbian/firmware#124pci: pcie_dw_rockchip: increase PCIe LTSSM timeout for cold boot NVMe. by @rpahle in armbian/build#9751Pre-load SDK images with build framework, code-server, Python + Claude Code, and SSH keys. by @igorpecovnik in armbian/sdk#16prepare-host: support Ubuntu resolute's qemu-user packaging changes. by @igorpecovnik in armbian/build#9790Quote variables in destructive commands (#9400 P0). by @iav in armbian/build#9401README: cover both image families this repo publishes. by @igorpecovnik in armbian/docker-armbian-build#25reporting-release-summary: prepend 'Armbian' to digest titles. by @igorpecovnik in armbian/armbian.github.io#305Revert zsh integration from SDK image. by @igorpecovnik in armbian/sdk#23rk3576: Add SPL v1.08 blob. by @SuperKali in armbian/rkbin#44RK3588: Add v1.20 DDR blob. by @HeyMeco in armbian/rkbin#43Rock-5B-Plus and Rock-5T: Move to u-boot 2026.04. by @HeyMeco in armbian/build#9773SpacemiT: Update EDGE branch to linux-7.1. by @pyavitz in armbian/build#9784Surface armbian-sdk images in Dedicated Applications. by @igorpecovnik in armbian/website#19Update odroidxu4-current to 6.6.137. by @belegdol in armbian/build#9768Update odroidxu4-current to 6.6.138. by @belegdol in armbian/build#9793Update README to clarify Armbian SDK purpose. by @igorpecovnik in armbian/sdk#18Update USB version in odroidhc4.conf. by @igorpecovnik in armbian/build#9754userpatches: install zsh via armbian-config --api, not direct apt. by @igorpecovnik in armbian/sdk#20userpatches: pre-install gh + first-boot provisioning stub. by @igorpecovnik in armbian/sdk#14userpatches: pre-install tig, nodejs and Claude Code CLI host-side. by @igorpecovnik in armbian/sdk#17userpatches: pre-install zsh in the chroot. by @igorpecovnik in armbian/sdk#19userpatches: switch pre-install from gh to git. by @igorpecovnik in armbian/sdk#15View the full article
-
A complete breakdown of Mesa’s NIR compiler detailing how it optimizes shader memory access with SSA promotion, deref analysis, copy propagation, and store elimination to reduce memory traffic and improve GPU performance. View the full article
-
Collabora brought Bluetooth Auracast broadcasting to MediaTek Genio 700 for Embedded World 2026. Here's the complete, fully Open Source setup featuring Debian, BlueZ, PipeWire, with all the code and configs from our live booth demo. View the full article
-
This week's work centers on release pipeline modernization, desktop and userland refinements, and board and kernel platform maintenance. On the release and CI side, the build matrix gained codename parameterisation with Ubuntu 26.04 "resolute" set as default, a dedicated Bianbu target, and exposed map overrides, while standard-support targets now include UEFI desktops and a plain cloud variant. The KDE fast-HDMI matrix was switched from kde-neon to kde-plasma, mesa-vpu was dropped from auto-attached extensions, and external CI now skips slots with a warning when upstream sources break. Supporting fixes route forky/loong64 base-files lookups to the main archive and add AI cover image generation to the blog workflow. Desktop and userland changes focus on the Bianbu environment, where PVR DRI was enabled, detection corrected, menu entries added, systemd suspend re-enabled on K1, and gnome-initial-setup purged post-install. Broader fixes pass --allow-downgrades on pinned package installs, align LAN/WAN labels across IPv4 and IPv6 rows in the MOTD, harden console-width handling against invalid COLUMNS values, and correct output to /etc/armbian-image-release. Platform support sees explicit ARCH=arm64 declarations on five inheriting boards, validate-board-config now following inheritance from ${SRC}/config/boards, and targeted fixes for imx8m binman hooks and rockchip family tweaks under forky (addgroup → groupadd). Kernel and DTS work restores 6.18.y on sm8550, syncs CAINIAO CNIoT-CORE DTS from 6.18 to 6.12, disables broken drm/xe patches under uefi-loong64-7.0, and improves the SMART AM40 and Retroid Pocket board definitions. AX210 firmware lands for mainline, and Seeed Studio reComputer images join the catalogue. #Armbian #EmbeddedLinux #ARM64 #Rockchip #Ubuntu #KDE #Mainline ChangesAdd AX210 firmware for mainline kernel. by @ginkage in armbian/firmware#126Add Seeed Studio reComputer board images and vendor logo. by @baorepo in armbian/armbian.github.io#297boards: declare ARCH=arm64 explicitly on five inheriting boards. by @igorpecovnik in armbian/build#9747ci/external: skip slot with warning when upstream source breaks. by @igorpecovnik in armbian/armbian.github.io#301ci/maintenance-unit-tests: list docker state on the runner. by @igorpecovnik in armbian/configng#903desktops/bianbu: enable PVR DRI, fix detection, add menu entries. by @igorpecovnik in armbian/configng#897desktops/bianbu: purge gnome-initial-setup after install. by @igorpecovnik in armbian/configng#902desktops/bianbu: re-enable systemd suspend on K1. by @igorpecovnik in armbian/configng#900desktops: pass --allow-downgrades on pinned package install. by @igorpecovnik in armbian/configng#899DTS: Sync CAINIAO CNIoT-CORE from 6.18 to 6.12. by @retro98boy in armbian/build#9736Fix workflow bugs and add AI cover image generation. by @igorpecovnik in armbian/armbian.github.io#298fix: rename imx8m bare hook so binman pkg_resources patch can run. by @igorpecovnik in armbian/build#9752fix: rockchip family_tweaks fails on forky — addgroup → groupadd. by @igorpecovnik in armbian/build#9753fix: route forky/loong64 base-files lookups to the main archive. by @igorpecovnik in armbian/armbian.github.io#299fixing output to /etc/armbian-image-release. by @dittodhole in armbian/build#9729Handle invalid data in COLUMNS env var when determining console width. by @scollinson in armbian/build#9631kernel: add linux-initramfs-tool as dep of linux-image package. by @amazingfate in armbian/build#9731motd/20-ip-info: align (LAN)/(WAN) labels across IPv4 + IPv6 rows. by @igorpecovnik in armbian/build#9728os-info: add Ubuntu 26.04 (resolute). by @igorpecovnik in armbian/imager#134patch: disable broken drm/xe patches under uefi-loong64-7.0. by @igorpecovnik in armbian/build#9745release-targets/standard-support.manual: add UEFI desktops + plain cloud. by @igorpecovnik in armbian/armbian.github.io#304release-targets: codename parameterisation, resolute default, Bianbu target, exposed.map overrides. by @igorpecovnik in armbian/armbian.github.io#295release-targets: drop mesa-vpu from auto-attached extensions. by @igorpecovnik in armbian/armbian.github.io#302release-targets: switch fast-HDMI KDE matrix from kde-neon to kde-plasma. by @igorpecovnik in armbian/armbian.github.io#303Retroidpocket: fix current and add edge as target. by @EvilOlaf in armbian/build#9724sm8550: Restore kernel 6.18.y for current and edge branch. by @kasimling in armbian/build#9737SMART AM40 improve. by @retro98boy in armbian/build#9735userpatches: skip jammy in items-from-inventory. by @igorpecovnik in armbian/os#460validate-board-config: follow source ${SRC}/config/boards inheritance. by @igorpecovnik in armbian/build#9748View the full article
-
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 has released images based on Ubuntu 26.04 LTS, codenamed Resolute Raccoon the latest long-term support base. As always, Armbian applies its own platform-optimized kernel, board-specific patches, and tested drivers on top so what you get is a clean, stable foundation across SBCs, PCs, and cloud environments, with no Snap packages, fully compatible with the Ubuntu ecosystem, and no surprises. 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. We rewrote how Armbian installs desktops. Here’s what changedA friendlier, faster, snap-free desktop install in armbian-config If you’ve installed a desktop environment with armbian-config over the last few months, you may have noticed things feel different: there’s a tier you can pick, the browser actually works on every arch, uninstall doesn’t take half your system with it, andArmbian blogIgor PecovnikArmbian Q1 2026: Technical Milestones and the Road to Embedded WorldThe first quarter of 2026 has been a period of significant technical consolidation for the Armbian project. Driven by the v26.02 (Goa) release cycle, the project has focused on three core pillars: aggressive framework refactoring, the stable rollout of the Linux 6.18 LTS kernel, and the maturation ofArmbian blogMichael RobinsonGithub HighlightsThis week in Armbian development saw a broad range of updates spanning kernel enhancements, desktop improvements, and infrastructure refinements. Notable changes include new developer documentation for the desktop submodule, expanded GPU and multimedia support for vendor-kernel desktops, and several kernel version bumps for various platforms. The build system received fixesArmbian blogMichael RobinsonView the full article
