mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-11 21:38:32 +08:00
[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:
parent
5a3a5a98b6
commit
841b8a46bf
@ -103,7 +103,7 @@ AFLAGS += $(mflags-y)
|
||||
boot := arch/i386/boot
|
||||
|
||||
PHONY += zImage bzImage compressed zlilo bzlilo \
|
||||
zdisk bzdisk fdimage fdimage144 fdimage288 install
|
||||
zdisk bzdisk fdimage fdimage144 fdimage288 isoimage install
|
||||
|
||||
all: bzImage
|
||||
|
||||
@ -122,7 +122,7 @@ zlilo bzlilo: vmlinux
|
||||
zdisk bzdisk: vmlinux
|
||||
$(Q)$(MAKE) $(build)=$(boot) BOOTIMAGE=$(KBUILD_IMAGE) zdisk
|
||||
|
||||
fdimage fdimage144 fdimage288: vmlinux
|
||||
fdimage fdimage144 fdimage288 isoimage: vmlinux
|
||||
$(Q)$(MAKE) $(build)=$(boot) BOOTIMAGE=$(KBUILD_IMAGE) $@
|
||||
|
||||
install:
|
||||
@ -139,6 +139,9 @@ define archhelp
|
||||
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
|
||||
|
||||
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
|
||||
$(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 =
|
||||
# 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
|
||||
sed -e 's|@OBJ@|$(obj)|g' < $< > $@
|
||||
@ -72,8 +76,11 @@ $(obj)/mtools.conf: $(src)/mtools.conf.in
|
||||
zdisk: $(BOOTIMAGE) $(obj)/mtools.conf
|
||||
MTOOLSRC=$(obj)/mtools.conf mformat a: ; sync
|
||||
syslinux /dev/fd0 ; sync
|
||||
echo 'default linux $(FDARGS)' | \
|
||||
echo '$(image_cmdline)' | \
|
||||
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
|
||||
|
||||
# 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
|
||||
MTOOLSRC=$(obj)/mtools.conf mformat v: ; sync
|
||||
syslinux $(obj)/fdimage ; sync
|
||||
echo 'default linux $(FDARGS)' | \
|
||||
echo '$(image_cmdline)' | \
|
||||
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
|
||||
|
||||
fdimage288: $(BOOTIMAGE) $(obj)/mtools.conf
|
||||
dd if=/dev/zero of=$(obj)/fdimage bs=1024 count=2880
|
||||
MTOOLSRC=$(obj)/mtools.conf mformat w: ; sync
|
||||
syslinux $(obj)/fdimage ; sync
|
||||
echo 'default linux $(FDARGS)' | \
|
||||
echo '$(image_cmdline)' | \
|
||||
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
|
||||
|
||||
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)
|
||||
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
|
||||
|
@ -70,7 +70,7 @@ drivers-$(CONFIG_OPROFILE) += arch/x86_64/oprofile/
|
||||
boot := arch/x86_64/boot
|
||||
|
||||
PHONY += bzImage bzlilo install archmrproper \
|
||||
fdimage fdimage144 fdimage288 archclean
|
||||
fdimage fdimage144 fdimage288 isoimage archclean
|
||||
|
||||
#Default target when executing "make"
|
||||
all: bzImage
|
||||
@ -87,7 +87,7 @@ bzlilo: vmlinux
|
||||
bzdisk: vmlinux
|
||||
$(Q)$(MAKE) $(build)=$(boot) BOOTIMAGE=$(BOOTIMAGE) zdisk
|
||||
|
||||
fdimage fdimage144 fdimage288: vmlinux
|
||||
fdimage fdimage144 fdimage288 isoimage: vmlinux
|
||||
$(Q)$(MAKE) $(build)=$(boot) BOOTIMAGE=$(BOOTIMAGE) $@
|
||||
|
||||
install:
|
||||
@ -99,11 +99,16 @@ archclean:
|
||||
define archhelp
|
||||
echo '* bzImage - Compressed kernel image (arch/$(ARCH)/boot/bzImage)'
|
||||
echo ' install - Install kernel using'
|
||||
echo ' (your) ~/bin/installkernel or'
|
||||
echo ' (distribution) /sbin/installkernel or'
|
||||
echo ' install to $$(INSTALL_PATH) and run lilo'
|
||||
echo ' (your) ~/bin/installkernel or'
|
||||
echo ' (distribution) /sbin/installkernel or'
|
||||
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
|
||||
|
||||
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
|
||||
$(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 =
|
||||
# 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
|
||||
sed -e 's|@OBJ@|$(obj)|g' < $< > $@
|
||||
@ -70,8 +74,11 @@ $(obj)/mtools.conf: $(src)/mtools.conf.in
|
||||
zdisk: $(BOOTIMAGE) $(obj)/mtools.conf
|
||||
MTOOLSRC=$(obj)/mtools.conf mformat a: ; sync
|
||||
syslinux /dev/fd0 ; sync
|
||||
echo 'default linux $(FDARGS)' | \
|
||||
echo '$(image_cmdline)' | \
|
||||
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
|
||||
|
||||
# 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
|
||||
MTOOLSRC=$(obj)/mtools.conf mformat v: ; sync
|
||||
syslinux $(obj)/fdimage ; sync
|
||||
echo 'default linux $(FDARGS)' | \
|
||||
echo '$(image_cmdline)' | \
|
||||
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
|
||||
|
||||
fdimage288: $(BOOTIMAGE) $(obj)/mtools.conf
|
||||
dd if=/dev/zero of=$(obj)/fdimage bs=1024 count=2880
|
||||
MTOOLSRC=$(obj)/mtools.conf mformat w: ; sync
|
||||
syslinux $(obj)/fdimage ; sync
|
||||
echo 'default linux $(FDARGS)' | \
|
||||
echo '$(image_cmdline)' | \
|
||||
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
|
||||
|
||||
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)
|
||||
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
|
||||
|
Loading…
Reference in New Issue
Block a user