Skip to content

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.

Find and select an implementation ​

  1. Find the capability in the driver adaptation checklist.
  2. Search components.toml for its ID, then read the implementation and its board dependencies.
  3. Compare hardware and OS ABI inputs; use the linked adaptation procedure to fill missing board hooks.
  4. Select it in the device profile, add the required archive/integration step and inspect the result:
sh
./unixnu status --json

Continue with Building after the dependencies and source revisions match the intended port.

Fields ​

FieldMeaning
idCanonical component ID
kind, pathModule kind and checkout path
repository, revisionSource repository and pinned revision
legacy_nameAccepted official compatibility name
functionCapability provided by the component
scopeImplementation scope
hardwareRequired controllers, protocols, or GPU family
os_abiXNU or userland ABI requirements
board_dependenciesFirmware, wiring, memory, or policy inputs
verified_devicesDevices with recorded hardware results
dependenciesComponent IDs built first
build_stageKernel, payload, firmware, prelink, or embedded integration
buildBuild command arguments
outputsPaths produced in the target tree
runtime_identifiersSource 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 ​

toml
[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:

sh
./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.

Released under the BSD-2-Clause-Patent License.