I used APM Mustang which flash-kernel supported in u-boot mode.
But I used it with UEFI environment.
It will cause fatal error when I used ARM64 ubuntu live server ISO to install system.
In code[1], this will not install `flash-kernel` for APM Mustang because of UEFI.
So that means code[2] will not disable `flash-kernel` in target system, only disable `update-initramfs`.
When curtin execute to `install_kernel` stage, code[3,4] will not install `flash-kernel` either.
But in code[5], it will install `linux-generic`.
`linux-generic` has a long dependency tree and it will get `flash-kernel` in Recommended field.
Apt by default will install Recommended package before kernel is installed.[6]
So it will still execute `zz-flash-kernel` and `flash-kernel` when installing kernel.
But system didn't create any `initrd.img` ever because curtin disable `update-initramfs` in code[2].
This will cause that `flash-kernel` cannot find `initrd.img.<kvers>` and fail when installing it.
This issue didn't effect all ARM64 UEFI platform because `flash-kernel` didn't support them and skip.[7]
I'm not sure which is best solution for this.
But I think we should apply PR-27 in `flash-kernel`[8] for enhancement and fix curtin process with this patch both.
If we only apply PR-27, it should work fine as well because it will be skipped when detecting UEFI
and install `flash-kernel` before `disable_update_initranfs` in ARM platform without UEFI.[9]
[Patch-1,2,3] might have side effect.
Picking one patch for curtin should be enough.
But I need your advice for this to determine which one is better for curtin.
There are two categories
1. avoid installing flash-kernel if no need, [Patch1,2]
2. always install flash-kernel in arm/arm64 and make sure it be installed before code[2] [Patch3]
(I will attach patch in reply.)
I used APM Mustang which flash-kernel supported in u-boot mode.
But I used it with UEFI environment.
It will cause fatal error when I used ARM64 ubuntu live server ISO to install system.
In code[1], this will not install `flash-kernel` for APM Mustang because of UEFI.
So that means code[2] will not disable `flash-kernel` in target system, only disable `update-initramfs`.
When curtin execute to `install_kernel` stage, code[3,4] will not install `flash-kernel` either. img.<kvers> ` and fail when installing it.
But in code[5], it will install `linux-generic`.
`linux-generic` has a long dependency tree and it will get `flash-kernel` in Recommended field.
Apt by default will install Recommended package before kernel is installed.[6]
So it will still execute `zz-flash-kernel` and `flash-kernel` when installing kernel.
But system didn't create any `initrd.img` ever because curtin disable `update-initramfs` in code[2].
This will cause that `flash-kernel` cannot find `initrd.
This issue didn't effect all ARM64 UEFI platform because `flash-kernel` didn't support them and skip.[7]
I'm not sure which is best solution for this.
But I think we should apply PR-27 in `flash-kernel`[8] for enhancement and fix curtin process with this patch both.
If we only apply PR-27, it should work fine as well because it will be skipped when detecting UEFI update_ initranfs` in ARM platform without UEFI.[9]
and install `flash-kernel` before `disable_
[Patch-1,2,3] might have side effect.
Picking one patch for curtin should be enough.
But I need your advice for this to determine which one is better for curtin.
There are two categories
1. avoid installing flash-kernel if no need, [Patch1,2]
2. always install flash-kernel in arm/arm64 and make sure it be installed before code[2] [Patch3]
(I will attach patch in reply.)
Thanks a lot
Regards,
Date
[1] https:/ /github. com/canonical/ curtin/ blob/master/ curtin/ deps/__ init__. py#L57- L58 /github. com/canonical/ curtin/ blob/master/ curtin/ commands/ curthooks. py#L1693- L1699 /github. com/canonical/ curtin/ blob/master/ curtin/ commands/ curthooks. py#L365- L370 /github. com/canonical/ curtin/ blob/master/ curtin/ commands/ curthooks. py#L311- L327 /github. com/canonical/ curtin/ blob/master/ curtin/ commands/ curthooks. py#L372- L374 /github. com/Debian/ apt/blob/ master/ apt-pkg/ init.cc# L132 /salsa. debian. org/installer- team/flash- kernel/ -/blob/ master/ functions# L787 /salsa. debian. org/installer- team/flash- kernel/ -/merge_ requests/ 27 EXECUTABLES` when system is arm/arm64 without UEFI.
[2] https:/
[3] https:/
[4] https:/
[5] https:/
[6] https:/
[7] https:/
[8] https:/
[9] curtin will insert `flash-kernel` into `REQUIRED_