Просмотр исходного кода

added generation of x86 livecds, from #2391

SVN-Revision: 9191
John Crispin 18 лет назад
Родитель
Сommit
215fa7eb8b
5 измененных файлов с 34 добавлено и 2 удалено
  1. 7 0
      Config.in
  2. 8 0
      include/image.mk
  3. 3 1
      target/linux/x86/Makefile
  4. 1 1
      target/linux/x86/image/Config.in
  5. 15 0
      target/linux/x86/image/Makefile

+ 7 - 0
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"

+ 8 - 0
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)

+ 3 - 1
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. \
+))

+ 1 - 1
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

+ 15 - 0
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))
+