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

Re: Bug#505243: Multiarch CD directly boots in the amd64 installer



block 505243 with 505496
tags 505243 - patch
severity 505243 minor
thanks

On Wednesday 12 November 2008, Frans Pop wrote:
> On Tuesday 11 November 2008, Frank Lin PIAT wrote:
> > Here's a proper patch against SVN repository:
> >
> > I'll try to build a CD, and test it tomorrow on some computers at
> > work.
>
> I'm afraid that IMO this patch is not a very good idea.

OK, here's an alternative patch against debian-cd with a workaround for 
this issue. This patch is very much based on the research done by 
Franklin as discussed on #d-boot a few days ago.

Basically the patch comments out the default64 line in amdtext.cfg and 
adds the following to prompt.cfg:

default install-select
label install-select
    kernel ifcpu64.c32
    append amd64-install -- install

The workaround is quite neat as it _only_ applies to the multi-arch CD/DVD 
and _only_ affects the case where the user hits 'enter' at the boot 
prompt for the help screens. All existing boot options and defaults 
remain unchanged.

The long term solution we think has to come from syslinux; Franklin has 
filed a bug (#505496).

There is one known issue with the patch.
In VirtualBox hitting 'enter' will incorrectly select the amd64 installer. 
This happens both on a host system running amd64 as on one running i386 
and having a 32-bit processor. In qemu the correct kernel is selected.
This issue also has a bug against syslinux (#505494).

An amd64/i386 businesscard CD image (121MB) that was built using both this 
patch and the one proposed in #505750 (return to syslinux graphical menu 
from help screens) is temporarily available for testing at:
http://cdimage.debian.org/cdimage/unofficial/fjp/debian-50-amd64-i386-BC-1.iso

Unless there are objections I will commit this patch to debian-cd in a few 
days.

Cheers,
FJP

diff --git a/tools/boot/lenny/boot-x86 b/tools/boot/lenny/boot-x86
index 4ce012e..4d2b5a2 100644
--- a/tools/boot/lenny/boot-x86
+++ b/tools/boot/lenny/boot-x86
@@ -230,6 +230,16 @@ if [ "$THISTYPE" = "isolinux" ]; then
 			   s/=$INSTALLDIR_i386\//=$INSTALLDIR_amd64\//g" \
 			boot$N/win32-loader.ini
 
+		# Workaround for #505243
+		# Syslinux does not correctly handle a default64 option
+		# in combination with vesamenu.
+		# Instead, add special default label to automatically select
+		# i386/amd64 if user hits enter from help screens.
+		cp -f $CDDIR/../syslinux/usr/lib/syslinux/ifcpu64.c32 boot$N/isolinux/
+		sed -i "/^include menu.cfg/ a\default install-select\n\nlabel install-select\n\tkernel \ifcpu64.c32\n\tappend amd64-install -- install" \
+			boot$N/isolinux/prompt.cfg
+		sed -i "/default64 amd64-install/ s/^/#/" \
+			boot$N/isolinux/amdtext.cfg
 	else
 		if [ "$ARCH" = amd64 ]; then
 		        mkdir -p boot$N/isolinux

Attachment: signature.asc
Description: This is a digitally signed message part.


Reply to: