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.

RSS Bot

Bot
  • Joined

  • Last visited

    Never

Everything posted by RSS Bot

  1. 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
  2. Tokyo-based Enactic OpenArm 2.0 is an open-source hardware 7-DOF robot arm designed for physical AI research, teleoperation, and contact-rich data collection. It uses quasi-direct-drive (QDD) backdrivable joints to support compliant motion and bilateral force-feedback control. The arm supports 4.1 kg nominal and 6 kg peak payload, features 1 kHz CAN-FD control, and a compact parallel gripper with an in-hand camera and replaceable fingers. It supports bilateral force-feedback teleoperation, gravity compensation, and compliant interaction, with an aluminum and stainless-steel structure and MISUMI-frame base. The ecosystem also includes the OpenArm Cell for standardized evaluation and OpenArm KER, a motorless replica for teleoperation and data collection. Open-source CAD, BOM, firmware, control software, ROS 2, MuJoCo, Isaac Lab, and dataset tools support applications such as imitation learning, reinforcement learning, sim-to-real, and robotic manipulation. OpenArm 2.0 specifications: Communication CAN-FD (recommended): nominal 1 Mbps, data 5 Mbps, control loop 1 kHz Classic CAN 2.0 fallback @ [...] The post OpenArm 2.0 – An open-source 7-DOF robot arm with QDD joints, bilateral force feedback, in-hand camera appeared first on CNX Software - Embedded Systems News. View the full article
  3. We’ll be in Frankfurt this Thursday for the AMD Embedded Computing Summit! See a live demo of our AI Magic Mirror for a touchless, real-time experience. View the full article
  4. 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
  5. The annual X.Org Developer's Conference returns to Toronto September 28-30, and as a Gold Sponsor, Collabora's graphics team will present six talks and a workshop spanning Vulkan and Open Source GPU drivers. View the full article
  6. 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
  7. Next week we'll be in Paris for Kernel Recipes! We’re pleased to sponsor this gathering of the kernel community and contribute a talk on upstream H.264 and HEVC decoding for Rockchip RK3588/RK3576. View the full article
  8. Visit us at the STMicroelectronics booth at SIDO to see how the STM32MP2 platform enables responsive edge-AI applications for industrial use cases. View the full article
  9. 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
  10. Working closely with Google, we built the first RDK-based Chrobalt reference platform for third-party devices, enabling Chromium-based YouTube support, certification, and automation on embedded TVs and set-top boxes. View the full article
  11. Working closely with Google, we built the first RDK-based Chrobalt reference platform for third-party devices, enabling Chromium-based YouTube support, certification, and automation on embedded TVs and set-top boxes. View the full article
  12. Turnip is the first Mesa driver to achieve official Vulkan conformance on Android, with stronger Android integration, shared Vulkan runtime improvements, and real-device CI testing on Qualcomm Adreno hardware. View the full article
  13. Join us in Montreal for the 10th edition of RustConf! Catch our talk on Tyr, the new Rust kernel driver for Arm Mali GPUs. View the full article
  14. Collabora is heading to Amsterdam! Join us at Booth A63 in Hall 14 to see GStreamer Analytics with machine learning, standalone XR remote rendering, and our MediaTek Genio-powered Magic Mirror for virtual clothing swaps. View the full article
  15. 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
  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. 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
  18. 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
  19. Tyr’s latest Rust GPU kernel driver work puts GPU memory management in place, from VM binding and GPUVM to GEM-backed buffers and firmware boot, moving key pieces upstream before tackling synchronization next. View the full article
  20. 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
  21. 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
  22. 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
  23. Linux kernel 7.2 adds broad core, Rust, and hardware-support updates, with Collabora contributing 102 patches across graphics, media, virtualization, networking, power management, and SoC enablement. View the full article
  24. 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
  25. Collabora and MediaTek continue expanding upstream support across the Genio IoT family, with HDMI 2.0 now enabled for existing boards, Genio 520 and 720 support progressing in Linux, and Genio Pro 5100 enablement extending into U-Boot and Trusted Firmware-A. View 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.