Skip to content

Add Google kano (Mr Chromebox) support - First full Chromebook port!#2133

Open
cwiggs wants to merge 36 commits into
linuxboot:masterfrom
cwiggs:google_kano
Open

Add Google kano (Mr Chromebox) support - First full Chromebook port!#2133
cwiggs wants to merge 36 commits into
linuxboot:masterfrom
cwiggs:google_kano

Conversation

@cwiggs

@cwiggs cwiggs commented Jun 24, 2026

Copy link
Copy Markdown

This pull request adds support for the Acer Chromebook Spin 714 ("kano") board based on the MrChromebox coreboot fork (26.06), including CI integration, configuration files, and documentation updates. It also introduces a patch for musl compatibility in the MrChromebox fork, adds a new Linux kernel version (6.6.30), and documents TPM2 CR50 command support. The most important changes are grouped below:

Kano (Acer Chromebook Spin 714) board support:

  • Adds boards/kano/kano.config for Heads and Linux build configuration for the kano board.
  • Adds config/coreboot-kano.config_defconfig as a defconfig backup for kano, documenting non-default coreboot options.
  • Integrates kano into CircleCI: adds coreboot-mrchromebox as a seed, defines the kano build job, and documents its workflow. [1] [2] [3]
  • Documents kano's handling of the RTC century byte and why USE_PC_CMOS_ALTCENTURY must be unset for this board. [1] [2] [3]

MrChromebox coreboot fork integration:

  • Adds the MrChromebox coreboot fork (26.03) as a supported module in modules/coreboot, with commit hash pinning and submodule handling notes. [1] [2]
  • Documents and implements post-build application of the ME HAP bit for MrChromebox-based boards (e.g., kano) via ifdtool. [1] [2]

Build system and kernel updates:

  • Adds Linux kernel version 6.6.30 support for use by kano and other boards. [1] [2]
  • Adds a musl compatibility patch for MrChromebox coreboot's cbmem utility.

Documentation improvements:

  • Documents how to clone the repository with full history and repair shallow clones for reproducible builds.
  • Adds a section on CR50 TPM command limitations and Heads TPM2 command compatibility.
  • Expands documentation on defconfig backups for Chromebook boards and Heads-common coreboot options. [1] [2] [3]

Minor adjustments:

  • Updates the list of boards with specific coreboot options and clarifies configuration for Purism and QEMU boards. [1] [2]

These changes collectively enable official Heads support for the Acer Chromebook Spin 714 (kano), ensure compatibility with the MrChromebox fork, and improve build reproducibility and documentation for new contributors.

(copilot generalized pr summary, asked by @tlaurion)


TODO before merge

  • Create Chromebook section with notes of this PR
  • Go through/modify porting guide checklist
    • Go through/modify testing checklist
      • Successful external flash link to circleci: https://X.Y.Z. from commit X.Y.Z. using external programmer model X.Y.Z. on X.Y.Z. Voltage mode
      • Boots successfully after the flashing:
      • Setting clock prompt on first reboot: ok if triggered correctly after initial flashing and CMOS battery disconnected
      • Clean boot detected (no keyring, nothing installed on disk): usb boot proposed and followed
      • Boots on usb
      • OS X.Y.Z. install and reboot
      • Heads functionality- no pubkey detected, but OS detected -> OEM-Factory-reset proposed. Done with X.Y.Z. hardwarekey e.g. nk3
      • On reboot after re-ownership: generate new HOTP/TOTP
      • wifi works based on OS X.Y.Z.
      • PR0
        • flashprog -p internal (not locked)
        • lock_chip (locks the platform with PR0, if PR0 patch applied in fork or under patches/coreboot-X.Y.Z. and coreboot config contain proper preparation of the platform)
        • flashprog -p internal (reports locked)

Additional questions:

Comment thread modules/coreboot Outdated
Comment thread modules/coreboot Outdated

@tlaurion tlaurion left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

first review as I was there and saw work on this PR :)

@tlaurion

Copy link
Copy Markdown
Collaborator

