Fixes to enable bootc #11

Open
kfox1111 wants to merge 2 commits from kfox1111/raspberrypi2:a9-bootc into a9
First-time contributor

Signed-off-by: Kevin Fox Kevin.Fox@pnnl.gov

Signed-off-by: Kevin Fox <Kevin.Fox@pnnl.gov>
eabdullin requested review from alukoshko 2024-10-16 09:32:42 +00:00
alukoshko approved these changes 2024-10-22 20:30:52 +00:00
metalefty requested changes 2024-10-23 02:55:54 +00:00
metalefty left a comment
Contributor

Let's merge when bootc image creation process is ready. Not now.

Let's merge when bootc image creation process is ready. Not now.
metalefty reviewed 2024-11-14 08:52:30 +00:00
@ -360,0 +369,4 @@
mv /usr/lib/ostree-boot/config-kernel-%{version}-%{release}.inc /usr/lib/modules/%{version}-%{release}
mv /usr/lib/ostree-boot/initramfs-%{version}-%{release}.img /usr/lib/modules/%{version}-%{release}/initramfs
mv /usr/lib/ostree-boot/kernel-%{version}-%{release}.img /usr/lib/modules/%{version}-%{release}/vmlinuz
ls /usr/lib/modules/%{version}-%{release}
Contributor

I'm afraid this doesn't work as intended. The almalinux-bootc image has /boot directory so it will never reach elif [ -d /usr/lib/ostree-boot ]; then block.

$ podman run --rm -it quay.io/almalinuxorg/almalinux-bootc ls -l /
total 36
lrwxrwxrwx.   2 root root    7 Jan  1  1970 bin -> usr/bin
drwxr-xr-x.   2 root root 4096 Jan  1  1970 boot
drwxr-xr-x.   5 root root  360 Nov 14 08:51 dev
drwxr-xr-x.   1 root root 4096 Nov 12 03:18 etc
lrwxrwxrwx.   2 root root    8 Jan  1  1970 home -> var/home
lrwxrwxrwx.   2 root root    7 Jan  1  1970 lib -> usr/lib
lrwxrwxrwx.   2 root root    9 Jan  1  1970 lib64 -> usr/lib64
lrwxrwxrwx.   2 root root    9 Jan  1  1970 media -> run/media
lrwxrwxrwx.   2 root root    7 Jan  1  1970 mnt -> var/mnt
drwxr-xr-x.   2 root root 4096 Jan  1  1970 opt
lrwxrwxrwx.   2 root root   14 Jan  1  1970 ostree -> sysroot/ostree
dr-xr-xr-x. 209 root root    0 Nov 14 08:51 proc
lrwxrwxrwx.   2 root root   12 Jan  1  1970 root -> var/roothome
drwxr-xr-x.   1 root root 4096 Nov 14 08:51 run
lrwxrwxrwx.   2 root root    8 Jan  1  1970 sbin -> usr/sbin
lrwxrwxrwx.   2 root root    7 Jan  1  1970 srv -> var/srv
dr-xr-xr-x.  12 root root    0 Oct 17 00:00 sys
drwxr-xr-x.   1 root root 4096 Jan  1  1970 sysroot
drwxrwxrwt.   2 root root 4096 Jan  1  1970 tmp
drwxr-xr-x.   1 root root 4096 Nov 14 00:47 usr
drwxr-xr-x.   3 root root 4096 Jan  1  1970 var
I'm afraid this doesn't work as intended. The `almalinux-bootc` image has `/boot` directory so it will never reach `elif [ -d /usr/lib/ostree-boot ]; then` block. ``` $ podman run --rm -it quay.io/almalinuxorg/almalinux-bootc ls -l / total 36 lrwxrwxrwx. 2 root root 7 Jan 1 1970 bin -> usr/bin drwxr-xr-x. 2 root root 4096 Jan 1 1970 boot drwxr-xr-x. 5 root root 360 Nov 14 08:51 dev drwxr-xr-x. 1 root root 4096 Nov 12 03:18 etc lrwxrwxrwx. 2 root root 8 Jan 1 1970 home -> var/home lrwxrwxrwx. 2 root root 7 Jan 1 1970 lib -> usr/lib lrwxrwxrwx. 2 root root 9 Jan 1 1970 lib64 -> usr/lib64 lrwxrwxrwx. 2 root root 9 Jan 1 1970 media -> run/media lrwxrwxrwx. 2 root root 7 Jan 1 1970 mnt -> var/mnt drwxr-xr-x. 2 root root 4096 Jan 1 1970 opt lrwxrwxrwx. 2 root root 14 Jan 1 1970 ostree -> sysroot/ostree dr-xr-xr-x. 209 root root 0 Nov 14 08:51 proc lrwxrwxrwx. 2 root root 12 Jan 1 1970 root -> var/roothome drwxr-xr-x. 1 root root 4096 Nov 14 08:51 run lrwxrwxrwx. 2 root root 8 Jan 1 1970 sbin -> usr/sbin lrwxrwxrwx. 2 root root 7 Jan 1 1970 srv -> var/srv dr-xr-xr-x. 12 root root 0 Oct 17 00:00 sys drwxr-xr-x. 1 root root 4096 Jan 1 1970 sysroot drwxrwxrwt. 2 root root 4096 Jan 1 1970 tmp drwxr-xr-x. 1 root root 4096 Nov 14 00:47 usr drwxr-xr-x. 3 root root 4096 Jan 1 1970 var ```
Contributor

Also, /boot always exists because the directory is created during install stage.

%install
%if %{with_up}
# kernel
mkdir -p %{buildroot}/boot/overlays/
Also, `/boot` always exists because the directory is created during install stage. ``` %install %if %{with_up} # kernel mkdir -p %{buildroot}/boot/overlays/ ```
Author
First-time contributor

Actually, it did work when I created the pr. somehow it diverted the files from /boot away. by the time the script ran there wasnt a /boot. But, I'll rearrange it to check for bootc and go down that path if its there.

Actually, it did work when I created the pr. somehow it diverted the files from /boot away. by the time the script ran there wasnt a /boot. But, I'll rearrange it to check for bootc and go down that path if its there.
Author
First-time contributor

I was able to build a 9.5 based image from this flipped around patch.

I was able to build a 9.5 based image from this flipped around patch.
Author
First-time contributor

Ah, ok. So, maybe we trigger the other way around then? if -d /usr/lib/ostree-boot, do that first, otherwise, fall back.

Ah, ok. So, maybe we trigger the other way around then? if -d /usr/lib/ostree-boot, do that first, otherwise, fall back.
kfox1111 force-pushed a9-bootc from 53d21a7b93 to ab62994e26 2024-11-21 02:41:08 +00:00 Compare
kfox1111 added 1 commit 2024-11-21 02:44:25 +00:00
Signed-off-by: Kevin Fox <Kevin.Fox@pnnl.gov>
metalefty reviewed 2024-11-22 04:24:58 +00:00
@ -359,2 +357,2 @@
# if we have moved to initramfs
cp /boot/kernel-%{version}-%{release}.img /boot/kernel%{armtarget}.img
if [ -d /usr/lib/ostree-boot ]; then
mv /usr/lib/ostree-boot/config-%{version}-%{release} /usr/lib/modules/%{version}-%{release}
Contributor

I don't think this will work. There's nothing to mv at the time. You must put /usr/lib/ostree-boot/kernel-%{version}-%{release}.img before moving them to /usr/lib/modules.

I don't think this will work. There's nothing to `mv` at the time. You must put `/usr/lib/ostree-boot/kernel-%{version}-%{release}.img` before moving them to `/usr/lib/modules`.
Contributor

Please check the status of the plain almalinux-bootc container. We're trying to install the kernel for RPi to the bootc container, right?

$ podman run --rm -it quay.io/almalinuxorg/almalinux-bootc /bin/bash
bash-5.1# find /boot
/boot
bash-5.1# find /usr/lib/ostree-boot
/usr/lib/ostree-boot
/usr/lib/ostree-boot/efi
Please check the status of the plain `almalinux-bootc` container. We're trying to install the kernel for RPi to the bootc container, right? ``` $ podman run --rm -it quay.io/almalinuxorg/almalinux-bootc /bin/bash bash-5.1# find /boot /boot bash-5.1# find /usr/lib/ostree-boot /usr/lib/ostree-boot /usr/lib/ostree-boot/efi ```
Author
First-time contributor

