Feature: checkbox
Description
Integrates the Canonical Checkbox hardware testing framework into a Garden Linux ISO for automated hardware qualification and test reporting.
What it does
checkbox installs checkbox-ng, checkbox-provider-base, and nginx, then adds Garden Linux-specific Checkbox test units: a category definition, job definitions, a manifest, and a test plan. Several helper scripts run hardware-specific checks (TPM presence, hardware encryption, virtualization status, and dmesg color output). A generate-report.service systemd unit assembles a test report on boot, and nginx serves the report over HTTP.
The exec.config script configures the image for the Checkbox environment, and file.include/etc/kernel/cmdline.iso sets kernel parameters appropriate for an ISO boot used during hardware testing.
checkbox includes _iso because it is designed to boot from a live ISO on the hardware under test. It excludes features that are incompatible with the minimal, controlled testing environment: sap, firewall, log, _selinux, and _ignite.
Files
Files present in this feature and their purpose. See the feature file reference for the semantics of each file type.
| File | Purpose |
|---|---|
exec.config (ref) | Configures the image at build time for the Checkbox test environment. |
file.include.markers.yaml (ref) | Maps files in this feature to test-coverage marker IDs. |
info.yaml (ref) | Declares type: flag, included feature _iso, and excluded features. |
pkg.include (ref) | Installs checkbox-ng, checkbox-provider-base, and nginx. |
file.include/etc/kernel/cmdline.iso (file.include) | Kernel command line parameters used when booting the Checkbox ISO on the hardware under test. |
file.include/etc/systemd/journald.conf.d/10-logs.conf (file.include) | Adjusts journald log retention settings to preserve test output for reporting. |
file.include/etc/systemd/system/generate-report.service (file.include) | Systemd unit that runs the report generator after tests complete and places the HTML report in the nginx document root. |
file.include/etc/systemd/system.conf.d/10-dmesg.conf (file.include) | Configures systemd to capture dmesg output for inclusion in the test report. |
file.include/usr/lib/checkbox-provider-base/bin/dmesg_colored.sh (file.include) | Formats dmesg output with color coding for easier review in the test report. |
file.include/usr/lib/checkbox-provider-base/bin/hw_encrypt_check.sh (file.include) | Checks whether hardware encryption (such as self-encrypting drive support) is available. |
file.include/usr/lib/checkbox-provider-base/bin/tpm_check.sh (file.include) | Checks whether a Trusted Platform Module (TPM) is present and accessible. |
file.include/usr/lib/checkbox-provider-base/bin/virtualization_disabled.sh (file.include) | Verifies that the system is running on bare metal rather than inside a virtual machine. |
file.include/usr/local/bin/generate-report.sh (file.include) | Script that aggregates Checkbox test results into a structured HTML report. |
file.include/usr/share/checkbox-provider-base/units/gardenlinux/category.pxu (file.include) | Checkbox category definition grouping all Garden Linux hardware test jobs. |
file.include/usr/share/checkbox-provider-base/units/gardenlinux/jobs.pxu (file.include) | Checkbox job definitions for individual Garden Linux hardware test cases. |
file.include/usr/share/checkbox-provider-base/units/gardenlinux/manifest.pxu (file.include) | Checkbox manifest declaring hardware capabilities expected to be present on the device under test. |
file.include/usr/share/checkbox-provider-base/units/gardenlinux/test-plan.pxu (file.include) | Checkbox test plan that selects and orders the Garden Linux jobs for a complete hardware qualification run. |
Related features
Includes:
_iso— Provides the live ISO boot environment required to run hardware tests from removable media.
Excludes (incompatible with):
sap— SAP-specific packages and configuration are not needed in the hardware test environment.firewall— Firewall rules could interfere with test network connectivity and report serving.log— Centralized log forwarding is unnecessary and may conflict with local log collection for test reports._selinux— SELinux mandatory access control may block test scripts from accessing hardware resources._ignite— Ignition first-boot configuration is not applicable to the hardware test ISO use case.