Linus Torvalds Addresses His Latest ARM64 Annoyance: Installing Compressed Kernel Images
Following Linus Torvalds receiving an Ampere Altra Max workstation from Ampere Computing, he's been dabbling more with ARM64 now that it affords him more AArch64 compute power than his Apple Silicon powered MacBook. Torvalds kicked off the Linux 6.11 merge window by landing some of his own code to further enhance the ARM64 kernel and as we approach the end of the v6.11 merge window this weekend, he's merged some more ARM64 code.
Linus Torvalds landed another ARM64 change for Linux 6.11 as a result of his personal dealing with more ARM64 activity on his Ampere Altra Max system. His latest itch to scratch has been over ARM64 Linux kernel builds not installing compressed kernel images on the "make install" command. Other architectures when running "make install" on the Linux kernel will opt for the compressed kernel image if built, but not for ARM64. Due to the mixed state of ARM bootloaders and not having a built-in decompressor otherwise, on ARM64 when installing the Linux kernel you need to specifically run "make zinstall" to install the compressed kernel image.
Due to kernel developers like Torvalds and other dealing routinely with multiple CPU architectures, having to remember that "make zinstall" can be a nuisance.
ARM64 maintainer Will Deacon doesn't believe it's wise changing the default behavior of "make install" on ARM64, so as an alternative approach Linus Torvalds added a new "COMPRESSED_INSTALL" ARM64 Kconfig option. When this option is enabled, the compressed image will be installed by default with "make install".
So those comfortable and knowing that their system/bootloader can handle compressed ARM64 kernel images can enable the CONFIG_COMPRESSED_INSTALL option so they can go ahead and rely on "make install" without having to remember doing "zinstall".
Torvalds wrote in the patch that he just merged to Linux 6.11 Git:
Linus Torvalds is on a nice spree of some usability improvements for the ARM64 Linux kernel. Look for COMPRESSED_INSTALL in Linux 6.11 ARM64 kernel options.
Linus Torvalds landed another ARM64 change for Linux 6.11 as a result of his personal dealing with more ARM64 activity on his Ampere Altra Max system. His latest itch to scratch has been over ARM64 Linux kernel builds not installing compressed kernel images on the "make install" command. Other architectures when running "make install" on the Linux kernel will opt for the compressed kernel image if built, but not for ARM64. Due to the mixed state of ARM bootloaders and not having a built-in decompressor otherwise, on ARM64 when installing the Linux kernel you need to specifically run "make zinstall" to install the compressed kernel image.
Due to kernel developers like Torvalds and other dealing routinely with multiple CPU architectures, having to remember that "make zinstall" can be a nuisance.
ARM64 maintainer Will Deacon doesn't believe it's wise changing the default behavior of "make install" on ARM64, so as an alternative approach Linus Torvalds added a new "COMPRESSED_INSTALL" ARM64 Kconfig option. When this option is enabled, the compressed image will be installed by default with "make install".
So those comfortable and knowing that their system/bootloader can handle compressed ARM64 kernel images can enable the CONFIG_COMPRESSED_INSTALL option so they can go ahead and rely on "make install" without having to remember doing "zinstall".
Torvalds wrote in the patch that he just merged to Linux 6.11 Git:
On arm64 we build compressed images, but "make install" by default will install the old non-compressed one. To actually get the compressed image install, you need to use "make zinstall", which is not the usual way to install a kernel.
Which may not sound like much of an issue, but when you deal with multiple architectures (and years of your fingers knowing the regular "make install" incantation), this inconsistency is pretty annoying.
But as Will Deacon says:
"Sadly, bootloaders being as top quality as you might expect, I don't think we're in a position to rely on decompressor support across the board. Our Image.gz is literally just that -- we don't have a built-in decompressor (nor do I think we want to rush into that again after the fun we had on arm32) and the recent EFI zboot support solves that problem for platforms using EFI.
Changing the default 'install' target terrifies me. There are bound to be folks with embedded boards who've scripted this and we could really ruin their day if we quietly give them a compressed kernel that their bootloader doesn't know how to handle :/"
So make this conditional on a new "COMPRESSED_INSTALL" option.
Linus Torvalds is on a nice spree of some usability improvements for the ARM64 Linux kernel. Look for COMPRESSED_INSTALL in Linux 6.11 ARM64 kernel options.
94 Comments