[PATCH] x86: "make isoimage" support; FDINITRD= support; minor cleanups
Add a "make isoimage" to i386 and x86-64, which allows the automatic creation of a bootable CD image. It also adds an option FDINITRD= to include an initrd of the user's choice in generated floppy- or CD boot images. Finally, some minor cleanups of the image generation code. Signed-off-by: H. Peter Anvin <hpa@zytor.com> Cc: Andi Kleen <ak@muc.de> Cc: Sam Ravnborg <sam@ravnborg.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
committed by
Linus Torvalds
parent
5a3a5a98b6
commit
841b8a46bf
@@ -103,7 +103,7 @@ AFLAGS += $(mflags-y)
|
|||||||
boot := arch/i386/boot
|
boot := arch/i386/boot
|
||||||
|
|
||||||
PHONY += zImage bzImage compressed zlilo bzlilo \
|
PHONY += zImage bzImage compressed zlilo bzlilo \
|
||||||
zdisk bzdisk fdimage fdimage144 fdimage288 install
|
zdisk bzdisk fdimage fdimage144 fdimage288 isoimage install
|
||||||
|
|
||||||
all: bzImage
|
all: bzImage
|
||||||
|
|
||||||
@@ -122,7 +122,7 @@ zlilo bzlilo: vmlinux
|
|||||||
zdisk bzdisk: vmlinux
|
zdisk bzdisk: vmlinux
|
||||||
$(Q)$(MAKE) $(build)=$(boot) BOOTIMAGE=$(KBUILD_IMAGE) zdisk
|
$(Q)$(MAKE) $(build)=$(boot) BOOTIMAGE=$(KBUILD_IMAGE) zdisk
|
||||||
|
|
||||||
fdimage fdimage144 fdimage288: vmlinux
|
fdimage fdimage144 fdimage288 isoimage: vmlinux
|
||||||
$(Q)$(MAKE) $(build)=$(boot) BOOTIMAGE=$(KBUILD_IMAGE) $@
|
$(Q)$(MAKE) $(build)=$(boot) BOOTIMAGE=$(KBUILD_IMAGE) $@
|
||||||
|
|
||||||
install:
|
install:
|
||||||
@@ -139,6 +139,9 @@ define archhelp
|
|||||||
echo ' install to $$(INSTALL_PATH) and run lilo'
|
echo ' install to $$(INSTALL_PATH) and run lilo'
|
||||||
echo ' bzdisk - Create a boot floppy in /dev/fd0'
|
echo ' bzdisk - Create a boot floppy in /dev/fd0'
|
||||||
echo ' fdimage - Create a boot floppy image'
|
echo ' fdimage - Create a boot floppy image'
|
||||||
|
echo ' isoimage - Create a boot CD-ROM image'
|
||||||
endef
|
endef
|
||||||
|
|
||||||
CLEAN_FILES += arch/$(ARCH)/boot/fdimage arch/$(ARCH)/boot/mtools.conf
|
CLEAN_FILES += arch/$(ARCH)/boot/fdimage \
|
||||||
|
arch/$(ARCH)/boot/image.iso \
|
||||||
|
arch/$(ARCH)/boot/mtools.conf
|
||||||
|
@@ -62,8 +62,12 @@ $(obj)/setup $(obj)/bootsect: %: %.o FORCE
|
|||||||
$(obj)/compressed/vmlinux: FORCE
|
$(obj)/compressed/vmlinux: FORCE
|
||||||
$(Q)$(MAKE) $(build)=$(obj)/compressed IMAGE_OFFSET=$(IMAGE_OFFSET) $@
|
$(Q)$(MAKE) $(build)=$(obj)/compressed IMAGE_OFFSET=$(IMAGE_OFFSET) $@
|
||||||
|
|
||||||
# Set this if you want to pass append arguments to the zdisk/fdimage kernel
|
# Set this if you want to pass append arguments to the zdisk/fdimage/isoimage kernel
|
||||||
FDARGS =
|
FDARGS =
|
||||||
|
# Set this if you want an initrd included with the zdisk/fdimage/isoimage kernel
|
||||||
|
FDINITRD =
|
||||||
|
|
||||||
|
image_cmdline = default linux $(FDARGS) $(if $(FDINITRD),initrd=initrd.img,)
|
||||||
|
|
||||||
$(obj)/mtools.conf: $(src)/mtools.conf.in
|
$(obj)/mtools.conf: $(src)/mtools.conf.in
|
||||||
sed -e 's|@OBJ@|$(obj)|g' < $< > $@
|
sed -e 's|@OBJ@|$(obj)|g' < $< > $@
|
||||||
@@ -72,8 +76,11 @@ $(obj)/mtools.conf: $(src)/mtools.conf.in
|
|||||||
zdisk: $(BOOTIMAGE) $(obj)/mtools.conf
|
zdisk: $(BOOTIMAGE) $(obj)/mtools.conf
|
||||||
MTOOLSRC=$(obj)/mtools.conf mformat a: ; sync
|
MTOOLSRC=$(obj)/mtools.conf mformat a: ; sync
|
||||||
syslinux /dev/fd0 ; sync
|
syslinux /dev/fd0 ; sync
|
||||||
echo 'default linux $(FDARGS)' | \
|
echo '$(image_cmdline)' | \
|
||||||
MTOOLSRC=$(src)/mtools.conf mcopy - a:syslinux.cfg
|
MTOOLSRC=$(src)/mtools.conf mcopy - a:syslinux.cfg
|
||||||
|
if [ -f '$(FDINITRD)' ] ; then \
|
||||||
|
MTOOLSRC=$(obj)/mtools.conf mcopy '$(FDINITRD)' a:initrd.img ; \
|
||||||
|
fi
|
||||||
MTOOLSRC=$(obj)/mtools.conf mcopy $(BOOTIMAGE) a:linux ; sync
|
MTOOLSRC=$(obj)/mtools.conf mcopy $(BOOTIMAGE) a:linux ; sync
|
||||||
|
|
||||||
# These require being root or having syslinux 2.02 or higher installed
|
# These require being root or having syslinux 2.02 or higher installed
|
||||||
@@ -81,18 +88,39 @@ fdimage fdimage144: $(BOOTIMAGE) $(obj)/mtools.conf
|
|||||||
dd if=/dev/zero of=$(obj)/fdimage bs=1024 count=1440
|
dd if=/dev/zero of=$(obj)/fdimage bs=1024 count=1440
|
||||||
MTOOLSRC=$(obj)/mtools.conf mformat v: ; sync
|
MTOOLSRC=$(obj)/mtools.conf mformat v: ; sync
|
||||||
syslinux $(obj)/fdimage ; sync
|
syslinux $(obj)/fdimage ; sync
|
||||||
echo 'default linux $(FDARGS)' | \
|
echo '$(image_cmdline)' | \
|
||||||
MTOOLSRC=$(obj)/mtools.conf mcopy - v:syslinux.cfg
|
MTOOLSRC=$(obj)/mtools.conf mcopy - v:syslinux.cfg
|
||||||
|
if [ -f '$(FDINITRD)' ] ; then \
|
||||||
|
MTOOLSRC=$(obj)/mtools.conf mcopy '$(FDINITRD)' v:initrd.img ; \
|
||||||
|
fi
|
||||||
MTOOLSRC=$(obj)/mtools.conf mcopy $(BOOTIMAGE) v:linux ; sync
|
MTOOLSRC=$(obj)/mtools.conf mcopy $(BOOTIMAGE) v:linux ; sync
|
||||||
|
|
||||||
fdimage288: $(BOOTIMAGE) $(obj)/mtools.conf
|
fdimage288: $(BOOTIMAGE) $(obj)/mtools.conf
|
||||||
dd if=/dev/zero of=$(obj)/fdimage bs=1024 count=2880
|
dd if=/dev/zero of=$(obj)/fdimage bs=1024 count=2880
|
||||||
MTOOLSRC=$(obj)/mtools.conf mformat w: ; sync
|
MTOOLSRC=$(obj)/mtools.conf mformat w: ; sync
|
||||||
syslinux $(obj)/fdimage ; sync
|
syslinux $(obj)/fdimage ; sync
|
||||||
echo 'default linux $(FDARGS)' | \
|
echo '$(image_cmdline)' | \
|
||||||
MTOOLSRC=$(obj)/mtools.conf mcopy - w:syslinux.cfg
|
MTOOLSRC=$(obj)/mtools.conf mcopy - w:syslinux.cfg
|
||||||
|
if [ -f '$(FDINITRD)' ] ; then \
|
||||||
|
MTOOLSRC=$(obj)/mtools.conf mcopy '$(FDINITRD)' w:initrd.img ; \
|
||||||
|
fi
|
||||||
MTOOLSRC=$(obj)/mtools.conf mcopy $(BOOTIMAGE) w:linux ; sync
|
MTOOLSRC=$(obj)/mtools.conf mcopy $(BOOTIMAGE) w:linux ; sync
|
||||||
|
|
||||||
|
isoimage: $(BOOTIMAGE)
|
||||||
|
-rm -rf $(obj)/isoimage
|
||||||
|
mkdir $(obj)/isoimage
|
||||||
|
cp `echo /usr/lib*/syslinux/isolinux.bin | awk '{ print $1; }'` \
|
||||||
|
$(obj)/isoimage
|
||||||
|
cp $(BOOTIMAGE) $(obj)/isoimage/linux
|
||||||
|
echo '$(image_cmdline)' > $(obj)/isoimage/isolinux.cfg
|
||||||
|
if [ -f '$(FDINITRD)' ] ; then \
|
||||||
|
cp '$(FDINITRD)' $(obj)/isoimage/initrd.img ; \
|
||||||
|
fi
|
||||||
|
mkisofs -J -r -o $(obj)/image.iso -b isolinux.bin -c boot.cat \
|
||||||
|
-no-emul-boot -boot-load-size 4 -boot-info-table \
|
||||||
|
$(obj)/isoimage
|
||||||
|
rm -rf $(obj)/isoimage
|
||||||
|
|
||||||
zlilo: $(BOOTIMAGE)
|
zlilo: $(BOOTIMAGE)
|
||||||
if [ -f $(INSTALL_PATH)/vmlinuz ]; then mv $(INSTALL_PATH)/vmlinuz $(INSTALL_PATH)/vmlinuz.old; fi
|
if [ -f $(INSTALL_PATH)/vmlinuz ]; then mv $(INSTALL_PATH)/vmlinuz $(INSTALL_PATH)/vmlinuz.old; fi
|
||||||
if [ -f $(INSTALL_PATH)/System.map ]; then mv $(INSTALL_PATH)/System.map $(INSTALL_PATH)/System.old; fi
|
if [ -f $(INSTALL_PATH)/System.map ]; then mv $(INSTALL_PATH)/System.map $(INSTALL_PATH)/System.old; fi
|
||||||
|
@@ -70,7 +70,7 @@ drivers-$(CONFIG_OPROFILE) += arch/x86_64/oprofile/
|
|||||||
boot := arch/x86_64/boot
|
boot := arch/x86_64/boot
|
||||||
|
|
||||||
PHONY += bzImage bzlilo install archmrproper \
|
PHONY += bzImage bzlilo install archmrproper \
|
||||||
fdimage fdimage144 fdimage288 archclean
|
fdimage fdimage144 fdimage288 isoimage archclean
|
||||||
|
|
||||||
#Default target when executing "make"
|
#Default target when executing "make"
|
||||||
all: bzImage
|
all: bzImage
|
||||||
@@ -87,7 +87,7 @@ bzlilo: vmlinux
|
|||||||
bzdisk: vmlinux
|
bzdisk: vmlinux
|
||||||
$(Q)$(MAKE) $(build)=$(boot) BOOTIMAGE=$(BOOTIMAGE) zdisk
|
$(Q)$(MAKE) $(build)=$(boot) BOOTIMAGE=$(BOOTIMAGE) zdisk
|
||||||
|
|
||||||
fdimage fdimage144 fdimage288: vmlinux
|
fdimage fdimage144 fdimage288 isoimage: vmlinux
|
||||||
$(Q)$(MAKE) $(build)=$(boot) BOOTIMAGE=$(BOOTIMAGE) $@
|
$(Q)$(MAKE) $(build)=$(boot) BOOTIMAGE=$(BOOTIMAGE) $@
|
||||||
|
|
||||||
install:
|
install:
|
||||||
@@ -99,11 +99,16 @@ archclean:
|
|||||||
define archhelp
|
define archhelp
|
||||||
echo '* bzImage - Compressed kernel image (arch/$(ARCH)/boot/bzImage)'
|
echo '* bzImage - Compressed kernel image (arch/$(ARCH)/boot/bzImage)'
|
||||||
echo ' install - Install kernel using'
|
echo ' install - Install kernel using'
|
||||||
echo ' (your) ~/bin/installkernel or'
|
echo ' (your) ~/bin/installkernel or'
|
||||||
echo ' (distribution) /sbin/installkernel or'
|
echo ' (distribution) /sbin/installkernel or'
|
||||||
echo ' install to $$(INSTALL_PATH) and run lilo'
|
echo ' install to $$(INSTALL_PATH) and run lilo'
|
||||||
|
echo ' bzdisk - Create a boot floppy in /dev/fd0'
|
||||||
|
echo ' fdimage - Create a boot floppy image'
|
||||||
|
echo ' isoimage - Create a boot CD-ROM image'
|
||||||
endef
|
endef
|
||||||
|
|
||||||
CLEAN_FILES += arch/$(ARCH)/boot/fdimage arch/$(ARCH)/boot/mtools.conf
|
CLEAN_FILES += arch/$(ARCH)/boot/fdimage \
|
||||||
|
arch/$(ARCH)/boot/image.iso \
|
||||||
|
arch/$(ARCH)/boot/mtools.conf
|
||||||
|
|
||||||
|
|
||||||
|
@@ -60,8 +60,12 @@ $(obj)/setup $(obj)/bootsect: %: %.o FORCE
|
|||||||
$(obj)/compressed/vmlinux: FORCE
|
$(obj)/compressed/vmlinux: FORCE
|
||||||
$(Q)$(MAKE) $(build)=$(obj)/compressed IMAGE_OFFSET=$(IMAGE_OFFSET) $@
|
$(Q)$(MAKE) $(build)=$(obj)/compressed IMAGE_OFFSET=$(IMAGE_OFFSET) $@
|
||||||
|
|
||||||
# Set this if you want to pass append arguments to the zdisk/fdimage kernel
|
# Set this if you want to pass append arguments to the zdisk/fdimage/isoimage kernel
|
||||||
FDARGS =
|
FDARGS =
|
||||||
|
# Set this if you want an initrd included with the zdisk/fdimage/isoimage kernel
|
||||||
|
FDINITRD =
|
||||||
|
|
||||||
|
image_cmdline = default linux $(FDARGS) $(if $(FDINITRD),initrd=initrd.img,)
|
||||||
|
|
||||||
$(obj)/mtools.conf: $(src)/mtools.conf.in
|
$(obj)/mtools.conf: $(src)/mtools.conf.in
|
||||||
sed -e 's|@OBJ@|$(obj)|g' < $< > $@
|
sed -e 's|@OBJ@|$(obj)|g' < $< > $@
|
||||||
@@ -70,8 +74,11 @@ $(obj)/mtools.conf: $(src)/mtools.conf.in
|
|||||||
zdisk: $(BOOTIMAGE) $(obj)/mtools.conf
|
zdisk: $(BOOTIMAGE) $(obj)/mtools.conf
|
||||||
MTOOLSRC=$(obj)/mtools.conf mformat a: ; sync
|
MTOOLSRC=$(obj)/mtools.conf mformat a: ; sync
|
||||||
syslinux /dev/fd0 ; sync
|
syslinux /dev/fd0 ; sync
|
||||||
echo 'default linux $(FDARGS)' | \
|
echo '$(image_cmdline)' | \
|
||||||
MTOOLSRC=$(obj)/mtools.conf mcopy - a:syslinux.cfg
|
MTOOLSRC=$(obj)/mtools.conf mcopy - a:syslinux.cfg
|
||||||
|
if [ -f '$(FDINITRD)' ] ; then \
|
||||||
|
MTOOLSRC=$(obj)/mtools.conf mcopy '$(FDINITRD)' a:initrd.img ; \
|
||||||
|
fi
|
||||||
MTOOLSRC=$(obj)/mtools.conf mcopy $(BOOTIMAGE) a:linux ; sync
|
MTOOLSRC=$(obj)/mtools.conf mcopy $(BOOTIMAGE) a:linux ; sync
|
||||||
|
|
||||||
# These require being root or having syslinux 2.02 or higher installed
|
# These require being root or having syslinux 2.02 or higher installed
|
||||||
@@ -79,18 +86,39 @@ fdimage fdimage144: $(BOOTIMAGE) $(obj)/mtools.conf
|
|||||||
dd if=/dev/zero of=$(obj)/fdimage bs=1024 count=1440
|
dd if=/dev/zero of=$(obj)/fdimage bs=1024 count=1440
|
||||||
MTOOLSRC=$(obj)/mtools.conf mformat v: ; sync
|
MTOOLSRC=$(obj)/mtools.conf mformat v: ; sync
|
||||||
syslinux $(obj)/fdimage ; sync
|
syslinux $(obj)/fdimage ; sync
|
||||||
echo 'default linux $(FDARGS)' | \
|
echo '$(image_cmdline)' | \
|
||||||
MTOOLSRC=$(obj)/mtools.conf mcopy - v:syslinux.cfg
|
MTOOLSRC=$(obj)/mtools.conf mcopy - v:syslinux.cfg
|
||||||
|
if [ -f '$(FDINITRD)' ] ; then \
|
||||||
|
MTOOLSRC=$(obj)/mtools.conf mcopy '$(FDINITRD)' v:initrd.img ; \
|
||||||
|
fi
|
||||||
MTOOLSRC=$(obj)/mtools.conf mcopy $(BOOTIMAGE) v:linux ; sync
|
MTOOLSRC=$(obj)/mtools.conf mcopy $(BOOTIMAGE) v:linux ; sync
|
||||||
|
|
||||||
fdimage288: $(BOOTIMAGE) $(obj)/mtools.conf
|
fdimage288: $(BOOTIMAGE) $(obj)/mtools.conf
|
||||||
dd if=/dev/zero of=$(obj)/fdimage bs=1024 count=2880
|
dd if=/dev/zero of=$(obj)/fdimage bs=1024 count=2880
|
||||||
MTOOLSRC=$(obj)/mtools.conf mformat w: ; sync
|
MTOOLSRC=$(obj)/mtools.conf mformat w: ; sync
|
||||||
syslinux $(obj)/fdimage ; sync
|
syslinux $(obj)/fdimage ; sync
|
||||||
echo 'default linux $(FDARGS)' | \
|
echo '$(image_cmdline)' | \
|
||||||
MTOOLSRC=$(obj)/mtools.conf mcopy - w:syslinux.cfg
|
MTOOLSRC=$(obj)/mtools.conf mcopy - w:syslinux.cfg
|
||||||
|
if [ -f '$(FDINITRD)' ] ; then \
|
||||||
|
MTOOLSRC=$(obj)/mtools.conf mcopy '$(FDINITRD)' w:initrd.img ; \
|
||||||
|
fi
|
||||||
MTOOLSRC=$(obj)/mtools.conf mcopy $(BOOTIMAGE) w:linux ; sync
|
MTOOLSRC=$(obj)/mtools.conf mcopy $(BOOTIMAGE) w:linux ; sync
|
||||||
|
|
||||||
|
isoimage: $(BOOTIMAGE)
|
||||||
|
-rm -rf $(obj)/isoimage
|
||||||
|
mkdir $(obj)/isoimage
|
||||||
|
cp `echo /usr/lib*/syslinux/isolinux.bin | awk '{ print $1; }'` \
|
||||||
|
$(obj)/isoimage
|
||||||
|
cp $(BOOTIMAGE) $(obj)/isoimage/linux
|
||||||
|
echo '$(image_cmdline)' > $(obj)/isoimage/isolinux.cfg
|
||||||
|
if [ -f '$(FDINITRD)' ] ; then \
|
||||||
|
cp '$(FDINITRD)' $(obj)/isoimage/initrd.img ; \
|
||||||
|
fi
|
||||||
|
mkisofs -J -r -o $(obj)/image.iso -b isolinux.bin -c boot.cat \
|
||||||
|
-no-emul-boot -boot-load-size 4 -boot-info-table \
|
||||||
|
$(obj)/isoimage
|
||||||
|
rm -rf $(obj)/isoimage
|
||||||
|
|
||||||
zlilo: $(BOOTIMAGE)
|
zlilo: $(BOOTIMAGE)
|
||||||
if [ -f $(INSTALL_PATH)/vmlinuz ]; then mv $(INSTALL_PATH)/vmlinuz $(INSTALL_PATH)/vmlinuz.old; fi
|
if [ -f $(INSTALL_PATH)/vmlinuz ]; then mv $(INSTALL_PATH)/vmlinuz $(INSTALL_PATH)/vmlinuz.old; fi
|
||||||
if [ -f $(INSTALL_PATH)/System.map ]; then mv $(INSTALL_PATH)/System.map $(INSTALL_PATH)/System.old; fi
|
if [ -f $(INSTALL_PATH)/System.map ]; then mv $(INSTALL_PATH)/System.map $(INSTALL_PATH)/System.old; fi
|
||||||
|
Reference in New Issue
Block a user