Jérémy Bobbio wrote: > After fetching your SVN branch, updating the kernel version, and using > qemu 9.1 from unstable, the menu looks good, and no framebuffer problems > where to be found. Both with or without -std-vga. > > I think it would be a good addition for Etch. Maybe post-beta2, though.
The svn branch is an old branch, the current one is in git, ssh://git.debian.org/git/users/joeyh/d-i.git branch vesamenu I've just brought it up-to-date with current trunk. Attached is a patch. Also attached is a debian-cd patch to support the modified syslinux files. I have not tested it, but have had luck with modifying this file w/o testing before. ;-) Would someone like to try building CDs? There are three cases that should be tested: - i386 CD - make sure it doesn't have amd64 menu entries.. - amd64 CD - also shouldn't have amd64 menu entries (cause the normal entries are amd64) - i396+amd64 combined cd - should have supplimental amd64 menu entries This patch should also be safely backwards compatable for building CDs from a d-i that lacks vesamenu. -- see shy jo
diff --git a/installer/build/boot/x86/amd.cfg b/installer/build/boot/x86/amd.cfg new file mode 100644 index 0000000..1def0a7 --- /dev/null +++ b/installer/build/boot/x86/amd.cfg @@ -0,0 +1,23 @@ +menu hshift 9 +menu width 57 +default64 amd64-install + +label amd64-install + menu label ^AMD64 install + kernel ${KERNEL} + append ${VIDEO_MODE} initrd=${INITRD} -- quiet ${CONSOLE} +label amd64-expert + menu label AMD64 expert install + kernel ${KERNEL} + append priority=low ${VIDEO_MODE} initrd=${INITRD} -- ${CONSOLE} +label amd64-rescue + menu label AMD64 rescue mode + kernel ${KERNEL} + append ${VIDEO_MODE} initrd=${INITRD} rescue/enable=true -- quiet ${CONSOLE} +label amd64-auto + menu label AMD64 automated install + kernel ${KERNEL} + append auto=true priority=critical ${VIDEO_MODE} initrd=${INITRD} -- quiet ${CONSOLE} + +# Only present if gtk frontend is available. +include ${SYSDIR}amdgtk.cfg diff --git a/installer/build/boot/x86/amdgtk.cfg b/installer/build/boot/x86/amdgtk.cfg new file mode 100644 index 0000000..8322487 --- /dev/null +++ b/installer/build/boot/x86/amdgtk.cfg @@ -0,0 +1,16 @@ +label amd64-installgui + menu label AMD64 graphical install + kernel ${KERNEL} + append ${VIDEO_MODE_GTK} initrd=${INITRD_GTK} -- quiet ${CONSOLE} +label amd64-expertgui + menu label AMD64 graphical expert install + kernel ${KERNEL} + append priority=low ${VIDEO_MODE_GTK} initrd=${INITRD_GTK} -- ${CONSOLE} +label amd64-rescuegui + menu label AMD64 graphical rescue mode + kernel ${KERNEL} + append ${VIDEO_MODE_GTK} initrd=${INITRD_GTK} rescue/enable=true -- quiet ${CONSOLE} +label amd64-autogui + menu label AMD64 graphical automated install + kernel ${KERNEL} + append auto=true priority=critical ${VIDEO_MODE_GTK} initrd=${INITRD_GTK} -- quiet ${CONSOLE} diff --git a/installer/build/boot/x86/boot.txt b/installer/build/boot/x86/boot.txt deleted file mode 100644 index bcd16fc..0000000 --- a/installer/build/boot/x86/boot.txt +++ /dev/null @@ -1,3 +0,0 @@ -${SYSDIR}splash.rle - -Press F1control and F then 1 for help, or ENTER to ${BOOTPROMPT} diff --git a/installer/build/boot/x86/gtk.cfg b/installer/build/boot/x86/gtk.cfg new file mode 100644 index 0000000..ff4b0ea --- /dev/null +++ b/installer/build/boot/x86/gtk.cfg @@ -0,0 +1,16 @@ +label installgui + menu label ^Graphical install + kernel ${KERNEL} + append ${VIDEO_MODE_GTK} initrd=${INITRD_GTK} -- quiet ${CONSOLE} +label expertgui + menu label Graphical expert install + kernel ${KERNEL} + append priority=low ${VIDEO_MODE_GTK} initrd=${INITRD_GTK} -- ${CONSOLE} +label rescuegui + menu label Graphical rescue mode + kernel ${KERNEL} + append ${VIDEO_MODE_GTK} initrd=${INITRD_GTK} rescue/enable=true -- quiet ${CONSOLE} +label autogui + menu label Graphical automated install + kernel ${KERNEL} + append auto=true priority=critical ${VIDEO_MODE_GTK} initrd=${INITRD_GTK} -- quiet ${CONSOLE} diff --git a/installer/build/boot/x86/menu.cfg b/installer/build/boot/x86/menu.cfg new file mode 100644 index 0000000..354cba6 --- /dev/null +++ b/installer/build/boot/x86/menu.cfg @@ -0,0 +1,4 @@ +include ${SYSDIR}text.cfg +include ${SYSDIR}gtk.cfg +include ${SYSDIR}amd.cfg + diff --git a/installer/build/boot/x86/prompt.cfg b/installer/build/boot/x86/prompt.cfg new file mode 100644 index 0000000..cd2957d --- /dev/null +++ b/installer/build/boot/x86/prompt.cfg @@ -0,0 +1,15 @@ +prompt 1 +display ${SYSDIR}f1.txt +timeout 0 +include ${SYSDIR}menu.cfg + +f1 ${SYSDIR}f1.txt +f2 ${SYSDIR}f2.txt +f3 ${SYSDIR}f3.txt +f4 ${SYSDIR}f4.txt +f5 ${SYSDIR}f5.txt +f6 ${SYSDIR}f6.txt +f7 ${SYSDIR}f7.txt +f8 ${SYSDIR}f8.txt +f9 ${SYSDIR}f9.txt +f0 ${SYSDIR}f10.txt diff --git a/installer/build/boot/x86/syslinux.cfg b/installer/build/boot/x86/syslinux.cfg index 9b98daa..d11c447 100644 --- a/installer/build/boot/x86/syslinux.cfg +++ b/installer/build/boot/x86/syslinux.cfg @@ -1,34 +1,21 @@ -${SYSLINUX_SERIAL} -DISPLAY ${SYSDIR}boot.txt +include ${SYSDIR}menu.cfg +default ${SYSDIR}vesamenu.c32 +prompt 0 +timeout 0 -F1 ${SYSDIR}f1.txt -F2 ${SYSDIR}f2.txt -F3 ${SYSDIR}f3.txt -F4 ${SYSDIR}f4.txt -F5 ${SYSDIR}f5.txt -F6 ${SYSDIR}f6.txt -F7 ${SYSDIR}f7.txt -F8 ${SYSDIR}f8.txt -F9 ${SYSDIR}f9.txt -F0 ${SYSDIR}f10.txt +menu background ${SYSDIR}splash.png +menu color title * #FFFFFFFF * +menu color border * #00000000 #00000000 none +menu color sel * #ffffffff #76a1d0ff * +menu color hotsel 1;7;37;40 #ffffffff #76a1d0ff * +menu color tabmsg * #ffffffff #00000000 * +menu vshift 12 +menu rows 9 +menu tabmsgrow 16 +menu timeoutrow 17 +menu tabmsg Press ENTER to boot or TAB to edit a menu entry -DEFAULT install +label help + menu label ^Help + config ${SYSDIR}prompt.cfg -LABEL install - kernel ${KERNEL} - append ${VIDEO_MODE} initrd=${INITRD} -- quiet ${CONSOLE} - -LABEL expert - kernel ${KERNEL} - append priority=low ${VIDEO_MODE} initrd=${INITRD} -- ${CONSOLE} - -LABEL rescue - kernel ${KERNEL} - append ${VIDEO_MODE} initrd=${INITRD} rescue/enable=true -- quiet ${CONSOLE} - -LABEL auto - kernel ${KERNEL} - append auto=true priority=critical ${VIDEO_MODE} initrd=${INITRD} -- quiet ${CONSOLE} - -PROMPT 1 -TIMEOUT 0 diff --git a/installer/build/boot/x86/syslinux.cfg.withgtk b/installer/build/boot/x86/syslinux.cfg.withgtk deleted file mode 100644 index 47895cf..0000000 --- a/installer/build/boot/x86/syslinux.cfg.withgtk +++ /dev/null @@ -1,46 +0,0 @@ -${SYSLINUX_SERIAL} -DISPLAY ${SYSDIR}boot.txt - -F1 ${SYSDIR}f1.txt -F2 ${SYSDIR}f2.txt -F3 ${SYSDIR}f3.txt -F4 ${SYSDIR}f4.txt -F5 ${SYSDIR}f5.txt -F6 ${SYSDIR}f6.txt -F7 ${SYSDIR}f7.txt -F8 ${SYSDIR}f8.txt -F9 ${SYSDIR}f9.txt -F0 ${SYSDIR}f10.txt - -DEFAULT install - -LABEL install - kernel ${KERNEL} - append ${VIDEO_MODE} initrd=${INITRD} -- quiet ${CONSOLE} -LABEL installgui - kernel ${KERNEL} - append ${VIDEO_MODE_GTK} initrd=${INITRD_GTK} -- quiet ${CONSOLE} - -LABEL expert - kernel ${KERNEL} - append priority=low ${VIDEO_MODE} initrd=${INITRD} -- ${CONSOLE} -LABEL expertgui - kernel ${KERNEL} - append priority=low ${VIDEO_MODE_GTK} initrd=${INITRD_GTK} -- ${CONSOLE} - -LABEL rescue - kernel ${KERNEL} - append ${VIDEO_MODE} initrd=${INITRD} rescue/enable=true -- quiet ${CONSOLE} -LABEL rescuegui - kernel ${KERNEL} - append ${VIDEO_MODE_GTK} initrd=${INITRD_GTK} rescue/enable=true -- quiet ${CONSOLE} - -LABEL auto - kernel ${KERNEL} - append auto=true priority=critical ${VIDEO_MODE} initrd=${INITRD} -- quiet ${CONSOLE} -LABEL autogui - kernel ${KERNEL} - append auto=true priority=critical ${VIDEO_MODE_GTK} initrd=${INITRD_GTK} -- quiet ${CONSOLE} - -PROMPT 1 -TIMEOUT 0 diff --git a/installer/build/boot/x86/text.cfg b/installer/build/boot/x86/text.cfg new file mode 100644 index 0000000..8a042ba --- /dev/null +++ b/installer/build/boot/x86/text.cfg @@ -0,0 +1,20 @@ +menu hshift 13 +menu width 49 +default install + +label install + menu label ^Install + kernel ${KERNEL} + append ${VIDEO_MODE} initrd=${INITRD} -- quiet ${CONSOLE} +label expert + menu label ^Expert install + kernel ${KERNEL} + append priority=low ${VIDEO_MODE} initrd=${INITRD} -- ${CONSOLE} +label rescue + menu label ^Rescue mode + kernel ${KERNEL} + append ${VIDEO_MODE} initrd=${INITRD} rescue/enable=true -- quiet ${CONSOLE} +label auto + menu label ^Automated install + kernel ${KERNEL} + append auto=true priority=critical ${VIDEO_MODE} initrd=${INITRD} -- quiet ${CONSOLE} diff --git a/installer/build/config/i386/floppy/boot.cfg b/installer/build/config/i386/floppy/boot.cfg index d770aa6..edb54c1 100644 --- a/installer/build/config/i386/floppy/boot.cfg +++ b/installer/build/config/i386/floppy/boot.cfg @@ -30,3 +30,6 @@ EXTRAUDEBS= # use klibc, not libc ONLY_KLIBC=1 + +# omit the syslinux vesamenu +NO_VESAMENU=1 diff --git a/installer/build/config/x86.cfg b/installer/build/config/x86.cfg index a9c5db4..c846c89 100644 --- a/installer/build/config/x86.cfg +++ b/installer/build/config/x86.cfg @@ -11,10 +11,7 @@ DOS_VOLUME_ID = deb00001 DOS_VOLUME_LABEL = "Debian Inst" # The image to use for a syslinux splash screen. -#SPLASH_RLE=boot/x86/pics/nicholson.rle -#SPLASH_RLE=boot/x86/pics/yazici.rle -SPLASH_RLE=boot/x86/pics/klowner.rle -#SPLASH_RLE=boot/x86/pics/polverini_b.rle +SPLASH_PNG=boot/x86/pics/klowner.png # The directory boot screens for syslinux will go in. BOOT_SCREEN_DIR = @@ -39,7 +36,6 @@ endif # syslinux is used to make the image bootable syslinux $(SYSLINUX_OPTS) $(TEMP_BOOT) - mcopy -i$(TEMP_BOOT) $(TEMP_KERNEL) ::linux mcopy -i$(TEMP_BOOT) $(TEMP_INITRD) ::initrd.gz @@ -51,21 +47,29 @@ endif makelabel $(DISK_LABEL) $(BUILD_DATE) > $(TEMP)/disk.lbl mcopy -i$(TEMP_BOOT) $(TEMP)/disk.lbl ::disk.lbl - # syslinux.cfg - if [ -n "$(INITRD_GTK)" ]; then \ - cat boot/x86/syslinux.cfg.withgtk; \ - else \ - cat boot/x86/syslinux.cfg; \ - fi \ - | bootvars-subst MEDIA_TYPE "$(MEDIA_TYPE)" \ - DEBIAN_VERSION "$(DEBIAN_VERSION)" \ - BUILD_DATE "$(BUILD_DATE)" \ - KERNEL linux INITRD initrd.gz \ - KERNEL_26 linux26 INITRD_26 initrd26.gz \ - INITRD_GTK initrdg.gz \ - VIDEO_MODE $(VIDEO_MODE) \ - VIDEO_MODE_GTK $(VIDEO_MODE_GTK) \ - | todos | mcopy -i$(TEMP_BOOT) - ::syslinux.cfg + # syslinux configs + $(foreach file,$(shell syslinux-cfgs "$(INITRD_GTK)"), \ + outfile=`basename $(file)`; \ + if [ "$(NO_VESAMENU)" ]; then \ + if [ $$outfile = prompt.cfg ]; then \ + outfile=syslinux.cfg; \ + elif [ $$outfile != menu.cfg ] && [ $$outfile != text.cfg ] ; then \ + outfile="" ; \ + fi; \ + fi; \ + if [ "$$outfile" ]; then \ + cat $(file) \ + | bootvars-subst MEDIA_TYPE "$(MEDIA_TYPE)" \ + DEBIAN_VERSION "$(DEBIAN_VERSION)" \ + BUILD_DATE "$(BUILD_DATE)" \ + KERNEL linux INITRD initrd.gz \ + KERNEL_26 linux26 INITRD_26 initrd26.gz \ + INITRD_GTK initrdg.gz \ + VIDEO_MODE $(VIDEO_MODE) \ + VIDEO_MODE_GTK $(VIDEO_MODE_GTK) \ + | todos | mcopy -i$(TEMP_BOOT) - ::$$outfile; \ + fi; \ + ) # syslinux help screens if [ -z "$(OMIT_BOOT_HELP)" ]; then \ @@ -79,10 +83,13 @@ endif ) \ fi - if [ -e $(TEMP_BOOT_SCREENS)/splash.rle ]; then \ - mcopy -i$(TEMP_BOOT) $(TEMP_BOOT_SCREENS)/splash.rle ::splash.rle; \ - fi || echo "*** Failed to add boot logo, probably out of space." >&2 - + if [ ! "$(NO_VESAMENU)" ]; then \ + mcopy -i$(TEMP_BOOT) /usr/lib/syslinux/vesamenu.c32 ::vesamenu.c32; \ + if [ -e $(TEMP_BOOT_SCREENS)/splash.png ]; then \ + mcopy -i$(TEMP_BOOT) $(TEMP_BOOT_SCREENS)/splash.png ::splash.png; \ + fi; \ + fi + # win32-loader (mcopy -i$(TEMP_BOOT) /usr/lib/win32-loader/win32-loader.exe ::setup.exe ; \ mcopy -i$(TEMP_BOOT) /usr/lib/win32-loader/g2ldr ::g2ldr ; \ @@ -110,7 +117,7 @@ arch_root: # Pad the initrd to the floppy size. dd if=$(TEMP_INITRD) bs=$(shell expr $(FLOPPY_SIZE) \* 1024) count=1 of=$(TEMP_ROOT) conv=sync -# Set up syslinux/isolinux help screens. +# Set up syslinux help screens. .PHONY: arch_boot_screens arch_boot_screens: -rm -f $(TEMP_BOOT_SCREENS)/* @@ -122,8 +129,8 @@ arch_boot_screens: SYSDIR "$(BOOT_SCREEN_DIR)" \ < $(SCREEN) > $(TEMP_BOOT_SCREENS)/`basename $(SCREEN)`\ ;) - if [ -n "$(SPLASH_RLE)" ]; then \ - cp $(SPLASH_RLE) $(TEMP_BOOT_SCREENS)/splash.rle; \ + if [ -n "$(SPLASH_PNG)" ]; then \ + cp $(SPLASH_PNG) $(TEMP_BOOT_SCREENS)/splash.png; \ fi # isolinux CD info directory, including help screens and an isolinux.cfg. @@ -136,25 +143,24 @@ arch_cd_info_dir: cp -a $(TEMP_BOOT_SCREENS)/* $(TEMP_CD_INFO_DIR) - cat boot/x86/syslinux.cfg \ - | bootvars-subst MEDIA_TYPE "$(MEDIA_TYPE)" \ - DEBIAN_VERSION "$(DEBIAN_VERSION)" \ - BUILD_DATE "$(BUILD_DATE)" \ - KERNEL /install/vmlinuz INITRD /install/initrd.gz \ - VIDEO_MODE $(VIDEO_MODE) \ - > $(TEMP_CD_INFO_DIR)/isolinux.cfg - - if [ -n "$(INITRD_GTK)" ]; then \ - cat boot/x86/syslinux.cfg.withgtk \ + # amd64 files are included, in case the CD turns out to be + # multiarch + $(foreach file,$(shell syslinux-cfgs "$(INITRD_GTK)" 1), \ + outfile=`basename $(file)`; \ + if [ $$outfile = syslinux.cfg ]; then \ + outfile=isolinux.cfg; \ + fi; \ + cat $(file) \ | bootvars-subst MEDIA_TYPE "$(MEDIA_TYPE)" \ DEBIAN_VERSION "$(DEBIAN_VERSION)" \ BUILD_DATE "$(BUILD_DATE)" \ - KERNEL /install/vmlinuz INITRD /install/initrd.gz \ + KERNEL /install/vmlinuz \ + INITRD /install/initrd.gz \ INITRD_GTK /install/gtk/initrd.gz \ VIDEO_MODE $(VIDEO_MODE) \ VIDEO_MODE_GTK $(VIDEO_MODE_GTK) \ - > $(TEMP_CD_INFO_DIR)/isolinux.cfg.withgtk; \ - fi + > $(TEMP_CD_INFO_DIR)/$$outfile; \ + ) # win32-loader cp /usr/lib/win32-loader/win32-loader.exe $(TEMP_CD_INFO_DIR)/setup.exe @@ -179,29 +185,37 @@ arch_miniiso: -rm -f $(TEMP_CD_TREE)/* mkdir -p $(TEMP_CD_TREE) cp /usr/lib/syslinux/isolinux.bin $(TEMP_CD_TREE) + cp /usr/lib/syslinux/vesamenu.c32 $(TEMP_CD_TREE) + $(foreach file,$(wildcard boot/x86/*.txt), \ cat $(file) | \ bootvars-subst MEDIA_TYPE "$(MEDIA_TYPE)" \ DEBIAN_VERSION "$(DEBIAN_VERSION)" \ BUILD_DATE "$(BUILD_DATE)" "" \ - > $(TEMP_CD_TREE)/`basename $(file)` \ - ;) - set -e; \ - $(foreach file,$(wildcard $(TEMP_BOOT_SCREENS)/*.txt), \ + > $(TEMP_CD_TREE)/`basename $(file)`; \ ) - if [ -e $(TEMP_BOOT_SCREENS)/splash.rle ]; then \ - cp $(TEMP_BOOT_SCREENS)/splash.rle $(TEMP_CD_TREE); \ + + if [ -e $(TEMP_BOOT_SCREENS)/splash.png ]; then \ + cp $(TEMP_BOOT_SCREENS)/splash.png $(TEMP_CD_TREE); \ fi ln -f $(TEMP_KERNEL) $(TEMP_CD_TREE)/linux ln -f $(TEMP_INITRD) $(TEMP_CD_TREE)/initrd.gz - cat boot/x86/syslinux.cfg \ - | bootvars-subst MEDIA_TYPE "$(MEDIA_TYPE)" \ - DEBIAN_VERSION "$(DEBIAN_VERSION)" \ - BUILD_DATE "$(BUILD_DATE)" \ - KERNEL linux INITRD initrd.gz \ - VIDEO_MODE $(VIDEO_MODE) \ - | todos > $(TEMP_CD_TREE)/isolinux.cfg - ln -f $(TEMP_INITRD) $(TEMP_CD_TREE)/initrd.gz + $(foreach file,$(shell syslinux-cfgs "$(INITRD_GTK)"), \ + outfile=`basename $(file)`; \ + if [ $$outfile = syslinux.cfg ]; then \ + outfile=isolinux.cfg; \ + fi; \ + cat $(file) \ + | bootvars-subst MEDIA_TYPE "$(MEDIA_TYPE)" \ + DEBIAN_VERSION "$(DEBIAN_VERSION)" \ + BUILD_DATE "$(BUILD_DATE)" \ + KERNEL linux \ + INITRD initrd.gz \ + INITRD_GTK /install/gtk/initrd.gz \ + VIDEO_MODE $(VIDEO_MODE) \ + VIDEO_MODE_GTK $(VIDEO_MODE_GTK) \ + | todos > $(TEMP_CD_TREE)/$$outfile; \ + ) # win32-loader cp /usr/lib/win32-loader/win32-loader.exe $(TEMP_CD_TREE)/setup.exe @@ -225,38 +239,33 @@ arch_miniiso: -no-emul-boot -boot-load-size 4 -boot-info-table \ -o $(TEMP_MINIISO) $(TEMP_CD_TREE) -# Netboot images, including a small iso with the netboot stuff on it. +# Netboot files .PHONY: arch_netboot_dir arch_netboot_dir: -rm -f $(TEMP_NETBOOT_DIR) mkdir -p $(TEMP_NETBOOT_DIR)/$(NETBOOT_PATH) cp $(TEMP_INITRD) $(TEMP_NETBOOT_DIR)/$(NETBOOT_PATH) cp $(TEMP_KERNEL) $(TEMP_NETBOOT_DIR)/$(NETBOOT_PATH)/linux - cp /usr/lib/syslinux/pxelinux.0 $(TEMP_NETBOOT_DIR)/$(NETBOOT_PATH) mkdir -p $(TEMP_NETBOOT_DIR)/$(NETBOOT_PATH)/pxelinux.cfg - cat boot/x86/syslinux.cfg \ - | bootvars-subst MEDIA_TYPE "$(MEDIA_TYPE)" \ - DEBIAN_VERSION "$(DEBIAN_VERSION)" \ - BUILD_DATE "$(BUILD_DATE)" \ - SYSDIR "$(BOOT_SCREEN_DIR)" \ - KERNEL $(NETBOOT_PATH)/linux \ - INITRD $(NETBOOT_PATH)/initrd.gz \ - VIDEO_MODE $(VIDEO_MODE) \ - > $(TEMP_NETBOOT_DIR)/$(NETBOOT_PATH)/pxelinux.cfg/default - - mkdir -p $(TEMP_NETBOOT_DIR)/$(NETBOOT_PATH)/pxelinux.cfg.serial-9600 - cat boot/x86/syslinux.cfg \ - | bootvars-subst MEDIA_TYPE "$(MEDIA_TYPE)" \ - DEBIAN_VERSION "$(DEBIAN_VERSION)" \ - BUILD_DATE "$(BUILD_DATE)" \ - SYSDIR "$(BOOT_SCREEN_DIR)" \ - KERNEL $(NETBOOT_PATH)/linux \ - INITRD $(NETBOOT_PATH)/initrd.gz \ - CONSOLE "console=ttyS0,9600n8" SYSLINUX_SERIAL \ - "SERIAL 0 9600 0" \ - VIDEO_MODE $(VIDEO_MODE) \ - > $(TEMP_NETBOOT_DIR)/$(NETBOOT_PATH)/pxelinux.cfg.serial-9600/default + mkdir -p $(TEMP_NETBOOT_DIR)/$(BOOT_SCREEN_DIR) + cp /usr/lib/syslinux/vesamenu.c32 $(TEMP_NETBOOT_DIR)/$(BOOT_SCREEN_DIR) + + $(foreach file,$(shell syslinux-cfgs "$(INITRD_GTK)"), \ + outfile=$(TEMP_NETBOOT_DIR)/$(BOOT_SCREEN_DIR)/`basename $(file)`; \ + if [ `basename $(file)` = syslinux.cfg ]; then \ + outfile=$(TEMP_NETBOOT_DIR)/$(NETBOOT_PATH)/pxelinux.cfg/default; \ + fi; \ + cat $(file) \ + | bootvars-subst MEDIA_TYPE "$(MEDIA_TYPE)" \ + DEBIAN_VERSION "$(DEBIAN_VERSION)" \ + BUILD_DATE "$(BUILD_DATE)" \ + SYSDIR "$(BOOT_SCREEN_DIR)" \ + KERNEL $(NETBOOT_PATH)/linux \ + INITRD $(NETBOOT_PATH)/initrd.gz \ + VIDEO_MODE $(VIDEO_MODE) \ + > $$outfile; \ + ) # This symlink is required as pxelinux always looks in the root # of the tftp server for its config. @@ -267,12 +276,11 @@ arch_netboot_dir: rm -f $(TEMP_NETBOOT_DIR)/pxelinux.0 ln -sf $(NETBOOT_PATH)/pxelinux.0 $(TEMP_NETBOOT_DIR)/pxelinux.0 - mkdir -p $(TEMP_NETBOOT_DIR)/$(BOOT_SCREEN_DIR) set -e; \ $(foreach file,$(wildcard $(TEMP_BOOT_SCREENS)/*.txt), \ cp $(file) $(TEMP_NETBOOT_DIR)/$(BOOT_SCREEN_DIR); \ ) - if [ -n "$(SPLASH_RLE)" ]; then \ - cp $(SPLASH_RLE) $(TEMP_NETBOOT_DIR)/$(BOOT_SCREEN_DIR)/splash.rle; \ + if [ -n "$(SPLASH_PNG)" ]; then \ + cp $(SPLASH_PNG) $(TEMP_NETBOOT_DIR)/$(BOOT_SCREEN_DIR)/splash.png; \ fi diff --git a/installer/build/util/syslinux-cfgs b/installer/build/util/syslinux-cfgs new file mode 100755 index 0000000..2508154 --- /dev/null +++ b/installer/build/util/syslinux-cfgs @@ -0,0 +1,23 @@ +#!/bin/sh +# List syslinux cfg files to include on an image. + +INCLUDE_GTK="$1" +INCLUDE_AMD="$2" + +filter_gtk () { + if [ -n "$INCLUDE_GTK" ]; then + cat + else + grep -v gtk + fi +} + +filter_amd () { + if [ -n "$INCLUDE_AMD" ]; then + cat + else + grep -v amd + fi +} + +ls -1 boot/x86/*.cfg | filter_gtk | filter_amd diff --git a/installer/debian/changelog b/installer/debian/changelog index 0301a2e..b2b9762 100644 --- a/installer/debian/changelog +++ b/installer/debian/changelog @@ -34,6 +34,13 @@ debian-installer (2008xxxx) UNRELEASED; urgency=low * The i386 root floppy has been changed to a bare gzipped cpio file, null-paddded to the end of the floppy. This needs rootskel-bootfloppy version 1.60. + * Use syslinux's vesamenu for all x86 images except the boot floppy. + * Split up syslinux config files. + * Note that the pxelinux config file for serial terminals has been dropped, + at least for now, since the split config files made it too difficult to + set up. + * Note that this needs debian-cd changes to change its code for + merging syslinux configs when producing i386+amd64 CDs. -- Frans Pop <[EMAIL PROTECTED]> Wed, 09 Apr 2008 11:19:35 +0200
Index: tools/boot/lenny/boot-x86 =================================================================== --- tools/boot/lenny/boot-x86 (revision 1585) +++ tools/boot/lenny/boot-x86 (working copy) @@ -181,6 +181,10 @@ mv boot$N/$ISOLINUXDIR/f3.txt.withgtk boot$N/$ISOLINUXDIR/f3.txt mv boot$N/$ISOLINUXDIR/f4.txt.withgtk boot$N/$ISOLINUXDIR/f4.txt mv boot$N/$ISOLINUXDIR/isolinux.cfg.withgtk boot$N/$ISOLINUXDIR/isolinux.cfg + else + # Remove gtk isolinux config files. + rm -f boot$N/$ISOLINUXDIR/gtk.cfg + rm -f boot$N/$ISOLINUXDIR/amdgtk.cfg fi rm -f boot$N/$ISOLINUXDIR/isolinux.cfg.with* 2>/dev/null || true @@ -213,11 +217,20 @@ mv $file.tmp $file done - cat boot$N/isolinux-amd64/isolinux.cfg | awk ' - /^[Ll][Aa][Bb][Ee][Ll]/ { printf("label amd64-%s\n", $2) } - /^[Dd][Ee][Ff][Aa][Uu][Ll][Tt]/ { printf("default64 amd64-%s\n", $2) } - /[Kk][Ee][Rr][Nn][Ee][Ll]/ { print $0 } - /[Aa][Pp][Pp][Ee][Nn][Dd]/ { print $0 }' >> boot$N/isolinux/isolinux.cfg + if [ -e boot$N/isolinux/amd.cfg ]; then + # Split isolinux configs exist, so the amd.cfg will + # be loaded and set things up for amd64. No munging + # needed. + : + else + # This is compatability code for old versions of d-i that + # do not use split isolinux configs. + cat boot$N/isolinux-amd64/isolinux.cfg | awk ' + /^[Ll][Aa][Bb][Ee][Ll]/ { printf("label amd64-%s\n", $2) } + /^[Dd][Ee][Ff][Aa][Uu][Ll][Tt]/ { printf("default64 amd64-%s\n", $2) } + /[Kk][Ee][Rr][Nn][Ee][Ll]/ { print $0 } + /[Aa][Pp][Pp][Ee][Nn][Dd]/ { print $0 }' >> boot$N/isolinux/isolinux.cfg + fi sed -i -e "/^arch=/d ; /^i386\//p; s/^i386\//amd64\//; s/=$INSTALLDIR_i386\//=$INSTALLDIR_amd64\//g" \ boot$N/win32-loader.ini @@ -227,6 +240,15 @@ mkdir -p boot$N/isolinux mv -f boot$N/isolinux-amd64/* boot$N/isolinux fi + + if [ -e boot$N/isolinux/amd.cfg ]; then + # Split isolinux configs exist. Remove the amd.cfg + # to avoid it being loaded on a disc that does not + # have both amd64 and i386 dirs. + rm -f boot$N/isolinux/amd.cfg + rm -f boot$N/isolinux/amdgtk.cfg + fi + rm -rf boot$N/isolinux-amd64 fi
signature.asc
Description: Digital signature