I suggest you tart a thread under Matrix Heads channel. You must rebase the old PR on linuxboot/heads master, an dthen adapt coreboot config to your board. Following https://osresearch.net/Porting/ @cwiggs otherwise your experience might be really frustrating.

@cwiggs

cwiggs commented Jun 24, 2026

Copy link
Copy Markdown
Author

I suggest you tart a thread under Matrix Heads channel. You must rebase the old PR on linuxboot/heads master, an dthen adapt coreboot config to your board. Following https://osresearch.net/Porting/ @cwiggs otherwise your experience might be really frustrating.

Started a thread here: https://matrix.to/#/!eMLMv62wAMCW1V-ufL_bJ_JDngDhrpSOSEQBLzX8aTg/$eepAush4kVo93Zxqtw59P6NX9g6AG7FZFplc2Fu6tyo?via=matrix.org&via=tchncs.de&via=unredacted.org

@tlaurion

Copy link
Copy Markdown
Collaborator

@cwiggs I saw you left the room?

Comment thread boards/kano/kano.config Outdated
Comment thread boards/kano/kano.config Outdated
@cwiggs

cwiggs commented Jun 24, 2026

Copy link
Copy Markdown
Author

@cwiggs I saw you left the room?

Looks like the Matrix homeserver decided to delete my account for some reason, I'll look into getting it reactivated.

@tlaurion

Copy link
Copy Markdown
Collaborator

@cwiggs check https://github.com/tlaurion/heads/tree/cwiggs-google_kano which now builds locally with blobs paths corrected and blobs submodules synced per mrchromebox gitsubmodules sync override in modules/coreboot

@cwiggs

cwiggs commented Jun 26, 2026

Copy link
Copy Markdown
Author

@cwiggs check https://github.com/tlaurion/heads/tree/cwiggs-google_kano which now builds locally with blobs paths corrected and blobs submodules synced per mrchromebox gitsubmodules sync override in modules/coreboot

Okay, great, should I rebase this branch off that one then?

@tlaurion

tlaurion commented Jun 26, 2026

Copy link
Copy Markdown
Collaborator

@cwiggs check https://github.com/tlaurion/heads/tree/cwiggs-google_kano which now builds locally with blobs paths corrected and blobs submodules synced per mrchromebox gitsubmodules sync override in modules/coreboot

Okay, great, should I rebase this branch off that one then?

Absolutely. It builds from CI. I pushed progress forward since the last base (coreboot 4.22) was old and not trivial to adapt. Let me know how the testing goes. Feel free to cherry pick all commits or if you agree i can push the changes here but that would make us both co-authors of the port.

CircleCI builds at https://app.circleci.com/pipelines/github/tlaurion/heads/4040/workflows/d7699b2f-feca-423f-b0f5-187ebf94e886

@tlaurion

Copy link
Copy Markdown
Collaborator

@cwiggs check https://github.com/tlaurion/heads/tree/cwiggs-google_kano which now builds locally with blobs paths corrected and blobs submodules synced per mrchromebox gitsubmodules sync override in modules/coreboot

Okay, great, should I rebase this branch off that one then?

Absolutely. It builds from CI. I pushed progress forward since the last base (coreboot 4.22) was old and not trivial to adapt. Let me know how the testing goes. Feel free to cherry pick all commits or if you agree i can push the changes here but that would make us both co-authors of the port.

CircleCI builds at https://app.circleci.com/pipelines/github/tlaurion/heads/4040/workflows/d7699b2f-feca-423f-b0f5-187ebf94e886

https://output.circle-artifacts.com/output/job/6e1574dc-9faa-487d-8bfe-1b108383a89a/artifacts/0/build/x86/kano/heads-kano-20260626-131058-cwiggs-google_kano_-v0.2.1-3072-gb54796f.rom

@cwiggs

cwiggs commented Jun 27, 2026

Copy link
Copy Markdown
Author

@cwiggs check https://github.com/tlaurion/heads/tree/cwiggs-google_kano which now builds locally with blobs paths corrected and blobs submodules synced per mrchromebox gitsubmodules sync override in modules/coreboot

Okay, great, should I rebase this branch off that one then?

