diff --git a/target/linux/x86/Makefile b/target/linux/x86/Makefile index f85760b28b..f44d30d358 100644 --- a/target/linux/x86/Makefile +++ b/target/linux/x86/Makefile @@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk ARCH=i386 BOARD:=x86 BOARDNAME:=x86 -FEATURES:=squashfs jffs2 ext2 +FEATURES:=squashfs jffs2 ext2 vdi SUBTARGETS=generic LINUX_VERSION:=2.6.25.4 diff --git a/target/linux/x86/image/Config.in b/target/linux/x86/image/Config.in index 17deccfa72..af4f9a3dba 100644 --- a/target/linux/x86/image/Config.in +++ b/target/linux/x86/image/Config.in @@ -33,3 +33,13 @@ config X86_GRUB_BOOTOPTS default "" help If you don't know, just leave it blank. + + +config X86_VDI_IMAGES + bool "Build VirtuBox image files (VDI). Requires vditool" + depends TARGET_x86 + depends TARGET_ROOTFS_EXT2FS + depends X86_GRUB_IMAGES + select PACKAGE_kmod-pcnet32 + + diff --git a/target/linux/x86/image/Makefile b/target/linux/x86/image/Makefile index 54a4a344d7..7af434874e 100644 --- a/target/linux/x86/image/Makefile +++ b/target/linux/x86/image/Makefile @@ -57,6 +57,17 @@ ifeq ($(CONFIG_X86_GRUB_IMAGES),y) endef endif +ifeq ($(CONFIG_X86_VDI_IMAGES),y) + define Image/Build/vdi + # left here because the image builder doesnt need these + ifeq ($(1),ext2) + rm $(BIN_DIR)/openwrt-$(BOARD)-ext2.vdi || true + vditool DD $(BIN_DIR)/openwrt-$(BOARD)-ext2.vdi $(BIN_DIR)/openwrt-$(BOARD)-ext2.image + endif + endef +endif + + define Image/Prepare $(CP) $(LINUX_DIR)/arch/x86/boot/bzImage $(KDIR)/bzImage $(call Image/Prepare/grub) @@ -86,6 +97,7 @@ endef define Image/Build $(call Image/Build/grub,$(1)) + $(call Image/Build/vdi,$(1)) $(call Image/Build/$(1)) $(CP) $(KDIR)/root.$(1) $(BIN_DIR)/openwrt-$(BOARD)-$(1).fs $(CP) $(KDIR)/bzImage $(BIN_DIR)/openwrt-$(BOARD)-vmlinuz @@ -93,3 +105,9 @@ endef $(eval $(call BuildImage)) +ifeq ($(CONFIG_X86_VDI_IMAGES),y) + $(eval $(call RequireCommand,vditool, \ + You need vditool to generate VirtualBox images. \ + )) +endif +