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