Van ChromeOS naar
Debian op
een Chromebook
Acer Chromebook 13 CB5-311
by Peter Martin /
db8.nl
slides:
https://petermartin.nl
---
Waarom overstappen?
---- ### Het apparaat | | | |---|---| | Model | Acer Chromebook 13 CB5-311 | | Board | `nyan_big` | | SoC | NVIDIA Tegra K1, 4× Cortex-A15 @ 2,1 GHz | | RAM | 4 GB | | Opslag | 32 GB eMMC | | Scherm | 1920×1080 |
Op zich prima hardware. Alleen de software...
---- ### ChromeOS is "end of life" - Auto Update Expiration:
september 2019
- Laatste versie: ChromeOS / Chrome **77** - Geen beveiligingsupdates meer - Websites ondersteunen Chrome-versie niet meer
Laptop werkt prima, maar niet meer veilig browsen.
Note: Chrome 77 dateert uit 2019. In 2026 is dat zeven jaar zonder updates. ---- ### Het plan ChromeOS eruit →
Debian Linux
erin - Actuele browser - Beveiligingsupdates - Het apparaat gaat weer jaren mee ---
Poging na poging
---- ### Valkuil 1: het is géén x86 ```text $ uname -m armv7l ``` - ARMv7, **32-bit** (armhf) - Bijna alle Chromebook→Linux-handleidingen: - voor x86-modellen -
MrChromebox
/ coreboot-firmware - NIET voor ARM-Chromebooks - arm64- en x86-images werken niet Note: Let op: de CB5-571 is wél het x86-model. Verwar die twee niet bij het zoeken. ---- ### Valkuil 2: verkeerd model
CB5-311
≠ CB5-571 | | CB5-311 | CB5-571 | |---|---|---| | CPU | NVIDIA Tegra K1 | Intel | | Architectuur | ARM 32-bit | x86 |
Eén cijfer verschil
compleet andere handleidingen.
---- ### Poging: postmarketOS ```text mmcblk0 7.5G disk ├─mmcblk0p1 16M part ├─mmcblk0p2 512M part └─mmcblk0p3 6.9G part /media/pe7er/pmOS_root ``` - Zou met
google-nyan-big
moeten werken -
postmarketOS
op een SD-kaart gezet - "My mileage varied": startte niet op ---- #### Poging: write protect uitschakelen Doel: GBB-vlaggen `0x19` - Google Binary Block: - in firmware-chip "vlaggen" hoe firmware opstart - Waarschuwingsscherm 2 s i.p.v. 30 s - Geen pieptoon - Developer mode permanent ---- #### Write protect: wat ging er fout? - Schroef **JP10** verwijderd - → `crossystem wpsw_cur` bleef `1` - Accu losgekoppeld - → hielp ook niet - Geen betrouwbare locatie van het Write Protect-pad voor `nyan_big` gevonden
- Bonus: accu los wiste de NVRAM → `dev_boot_usb` sprong terug naar `0`
Note: De WP-schroef overbrugt een gespleten koperen pad, meestal vlak bij de SPI-flash. Les: doe demontage voordat ChromeOS weg is, zolang je de instellingen nog makkelijk kunt herstellen. ---- ### Resultaat Write protect blijft aan. Elke keer opstarten: 30 seconden wachten + pieptoon...
...tenzij je op
Ctrl+D
drukt.
---
Hoe het wél lukte
---- ### Velvet OS
velvet-os.github.io
(voorheen hexdump0815/imagebuilder)
- Debian-images voor ARM-Chromebooks:
chromebook_nyan-armv7l-trixie-250907.img.gz
- Debian 13 Trixie,
kernel 6.12,
btrfs - Login: `linux` / `changeme` ---- ### Stap 1: developer mode
Esc + Refresh + Power
, dan
Ctrl+D
⚠️ Wist het apparaat volledig ---- ### Stap 2: extern booten toestaan In ChromeOS:
Ctrl+Alt+F2
, login `root` ```bash crossystem dev_boot_usb=1 dev_boot_signed_only=0 ``` ---- ### Stap 3: SD-kaart schrijven Op de Ubuntu-machine, run `flash-nyan.sh`
met SD card tussen 4 en 17 GB: ```bash zcat chromebook_nyan-armv7l-trixie-250907.img.gz \ | dd of=/dev/mmcblk0 bs=4M status=progress conv=fsync sync ```
zcat pakt een gzip-bestand (.gz) uit en schrijft de inhoud naar stdout
---- ### Stap 4: testen vanaf SD - SD-kaart erin, aanzetten -
Ctrl+U
= booten van SD/USB - Menu-optie 2: `linux-big-fhd`
🎉 Debian draait!
---- ### Stap 5: vangnet ChromeOS-recovery-stick maken
met
write-recovery-usb.sh
-
chromeos_12371.75.0_nyan-big_recovery_stable-channel_big-mp-v2.bin
- md5-controle vooraf - Schrijft alleen naar een *removable* apparaat -> enige weg terug naar Chrome. **Bewaren!** ---- ### Stap 6: klonen naar de eMMC Vanuit de draaiende Debian op de SD: ```bash apt install -y gdisk cloud-guest-utils sync dd if=/dev/mmcblk1 of=/dev/mmcblk0 bs=4M status=progress sync sgdisk -e /dev/mmcblk0 poweroff ``` Note: mmcblk1 is de SD-kaart, mmcblk0 de interne eMMC. sgdisk -e verplaatst de backup-GPT naar het einde van de 29 GB schijf. ---- ### `dd` lijkt te hangen? Niet afbreken! Page cache naar flashgeheugen schrijven = traag! ```bash grep Dirty: /proc/meminfo ``` ---- ### Stap 7: rootfs vergroten SD eruit, opstarten met
Ctrl+D
```bash sudo /scripts/extend-rootfs.sh ``` ---- ### Stap 8: afwerking Standaard 1920×1080 in `/boot/extlinux/extlinux.conf`: ```text DEFAULT linux-big-fhd ``` Hostname: ```bash sudo hostnamectl set-hostname chromebook ``` Gebruikersnaam: `/scripts/rename-default-user.sh` ---
Waarschuwingen
---- ### Nooit op spatie drukken Bij het scherm *"OS verification is OFF"* Spatie = developer mode uit = apparaat gewist ---- ### Gekloonde SD-kaart Nooit in de draaiende Chromebook steken! - Zelfde btrfs-UUID - Zelfde partitielabel (`rootpart`) - btrfs kan kaart als tweede device van rootfs zien Wis de kaart op een *andere* machine: ```bash sudo wipefs -a /dev/mmcblk0 sudo sgdisk --zap-all /dev/mmcblk0 ``` ---- ### Accu niet leeg laten lopen - vboot-instellingen staan in NVRAM - gevoed door de accu - Valt developer mode terug - → recovery-scherm - Dan heb je de recovery-stick nodig ---
Lessen
---- - Check de **architectuur** vóór je gaat zoeken - Zoek naar je **board-naam** (`nyan_big`), - niet alleen het model - Test eerst vanaf **SD-kaart** - Maak een **recovery-stick** voor je ChromeOS wist - Demontage? - Doe het **vóór** ChromeOS weg is ---- ### Resultaat Een Chromebook uit 2014 met ChromeOS 77...
...draait nu
Debian 13 Trixie
met kernel 6.12
---
TL;DR
---- ### Advies: doe het niet - Eigenlijk niet aan beginnen - Kost veel tijd
en ergenis
(veel gemopper ook)
- resultaat is niet geweldig ---
Vragen?
Peter Martin /
db8.nl