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:
co-authored by
Claude Opus 5.5
parent
5374c2a5ed
commit
68101627d9
@@ -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).
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user