El 10/08/14 18:31, Adrian Gibanel Lopez escribió:
Source: live-config
Severity: wishlist
** With Isolinux / Syslinux you should use the ifcpu64.c32 comboot module as
seen in tails:
https://git-tails.immerda.ch/tails/tree/config/binary_local-
hooks/20-syslinux_detect_cpu?id=deb15c765e2b34fe587c96ca590981a59a278922
Upstream documentation: http://www.syslinux.org/wiki/index.php/Ifcpu64.c32
Thank you!
I attach a patch for Isolinux / Syslinux implementation for cpu detection.
Please advise how to improve the implementation so that it can be
accepted upstream.
Thank you.
adrian15
--
Support free software. Donate to Super Grub Disk. Apoya el software
libre. Dona a Super Grub Disk. http://www.supergrubdisk.org/donate/
diff -urN original/usr/lib/live/build/binary_syslinux
fork_cpu64bit_detection/usr/lib/live/build/binary_syslinux
--- original/usr/lib/live/build/binary_syslinux 2014-08-14 02:42:20.007666770
+0000
+++ fork_cpu64bit_detection/usr/lib/live/build/binary_syslinux 2014-08-15
05:08:58.701948081 +0000
@@ -161,6 +161,12 @@
;;
esac
+# Copy necessary syslinux modules
+for module in ifcpu64.c32
+do
+ cp "chroot/usr/lib/syslinux/${module}" "${_TARGET}/"
+done
+
# Configuring files
if [ -e "${_TARGET}/live.cfg.in" ]
then
@@ -183,6 +189,22 @@
;;
*)
+ _AMD64_486_NUMBER="0"
+
+ for _FLAVOUR in ${LB_LINUX_FLAVOURS}
+ do
+ if [ "${_FLAVOUR}" = "amd64" -o "${_FLAVOUR}" =
"486" ] ; then
+
_AMD64_486_NUMBER="$((${_AMD64_486_NUMBER} + 1))"
+ fi
+ done
+
+ if [ "${_AMD64_486_NUMBER}" -ge 2 ] ; then
+ _AMD64_LABEL=$(cat "${_TARGET}/live.cfg.in" |
grep "^label" | grep -v "failsafe" | sed 's/label //g' | sed -e
"s|@FLAVOUR@|""amd64""|g")
+ _486_LABEL=$(cat "${_TARGET}/live.cfg.in" |
grep "^label" | grep -v "failsafe" | sed 's/label //g' | sed -e
"s|@FLAVOUR@|""486""|g")
+ _AUTO_LABEL=$(cat "${_TARGET}/live.cfg.in" |
grep "^label" | grep -v "failsafe" | sed 's/label //g' | sed -e
"s|@FLAVOUR@|""autodetect""|g")
+ _AUTO_MENU_LABEL=$(cat "${_TARGET}/live.cfg.in"
| grep "menu label" | grep -v "failsafe" | sed 's/.*menu label //g' | sed -e
"s|@FLAVOUR@|""auto""|g")
+ fi
+
_NUMBER="0"
for _FLAVOUR in ${LB_LINUX_FLAVOURS}
@@ -197,7 +219,22 @@
echo "" >> "${_TARGET}/live.cfg"
grep -v 'menu default'
"${_TARGET}/live.cfg.in" >> "${_TARGET}/live.cfg"
else
- cat "${_TARGET}/live.cfg.in" >>
"${_TARGET}/live.cfg"
+ if [ "${_AMD64_486_NUMBER}" -ge 2 ] ;
then
+ cat << EOF >>
"${_TARGET}/live.cfg"
+label ${_AUTO_LABEL}
+ menu label ${_AUTO_MENU_LABEL}
+ com32 ifcpu64.c32
+ append ${_AMD64_LABEL} -- ${_486_LABEL} -- ${_486_LABEL}
+
+EOF
+ fi
+
+
+ if [ "${_AMD64_486_NUMBER}" -ge 2 ] ;
then
+ grep -v 'menu default'
"${_TARGET}/live.cfg.in" >> "${_TARGET}/live.cfg"
+ else
+ cat "${_TARGET}/live.cfg.in" >>
"${_TARGET}/live.cfg"
+ fi
fi
sed -i -e "s|@FLAVOUR@|${_FLAVOUR}|g" \