Absolutely. It builds from CI. I pushed progress forward since the last base (coreboot 4.22) was old and not trivial to adapt. Let me know how the testing goes. Feel free to cherry pick all commits or if you agree i can push the changes here but that would make us both co-authors of the port.
CircleCI builds at https://app.circleci.com/pipelines/github/tlaurion/heads/4040/workflows/d7699b2f-feca-423f-b0f5-187ebf94e886

https://output.circle-artifacts.com/output/job/6e1574dc-9faa-487d-8bfe-1b108383a89a/artifacts/0/build/x86/kano/heads-kano-20260626-131058-cwiggs-google_kano_-v0.2.1-3072-gb54796f.rom

Thanks! I got it downloaded. The suzyq cable should arrive this weekend or Monday and I'll give it a try. I also rebased off your branch here.

@tlaurion

tlaurion commented Jun 27, 2026

Copy link
Copy Markdown
Collaborator

@cwiggs check https://github.com/tlaurion/heads/tree/cwiggs-google_kano which now builds locally with blobs paths corrected and blobs submodules synced per mrchromebox gitsubmodules sync override in modules/coreboot

Okay, great, should I rebase this branch off that one then?

Absolutely. It builds from CI. I pushed progress forward since the last base (coreboot 4.22) was old and not trivial to adapt. Let me know how the testing goes. Feel free to cherry pick all commits or if you agree i can push the changes here but that would make us both co-authors of the port.
CircleCI builds at https://app.circleci.com/pipelines/github/tlaurion/heads/4040/workflows/d7699b2f-feca-423f-b0f5-187ebf94e886

https://output.circle-artifacts.com/output/job/6e1574dc-9faa-487d-8bfe-1b108383a89a/artifacts/0/build/x86/kano/heads-kano-20260626-131058-cwiggs-google_kano_-v0.2.1-3072-gb54796f.rom

Thanks! I got it downloaded. The suzyq cable should arrive this weekend or Monday and I'll give it a try. I also rebased off your branch here.

@cwiggs : This branch doesn't include all the needed changes, nor CircleCI config.
I cleaned up the commit trail in my branch at https://github.com/tlaurion/heads/tree/cwiggs-google_kano
(There is 19 commits atop origin/master there; not 9 as here)

I can push here too, if needed. Let me know.

@cwiggs

cwiggs commented Jul 4, 2026

Copy link
Copy Markdown
Author

@cwiggs check https://github.com/tlaurion/heads/tree/cwiggs-google_kano which now builds locally with blobs paths corrected and blobs submodules synced per mrchromebox gitsubmodules sync override in modules/coreboot

Okay, great, should I rebase this branch off that one then?

Absolutely. It builds from CI. I pushed progress forward since the last base (coreboot 4.22) was old and not trivial to adapt. Let me know how the testing goes. Feel free to cherry pick all commits or if you agree i can push the changes here but that would make us both co-authors of the port.
CircleCI builds at https://app.circleci.com/pipelines/github/tlaurion/heads/4040/workflows/d7699b2f-feca-423f-b0f5-187ebf94e886

https://output.circle-artifacts.com/output/job/6e1574dc-9faa-487d-8bfe-1b108383a89a/artifacts/0/build/x86/kano/heads-kano-20260626-131058-cwiggs-google_kano_-v0.2.1-3072-gb54796f.rom

Thanks! I got it downloaded. The suzyq cable should arrive this weekend or Monday and I'll give it a try. I also rebased off your branch here.

@cwiggs : This branch doesn't include all the needed changes, nor CircleCI config. I cleaned up the commit trail in my branch at https://github.com/tlaurion/heads/tree/cwiggs-google_kano (There is 19 commits atop origin/master there; not 9 as here)

I can push here too, if needed. Let me know.

I just rebased off your branch, let me know if it looks good from that point of view. Looks like I also will need to rebase off main.

