diff --git a/payloads/external/LinuxBoot/Kconfig b/payloads/external/LinuxBoot/Kconfig index 454b7c5f09..f8a718ff18 100644 --- a/payloads/external/LinuxBoot/Kconfig +++ b/payloads/external/LinuxBoot/Kconfig @@ -57,8 +57,8 @@ config LINUXBOOT_COMPILE_KERNEL config LINUXBOOT_KERNEL_PATH string "Path to kernel" - default "build/uImage" if LINUXBOOT_KERNEL_UIMAGE - default "build/bzImage" if LINUXBOOT_KERNEL_BZIMAGE + default "" + depends on !LINUXBOOT_COMPILE_KERNEL help The kernel path is either and absolute path or relative to the LinuxBoot directory @@ -142,7 +142,7 @@ config LINUXBOOT_BUILD_INITRAMFS config LINUXBOOT_INITRAMFS_PATH string "Path to initramfs" - default "build/initramfs_u-root.cpio" if LINUXBOOT_UROOT + default "payloads/external/LinuxBoot/build/initramfs" if LINUXBOOT_UROOT if LINUXBOOT_BUILD_INITRAMFS @@ -248,7 +248,7 @@ config LINUXBOOT_UROOT_INITCMD config LINUXBOOT_UROOT_SHELL string "default shell" - default "elvish" + default "gosh" help Default shell. Can be an absolute path or a u-root command name. (default "elvish") @@ -264,10 +264,10 @@ if LINUXBOOT_UROOT_MAIN choice prompt "Choose a specific bootloader" - default SPECIFIC_BOOTLOADER_SYSTEMBOOT + default SPECIFIC_BOOTLOADER_BOOT help Specify a bootloader which starts after u-root init. It will be a symlink - to /bin/uinit. Default: systemboot + to /bin/uinit. Default: boot config SPECIFIC_BOOTLOADER_NONE bool "none" @@ -275,21 +275,14 @@ config SPECIFIC_BOOTLOADER_NONE Leave u-root to decide which bootloaders to load first after init, if any at all. Most likely u-root will start into the defined u-root shell. -config SPECIFIC_BOOTLOADER_SYSTEMBOOT - bool "systemboot" - help - If systemboot has been used as a bootloader wrapper in the past, - enable this option. It will invoke -uinitcmd=systemboot and result in - a BIOS/UEFI BDS boot behavior. - -config SPECIFIC_BOOTLOADER_BOOT2 - bool "boot2" +config SPECIFIC_BOOTLOADER_BOOT + bool "boot" config SPECIFIC_BOOTLOADER_PXEBOOT bool "pxeboot" -config SPECIFIC_BOOTLOADER_STBOOT - bool "stboot" +config SPECIFIC_BOOTLOADER_FITBOOT + bool "fitboot" config SPECIFIC_BOOTLOADER_CUSTOM bool "custom" @@ -307,10 +300,9 @@ config SPECIFIC_BOOTLOADER_CUSTOM_CMD config LINUXBOOT_UROOT_UINITCMD string default "" if SPECIFIC_BOOTLOADER_NONE - default "systemboot" if SPECIFIC_BOOTLOADER_SYSTEMBOOT - default "boot2" if SPECIFIC_BOOTLOADER_BOOT2 + default "boot" if SPECIFIC_BOOTLOADER_BOOT default "pxeboot" if SPECIFIC_BOOTLOADER_PXEBOOT - default "stboot" if SPECIFIC_BOOTLOADER_STBOOT + default "fitboot" if SPECIFIC_BOOTLOADER_FITBOOT default SPECIFIC_BOOTLOADER_CUSTOM_CMD if SPECIFIC_BOOTLOADER_CUSTOM endif #LINUXBOOT_UROOT_MAIN @@ -328,6 +320,7 @@ config LINUXBOOT_INITRAMFS_COMPRESSION_NONE config LINUXBOOT_INITRAMFS_COMPRESSION_XZ bool "xz compression" + depends on LINUXBOOT_BUILD_INITRAMFS endchoice diff --git a/payloads/external/LinuxBoot/Makefile b/payloads/external/LinuxBoot/Makefile index fc2c818983..83b8d6e0ea 100644 --- a/payloads/external/LinuxBoot/Makefile +++ b/payloads/external/LinuxBoot/Makefile @@ -10,10 +10,6 @@ LINUX_ARCH-$(CONFIG_LINUXBOOT_ARM64) = arm64 LINUX_ARCH-$(CONFIG_LINUXBOOT_RISCV_RV32) = riscv LINUX_ARCH-$(CONFIG_LINUXBOOT_RISCV_RV64) = riscv -build/Image: $(CONFIG_LINUXBOOT_KERNEL_PATH) | build - ln -s -r $< $@ - - ifeq ($(CONFIG_LINUXBOOT_COMPILE_KERNEL),y) include targets/linux.mk endif @@ -21,30 +17,32 @@ ifeq ($(CONFIG_LINUXBOOT_UROOT),y) include targets/u-root.mk endif -ifeq ($(CONFIG_LINUXBOOT_BUILD_INITRAMFS),y) -build/initramfs: $(CONFIG_LINUXBOOT_INITRAMFS_PATH) | build -else -build/initramfs: -endif -ifeq ($(CONFIG_LINUXBOOT_INITRAMFS_COMPRESSION_XZ),y) - xz --keep --force --check=crc32 --lzma2=dict=1MiB $(CONFIG_LINUXBOOT_INITRAMFS_PATH) -endif - cp $(CONFIG_LINUXBOOT_INITRAMFS_PATH)$(CONFIG_LINUXBOOT_INITRAMFS_SUFFIX) $@ - ifeq ($(CONFIG_LINUXBOOT_KERNEL_BZIMAGE),y) -build/bzImage: $(kernel_dir)/arch/x86/boot/bzImage build/initramfs | build +build/Image: $(kernel_dir)/arch/x86/boot/bzImage | build cp $< $@ else ifeq ($(CONFIG_LINUXBOOT_KERNEL_UIMAGE),y) -build/target.dtb: $(CONFIG_LINUXBOOT_DTS_FILE) +build/target.dtb: $(CONFIG_LINUXBOOT_DTS_FILE) | build $(DTC) -o $@ $< -build/uImage: build/vmlinux.bin.lzma build/initramfs build/target.dtb $(LINUX_ARCH-y)/kernel_fdt_lzma.its | build +build/Image: build/vmlinux.bin.lzma build/initramfs build/target.dtb $(LINUX_ARCH-y)/kernel_fdt_lzma.its | build mkimage -f $(LINUX_ARCH-y)/kernel_fdt_lzma.its $@ -endif # CONFIG_LINUXBOOT_KERNEL_BZIMAGE +else ifneq ($(CONFIG_LINUXBOOT_COMPILE_KERNEL),y) + +build/Image: $(CONFIG_LINUXBOOT_KERNEL_PATH) | build + cp $< $@ + +endif + +build/initramfs: build/initramfs_u-root.cpio | build +ifeq ($(CONFIG_LINUXBOOT_INITRAMFS_COMPRESSION_XZ),y) + xz --stdout --keep --force --check=crc32 --lzma2=dict=1MiB $< > $@ +else + cp $< $@ +endif build: mkdir build diff --git a/payloads/external/LinuxBoot/targets/u-root.mk b/payloads/external/LinuxBoot/targets/u-root.mk index 90b48eaf3a..158a605f29 100644 --- a/payloads/external/LinuxBoot/targets/u-root.mk +++ b/payloads/external/LinuxBoot/targets/u-root.mk @@ -39,12 +39,13 @@ $(uroot_build): git clone https://$(uroot_package) $(uroot_build) git -C $(uroot_build) checkout --quiet $(CONFIG_LINUXBOOT_UROOT_VERSION) -$(uroot_build)/u-root: $(uroot_build) +$(uroot_build)/u-root: | $(uroot_build) cd $(uroot_build); \ go build -o u-root . -#$(CONFIG_LINUXBOOT_INITRAMFS_PATH) build/initramfs_u-root.cpio: $(uroot_build)/u-root - GOARCH=$(UROOT_ARCH-y) $(uroot_build)/u-root \ - -uroot-source $(uroot_build) \ - $(uroot_args) -o build/initramfs_u-root.cpio $(uroot_cmds) + cd $(uroot_build); \ + echo "GOARCH=$(UROOT_ARCH-y) ./u-root $(uroot_args) -o initramfs_u-root.cpio $(uroot_cmds)" + cd $(uroot_build); \ + GOARCH=$(UROOT_ARCH-y) ./u-root $(uroot_args) -o initramfs_u-root.cpio $(uroot_cmds) + cp $(uroot_build)/initramfs_u-root.cpio $@ diff --git a/payloads/external/Makefile.mk b/payloads/external/Makefile.mk index 52fc07d5a3..299f1eee0b 100644 --- a/payloads/external/Makefile.mk +++ b/payloads/external/Makefile.mk @@ -26,8 +26,8 @@ ifneq ($(strip $(call strip_quotes,$(CONFIG_LINUX_COMMAND_LINE))),) endif ifneq ($(strip $(call strip_quotes,$(CONFIG_LINUX_INITRD)$(CONFIG_LINUXBOOT_INITRAMFS_PATH))),) ifneq ($(CONFIG_LINUXBOOT_ARM64),y) - ADDITIONAL_PAYLOAD_CONFIG+=-I $(CONFIG_LINUX_INITRD)$(CONFIG_LINUXBOOT_INITRAMFS_PATH)$(CONFIG_LINUXBOOT_INITRAMFS_SUFFIX) - prebuilt-files += $(strip $(call strip_quotes,$(CONFIG_LINUX_INITRD)$(CONFIG_LINUXBOOT_INITRAMFS))) + ADDITIONAL_PAYLOAD_CONFIG+=-I $(CONFIG_LINUX_INITRD)$(CONFIG_LINUXBOOT_INITRAMFS_PATH) + prebuilt-files += $(strip $(call strip_quotes,$(CONFIG_LINUX_INITRD)$(CONFIG_LINUXBOOT_INITRAMFS_PATH))) endif endif endif @@ -399,7 +399,7 @@ else # CONFIG_LINUXBOOT_CROSS_COMPILE $(warning "Using host toolchain to build Linuxboot") endif # CONFIG_LINUXBOOT_CROSS_COMPILE .PHONY: linuxboot -payloads/external/LinuxBoot/build/Image linuxboot: +payloads/external/LinuxBoot/build/Image payloads/external/LinuxBoot/build/initramfs linuxboot: $(MAKE) -C payloads/external/LinuxBoot \ CPUS=$(CPUS) \ CONFIG_LINUXBOOT_X86_64=$(CONFIG_LINUXBOOT_X86_64) \ @@ -411,7 +411,6 @@ payloads/external/LinuxBoot/build/Image linuxboot: CONFIG_LINUXBOOT_CROSS_COMPILE_PATH=$(CONFIG_LINUXBOOT_CROSS_COMPILE_PATH) \ CONFIG_LINUXBOOT_BUILD_INITRAMFS=$(CONFIG_LINUXBOOT_BUILD_INITRAMFS) \ CONFIG_LINUXBOOT_INITRAMFS_PATH=$(CONFIG_LINUXBOOT_INITRAMFS_PATH) \ - CONFIG_LINUXBOOT_INITRAMFS_SUFFIX=$(CONFIG_LINUXBOOT_INITRAMFS_SUFFIX) \ CONFIG_LINUXBOOT_INITRAMFS_COMPRESSION_XZ=$(CONFIG_LINUXBOOT_INITRAMFS_COMPRESSION_XZ) \ CONFIG_LINUXBOOT_COMPILE_KERNEL=$(CONFIG_LINUXBOOT_COMPILE_KERNEL) \ CONFIG_LINUXBOOT_KERNEL_PATH=$(CONFIG_LINUXBOOT_KERNEL_PATH) \ @@ -427,7 +426,8 @@ payloads/external/LinuxBoot/build/Image linuxboot: CONFIG_LINUXBOOT_UROOT_SHELL=$(CONFIG_LINUXBOOT_UROOT_SHELL) \ CONFIG_LINUXBOOT_UROOT_COMMANDS=$(CONFIG_LINUXBOOT_UROOT_COMMANDS) \ CONFIG_LINUXBOOT_UROOT_FILES=$(CONFIG_LINUXBOOT_UROOT_FILES) \ - CONFIG_LINUXBOOT_DTS_FILE=$(CONFIG_LINUXBOOT_DTS_FILE) + CONFIG_LINUXBOOT_DTS_FILE=$(CONFIG_LINUXBOOT_DTS_FILE) \ + $(subst payloads/external/LinuxBoot/,,$@) # BOOTBOOT