diff options
-rw-r--r-- | Config.in | 7 | ||||
-rw-r--r-- | include/image.mk | 8 | ||||
-rw-r--r-- | target/linux/x86/Makefile | 4 | ||||
-rw-r--r-- | target/linux/x86/image/Config.in | 2 | ||||
-rw-r--r-- | target/linux/x86/image/Makefile | 15 |
5 files changed, 34 insertions, 2 deletions
@@ -48,6 +48,13 @@ menu "Target Images" help Ext2 file system with some free space for uml images + config TARGET_ROOTFS_ISO + bool "iso" + default n + depends TARGET_ROOTFS_INITRAMFS && TARGET_x86 + help + Create some bootable ISO image + comment "Image Options" source "target/linux/*/image/Config.in" diff --git a/include/image.mk b/include/image.mk index 68ce048..fea7d1c 100644 --- a/include/image.mk +++ b/include/image.mk @@ -81,6 +81,12 @@ ifeq ($(CONFIG_TARGET_ROOTFS_EXT2FS),y) endef endif +ifeq ($(CONFIG_TARGET_ROOTFS_ISO),y) + define Image/mkfs/iso + $(call Image/Build,iso) + endef +endif + define Image/mkfs/prepare/default find $(TARGET_DIR) -type f -not -perm +0100 -not -name 'ssh_host*' | $(XARGS) chmod 0644 @@ -113,6 +119,7 @@ ifneq ($(IB),1) $(call Image/mkfs/squashfs) $(call Image/mkfs/tgz) $(call Image/mkfs/ext2) + $(call Image/mkfs/iso) else install: compile install-targets $(call Image/BuildKernel) @@ -120,6 +127,7 @@ else $(call Image/mkfs/squashfs) $(call Image/mkfs/tgz) $(call Image/mkfs/ext2) + $(call Image/mkfs/iso) endif ifneq ($(IB),1) diff --git a/target/linux/x86/Makefile b/target/linux/x86/Makefile index 27987a4..ddb50e6 100644 --- a/target/linux/x86/Makefile +++ b/target/linux/x86/Makefile @@ -19,4 +19,6 @@ DEFAULT_PACKAGES += kmod-natsemi kmod-ne2k-pci $(eval $(call Target,generic)) $(eval $(call Target,mediacenter)) $(eval $(call BuildTarget)) - +$(eval $(call RequireCommand,mkisofs, \ + Please install mkisofs. \ +)) diff --git a/target/linux/x86/image/Config.in b/target/linux/x86/image/Config.in index a602496..4a36f63 100644 --- a/target/linux/x86/image/Config.in +++ b/target/linux/x86/image/Config.in @@ -1,7 +1,7 @@ config X86_GRUB_IMAGES bool "Build GRUB images (Linux x86 or x86_64 host only)" depends TARGET_x86 - depends TARGET_ROOTFS_EXT2FS || TARGET_ROOTFS_JFFS2 || TARGET_ROOTFS_SQUASHFS + depends TARGET_ROOTFS_EXT2FS || TARGET_ROOTFS_JFFS2 || TARGET_ROOTFS_SQUASHFS || TARGET_ROOTFS_ISO default y config X86_GRUB_IMAGES_PAD diff --git a/target/linux/x86/image/Makefile b/target/linux/x86/image/Makefile index f19e6b3..d470fe1 100644 --- a/target/linux/x86/image/Makefile +++ b/target/linux/x86/image/Makefile @@ -74,6 +74,20 @@ define Image/Build/squashfs $(call prepare_generic_squashfs,$(KDIR)/root.squashfs) endef +define Image/Build/iso + $(CP) \ + $(STAGING_DIR_HOST)/usr/lib/grub/i386-pc/stage2_eltorito \ + $(KDIR)/root.grub/boot/grub/stage2_eltorito + sed -i \ + -e 's#@CMDLINE@#$(strip $(call Image/cmdline/$(1))) $(BOOTOPTS)#g' \ + -e 's#@BAUDRATE@#$(CONFIG_X86_GRUB_BAUDRATE)#g' \ + -e 's#(hd0,0)#(cd)#g' \ + $(KDIR)/root.grub/boot/grub/menu.lst + $(CP) $(KDIR)/bzImage $(KDIR)/root.grub/boot/vmlinuz + mkisofs -R -b boot/grub/stage2_eltorito -no-emul-boot -boot-load-size 4 -boot-info-table \ + -o $(KDIR)/root.iso $(KDIR)/root.grub +endef + define Image/BuildKernel $(CP) $(KDIR)/bzImage $(BIN_DIR)/openwrt-$(BOARD)-$(KERNEL)-vmlinuz endef @@ -86,3 +100,4 @@ define Image/Build endef $(eval $(call BuildImage)) + |