docs: hardware support guide + product backlog
All checks were successful
Check / eval (push) Successful in 3m10s
All checks were successful
Check / eval (push) Successful in 3m10s
Add docs/HARDWARE.md (layers, install path, firmware/fingerprint/NVIDIA deep dives, unsupported machines, contributing a DMI line). Link from README and MIGRATION; queue firmware UI, doctor checks, detect-hw CLI, and related PROPOSED items in BACKLOG.
This commit is contained in:
@@ -517,6 +517,89 @@ flagged separately from fidelity bugs.*
|
||||
design) — optional README note so users know what ships and how to
|
||||
override. Cost: docs only.
|
||||
|
||||
### Hardware product (investigation 2026-07-09)
|
||||
|
||||
*Full write-up: [`docs/HARDWARE.md`](../docs/HARDWARE.md). Install-time
|
||||
autodetect is strong; day-2 lifecycle (firmware, biometrics, re-detect,
|
||||
NVIDIA depth) is still mostly CLI. Items below are product work on top
|
||||
of that doc — design notes live there (§4–§10).*
|
||||
|
||||
- **System › Firmware (fwupd product surface)**
|
||||
`services.fwupd.enable` is already default-on and never auto-flashes,
|
||||
but users only learn about `fwupdmgr` from a README sentence. Add a
|
||||
self-gated menu entry (System submenu) and/or Control Center row that:
|
||||
refreshes metadata, lists updatable devices, confirms, runs
|
||||
`fwupdmgr update`, then prints a reboot note when needed. Never
|
||||
silent-flash (pillar 1). Optional: first-boot / MOTD one-liner when
|
||||
the daemon is active. Spec: docs/HARDWARE.md §4. Cost: menu script +
|
||||
optional MOTD; V2 menu, V3 on real LVFS hardware.
|
||||
|
||||
- **Doctor hardware section (read-only)**
|
||||
Extend `nomarchy-doctor` with the same pass/fail + one-fix-command
|
||||
contract for: NetworkManager connectivity, default PipeWire sink,
|
||||
optional GPU smoke (`vainfo`/`glxinfo` if present), fprintd unit when
|
||||
fingerprint was enabled, fwupd active (+ warn if `get-updates`
|
||||
non-empty), laptop charge-threshold sysfs when a limit is set. Spec:
|
||||
docs/HARDWARE.md §10. Cost: doctor.sh sections; V1 in existing
|
||||
`checks.doctor` where fakes exist, rest V2/V3.
|
||||
|
||||
- **`nomarchy-detect-hw` CLI (post-install re-probe)**
|
||||
The installer already has pure `nomarchy_detect_hw` stdout protocol
|
||||
(MODULE / NOMARCHY / DETAIL). Ship it as a package on PATH that
|
||||
prints suggested `hardwareProfile = [ … ]` and `system.nix` snippets
|
||||
without reinstalling — closes the template/migration gap and “I
|
||||
swapped the Wi‑Fi card.” Does not rewrite the flake unless a later
|
||||
`--apply` is explicitly designed. Spec: docs/HARDWARE.md §8. Cost:
|
||||
extract script + package + man/README pointer; V0–V1.
|
||||
|
||||
- **Fingerprint menu: enroll / list (+ optional PAM toggle)**
|
||||
Installer enables fprintd on known USB VIDs but enroll is CLI-only
|
||||
(`fprintd-enroll`) and PAM is a commented rebuild. Self-gated System
|
||||
row when `fprintd` is present: enroll, list, delete; optional “use
|
||||
for login” that writes `settings`/system intent + rebuild note
|
||||
(Control Center Bluetooth pattern). Spec: docs/HARDWARE.md §5.
|
||||
Cost: menu module; V3 enroll on real reader (`[blocked:hw]` for
|
||||
full path).
|
||||
|
||||
- **Installer: NVIDIA commented system.nix guidance**
|
||||
Detection already adds `common-gpu-nvidia`; there is no
|
||||
`nomarchy.hardware.nvidia.*` and hybrid/PRIME is wiki territory.
|
||||
When NVIDIA is detected, emit a **commented** block in generated
|
||||
`system.nix` (same style as ROCm/NPU) pointing at PRIME /
|
||||
powerManagement / open-module and docs/HARDWARE.md §6 — not a full
|
||||
second stack. Cost: install script strings; V0 + doc.
|
||||
|
||||
- **CI: hardware-db module names ∈ nixos-hardware**
|
||||
Every `HARDWARE_DB` third field must exist in the pinned
|
||||
`nixos-hardware.nixosModules` or installs break only on matching
|
||||
DMI. Add a pure `checks.*` (or option-docs-style runCommand). Pairs
|
||||
with existing “installer pure contracts” proposal. Cost: small
|
||||
check; V0.
|
||||
|
||||
- **Installer: `usbutils` on PATH for fingerprint probe**
|
||||
Fingerprint path prefers `lsusb` but package wrap has `pciutils`
|
||||
only; sysfs VID walk is the fallback. Add `usbutils` to
|
||||
`nomarchy-install` PATH for reliable detection. Cost: one package
|
||||
in wrap; V0.
|
||||
|
||||
- **Document + README table: `nomarchy.hardware.i2c.*`**
|
||||
`i2c.ddcci` is **mkDefault true** (external monitor brightness) but
|
||||
missing from README option tables → `checks.option-docs` red (also
|
||||
under docs-drift pack). Document in README + HARDWARE.md already
|
||||
mentions ddcci; close option-docs. Cost: docs; V0 with option-docs.
|
||||
|
||||
- **Post-install hardware hints (MOTD / first session)**
|
||||
When relevant services exist, surface one line each: firmware
|
||||
(`fwupdmgr get-updates`), fingerprint (`fprintd-enroll`), optional
|
||||
“run nomarchy-doctor”. Avoid nagging — once or until dismissed.
|
||||
Spec: HARDWARE.md §4/§5. Cost: small greeter/MOTD or notify; V2/V3.
|
||||
|
||||
- **NVIDIA first-class options (larger, optional)**
|
||||
Only if a maintainer commits to hybrid testing: thin
|
||||
`nomarchy.hardware.nvidia.*` wrapping common PRIME/power patterns.
|
||||
Prefer the commented-guidance item first; promote only with
|
||||
hardware-queue coverage. Cost: high; `[big]` + `[blocked:hw]`.
|
||||
|
||||
|
||||
## Decisions `[human]`
|
||||
|
||||
|
||||
Reference in New Issue
Block a user