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