### Examples for adding a runtime Source: https://docs.peridio.com/avocado-linux/tools/avocadoctl/commands/runtime/add Common usage scenarios including TUF repository access and local manifest installation. ```bash # Add from a TUF repository avocadoctl runtime add --url https://tuf.example.com/repo # Add from a TUF repository with authentication AVOCADO_TUF_AUTH_TOKEN=mytoken avocadoctl runtime add --url https://tuf.example.com/repo # Add from a local manifest avocadoctl runtime add --manifest /path/to/manifest.json ``` -------------------------------- ### Complete configuration example Source: https://docs.peridio.com/avocado-linux/guides/customizing-rootfs-initramfs A comprehensive example showing SDK, rootfs, initramfs, extensions, and runtime configurations. ```yaml sdk: image: docker.io/avocadolinux/sdk:2024-edge rootfs: filesystem: erofs-lz4 packages: avocado-pkg-rootfs: '*' strace: '*' vim-minimal: '*' initramfs: filesystem: cpio.zst packages: avocado-pkg-initramfs: '*' e2fsprogs: '*' extensions: my-app: version: '1.0.0' types: [sysext] runtimes: dev: extensions: [my-app] packages: avocado-runtime: '*' ``` -------------------------------- ### Initialize and Install Avocado Project Source: https://docs.peridio.com/hardware/qemu/x86-64/provision Create a new project directory for QEMU x86-64 and install necessary dependencies. Ensure you are in the development machine environment. ```bash avocado init --target qemux86-64 qemux86-64 && cd qemux86-64 avocado install --force ``` -------------------------------- ### Install SDK dependencies Source: https://docs.peridio.com/avocado-linux/guides/sideloading Installs SDK dependencies, extensions, and runtimes. Use the --force flag to skip interactive prompts. ```bash avocado install -f ``` -------------------------------- ### Inspect Runtime Examples Source: https://docs.peridio.com/avocado-linux/tools/avocadoctl/commands/runtime/inspect Examples showing how to inspect the active runtime or a specific runtime using an ID prefix. ```bash # Inspect the active runtime avocadoctl runtime inspect # Inspect a specific runtime by ID prefix avocadoctl runtime inspect a1b2 ``` -------------------------------- ### Install SDK Dependencies Source: https://docs.peridio.com/avocado-linux/tools/avocado-cli/commands/sdk/install Use this command to install dependencies into the SDK. Various options are available to customize the installation, such as specifying a configuration file, forcing the operation, setting a target architecture, or passing additional arguments to container or DNF commands. ```bash avocado sdk install [OPTIONS] ``` -------------------------------- ### Runtime Manifest - Full Example Source: https://docs.peridio.com/avocado-linux/tools/avocadoctl/runtime-management/manifest-spec A comprehensive example of a runtime manifest including extensions and an OS bundle. ```APIDOC ## Runtime Manifest - Full Example ### Description This example demonstrates a complete runtime manifest configuration, including the runtime identity, a list of extensions, and an optional OS bundle. ### File Location `/var/lib/avocado/runtimes/{runtime_id}/manifest.json` ### Request Body Example ```json { "manifest_version": 2, "id": "a1b2c3d4-e5f6-7890-abcd-ef0123456789", "built_at": "2026-03-12T10:30:00Z", "runtime": { "name": "production", "version": "1.2.0" }, "extensions": [ { "name": "my-app", "version": "2.1.0", "image_id": "f47ac10b-58cc-5372-8567-0e02b2c3d479", "sha256": "a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2" }, { "name": "my-config", "version": "1.0.0", "image_id": "7c9e6679-7425-540b-8c36-e23b1e3b1e81", "sha256": "b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3" } ], "os_bundle": { "image_id": "deadbeef-1234-5678-abcd-000000000000", "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "os_build_id": "avocado-os-20260312", "initramfs_build_id": "initramfs-20260312" } } ``` ``` -------------------------------- ### Start HITL Server Source: https://docs.peridio.com/avocado-linux/tools/avocado-cli/commands/hitl/server Command to start a HITL server container with various configuration options. ```APIDOC ## Start HITL Server ### Description Starts a HITL server container with preconfigured settings. ### Method CLI Command ### Endpoint N/A (This is a command-line tool) ### Parameters #### Command Options - **-C, --config-path** (string) - Optional - Path to avocado.yaml configuration file [default: avocado.yaml] - **-e, --extension** (string array) - Optional - Extensions to create NFS exports for - **--container-arg** (string array) - Optional - Additional container arguments - **--dnf-arg** (string array) - Optional - Additional arguments to pass to DNF commands - **-t, --target** (string) - Optional - Target to build for - **-v, --verbose** - Optional - Enable verbose output - **-p, --port** (integer) - Optional - NFS port number to use - **--no-stamps** - Optional - Disable stamp validation - **--runs-on** (string) - Optional - Run command on remote host using local volume via NFS (format: user@host) - **--nfs-port** (integer) - Optional - NFS port for remote execution (auto-selects from 12050-12099 if not specified) - **--sdk-arch** (string) - Optional - SDK container architecture for cross-arch emulation via Docker buildx/QEMU (aarch64 or x86-64) - **--no-tui** - Optional - Disable TUI output (use legacy sequential output with inherited stdio) - **-h, --help** - Optional - Print help ### Request Example ```bash avocado hitl server -C my_config.yaml -e fedora -t x86_64 --verbose ``` ### Response This command typically starts a server process and does not return a direct response in the traditional API sense. Output will be printed to the console. #### Success Response (Server Start) Output indicating the server has started successfully. #### Response Example ``` Starting HITL server... Server running on port 12050. ``` #### Error Handling Errors will be printed to stderr, indicating configuration issues, port conflicts, or other runtime problems. ``` -------------------------------- ### Peridio EVK Initialization Output Example Source: https://docs.peridio.com/peridio-core/guides/peridio-evk This is an example of the output you might see when initializing the Peridio EVK. It confirms the organization details and product name. ```text 📋 Initializing EVK ℹ Organization Name: evk-demo ℹ Organization PRN: prn:1:70c48079-0c40-4668-a7c2-3a15e003bc6b ℹ Product Name: edge-inference ℹ API key: Running this task may take several minutes to complete. You may run this task over again in the case of errors as it will not duplicate data Proceed? [y/N]: ``` -------------------------------- ### Initialize and Install Project Dependencies Source: https://docs.peridio.com/hardware/onlogic/fr201/provision Initialize a new Avocado project for the FR201 target and change into the project directory. Then, install all necessary dependencies for the project using the `--force` flag. ```bash avocado init --target fr201 fr201 && cd fr201 ``` ```bash avocado install --force ``` -------------------------------- ### POST /ext/install Source: https://docs.peridio.com/avocado-linux/tools/avocado-cli/commands/ext/install Installs dependencies into extension sysroots. Can be used to install specific extensions or all extensions if no name is provided. ```APIDOC ## POST /ext/install ### Description Installs dependencies into extension sysroots. ### Method POST ### Endpoint avocado ext install [NAME] ### Parameters #### Path Parameters - **NAME** (string) - Optional - Extension name (if not provided, installs all extensions) #### Query Parameters - **--config** (string) - Optional - Path to avocado.yaml configuration file [default: avocado.yaml] - **--verbose** (flag) - Optional - Enable verbose output - **--force** (flag) - Optional - Force the operation to proceed, bypassing warnings or confirmation prompts - **--target** (string) - Optional - Target architecture - **--container-arg** (string) - Optional - Additional arguments to pass to the container runtime - **--dnf-arg** (string) - Optional - Additional arguments to pass to DNF commands - **--runs-on** (string) - Optional - Run command on remote host using local volume via NFS (format: user@host) - **--nfs-port** (integer) - Optional - NFS port for remote execution - **--sdk-arch** (string) - Optional - SDK container architecture for cross-arch emulation (aarch64 or x86-64) - **--no-tui** (flag) - Optional - Disable TUI output ``` -------------------------------- ### Initialize and Install Avocado Project Source: https://docs.peridio.com/hardware/raspberry-pi/raspberry-pi-4-model-b/provision Initialize a new Avocado project for Raspberry Pi 4 and install its dependencies. This command sets up the project structure and fetches necessary packages. ```bash avocado init --target raspberrypi4 raspberrypi4 && cd raspberrypi4 ``` ```bash avocado install --force ``` -------------------------------- ### Initialize and Install Avocado Project Source: https://docs.peridio.com/hardware/nvidia/jetson-orin-nano-developer-kit/provision Initializes a new Avocado project for the Jetson Orin Nano DevKit and installs the necessary dependencies. Ensure you are in the correct directory after initialization. ```bash avocado init --target jetson-orin-nano-devkit jetson-orin-nano-devkit && cd jetson-orin-nano-devkit avocado install --force ``` -------------------------------- ### Start Virtual Devices with Peridio CLI Source: https://docs.peridio.com/peridio-core/guides/peridio-evk Executes the command to start virtual devices. This command pulls the latest container image and launches six containers with unique identities. ```bash peridio-evk devices-start --tag latest ``` -------------------------------- ### List Products Response Source: https://docs.peridio.com/peridio-core/tools/admin-api/popout Example response structure for listing products. ```json { * "products": [ * { * "archived": false, * "inserted_at": "2019-08-24T14:15:22Z", * "name": "string", * "prn": "string", * "updated_at": "2019-08-24T14:15:22Z" } ], * "next_page": "string" } ``` -------------------------------- ### Build and Provision the Project Source: https://docs.peridio.com/hardware/onlogic/fr201/provision Build the system image for the project and execute the provisioning procedure. This command flashes the built image to your target hardware using the specified development runtime and USB profile. ```bash avocado build ``` ```bash avocado provision -r dev --profile usb ``` -------------------------------- ### avocado runtime install Source: https://docs.peridio.com/avocado-linux/tools/avocado-cli/commands/runtime/install Installs dependencies into runtime installroots. You can specify a runtime name or install for all runtimes. ```APIDOC ## avocado runtime install ### Description Install dependencies into runtime installroots. ### Method Not Applicable (CLI Command) ### Endpoint Not Applicable (CLI Command) ### Parameters #### Path Parameters - **NAME** (string) - Optional - Runtime name (if not provided, installs for all runtimes) #### Query Parameters - **-C, --config** (string) - Optional - Path to avocado.yaml configuration file [default: avocado.yaml] - **-v, --verbose** (boolean) - Optional - Enable verbose output - **-f, --force** (boolean) - Optional - Force the operation to proceed, bypassing warnings or confirmation prompts - **-t, --target** (string) - Optional - Target architecture - **--container-arg** (string) - Optional - Additional arguments to pass to the container runtime - **--dnf-arg** (string) - Optional - Additional arguments to pass to DNF commands - **--runs-on** (string) - Optional - Run command on remote host using local volume via NFS (format: user@host) - **--nfs-port** (integer) - Optional - NFS port for remote execution (auto-selects from 12050-12099 if not specified) - **--sdk-arch** (string) - Optional - SDK container architecture for cross-arch emulation via Docker buildx/QEMU (aarch64 or x86-64) - **--no-tui** (boolean) - Optional - Disable TUI output (use legacy sequential output with inherited stdio) - **-h, --help** (boolean) - Optional - Print help ### Request Example ```bash avocado runtime install my_runtime --force --target x86_64 ``` ### Response #### Success Response (0) - **Output** (string) - Standard output from the installation process. #### Response Example ``` Installing dependencies for runtime 'my_runtime'... Dependencies installed successfully. ``` ``` -------------------------------- ### Avocado Provisioning Steps Output Source: https://docs.peridio.com/hardware/nvidia/jetson-orin-nano-developer-kit/provision Example output showing the progress of the Avocado provisioning steps, including signing binaries, booting the Jetson via RCM, and sending flash sequence commands. ```text == Step 1: Signing binaries at 2025-10-13T12:18:56+00:00 == ... == Step 2: Boot Jetson via RCM at 2025-10-13T12:19:27+00:00 == ... == Step 3: Sending flash sequence commands at 2025-10-13T12:19:41+00:00 == ``` -------------------------------- ### Install peridio-evk using pip Source: https://docs.peridio.com/peridio-core/guides/peridio-evk Install the Peridio EVK package from PyPI. Ensure you have Python 3.6+ installed. ```bash pip install peridio-evk ``` -------------------------------- ### PEM format examples Source: https://docs.peridio.com/peridio-core/reference/binary-management/signing-keys Example content for PEM-encoded private and public keys. ```text -----BEGIN PRIVATE KEY----- MC4CAQAwBQYDK2VwBCIEIP3kk9k67kg6NJmqhA3pcEhS+yHSE/iX2PUBRU4NIv8O -----END PRIVATE KEY----- ``` ```text -----BEGIN PUBLIC KEY----- MCowBQYDK2VwAyEAusHn/U1x9H6SUo3fM1Uf9bsEuKcHXWD2mj6a1GRa8z0= -----END PUBLIC KEY----- ``` -------------------------------- ### Verify Peridio Installation Source: https://docs.peridio.com/peridio-core/tools/peridio-cli/installation Check that the CLI is correctly installed by displaying the version number. ```bash peridio --version ``` -------------------------------- ### Build and Provision Device Source: https://docs.peridio.com/hardware/advantech/icam-540/provision Builds the system image and flashes it to the target hardware. ```bash avocado build avocado provision -r dev ``` -------------------------------- ### Webhook Request Body Example Source: https://docs.peridio.com/peridio-core/reference/integration-management/webhooks Example JSON payload sent in a webhook request. ```json { "version": 1, "prn": "prn:1:4e33149b-637d-4679-b64f-4905e7a0cf8c:event:a727838c-0195-4ccf-8258-cebf4608db8e", "type": "device", "inserted_at": "2023-09-14T20:23:30Z", "data": { "type": "release_changed", "data": { "device": { "identifier": "SN1337", "prn": "prn:1:4e33149b-637d-4679-b64f-4905e7a0cf8c:device:a2edbb76-5f44-4202-860d-74a8c17d65aa" }, "from_release": { "prn": "prn:1:4e33149b-637d-4679-b64f-4905e7a0cf8c:release:499b64fb-1420-4f58-8c73-e5497e1f531e", "version": "1.0.0" }, "to_release": { "prn": "prn:1:4e33149b-637d-4679-b64f-4905e7a0cf8c:release:f456986f-1a2f-4d73-8f70-96ff05a6bce7", "version": "2.0.0" } } } } ``` -------------------------------- ### Build and Provision Project Source: https://docs.peridio.com/hardware/nxp/imx8mp/provision Build the system image and execute the provisioning procedure for the imx8mp-evk target using the 'dev' runtime and 'sd' profile. This flashes the system image to the target hardware. ```bash avocado build ``` ```bash avocado provision -r dev --profile sd ``` -------------------------------- ### Raw format examples Source: https://docs.peridio.com/peridio-core/reference/binary-management/signing-keys Example content for base64-encoded raw private and public keys. ```text Vz/xXB/pdbOphbyjLKj5MBpH/TKXjWEYZdRWzhkKM5fIOXkBQLksx+B5UXUcxIQD8xfg4AioLFeZDrZ8VQIfZQ== ``` ```text yDl5AUC5LMfgeVF1HMSEA/MX4OAIqCxXmQ62fFUCH2U= ``` -------------------------------- ### Start HITL server Source: https://docs.peridio.com/avocado-linux/references/hardware-in-the-loop Initiates the HITL server on the host machine to serve extensions over NFS. ```bash avocado hitl server -e my-extension ``` -------------------------------- ### Example PRN for an Organization Source: https://docs.peridio.com/peridio-core/reference/account-management/peridio-resource-names This is an example of a Peridio Resource Name (PRN) specifically for an organization. ```text prn:1:eec5cabf-c4a8-46ab-ae5a-70ca847d558d ``` -------------------------------- ### Runtime Manifest - Minimal Example Source: https://docs.peridio.com/avocado-linux/tools/avocadoctl/runtime-management/manifest-spec A minimal example of a runtime manifest containing only extensions. ```APIDOC ## Runtime Manifest - Minimal Example ### Description This example shows a minimal runtime manifest configuration, focusing solely on the runtime identity and a list of extensions, without an OS bundle. ### File Location `/var/lib/avocado/runtimes/{runtime_id}/manifest.json` ### Request Body Example ```json { "manifest_version": 1, "id": "abc12345-def6-7890-abcd-ef0123456789", "built_at": "2026-03-12T10:30:00Z", "runtime": { "name": "dev", "version": "0.1.0" }, "extensions": [ { "name": "my-app", "version": "0.1.0", "image_id": "f47ac10b-58cc-5372-8567-0e02b2c3d479", "sha256": "a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2" } ] } ``` ``` -------------------------------- ### Rebuild and provision components Source: https://docs.peridio.com/avocado-linux/guides/sideloading Commands to install dependencies, build the runtime, and provision the development environment. ```bash avocado install -f ``` ```bash avocado build ``` ```bash avocado provision -r dev ``` -------------------------------- ### Example PRN for an Artifact Source: https://docs.peridio.com/peridio-core/reference/account-management/peridio-resource-names This is an example of a Peridio Resource Name (PRN) for an artifact within a specific organization. ```text prn:1:eec5cabf-c4a8-46ab-ae5a-70ca847d558d:artifacts:ddfd22a7-d928-4dce-8de2-cd98bd0dd72a ``` -------------------------------- ### Initialize Avocado Project Source: https://docs.peridio.com/hardware/qemu/arm/provision Creates the project directory and installs necessary dependencies for the qemuarm64 target. ```bash avocado init --target qemuarm64 qemuarm64 && cd qemuarm64 avocado install --force ``` -------------------------------- ### Initialize Peridio EVK Demo Product Source: https://docs.peridio.com/peridio-core/guides/peridio-evk Initialize the Peridio EVK demo product by providing your organization name, PRN, and API key. Replace placeholders with your actual values. The command may take several minutes to complete. ```bash peridio-evk initialize --organization-name --organization-prn --api-key ``` -------------------------------- ### Initialize Avocado project Source: https://docs.peridio.com/hardware/raspberry-pi/raspberry-pi-5/provision Creates the project directory and installs the required dependencies for the Raspberry Pi 5 target. ```bash avocado init --target raspberrypi5 raspberrypi5 && cd raspberrypi5 avocado install --force ``` -------------------------------- ### Verify Avocado CLI Installation Source: https://docs.peridio.com/avocado-linux/tools/avocado-cli/installation Run this command to confirm that the Avocado CLI has been installed successfully and to display its version. ```bash avocado --version ``` -------------------------------- ### Example U-Boot Environment Configuration Source: https://docs.peridio.com/peridio-core/tools/peridio-daemon/uboot-environment/overview This configuration specifies that device identity credentials should be sourced from the U-Boot environment, referencing the environment variable names for the private key and certificate. ```yaml key_pair_source: "uboot-env", key_pair_options: %{ "private_key" => "device_private_key", "certificate" => "device_certificate" } ``` -------------------------------- ### hitl mount usage examples Source: https://docs.peridio.com/avocado-linux/tools/avocadoctl/commands/hitl/mount Common usage patterns for mounting single or multiple extensions, including optional custom port configuration. ```bash # Mount a single extension from a remote server avocadoctl hitl mount -s 192.168.1.100 my-app # Mount multiple extensions avocadoctl hitl mount -s 192.168.1.100 my-app my-config # Mount with a custom NFS port avocadoctl hitl mount -s 192.168.1.100 -e 2049 my-app ``` -------------------------------- ### Start avocadoctl Daemon Source: https://docs.peridio.com/avocado-linux/tools/avocadoctl/varlink-api/overview Manually start the avocadoctl daemon if it's not running. This makes the Varlink API available. ```bash avocadoctl serve ``` -------------------------------- ### Search query clause example Source: https://docs.peridio.com/peridio-core/tools/admin-api/popout A search clause is formed by a key, an operator, and a value. This example shows a date-time comparison. ```http inserted_at>='2023-01-01T00:00:00Z' ``` -------------------------------- ### Initialize Avocado Project Source: https://docs.peridio.com/hardware/seeed/reterminal/provision Creates the project directory and installs necessary dependencies for the reTerminal target. ```bash avocado init --target reterminal reterminal && cd reterminal avocado install --force ``` -------------------------------- ### Runtime Manifest Examples Source: https://docs.peridio.com/avocado-linux/tools/avocadoctl/runtime-management/manifest-spec Full and minimal JSON configurations for defining runtime environments. ```json { "manifest_version": 2, "id": "a1b2c3d4-e5f6-7890-abcd-ef0123456789", "built_at": "2026-03-12T10:30:00Z", "runtime": { "name": "production", "version": "1.2.0" }, "extensions": [ { "name": "my-app", "version": "2.1.0", "image_id": "f47ac10b-58cc-5372-8567-0e02b2c3d479", "sha256": "a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2" }, { "name": "my-config", "version": "1.0.0", "image_id": "7c9e6679-7425-540b-8c36-e23b1e3b1e81", "sha256": "b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3" } ], "os_bundle": { "image_id": "deadbeef-1234-5678-abcd-000000000000", "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "os_build_id": "avocado-os-20260312", "initramfs_build_id": "initramfs-20260312" } } ``` ```json { "manifest_version": 1, "id": "abc12345-def6-7890-abcd-ef0123456789", "built_at": "2026-03-12T10:30:00Z", "runtime": { "name": "dev", "version": "0.1.0" }, "extensions": [ { "name": "my-app", "version": "0.1.0", "image_id": "f47ac10b-58cc-5372-8567-0e02b2c3d479", "sha256": "a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2" } ] } ``` -------------------------------- ### GET /device/update Source: https://docs.peridio.com/peridio-core/tools/device-api Returns information regarding whether an update is available via a deployment. Note: This functionality has been superseded by the get update operation. ```APIDOC ## GET /device/update ### Description Returns information regarding whether an update is available via a deployment. If an update is available, additional information describing the update is returned including a presigned URL to acquire the update. ### Method GET ### Endpoint /device/update ``` -------------------------------- ### Create, upload, and sign a binary via CLI Source: https://docs.peridio.com/peridio-core/guides/binary-management/creating-binaries Executes the full creation, upload, and signing process in a single command. ```bash peridio binaries create \ --artifact-version-prn $PERIDIO_ARTIFACT_VERSION_PRN \ --content-path $PERIDIO_CONTENT_PATH \ --signing-key-pair $PERIDIO_SIGNING_KEY_PAIR \ --target $PERIDIO_TARGET ``` -------------------------------- ### Provision runtime Source: https://docs.peridio.com/avocado-linux/guides/sideloading Prepares the specified runtime by transforming build output into deployment artifacts. ```bash avocado provision -r dev ``` -------------------------------- ### Build and Provision Hardware Source: https://docs.peridio.com/hardware/nxp/frdm-imx-93/provision Compiles the system image and flashes it to the target hardware using the specified development profile. ```bash avocado build avocado provision -r dev --profile sd ``` -------------------------------- ### Install Initramfs Packages via DNF Source: https://docs.peridio.com/avocado-linux/tools/avocado-cli/commands/initramfs/install Use this command to install initramfs sysroot packages. It supports various options for configuration, targeting, and execution control. ```bash Install initramfs sysroot packages via DNF Usage: avocado initramfs install [OPTIONS] Options: -C, --config Path to avocado.yaml configuration file [default: avocado.yaml] -v, --verbose Enable verbose output -f, --force Force the operation to proceed, bypassing warnings or confirmation prompts -t, --target Target architecture --container-arg Additional arguments to pass to the container runtime --dnf-arg Additional arguments to pass to DNF commands --runs-on Run command on remote host using local volume via NFS (format: user@host) --nfs-port NFS port for remote execution (auto-selects from 12050-12099 if not specified) --sdk-arch SDK container architecture for cross-arch emulation via Docker buildx/QEMU (aarch64 or x86-64) --no-tui Disable TUI output (use legacy sequential output with inherited stdio) -h, --help Print help ``` -------------------------------- ### avocado install Source: https://docs.peridio.com/avocado-linux/tools/avocado-cli/commands/install Installs all components or specific packages to an extension, runtime, or SDK. It can sync sysroots, add packages to a specified scope, and write changes to avocado.yaml. ```APIDOC ## avocado install ### Description Install all components, or add specific packages to an extension/runtime/SDK. Without packages: syncs all sysroots with avocado.yaml (installs missing, removes extraneous). With packages: adds them to the specified scope and writes to avocado.yaml. ### Usage avocado install [OPTIONS] [PACKAGES]... ### Parameters #### Path Parameters None #### Query Parameters None #### Request Body None ### Options -e, --extension Extension to install packages into (required when adding packages) -C, --config Path to avocado.yaml configuration file [default: avocado.yaml] -v, --verbose Enable verbose output -f, --force Force the operation to proceed, bypassing warnings or confirmation prompts -r, --runtime Runtime name to install packages into (or sync when no packages given) --sdk Install packages into the SDK --no-save Skip writing packages to avocado.yaml -t, --target Target architecture --container-arg Additional arguments to pass to the container runtime --dnf-arg Additional arguments to pass to DNF commands --runs-on Run command on remote host using local volume via NFS (format: user@host) --nfs-port NFS port for remote execution (auto-selects from 12050-12099 if not specified) --sdk-arch SDK container architecture for cross-arch emulation via Docker buildx/QEMU (aarch64 or x86-64) --no-tui Disable TUI output (use legacy sequential output with inherited stdio) -h, --help Print help (see a summary with '-h') ### Arguments [PACKAGES]... Packages to install (when provided, adds to config and installs into the specified scope) ### Request Example ```bash avocado install my-package --extension my-extension ``` ### Response This command typically does not return a JSON response. Output is usually printed to standard output. #### Success Response (200) Output indicating the success of the installation or sync operation. #### Response Example ``` Installing my-package into my-extension... Successfully installed my-package. ``` ``` -------------------------------- ### Create Dummy Asset Source: https://docs.peridio.com/peridio-core/guides/long-term-support/creating-firmware Creates a simple text file to be included as an asset in the firmware archive. ```bash echo "russet" > tuber.txt ``` -------------------------------- ### Webhook Signature Example Source: https://docs.peridio.com/peridio-core/tools/admin-api Examples of webhook signatures, including a single signature and multiple signatures for secret rotation. These are used for verifying the authenticity of incoming webhooks. ```string FC825FCAA2E4C2688F075144105B75C2943D8B88AC4B5FAB134F2676A63FB6EF ``` ```string FC825FCAA2E4C2688F075144105B75C2943D8B88AC4B5FAB134F2676A63FB6EF,AC4B5FAB134F2676A63FB6EAAC825FCEA2E4C23B8F045134155B55C2943D8B51 ``` -------------------------------- ### Run QEMU VM using SDK Source: https://docs.peridio.com/hardware/qemu/x86-64/provision Use the generated provisioning artifacts to run the virtual machine with the Avocado SDK. The 'dev' runtime uses a passwordless root user. ```bash avocado sdk run -iE vm dev ``` -------------------------------- ### Clone Avocado Extension Repository Source: https://docs.peridio.com/avocado-linux/guides/sideloading Clone the Avocado extension repository to use a pre-configured example that supports multiple targets. This repository contains a comprehensive example configuration. ```bash git clone https://github.com/avocado-linux/avocado-ext.git ``` -------------------------------- ### Create and Stage a Binary with Peridio CLI Source: https://docs.peridio.com/peridio-core/guides/getting-started Use this command to create, sign, upload, and stage a binary. The optional `--device-prn` argument automates bundle creation, bundle override creation, and device assignment for immediate updates. ```bash touch my-first-binary.fw echo "Hello, Binary" >> my-first-binary.fw ``` ```bash peridio --profile peridio-demo binaries create \ --target portable \ --content-path my-first-binary.fw \ --signing-key-pair peridio-demo \ --artifact-version-prn prn:1:8ced1740-7fbf-407e-9d6e-afec9399cc41:artifact_version:6ab0d328-a6fe-49b8-8659-cd927b6f3c8d \ --device-prn prn:1:8ced1740-7fbf-407e-9d6e-afec9399cc41:device:429698bf-6ac2-40de-bac9-9969d9305945 ``` -------------------------------- ### Initialize Avocado Project Source: https://docs.peridio.com/hardware/nxp/frdm-imx-93/provision Creates the project directory for the imx93-frdm target and installs necessary dependencies. ```bash avocado init --target imx93-frdm imx93-frdm && cd imx93-frdm avocado install --force ``` -------------------------------- ### Create Product Response Source: https://docs.peridio.com/peridio-core/tools/admin-api/popout Example response structure for a successful product creation. ```json { * "product": { * "archived": false, * "inserted_at": "2019-08-24T14:15:22Z", * "name": "string", * "prn": "string", * "updated_at": "2019-08-24T14:15:22Z" } } ``` -------------------------------- ### Install Initramfs Sysroot Packages Source: https://docs.peridio.com/avocado-linux/tools/avocado-cli/commands/initramfs/install Installs initramfs sysroot packages via DNF. This command allows for various configurations including target architecture, container arguments, DNF arguments, and remote execution options. ```APIDOC ## POST /websites/peridio/install ### Description Installs initramfs sysroot packages via DNF. ### Method POST ### Endpoint /websites/peridio/install ### Parameters #### Query Parameters - **-C, --config** (string) - Optional - Path to avocado.yaml configuration file [default: avocado.yaml] - **-v, --verbose** (boolean) - Optional - Enable verbose output - **-f, --force** (boolean) - Optional - Force the operation to proceed, bypassing warnings or confirmation prompts - **-t, --target** (string) - Optional - Target architecture - **--container-arg** (string) - Optional - Additional arguments to pass to the container runtime - **--dnf-arg** (string) - Optional - Additional arguments to pass to DNF commands - **--runs-on** (string) - Optional - Run command on remote host using local volume via NFS (format: user@host) - **--nfs-port** (integer) - Optional - NFS port for remote execution (auto-selects from 12050-12099 if not specified) - **--sdk-arch** (string) - Optional - SDK container architecture for cross-arch emulation via Docker buildx/QEMU (aarch64 or x86-64) - **--no-tui** (boolean) - Optional - Disable TUI output (use legacy sequential output with inherited stdio) - **-h, --help** (boolean) - Optional - Print help ### Request Example ```json { "config": "avocado.yaml", "verbose": true, "target": "x86_64", "container_arg": "--dns 8.8.8.8", "dnf_arg": "--refresh", "runs_on": "user@remote-host", "nfs_port": 12050, "sdk_arch": "x86_64", "no_tui": false } ``` ### Response #### Success Response (200) - **message** (string) - Indicates successful installation. #### Response Example ```json { "message": "Initramfs sysroot packages installed successfully." } ``` ``` -------------------------------- ### List Available Extensions (C Example) Source: https://docs.peridio.com/avocado-linux/tools/avocadoctl/varlink-api/org-avocado-extensions This C example demonstrates how to call the List method of the org.avocado.Extensions interface to retrieve information about available system extensions. It iterates through the returned extensions and prints their names, types, and paths. ```c VarlinkObject *parameters = NULL; VarlinkObject *reply = NULL; long r; varlink_object_new(¶meters); r = varlink_connection_call(connection, "org.avocado.Extensions.List", parameters, 0, &reply); if (r < 0) { fprintf(stderr, "Call failed: %s\n", varlink_error_string(-r)); varlink_object_unref(parameters); return; } VarlinkArray *extensions; varlink_object_get_array(reply, "extensions", &extensions); for (unsigned long i = 0; i < varlink_array_get_n_elements(extensions); i++) { VarlinkObject *ext; varlink_array_get_object(extensions, i, &ext); const char *name, *path; bool is_sysext, is_confext; varlink_object_get_string(ext, "name", &name); varlink_object_get_string(ext, "path", &path); varlink_object_get_bool(ext, "isSysext", &is_sysext); varlink_object_get_bool(ext, "isConfext", &is_confext); printf("%-30s sysext=%d confext=%d %s\n", name, is_sysext, is_confext, path); } varlink_object_unref(reply); varlink_object_unref(parameters); ``` -------------------------------- ### Overlay Directory Structure Example Source: https://docs.peridio.com/avocado-linux/references/extensions Illustrates the directory structure within an overlay, showing how files are organized for system extension (usr/) and configuration extension (etc/) images. ```treeview project/ ├── avocado.yaml └── overlays/ └── my-app/ ├── usr/ │ ├── bin/ │ │ └── my-app │ └── lib/ │ └── systemd/ │ └── system/ │ └── my-app.service └── etc/ └── my-app/ └── config.yaml ```