Skip to content

extensions: add kernel-rust for Rust support in kernel builds#9386

Merged
igorpecovnik merged 1 commit intoarmbian:mainfrom
iav:enh/kernel-rust
Feb 28, 2026
Merged

extensions: add kernel-rust for Rust support in kernel builds#9386
igorpecovnik merged 1 commit intoarmbian:mainfrom
iav:enh/kernel-rust

Conversation

@iav
Copy link
Copy Markdown
Contributor

@iav iav commented Feb 10, 2026

Summary

Extension that enables CONFIG_RUST in kernel builds. Installs Rust toolchain via rustup into cache/tools/rustup/, cached by a content-addressable hash of versions and architecture.

How it works:

  • Installs rustc, rustfmt, rust-src, and bindgen-cli via rustup/cargo into ${SRC}/cache/tools/rustup/
  • Only APT dependency: libclang-dev (for bindgen's dlopen)
  • Passes tool paths via make params (RUSTC, RUSTFMT, BINDGEN) and env vars (RUST_LIB_SRC) — uses direct toolchain binaries (not rustup proxies) to work with env -i in run_kernel_make_internal()
  • Adds _R key to artifact version hash so toolchain version changes trigger kernel rebuild
  • Optional RUST_KERNEL_SAMPLES=yes builds sample Rust modules for smoke testing

Extensibility:

  • RUST_EXTRA_COMPONENTS array — other extensions can request additional rustup components (e.g. clippy, llvm-tools)
  • RUST_EXTRA_CARGO_CRATES array — other extensions can request cargo crates with optional version pinning (e.g. "mdbook", "cargo-deb@2.11.0")
  • Both arrays are included in the cache hash

Distro support: works identically on Ubuntu 24.04/25.10/26.04, Debian 13, both natively and in Docker. No distro-specific logic needed — rustup is distro-agnostic, libclang-dev is universally available.

Usage

# Enable Rust in kernel config interactively
./compile.sh kernel-config BOARD=... BRANCH=edge ENABLE_EXTENSIONS="kernel-rust"

# Build kernel with Rust support
./compile.sh kernel BOARD=... BRANCH=edge ENABLE_EXTENSIONS="kernel-rust"

# Include sample Rust modules for smoke testing
./compile.sh kernel BOARD=... ENABLE_EXTENSIONS="kernel-rust" RUST_KERNEL_SAMPLES=yes

Test plan

  • kernel-config — CONFIG_RUST appears in menuconfig
  • Toolchain installation in Docker (aarch64)
  • Full kernel build to completion
  • Verify sample modules load: modprobe rust_minimal

🤖 Generated with Claude Code

Summary by CodeRabbit

New Features

  • Rust toolchain support is now available for kernel builds with configurable version and component selection
  • Caching mechanism accelerates subsequent builds using the same toolchain configuration
  • Real-time progress alerts and build status notifications for transparency

@iav iav requested a review from igorpecovnik as a code owner February 10, 2026 04:05
@github-actions github-actions Bot added 02 Milestone: First quarter release size/medium PR with more then 50 and less then 250 lines labels Feb 10, 2026
@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented Feb 10, 2026

Important

Review skipped

Auto reviews are limited based on label configuration.

🏷️ Required labels (at least one) (1)
  • Needs review

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

Adds a new extension script that integrates Rust toolchains into the kernel build flow: apt-based dependency selection (rustup flow commented), multi-step tool discovery, LLVM/libclang version detection and toolchain override, host readiness checks, kernel config/make hooks, and propagation of explicit Rust tool paths and options. (≤50 words)

Changes

Cohort / File(s) Summary
Rust Kernel Build Support
extensions/kernel-rust.sh
New file adding end-to-end Rust integration: apt-based dependency selection (rustup flow commented), multi-tier tool discovery (_find_rust_tool, _apt_pick), host dependency registration (add_host_dependencies__add_rust_compiler), readiness checks (host_dependencies_ready__add_rust_compiler), kernel config and make hooks (custom_kernel_config__add_rust_compiler, custom_kernel_make_params__add_rust_compiler), toolchain version override (artifact_kernel_version_parts__override_toolchain_version), utility helpers (_show_dpkg_bins, _missing_rust_tool_abort), and new globals (RUST_APT_VERSION, BINDGEN_APT_VERSION, LLVM_APT_VERSION, RUST_KERNEL_SAMPLES, RUST_TOOL_*).

Sequence Diagram(s)

sequenceDiagram
    participant Build as Build System
    participant Ext as Rust Extension
    participant Apt as APT/Package Manager
    participant Finder as Tool Discoverer
    participant Kernel as Kernel Build

    Build->>Ext: Request Rust capability
    Ext->>Apt: Select/install Rust/LLVM/bindgen packages (apt flow)
    Apt-->>Ext: Packages installed / available
    Ext->>Finder: _find_rust_tool (versioned PATH, dpkg lists, unversioned PATH)
    Finder-->>Ext: rustc, rustfmt, bindgen paths
    Ext->>Ext: detect libclang/LLVM version -> override toolchain version
    Ext->>Kernel: Inject RUST config flags and make params (RUSTC, RUSTFMT, BINDGEN, RUST_LIB_SRC, LLVM/CC)
    Kernel-->>Build: Kernel config and make params updated
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Poem

🐰 I hopped through apt and dpkg lanes,
I sniffed for rustc, bindgen gains,
I matched LLVM to clang's tune,
I tucked tool paths under the moon,
A kernel burrow — ready to run!

🚥 Pre-merge checks | ✅ 2 | ❌ 1
❌ Failed checks (1 warning)
Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 40.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (2 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly and specifically summarizes the main change: adding a Rust support extension (kernel-rust) for kernel builds.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@github-actions github-actions Bot added Needs review Seeking for review Framework Framework components labels Feb 10, 2026
@iav iav marked this pull request as draft February 10, 2026 22:02
@github-actions github-actions Bot added size/large PR with 250 lines or more and removed size/medium PR with more then 50 and less then 250 lines labels Feb 10, 2026
@iav iav marked this pull request as ready for review February 11, 2026 00:11
@armbian armbian deleted a comment from coderabbitai Bot Feb 11, 2026
@armbian armbian deleted a comment from coderabbitai Bot Feb 11, 2026
@EvilOlaf
Copy link
Copy Markdown
Member

tested against #9381 just for fun. Seems to work: https://paste.armbian.com/javugatico
The only thing I've noticed was

   ***
   *** Rust bindings generator '/usr/bin/bindgen' versions 0.66.0 and 0.66.1 may not
   *** work due to a bug (https://github.com/rust-lang/rust-bindgen/pull/2567),
   *** unless patched (like Debian's).
   ***   Your version:     0.66.1
   ***
   ***
   *** Please see Documentation/rust/quick-start.rst for details
   *** on how to set up the Rust support.
   ***

No clue if this is an issue.

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Fix all issues with AI agents
In `@extensions/kernel-rust.sh`:
- Around line 314-319: The element added to common_make_envs sets RUST_LIB_SRC
with embedded single quotes which will be preserved when passed to env -i;
update the construction so quoting is consistent by either removing the embedded
single quotes in the value added to common_make_envs (i.e., push
RUST_LIB_SRC=${rust_lib_src} instead) or ensure the caller that expands
common_make_envs uses the bash array expansion with the `@Q` operator
(common_make_envs[@]@Q) like common_make_params_quoted does; modify the code
that builds/expands common_make_envs or the element insertion for RUST_LIB_SRC
so the final env invocation receives a properly quoted value rather than literal
single quotes.
🧹 Nitpick comments (5)
extensions/kernel-rust.sh (5)

124-131: Loose grep pattern may match unintended binaries from dpkg file list.

grep "/bin/${base}" is a substring match. For base="rustc", it would also match paths like /usr/lib/rust-1.85/bin/rustc-wrapper or /usr/lib/rust-1.85/bin/rustc-demangler. Combined with head -1, the result depends on dpkg -L output order, which could non-deterministically pick the wrong binary.

Anchor the grep to match the exact binary name:

Proposed fix
-		tool_path="$(dpkg -L "${versioned}" 2> /dev/null | grep "/bin/${base}" | head -1 || true)"
+		tool_path="$(dpkg -L "${versioned}" 2> /dev/null | grep -E "/bin/${base}\$" | head -1 || true)"

265-279: CC glob pattern could be tightened slightly.

CC=*clang) matches any value ending in clang, including hypothetical CC=somethingclang. A more precise pattern like CC=*[[:space:]]clang|CC=clang would be safer. However, in practice the only values set upstream are CC=ccache clang or CC=clang, so this is a minor robustness nit.


296-304: Consider a fallback for RUST_LIB_SRC discovery.

The path /usr/src/rustc-${rustc_full_version}/library is the only APT convention checked. If a future Debian/Ubuntu ships rust-src with a different layout (e.g., rust-src instead of rust-X.YY-src), this silently falls through to the warning on line 318. A secondary glob or dpkg -L lookup on the rust-src package could improve robustness.


156-196: Large commented-out block adds noise.

~40 lines of commented-out rustup code. While it's useful as documentation of the alternative method, consider moving it to a separate file or a doc comment/README section to keep the active code clean.


75-89: LLVM packages don't use _apt_pick fallback, unlike Rust/bindgen packages.

Lines 82–85 use _apt_pick for graceful fallback, but line 88 hardcodes versioned clang-${LLVM_APT_VERSION} / lld-${LLVM_APT_VERSION} / llvm-${LLVM_APT_VERSION} without fallback to unversioned. If auto-detection returns a version that isn't packaged, apt will fail with a less helpful error. This is likely intentional since the version is auto-detected, but worth noting for cross-distro robustness.

Comment thread extensions/kernel-rust.sh Outdated
@iav
Copy link
Copy Markdown
Contributor Author

iav commented Feb 11, 2026

Rust bindings generator '/usr/bin/bindgen' versions 0.66.0 and 0.66.1

This is strange. Ubuntu 24.04 noble bindgen-0.71 is in the noble-updates repository.
(available since 2026-02-02).
@EvilOlaf, are updates disabled on your builder? Or is the noble-updates repository disabled?
You not use docker?
Whether this is a problem or not, I don’t know yet: I solve problems as they arise :)

@iav
Copy link
Copy Markdown
Contributor Author

iav commented Feb 11, 2026

@coderabbitai Regarding the "Actionable" comment about RUST_LIB_SRC quoting in common_make_envs:

This is not a bug — it's the established pattern used throughout the framework. All elements in common_make_envs use embedded single quotes:

common_make_envs=(
    "CCACHE_BASEDIR='$(pwd)'"                   # line 21
    "CCACHE_TEMPDIR='${CCACHE_TEMPDIR:?}'"      # line 22
    "CCACHE_DIR='${CCACHE_DIR}'"                # line 34
    "RUST_LIB_SRC='${rust_lib_src}'"            # our addition - same format
)

Why this works correctly:

  1. Framework convention — this quoting style is used consistently in lib/functions/compilation/kernel-make.sh for all environment variables
  2. Expansion is correct — when "${common_make_envs[@]}" expands in the env -i command (line 87), each array element becomes a separate argument to env, which correctly parses VAR='value' syntax
  3. Proven by build success — the build log shows Rust compilation succeeded. If RUST_LIB_SRC contained literal quotes as part of the value, the kernel build would fail with "rust-src not found" because it wouldn't find /usr/src/rustc-1.85.1/library

Why changing it would be wrong:

  • Removing quotes only from RUST_LIB_SRC creates inconsistency with the rest of common_make_envs
  • The current implementation handles paths with spaces correctly (though /usr/src/rustc-*/library never contains spaces in practice)
  • @Q operator suggestion doesn't apply here — that's for common_make_params_quoted, not common_make_envs

The logged command output (RUST_LIB_SRC='/usr/src/...') is just string representation for display — the actual environment variable is set correctly without literal quotes.

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented Feb 11, 2026

Tip

For best results, initiate chat on the files or code changes.

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Verify the quoting pattern in common_make_envs array in kernel-make.sh
cat lib/functions/compilation/kernel-make.sh | grep -A 20 "common_make_envs=(" | head -40

Length of output: 1289


@iav, you're absolutely correct—thank you for the detailed explanation and for taking the time to clarify this!

I've now verified lib/functions/compilation/kernel-make.sh and can confirm that the "VAR='${value}'" pattern is indeed the established convention used consistently throughout the common_make_envs array. My previous comment was incorrect, and I apologize for the confusion.

Your implementation of "RUST_LIB_SRC='${rust_lib_src}'" follows the exact same pattern as all the other environment variables (CCACHE_BASEDIR, CCACHE_TEMPDIR, PATH, etc.), and as you noted, the successful build logs prove it works correctly with the env -i command.

I appreciate you providing this context—it helps me better understand the framework's conventions going forward.


✏️ Learnings added
Learnt from: iav
URL: https://github.com/armbian/build/pull/9386

Timestamp: 2026-02-11T07:41:11.846Z
Learning: In lib/functions/compilation/kernel-make.sh, the common_make_envs array uses a consistent quoting pattern where each element is formatted as "VAR='${value}'" with embedded single quotes. This pattern works correctly with the `env -i` command and should be maintained for consistency across all environment variables added to common_make_envs, including RUST_LIB_SRC.

Note: Learnings are effective only in the context of similar code segments. To apply general coding guidelines, please configure review instructions. You can manage existing learnings in the app.


🧠 Learnings used
Learnt from: rpardini
Repo: armbian/build PR: 9159
File: config/sources/families/genio.conf:201-201
Timestamp: 2026-01-03T20:44:12.559Z
Learning: In the Armbian build system, when calling run_host_command_logged with arrays containing arguments that have shell metacharacters (e.g., semicolons, pipes), use "${array[*]Q}" instead of "${array[@]}". This is because run_host_command_logged executes via `bash -c "$*"`, and the Q operator shell-quotes each element to prevent bash from interpreting special characters as command separators or other shell syntax.

Learnt from: tabrisnet
Repo: armbian/build PR: 0
File: :0-0
Timestamp: 2025-08-30T06:48:09.091Z
Learning: In lib/functions/compilation/armbian-kernel.sh, the user prefers flexible grep patterns over anchored ones for BTRFS configuration checks, but agrees to use quiet grep (-q) to avoid polluting build logs.

Learnt from: tabrisnet
Repo: armbian/build PR: 8661
File: lib/functions/compilation/armbian-kernel.sh:194-199
Timestamp: 2025-09-25T18:37:00.330Z
Learning: In PR armbian/build#8661, line 235 of lib/functions/compilation/armbian-kernel.sh already contains the corrected comment "BPF link support for netfilter hooks" for NETFILTER_BPF_LINK, not the misleading "BPF_SYSCALL" comment that was flagged during review.

Learnt from: tabrisnet
Repo: armbian/build PR: 8661
File: lib/functions/compilation/armbian-kernel.sh:194-199
Timestamp: 2025-09-25T18:37:00.330Z
Learning: In PR armbian/build#8661, line 235 of lib/functions/compilation/armbian-kernel.sh already contains the corrected comment "BPF link support for netfilter hooks" for NETFILTER_BPF_LINK, not the misleading "BPF_SYSCALL" comment that was flagged during review.

Learnt from: EvilOlaf
Repo: armbian/build PR: 0
File: :0-0
Timestamp: 2025-07-21T04:12:02.439Z
Learning: In the Armbian build system, for recurring maintenance tasks like kernel version bumping, TODO comments should use generic version formats (e.g., "MAJOR.MINOR-rc1") rather than specific version numbers (e.g., "6.17-rc1") to avoid the need for frequent comment updates that would create unnecessary maintenance overhead.

Learnt from: djurny
Repo: armbian/build PR: 8315
File: lib/functions/rootfs/distro-agnostic.sh:54-68
Timestamp: 2025-06-22T00:45:26.182Z
Learning: In Armbian build system, external command dependencies like envsubst are handled by adding the required packages (e.g., gettext for envsubst) to host_dependencies in adaptative_prepare_host_dependencies function in lib/functions/host/prepare-host.sh, rather than checking command availability at runtime.

Learnt from: tabrisnet
Repo: armbian/build PR: 0
File: :0-0
Timestamp: 2025-10-24T04:46:22.901Z
Learning: In lib/functions/rootfs/rootfs-create.sh, the FIXME comment about mmdebstrap usage with --aptopt is a future note related to PR `#8785`, which hasn't been merged yet.

Learnt from: glneo
Repo: armbian/build PR: 8913
File: config/sources/families/include/k3_common.inc:57-60
Timestamp: 2025-11-11T20:56:20.303Z
Learning: In config/sources/families/include/k3_common.inc, the OP-TEE build command at line 59 should be updated in a future PR to explicitly set CROSS_COMPILE64=aarch64-linux-gnu- and CROSS_COMPILE32=arm-linux-gnueabihf- instead of relying on OP-TEE's internal defaults, for better clarity and maintainability. User glneo agreed to address this in a separate PR.

Learnt from: amazingfate
Repo: armbian/build PR: 8419
File: lib/functions/host/prepare-host.sh:272-275
Timestamp: 2025-07-23T10:01:41.310Z
Learning: In the Armbian build system, the design philosophy is to fail fast when host dependencies are not met rather than gracefully skipping unsupported architectures. This ensures build environment consistency and prevents silent failures. Host dependency checks should be explicit and non-negotiable.

Learnt from: igorpecovnik
Repo: armbian/build PR: 9087
File: .github/workflows/pr-check-pictures.yml:138-146
Timestamp: 2025-12-16T13:40:07.649Z
Learning: In the Armbian build repository, when introducing new requirements or checks (like the board assets verification workflow), the project prefers an initial educational-only period where violations post helpful PR comments and warnings but don't block merges. This allows contributors to become familiar with new requirements before enforcement is enabled (typically after ~6 months).

@EvilOlaf
Copy link
Copy Markdown
Member

Noble-updates is present and used. packages were mostly up to date before trying. Nothing rust-related after updating.
before the build there were no rust-related packages installed, the extension did this.

Comment thread extensions/kernel-rust.sh Outdated
@rpardini
Copy link
Copy Markdown
Member

We all knew this was coming, but I wonder if it's too soon for Rust stuff. We've enough on our plates without it. Any practical use-case already? (Otherwise it's a lot of work, which will invariably change, for little benefit). I don't oppose, just wonder.

@iav
Copy link
Copy Markdown
Contributor Author

iav commented Feb 11, 2026

No, there was no immediate, specific goal; it was an attempt to "prepare for the future." Well, and I wanted to see what it would be like there, in the future.
It turned out to be a great example of how getting something that works is 15%. And then 85% is making it work reliably.

You're probably right. Nothing bad will happen if we wait another 2-3 months, but there will almost certainly be more certainty and clarity.
What really sparked my enthusiasm was the introduction bindgen in Ubuntu LTS, specifically for the current kernel. And, of course, the official announcement that Rust will stay in the kernel.

@rpardini
Copy link
Copy Markdown
Member

Yeah, maybe the "exciting" Rust stuff is still out of tree (eg tyr)?

Ref the complexity, maybe it is more related to clang + rust than gcc + rust? We could for now just say "you wanna Rust then use gcc") is that decreases the complexity...

@iav
Copy link
Copy Markdown
Contributor Author

iav commented Feb 11, 2026

tyr there, I build it already. But have no way to run it.
tyr-gpu.sh

@iav
Copy link
Copy Markdown
Contributor Author

iav commented Feb 12, 2026

During the implementation of this extension, almost all the complexity was related to coordinating rustc versions, packages, and libraries, taking into account what could be installed from the repositories available on the build machine. And even then, in the end, everything fell into place in the correct chain for me, but for some reason for you it didn’t.
Installing simply by downloading from the rust and cargo homepages requires just a few commands and no checks.
But then this is done at every launch, since we have no way to add such a script to the build container creation script, and I did not dare to introduce a mechanism for such a hook.

@iav
Copy link
Copy Markdown
Contributor Author

iav commented Feb 12, 2026

@rpardini
Copy link
Copy Markdown
Member

Installing simply by downloading from the rust and cargo homepages requires just a few commands and no checks.
But then this is done at every launch, since we have no way to add such a script to the build container creation script, and I did not dare to introduce a mechanism for such a hook.

Yeah that would be a bit more intricate indeed. We have somewhat similar with Python (which used to be from python3 package from distro, but now is a bit mixed with pip from source etc). Not the prettiest code indeed, but maybe Claude can make sense of it and make a version using rustup?

@iav
Copy link
Copy Markdown
Contributor Author

iav commented Feb 13, 2026

The main thing is to figure out how to integrate the hook into the container image creation process. The rest is easy.

@iav
Copy link
Copy Markdown
Contributor Author

iav commented Feb 13, 2026

Migrate the kernel-rust extension from APT packages to rustup.

Instead of distro-specific packages (rustc-1.85, bindgen-0.71, clang-20 and ~150 lines of version selection logic), the toolchain is installed via rustup into cache/tools/rustup/, cached by a hash of versions and architecture.

Removed LLVM management from the extension — cargo-installed bindgen uses the system libclang-dev via dlopen, so matching clang/lld/llvm versions is no longer necessary.

Added RUST_EXTRA_COMPONENTS and RUST_EXTRA_CARGO_CRATES arrays — other extensions can request their own rustup components and cargo utilities without modifying kernel-rust.

Works identically on Ubuntu 24.04/25.10/26.04, Debian 13, both natively and in Docker.

@github-actions github-actions Bot added size/medium PR with more then 50 and less then 250 lines and removed size/large PR with 250 lines or more labels Feb 13, 2026
@iav
Copy link
Copy Markdown
Contributor Author

iav commented Feb 18, 2026

I use dkms bcachefs from https://apt.bcachefs.org / with an edge kernel on its Helios64 and ODroidM1.
The bcachefs author says that a kernel build with CONFIG_RUST=y will soon become necessary for using bcachefs

Add extension that enables CONFIG_RUST in kernel menuconfig and
configures the build environment (rustc, rustfmt, bindgen, rust-src)
using versioned APT packages from noble-security/noble-updates.

Handles env -i in run_kernel_make_internal by passing tool paths
via RUSTC, RUSTFMT, BINDGEN make params and RUST_LIB_SRC env var.

Includes optional RUST_KERNEL_SAMPLES=yes for building sample
Rust modules (rust_minimal, rust_print, rust_driver_faux) as a
toolchain smoke test.

Tested: kernel 6.19 build for rockchip64 on aarch64, both with
and without Docker.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Copy link
Copy Markdown
Member

@rpardini rpardini left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Single, self-contained, optional, extension. Let's merge so easier to test. Any issues we can fix later...?

@github-actions github-actions Bot added the Ready to merge Reviewed, tested and ready for merge label Feb 18, 2026
@github-actions
Copy link
Copy Markdown
Contributor

✅ This PR has been reviewed and approved — all set for merge!

@github-actions github-actions Bot removed the Needs review Seeking for review label Feb 18, 2026
@iav
Copy link
Copy Markdown
Contributor Author

iav commented Feb 18, 2026

At the moment, I myself use this extension to build kernels in my home lab, I am not aware of any errors or workarounds.
I believe it is ready to merge.

@igorpecovnik igorpecovnik added the Needs Documentation New feature needs documentation entry label Feb 18, 2026
@github-actions github-actions Bot removed the Needs Documentation New feature needs documentation entry label Feb 18, 2026
@EvilOlaf EvilOlaf added the Needs Documentation New feature needs documentation entry label Feb 18, 2026
@igorpecovnik igorpecovnik merged commit 4222417 into armbian:main Feb 28, 2026
1 check passed
@iav iav deleted the enh/kernel-rust branch March 1, 2026 01:29
@EvilOlaf
Copy link
Copy Markdown
Member

EvilOlaf commented Mar 1, 2026

Is this documented already?

@iav
Copy link
Copy Markdown
Contributor Author

iav commented Mar 1, 2026

Only in the form of comments at the top of the extension file.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

02 Milestone: First quarter release Framework Framework components Needs Documentation New feature needs documentation entry Ready to merge Reviewed, tested and ready for merge size/medium PR with more then 50 and less then 250 lines

Development

Successfully merging this pull request may close these issues.

5 participants