Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Dell Optiplex 7019/9010 SFF (and DT form factor) + TXT inclusion based on coreboot master 24.02.01 for now #1785

Merged
merged 15 commits into from
Oct 15, 2024

Conversation

tlaurion
Copy link
Collaborator

@tlaurion tlaurion commented Sep 8, 2024

This pull request includes various updates and additions to support the Dell Optiplex 7010/9010 systems, including new workflows, configuration files, and scripts for handling firmware blobs. The most important changes include updating the Docker image version, adding new jobs and workflows in the CircleCI configuration, and introducing new configuration files and scripts for the Optiplex 7010/9010 systems.

CircleCI Configuration Updates:

  • Updated Docker image version to tlaurion/heads-dev-env:v0.2.3 in multiple jobs (prep_env, build_and_persist, build, save_cache). [1] [2] [3] [4]
  • Added a new job to download Optiplex 7010/9010 blobs.
  • Introduced new workflows for building various configurations of the Optiplex 7010/9010.

New Configuration Files:

  • Added configuration files for different Optiplex 7010/9010 builds (optiplex-7010_9010-hotp-maximized.config, optiplex-7010_9010-maximized.config, optiplex-7010_9010_TXT-hotp-maximized.config, optiplex-7010_9010_TXT-maximized.config). [1] [2] [3] [4]

New Scripts and Documentation:

  • Added a script to download and verify required blobs for Optiplex 7010/9010 (optiplex_7010_9010.sh).
  • Added README and layout files for Optiplex 9010 blobs. (README.md, layout.txt). [1] [2]

Other Changes:

  • Updated .gitignore to include new blob files.
  • Updated flake.nix to include new dependencies and ensure root entries in /etc/passwd and /etc/group. [1] [2]
  • Added makefile targets for downloading Optiplex 7010/9010 blobs. (optiplex_blobs.mk).

This is PoC state. Please comment.

Let's see if that works. Optiplex board owners out here?


At completion, will fix #1739, possibly moving to dasharo fork (doesn't build with novacusstom nv41 fork today) to be evaluated (v0.2.0 older then 0.1.0? Confused by versioning of fork: was told to use coreboot master since no change and should work)


Next steps

…01 for now

- CircleCI: add build based on coreboot 24.02.01 release (might be old but unclear to my eyes now)
- Add board non-HOTP board config as a start, reuse x230 linux config
- Add coreboot config modified ans saved theourh coreboot Makefile file helper

Next steps
- Create blobs extraction scripts automating https://docs.dasharo.com/variants/dell_optiplex/initial-deployment/#firmware-preparation

Signed-off-by: Thierry Laurion <[email protected]>
…SINIT and EC for Optiplex 7010/9010

Signed-off-by: Thierry Laurion <[email protected]>
…ion target to automatically download+extract ACM/SINIT/EC blobs into place

Signed-off-by: Thierry Laurion <[email protected]>
…eboot to blobs, add to CI

Signed-off-by: Thierry Laurion <[email protected]>
@tlaurion tlaurion marked this pull request as ready for review October 7, 2024 16:57
@tlaurion tlaurion changed the title WiP: Dell Optiplex 7019/9010 SFF inclusion based on coreboot master 24.02.01 for now WiP: Dell Optiplex 7019/9010 SFF + TXT inclusion based on coreboot master 24.02.01 for now Oct 7, 2024
@tlaurion tlaurion marked this pull request as draft October 7, 2024 16:58
@tlaurion tlaurion marked this pull request as ready for review October 7, 2024 16:58
Pushing flake.nix new requirements for binwalk and uefi-firmware-parser to extract blobs

Signed-off-by: Thierry Laurion <[email protected]>
@tlaurion
Copy link
Collaborator Author

tlaurion commented Oct 7, 2024

Duh. f2e0553 doesn't contain new flake.nix requirements for blobs extraction. Pushing new docker image in new commit e0c4fcb using it, per README.md maintainership instructions.

…change optiplex_blobs.mk target and point coreboot config to this IFD

Signed-off-by: Thierry Laurion <[email protected]>
@tlaurion
Copy link
Collaborator Author

tlaurion commented Oct 8, 2024

Tested: https://output.circle-artifacts.com/output/job/07b661b2-b859-4f40-8fd0-8d3586da733f/artifacts/0/build/x86/optiplex-7010_9010_TXT-maximized/heads-optiplex-7010_9010_TXT-maximized-v0.2.0-2334-ge2ad897.rom

Note:

  • boots (efifb+bootsplash after hard reboot) but symbols missing.
  • kernel works but mostly everything depending on initrd (and libc) is corrupt.
    Seems like I missed cleaning up ifd to make its region match expected ones or something, relaunching build without cache to compare roms produced.

