[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: syslinux vesamenu



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 <fjp@debian.org>  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
 	

Attachment: signature.asc
Description: Digital signature


Reply to: