Settings Fields
RadBuild projects use settings.json with schema v2. Packaged templates live in the RadBuild payload and are selected by radbuild project create --template.
Top-Level Fields
radbuild_schema: required schema identifier. Use2.0.radbuild_version: required RadBuild implementation version. Use0.2.1.project_name: required project name.systems: required build graph node array.connections: required graph connection metadata array. May be empty.artifacts: required expected artifact metadata array. May be empty.deploy: required deployment metadata array. May be empty.packages: required package metadata object. May be empty.legacy: optional compatibility metadata for migrated projects.
System Fields
id: unique system id used bydepends_onand--system.type: namespaced system type such asfpga.vivado,linux.buildroot,os.radpx, orpackage.debian.name: display name.provider: provider implementation name.depends_on: array of system ids this system depends on.toolchain: toolchain/platform metadata.config: provider-specific settings.hdl: optional HDL instance metadata for FPGA systems.
Common Config Fields
version: tool, package, or image version.project_name: provider-local project name.source_dir: source directory for software providers.binary: expected binary name for software providers.artifact_dir: copied artifact output directory.log_dir: provider log directory.
Provider Config Fields
fpga.vivado.part_number: Vivado part number.fpga.vivado.testbench_stop_time: HDL simulation stop time.linux.petalinux.target_ip: deploy target address.linux.petalinux.modules: kernel module list.linux.petalinux.firmware: firmware file globs.linux.petalinux.xsa_dir: hardware handoff directory.linux.petalinux.template: PetaLinux template such aszynqMP.linux.petalinux.bsp_release_dir: BSP release directory.linux.petalinux.fast_update_dir: fast update deploy directory.linux.buildroot.board: board/platform label.linux.buildroot.external_tree: generated Buildroot external tree path.linux.yocto.layer: generated Yocto layer.os.radpx.target: RADPx build target.os.radpx.ui_profile: RADPx UI profile such asterminalorwm.os.radpx.source: RADPx source acquisition.type=localusespathorsource_dir;type=gitusesurl, optionalbranch,tag,commit,ref,checkout_dir,update, anddepth.os.radpx.feature_chunks: RADPx kernel/userspace chunks.os.radpx.rkconfig: RADPx runtime kernel/image configuration, including terminal theme, package toggles, static IPv4, gateway, DNS, and NTP settings.os.radpx.radpm: RADPx package repository, suite, packagegroups, and explicit packages.os.radpx.sdk: RADPx SDK export settings.enabledemits a SDK tarball,namesets the archive filename,root_namesets the top-level directory inside the archive, anddiroverrides the temporary SDK staging directory.os.radpx.build_dir: RADPx build output directory.os.radpx.smoke_script: script invoked by RadBuild.os.radpx.qemu_smp: QEMU SMP counts used by smoke testing.os.radpx.skip_qemu: skip VM execution when true.
The machine-readable catalog is packaged as radbuild/schemas/project-fields-v0.2.1.json.
When os.radpx.radpm.packagegroups or os.radpx.radpm.packages is set, RadBuild resolves the selected metadata, verifies signed .radpm archives when signatures are required, stages package payloads into the generated RADPx root filesystem, and reuses development payloads for the exported SDK. Packagegroups select complete feature sets such as radpx-terminal-base, while direct packages are intentionally explicit. Missing dependencies are reported with the available packagegroup or package that can satisfy them. The menuconfig interface exposes source, packagegroup selection, package selection, and SDK settings; non-interactive flows can use --set-source KEY=VALUE, --enable-packagegroup, --disable-packagegroup, --enable-package, --disable-package, and --set-sdk KEY=VALUE.
RADPx Configuration Detail
os.radpx.source accepts either a local checkout or a Git repository:
{
"type": "git",
"url": "https://github.com/Radical-Computer-Technologies/RADPx-OS.git",
"branch": "crimson-v0.1.3",
"checkout_dir": ".radmeta/sources/RADPx-OS",
"update": true,
"depth": 1
}
os.radpx.rkconfig is copied into the image build environment. Common fields include hostname, root_password, rootfs_size_mb, terminal font/theme settings, terminal autocomplete, POSIX terminal compatibility, Vim/ncurses toggles, static IPv4 settings, DNS, NTP server/port, timezone, max process counts, and kernel task stack sizing.
os.radpx.radpm points at a RadicalPackages repository or release mirror:
{
"repository": "https://github.com/Radical-Computer-Technologies/RadicalPackages/releases/download/radpx-os-0.1.4-beta.1",
"suite": "experimental",
"packagegroups": ["radpx-terminal-base", "radpx-networking"],
"packages": [],
"verify_signatures": true,
"allow_unsigned": false
}
Prefer packagegroups for normal images. Use direct packages for narrow experiments, overlays, and debugging. RadBuild reports unmet dependencies and the packagegroup or package that can satisfy them; it does not silently add dependencies to the project file.
os.radpx.sdk.enabled=true exports a sysroot and wrapper scripts suitable for cross-compiling RADPx userspace ports against the staged headers and libraries.
Linux Provider Detail
linux.petalinux expects an installed Xilinx/PetaLinux environment. RadBuild does not vendor Xilinx tools. It records the XSA handoff, selected template, module list, firmware globs, BSP release directory, and deploy target so the same project graph can be regenerated and rebuilt.
linux.buildroot expects Buildroot to be available on the host or through the project's own tooling. RadBuild generates the external-tree location and graph metadata; board package policy remains in the Buildroot external tree.