From 5374c2a5edf8bfec3e1899a7b0164eba3501b399 Mon Sep 17 00:00:00 2001 From: ergosteur <1992147+ergosteur@users.noreply.github.com> Date: Sun, 27 Sep 2026 13:18:03 -0400 Subject: [PATCH] Apply microSD write tweaks; correct docs: neon is on the built-in microSD slot commit=30 on the root fs, journald capped at 100M, smartmontools disabled. The neon root is a microSD card in the built-in slot (USB-attached reader), not an external USB card; wording fixed across docs and the install script. Co-Authored-By: Claude Opus 5.5 --- CHROMEOS-FLEX.md | 8 ++++---- CLAUDE.md | 10 +++++----- NEON-CUSTOMIZATIONS.md | 23 ++++++++++++++++++++--- ZRAM.md | 2 +- install-flex-emmc.sh | 3 ++- 5 files changed, 32 insertions(+), 14 deletions(-) diff --git a/CHROMEOS-FLEX.md b/CHROMEOS-FLEX.md index 4f7b2e9..fbd6656 100644 --- a/CHROMEOS-FLEX.md +++ b/CHROMEOS-FLEX.md @@ -7,10 +7,10 @@ hp-chell (HP Chromebook 13 G1, MrChromebox UEFI firmware) dual-boots: | OS | Disk | Notes | |---|---|---| -| KDE neon | `sda`, external USB/SD card (117GB) | primary OS, owns GRUB | +| KDE neon | `sda`, microSD card in the built-in slot (117GB; the reader is USB-attached internally) | primary OS, owns GRUB | | FydeOS (was ChromeOS Flex) | `mmcblk0`, internal eMMC (29GB) | installed from neon, see below | -Because neon lives entirely on external media, the eMMC can be wiped and +Because neon lives entirely on the microSD card, the eMMC can be wiped and reinstalled from the running neon system with no risk to neon. ## Installing / reinstalling @@ -177,9 +177,9 @@ Two ways: Run `sudo update-grub` after editing `40_custom`. The install script rewrites the `--fs-uuid` value automatically. 2. **From the firmware boot picker** (MrChromebox UEFI, `Esc` during - POST): `efibootmgr -v` shows `neon` (Boot0005, on the USB card) and + POST): `efibootmgr -v` shows `neon` (Boot0005, on the microSD card) and `Internal eMMC` (Boot0001), with `BootOrder` `0005,0001,0000,0003,0002`. - With the USB card unplugged, the firmware falls through to `Internal + With the microSD card removed, the firmware falls through to `Internal eMMC` and boots FydeOS with no menu. ## Flex takes over the UEFI boot order on updates diff --git a/CLAUDE.md b/CLAUDE.md index 324014e..234c6e1 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -16,7 +16,7 @@ This is a real **HP Chromebook 13 G1** ("chell" board), converted from ChromeOS - System: Manufacturer `Google`, Product Name `Chell`, Family `Google_Glados`, Serial `5CD732BLC9` — `Chell`/`Glados` is the Google Chrome OS board/reference codename for the HP Chromebook 13 G1. - Baseboard: Manufacturer `Google`, Product Name `Chell`, Serial `PFYTU018J90043`. - Implication: fanless Core m CPU, no way to add a fan — keep sustained-load expectations modest. -- **Storage correction (2026-09-04)**: `sda` (117GB, where `/` lives) is actually an external USB/SD card (`lsblk` shows `TRAN=usb`) — the whole KDE neon install boots from that external card, not from anything internal. The real internal eMMC (`mmcblk0`, ~29GB) was blank until 2026-09-04, when ChromeOS Flex was installed onto it — see "Dual boot" below. (Superseded the original note here, which incorrectly assumed `sda` was internal.) +- **Storage correction (2026-09-04)**: `sda` (117GB, where `/` lives) is a microSD card in the laptop's **built-in microSD slot**. The slot's reader hangs off the internal USB bus, which is why `lsblk` shows `TRAN=usb`, but it is *not* an external USB device. The whole KDE neon install boots from that microSD card, not from the eMMC. (Wording corrected 2026-09-27; earlier notes called it an "external USB/SD card".) The real internal eMMC (`mmcblk0`, ~29GB) was blank until 2026-09-04, when ChromeOS Flex was installed onto it — see "Dual boot" below. (Superseded the original note here, which incorrectly assumed `sda` was the internal eMMC.) ## Kernel 7.x black-screen bug (diagnosed and fixed 2026-09-03) @@ -117,11 +117,11 @@ flash itself, not a recurrence of the underlying i915 bug or a new problem. If it happens again right after a firmware update, try a forced power-off + power-on before assuming anything is actually broken. -## Dual boot: KDE neon (USB) + ChromeOS (internal eMMC) +## Dual boot: KDE neon (microSD) + ChromeOS (internal eMMC) **FydeOS** (ChromiumOS-based, `iris` build; replaced ChromeOS Flex on 2026-09-27) is installed on the internal eMMC (`/dev/mmcblk0`); neon -stays on the external `sda`. **Full details are in `CHROMEOS-FLEX.md`**, +stays on the microSD card (`sda`). **Full details are in `CHROMEOS-FLEX.md`**, covering install/reinstall via `install-flex-emmc.sh`, why a raw `dd` of the recovery image boots as live media, `chromeos-install`-from-Linux gotchas, the partition layout, and boot selection. @@ -133,7 +133,7 @@ Quick reference: - Boot it from neon's GRUB menu with the "ChromeOS Flex (internal eMMC)" entry (in `/etc/grub.d/40_custom`; chainloads the ESP with FS UUID `F35E-F13C`; title kept from Flex), or from the firmware picker (`Esc` at POST, then - `Internal eMMC`). With the USB card unplugged, the firmware boots it + `Internal eMMC`). With the microSD card removed, the firmware boots it directly. - ChromeOS updates re-add a UEFI entry and put it first in `BootOrder`; see `CHROMEOS-FLEX.md`. @@ -164,5 +164,5 @@ history): keyd Chromebook keyboard remap (built from source, 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 USB-card root, the removed r8152 DKMS driver, disabled tailscaled, +the microSD root, the removed r8152 DKMS driver, disabled tailscaled, and third-party apt repos and hand-installed tools. diff --git a/NEON-CUSTOMIZATIONS.md b/NEON-CUSTOMIZATIONS.md index c7d4037..2c7c479 100644 --- a/NEON-CUSTOMIZATIONS.md +++ b/NEON-CUSTOMIZATIONS.md @@ -64,10 +64,11 @@ history show `nano /etc/default/grub` + `update-grub`): `GRUB_DEFAULT=0`, `GRUB_TIMEOUT=5`, `GRUB_TIMEOUT_STYLE=menu`, `GRUB_CMDLINE_LINUX_DEFAULT='splash'` (see `setup-i915-kernel7-fix.sh`). -## Storage / wear on the USB-card root +## Storage / wear on the microSD root -neon's root is an external USB/SD card, so a few changes cut down writes -and space use: +neon's root is a microSD card in the built-in slot (`sda`; the slot's +reader is USB-attached internally), and microSD handles lots of small +writes poorly, so a few changes cut down writes and space use: - **`/tmp` is tmpfs** (in `/etc/fstab`: `tmpfs /tmp tmpfs defaults,noatime,mode=1777 0 0`). Not in the shell history, so it was probably added in the same `nano /etc/fstab` edit @@ -79,6 +80,22 @@ and space use: install (`USE_DPKG`, `MANDELETE`). If another language's translations or man pages are ever needed, add them with `sudo dpkg-reconfigure localepurge`. +- **Root mounted with `commit=30`** (2026-09-27): the root line in + `/etc/fstab` is `defaults,commit=30`; the pre-change copy is + `/etc/fstab.bak-2026-09-27`. ext4 commits its journal every 30s + instead of every 5s, so writes are batched into fewer, larger bursts. + Trade-off: a crash or forced power-off can lose up to ~30s of recent + changes that weren't fsync'd (apt/dpkg, editors and databases fsync, so + they're unaffected). 30 rather than 60 because this machine has needed + forced power-offs. `relatime` is kept deliberately (not `noatime`). +- **journald capped at 100MB** (2026-09-27): + `/etc/systemd/journald.conf.d/50-max-size.conf` sets + `SystemMaxUse=100M` (it was 455MB). +- **`smartmontools` disabled** (2026-09-27, `systemctl disable --now`): + it failed on every boot because neither the microSD card nor the eMMC + supports SMART. +- 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. ## Networking diff --git a/ZRAM.md b/ZRAM.md index 0f9336b..8b88e5e 100644 --- a/ZRAM.md +++ b/ZRAM.md @@ -3,7 +3,7 @@ Set up **2026-03-05**, reconstructed on 2026-09-27 from `~/.bash_history` and the live config. It replaces the disk swapfile with compressed swap in RAM. That suits this machine: 15GiB RAM, and neon's root lives on a -slow external USB/SD card (`sda`) that you don't want to swap to or wear +slow microSD card in the built-in slot (`sda`) that you don't want to swap to or wear out. ## Current state (2026-09-27) diff --git a/install-flex-emmc.sh b/install-flex-emmc.sh index 84ec56d..42bbdb0 100755 --- a/install-flex-emmc.sh +++ b/install-flex-emmc.sh @@ -2,7 +2,8 @@ # install-flex-emmc.sh # # Properly install ChromeOS Flex onto hp-chell's internal eMMC from the -# running KDE neon system (which boots from an external USB/SD card). +# running KDE neon system (which boots from the microSD card in the built-in +# slot; its reader is USB-attached internally, so it shows as sda). # # Why not just dd the image: the Flex recovery .bin is an *installer* # image -- ROOT-B is a 2MB placeholder and STATE is a fixed ~6GB with