Accept native SD cards for internal settings alongside legacy NVMe, reject USB ancestry and ambiguous disks, and preserve read-only boot loading with explicit recovery writes. Require built-in MMC drivers, validate cached kernel configuration, and provide SD-only, SD-first and USB-first EEPROM profiles. Expose typed create and inspect commands through fds-flash, reuse the existing cartridge creation code, and document the optional e2fsprogs package dependency. Extend storage, EEPROM, flashing and hardware-test coverage and advance the wiki reference to the published SD guide. Validation: rootfs checks for CLI/development, boot matrix, internal storage, EEPROM, flash, workstation, emulator, make check and wiki checks passed. The full internal suite passed on an unchanged rerun after one unexplained VM shutdown stall. Standalone init-test was blocked by its unavailable pinned upstream kernel. Physical Pi checks remain pending.
249 lines
5.2 KiB
JSON
249 lines
5.2 KiB
JSON
{
|
|
"format": 1,
|
|
"status": "not_run",
|
|
"started_utc": null,
|
|
"operator": null,
|
|
"software": {
|
|
"fds_version": null,
|
|
"source_sha256": null,
|
|
"system_sha256": null,
|
|
"boot_sha256": null,
|
|
"kernel_version": null
|
|
},
|
|
"hardware": {
|
|
"pi_revision": null,
|
|
"eeprom_version": null,
|
|
"nvme_model": null,
|
|
"power_source": null,
|
|
"battery_state": null,
|
|
"hub_models": [],
|
|
"display_model": "Dasung Paperlike 13K",
|
|
"internal_medium": null,
|
|
"sd_card_model": null,
|
|
"sd_card_capacity_bytes": null,
|
|
"maintenance_usb_model": null,
|
|
"boot_order": null
|
|
},
|
|
"bay_map": [
|
|
{
|
|
"bay": 1,
|
|
"physical_label": "BAY 01",
|
|
"stable_usb2_path": null,
|
|
"stable_usb3_path": null,
|
|
"cartridge_class": null,
|
|
"cartridge_serial": null
|
|
},
|
|
{
|
|
"bay": 2,
|
|
"physical_label": "BAY 02",
|
|
"stable_usb2_path": null,
|
|
"stable_usb3_path": null,
|
|
"cartridge_class": null,
|
|
"cartridge_serial": null
|
|
},
|
|
{
|
|
"bay": 3,
|
|
"physical_label": "BAY 03",
|
|
"stable_usb2_path": null,
|
|
"stable_usb3_path": null,
|
|
"cartridge_class": null,
|
|
"cartridge_serial": null
|
|
},
|
|
{
|
|
"bay": 4,
|
|
"physical_label": "BAY 04",
|
|
"stable_usb2_path": null,
|
|
"stable_usb3_path": null,
|
|
"cartridge_class": null,
|
|
"cartridge_serial": null
|
|
},
|
|
{
|
|
"bay": 5,
|
|
"physical_label": "BAY 05",
|
|
"stable_usb2_path": null,
|
|
"stable_usb3_path": null,
|
|
"cartridge_class": null,
|
|
"cartridge_serial": null
|
|
},
|
|
{
|
|
"bay": 6,
|
|
"physical_label": "BAY 06",
|
|
"stable_usb2_path": null,
|
|
"stable_usb3_path": null,
|
|
"cartridge_class": null,
|
|
"cartridge_serial": null
|
|
},
|
|
{
|
|
"bay": 7,
|
|
"physical_label": "BAY 07",
|
|
"stable_usb2_path": null,
|
|
"stable_usb3_path": null,
|
|
"cartridge_class": null,
|
|
"cartridge_serial": null
|
|
},
|
|
{
|
|
"bay": 8,
|
|
"physical_label": "BAY 08",
|
|
"stable_usb2_path": null,
|
|
"stable_usb3_path": null,
|
|
"cartridge_class": null,
|
|
"cartridge_serial": null
|
|
},
|
|
{
|
|
"bay": 9,
|
|
"physical_label": "BAY 09",
|
|
"stable_usb2_path": null,
|
|
"stable_usb3_path": null,
|
|
"cartridge_class": null,
|
|
"cartridge_serial": null
|
|
},
|
|
{
|
|
"bay": 10,
|
|
"physical_label": "BAY 10",
|
|
"stable_usb2_path": null,
|
|
"stable_usb3_path": null,
|
|
"cartridge_class": null,
|
|
"cartridge_serial": null
|
|
},
|
|
{
|
|
"bay": 11,
|
|
"physical_label": "BAY 11",
|
|
"stable_usb2_path": null,
|
|
"stable_usb3_path": null,
|
|
"cartridge_class": null,
|
|
"cartridge_serial": null
|
|
},
|
|
{
|
|
"bay": 12,
|
|
"physical_label": "BAY 12",
|
|
"stable_usb2_path": null,
|
|
"stable_usb3_path": null,
|
|
"cartridge_class": null,
|
|
"cartridge_serial": null
|
|
}
|
|
],
|
|
"cases": [
|
|
{
|
|
"name": "cold_empty",
|
|
"status": "not_run",
|
|
"captures": [],
|
|
"samples": [],
|
|
"errors": [],
|
|
"notes": null
|
|
},
|
|
{
|
|
"name": "cold_twelve",
|
|
"status": "not_run",
|
|
"captures": [],
|
|
"samples": [],
|
|
"errors": [],
|
|
"notes": null
|
|
},
|
|
{
|
|
"name": "hot_insert",
|
|
"status": "not_run",
|
|
"captures": [],
|
|
"samples": [],
|
|
"errors": [],
|
|
"notes": null
|
|
},
|
|
{
|
|
"name": "safe_remove",
|
|
"status": "not_run",
|
|
"captures": [],
|
|
"samples": [],
|
|
"errors": [],
|
|
"notes": null
|
|
},
|
|
{
|
|
"name": "rotated_bays",
|
|
"status": "not_run",
|
|
"captures": [],
|
|
"samples": [],
|
|
"errors": [],
|
|
"notes": null
|
|
},
|
|
{
|
|
"name": "simultaneous_io",
|
|
"status": "not_run",
|
|
"captures": [],
|
|
"samples": [],
|
|
"errors": [],
|
|
"notes": null
|
|
},
|
|
{
|
|
"name": "reboot_under_load",
|
|
"status": "not_run",
|
|
"captures": [],
|
|
"samples": [],
|
|
"errors": [],
|
|
"notes": null
|
|
},
|
|
{
|
|
"name": "poweroff_under_load",
|
|
"status": "not_run",
|
|
"captures": [],
|
|
"samples": [],
|
|
"errors": [],
|
|
"notes": null
|
|
},
|
|
{
|
|
"name": "power_and_usb",
|
|
"status": "not_run",
|
|
"captures": [],
|
|
"samples": [],
|
|
"errors": [],
|
|
"notes": null
|
|
},
|
|
{
|
|
"name": "dasung_recovery",
|
|
"status": "not_run",
|
|
"captures": [],
|
|
"samples": [],
|
|
"errors": [],
|
|
"notes": null
|
|
},
|
|
{
|
|
"name": "sd_usb_system_boot",
|
|
"status": "not_run",
|
|
"captures": [],
|
|
"samples": [],
|
|
"errors": [],
|
|
"notes": null
|
|
},
|
|
{
|
|
"name": "sd_recovery_persistence",
|
|
"status": "not_run",
|
|
"captures": [],
|
|
"samples": [],
|
|
"errors": [],
|
|
"notes": null
|
|
},
|
|
{
|
|
"name": "maintenance_usb_override",
|
|
"status": "not_run",
|
|
"captures": [],
|
|
"samples": [],
|
|
"errors": [],
|
|
"notes": null
|
|
},
|
|
{
|
|
"name": "return_to_fds_sd",
|
|
"status": "not_run",
|
|
"captures": [],
|
|
"samples": [],
|
|
"errors": [],
|
|
"notes": null
|
|
}
|
|
],
|
|
"timing": {
|
|
"external_instrument": null,
|
|
"resolution": null,
|
|
"clock_alignment": null,
|
|
"physical_poweroff_observed": null
|
|
},
|
|
"payloads": [],
|
|
"unresolved_failures": [],
|
|
"deferred_cases": []
|
|
}
|