I currently have a Lenovo Duet 5 chromebook (with ARM processor) that runs 
debian off an SD Card via USB.

> The problem is that instead of a normal BIOS or UEFI, thelaptop has the
> nasty ChromeOS bootloader which refuses to boot the normal Debian ARM64
> Netinst installer. The only thing it wants to boot from USB is the
> ChromeOS recovery.

hexbuilder's VelvetOS (a (slightly?) modified version of Debian) builds might 
boot from USB--that's what I'm using.
Check out 
https://github.com/hexdump0815/imagebuilder/blob/main/systems/chromebook_oak/readme.md

> In theory, I could boot into ChromeOS from the eMMC, login as root and
> copy Debian from the stick to the eMMC, but I don’t know how to
> partition the eMMC. Where does the nasty bootloader expect to find
> things? Can I make it boot into GRUB, or do I have to put the Linux
> kernel from Debian onto a special partition? I’m completely clueless.

The process seems to be:
1) compress the kernel image with lz4
2) create a FIT image with mkimage
    (mkimage is found in the "u-boot-tools" package in debian)
3) sign the FIT image and add the kernel commandline with vbutil_kernel
    (vbutil_kernel is found in the "vboot-kernel-utils" package in debian)
4) dd the signed image to one of a "Kernel" partition
5) use cgpt to set the relevant flags that mark the chosen Kernel
       partition as bootable/preferred.
    (there's a "cgpt" package in debian)

The documentation for this (and the individual tools) is a bit suboptimal and 
scattered, so I don't have any documentation pointers--I extracted this process 
from the build scripts for hexbuilder's VelvetOS images.
I haven't gotten to the point of understanding if/why all these steps are 
actually necessary, but I've used this process successfully to customize the 
install and partition table on the SD card I'm using on my Chromebook.
I suspect that a similar process could be applied to the internal storage of a 
Chromebook, but I haven't explored that yet.

Reply via email to