Files
UniXNU/docs/reference/components.md
T

2.8 KiB

Component catalog

components.toml in UniXNU records the maintained components. Profiles select canonical IDs through [components] include. The resolver adds dependencies and orders their build commands before their consumers.

Fields

Field Meaning
id Canonical component ID
kind, path Module kind and checkout path
repository, revision Source repository and pinned revision
legacy_name Accepted official compatibility name
function Capability provided by the component
scope Implementation scope
hardware Required controllers, protocols, or GPU family
os_abi XNU or userland ABI requirements
board_dependencies Firmware, wiring, memory, or policy inputs
verified_devices Devices with recorded hardware results
dependencies Component IDs built first
build_stage Kernel, payload, firmware, prelink, or embedded integration
build Build command arguments
outputs Paths produced in the target tree
runtime_identifiers Source filenames, classes, bundle/plugin IDs, symbols, protocols

Implementation scope and hardware verification are separate fields. Adreno740 implements the A740 GPU interface used by SM8550. sheng is its recorded device verification target. AdrenoMetal provides the Metal frontend through metal2vulkan and Turnip, with dependencies on the kernel interface and OS ABI.

Selection

[components]
include = ["ArmDTPlatform", "ArmCpu", "Adreno740", "AdrenoMetal", "GopFramebuffer"]

Kernel-stage recipes run in dependency order. [kernel] archives can place component:<ID> markers among auxiliary commands. Payload, firmware, prelink, and embedded entries describe their corresponding integration stages.

The device's include array replaces the inherited array. List the required selection in full; dependencies are added by the resolver. Inspect the resolved selection, source revisions, local overrides, and build order:

./unixnu status --json -D ../UniXNU-sheng

Search this catalog, the component pages, the README, and source before implementing a capability. Match interfaces, hardware scope, OS requirements, and board inputs.

Source identity

Official compatibility names resolve using the repository identity recorded in the catalog. For example, the official UniXNU/NativeAdreno source resolves to Adreno740. A source such as another-owner/NativeAdreno retains its own identity and selection. Check the remote and revision before editing a feed.

The migration table lists accepted names. Source filenames and runtime identifiers keep the values used by their ABI. For example, the AdrenoMetal component stages NativeAdrenoMetal plugin files.