Repository navigation
Kuldax - #2219
Kuldax#2219loftlifter31 wants to merge 8 commits into
Conversation
blobs location Signed-off-by: Random Number <159942794+loftlifter31@users.noreply.github.com>
Signed-off-by: Random Number <159942794+loftlifter31@users.noreply.github.com>
Signed-off-by: Random Number <159942794+loftlifter31@users.noreply.github.com>
Signed-off-by: Random Number <159942794+loftlifter31@users.noreply.github.com>
add kuldax Signed-off-by: Random Number <159942794+loftlifter31@users.noreply.github.com>
|
***WARNING: No TPM Primary handle. You must reset TPM to seal secret to TPM NVRAM *** |
|
ASUS Chromebox 5 (CN67) KULDAX [CR50 (SuzyQ)] https://cros.tech/device/kuldax/ |
| target: kuldax | ||
| subcommand: "" | ||
| requires: | ||
| - x86-musl-cross-make |
There was a problem hiding this comment.
I think you want x86_musl_cross_make here? Looks like the job has underscores but a lot of other places it's dashes.
There was a problem hiding this comment.
Maybe it's a typo in the docs. https://osresearch.net/Porting/#circleci
This comment was marked as outdated.
This comment was marked as outdated.
Sorry, something went wrong.
There was a problem hiding this comment.
If kano was used as a base under board's config to point at mrchromebox for, the .circleci config would become
requires:
- kano [seed:coreboot-mrchromebox-26.03]
and moved under kano boards for that fork, depending on coreboot cache created by kano
# Downstream boards: kano, kano-hotp
- x86_coreboot:
name: kano [seed:coreboot-mrchromebox-26.03]
target: kano
subcommand: ""
coreboot_dir: coreboot-mrchromebox-26.03
requires:
- x86-musl-cross-make [cross compiler]
# kano-hotp (seeded by kano)
- build:
name: kano-hotp
target: kano-hotp
subcommand: ""
requires:
- kano [seed:coreboot-mrchromebox-26.03]
- build:
name: kuldax-hotp
target: kuldax-hotp
subcommand: ""
requires:
- kano [seed:coreboot-mrchromebox-26.03]
- build:
name: kuldax
target: kuldax
subcommand: ""
requires:
- kano [seed:coreboot-mrchromebox-26.03]
I doubt you will have needed fsp, ME etc if not based on mrchromebox fork, just like my tests showed under kano port https://github.com/linuxboot/heads/pull/2133/commits
There was a problem hiding this comment.
Sorry for prior noise, docs fixed under linuxboot/heads-wiki@f2c5fd0
Format for musl-cross-make is x86-musl-cross-make [cross compiler]
But here, it would be preferable to depend on the mrchromebox seed as in prior comment anyway as explained why there.
There was a problem hiding this comment.
Maybe it's a typo in the docs. https://osresearch.net/Porting/#circleci
circleci configs changed and docs didn't follow. I wonder if its good for maintainability do even document keywords that might change again, but maybe point to https://github.com/linuxboot/heads/blob/master/doc/circleci.md
That's the danger in trying to document things at multiple places. Some gets forgotten, sorry and thanks for flagging
Anything that should be documented differently? Since this might move as code, I guess osresearch.net should point to code doc/circleci.md. Thoughts?
There was a problem hiding this comment.
I doubt you will have needed fsp, ME etc if not based on mrchromebox fork
Not sure about fsp but I'm pretty sure ME is required regardless of fork.
There was a problem hiding this comment.
I doubt you will have needed fsp, ME etc if not based on mrchromebox fork
Not sure about fsp but I'm pretty sure ME is required regardless of fork.
Interesting. For Kano, blobs were missing under upstream which made us switch back to mrchromebox. I left the attempt in commit messages and switched back to mrchromebox fork see around bc0764e
There was a problem hiding this comment.
I doubt you will have needed fsp, ME etc if not based on mrchromebox fork
Not sure about fsp but I'm pretty sure ME is required regardless of fork.
Agreed by can be disabled in ifd as per post fix integrated in kano
|
Setting clock prompt on first reboot: ok if triggered correctly after initial flashing and CMOS battery disconnected Unless you removed the battery I don't think you'll need to do this. Did you use a SuzyQ device to flash this device initially? |
|
|
||
| #HOTP based remote attestation for supported USB Security dongle | ||
| #With/Without TPM support | ||
| #CONFIG_HOTPKEY=y |
There was a problem hiding this comment.
Might want to set this to CONFIG_HOTPKEY=n (uncommented). I'm not sure if the default is already n or not, @tlaurion do you know what the default value is?
There was a problem hiding this comment.
hotp board enable CONFIG_HOTPKEY=y
that is if users have a reverse hotp supported dongle by the hotp_verification toolset developped by nitrokey and of course supported in fw see https://osresearch.net/Prerequisites#usb-security-dongle-compatibility
TLDR: non-hotp boards should be copied over non-hotp board variant for proper example (so future devs can infer this, but no: modules enablement is per board configs unless modules are required for all boards
Those are deployed by default if not turned off under current master
grep -Rn "?= y" modules/
modules/busybox:2:CONFIG_BUSYBOX ?= y
modules/exfatprogs:2:CONFIG_EXFATPROGS ?= y
modules/e2fsprogs:2:CONFIG_E2FSPROGS ?= y
modules/zstd:3:CONFIG_ZSTD ?= y
modules/zlib:1:CONFIG_ZLIB ?= y
modules/musl-cross-make:1:CONFIG_MUSL ?= y
|
#2133 also might help, it was the first ChromeOS port for Heads. lets get the CI building and go from there. |
|
Also curious if the SD card is going to work. I don't think Heads has support for the SD card reader. |
Yes. SuzyQ. |
We can add it, what is the sdcard reader? |
| CONFIG_IO386=y | ||
| CONFIG_COREBOOT_APPLY_HAP=y | ||
| export CONFIG_LINUX_VERSION=6.1.8 | ||
| export CONFIG_COREBOOT_VERSION=25.03 |
There was a problem hiding this comment.
@loftlifter31 why are you not reusing mrchromebox fork like kano as a base?
There was a problem hiding this comment.
I saw a comment from Mr.Chromebox that he didn't make any changes in his fork that would be important to this project. I thought it would be simpler to use a standard build if there is no reason to use the fork. I have built with both and flashed both. Didn't see any difference in functionality.
There was a problem hiding this comment.
I saw a comment from Mr.Chromebox that he didn't make any changes in his fork that would be important to this project. I thought it would be simpler to use a standard build if there is no reason to use the fork. I have built with both and flashed both. Didn't see any difference in functionality.
That is not true. Descriptor and other proper blobs were only provided in the mrchromebox fork but it seems that was true only for Kano might be irrelevant here.
| @@ -0,0 +1 @@ | |||
| https://github.com/MrChromebox/blobs/tree/main/mainboard/google/brya/brask/kuldax | |||
There was a problem hiding this comment.
exactly. so we must depend on mrchromebox fork.
| export CONFIG_ROOT_CHECK_AT_BOOT="n" | ||
| export CONFIG_COREBOOT=y | ||
| export CONFIG_BOARD_NAME="kuldax" | ||
| export CONFIG_FLASH_OPTIONS="flashprog --progress --programmer internal --ifd -i bios -i fd" |
There was a problem hiding this comment.
is there an intel based Ehternet card here?
There was a problem hiding this comment.
There is gigabit ethernet. I don't have the manufacturer info at the moment.
There was a problem hiding this comment.
Please provide basic HCL here so heads-wiki changes can reflect this later on
Example from Kano
# Configuration for a Acer Chromebook Spin 714 (CP714-1WN/2WN/KANO)
# Intel iGPU "UHD Graphics", 12th Gen Intel Core i5-1235U, 8GB RAM
# CAVEATS: TPM_GPIO_RESET=NOT_VULNERABLE -- Google CR50 on I2C (bus 0x1, addr 0x50) is a separate MCU not driven by the PCH PLTRST# multifunction GPIO pad; the discrete-TPM PLTRST# reprogramming attack cannot reset the CR50
# See doc/TPM_GPIO_Reset_Vulnerability.md for details.
# 256GB NVMe Storage, Intel AX211 Wi-FI 6E,
# 32MB Winbond Chip W25Q256JV_M - SuzyQ cable used to flash with ccd.
# Hardware compatibility: Google Kano (Acer CP714-1WN, brya) — Alder Lake (12th gen), max 16 GB RAM (soldered; 8 GB base configs), TPM 2.0 (Google H1/GSC), Active.
# Full details: https://osresearch.net/Hardware-Compatibility/#board-kano
So please prepare heads-wiki pr at the same time so both can be merged at once cross-linking to each other in thir expected final state.
| # | ||
| # General setup | ||
| # | ||
| CONFIG_LOCALVERSION="24.08-88-g259b01deb7" |
There was a problem hiding this comment.
please reuse/specialize kano linux config and then use modules/linux helpers
./docker_repro.sh make BOARD=kuldax linux.modify_and_save_oldconfig_in_place
And commit changes. defconfigs are way easier to compare between boards for deviations from defaults.
Question is: do we even need a specialized linux config for kuldax or could reuse kano's?
Question in PR was sdcard reader. To be followed; if both kano and kuldax have the same needed drivers at firmware level, then both could share the same linux config otherwise justifying the specialization of config to maintain
There was a problem hiding this comment.
Question in PR was sdcard reader. To be followed; if both kano and kuldax have the same needed drivers at firmware level, then both could share the same linux config otherwise justifying the specialization of config to maintain
Kano does not have an SD card reader but a lot of the Chromebox devices do, e.g. my HP Chromebox G2 has an SD card reader.
There was a problem hiding this comment.
please reuse/specialize kano linux config and then use modules/linux helpers
Why would I use the config for a different hardware when there is a coreboot config specifically for kuldax?
There was a problem hiding this comment.
Please use and specialize kano config with help of make helpers from modules/coreboot
./docker_repro.sh make BOARD=kuldax coreboot.modify_and_save_oldconfig_in_place
./docker_repro.sh make BOARD=kuldax coreboot.modify_defconfig_in_place
./docker_repro.sh make BOARD=kuldax coreboot.save_as_defconfig_backup something something
And commit changes. defconfigs are way easier to compare between boards for deviations from defaults.
Most probably a linux config issue, if coreboot does the right thing and is able to do its work, but et again as of now, you are using standard upstream without blobs fro mrchromebox so i'm confused. Anyway, logs tell the truth. From the recovery shell can you (with ext3/ext4/exfat/fat32 formatted usb thumb drive) For each steps of the future "it doesn't work" related issues? thanks for your contribution @loftlifter31 and be patient with the process! Feel free to open issues or PR against the porting guide as you go, or i'll do my best to correct things but fresh eyes are always welcome fixing as we go with this port. |
|
Here is a TODO list:
@loftlifter31 Let me know if that all makes sense and how I can help. If I don't hear back in a couple days I'll create my own branch based on this with the above fixes, you can then pull that into this PR. |
This comment was marked as off-topic.
This comment was marked as off-topic.
This comment was marked as off-topic.
This comment was marked as off-topic.
Signed-off-by: Random Number <159942794+loftlifter31@users.noreply.github.com>
Signed-off-by: Random Number <159942794+loftlifter31@users.noreply.github.com>
Wrong TPM driver in Linux config? |
|
My general advice @loftlifter31 would be to follow Linux config and modules/linux has been modified to include sdcard reader, TPM was figured out(I think, different then Kano cr50 previous config). I was not telling you to base config/corrboot* on Kano but compare your generated config_defconfig backup against Kano to see deviations to defaults all matching, being different boards but requiring same deviations to work under heads. And same for linux, while helper for defconfig backup pr was made but not yet merged. If you have any question let us know, but previous review needs fixing so circleci build your board and gives us things to review for posterity. Thanks! |
X.Y.Z.using external programmer modelRaspberry Pion3.3Voltage modeX.Y.Z.install and rebootX.Y.Z.hardwarekey e.g. nk3X.Y.Z.patches/coreboot-X.Y.Z.and coreboot config contain proper preparation of the platform)