As far as flashing goes: I got the Suzy-Q "cable" (It's really just a small board with a male and female usb-c, you then use your own usb-c cable). And I have some good news and some bad news (I think?). I was able to get the suzy-q cable to read the rom, but verifying the backup seems to fail.

I've been using this mrchromebox guide to get the suzy-q device working with flashrom and then this heads wiki as well. Below are some notes I put together while I was attempting the flash:

Use Suzy-Q cable for flashing

  1. Connect the USB-C end of the Suzy-Q cable to the CCD port on your ChromeOS device
    (usually left USB-C port) and the USB-A end to your Linux device
    Verify the cable is properly connected:

    • ls /dev/ttyUSB*
    • This command should return 3 items: ttyUSB0, ttyUSB1, and ttyUSB2.
    • If not, then your cable is connected to the wrong port or is upside down.
      Adjust and repeat command until output is as expected.
  2. Set the CCD state to open:

    • echo "ccd open" | sudo tee -a /dev/ttyUSB0 > /dev/null
  3. Test Connection and detect chip. raiden_debug_spi used from mrchromebox doc

    • sudo flashrom -p raiden_debug_spi
      ╚═ $ sudo flashrom -p raiden_debug_spi
      flashrom v1.6.0 on Linux 7.0.10+deb14-amd64 (x86_64)
      flashrom is free software, get the source code at https://flashrom.org
      
      FISK: (null)
      Raiden target: 0,0
      Raiden: Target SPI bridge is disabled (is WP enabled?)
      Raiden: Error configuring protocol
          protocol       = 2
          status         = 0x00005
      Error: Programmer initialization failed.
      
    • sudo flashrom -p raiden_debug_spi:target=AP casued a reboot.
       ╚═ $ sudo flashrom -p raiden_debug_spi:target=AP
      flashrom v1.6.0 on Linux 7.0.10+deb14-amd64 (x86_64)
      flashrom is free software, get the source code at https://flashrom.org
      
      FISK: AP
      Raiden target: 2,0
      Found Winbond flash chip "W25Q256JV_M" (32768 kB, SPI) on raiden_debug_spi.
      No operations were specified.
      
  4. Create backup, and verify.

    • sudo flashrom -p raiden_debug_spi:target=AP -r badflash.rom
    • hexdump -C badflash.rom | head -20
        00000000  11 00 00 9c 90 02 00 d6  00 00 00 05 ff ff ff ff  |................|
        00000010  5a a5 f0 0f 03 00 04 00  08 02 10 46 b0 01 14 00  |Z..........F....|
        00000020  00 00 00 00 ff ff ff ff  ff ff ff ff ff ff ff ff  |................|
        00000030  f6 30 30 09 21 42 60 ad  b7 b9 c4 c7 ff ff ff ff  |.00.!B`.........|
        00000040  00 00 00 00 00 05 ff 1f  01 00 ff 04 ff 7f 00 00  |................|
        00000050  ff 7f 00 00 ff 7f 00 00  ff 7f 00 00 ff 7f 00 00  |................|
        *
        00000080  00 07 20 00 00 05 40 00  00 00 00 00 00 00 00 00  |.. ...@.........|
        00000090  00 00 00 00 00 00 00 00  ff ff ff ff ff ff ff ff  |................|
        000000a0  ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff  |................|
        *
        00000100  00 00 00 00 01 00 00 00  09 00 04 00 00 ce 3d 03  |..............=.|
        00000110  7f 00 38 00 00 00 00 00  10 00 00 00 02 00 20 60  |..8........... `|
        00000120  08 30 03 48 00 00 00 00  01 00 7f 0f 82 0b c0 04  |.0.H............|
        00000130  00 00 00 00 00 00 0e 00  22 42 22 42 22 22 42 22  |........"B"B""B"|
        00000140  00 00 00 00 00 00 00 00  00 00 ff 00 60 00 80 c8  |............`...|
        00000150  45 86 00 36 01 00 a6 81  20 0e 58 00 01 00 40 00  |E..6.... .X...@.|
        00000160  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
        00000170  00 1c 00 00 00 00 00 00  54 b3 04 a0 30 00 00 41  |........T...0..A|
        00000180  8f 03 08 c6 00 01 00 00  00 00 00 00 00 00 00 00  |................|
      
    • sudo flashrom -p raiden_debug_spi:target=AP --verify badflash.rom
        flashrom v1.6.0 on Linux 7.0.10+deb14-amd64 (x86_64)
        flashrom is free software, get the source code at https://flashrom.org
      
        FISK: AP
        Raiden target: 2,0
        Found Winbond flash chip "W25Q256JV_M" (32768 kB, SPI) on raiden_debug_spi.
        Verifying flash... FAILED at 0x01bbeadb! Expected=0x94, Found=0xb4, failed byte count from 0x00000000-0x01ffffff: 0x3f
      
  5. Created a backup and verify it using heads wiki guide.

    • sudo flashrom -p raiden_debug_spi:target=AP --read backup.bin --chip "W25Q256JV_M"
    • sudo flashrom -p raiden_debug_spi:target=AP --verify backup.bin --chip "W25Q256JV_M"
      ╚═ $ sudo flashrom -p raiden_debug_spi:target=AP --verify backup.bin --chip "W25Q256JV_M"
      flashrom v1.6.0 on Linux 7.0.10+deb14-amd64 (x86_64)
      flashrom is free software, get the source code at https://flashrom.org
      
      FISK: AP
      Raiden target: 2,0
      Found Winbond flash chip "W25Q256JV_M" (32768 kB, SPI) on raiden_debug_spi.
      Verifying flash... FAILED at 0x01bc9254! Expected=0xb7, Found=0xb8, failed byte count from 0x00000000-0x01ffffff: 0x3e
      

Questions:

  1. When I run sudo flashrom -p raiden_debug_spi I'm getting a "Error: Programmer initialization failed" and "Target SPI bridge is disabled (is WP enabled?)". The mrchromebox guide does talk about disabling write-protection, but it seems to only be possible to do via a tool in ChromeOS (gsctool), or by disconnecting the laptops battery. Seems very likely write-protection is still on.
  2. Looks like I was able to create a backup, but then when I verify it I get: "Verifying flash... FAILED at 0x01bc9254! Expected=0xb7, Found=0xb8, failed byte count from 0x00000000-0x01ffffff: 0x3e" Why is it not working?

Anyway I think next steps are to disconnect the battery and try these flashrom commands again. I don't want to proceed until the verify step works without error.

@cwiggs

cwiggs commented Jul 4, 2026

Copy link
Copy Markdown
Author

Well I disconnected the battery and am getting the same response from flashrom. Should I just continue with flashing heads?

Here are my notes:

  1. Disconnect Battery to disable write-protection.
  • Remove The 9 screws.
image * Use a smudger to take the back cover off. * Disconnect battery cable. image
  • Put laptop back together.
  1. Disable write-protection. mrchromebox guide
  • Plug laptop into power.
  • Plug in suzy-q cable.
  • echo "wp false" > /dev/ttyUSB0
  • echo "wp false atboot" > /dev/ttyUSB0
  • echo "ccd reset factory" > /dev/ttyUSB0
  1. Tried the same flashrom commands to backup and verify above and got the same result of "Error: Programmer initialization failed" and "Verifying flash... FAILED at 0x0003e1c0! Expected=0x28, Found=0x68, failed byte count from 0x00000000-0x01ffffff: 0xe99" when verifying.

mdrobnak and others added 7 commits July 4, 2026 18:22
Signed-off-by: Matthew Drobnak <matthew@drobnak.com>
Signed-off-by: Thierry Laurion <insurgo@riseup.net>
Signed-off-by: Matthew Drobnak <matthew@drobnak.com>
Signed-off-by: Thierry Laurion <insurgo@riseup.net>
Signed-off-by: Chris Wiggins <chris@cwiggs.com>
Signed-off-by: Thierry Laurion <insurgo@riseup.net>
Signed-off-by: Thierry Laurion <insurgo@riseup.net>
…t/linux helpers to modify and save in oldconfig

Signed-off-by: Thierry Laurion <insurgo@riseup.net>
…-musl-compat.patch: fix build error against musl

Signed-off-by: Thierry Laurion <insurgo@riseup.net>
…place to put in defconfig to remove irrelevant omnigul things

Signed-off-by: Thierry Laurion <insurgo@riseup.net>
…pace

Copilot review: fix 'a Acer' -> 'an Acer', 'Wi-FI' -> 'Wi-Fi', and remove trailing comma/spaces on line 3.

Signed-off-by: Thierry Laurion <insurgo@riseup.net>
@tlaurion

Copy link
Copy Markdown
Collaborator

Will push here

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 15 out of 18 changed files in this pull request and generated 3 comments.

Comment thread patches/linux-6.6.30/0001-fake-acpi.patch Outdated
Comment thread patches/linux-6.6.30/0002-nmi-squelch.patch Outdated
Comment thread patches/linux-6.6.30/0010-winterfell-ahci.patch Outdated
@tlaurion

tlaurion commented Jul 10, 2026

Copy link
Copy Markdown
Collaborator

For posterity of this port, i'm porting patches to 26.06 so buildstack will be shareable and patches upstreameable , more commits coming

@tlaurion tlaurion force-pushed the google_kano branch 2 times, most recently from 3ecfc2b to 7770fe8 Compare July 10, 2026 22:03
@tlaurion

Copy link
Copy Markdown
Collaborator

@cwiggs check todo list of OP :) test rom from CircleCI on latest commit since coreboot's mrchromebox 26.06 based.

@MrChromebox any comment before merge?

@tlaurion

tlaurion commented Jul 10, 2026

Copy link
Copy Markdown
Collaborator

Asked Matrix's coreboot channel; for review of this pr

@tlaurion

Copy link
Copy Markdown
Collaborator

Asked Matrix's coreboot channel; for review of this pr

mrchromebox said if not uefi: no use of using his fork. More commit upcoming

@cwiggs

cwiggs commented Jul 10, 2026

Copy link
Copy Markdown
Author

Flashed the most recent build (https://output.circle-artifacts.com/output/job/5f5b720f-8d71-4878-91df-a20af7beac2f/artifacts/0/build/x86/kano/heads-kano-202607092012-v0.2.1-3123-g852dc8e.zip)

flashprog unknown on Linux 6.6.30-Heads (x86_64)
flashprog is free software, get the source code at https://flashprog.org

Calibrating delay loop... OK.
coreboot table found at 0x76883000.
Found chipset "Intel Alder Lake-P".
Enabling flash write... OK.
Found Programmer flash chip "Opaque flash chip" (32768 kB, Programmer-specific) on internal.
No operations were specified.

Looks good!

@cwiggs Now will be time to checklist things, i will update OP with checklist (to improve docs as well. Todo still is open a pr against heads-wiki with what is absolutely necessary to flash chromebooks. Will also rename PR to make it clear that this is first chromebook port :)

Once CircleCI builds the Kano zip I'll flash the image and fill out the checklist.

I also have a working branch for the wiki for heads. I'll get it up as a draft/WIP and then add to it.

Curious since you are a daily NixOS user, and that installation docs under https://osresearch.net are.... hmm. less then optimal to guide users into what is different requirements then UEFI, even though latest #2130 helped a lot fb+iso support, unless bugs found, most if not all linux distributions.

You didn't need #2155 ?

I was able to get my NixOS install working in Heads with a very simple change you can see here: https://gitlab.com/cwiggs/nix/-/commit/a7419c5511b45e0fa04590788bcb8309e12825e9

I didn't need #2155 and DUK still works without issues. I can also post a tree or files in /boot if that helps.

@tlaurion tlaurion force-pushed the google_kano branch 8 times, most recently from 2e4d179 to 9a8de0b Compare July 11, 2026 00:13
Update from MrChromebox-2603.2 (f8244f2) to MrChromebox-2606.0 (ddfe385).

Config regenerated via: make BOARD=kano coreboot.save_in_oldconfig_format_in_place && make BOARD=kano coreboot.save_in_defconfig_format_backup

Address Copilot review: fix 'feautre' typo, deduplicate Adapted for MrChromebox fork bullet list, rebase smihandler.c hunk for opal_s3_smm.h include added in 26.06.

Signed-off-by: Thierry Laurion <insurgo@riseup.net>

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 15 out of 18 changed files in this pull request and generated 4 comments.

Comment thread patches/linux-6.6.30/0001-fake-acpi.patch Outdated
Comment thread patches/linux-6.6.30/0002-nmi-squelch.patch Outdated
Comment thread patches/linux-6.6.30/0010-winterfell-ahci.patch Outdated
Comment thread modules/coreboot Outdated
Copilot review: fix linux-4.9.80 paths in 6.6.30 kernel patches (0001, 0002, 0010) and correct misleading 'All boards have CONFIG_USE_BLOBS=y' comment.

Signed-off-by: Thierry Laurion <insurgo@riseup.net>
@tlaurion

tlaurion commented Jul 11, 2026

Copy link
Copy Markdown
Collaborator

Flashed the most recent build (https://output.circle-artifacts.com/output/job/5f5b720f-8d71-4878-91df-a20af7beac2f/artifacts/0/build/x86/kano/heads-kano-202607092012-v0.2.1-3123-g852dc8e.zip)

flashprog unknown on Linux 6.6.30-Heads (x86_64)
flashprog is free software, get the source code at https://flashprog.org

Calibrating delay loop... OK.
coreboot table found at 0x76883000.
Found chipset "Intel Alder Lake-P".
Enabling flash write... OK.
Found Programmer flash chip "Opaque flash chip" (32768 kB, Programmer-specific) on internal.
No operations were specified.

Looks good!

@cwiggs Now will be time to checklist things, i will update OP with checklist (to improve docs as well. Todo still is open a pr against heads-wiki with what is absolutely necessary to flash chromebooks. Will also rename PR to make it clear that this is first chromebook port :)

Once CircleCI builds the Kano zip I'll flash the image and fill out the checklist.

I also have a working branch for the wiki for heads. I'll get it up as a draft/WIP and then add to it.

Curious since you are a daily NixOS user, and that installation docs under https://osresearch.net are.... hmm. less then optimal to guide users into what is different requirements then UEFI, even though latest #2130 helped a lot fb+iso support, unless bugs found, most if not all linux distributions.

You didn't need #2155 ?

I was able to get my NixOS install working in Heads with a very simple change you can see here: https://gitlab.com/cwiggs/nix/-/commit/a7419c5511b45e0fa04590788bcb8309e12825e9

I didn't need #2155 and DUK still works without issues. I can also post a tree or files in /boot if that helps.

Interesting. My issue was not about installing grub, that did work. My issue pointing to #2155 being required was that when setting up a TPM DUK for a selected boot entry to become default, initramfs unpacking failed finding a valid crypttab in initramfs pointed by boot entry in grub (it was a symlink pointing to rootfs path which is not available from initramfs itself.

If you could describe your custom partitioning scheme, I would definitely be interested in it, mine was roughly described into #2155 linked issue #2154. NixOS installer (GUI) complies with basic custom partitioning even though it warns that /boot mount point is reserved. But yeah, From my understanding, NixOS expects /boot to be subdir of / from an installation standpoint.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 15 out of 18 changed files in this pull request and generated 3 comments.

Comment on lines +13 to +16
diff --recursive -u ./clean/linux-4.9.80/drivers/acpi/acpica/hwacpi.c linux-4.9.80/drivers/acpi/acpica/hwacpi.c
--- ./clean/linux-4.9.80/drivers/acpi/acpica/hwacpi.c 2018-02-03 11:05:43.000000000 -0500
+++ linux-4.9.80/drivers/acpi/acpica/hwacpi.c 2018-02-07 15:51:35.126557868 -0500
@@ -168,12 +168,16 @@
Comment on lines +8 to +12
+#if 0
+// qemu generates these for some reason
pr_emerg("Uhhuh. NMI received for unknown reason %02x on CPU %d.\n",
reason, smp_processor_id());

Comment on lines +10 to +16
+ if (!port_map) { // && vers < 0x10300) {
+ printk("%s: saved_port=%02x\n", __func__, hpriv->saved_port_map);
+ writel(0x1, mmio + HOST_PORTS_IMPL);
+ port_map = readl(mmio + HOST_PORTS_IMPL);
+
+ //port_map = (1 << ahci_nr_ports(cap)) - 1;
dev_warn(dev, "forcing PORTS_IMPL to 0x%lx\n", port_map);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants