Fixes to enable bootc #11

Open
kfox1111 wants to merge 2 commits from kfox1111/raspberrypi2:a9-bootc into a9
3 changed files with 27 additions and 11 deletions

View File

@ -23,7 +23,7 @@ index e87791286ab4..6fda5b261683 100644
CONFIG_CRYPTO_USER=m CONFIG_CRYPTO_USER=m
CONFIG_CRYPTO_CRYPTD=m CONFIG_CRYPTO_CRYPTD=m
CONFIG_CRYPTO_AES=m CONFIG_CRYPTO_AES=m
@@ -1674,3 +1672,39 @@ CONFIG_SCHED_TRACER=y @@ -1674,3 +1672,43 @@ CONFIG_SCHED_TRACER=y
CONFIG_BLK_DEV_IO_TRACE=y CONFIG_BLK_DEV_IO_TRACE=y
# CONFIG_UPROBE_EVENTS is not set # CONFIG_UPROBE_EVENTS is not set
# CONFIG_STRICT_DEVMEM is not set # CONFIG_STRICT_DEVMEM is not set
@ -63,6 +63,10 @@ index e87791286ab4..6fda5b261683 100644
+CONFIG_FW_LOADER_COMPRESS=y +CONFIG_FW_LOADER_COMPRESS=y
+CONFIG_FW_LOADER_COMPRESS_XZ=y +CONFIG_FW_LOADER_COMPRESS_XZ=y
+CONFIG_FW_LOADER_COMPRESS_ZSTD=y +CONFIG_FW_LOADER_COMPRESS_ZSTD=y
+CONFIG_EROFS_FS=m
+CONFIG_EROFS_FS_XATTR=y
+CONFIG_EROFS_POSIX_ACL=y
+CONFIG_EROFS_FS_SECURITY=y
-- --
2.45.1 2.45.1

View File

@ -23,7 +23,7 @@ index 79c4332581eb..7b63683ff687 100644
CONFIG_CRYPTO_USER=m CONFIG_CRYPTO_USER=m
CONFIG_CRYPTO_CRYPTD=m CONFIG_CRYPTO_CRYPTD=m
CONFIG_CRYPTO_AES=m CONFIG_CRYPTO_AES=m
@@ -1677,3 +1675,39 @@ CONFIG_SCHED_TRACER=y @@ -1677,3 +1675,43 @@ CONFIG_SCHED_TRACER=y
CONFIG_BLK_DEV_IO_TRACE=y CONFIG_BLK_DEV_IO_TRACE=y
# CONFIG_UPROBE_EVENTS is not set # CONFIG_UPROBE_EVENTS is not set
# CONFIG_STRICT_DEVMEM is not set # CONFIG_STRICT_DEVMEM is not set
@ -63,6 +63,10 @@ index 79c4332581eb..7b63683ff687 100644
+CONFIG_FW_LOADER_COMPRESS=y +CONFIG_FW_LOADER_COMPRESS=y
+CONFIG_FW_LOADER_COMPRESS_XZ=y +CONFIG_FW_LOADER_COMPRESS_XZ=y
+CONFIG_FW_LOADER_COMPRESS_ZSTD=y +CONFIG_FW_LOADER_COMPRESS_ZSTD=y
+CONFIG_EROFS_FS=m
+CONFIG_EROFS_FS_XATTR=y
+CONFIG_EROFS_POSIX_ACL=y
+CONFIG_EROFS_FS_SECURITY=y
-- --
2.45.1 2.45.1

View File

@ -354,16 +354,24 @@ find %{buildroot}/usr/include \
%posttrans kernel%{?ksuffix} %posttrans kernel%{?ksuffix}
if [ -f /boot/kernel%{armtarget}.img ] || [ ! -f /boot/config-kernel.inc ];then if [ -d /usr/lib/ostree-boot ]; then
# if nothing exists, fall back to generating the file, but don't create it mv /usr/lib/ostree-boot/config-%{version}-%{release} /usr/lib/modules/%{version}-%{release}
Review

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`.
Review

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 ```
Review

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.
Review

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.
Review

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. ```
# if we have moved to initramfs mv /usr/lib/ostree-boot/config-kernel-%{version}-%{release}.inc /usr/lib/modules/%{version}-%{release}
cp /boot/kernel-%{version}-%{release}.img /boot/kernel%{armtarget}.img 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}
elif [ -d /boot ]; then
if [ -f /boot/kernel%{armtarget}.img ] || [ ! -f /boot/config-kernel.inc ];then
# if nothing exists, fall back to generating the file, but don't create it
# if we have moved to initramfs
cp /boot/kernel-%{version}-%{release}.img /boot/kernel%{armtarget}.img
fi
cp /usr/share/%{name}-kernel/%{version}-%{release}/boot/*.dtb /boot/
cp /usr/share/%{name}-kernel/%{version}-%{release}/boot/overlays/*.dtb* /boot/overlays/
cp /usr/share/%{name}-kernel/%{version}-%{release}/boot/overlays/README /boot/overlays/
/usr/bin/dracut /boot/initramfs-%{version}-%{release}.img %{version}-%{release}
cp /boot/config-kernel-%{version}-%{release}.inc /boot/config-kernel.inc
fi fi
cp /usr/share/%{name}-kernel/%{version}-%{release}/boot/*.dtb /boot/
cp /usr/share/%{name}-kernel/%{version}-%{release}/boot/overlays/*.dtb* /boot/overlays/
cp /usr/share/%{name}-kernel/%{version}-%{release}/boot/overlays/README /boot/overlays/
/usr/bin/dracut /boot/initramfs-%{version}-%{release}.img %{version}-%{release}
cp /boot/config-kernel-%{version}-%{release}.inc /boot/config-kernel.inc
%postun kernel%{?ksuffix} %postun kernel%{?ksuffix}
if [ -f /boot/kernel%{armtarget}.img ];then if [ -f /boot/kernel%{armtarget}.img ];then