summaryrefslogtreecommitdiff
path: root/helpers/lh_binary_syslinux
diff options
context:
space:
mode:
Diffstat (limited to 'helpers/lh_binary_syslinux')
-rwxr-xr-xhelpers/lh_binary_syslinux271
1 files changed, 145 insertions, 126 deletions
diff --git a/helpers/lh_binary_syslinux b/helpers/lh_binary_syslinux
index 9887247..eff8d83 100755
--- a/helpers/lh_binary_syslinux
+++ b/helpers/lh_binary_syslinux
@@ -83,6 +83,7 @@ Syslinux_memtest_entry ()
KERNEL="${3}"
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 ${LIVE_KERNEL_PATH}/${KERNEL}\n"
@@ -98,26 +99,30 @@ Syslinux_live_entry ()
INITRD="${4}"
APPEND="${5}"
- if [ ${LH_BINARY_IMAGES} = "iso" ] || [ ${LH_BINARY_IMAGES} = "usb-hdd" ]
- then
- num=$(ls -1 ${KERNEL_PATH}|grep 'vmlinuz[0-9]\+$'|wc -l)
- num=$(($num +1))
- # Note: ISOLINUX will not find the kernel if the name ends in ".img".
- mv ${KERNEL_PATH}/${KERNEL} ${KERNEL_PATH}/vmlinuz${num}
- mv ${KERNEL_PATH}/${INITRD} ${KERNEL_PATH}/initrd${num}.img
- KERNEL=vmlinuz${num}
- INITRD=initrd${num}.img
- fi
-
- # Regular kernel
+ if [ ${LH_BINARY_IMAGES} = "iso" ] || [ ${LH_BINARY_IMAGES} = "usb-hdd" ]
+ then
+ NUMBER="$(ls -1 ${KERNEL_PATH} | grep 'vmlinuz[0-9]\+$' | wc -l)"
+ NUMBER="$((${NUMBER} +1))"
+
+ # Note: ISOLINUX will not find the kernel if the name ends in ".img".
+ mv ${KERNEL_PATH}/${KERNEL} ${KERNEL_PATH}/vmlinuz${NUMBER}
+ mv ${KERNEL_PATH}/${INITRD} ${KERNEL_PATH}/initrd${NUMBER}.img
+
+ KERNEL=vmlinuz${NUMBER}
+ INITRD=initrd${NUMBER}.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"
- # Failsafe kernel
+ # 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"
@@ -137,148 +142,158 @@ Syslinux_install_entry ()
APPEND="${APPEND} quiet"
fi
- for TYPE in Install Expert Rescue Auto
- do
+ for TYPE in Install Expert Rescue Auto
+ do
case "${TYPE}" in
Install)
- TAPPEND="${APPEND}"
+ TAPPEND="${APPEND}"
;;
+
Expert)
- TAPPEND="priority=low ${APPEND}"
+ TAPPEND="priority=low ${APPEND}"
;;
+
Rescue)
- TAPPEND="rescue/enable=true ${APPEND}"
+ TAPPEND="rescue/enable=true ${APPEND}"
;;
+
Auto)
- TAPPEND="rescue/enable=true ${APPEND}"
+ 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
+ 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}
+ cp -r "${TEMPLATES}"/common/* ${SCREEN_PATH}
+
+ if [ "${LH_SYSLINUX_MENU}" = "disabled" ]
+ then
+ cp "${TEMPLATES}"/normal/*.cfg ${SCREEN_PATH}
+ cp "${TEMPLATES}"/normal/data/* ${DATA_PATH}
+ else
+ cp "${TEMPLATES}"/menu/*.cfg ${SCREEN_PATH}
+ cp "${TEMPLATES}"/menu/data/* ${DATA_PATH}
- if [ "${LH_SYSLINUX_MENU}" = "disabled" ]
- then
- cp "${TEMPLATES}"/normal/*.cfg ${SCREEN_PATH}
- cp "${TEMPLATES}"/normal/data/* ${DATA_PATH}
- else
- cp "${TEMPLATES}"/menu/*.cfg ${SCREEN_PATH}
- cp "${TEMPLATES}"/menu/data/* ${DATA_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
+ 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
+ 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
+ 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} .live)
+ mv ${FILE} $(dirname ${FILE})/$(basename ${FILE} .install)
done
- if [ "${LH_DEBIAN_INSTALLER}" != "disabled" ]
+ if [ "${LH_ARCHITECTURE}" = "amd64" ] || [ "${LH_ARCHITECTURE}" = "i386" ] || [ "${LH_ARCHITECTURE}" = "powerpc" ]
then
- for FILE in ${SCREEN_PATH}/*.install
+ for FILE in ${SCREEN_PATH}/*.install.g-i
do
- mv ${FILE} $(dirname ${FILE})/$(basename ${FILE} .install)
+ mv ${FILE} $(dirname ${FILE})/$(basename ${FILE} .install.g-i)
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*
+ rm -f ${SCREEN_PATH}/*.install.g-i
fi
+ else
+ rm -f ${SCREEN_PATH}/*.install*
+ fi
- # Copying custom splash screen
- if [ "${LH_SYSLINUX_SPLASH}" = "none" ]
+ # 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 [ "${LH_SYSLINUX_MENU}" = "disabled" ]
then
- # no splash screen
- SPLASH=""
- rm -f ${SCREEN_PATH}/splash.rle
- rm -f ${DATA_PATH}/splash.png
+ SPLASH="${LIVE_DATA_PATH}/splash.rle"
else
- if [ "${LH_SYSLINUX_MENU}" = "disabled" ]
- then
- SPLASH="${LIVE_DATA_PATH}/splash.rle"
- else
- SPLASH="${LIVE_DATA_PATH}/splash.png"
- fi
+ SPLASH="${LIVE_DATA_PATH}/splash.png"
+ fi
- if [ -n "${LH_SYSLINUX_SPLASH}" ]
+ if [ -n "${LH_SYSLINUX_SPLASH}" ]
+ then
+ if [ ! -e "${LH_SYSLINUX_SPLASH}" ]
then
- 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}/$(basename ${SPLASH})
- fi
+ 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}/$(basename ${SPLASH})
fi
fi
+ fi
}
Configure_syslinux_templates ()
{
- templates=$(find ${SYSLINUX_PATH} -type f -name '*.cfg' -o -name '*.txt')
- for template_file in ${templates}; do
+ templates="$(find ${SYSLINUX_PATH} -type f -name '*.cfg' -o -name '*.txt')"
+
+ 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@{\$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/{\$LH_SYSLINUX_TIMEOUT}/${LH_SYSLINUX_TIMEOUT}0/" \
-e 's/\ $//g' \
- $template_file
- done
+ $template_file
+ done
# Syslinux v3.31 in etch does not support include statements
if [ "${LH_DISTRIBUTION}" = "etch" ]
then
while grep -q ^include ${SCREEN_PATH}/syslinux.cfg
- do
+ do
INCLUDES=$(grep ^include ${SCREEN_PATH}/syslinux.cfg |awk '{print $2}')
+
for FILE_PATH in ${INCLUDES}
do
- FILE_NAME=$(basename ${FILE_PATH})
- sed -i -e '\@include '${FILE_PATH}'@ {
- r '${SCREEN_PATH}/${FILE_NAME}'
- d
+ FILE_NAME=$(basename ${FILE_PATH})
+
+ sed -i -e '\@include '${FILE_PATH}'@ {
+ r '${SCREEN_PATH}/${FILE_NAME}'
+ d
}' ${SCREEN_PATH}/syslinux.cfg
- # remove the files, which were included
+
+ # remove the files, which were included
if [ -e ${SCREEN_PATH}/${FILE_NAME} ]
- then
- rm ${SCREEN_PATH}/${FILE_NAME}
- fi
+ then
+ rm -f ${SCREEN_PATH}/${FILE_NAME}
+ fi
done
- done
+ done
+
# Syslinux v3.31 in etch does not support sub directories, /path/kernel,
# when using FAT hard drive images, remove leading /'s
if [ "${LH_BINARY_IMAGES}" = "usb-hdd" ]
@@ -306,37 +321,38 @@ esac
case "${LH_BINARY_IMAGES}" in
iso)
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"
+ 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)
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"
+ 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)
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"
+ 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"
+
# Syslinux v3.31 in etch does not support sub directories, /path/kernel,
# when using FAT hard drive images
if [ "${LH_DISTRIBUTION}" = "etch" ] && [ "${LH_BINARY_IMAGES}" = "usb-hdd" ]
@@ -350,6 +366,7 @@ case "${LH_BINARY_IMAGES}" in
LIVE_SCREEN_PATH=""
LIVE_DATA_PATH=""
fi
+
MEDIA="hd-media"
;;
esac
@@ -531,6 +548,7 @@ case "${LH_BINARY_IMAGES}" in
cp "${LH_SYSLINUX_CFG}" ${SCREEN_PATH}/isolinux.cfg
fi
;;
+
net)
case "${LH_CHROOT_BUILD}" in
enabled)
@@ -542,8 +560,8 @@ case "${LH_BINARY_IMAGES}" in
esac
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
+ ln -s ${LIVE_KERNEL_PATH}/pxelinux.cfg ${SYSLINUX_PATH}/pxelinux.cfg
+ ln -s ${LIVE_KERNEL_PATH}/pxelinux.0 ${SYSLINUX_PATH}/pxelinux.0
mv ${SCREEN_PATH}/syslinux.cfg ${KERNEL_PATH}/pxelinux.cfg/default
@@ -553,6 +571,7 @@ case "${LH_BINARY_IMAGES}" in
cp "${LH_SYSLINUX_CFG}" ${KERNEL_PATH}/pxelinux.cfg/default
fi
;;
+
tar|usb-hdd)
case "${LH_CHROOT_BUILD}" in
enabled)