Document that S3 suspend breaks the microSD root; stay on s2idle

Also recorded: udev rule marking the microSD reader non-rotational.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
ergosteur
2026-09-28 22:12:07 -04:00
co-authored by Claude Opus 5.5
parent 5374c2a5ed
commit 68101627d9
2 changed files with 31 additions and 1 deletions
+3 -1
View File
@@ -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).
+28
View File
@@ -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