diff --git a/CLAUDE.md b/CLAUDE.md index 234c6e1..450608c 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -165,4 +165,6 @@ via `/etc/modules-load.d/cros-video.conf` (`cros_ec_typec`, `typec_displayport`), `linux-generic-hwe-24.04-edge` (why it's on 7.x kernels) plus the 6.17 fallback, `/tmp` on tmpfs + localepurge to spare the microSD root, the removed r8152 DKMS driver, disabled tailscaled, -and third-party apt repos and hand-installed tools. +and third-party apt repos and hand-installed tools. **Suspend must stay +`s2idle`**: S3 (`deep`) made the microSD reader drop off on resume and +remounted `/` read-only (2026-09-27). diff --git a/NEON-CUSTOMIZATIONS.md b/NEON-CUSTOMIZATIONS.md index 2c7c479..1fe9d98 100644 --- a/NEON-CUSTOMIZATIONS.md +++ b/NEON-CUSTOMIZATIONS.md @@ -94,9 +94,37 @@ writes poorly, so a few changes cut down writes and space use: - **`smartmontools` disabled** (2026-09-27, `systemctl disable --now`): it failed on every boot because neither the microSD card nor the eMMC supports SMART. +- **Marked non-rotational** (2026-09-27): the Genesys reader reported + `rotational=1` (a spinning disk). `/etc/udev/rules.d/61-microsd-nonrotational.rules` + sets `queue/rotational=0` for `ID_VENDOR_ID=05e3`, `ID_MODEL_ID=0747`, + so `lsblk -d -o NAME,ROTA` shows `0`. - The card doesn't support discard/TRIM (`lsblk -D` shows 0), so `fstrim.timer` does nothing for it. That's harmless and was left alone. +## Suspend: stay on `s2idle`; do NOT use S3 (`deep`) + +Tested 2026-09-27. The firmware offers both `s2idle` (default) and `deep` +(ACPI S3) in `/sys/power/mem_sleep`. +- An RTC-woken 30s S3 test (`rtcwake -m mem -s 30` with `mem_sleep=deep`) + entered and left S3 cleanly, and the display came back. The i915 + bug didn't show. +- **A real lid-close S3 suspend broke the root filesystem**: on resume + the built-in microSD reader (USB, Genesys `05e3:0747`) didn't come + back in time, the kernel logged disk I/O errors, and ext4 remounted `/` + read-only (`errors=remount-ro`). Nothing was logged because root was + read-only (the previous boot's journal just stops). After a forced + reboot, the initramfs fsck replayed the journal and reported the + filesystem clean; no lasting damage was found. +- In S3 the USB controller loses power, so the reader has to be + re-attached. USB "persist" (`power/persist=1`, the kernel feature + meant for root on USB storage) was already on and didn't save it. + There's no dependable fix, so **never set `mem_sleep_default=deep`** + while neon's root is on the microSD slot. +- `s2idle` keeps USB powered and has worked for months. Whether it + reaches S0ix (the package's deepest idle) is shown by + `/sys/devices/system/cpu/cpuidle/low_power_idle_system_residency_us` + growing across a suspend. + ## Networking - **Realtek USB Ethernet (`enx00e04c68003e`, r8152-family 2.5G