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

uki: drop INITRAMFS_IMAGE support #559

Closed
wants to merge 1 commit into from

Conversation

lumag
Copy link
Collaborator

@lumag lumag commented Dec 7, 2023

Enabling INITRAMFS_IMAGE and UKI results in the dependency loop. Initramfs depends on the kernel to be packaged, while the kernel's do_install gets dependency on the initramfs do_image_complete task.

Drop the whole INITRAMFS_IMAGE support from the uki.bbclass. One should use systemd-boot's initrd support natively.

Enabling INITRAMFS_IMAGE and UKI results in the dependency loop.
Initramfs depends on the kernel to be packaged, while the kernel's
do_install gets dependency on the initramfs do_image_complete task.

Drop the whole INITRAMFS_IMAGE support from the uki.bbclass. One should
use systemd-boot's initrd support natively.

Signed-off-by: Dmitry Baryshkov <[email protected]>
@lumag
Copy link
Collaborator Author

lumag commented Dec 7, 2023

cc @sbanerjee-quic

@sbanerjee-quic
Copy link
Contributor

cc @sbanerjee-quic

@lumag we will review and feedback. We have a long weekend.

cc @quic-vkraleti

@quic-vkraleti
Copy link
Contributor

As I understand, systemd-boot's initrd is valid only for Type1. For Type2, initrd is expected to be part of UKI only. Anyways I'll cross check with UEFI engineer and confirm if it is acceptable to have nitrd outside of UKI even for Type#2.

@lumag
Copy link
Collaborator Author

lumag commented Dec 11, 2023

@quic-vkraleti I'm not sure, what is Type1 / Type2 here. A reference would be a appreciated. Anyway, currently built-in initrd support is broken, try building such config on your own.

@quic-vkraleti
Copy link
Contributor

quic-vkraleti commented Dec 13, 2023

@quic-vkraleti I'm not sure, what is Type1 / Type2 here. A reference would be a appreciated. Anyway, currently built-in initrd support is broken, try building such config on your own.

https://uapi-group.org/specifications/specs/boot_loader_specification/#the-boot-loader-specification describes details about Type#1 & Type#2 specifications. Goal is to support Type#2 and this mandates initrd to be part of UKI.

Regd broken built-in initrd support, can you share more details on how to reproduce? As I see even kernel.bblcass is fetching initrd from INITRAMFS_DEPLOY_DIR_IMAGE, which is a soft assignment to DEPLOY_DIR_IMAGE. uki.bbclass is also using the same to get initrd.

@lumag
Copy link
Collaborator Author

lumag commented Dec 13, 2023

For me it was simple, I enabled INITRAMFS_IMAGE = "initramfs-test-image" and got a errors regarding the task dependency loop.

@quic-vkraleti
Copy link
Contributor

For me it was simple, I enabled INITRAMFS_IMAGE = "initramfs-test-image" and got a errors regarding the task dependency loop.

From build POV, ramdisk image is also another image which by default it pulls in a dependency on do_packagedata task of kernel. Here uki.bbclass is trying to create kernel-uki package, that need ramdisk image to complete. This is the cause for circular dependency. To address this, need to stop creating kernel-uki package and place efi image in deploydir instead.

@lumag
Copy link
Collaborator Author

lumag commented Jan 18, 2024

Closed in favour of #562 which provides a better, more complex solution

@lumag lumag closed this Jan 18, 2024
@lumag lumag deleted the fix-uki-initrd branch January 18, 2024 23:28
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