Skip to content

ci(build-kernel): inject DTB capsule certs and fix build-dep - #112

Open
guanquan (GuanquanTian) wants to merge 2 commits into
qualcomm-linux:mainfrom
GuanquanTian:dtb-capsule-signing
Open

ci(build-kernel): inject DTB capsule certs and fix build-dep#112
guanquan (GuanquanTian) wants to merge 2 commits into
qualcomm-linux:mainfrom
GuanquanTian:dtb-capsule-signing

Conversation

@GuanquanTian

@GuanquanTian guanquan (GuanquanTian) commented Sep 8, 2026

Copy link
Copy Markdown
Contributor

Add DTB capsule certificate injection from GitHub Secrets and fix build-dep resolution order.

  1. Inject DTB capsule certificates from GitHub Secrets

    • Add step to inject FMPCERT, FMPROOT, and FMPSUB certificates into debian.qcom/certs/ during kernel build
    • Enables DTB capsule package generation with proper signing
    • Certificates are securely handled with set +x to prevent exposure in logs
    • File permissions set to 600 for security
  2. Resolve build-dep against local debian/control

    • Move apt-get build-dep call after debian/rules clean generates the real debian/control
    • Ensures qcom-specific Build-Depends (u-boot-tools, device-tree-compiler) are installed
    • Previously resolved against archive's generic "linux" source package, missing qcom-specific dependencies

@GuanquanTian
guanquan (GuanquanTian) force-pushed the dtb-capsule-signing branch 2 times, most recently from afaa933 to 75638f0 Compare September 8, 2026 08:24
Add step to inject FMPCERT, FMPROOT, and FMPSUB certificates from GitHub
Secrets into debian.qcom/certs/ during kernel build. Certificates are
stored as base64-encoded strings in Secrets and decoded during injection.
This enables DTB capsule package generation with proper signing.

Signed-off-by: Guanquan Tian <guanquan@qti.qualcomm.com>
Move apt-get build-dep call after "debian/rules clean" generates the real
debian/control. This ensures qcom-specific Build-Depends (u-boot-tools,
device-tree-compiler) are installed instead of resolving against the
archive's generic "linux" source package.

Signed-off-by: Guanquan Tian <guanquan@qti.qualcomm.com>
@bjordiscollaku

Bjordis Collaku (bjordiscollaku) commented Sep 9, 2026

Copy link
Copy Markdown
Contributor

Thanks for sharing this, this is a pretty extensive mechanism, however noting that is baked into the packaging metadata, not separate / independent. The sole reason of creating this repo was to align completely with canonical packaging, that is, ideally, we DO NOT touch their packaging metadata AT ALL. That's why even for versioning, I implemented a build time mechanism , so that metadata is intact.

If we really need to adapt / implement a capsule update mechanism, it just can not be baked into the metadata, kernel packaging should still remain 100% intact as it came from canonical, and the capsule update might be a dedicated mechanism living separately, generating a dtb product which ON Target, upon kernel update, is fired, and handles the update.

@shoudil

Shoudi Li (shoudil) commented Sep 10, 2026

Copy link
Copy Markdown
Contributor

Thanks for sharing this, this is a pretty extensive mechanism, however noting that is baked into the packaging metadata, not separate / independent. The sole reason of creating this repo was to align completely with canonical packaging, that is, ideally, we DO NOT touch their packaging metadata AT ALL. That's why even for versioning, I implemented a build time mechanism , so that metadata is intact.

If we really need to adapt / implement a capsule update mechanism, it just can not be baked into the metadata, kernel packaging should still remain 100% intact as it came from canonical, and the capsule update might be a dedicated mechanism living separately, generating a dtb product which ON Target, upon kernel update, is fired, and handles the update.

As synced, let's check with canonical firstly and see what comment/input canonical have.

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.

3 participants