added generation of x86 livecds, from #2391
authorJohn Crispin <john@openwrt.org>
Mon, 8 Oct 2007 18:53:19 +0000 (18:53 +0000)
committerJohn Crispin <john@openwrt.org>
Mon, 8 Oct 2007 18:53:19 +0000 (18:53 +0000)
SVN-Revision: 9191

Config.in
include/image.mk
target/linux/x86/Makefile
target/linux/x86/image/Config.in
target/linux/x86/image/Makefile

index 34d82492e7ffdfc28bf0d2c1a7e7c93eb631d216..df331fc2bf13a8fd7ca7603ebf58a0351b2d03bb 100644 (file)
--- a/Config.in
+++ b/Config.in
@@ -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"
index 68ce0480d16d6c96db7fb9dd03e0ea43eb6ad495..fea7d1ce6f37969823961abf030855995ee758a3 100644 (file)
@@ -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)
index 27987a41bf614dc3503afa79f7bd8f318ba0761f..ddb50e64046b894ee4b2e1acf05bad5eaf5f2d5f 100644 (file)
@@ -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. \
+))
index a6024968563c845aaedca4bc292338e723e049bb..4a36f63128b67c0e92ee008b4685bfd4c2a0abcb 100644 (file)
@@ -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
index f19e6b3f38703d899f8ab65295829030a735922c..d470fe1c5f6e012f6a5f37029718f096542ccf82 100644 (file)
@@ -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))
+