summaryrefslogtreecommitdiff
path: root/helpers/lh_binary_syslinux
diff options
context:
space:
mode:
authorJesse Hathaway <jesse@mbuki-mvuki.org>2007-10-13 13:34:59 -0400
committerDaniel Baumann <daniel@debian.org>2011-03-09 18:22:27 +0100
commit1bea707a71a750a1277376758d5a73df2261cb47 (patch)
tree25b4db3ae62a2c024afe0cbd9544c4b764cc298b /helpers/lh_binary_syslinux
parent2a5637facdd807d7724251a9983d4c90a676c5c3 (diff)
downloadvyos-live-build-1bea707a71a750a1277376758d5a73df2261cb47.tar.gz
vyos-live-build-1bea707a71a750a1277376758d5a73df2261cb47.zip
Unify syslinux code, so that pxelinux isolinux & usb-hdd
share more code. Change pxelinux directory setup to match debian installer Change syslinux templates to use {$VAR} syntax so the templates are easier to read Remove etch support for syslinux, since INCLUDE syntax is not available in etch syslinux v3.31
Diffstat (limited to 'helpers/lh_binary_syslinux')
-rwxr-xr-xhelpers/lh_binary_syslinux614
1 files changed, 209 insertions, 405 deletions
diff --git a/helpers/lh_binary_syslinux b/helpers/lh_binary_syslinux
index 3af3790f3..ff79f086c 100755
--- a/helpers/lh_binary_syslinux
+++ b/helpers/lh_binary_syslinux
@@ -82,18 +82,10 @@ Syslinux_memtest_entry ()
MENULABEL=`Utf8_to_latin1 "${2}"`
KERNEL="${3}"
- # syslinux << 3.36 lacks support to file/path
- if [ "$(basename ${DESTDIR_LIVE})" != "binary" ]
- then
- KERNEL="${DIRECTORY}/${KERNEL}"
- fi
-
MEMTEST="${MEMTEST}\nLABEL ${LABEL}\n"
-
# Write the menu label if the syslinux menu is being use
MEMTEST="${MEMTEST}\tMENU LABEL ${MENULABEL}\n"
-
- MEMTEST="${MEMTEST}\tkernel /${KERNEL}\n"
+ MEMTEST="${MEMTEST}\tkernel ${LIVE_KERNEL_PATH}/${KERNEL}\n"
MEMTEST="$(/bin/echo ${MEMTEST} | sed -e 's#//#/#g')"
}
@@ -106,21 +98,29 @@ Syslinux_live_entry ()
INITRD="${4}"
APPEND="${5}"
- # syslinux << 3.36 lacks support to file/path
- if [ "${LH_BINARY_IMAGES}" != "net" ] && [ "$(basename ${DESTDIR_LIVE})" != "binary" ]
- then
- DIRECTORY="$(basename ${DESTDIR_LIVE})"
- KERNEL="${DIRECTORY}/${KERNEL}"
- INITRD="${DIRECTORY}/${INITRD}"
- fi
-
+ if [ ${LH_BINARY_IMAGES} = "iso" ] || [ ${LH_BINARY_IMAGES} = "usb-hdd" ]
+ then
+ num=$(ls -1 ${KERNEL_PATH}|grep 'vmlinuz.\.img$'|wc -l)
+ num=$(($num +1))
+ mv ${KERNEL_PATH}/${KERNEL} ${KERNEL_PATH}/vmlinuz${num}.img
+ mv ${KERNEL_PATH}/${INITRD} ${KERNEL_PATH}/initrd${num}.img
+ KERNEL=vmlinuz${num}.img
+ INITRD=initrd${num}.img
+ fi
+
+ # Regular kernel
LINUX_LIVE="${LINUX_LIVE}\nLABEL ${LABEL}\n"
-
# Write the menu label if the syslinux menu is being use
LINUX_LIVE="${LINUX_LIVE}\tMENU LABEL ${MENULABEL}\n"
+ LINUX_LIVE="${LINUX_LIVE}\tkernel ${LIVE_KERNEL_PATH}/${KERNEL}\n"
+ LINUX_LIVE="${LINUX_LIVE}\tappend initrd=${LIVE_KERNEL_PATH}/${INITRD} boot=${INITFS} ${LH_BOOTAPPEND_LIVE} ${APPEND}\n"
- LINUX_LIVE="${LINUX_LIVE}\tkernel /${KERNEL}\n"
- LINUX_LIVE="${LINUX_LIVE}\tappend initrd=/${INITRD} boot=${INITFS} LH_BOOTAPPEND_LIVE ${APPEND}\n"
+ # Failsafe kernel
+ LINUX_LIVE="${LINUX_LIVE}\nLABEL ${LABEL}-failsafe\n"
+ # Write the menu label if the syslinux menu is being use
+ LINUX_LIVE="${LINUX_LIVE}\tMENU LABEL ${MENULABEL} Failsafe\n"
+ LINUX_LIVE="${LINUX_LIVE}\tkernel ${LIVE_KERNEL_PATH}/${KERNEL}\n"
+ LINUX_LIVE="${LINUX_LIVE}\tappend initrd=${LIVE_KERNEL_PATH}/${INITRD} boot=${INITFS} ${LH_BOOTAPPEND_LIVE} ${APPEND} ${FAILSAFE}\n"
}
Syslinux_install_entry ()
@@ -130,25 +130,135 @@ Syslinux_install_entry ()
INITRD="${3}"
APPEND="${4}"
- # syslinux << 3.36 lacks support to file/path
- if [ "${LH_BINARY_IMAGES}" != "net" ] && [ "$(basename ${DESTDIR_INSTALL})" != "binary" ]
- then
- DIRECTORY="$(basename ${DESTDIR_INSTALL})"
- KERNEL="${DIRECTORY}/${KERNEL}"
- INITRD="${DIRECTORY}/${INITRD}"
- fi
-
# Boot in quiet mode
if [ "${LH_DISTRIBUTION}" != "etch" ] && [ "${LABEL}" != "rescue" ] && [ "${LABEL}" != "rescuegui" ]
then
APPEND="${APPEND} quiet"
fi
- LINUX_INSTALL="${LINUX_INSTALL}\nLABEL ${LABEL}\n"
- LINUX_INSTALL="${LINUX_INSTALL}\tkernel /${KERNEL}\n"
- LINUX_INSTALL="${LINUX_INSTALL}\tappend initrd=/${INITRD} ${APPEND} LH_BOOTAPPEND_INSTALL\n"
+ for TYPE in Install Expert Rescue Auto
+ do
+ case "${TYPE}" in
+ Install)
+ TAPPEND="${APPEND}"
+ ;;
+ Expert)
+ TAPPEND="priority=low ${APPEND}"
+ ;;
+ Rescue)
+ TAPPEND="rescue/enable=true ${APPEND}"
+ ;;
+ Auto)
+ TAPPEND="rescue/enable=true ${APPEND}"
+ ;;
+ esac
+
+ LINUX_INSTALL="${LINUX_INSTALL}\nLABEL ${LABEL}${TYPE}\n"
+ LINUX_INSTALL="${LINUX_INSTALL}\tMENU LABEL Start ${LABEL} ${TYPE}\n"
+ LINUX_INSTALL="${LINUX_INSTALL}\tkernel ${LIVE_INSTALL_KERNEL_PATH}/${KERNEL}\n"
+ LINUX_INSTALL="${LINUX_INSTALL}\tappend initrd=${LIVE_INSTALL_KERNEL_PATH}/${INITRD} ${TAPPEND} ${LH_BOOTAPPEND_INSTALL}\n"
+ done
}
+Copy_syslinux_templates ()
+{
+ cp -r "${TEMPLATES}"/common/* ${SCREEN_PATH}
+
+ if [ "${LH_SYSLINUX_MENU}" = "disabled" ]
+ then
+ cp -r "${TEMPLATES}"/normal/* ${SCREEN_PATH}
+ else
+ cp -r "${TEMPLATES}"/menu/* ${SCREEN_PATH}
+ # Grab menu binary from chroot
+ MENUMODULE=$(grep 'menu.c32' ${TEMPLATES}/menu/header.cfg | sed 's,default\s*.*/\(.*menu.c32\)$,\1,g')
+ cp chroot/usr/lib/syslinux/"${MENUMODULE}" ${DATA_PATH}
+ fi
+
+ if [ -d "${TEMPLATES}"/"${LH_LANGUAGE}" ]
+ then
+ cp -r "${TEMPLATES}"/"${LH_LANGUAGE}"/* ${SCREEN_PATH}
+ else
+ cp -r "${TEMPLATES}"/en/* ${SCREEN_PATH}
+ fi
+
+ for FILE in ${SCREEN_PATH}/*.live
+ do
+ mv ${FILE} $(dirname ${FILE})/$(basename ${FILE} .live)
+ done
+
+ if [ "${LH_DEBIAN_INSTALLER}" != "disabled" ]
+ then
+ for FILE in ${SCREEN_PATH}/*.install
+ do
+ mv ${FILE} $(dirname ${FILE})/$(basename ${FILE} .install)
+ done
+
+ if [ "${LH_ARCHITECTURE}" = "amd64" ] || [ "${LH_ARCHITECTURE}" = "i386" ] || [ "${LH_ARCHITECTURE}" = "powerpc" ]
+ then
+ for FILE in ${SCREEN_PATH}/*.install.g-i
+ do
+ mv ${FILE} $(dirname ${FILE})/$(basename ${FILE} .install.g-i)
+ done
+ else
+ rm -f ${SCREEN_PATH}/*.install.g-i
+ fi
+ else
+ rm -f ${SCREEN_PATH}/*.install*
+ fi
+
+ # Copying custom splash screen
+ if [ "${LH_SYSLINUX_SPLASH}" = "none" ]
+ then
+ # no splash screen
+ SPLASH=""
+ rm -f ${SCREEN_PATH}/splash.rle
+ rm -f ${DATA_PATH}/splash.png
+ else
+ if [ -z "${LH_SYSLINUX_SPLASH}" ]
+ then
+ if [ "${LH_SYSLINUX_MENU}" = "disabled" ]
+ then
+ SPLASH="${LIVE_DATA_PATH}/splash.rle"
+ else
+ SPLASH="${LIVE_DATA_PATH}/splash.png"
+ fi
+ else
+ if [ ! -e "${LH_SYSLINUX_SPLASH}" ]
+ then
+ Echo_error "${LH_SYSLINUX_SPLASH} doen't exist"
+ exit 1
+ else
+ rm -f ${SCREEN_PATH}/splash.rle
+ rm -f ${DATA_PATH}/splash.png
+ cp -f "${LH_SYSLINUX_SPLASH}" ${DATA_PATH}
+ SPLASH="${LIVE_DATA_PATH}/$(basename ${LH_SYSLINUX_SPLASH})"
+ fi
+ fi
+ fi
+}
+
+Configure_syslinux_templates ()
+{
+ templates=$(find ${SYSLINUX_PATH} -type f -name '*.cfg' -o -name '*.txt' -o -name 'default')
+ for template_file in ${templates}; do
+ sed -i -e "s@{\$LINUX_LIVE}@${LINUX_LIVE}@" \
+ -e "s@{\$LINUX_INSTALL}@${LINUX_INSTALL}@" \
+ -e "s@{\$MEMTEST}@${MEMTEST}@" \
+ -e "s@{\$LIVE_SCREEN_PATH}@${LIVE_SCREEN_PATH}@" \
+ -e "s@{\$LIVE_DATA_PATH}@${LIVE_DATA_PATH}@" \
+ -e "s@{\$LIVE_KERNEL_PATH}@${LIVE_KERNEL_PATH}@" \
+ -e "s@{\$SPLASH}@${SPLASH}@" \
+ -e "s/{\$LH_DISTRIBUTION}/${LH_DISTRIBUTION}/" \
+ -e "s/{\$LH_DATE}/$(date +%Y%m%d)/" \
+ -e "s/{\$LH_MEDIA}/${MEDIA}/" \
+ -e "s/{\$LH_VERSION}/${VERSION}/" \
+ -e "s/{\$LINUX_TIMEOUT}/${LH_SYSLINUX_TIMEOUT}/" \
+ -e 's/\ $//g' \
+ $template_file
+ done
+}
+
+# Setting up common variables
case "${LH_INITRAMFS}" in
casper)
INITFS="casper"
@@ -159,53 +269,51 @@ case "${LH_INITRAMFS}" in
;;
esac
-# Setting destination directory
+# Setting boot method specific variables
case "${LH_BINARY_IMAGES}" in
iso)
- case "${LH_INITRAMFS}" in
- casper)
- DESTDIR_LIVE="binary/casper"
- ;;
-
- live-initramfs)
- DESTDIR_LIVE="binary/live"
- ;;
- esac
-
- DESTDIR_INSTALL="binary/install"
+ SYSLINUX_PATH="binary/isolinux"
+ KERNEL_PATH="binary/${INITFS}"
+ SCREEN_PATH="${SYSLINUX_PATH}"
+ DATA_PATH="${SCREEN_PATH}/data"
+ LIVE_KERNEL_PATH="/${INITFS}"
+ LIVE_INSTALL_KERNEL_PATH="/install"
+ LIVE_SCREEN_PATH="/isolinux"
+ LIVE_DATA_PATH="${LIVE_SCREEN_PATH}/data"
+ MEDIA="CD-ROM"
;;
net)
- DESTDIR_LIVE="tftpboot"
- DESTDIR_INSTALL="tftpboot"
+ SYSLINUX_PATH="tftpboot"
+ KERNEL_PATH="${SYSLINUX_PATH}/debian-live/${LH_ARCHITECTURE}"
+ SCREEN_PATH="${SYSLINUX_PATH}/debian-live/${LH_ARCHITECTURE}/boot-screens"
+ DATA_PATH="${SCREEN_PATH}/data"
+ LIVE_KERNEL_PATH="debian-live/${LH_ARCHITECTURE}"
+ LIVE_INSTALL_KERNEL_PATH="debian-install/${LH_ARCHITECTURE}"
+ LIVE_SCREEN_PATH="debian-live/${LH_ARCHITECTURE}/boot-screens"
+ LIVE_DATA_PATH="${LIVE_SCREEN_PATH}/data"
+ MEDIA="netboot"
;;
tar|usb-hdd)
- case "${LH_INITRAMFS}" in
- casper)
- DESTDIR_LIVE="binary/casper"
- ;;
-
- live-initramfs)
- DESTDIR_LIVE="binary/live"
- ;;
- esac
-
- DESTDIR_INSTALL="binary/install"
-
- # syslinux << 3.36 lacks support for long file/path
- if [ "${LH_DISTRIBUTION}" = "etch" ]
- then
- DESTDIR_LIVE="binary"
- DESTDIR_INSTALL="binary"
- fi
+ SYSLINUX_PATH="binary/syslinux"
+ KERNEL_PATH="binary/${INITFS}"
+ SCREEN_PATH="${SYSLINUX_PATH}"
+ DATA_PATH="${SCREEN_PATH}/data"
+ LIVE_KERNEL_PATH="/${INITFS}"
+ LIVE_INSTALL_KERNEL_PATH="/install"
+ LIVE_SCREEN_PATH="/syslinux"
+ LIVE_DATA_PATH="${LIVE_SCREEN_PATH}/data"
+ MEDIA="hd-media"
;;
esac
Check_multiarchitecture
-# Creating directory
-mkdir -p "${DESTDIR_LIVE}"
+# Creating directories
+mkdir -p "${KERNEL_PATH}"
+mkdir -p "${SCREEN_PATH}"
+mkdir -p "${DATA_PATH}"
# Setting boot parameters
if [ -n "${LH_ENCRYPTION}" ]
@@ -254,11 +362,11 @@ if [ "${LH_BINARY_IMAGES}" = "net" ]
then
case "${LH_NET_FILESYSTEM}" in
nfs)
- LH_BOOTAPPEND_LIVE="${LH_BOOTAPPEND_LIVE} netboot=nfs nfsroot=LH_NET_SERVER:LH_NET_PATH"
+ LH_BOOTAPPEND_LIVE="${LH_BOOTAPPEND_LIVE} netboot=nfs nfsroot=${LH_NET_SERVER}:${LH_NET_PATH}"
;;
cifs)
- LH_BOOTAPPEND_LIVE="${LH_BOOTAPPEND_LIVE} netboot=cifs nfsroot=//LH_NET_SERVERLH_NET_PATH"
+ LH_BOOTAPPEND_LIVE="${LH_BOOTAPPEND_LIVE} netboot=cifs nfsroot=//${LH_NET_SERVER}${LH_NET_PATH}"
;;
*)
@@ -279,6 +387,12 @@ LH_BOOTAPPEND_LIVE="$(echo ${LH_BOOTAPPEND_LIVE} | sed -e 's/ //')"
FAILSAFE="noapic noapm nodma nomce nolapic nosmp vga=normal"
# Assembling kernel configuration
+if [ ${LH_BINARY_IMAGES} = "net" ]
+then
+ mv ${SYSLINUX_PATH}/vmlinuz* ${KERNEL_PATH}
+ mv ${SYSLINUX_PATH}/initrd* ${KERNEL_PATH}
+ mv ${SYSLINUX_PATH}/memtest ${KERNEL_PATH}
+fi
# Default entries
DEFAULT_FLAVOUR="$(echo ${LH_LINUX_FLAVOURS} | awk '{ print $1 }')"
@@ -286,7 +400,6 @@ DEFAULT_KERNEL="$(basename chroot/boot/vmlinuz-*${DEFAULT_FLAVOUR})"
DEFAULT_INITRD="initrd.img-$(echo ${DEFAULT_KERNEL} | sed -e 's/vmlinuz-//')"
Syslinux_live_entry "live" "${LH_SYSLINUX_MENU_LIVE_ENTRY}" "${DEFAULT_KERNEL}" "${DEFAULT_INITRD}"
-Syslinux_live_entry "live-failsafe" "${LH_SYSLINUX_MENU_LIVE_FAILSAFE_ENTRY}" "${DEFAULT_KERNEL}" "${DEFAULT_INITRD}" "${FAILSAFE}"
if [ "$(echo ${LH_LINUX_FLAVOURS} | wc -w)" -gt "1" ]
then
@@ -297,12 +410,9 @@ then
INITRD="initrd.img-${KERNEL_VERSION}"
Syslinux_live_entry "live-${KERNEL_VERSION}" "${LH_SYSLINUX_MENU_LIVE_ENTRY}" "${KERNEL_IMAGE}" "${INITRD}"
- Syslinux_live_entry "live-${KERNEL_VERSION}-failsafe" "${LH_SYSLINUX_MENU_LIVE_FAILSAFE_ENTRY}" "${KERNEL_IMAGE}" "${INITRD}" "${FAILSAFE}"
done
fi
-LINUX_LIVE="$(/bin/echo ${LINUX_LIVE} | sed -e 's/binary//g' -e 's#//#/#g')"
-
# Assembling debian-installer configuration
if [ "${LH_DEBIAN_INSTALLER}" != "disabled" ]
then
@@ -314,388 +424,82 @@ then
INITRD_GI="gtk/initrd.gz"
APPEND_GI="video=vesa:ywrap,mtrr vga=788"
- # Workaround for syslinux (<< 3.36) which doesn't support long file/path names
- if [ "${LH_DISTRIBUTION}" = "etch" ]
- then
- if [ "${LH_BINARY_IMAGES}" = "tar" ] || [ "${LH_BINARY_IMAGES}" = "usb-hdd" ]
- then
- VMLINUZ_DI="vmlinuz.di"
- INITRD_DI="initrddi.gz"
-
- VMLINUZ_GI="vmlinuz.gi"
- INITRD_GI="initrdgi.gz"
- fi
- fi
-
- Syslinux_install_entry "linux" "${VMLINUZ_DI}" "${INITRD_DI}" "${APPEND_DI}"
- Syslinux_install_entry "install" "${VMLINUZ_DI}" "${INITRD_DI}" "${APPEND_DI}"
- Syslinux_install_entry "installgui" "${VMLINUZ_GI}" "${INITRD_GI}" "${APPEND_GI}"
- Syslinux_install_entry "expert" "${VMLINUZ_DI}" "${INITRD_DI}" "priority=low ${APPEND_DI}"
- Syslinux_install_entry "expertgui" "${VMLINUZ_GI}" "${INITRD_GI}" "priority=low ${APPEND_GI}"
- Syslinux_install_entry "rescue" "${VMLINUZ_DI}" "${INITRD_DI}" "rescue/enable=true ${APPEND_DI}"
- Syslinux_install_entry "rescuegui" "${VMLINUZ_GI}" "${INITRD_GI}" "rescue/enable=true ${APPEND_GI}"
- Syslinux_install_entry "auto" "${VMLINUZ_DI}" "${INITRD_DI}" "auto=true priority=critical ${APPEND_DI}"
- Syslinux_install_entry "autogui" "${VMLINUZ_GI}" "${INITRD_GI}" "auto=true priority=critical ${APPEND_GI}"
+ Syslinux_install_entry "Text" "${VMLINUZ_DI}" "${INITRD_DI}" "${APPEND_DI}"
+ Syslinux_install_entry "GUI" "${VMLINUZ_GI}" "${INITRD_GI}" "${APPEND_GI}"
fi
-LINUX_INSTALL="$(/bin/echo ${LINUX_INSTALL} | sed -e 's/binary//g' -e 's#//#/#g')"
-
# Assembling memtest configuration
-if [ -f "${DESTDIR_LIVE}"/memtest ]
+if [ -f "${KERNEL_PATH}"/memtest ]
then
Syslinux_memtest_entry "memtest" "${LH_SYSLINUX_MENU_MEMTEST_ENTRY}" "memtest"
fi
+# Copy templates to base syslinux directory
+Copy_syslinux_templates
+
+# Configure syslinux setup per boot method
case "${LH_BINARY_IMAGES}" in
iso)
- # Copying syslinux
- mkdir -p binary/isolinux
-
case "${LH_CHROOT_BUILD}" in
enabled)
- cp chroot/usr/lib/syslinux/isolinux.bin binary/isolinux
+ cp chroot/usr/lib/syslinux/isolinux.bin ${SCREEN_PATH}
;;
-
disabled)
- cp /usr/lib/syslinux/isolinux.bin binary/isolinux
+ cp /usr/lib/syslinux/isolinux.bin ${SCREEN_PATH}
;;
esac
- # Syslinux templates
- cp -r "${TEMPLATES}"/common/* binary/isolinux
- if [ "${LH_SYSLINUX_MENU}" = "disabled" ]
- then
- cp -r "${TEMPLATES}"/normal/* binary/isolinux
- else
- cp -r "${TEMPLATES}"/menu/* binary/isolinux
- fi
-
- if [ -d "${TEMPLATES}"/"${LH_LANGUAGE}" ]
- then
- cp -r "${TEMPLATES}"/"${LH_LANGUAGE}"/* binary/isolinux
- else
- cp -r "${TEMPLATES}"/en/* binary/isolinux
- fi
-
- for FILE in binary/isolinux/*.live
- do
- mv ${FILE} $(dirname ${FILE})/$(basename ${FILE} .live)
- done
-
- if [ "${LH_DEBIAN_INSTALLER}" != "disabled" ]
- then
- for FILE in binary/isolinux/*.install
- do
- mv ${FILE} $(dirname ${FILE})/$(basename ${FILE} .install)
- done
-
- case "${LH_ARCHITECTURE}" in
- amd64|i386|powerpc)
- for FILE in binary/isolinux/*.install.g-i
- do
- mv ${FILE} $(dirname ${FILE})/$(basename ${FILE} .install.g-i)
- done
- ;;
-
- *)
- rm -f binary/isolinux/*.install.g-i
- ;;
- esac
- else
- rm -f binary/isolinux/*.install*
- fi
-
- mv binary/isolinux/syslinux.cfg binary/isolinux/isolinux.cfg
+ mv ${SCREEN_PATH}/syslinux.cfg ${SCREEN_PATH}/isolinux.cfg
# Copying configuration file
if [ -n "${LH_SYSLINUX_CFG}" ]
then
- cp "${LH_SYSLINUX_CFG}" binary/isolinux/isolinux.cfg
- fi
-
- # Copying local configuration file
- if [ -f config/binary_syslinux/syslinux.cfg ]
- then
- LH_SYSLINUX_SPLASH="config/binary_syslinux/splash.rle"
- fi
-
- # Copying menu module
- if [ "${LH_SYSLINUX_MENU}" != "disabled" ]
- then
- MENUPATH="$(grep 'menu.c32' binary/isolinux/header.cfg | sed 's,default\s*\(.*menu.c32\)$,\1,g')"
- MENUMODULE="$(basename ${MENUPATH})"
-
- mkdir -p binary/isolinux/"$(dirname ${MENUPATH})"
- cp chroot/usr/lib/syslinux/"${MENUMODULE}" binary/isolinux/"$(dirname ${MENUPATH})"
- fi
-
- # Copying splash screen
- if [ -z "${LH_SYSLINUX_SPLASH}" ] || [ "${LH_SYSLINUX_SPLASH}" = "none" ]
- then
- rm -f binary/isolinux/splash.rle
- sed -i -e "s/.*splash.*//" binary/isolinux/boot.txt
- else
- if [ "${LH_SYSLINUX_MENU}" != "disabled" ]
- then
- SPLASHPATH="$(grep -i 'menu background' binary/isolinux/header.cfg | sed 's,menu\sbackground\s*\(.*\)$,\1,g')"
- if [ ! -e "${LH_SYSLINUX_SPLASH}" ]
- then
- Echo_error "${LH_SYSLINUX_SPLASH} doen't exist"
- exit 1
- fi
- mkdir -p binary/isolinux/"$(dirname ${SPLASHPATH})"
- cp -f "${LH_SYSLINUX_SPLASH}" binary/isolinux/"${SPLASHPATH}"
- else
- cp -f "${LH_SYSLINUX_SPLASH}" binary/isolinux/splash.rle
- fi
- fi
-
- # Configure syslinux templates
- sed -i -e "s@LINUX_LIVE@${LINUX_LIVE}@" -e "s@LINUX_INSTALL@${LINUX_INSTALL}@" -e "s@MEMTEST@${MEMTEST}@" binary/isolinux/menu.cfg
- sed -i -e "s#LH_BOOTAPPEND_INSTALL#${LH_BOOTAPPEND_INSTALL}#" -e "s#LH_BOOTAPPEND_LIVE#${LH_BOOTAPPEND_LIVE}#" binary/isolinux/menu.cfg
- if [ -e binary/isolinux/f1.txt ]
- then
- sed -i -e "s/LH_DISTRIBUTION/${LH_DISTRIBUTION}/" -e "s/LH_DATE/$(date +%Y%m%d)/" -e "s/LH_MEDIA/CD-ROM/" binary/isolinux/f1.txt
- fi
- sed -i -e "s/LH_MEDIA/CD-ROM/" binary/isolinux/f3.txt
- if [ -e binary/isolinux/f10.txt ]
- then
- sed -i -e "s/LH_VERSION/${VERSION}/" binary/isolinux/f10.txt
- fi
-
- # Working arround syslinux 8.3 limitation
- if [ "$(echo ${LH_LINUX_FLAVOURS} | wc -w)" -gt "1" ]
- then
- NUMBER="0"
-
- # FIXME: This has a bug *iff* flavours = 686 686-bigmem (note the order).
-
- for FLAVOUR in ${LH_LINUX_FLAVOURS}
- do
- NUMBER="$(($NUMBER + 1))"
-
- mv "${DESTDIR_LIVE}"/vmlinuz-*-${FLAVOUR} "${DESTDIR_LIVE}"/vmlinuz${NUMBER}
- mv "${DESTDIR_LIVE}"/initrd.img-*-${FLAVOUR} "${DESTDIR_LIVE}"/initrd${NUMBER}.img
- sed -i -e "s/vmlinuz-.*-${FLAVOUR}$/vmlinuz${NUMBER}/g" -e "s/initrd.img-.*-${FLAVOUR} /initrd${NUMBER}.img /g" binary/isolinux/menu.cfg
- done
- else
- mv "${DESTDIR_LIVE}"/vmlinuz-*-${LH_LINUX_FLAVOURS} "${DESTDIR_LIVE}"/vmlinuz
- mv "${DESTDIR_LIVE}"/initrd.img-*-${LH_LINUX_FLAVOURS} "${DESTDIR_LIVE}"/initrd.img
- sed -i -e "s/vmlinuz-.*-${LH_LINUX_FLAVOURS}/vmlinuz/g" -e "s/initrd.img-.*-${LH_LINUX_FLAVOURS}/initrd.img/g" binary/isolinux/menu.cfg
+ cp "${LH_SYSLINUX_CFG}" ${SCREEN_PATH}/isolinux.cfg
fi
-
- sed -i -e "s/LINUX_TIMEOUT/${LH_SYSLINUX_TIMEOUT}/" binary/isolinux/footer.cfg
-
- # Remove whitespaces
- sed -i -e 's/\ $//g' binary/isolinux/*.cfg
;;
-
net)
- # Copying syslinux
- mkdir -p tftpboot
-
case "${LH_CHROOT_BUILD}" in
enabled)
- cp chroot/usr/lib/syslinux/pxelinux.0 tftpboot
+ cp chroot/usr/lib/syslinux/pxelinux.0 ${KERNEL_PATH}
;;
-
disabled)
- cp /usr/lib/syslinux/pxelinux.0 tftpboot
+ cp /usr/lib/syslinux/pxelinux.0 ${KERNEL_PATH}
;;
esac
- mkdir -p tftpboot/pxelinux.cfg
- cp -r "${TEMPLATES}"/common/* tftpboot/pxelinux.cfg
- cp -r "${TEMPLATES}"/"${LH_LANGUAGE}"/* tftpboot/pxelinux.cfg
+ mkdir -p ${KERNEL_PATH}/pxelinux.cfg
+ ln -s ${LIVE_KERNEL_PATH}/pxelinux.cfg ${SYSLINUX_PATH}/pxelinux.cfg
+ ln -s ${LIVE_KERNEL_PATH}/pxelinux.0 ${SYSLINUX_PATH}/pxelinux.0
- for FILE in tftpboot/pxelinux.cfg/*.live
- do
- mv ${FILE} $(dirname ${FILE})/$(basename ${FILE} .live)
- done
+ mv ${SCREEN_PATH}/syslinux.cfg ${KERNEL_PATH}/pxelinux.cfg/default
- if [ "${LH_DEBIAN_INSTALLER}" != "disabled" ]
- then
- for FILE in tftpboot/pxelinux.cfg/*.install
- do
- mv ${FILE} $(dirname ${FILE})/$(basename ${FILE} .install)
- done
-
- if [ "${LH_ARCHITECTURE}" = "amd64" ] || [ "${LH_ARCHITECTURE}" = "i386" ] || [ "${LH_ARCHITECTURE}" = "powerpc" ]
- then
- for FILE in tftpboot/pxelinux.cfg/*.install.g-i
- do
- mv ${FILE} $(dirname ${FILE})/$(basename ${FILE} .install.g-i)
- done
- else
- rm -f tftpboot/pxelinux.cfg/*.install.g-i
- fi
- else
- rm -f tftpboot/pxelinux.cfg/*.install*
- fi
-
- mv tftpboot/pxelinux.cfg/syslinux.cfg tftpboot/pxelinux.cfg/default
-
- # Copying local configuration file
- if [ -f config/binary_syslinux/syslinux.cfg ]
- then
- cp config/binary_syslinux/syslinux.cfg tftpboot/pxelinux.cfg/default
- fi
-
- #sed -i -e 's#splash.rle#pxelinux.cfg/splash.rle#' tftpboot/pxelinux.cfg/boot.txt
-
- # Copying splash screen
- if [ -f config/binary_syslinux/splash.rle ]
- then
- LH_SYSLINUX_SPLASH="config/binary_syslinux/splash.rle"
- fi
-
- if [ -n "${LH_SYSLINUX_SPLASH}" ]
- then
- if [ "${LH_SYSLINUX_SPLASH}" = "none" ]
- then
- rm -f tftpboot/pxelinux.cfg/splash.rle
- sed -i -e "s/.*splash.*//" tftpboot/pxelinux.cfg/boot.txt
- else
- cp -f "${LH_SYSLINUX_SPLASH}" tftpboot/pxelinux.cfg/splash.rle
- fi
- fi
-
- # Configure syslinux templates
- sed -i -e "s@LINUX_LIVE@${LINUX_LIVE}@" -e "s@LINUX_INSTALL@${LINUX_INSTALL}@" -e "s@MEMTEST@${MEMTEST}@" tftpboot/pxelinux.cfg/default
- sed -i -e "s#LH_BOOTAPPEND_INSTALL#${LH_BOOTAPPEND_INSTALL}#" -e "s#LH_BOOTAPPEND_LIVE#${LH_BOOTAPPEND_LIVE}#" -e "s/LH_NET_SERVER/${LH_NET_SERVER}/" -e "s#LH_NET_PATH#${LH_NET_PATH}#" tftpboot/pxelinux.cfg/default
- sed -i -e "s/LH_DISTRIBUTION/${LH_DISTRIBUTION}/" -e "s/LH_DATE/$(date +%Y%m%d)/" -e "s/LH_MEDIA/netboot/" tftpboot/pxelinux.cfg/f1.txt
- sed -i -e "s/LH_MEDIA/netboot/" tftpboot/pxelinux.cfg/f3.txt
- sed -i -e "s/LH_VERSION/${VERSION}/" tftpboot/pxelinux.cfg/f10.txt
-
- # Working arround syslinux 8.3 limitation
- if [ "$(echo ${LH_LINUX_FLAVOURS} | wc -w)" -eq "1" ]
+ # Copying configuration file
+ if [ -n "${LH_SYSLINUX_CFG}" ]
then
- mv "${DESTDIR_LIVE}"/vmlinuz-*-${LH_LINUX_FLAVOURS} "${DESTDIR_LIVE}"/vmlinuz
- mv "${DESTDIR_LIVE}"/initrd.img-*-${LH_LINUX_FLAVOURS} "${DESTDIR_LIVE}"/initrd.img
- sed -i -e "s/vmlinuz-.*-${LH_LINUX_FLAVOURS}/vmlinuz/g" -e "s/initrd.img-.*-${LH_LINUX_FLAVOURS}/initrd.img/g" tftpboot/pxelinux.cfg/default
+ cp "${LH_SYSLINUX_CFG}" ${KERNEL_PATH}/pxelinux.cfg/default
fi
-
- sed -i -e "s/LINUX_TIMEOUT/${LH_SYSLINUX_TIMEOUT}/" tftpboot/pxelinux.cfg/default
-
- # Remove whitespaces
- sed -i -e 's/\ $//g' tftpboot/pxelinux.cfg/default
;;
-
tar|usb-hdd)
- # Workaround for syslinux (<< 3.36) which doesn't support dedicated directory
- if [ "${LH_DISTRIBUTION}" = "etch" ]
- then
- DESTDIR="binary"
- else
- DESTDIR="binary/syslinux"
- fi
-
- # Copying syslinux
- mkdir -p "${DESTDIR}"
-
case "${LH_CHROOT_BUILD}" in
enabled)
- cp chroot/usr/lib/syslinux/isolinux.bin "${DESTDIR}"/syslinux.bin
+ cp chroot/usr/lib/syslinux/isolinux.bin ${SCREEN_PATH}/syslinux.bin
;;
-
disabled)
- cp /usr/lib/syslinux/isolinux.bin "${DESTDIR}"/syslinux.bin
+ cp /usr/lib/syslinux/isolinux.bin ${SCREEN_PATH}/syslinux.bin
;;
esac
- cp -r "${TEMPLATES}"/common/* "${DESTDIR}"
- if [ "${LH_SYSLINUX_MENU}" = "disabled" ]
- then
- cp -r "${TEMPLATES}"/normal/* "${DESTDIR}"
- else
- cp -r "${TEMPLATES}"/menu/* "${DESTDIR}"
- fi
- cp -r "${TEMPLATES}"/"${LH_LANGUAGE}"/* "${DESTDIR}"
-
- for FILE in "${DESTDIR}"/*.live
- do
- mv ${FILE} $(dirname ${FILE})/$(basename ${FILE} .live)
- done
-
- if [ "${LH_DEBIAN_INSTALLER}" != "disabled" ]
- then
- for FILE in "${DESTDIR}"/*.install
- do
- mv ${FILE} $(dirname ${FILE})/$(basename ${FILE} .install)
- done
-
- if [ "${LH_ARCHITECTURE}" = "amd64" ] || [ "${LH_ARCHITECTURE}" = "i386" ] || [ "${LH_ARCHITECTURE}" = "powerpc" ]
- then
- for FILE in "${DESTDIR}"/*.install.g-i
- do
- mv ${FILE} $(dirname ${FILE})/$(basename ${FILE} .install.g-i)
- done
- else
- rm -f "${DESTDIR}"/*.install.g-i
- fi
- else
- rm -f "${DESTDIR}"/*.install*
- fi
-
- # Copying local configuration file
- if [ -f config/binary_syslinux/syslinux.cfg ]
- then
- cp config/binary_syslinux/syslinux.cfg "${DESTDIR}"/syslinux.cfg
- fi
-
- # Copying splash screen
- if [ -f config/binary_syslinux/splash.rle ]
- then
- LH_SYSLINUX_SPLASH="config/binary_syslinux/splash.rle"
- fi
-
- if [ -n "${LH_SYSLINUX_SPLASH}" ]
- then
- if [ "${LH_SYSLINUX_SPLASH}" = "none" ]
- then
- rm -f "${DESTDIR}"/splash.rle
- sed -i -e "s/.*splash.*//" "${DESTDIR}"/boot.txt
- else
- cp -f "${LH_SYSLINUX_SPLASH}" "${DESTDIR}"/splash.rle
- fi
- fi
-
- # Configure syslinux templates
- sed -i -e "s@LINUX_LIVE@${LINUX_LIVE}@" -e "s@LINUX_INSTALL@${LINUX_INSTALL}@" -e "s@MEMTEST@${MEMTEST}@" "${DESTDIR}"/menu.cfg
- sed -i -e "s#LH_BOOTAPPEND_INSTALL#${LH_BOOTAPPEND_INSTALL}#" -e "s#LH_BOOTAPPEND_LIVE#${LH_BOOTAPPEND_LIVE}#" "${DESTDIR}"/menu.cfg
- if [ -e binary/isolinux/f1.txt ]
- then
- sed -i -e "s/LH_DISTRIBUTION/${LH_DISTRIBUTION}/" -e "s/LH_DATE/$(date +%Y%m%d)/" -e "s/LH_MEDIA/hd-media/" "${DESTDIR}"/f1.txt
- fi
- sed -i -e "s/LH_MEDIA/hd-media/" "${DESTDIR}"/f3.txt
- if [ -e binary/isolinux/f10.txt ]
- then
- sed -i -e "s/LH_VERSION/${VERSION}/" "${DESTDIR}"/f10.txt
- fi
- # Workaround for syslinux (<< 3.36) which doesn't support long file/path names
- if [ "$(echo ${LH_LINUX_FLAVOURS} | wc -w)" -gt "1" ]
+ # Copying configuration file
+ if [ -n "${LH_SYSLINUX_CFG}" ]
then
- NUMBER="0"
-
- for FLAVOUR in ${LH_LINUX_FLAVOURS}
- do
- NUMBER="$(($NUMBER + 1))"
- mv "${DESTDIR_LIVE}"/vmlinuz-*-${FLAVOUR} "${DESTDIR_LIVE}"/vmlinuz${NUMBER}
- mv "${DESTDIR_LIVE}"/initrd.img-*-${FLAVOUR} "${DESTDIR_LIVE}"/initrd${NUMBER}.img
- sed -i -e "s/vmlinuz-.*-${FLAVOUR}$/vmlinuz${NUMBER}/g" -e "s/initrd.img-.*-${FLAVOUR} /initrd${NUMBER}.img /g" "${DESTDIR}"/menu.cfg
- done
- else
- mv "${DESTDIR_LIVE}"/vmlinuz-*-${LH_LINUX_FLAVOURS} "${DESTDIR_LIVE}"/vmlinuz
- mv "${DESTDIR_LIVE}"/initrd.img-*-${LH_LINUX_FLAVOURS} "${DESTDIR_LIVE}"/initrd.img
- sed -i -e "s/vmlinuz-.*-${LH_LINUX_FLAVOURS}/vmlinuz/g" -e "s/initrd.img-.*-${LH_LINUX_FLAVOURS}/initrd.img/g" "${DESTDIR}"/menu.cfg
- sed -i -e "s/LINUX_TIMEOUT/${LH_SYSLINUX_TIMEOUT}/" "${DESTDIR}"/footer.cfg
+ cp "${LH_SYSLINUX_CFG}" ${SCREEN_PATH}/syslinux.cfg
fi
-
- # Remove whitespaces
- sed -i -e 's/\ $//g' "${DESTDIR}"/*.cfg
;;
esac
+# Fill in templates with created values
+Configure_syslinux_templates
+
# Saving cache
Save_cache cache/packages_binary