664 lines
16 KiB
Bash
Executable File
664 lines
16 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
## live-build(7) - System Build Scripts
|
|
## Copyright (C) 2006-2011 Daniel Baumann <daniel@debian.org>
|
|
##
|
|
## live-build comes with ABSOLUTELY NO WARRANTY; for details see COPYING.
|
|
## This is free software, and you are welcome to redistribute it
|
|
## under certain conditions; see COPYING for details.
|
|
|
|
|
|
set -e
|
|
|
|
# Including common functions
|
|
. "${LB_BASE:-/usr/share/live/build}"/scripts/build.sh
|
|
|
|
# Setting static variables
|
|
DESCRIPTION="$(Echo 'installs syslinux into binary')"
|
|
HELP=""
|
|
USAGE="${PROGRAM} [--force]"
|
|
|
|
Arguments "${@}"
|
|
|
|
# Reading configuration files
|
|
Read_conffiles config/all config/common config/bootstrap config/chroot config/binary config/source
|
|
Set_defaults
|
|
|
|
if [ "${LB_BOOTLOADER}" != "syslinux" ]
|
|
then
|
|
exit 0
|
|
fi
|
|
|
|
Echo_message "Begin installing syslinux..."
|
|
|
|
# Requiring stage file
|
|
Require_stagefile .stage/config .stage/bootstrap
|
|
|
|
# Checking stage file
|
|
Check_stagefile .stage/binary_syslinux
|
|
|
|
# Checking syslinux templates
|
|
Check_templates syslinux
|
|
|
|
# Checking lock file
|
|
Check_lockfile .lock
|
|
|
|
# Creating lock file
|
|
Create_lockfile .lock
|
|
|
|
# Check architecture
|
|
Check_architecture amd64 i386
|
|
Check_crossarchitecture
|
|
|
|
# Checking depends
|
|
Check_package chroot/usr/bin/syslinux syslinux
|
|
|
|
# Restoring cache
|
|
Restore_cache cache/packages_binary
|
|
|
|
# Installing depends
|
|
Install_package
|
|
|
|
# Local functions
|
|
Utf8_to_latin1 ()
|
|
{
|
|
VALUE="${1}"
|
|
|
|
echo "${VALUE}" | iconv -f utf-8 -t latin1
|
|
}
|
|
|
|
Syslinux_memtest_entry ()
|
|
{
|
|
LABEL="${1}"
|
|
MENULABEL="$(Utf8_to_latin1 "${2}")"
|
|
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"
|
|
MEMTEST="$(/bin/echo ${MEMTEST} | sed -e 's|//|/|g')"
|
|
}
|
|
|
|
Syslinux_live_entry ()
|
|
{
|
|
LABEL="${1}"
|
|
MENULABEL="$(Utf8_to_latin1 "${2}")"
|
|
MENULABEL="${2}"
|
|
KERNEL="${3}"
|
|
INITRD="${4}"
|
|
APPEND="${5}"
|
|
|
|
# Boot in quiet mode where appropriate
|
|
QAPPEND="quiet"
|
|
|
|
case "${LB_BINARY_IMAGES}" in
|
|
iso*|usb*)
|
|
if [ "${LABEL}" = "live" ]
|
|
then
|
|
# Do not number the default kernel / initrd files.
|
|
_NUMBER=""
|
|
else
|
|
# Use order of flavours in LB_LINUX_FLAVOURS for numbering.
|
|
_NUMBER="$(echo ${LB_LINUX_FLAVOURS} | awk -v FLAVOUR="${FLAVOUR}" 'BEGIN{RS=" "} {if($1 == FLAVOUR) print NR}')"
|
|
fi
|
|
|
|
if [ -e ${KERNEL_PATH}/${KERNEL} ]
|
|
then
|
|
# Note: ISOLINUX will not find the kernel if the name ends in ".img".
|
|
mv ${KERNEL_PATH}/${KERNEL} ${KERNEL_PATH}/vmlinuz${_NUMBER}
|
|
fi
|
|
|
|
if [ -e ${KERNEL_PATH}/${INITRD} ]
|
|
then
|
|
mv ${KERNEL_PATH}/${INITRD} ${KERNEL_PATH}/initrd${_NUMBER}.img
|
|
fi
|
|
|
|
KERNEL=vmlinuz${_NUMBER}
|
|
INITRD=initrd${_NUMBER}.img
|
|
;;
|
|
esac
|
|
|
|
# Regular kernel
|
|
LINUX_LIVE="${LINUX_LIVE}\nlabel ${LABEL}\n"
|
|
|
|
# Write the menu label if the syslinux menu is being use
|
|
if [ -n "${MENULABEL}" ]
|
|
then
|
|
LINUX_LIVE="${LINUX_LIVE}\tmenu label ${MENULABEL}\n"
|
|
fi
|
|
|
|
LINUX_LIVE="${LINUX_LIVE}\tkernel ${LIVE_KERNEL_PATH}/${KERNEL}\n"
|
|
LINUX_LIVE="${LINUX_LIVE}\tappend initrd=${LIVE_KERNEL_PATH}/${INITRD} boot=${INITFS} config ${LB_BOOTAPPEND_LIVE} ${APPEND} ${QAPPEND}\n"
|
|
|
|
# Failsafe kernel
|
|
LINUX_LIVE="${LINUX_LIVE}\nlabel ${LABEL}failsafe\n"
|
|
|
|
# Write the menu label if the syslinux menu is being use
|
|
if [ -n "${MENULABEL}" ]
|
|
then
|
|
LINUX_LIVE="${LINUX_LIVE}\tmenu label ${MENULABEL} (failsafe)\n"
|
|
fi
|
|
|
|
LINUX_LIVE="${LINUX_LIVE}\tkernel ${LIVE_KERNEL_PATH}/${KERNEL}\n"
|
|
LINUX_LIVE="${LINUX_LIVE}\tappend initrd=${LIVE_KERNEL_PATH}/${INITRD} boot=${INITFS} config ${LB_BOOTAPPEND_LIVE} ${APPEND} ${FAILSAFE}\n"
|
|
}
|
|
|
|
Syslinux_install_entry ()
|
|
{
|
|
LABEL="${1}"
|
|
KERNEL="${2}"
|
|
INITRD="${3}"
|
|
APPEND="${4}"
|
|
|
|
# Boot in quiet mode where appropriate
|
|
QAPPEND="quiet"
|
|
|
|
for TYPE in Install Expert Rescue Auto
|
|
do
|
|
case "${TYPE}" in
|
|
Install)
|
|
TAPPEND="${APPEND} ${QAPPEND}"
|
|
;;
|
|
|
|
Expert)
|
|
TAPPEND="priority=low ${APPEND}"
|
|
;;
|
|
|
|
Rescue)
|
|
TAPPEND="rescue/enable=true ${APPEND} ${QAPPEND}"
|
|
;;
|
|
|
|
Auto)
|
|
TAPPEND="auto=true priority=critical ${APPEND} ${QAPPEND}"
|
|
;;
|
|
esac
|
|
|
|
case "${LABEL}" in
|
|
Text)
|
|
TYPE_SUFFIX=""
|
|
;;
|
|
GUI)
|
|
TYPE_SUFFIX="gui"
|
|
;;
|
|
esac
|
|
|
|
LINUX_INSTALL="${LINUX_INSTALL}\nlabel $(echo "${TYPE}" | tr A-Z a-z)${TYPE_SUFFIX}\n"
|
|
LINUX_INSTALL="${LINUX_INSTALL}\tmenu label ${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} ${LB_BOOTAPPEND_INSTALL}\n"
|
|
done
|
|
}
|
|
|
|
Copy_syslinux_templates ()
|
|
{
|
|
cp -r "${TEMPLATES}"/common/* ${SCREEN_PATH}
|
|
|
|
if [ "${LB_SYSLINUX_MENU}" = "false" ]
|
|
then
|
|
cp -r "${TEMPLATES}"/normal/* ${SCREEN_PATH}
|
|
else
|
|
cp -r "${TEMPLATES}"/menu/* ${SCREEN_PATH}
|
|
|
|
case "${LB_SYSLINUX_MENU}" in
|
|
gfxboot)
|
|
MENUMODULE="gfxboot.c32"
|
|
;;
|
|
|
|
menu)
|
|
MENUMODULE="menu.c32"
|
|
;;
|
|
|
|
vesamenu)
|
|
MENUMODULE="vesamenu.c32"
|
|
;;
|
|
|
|
*)
|
|
if [ -z "${LB_SYSLINUX_CFG}" ]
|
|
then
|
|
MENUMODULE=$(grep 'menu.c32' ${TEMPLATES}/menu/syslinux.cfg | sed 's|default\s*.*/\(.*menu.c32\)$|\1|g')
|
|
else
|
|
LB_SYSLINUX_CFG="${LB_SYSLINUX_CFG:-${TEMPLATES}/menu/syslinux.cfg}"
|
|
fi
|
|
;;
|
|
esac
|
|
|
|
case "${LB_BUILD_WITH_CHROOT}" in
|
|
true)
|
|
cp chroot/usr/lib/syslinux/"${MENUMODULE}" ${DATA_PATH}
|
|
;;
|
|
false)
|
|
cp /usr/lib/syslinux/"${MENUMODULE}" ${DATA_PATH}
|
|
;;
|
|
esac
|
|
fi
|
|
|
|
if ls "${TEMPLATES}/${LB_LANGUAGE}"/* > /dev/null 2>&1
|
|
then
|
|
cp -r "${TEMPLATES}"/"${LB_LANGUAGE}"/* ${SCREEN_PATH}
|
|
else
|
|
if ls "${TEMPLATES}"/en/* > /dev/null 2>&1
|
|
then
|
|
cp -r "${TEMPLATES}"/en/* ${SCREEN_PATH}
|
|
fi
|
|
fi
|
|
|
|
if ls ${SCREEN_PATH}/*.live > /dev/null 2>&1
|
|
then
|
|
for FILE in ${SCREEN_PATH}/*.live
|
|
do
|
|
mv ${FILE} $(dirname ${FILE})/$(basename ${FILE} .live)
|
|
done
|
|
fi
|
|
|
|
if [ "${LB_DEBIAN_INSTALLER}" != "false" ]
|
|
then
|
|
if ls ${SCREEN_PATH}/*.install > /dev/null 2>&1
|
|
then
|
|
for FILE in ${SCREEN_PATH}/*.install
|
|
do
|
|
mv ${FILE} $(dirname ${FILE})/$(basename ${FILE} .install)
|
|
done
|
|
fi
|
|
|
|
case "${LB_ARCHITECTURE}" in
|
|
amd64|i386|powerpc)
|
|
if ls ${SCREEN_PATH}/*.install.g-i > /dev/null 2>&1
|
|
then
|
|
for FILE in ${SCREEN_PATH}/*.install.g-i
|
|
do
|
|
mv ${FILE} $(dirname ${FILE})/$(basename ${FILE} .install.g-i)
|
|
done
|
|
fi
|
|
;;
|
|
|
|
*)
|
|
rm -f ${SCREEN_PATH}/*.install.g-i
|
|
;;
|
|
esac
|
|
else
|
|
rm -f ${SCREEN_PATH}/*.install*
|
|
fi
|
|
|
|
if [ "${LB_SYSLINUX_MENU}" != "false" ]
|
|
then
|
|
rm -f ${DATA_PATH}/boot.txt
|
|
fi
|
|
|
|
# Copying custom splash screen
|
|
if [ "${LB_SYSLINUX_SPLASH}" = "none" ]
|
|
then
|
|
# no splash screen
|
|
SPLASH=""
|
|
rm -f ${SCREEN_PATH}/splash.rle
|
|
rm -f ${DATA_PATH}/splash.png
|
|
else
|
|
if [ "${LB_SYSLINUX_MENU}" = "false" ]
|
|
then
|
|
SPLASH="${LIVE_DATA_PATH}/splash.rle"
|
|
else
|
|
SPLASH="${LIVE_DATA_PATH}/splash.png"
|
|
fi
|
|
|
|
if [ -n "${LB_SYSLINUX_SPLASH}" ]
|
|
then
|
|
if [ ! -e "${LB_SYSLINUX_SPLASH}" ]
|
|
then
|
|
Echo_error "%s doen't exist" "${LB_SYSLINUX_SPLASH}"
|
|
exit 1
|
|
else
|
|
rm -f ${SCREEN_PATH}/splash.rle
|
|
rm -f ${DATA_PATH}/splash.png
|
|
cp -f "${LB_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
|
|
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|{\$LB_DISTRIBUTION}|${LB_DISTRIBUTION}|" \
|
|
-e "s|{\$LB_DATE}|$(date +%Y%m%d)|" \
|
|
-e "s|{\$LB_MEDIA}|${MEDIA}|" \
|
|
-e "s|{\$LB_VERSION}|${VERSION}|" \
|
|
-e "s|{\$LB_SYSLINUX_TIMEOUT}|${LB_SYSLINUX_TIMEOUT}0|" \
|
|
$template_file
|
|
done
|
|
|
|
case "${LB_BINARY_IMAGES}" in
|
|
usb*)
|
|
if [ -f "${SYSLINUX_PATH}/exithelp.cfg" ]
|
|
then
|
|
sed -i -e "s|config isolinux.cfg|config syslinux.cfg|" "${SYSLINUX_PATH}"/exithelp.cfg
|
|
fi
|
|
;;
|
|
|
|
net)
|
|
if [ -f "${SCREEN_PATH}/exithelp.cfg" ]
|
|
then
|
|
sed -i -e "s|config isolinux.cfg|config ${LIVE_KERNEL_PATH}/pxelinux.cfg/default|" "${SCREEN_PATH}"/exithelp.cfg
|
|
fi
|
|
;;
|
|
esac
|
|
}
|
|
|
|
# Setting up common variables
|
|
case "${LB_INITRAMFS}" in
|
|
casper)
|
|
INITFS="casper"
|
|
;;
|
|
|
|
live-initramfs|live-boot)
|
|
INITFS="live"
|
|
;;
|
|
esac
|
|
|
|
# Setting boot method specific variables
|
|
case "${LB_BINARY_IMAGES}" in
|
|
iso*)
|
|
SYSLINUX_PATH="binary/isolinux"
|
|
KERNEL_PATH="binary/${INITFS}"
|
|
SCREEN_PATH="${SYSLINUX_PATH}"
|
|
DATA_PATH="${SCREEN_PATH}"
|
|
LIVE_KERNEL_PATH="/${INITFS}"
|
|
LIVE_INSTALL_KERNEL_PATH="/install"
|
|
LIVE_SCREEN_PATH="/isolinux"
|
|
LIVE_DATA_PATH="${LIVE_SCREEN_PATH}"
|
|
MEDIA="CD-ROM"
|
|
;;
|
|
|
|
net)
|
|
SYSLINUX_PATH="tftpboot"
|
|
KERNEL_PATH="${SYSLINUX_PATH}/debian-live/${LB_ARCHITECTURE}"
|
|
SCREEN_PATH="${SYSLINUX_PATH}/debian-live/${LB_ARCHITECTURE}/boot-screens"
|
|
DATA_PATH="${SCREEN_PATH}"
|
|
LIVE_KERNEL_PATH="debian-live/${LB_ARCHITECTURE}"
|
|
LIVE_INSTALL_KERNEL_PATH="debian-install/${LB_ARCHITECTURE}"
|
|
LIVE_SCREEN_PATH="debian-live/${LB_ARCHITECTURE}/boot-screens"
|
|
LIVE_DATA_PATH="${LIVE_SCREEN_PATH}"
|
|
MEDIA="netboot"
|
|
;;
|
|
|
|
usb*|tar)
|
|
SYSLINUX_PATH="binary/syslinux"
|
|
KERNEL_PATH="binary/${INITFS}"
|
|
SCREEN_PATH="${SYSLINUX_PATH}"
|
|
DATA_PATH="${SCREEN_PATH}"
|
|
LIVE_KERNEL_PATH="/${INITFS}"
|
|
LIVE_INSTALL_KERNEL_PATH="/install"
|
|
LIVE_SCREEN_PATH="/syslinux"
|
|
LIVE_DATA_PATH="${LIVE_SCREEN_PATH}"
|
|
MEDIA="hd-media"
|
|
;;
|
|
esac
|
|
|
|
Check_multiarchitecture
|
|
|
|
# Creating directories
|
|
mkdir -p "${KERNEL_PATH}"
|
|
mkdir -p "${SCREEN_PATH}"
|
|
mkdir -p "${DATA_PATH}"
|
|
|
|
# Setting boot parameters
|
|
case "${LB_ENCRYPTION}" in
|
|
""|false)
|
|
;;
|
|
*)
|
|
LB_BOOTAPPEND_LIVE="${LB_BOOTAPPEND_LIVE} encryption=${LB_ENCRYPTION}"
|
|
;;
|
|
esac
|
|
|
|
if [ -n "${LB_USERNAME}" ]
|
|
then
|
|
case "${LB_INITRAMFS}" in
|
|
casper)
|
|
LB_BOOTAPPEND_LIVE="${LB_BOOTAPPEND_LIVE} username=${LB_USERNAME}"
|
|
;;
|
|
|
|
live-initramfs|live-boot)
|
|
if [ "${LB_USERNAME}" != "user" ]
|
|
then
|
|
LB_BOOTAPPEND_LIVE="${LB_BOOTAPPEND_LIVE} username=${LB_USERNAME}"
|
|
fi
|
|
;;
|
|
esac
|
|
fi
|
|
|
|
if [ -n "${LB_HOSTNAME}" ]
|
|
then
|
|
case "${LB_INITRAMFS}" in
|
|
casper)
|
|
LB_BOOTAPPEND_LIVE="${LB_BOOTAPPEND_LIVE} hostname=${LB_HOSTNAME}"
|
|
;;
|
|
|
|
live-initramfs|live-boot)
|
|
if [ "${LB_HOSTNAME}" != "debian" ]
|
|
then
|
|
LB_BOOTAPPEND_LIVE="${LB_BOOTAPPEND_LIVE} hostname=${LB_HOSTNAME}"
|
|
fi
|
|
;;
|
|
esac
|
|
fi
|
|
|
|
if [ "${LB_UNION_FILESYSTEM}" != "aufs" ]
|
|
then
|
|
LB_BOOTAPPEND_LIVE="${LB_BOOTAPPEND_LIVE} union=${LB_UNION_FILESYSTEM}"
|
|
fi
|
|
|
|
if [ "${LB_EXPOSED_ROOT}" != "false" ]
|
|
then
|
|
LB_BOOTAPPEND_LIVE="${LB_BOOTAPPEND_LIVE} exposedroot"
|
|
fi
|
|
|
|
if [ "${LB_BINARY_IMAGES}" = "net" ]
|
|
then
|
|
case "${LB_NET_ROOT_FILESYSTEM}" in
|
|
nfs)
|
|
LB_BOOTAPPEND_LIVE="${LB_BOOTAPPEND_LIVE} netboot=nfs nfsroot=${LB_NET_ROOT_SERVER}:${LB_NET_ROOT_PATH}"
|
|
;;
|
|
|
|
cifs)
|
|
LB_BOOTAPPEND_LIVE="${LB_BOOTAPPEND_LIVE} netboot=cifs nfsroot=//${LB_NET_ROOT_SERVER}${LB_NET_ROOT_PATH}"
|
|
;;
|
|
|
|
*)
|
|
Echo_error "Unsupported net filesystem"
|
|
exit 1
|
|
;;
|
|
esac
|
|
|
|
if [ -n "${LB_NET_ROOT_MOUNTOPTIONS}" ]
|
|
then
|
|
LB_BOOTAPPEND_LIVE="${LB_BOOTAPPEND_LIVE} nfsopts=${LB_NET_ROOT_MOUNTOPTIONS}"
|
|
fi
|
|
fi
|
|
|
|
if [ -n "${LB_NET_COW_PATH}" ]
|
|
then
|
|
case "${LB_NET_COW_FILESYSTEM}" in
|
|
nfs)
|
|
if [ -n "${LB_NET_COW_MOUNTOPTIONS}" ]
|
|
then
|
|
LB_NET_COW_MOUNTOPTIONS=",${LB_NET_COW_MOUNTOPTIONS}"
|
|
fi
|
|
|
|
LB_BOOTAPPEND_LIVE="${LB_BOOTAPPEND_LIVE} nfscow=${LB_NET_COW_SERVER}:${LB_NET_COW_PATH}${LB_NET_COW_MOUNTOPTIONS}"
|
|
;;
|
|
|
|
*)
|
|
Echo_error "Unsupported net filesystem"
|
|
exit 1
|
|
;;
|
|
esac
|
|
fi
|
|
|
|
LB_BOOTAPPEND_LIVE="$(echo ${LB_BOOTAPPEND_LIVE} | sed -e 's| ||')"
|
|
|
|
# Parameters are listed at: linux/Documentation/kernel-parameters.txt
|
|
FAILSAFE="noapic noapm nodma nomce nolapic nomodeset nosmp vga=normal"
|
|
|
|
# Moving kernels into place
|
|
if [ "binary/${INITFS}" != "${KERNEL_PATH}" ]
|
|
then
|
|
mv binary/${INITFS}/vmlinuz* ${KERNEL_PATH}
|
|
mv binary/${INITFS}/initrd* ${KERNEL_PATH}
|
|
|
|
if [ "${LB_MEMTEST}" != "false" ] && [ "${LB_MEMTEST}" != "none" ]
|
|
then
|
|
mv binary/${INITFS}/memtest ${KERNEL_PATH}
|
|
fi
|
|
fi
|
|
|
|
# Default entries
|
|
DEFAULT_FLAVOUR="$(echo ${LB_LINUX_FLAVOURS} | awk '{ print $1 }')"
|
|
DEFAULT_KERNEL="$(basename chroot/boot/vmlinuz-*${DEFAULT_FLAVOUR})"
|
|
DEFAULT_INITRD="initrd.img-$(echo ${DEFAULT_KERNEL} | sed -e 's|vmlinuz-||')"
|
|
|
|
Syslinux_live_entry "live" "${LB_SYSLINUX_MENU_LIVE_ENTRY}" "${DEFAULT_KERNEL}" "${DEFAULT_INITRD}"
|
|
|
|
if [ "$(echo ${LB_LINUX_FLAVOURS} | wc -w)" -gt "1" ]
|
|
then
|
|
for FLAVOUR in ${LB_LINUX_FLAVOURS}
|
|
do
|
|
if [ "${FLAVOUR}" != "${DEFAULT_FLAVOUR}" ]
|
|
then
|
|
FLAVOUR_KERNEL="$(basename chroot/boot/vmlinuz-*${FLAVOUR})"
|
|
FLAVOUR_INITRD="initrd.img-$(echo ${FLAVOUR_KERNEL} | sed -e 's|vmlinuz-||')"
|
|
Syslinux_live_entry "live-${FLAVOUR}" "${LB_SYSLINUX_MENU_LIVE_ENTRY} ${FLAVOUR}" "${FLAVOUR_KERNEL}" "${FLAVOUR_INITRD}"
|
|
fi
|
|
done
|
|
fi
|
|
|
|
# Only needed for non-vesamenu, non-gfxboot syslinux
|
|
case "${LB_SYSLINUX_MENU}" in
|
|
false|menu)
|
|
# Adding syslinux hardcoded default label entry
|
|
Syslinux_live_entry "linux" "" "${DEFAULT_KERNEL}" "${DEFAULT_INITRD}"
|
|
;;
|
|
esac
|
|
|
|
# Assembling debian-installer configuration
|
|
if [ "${LB_DEBIAN_INSTALLER}" != "false" ]
|
|
then
|
|
VMLINUZ_DI="vmlinuz"
|
|
INITRD_DI="initrd.gz"
|
|
APPEND_DI="vga=normal"
|
|
|
|
VMLINUZ_GI="gtk/vmlinuz"
|
|
INITRD_GI="gtk/initrd.gz"
|
|
APPEND_GI="video=vesa:ywrap,mtrr vga=788"
|
|
|
|
if [ -f "binary/${LIVE_INSTALL_KERNEL_PATH}/${VMLINUZ_DI}" ] && [ -f "binary/${LIVE_INSTALL_KERNEL_PATH}/${INITRD_DI}" ]
|
|
then
|
|
Syslinux_install_entry "Text" "${VMLINUZ_DI}" "${INITRD_DI}" "${APPEND_DI}"
|
|
fi
|
|
|
|
if [ -f "binary/${LIVE_INSTALL_KERNEL_PATH}/${VMLINUZ_GI}" ] && [ -f "binary/${LIVE_INSTALL_KERNEL_PATH}/${INITRD_GI}" ]
|
|
then
|
|
Syslinux_install_entry "GUI" "${VMLINUZ_GI}" "${INITRD_GI}" "${APPEND_GI}"
|
|
fi
|
|
fi
|
|
|
|
# Assembling memtest configuration
|
|
if [ -f "${KERNEL_PATH}"/memtest ]
|
|
then
|
|
Syslinux_memtest_entry "memtest" "${LB_SYSLINUX_MENU_MEMTEST_ENTRY}" "memtest"
|
|
fi
|
|
|
|
# Copy templates to base syslinux directory
|
|
Copy_syslinux_templates
|
|
|
|
# Fill in templates with created values
|
|
Configure_syslinux_templates
|
|
|
|
# Configure syslinux setup per boot method
|
|
case "${LB_BINARY_IMAGES}" in
|
|
iso*)
|
|
case "${LB_BUILD_WITH_CHROOT}" in
|
|
true)
|
|
cp chroot/usr/lib/syslinux/isolinux.bin ${SCREEN_PATH}
|
|
;;
|
|
false)
|
|
cp /usr/lib/syslinux/isolinux.bin ${SCREEN_PATH}
|
|
;;
|
|
esac
|
|
|
|
mv ${SCREEN_PATH}/syslinux.cfg ${SCREEN_PATH}/isolinux.cfg
|
|
|
|
# Copying configuration file
|
|
if [ -n "${LB_SYSLINUX_CFG}" ]
|
|
then
|
|
cp "${LB_SYSLINUX_CFG}" ${SCREEN_PATH}/isolinux.cfg
|
|
fi
|
|
;;
|
|
|
|
net)
|
|
case "${LB_BUILD_WITH_CHROOT}" in
|
|
true)
|
|
cp chroot/usr/lib/syslinux/pxelinux.0 ${KERNEL_PATH}
|
|
;;
|
|
false)
|
|
cp /usr/lib/syslinux/pxelinux.0 ${KERNEL_PATH}
|
|
;;
|
|
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
|
|
|
|
# Adjusting include pathes
|
|
for FILE in ${SCREEN_PATH}/*.cfg
|
|
do
|
|
sed -i -e "s|^include |include ${LIVE_SCREEN_PATH}/|g" "${FILE}"
|
|
done
|
|
|
|
sed -i -e "s| f| ${LIVE_SCREEN_PATH}/f|g" ${SCREEN_PATH}/prompt.cfg
|
|
|
|
mv ${SCREEN_PATH}/syslinux.cfg ${KERNEL_PATH}/pxelinux.cfg/default
|
|
|
|
# Copying configuration file
|
|
if [ -n "${LB_SYSLINUX_CFG}" ]
|
|
then
|
|
cp "${LB_SYSLINUX_CFG}" ${KERNEL_PATH}/pxelinux.cfg/default
|
|
fi
|
|
;;
|
|
|
|
usb*|tar)
|
|
case "${LB_BUILD_WITH_CHROOT}" in
|
|
true)
|
|
cp chroot/usr/lib/syslinux/isolinux.bin ${SCREEN_PATH}/syslinux.bin
|
|
;;
|
|
false)
|
|
cp /usr/lib/syslinux/isolinux.bin ${SCREEN_PATH}/syslinux.bin
|
|
;;
|
|
esac
|
|
|
|
# Copying configuration file
|
|
if [ -n "${LB_SYSLINUX_CFG}" ]
|
|
then
|
|
cp "${LB_SYSLINUX_CFG}" ${SCREEN_PATH}/syslinux.cfg
|
|
fi
|
|
;;
|
|
esac
|
|
|
|
# Saving cache
|
|
Save_cache cache/packages_binary
|
|
|
|
# Removing depends
|
|
Remove_package
|
|
|
|
# Creating stage file
|
|
Create_stagefile .stage/binary_syslinux
|