From 5b52dc211f5c90c2f52c48e2d730d31fd4861058 Mon Sep 17 00:00:00 2001 From: coolsnowwolf Date: Sun, 14 Oct 2018 15:07:31 +0800 Subject: [PATCH] add generate Hyper-V VHDX image in x86/x64 target (need install qemu-utils in host first) --- config/Config-images.in | 8 ++++++++ target/linux/x86/image/Makefile | 17 +++++++++++++++++ 2 files changed, 25 insertions(+) diff --git a/config/Config-images.in b/config/Config-images.in index c0db5a5ec..9c327d500 100644 --- a/config/Config-images.in +++ b/config/Config-images.in @@ -253,6 +253,14 @@ menu "Target Images" select TARGET_IMAGES_PAD select PACKAGE_kmod-e1000 default y + + config VHD_IMAGES + bool "Build Hyper-V image files (VHD)" + depends on TARGET_x86 || TARGET_x86_64 + default n + depends on GRUB_IMAGES || EFI_IMAGES + select TARGET_IMAGES_PAD + select PACKAGE_kmod-tulip config TARGET_IMAGES_PAD bool "Pad images to filesystem size (for JFFS2)" diff --git a/target/linux/x86/image/Makefile b/target/linux/x86/image/Makefile index c8dd94dc7..88e21be3d 100644 --- a/target/linux/x86/image/Makefile +++ b/target/linux/x86/image/Makefile @@ -252,6 +252,21 @@ ifneq ($(CONFIG_VMDK_IMAGES),) endef endif +ifneq ($(CONFIG_VHD_IMAGES),) + define Image/Build/vhd + rm $(BIN_DIR)/$(IMG_PREFIX)-combined-$(1).vhdx || true + /usr/bin/qemu-img convert -O vhdx \ + $(BIN_DIR)/$(IMG_PREFIX)-combined-$(1).img \ + $(BIN_DIR)/$(IMG_PREFIX)-combined-$(1).vhdx + endef + define Image/Build/vhd_efi + rm $(BIN_DIR)/$(IMG_PREFIX)-uefi-gpt-$(1).vhdx || true + /usr/bin/qemu-img convert -O vhdx \ + $(BIN_DIR)/$(IMG_PREFIX)-uefi-gpt-$(1).img \ + $(BIN_DIR)/$(IMG_PREFIX)-uefi-gpt-$(1).vhdx + endef +endif + define Image/Build/gzip gzip -f9n $(BIN_DIR)/$(IMG_PREFIX)-rootfs-$(1).img ifneq ($(CONFIG_GRUB_IMAGES),) @@ -291,10 +306,12 @@ define Image/Build ifneq ($(CONFIG_GRUB_IMAGES),) $(call Image/Build/vdi,$(1)) $(call Image/Build/vmdk,$(1)) + $(call Image/Build/vhd,$(1)) endif ifneq ($(CONFIG_EFI_IMAGES),) $(call Image/Build/vdi_efi,$(1)) $(call Image/Build/vmdk_efi,$(1)) + $(call Image/Build/vhd_efi,$(1)) endif $(CP) $(KDIR)/root.$(1) $(BIN_DIR)/$(IMG_PREFIX)-rootfs-$(1).img else