It does work.... I'm running this kernel from this spec. I dont know what kind of games they played with installation as I did not expect it to work either, but they do something between when they extract the files to disk, and when the rpm scripts run that moves files around. By the time the script runs the files are where the scriplet expects.

It does work.... I'm running this kernel from this spec. I dont know what kind of games they played with installation as I did not expect it to work either, but they do something between when they extract the files to disk, and when the rpm scripts run that moves files around. By the time the script runs the files are where the scriplet expects.
Author
First-time contributor

We can't extend the existing container with the new kernel. That would end up shipping two kernels due to the way container images layer. We have to build a new image with the kernel switched out in the config of the base image.

We can't extend the existing container with the new kernel. That would end up shipping two kernels due to the way container images layer. We have to build a new image with the kernel switched out in the config of the base image.
Contributor

It didn't work.

Is this ok [y/N]: y
Downloading Packages:
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                                                                             1/1
  Installing       : raspberrypi2-kernel4-6.6.51-20241008.v8.1.el9.aarch64                                                       1/1
  Running scriptlet: raspberrypi2-kernel4-6.6.51-20241008.v8.1.el9.aarch64                                                       1/1
mv: cannot stat '/usr/lib/ostree-boot/config-6.6.51-20241008.v8.1.el9': No such file or directory
mv: cannot stat '/usr/lib/ostree-boot/config-kernel-6.6.51-20241008.v8.1.el9.inc': No such file or directory
mv: cannot stat '/usr/lib/ostree-boot/initramfs-6.6.51-20241008.v8.1.el9.img': No such file or directory
mv: cannot stat '/usr/lib/ostree-boot/kernel-6.6.51-20241008.v8.1.el9.img': No such file or directory
build
kernel
modules.alias
modules.alias.bin
modules.builtin
modules.builtin.alias.bin
modules.builtin.bin
modules.builtin.modinfo
modules.dep
modules.dep.bin
modules.devname
modules.order
modules.softdep
modules.symbols
modules.symbols.bin
source

  Verifying        : raspberrypi2-kernel4-6.6.51-20241008.v8.1.el9.aarch64                                                       1/1
Installed products updated.
It didn't work. ``` Is this ok [y/N]: y Downloading Packages: Running transaction check Transaction check succeeded. Running transaction test Transaction test succeeded. Running transaction Preparing : 1/1 Installing : raspberrypi2-kernel4-6.6.51-20241008.v8.1.el9.aarch64 1/1 Running scriptlet: raspberrypi2-kernel4-6.6.51-20241008.v8.1.el9.aarch64 1/1 mv: cannot stat '/usr/lib/ostree-boot/config-6.6.51-20241008.v8.1.el9': No such file or directory mv: cannot stat '/usr/lib/ostree-boot/config-kernel-6.6.51-20241008.v8.1.el9.inc': No such file or directory mv: cannot stat '/usr/lib/ostree-boot/initramfs-6.6.51-20241008.v8.1.el9.img': No such file or directory mv: cannot stat '/usr/lib/ostree-boot/kernel-6.6.51-20241008.v8.1.el9.img': No such file or directory build kernel modules.alias modules.alias.bin modules.builtin modules.builtin.alias.bin modules.builtin.bin modules.builtin.modinfo modules.dep modules.dep.bin modules.devname modules.order modules.softdep modules.symbols modules.symbols.bin source Verifying : raspberrypi2-kernel4-6.6.51-20241008.v8.1.el9.aarch64 1/1 Installed products updated. ```
Author
First-time contributor

How did you install it. Did you try from the bootc tarball I sent?

How did you install it. Did you try from the bootc tarball I sent?
This pull request can be merged automatically.
You are not authorized to merge this pull request.

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u a9-bootc:kfox1111-a9-bootc
git checkout kfox1111-a9-bootc
Sign in to join this conversation.
No reviewers
No Label
No Milestone
No Assignees
3 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: rpms/raspberrypi2#11
No description provided.