Some notes: my 9010 had service jumper slot easily availabe without needing to disassemble anything other then opening the chassis. DTS then was able to take a backup and flash through internal flashing of flashrom through DTS booted from USB.

Putting in draft until

@tlaurion tlaurion marked this pull request as draft October 8, 2024 14:05
@tlaurion
Copy link
Collaborator Author

tlaurion commented Oct 8, 2024

Damn. IFD extracted from board's ME region doesn't match ME region from backup :/ More work needed

Log https://app.circleci.com/pipelines/github/tlaurion/heads/2880/workflows/ff9dee9b-9e99-4514-afa6-db3a82e60b08/jobs/54332?invite=true#step-106-1831079_85 :
Region Intel ME is 94208(0x17000) bytes. File is 98304(0x18000) bytes. Not injecting.

Smaller ME in 9010?!

…s are not found under blobs/optiplex_9010/

Signed-off-by: Thierry Laurion <[email protected]>
@tlaurion
Copy link
Collaborator Author

tlaurion commented Oct 8, 2024

Notes: my 9010 board is way different then 7010 board pictures under Dasharo docs
EDIT: this is DT variant, not SFF. Same silicon, but PCI IDs will be different.

  • Service jumper easily accessible (red)
  • Soic8 SPI flash chips also easily accessible (green)

Pictures:
signal-2024-10-08-140906
signal-2024-10-08-141307

…used ME, apply through ifdtool

Repro notes:
./build/x86/coreboot-24.02.01/util/ifdtool/ifdtool -n blobs/optiplex_9010/layout.txt blobs/optiplex_9010/ifd.bin -O blobs/optiplex_9010/ifd.bin

Signed-off-by: Thierry Laurion <[email protected]>
@tlaurion
Copy link
Collaborator Author

tlaurion commented Oct 9, 2024

Installing QubesOS on the Optiplex, externally flashed local build rom, booted from detached signed ISO: ok.

…lobs are part of CircleCI cache (cleaning cache prior of push of this commit)

Signed-off-by: Thierry Laurion <[email protected]>
@tlaurion
Copy link
Collaborator Author

tlaurion commented Oct 9, 2024

  • HOTP variants seal HOTP secret on usb security dongle and enforces automatic boot of default entry
  • TPM DUK unseals secret and boots into QubesOS

@tlaurion tlaurion marked this pull request as ready for review October 9, 2024 18:50
@tlaurion tlaurion changed the title WiP: Dell Optiplex 7019/9010 SFF + TXT inclusion based on coreboot master 24.02.01 for now Dell Optiplex 7019/9010 SFF (AND DT) + TXT inclusion based on coreboot master 24.02.01 for now Oct 9, 2024
@tlaurion
Copy link
Collaborator Author

tlaurion commented Oct 9, 2024

@miczyg1 please test internal firmware upgrade and approve this PR upon successful testing

@miczyg1
Copy link
Contributor

miczyg1 commented Oct 10, 2024

Okay, will try to do this ASAP.

@tlaurion tlaurion changed the title Dell Optiplex 7019/9010 SFF (AND DT) + TXT inclusion based on coreboot master 24.02.01 for now Dell Optiplex 7019/9010 SFF (and DT form factor) + TXT inclusion based on coreboot master 24.02.01 for now Oct 10, 2024
@miczyg1
Copy link
Contributor

miczyg1 commented Oct 11, 2024

@miczyg1 please test internal firmware upgrade and approve this PR upon successful testing

Heads firmware update using the ZIP from Circle CI (commit d3d4247) worked like a charm.

@tlaurion
Copy link
Collaborator Author

Well, archive.org has hiccups after being hacked...

@miczyg1
Copy link
Contributor

miczyg1 commented Oct 14, 2024

@tlaurion I am unable to resolve conversations on my own here. Please feel free to resolve the comments

…s down boot outside of debugging use case)

Signed-off-by: Thierry Laurion <[email protected]>
@tlaurion
Copy link
Collaborator Author

tlaurion commented Oct 14, 2024

@tlaurion I am unable to resolve conversations on my own here. Please feel free to resolve the comments

Seems like https://github.com/linuxboot/heads/compare/c5bbbe38fa8f6d4e5e92f7199dda7191245815a7..2424067203617b23f10ed48b65b8dea037e7b58b should be preferred. Commented in previous discussions. Please thumb up there and I will resolve associated comment threads.

@tlaurion tlaurion merged commit fc055b9 into linuxboot:master Oct 15, 2024
50 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Port Optiplex 7010/9010 based on upsream coreboot
2 participants