-
Notifications
You must be signed in to change notification settings - Fork 82
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
s390x enablement tracker #569
Comments
@cgwalters thank you very much for creating this tracker. So far, I have identified the following issues.
I am currently working on the last issue. |
Yep, I filed osbuild/bootc-image-builder#460 as that code is in a distinct project. |
Right. A lot of useful code in https://github.com/coreos/coreos-installer/blob/main/src/s390x/zipl.rs that I think we can just copy into this project. |
Also https://gitlab.com/fedora/bootc/tracker/-/issues/15 is related to this |
After updating the base image to include bootupd on s390x, I got the following error.
The error occurs during executing Line 1184 in f152bfe
using the ostree library.https://github.com/ostreedev/ostree/blob/ac6ba4392285d4f30a937fddf2963b879fe129bd/src/libostree/ostree-bootloader-zipl.c#L477-L478 I guess we need to generate a proper @cgwalters do we need to generate
Line 1194 in f152bfe
It looks like bootupd does no-op for s390x. coreos/bootupd#556 I also think we need a zipl_helper script for loop device like this. |
I further read the source code, and I think that |
We need to match some of the logic there. Now zipl is somewhat special so far in the ostree/bootc architecture because it basically always acts like a UKI, rolling the bootloader,kernel,initrd together and hence crosses the domain of bootupd and bootc. Going a bit forward I'd like to merge bootupd into this project coreos/bootupd#432 which would help a bit in making coordinated changes. |
@cgwalters thank you for the information. I managed to create a QCOW2 disk using bootc. To work around the issues I reported above, I need to prepare a wrapper script for zipl, and update Next, I will investigate what changes are necessary in the bootc and bootupd source code to support zipl. |
This is also related to ostreedev/ostree#3104 perhaps? This is quite a complex thing going on as osbuild (as used by bootc-image-builder) is also doing its own container stuff, then we have podman, and we also have bubblewrap involved here.
Can you post that script? Also, did you try a direct |
@cgwalters sorry for the late reply. I was on vacation. My script is this one. I directly put this script in the centos bootc base image, and replaced with the original zipl binary in it. This script bind-mounts A helper script is called for disk device types that are not natively supported by zipl. In the case of osbuild installation, the target disk type is This work around needs to update the centos bootc base image, so I don't think it is an appropriate solution for permanent fix, but I just confirmed that QCOW2 image generated with this workaroud, so I now believe there is not other blockers for s390x.
If target_deployment is set and
I have only tried |
Ahhh of course. This is the big difference between what we were doing in coreos-assembler using qemu (providing a native dasd disk to the build) vs what bib (and bootc can do) with loopback. Hmm...that said, it looks like osbuild's zipl stage isn't doing anything too special here?
I think that may be one of the bugs here. |
The osbuild's zipl stage explicitly set parameters So, is it an option to use the osbuild's zipl stage instead of ostree by generating a s390x-specific manifest by Regarding bootc/lib/src/install/baseline.rs Line 234 in 01f8d76
Then, I got the following error. I guess the cause of the error is that BLS configs under
In the case of As you mentioned earlier, if bootupd code is integrated into bootc, we can directly add zipl support in bootc. I think this is a best option, but it will take some time? |
OK. Of those...do you understand where
We have a logistical problem in that so far, osbuild is something designed for build-time only; we don't ship it onto the end system. IOW it doesn't exist by default in a bootc container. That doesn't mean it can't, but it would be a big change to add it. There's a larger picture problem around code sharing between osbuild, anaconda, bootc (and for that matter, a wide array of other tools in this space, some distro specific, others more generic like Kiwi etc.) Looking at that osbuild stage, in the end it's just parsing some bootloader configs and invoking zipl mostly, and we already have all that code here too, right?
Can you send a patch for that? Even if it's not all complete, nothing stops us from merging it now.
Hmm, yes. There's a whole lot of namespacing and mounts going on here. It's just complex since zipl so far is the only case where we need to run code to update the bootloader.
I don't think we need to block on merging bootupd; it would help a bit, but it's not the core problem here. |
According to this page,
Currently, I specify the whole disk (/dev/loop0) to
So, I think we may need to copy the code that searchs BLS info from https://github.com/coreos/coreos-installer/blob/main/src/s390x/zipl.rs to identify kernel and ramdisk paths.
Sure. I currently did quick dirty hacks to suppress errors on s390x. I'll prepare a cleaner patch to fix the errors. |
I managed to run https://gist.github.com/yoheiueda/c328ca7eccf313dd03292aeca71fbd02 |
I raised a PR for this issue. #623 |
@cgwalters I raised an PR to run |
@cgwalters I created an PR to enable s390x. #705 |
Great! So...I think we can keep osbuild/bootc-image-builder#460 open to track the bib work. The remaining bits I think are probably just to turn on ppc64le/s390x on the builds of quay.io/centos-bootc/bootc-image-builder which should likely be tracked there too. OK to close this one? |
Yes. It is OK to close this one. Thank you very much for your support! I'll submit a PR to bootc-image-builder soon. |
efi: Only try to update firmware if booted via EFI
Move /var content to /usr/share/factory/var
I think right now this is probably just porting some code from e.g. https://github.com/coreos/coreos-installer around setting up partitions etc. to enable
install to-disk
.What also clearly needs to happen here is fixes for https://github.com/osbuild/bootc-image-builder
(Which also leads into the overlap with Anaconda problem)
The text was updated successfully, but these errors were encountered: