Commit 4c7be57f authored by Linus Torvalds's avatar Linus Torvalds

arm64: allow installing compressed image by default

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.

Cc: Catalin Marinas <catalin.marinas@arm.com>
Acked-by: default avatarWill Deacon <will@kernel.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 51c47675
...@@ -2337,6 +2337,17 @@ config EFI ...@@ -2337,6 +2337,17 @@ config EFI
allow the kernel to be booted as an EFI application. This allow the kernel to be booted as an EFI application. This
is only useful on systems that have UEFI firmware. is only useful on systems that have UEFI firmware.
config COMPRESSED_INSTALL
bool "Install compressed image by default"
help
This makes the regular "make install" install the compressed
image we built, not the legacy uncompressed one.
You can check that a compressed image works for you by doing
"make zinstall" first, and verifying that everything is fine
in your environment before making "make install" do this for
you.
config DMI config DMI
bool "Enable support for SMBIOS (DMI) tables" bool "Enable support for SMBIOS (DMI) tables"
depends on EFI depends on EFI
......
...@@ -182,7 +182,13 @@ $(BOOT_TARGETS): vmlinux ...@@ -182,7 +182,13 @@ $(BOOT_TARGETS): vmlinux
Image.%: Image Image.%: Image
$(Q)$(MAKE) $(build)=$(boot) $(boot)/$@ $(Q)$(MAKE) $(build)=$(boot) $(boot)/$@
install: KBUILD_IMAGE := $(boot)/Image ifeq ($(CONFIG_COMPRESSED_INSTALL),y)
DEFAULT_KBUILD_IMAGE = $(KBUILD_IMAGE)
else
DEFAULT_KBUILD_IMAGE = $(boot)/Image
endif
install: KBUILD_IMAGE := $(DEFAULT_KBUILD_IMAGE)
install zinstall: install zinstall:
$(call cmd,install) $(call cmd,install)
...@@ -229,7 +235,7 @@ define archhelp ...@@ -229,7 +235,7 @@ define archhelp
echo '* Image.gz - Compressed kernel image (arch/$(ARCH)/boot/Image.gz)' echo '* Image.gz - Compressed kernel image (arch/$(ARCH)/boot/Image.gz)'
echo ' Image - Uncompressed kernel image (arch/$(ARCH)/boot/Image)' echo ' Image - Uncompressed kernel image (arch/$(ARCH)/boot/Image)'
echo ' image.fit - Flat Image Tree (arch/$(ARCH)/boot/image.fit)' echo ' image.fit - Flat Image Tree (arch/$(ARCH)/boot/image.fit)'
echo ' install - Install uncompressed kernel' echo ' install - Install kernel (compressed if COMPRESSED_INSTALL set)'
echo ' zinstall - Install compressed kernel' echo ' zinstall - Install compressed kernel'
echo ' Install using (your) ~/bin/installkernel or' echo ' Install using (your) ~/bin/installkernel or'
echo ' (distribution) /sbin/installkernel or' echo ' (distribution) /sbin/installkernel or'
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment