boxctl — Command Reference¶
boxctl is the device management CLI installed on the Offline Lab OS.
Run boxctl help or boxctl <command> --help for interactive help.
| Command | Description |
|---|---|
boxctl confext |
Manage configuration extension images in /data/extensions/confext/. |
boxctl config |
|
boxctl diagnose |
Collect diagnostics and write a tarball to /tmp (or |
boxctl firewall |
Manage the nftables firewall. |
boxctl logs |
|
boxctl net |
|
boxctl power |
Manage runtime power profile (cpufreq governor + USB autosuspend). |
boxctl reboot |
Reboot the device, optionally into a specific RAUC slot. |
boxctl rollback |
Roll back to the previously installed RAUC slot. |
boxctl screen |
Manage HDMI display configuration. |
boxctl service |
|
boxctl status |
Show system health: RAUC slot info, AppArmor, dm-verity, failed units, disk and memory usage. |
boxctl sysext |
Manage system extension images in /data/extensions/sysext/. |
boxctl update |
Apply a RAUC bundle. |
boxctl confext¶
Usage: boxctl confext <command>
Manage configuration extension images in /data/extensions/confext/.
Commands:
list List installed extensions and their merge status
merge Merge all extensions into /etc/
unmerge Remove merged extensions from /etc/
refresh Unmerge then re-merge (picks up new or removed images)
status Show current merge state
Extensions are .raw squashfs images stored in /data/extensions/confext/.
Drop files there and run 'boxctl confext refresh' to apply them.
boxctl config¶
Usage: boxctl config <subcommand> [args]
Subcommands:
get <key> Read a config value
set <key> <value> Write a config value
list List all config keys
apply Apply hostname and timezone from config
Keys (common):
hostname Device hostname
timezone TZ name (e.g. Europe/Amsterdam)
boxctl diagnose¶
Usage: boxctl diagnose [--output <dir>]
Collect diagnostics and write a tarball to /tmp (or <dir>).
Collects:
- RAUC slot status
- Failed systemd units + their journals
- AppArmor denials (dmesg)
- Last boot log
- Current boot log
- WiFi status
- Disk and memory usage
Options:
--output <dir> Write tarball to this directory (default: /tmp)
boxctl firewall¶
Usage: boxctl firewall <command>
Manage the nftables firewall.
Commands:
list Show the current ruleset (nft list ruleset)
reload Reload static rules and per-app fragments
reset Flush all rules and remove firewall state
up Load rules (same as reload; used after down)
down Flush all rules and mark firewall inactive
boxctl logs¶
Usage: boxctl logs [options]
Options:
-u, --unit <unit> Filter by systemd unit
-p, --priority <p> Min priority: emerg|alert|crit|err|warning|notice|info|debug
-n, --lines <n> Number of lines (default: 50)
-f, --follow Follow live output
--boot Show current boot only
boxctl net¶
Usage: boxctl net <subcommand> [args]
Subcommands:
status Show current WiFi state and IP
scan Scan for available networks
connect <ssid> <psk> Connect to a WiFi network
boxctl power¶
Usage: boxctl power [<subcommand>]
Manage runtime power profile (cpufreq governor + USB autosuspend).
Subcommands:
get Show the active profile (default)
set <name> Persist and apply a profile
apply Re-apply the persisted profile — called at boot by power-profile.service
list List available profiles
Profiles:
performance CPU governor: performance, USB autosuspend: disabled
balanced CPU governor: schedutil, USB autosuspend: 2000ms (default)
saver CPU governor: powersave, USB autosuspend: 500ms
boxctl reboot¶
Usage: boxctl reboot [<slot>]
Reboot the device, optionally into a specific RAUC slot.
If no slot is given, performs a normal reboot.
Arguments:
<slot> RAUC slot name (e.g. rootfs.0, rootfs.1)
boxctl rollback¶
Usage: boxctl rollback
Roll back to the previously installed RAUC slot.
Finds the inactive rootfs slot, marks it as the boot target, and offers
to reboot. The current slot is not modified — you can roll forward again
by running: boxctl update
boxctl screen¶
Usage: boxctl screen <subcommand> [args]
Manage HDMI display configuration. Settings are stored in /data/config and
written to /boot/firmware/config.txt on apply. A reboot is required for
changes to take effect.
Subcommands:
status Show stored screen configuration
rotate <degrees> Set display rotation: 0, 90, 180, 270
resolution <group> <mode> Set HDMI resolution (hdmi_group and hdmi_mode)
apply Write stored settings to /boot/firmware/config.txt
Common HDMI groups and modes:
Group 1 (CEA/TV): mode 4 = 720p60, mode 16 = 1080p60
Group 2 (DMT/PC): mode 35 = 1024x768@60, mode 82 = 1920x1080@60
boxctl service¶
Usage: boxctl service <subcommand> [service]
Subcommands:
list List attached portable services and their state
start <service> Start a portable service
stop <service> Stop a portable service
enable <service> Enable a portable service (start on boot)
disable <service> Disable a portable service
boxctl status¶
Usage: boxctl status
Show system health: RAUC slot info, AppArmor, dm-verity, failed units,
disk and memory usage.
boxctl sysext¶
Usage: boxctl sysext <command>
Manage system extension images in /data/extensions/sysext/.
Commands:
list List installed extensions and their merge status
merge Merge all extensions into /usr/
unmerge Remove merged extensions from /usr/
refresh Unmerge then re-merge (picks up new or removed images)
status Show current merge state
Extensions are .raw squashfs images stored in /data/extensions/sysext/.
Drop files there and run 'boxctl sysext refresh' to apply them.