Comment 4 for bug 1918427

Revision history for this message
Date Huang (tjjh89017) wrote :

here is the reason why ARM64 U-boot isn't effected by this issue, and why APM Mustang with UEFI will be effected.
I'm not sure MAAS install this kind of machine will start from cloud-img with existing kernel and initrd.img or not.

Here is the curtin process in installation ISO right now.
1. Determine U-boot/UEFI in arm/arm64 environment.
1.a. If need, install flash-kernel in this stage.
2. Omit something
3. Disable `update-initramfs`.
3.a. This will also disable flash-kernel in /target with ARM64
4. Omit something
5. Install kernel
5.a. this will install kernel with recommended package
5.b. in arm64, this will install flash-kernel

So in arm64 UEFI,
1. Determine U-boot/UEFI in arm/arm64 environment.
1.a. Install flash-kernel because system is under U-boot [correct]
2. Omit something
3. Disable `update-initramfs`.
3.a. Disable flash-kernel because moonshot is under U-boot [correct]
4. Omit something
5. Install kernel
5.a. this will install kernel with recommended package
5.b. in arm64, this will install flash-kernel
5.c. System already installed flash-kernel and disable it in previous stage, so this system will not be effected by this issue. [correct]

In APM Mustang with UEFI,
1. Determine U-boot/UEFI in arm/arm64 environment.
1.a. Will not install flash-kernel because mustang is under UEFI [correct]
2. Omit something
3. Disable `update-initramfs`.
3.a. Will not disable flash-kernel because mustang is under UEFI and flash-kernel isn't installed. [correct]
4. Omit something
5. Install kernel
5.a. this will install kernel with recommended package
5.b. in arm64, this will install flash-kernel [Unexpected]
5.c. System will install flash-kernel. and flash-kernel isn't disabled in previous stage. APM mustang is in flash-kernel supported list. FATAL error here. [Unexpected, fatal]

In Other ARM64 UEFI platform,
1. Determine U-boot/UEFI in arm/arm64 environment.
1.a. Will not install flash-kernel because system is under UEFI [correct]
2. Omit something
3. Disable `update-initramfs`.
3.a. Will not disable flash-kernel because system is under UEFI and flash-kernel isn't installed. [correct]
4. Omit something
5. Install kernel
5.a. this will install kernel with recommended package
5.b. in arm64, this will install flash-kernel [Unexpected]
5.c. System will install flash-kernel. and flash-kernel isn't disabled in previous stage. But flash-kernel will skip because those platforms aren't in supported list. So NO FATAL error here. [Unexpected, no fatal]

Because of these, dpkg-divert doesn't always work as expected.
This bug might occurs again when someone add new platform into flash-kernel and that platform support UEFI and U-Boot both in the future.

By the way, I patch curtin during starting installation ISO with Patch-1, it will never install flash-kernel and install system as expected.