Secure Boot: sign CachyOS kernel + nvidia modules, auto-enroll via ISO #13
No reviewers
Labels
No labels
bug
dependencies
documentation
duplicate
enhancement
github_actions
good first issue
help wanted
invalid
question
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
monolith-os/monolith!13
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "add-secure-boot"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Makes the GNOME editions Secure Boot capable with a self-managed MOK key, and adds a manual ISO-generation job that auto-enrolls it.
What this does
openssl.cnf+just generate-secureboot-key. Private key (MOK.priv) is build-only (gitignored, lives in theKERNEL_SIGNING_SECRETrepo secret); the public.deris committed and baked into the image.vmlinuz(sign-kernel.sh,sbsign) ingnome-base.yml, so both GNOME editions boot under Secure Boot. Unlike ublue/BlueBuild base images, we swap in the unsigned CachyOS kernel, so shim/GRUB reject it until it's signed by an enrolled key.sign-modules.sh+sign-check.sh, adapted fromblue-build/base-imageswith zstd support) innvidia.yml, with the same key. One enrolled MOK covers the whole boot+driver chain.MOK.privfromKERNEL_SIGNING_SECRET(base64) and mounts it via the recipesecrets;skip_checkoutpreserves it.monolith, so users get the MokManager screen on first boot and just type the password. Aujust enroll-secure-boot-keyfallback covers rebased systems.generate-iso.yml, manual) builds an ISO for a published edition and uploads it as an artifact, passing our cert/password explicitly (not the BlueBuild/UBlue defaults). Uses only public data — no signing key.Required before CI is green
Add the signing key as a repo secret (the build guards on it):
Caveats
--secure-boot-urlresolves only once the.deris onmain.🧪 Test this PR on a real install
Once the build check on this PR passes, a signed test image is published to
ghcr.io/mondrethos/monolith-gnome:pr-13-44. From an existing monolith install (which already has the signing policy), rebase onto it:The tag is rebuilt on every new commit here, so
rpm-ostree upgradepulls the latest build. When you're done testing, return to the released image:The test tag stops updating once this PR is merged or closed.