Update docs for FydeOS install on eMMC, stale Flex UEFI entry removed

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
ergosteur
2026-09-27 12:48:39 -04:00
co-authored by Claude Opus 5.5
parent 172f5c9f75
commit c7231628b8
2 changed files with 65 additions and 25 deletions
+55 -18
View File
@@ -1,11 +1,14 @@
# ChromeOS Flex on hp-chell's internal eMMC
# ChromeOS (Flex / FydeOS) on hp-chell's internal eMMC
**Currently installed: FydeOS** (`iris` build, 2026-09-27). It replaced
ChromeOS Flex; `install-flex-emmc.sh` handles both images.
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 |
| ChromeOS Flex | `mmcblk0`, internal eMMC (29GB) | installed from neon, see below |
| 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
reinstalled from the running neon system with no risk to neon.
@@ -29,7 +32,11 @@ sudo ./install-flex-emmc.sh ~/Downloads/chromeos_<ver>_reven_recovery_stable-cha
- Updates the GRUB chainload entry (below) with the new EFI partition's
UUID and runs `update-grub`.
Last installed: 2026-09-27, Flex `16640.57.0` (stable, `reven`).
Install history on the eMMC:
- 2026-09-27: ChromeOS Flex `16640.57.0` (stable, `reven`). It
auto-updated to `16640.61.0` on first boot.
- 2026-09-27: **FydeOS** `FydeOS_for_PC_iris_v23.0-SP1-io.bin`
(`amd64-fydeos_iris-io`, `16700.56.23.51`), which replaced Flex.
## Why not just `dd` the image
@@ -111,7 +118,25 @@ Each of these broke an attempt during the 2026-09-27 install:
The log must not be in `/tmp` if another user owns the file (root is
denied by `fs.protected_regular`).
## Resulting layout (2026-09-27)
## Resulting layout
FydeOS (current, 2026-09-27):
```
mmcblk0 29.1G
├─mmcblk0p1 23.7G ext4 STATE
├─mmcblk0p2 16M KERN-A
├─mmcblk0p3 2.7G ext4 ROOT-A
├─mmcblk0p4 16M KERN-B
├─mmcblk0p5 2.7G ext4 ROOT-B
├─mmcblk0p6-7 512B KERN-C / ROOT-C
├─mmcblk0p8 16M ext4 OEM
├─mmcblk0p9-10 512B reserved / reserved
├─mmcblk0p11 8M RWFW
└─mmcblk0p12 32M vfat EFI-SYSTEM (UUID F35E-F13C, PARTUUID 18151E4F-...)
```
ChromeOS Flex (2026-09-27, before FydeOS replaced it):
```
mmcblk0 29.1G
@@ -126,24 +151,26 @@ mmcblk0 29.1G
└─mmcblk0p12 256M vfat EFI-SYSTEM (UUID CBE4-703E)
```
The ESP is copied from the image, so its FAT UUID (`CBE4-703E`) survived
the reinstall unchanged. The install itself left the UEFI boot entries
The ESP is copied from the image, so its FAT UUID comes from the image:
`CBE4-703E` for Flex (it survived the Flex reinstall unchanged) and
`F35E-F13C` for FydeOS. The install itself left the UEFI boot entries
and `BootOrder` untouched, but Flex's first auto-update changed them.
See "Flex takes over the UEFI boot order on updates" below.
## Booting Flex
## Booting ChromeOS (FydeOS)
Two ways:
1. **From GRUB** (neon's menu, shown for 5s): the entry "ChromeOS Flex
(internal eMMC)" in `/etc/grub.d/40_custom` chainloads Flex's own EFI
loader (`crdyboot`) from the eMMC's ESP:
(internal eMMC)" in `/etc/grub.d/40_custom` chainloads the eMMC ESP's
own loader: FydeOS's GRUB now (Flex's was `crdyboot`). The title was
kept on purpose, since FydeOS is still ChromeOS.
```
menuentry "ChromeOS Flex (internal eMMC)" {
insmod part_gpt
insmod fat
insmod chain
search --no-floppy --fs-uuid --set=root CBE4-703E
search --no-floppy --fs-uuid --set=root F35E-F13C
chainloader /EFI/BOOT/BOOTX64.EFI
}
```
@@ -153,7 +180,7 @@ Two ways:
POST): `efibootmgr -v` shows `neon` (Boot0005, on the USB card) and
`Internal eMMC` (Boot0001), with `BootOrder` `0005,0001,0000,0003,0002`.
With the USB card unplugged, the firmware falls through to `Internal
eMMC` and boots Flex with no menu.
eMMC` and boots FydeOS with no menu.
## Flex takes over the UEFI boot order on updates
@@ -206,13 +233,20 @@ Ways to live with it (none implemented yet):
- Deleting `Boot0004` doesn't help: the next update recreates it.
Neon's GRUB entry chainloads the ESP directly and doesn't need it.
## Other ChromiumOS-based images: FydeOS
After the FydeOS install, `Boot0004 "ChromeOS Flex"` was stale: it
pointed at the old Flex ESP (PARTUUID `2877e60b…`, start sector
`0x49000`), which no longer exists, so the firmware skipped it and fell
through to neon. It was deleted 2026-09-27 (`efibootmgr -b 0004 -B`),
which put `BootOrder` back to `0005,0001,0000,0003,0002`. Expect FydeOS
to add its own entry, and move it first, after its first update.
Checked 2026-09-27, by reading the image only (not installed):
## FydeOS
Checked 2026-09-27 by reading the image, then **installed the same day
with `install-flex-emmc.sh` unchanged. It worked on the first try.**
`FydeOS_for_PC_iris_v23.0-SP1-io.bin.zip` (board `amd64-fydeos_iris-io`,
version `16700.56.23.51`), in `matt`'s `~/Downloads` (extracted copy in
`~/fydeos-check`). **`install-flex-emmc.sh` should work with it
unchanged.**
`~/fydeos-check`).
- **Same installer image layout:** ROOT-A is p3 (2.7GB), ROOT-B is a
2MB placeholder, the ESP is p12. The same `chromeos-install` (Rust)
@@ -238,8 +272,8 @@ unchanged.**
because Secure Boot is disabled on hp-chell (`mokutil --sb-state`).
The image's ESP UUID is `F35E-F13C`.
Caveats before trying it:
- It replaces Flex (same eMMC, full wipe).
Notes:
- It replaced Flex (same eMMC, full wipe).
- The script rewrites the UUID in the `40_custom` entry titled
"ChromeOS Flex", so FydeOS boots under that title. Decided
2026-09-27 to keep it, since FydeOS is effectively still ChromeOS.
@@ -255,4 +289,7 @@ Caveats before trying it:
is normal for this class of eMMC). Booted as live/installer media, as
explained above. The note at the time that Flex expands STATE on
first boot was wrong.
- **2026-09-27**: reinstalled properly with `install-flex-emmc.sh`.
- **2026-09-27**: reinstalled Flex properly with `install-flex-emmc.sh`.
It worked and auto-updated, but took over the UEFI boot order.
- **2026-09-27**: switched to FydeOS (`iris` build) with the same
script; deleted the stale Flex UEFI entry.
+10 -7
View File
@@ -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" section below. (Superseded the original note here, which incorrectly assumed `sda` was internal.)
- **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.)
## Kernel 7.x black-screen bug (diagnosed and fixed 2026-09-03)
@@ -117,20 +117,23 @@ 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 Flex (internal eMMC)
## Dual boot: KDE neon (USB) + ChromeOS (internal eMMC)
ChromeOS Flex is installed on the internal eMMC (`/dev/mmcblk0`); neon
**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`**,
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.
Quick reference:
- Reinstall: `sudo ./install-flex-emmc.sh <flex .bin.zip or .bin>` (wipes
- Reinstall: `sudo ./install-flex-emmc.sh <Flex or FydeOS .bin.zip or .bin>` (wipes
the eMMC, masks every other disk, about 2.5 min, log in
`/var/log/flex-install.log`).
- Boot Flex from neon's GRUB menu with the "ChromeOS Flex (internal
- 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 `CBE4-703E`), or from the firmware picker (`Esc` at POST, then
`Internal eMMC`). With the USB card unplugged, the firmware boots Flex
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
directly.
- ChromeOS updates re-add a UEFI entry and put it first in `BootOrder`;
see `CHROMEOS-FLEX.md`.