FDS/OS 1.0
This commit is contained in:
@@ -0,0 +1,29 @@
|
||||
# Validation record — 2026-09-20
|
||||
|
||||
## Confirmed before installation
|
||||
|
||||
The user confirmed 3200×2400 at 36.9998735 Hz, 304.21 MHz, 2× scaling was **very stable** using the Python control helper. The full timing is in README.md. The monitor's SPI interface and native UART driver were unbound during that confirmation.
|
||||
|
||||
## Software and initial live handoff
|
||||
|
||||
- Six Rust unit tests pass: exact outgoing framing, fragmented/concatenated real replies, malformed stream recovery, parameter validation, profile checksum/identity/clock, bounded IPC and saved-setting round trip (some checks share test cases).
|
||||
- `cargo clippy --locked --all-targets -- -D warnings` passes; release build succeeds.
|
||||
- The pseudo-terminal integration test passes late attachment, keepalive, real response fragmentation, invalid command rejection, saved parameter replay, unplug/node replacement/replug, duplicate daemon exclusion, reply watchdog, process restart and forgetting saved settings.
|
||||
- Systemd unit and udev rule syntax verification pass.
|
||||
- Live Rust handoff received all expected queries: mode 1, contrast 4, front-light 2, brightness 40, temperature 0, protocol version 0x31. Mode 1 and contrast 4 writes were read back correctly and saved.
|
||||
- Service restart and Hyprland reload retained the exact 304210 kHz timing and 2× scaling. The ASUS remained 2560×1440 at 144 Hz, scale 1. The diagnostic mpv window is closed.
|
||||
- Service is enabled at boot. Current initramfs contains neither CH341 UART nor CH341 SPI modules; no bootloader or initramfs changes were required.
|
||||
|
||||
## Physical reconnect exposed a remaining cold-start issue
|
||||
|
||||
The first full power/reconnect test returned a dark picture. Video timing/scaling restored, and the UART was rediscovered at a new USB address. However, the kernel had bound `spi_ch341` to the second USB chip and replies stopped after the first two queries. Removing the driver and resetting that USB chip afterward did not recover replies.
|
||||
|
||||
Corrections now installed:
|
||||
|
||||
- Scoped udev autoload suppression for the monitor's hub/UART/SPI combination. A real synthetic add event left `spi_ch341` unloaded.
|
||||
- The USB transport reserves the companion SPI interface without configuring it or sending SPI data, preventing a later-loaded driver from binding while the daemon owns it.
|
||||
- Minimum 150 ms packet spacing and one-second startup query spacing, matching the proven Python helper; the initial Rust version could send adjacent keepalive/query packets.
|
||||
- Reply timeouts reopen only control; they do not continually retrain an otherwise unchanged video signal.
|
||||
- Status distinguishes an open transport (`connected`) from receipt of valid monitor frames (`responsive`).
|
||||
|
||||
**A clean physical power cycle with these corrections is still pending user confirmation. Persistence is installed, but cold-start picture recovery must not yet be described as verified.** No computer reboot has been performed.
|
||||
Reference in New Issue
Block a user