#!/bin/bash
-. ${clst_sharedir}/targets/support/functions.sh
-. ${clst_sharedir}/targets/support/filesystem-functions.sh
+source ${clst_sharedir}/targets/support/functions.sh
+source ${clst_sharedir}/targets/support/filesystem-functions.sh
# $1 is the destination root
extract_cdtar $1
extract_kernels $1/boot
-check_dev_manager
check_bootargs
check_filesystem_type
default_append_line="root=/dev/ram0 init=/linuxrc ${cmdline_opts} ${custom_kopts} cdroot"
+[ -n "${clst_splash_theme}" ] && default_append_line="${default_append_line} splash=silent,theme:${clst_livecd_splash_theme} CONSOLE=/dev/tty1 quiet"
case ${clst_hostarch} in
alpha)
echo "init=/linuxrc ${cmdline_opts} cdroot" >> ${acfg}
((bctr=${bctr}+1))
done
- ;;
+ ;;
arm)
# NO SOFTLEVEL SUPPORT YET
- ;;
+ ;;
hppa)
# NO SOFTLEVEL SUPPORT YET
icfg=$1/boot/palo.conf
kmsg=$1/boot/kernels.msg
hmsg=$1/boot/help.msg
- echo "--commandline=0/${first} initrd=${first}.igz root=/dev/ram0 init=/linuxrc ${cmdline_opts}" >> ${icfg}
+ # Make sure we strip the extension to the kernel to allow palo to choose
+ boot_kernel_common_name=${first/%32/}
+ boot_kernel_common_name=${boot_kernel_common_name/%64/}
+ echo "--commandline=0/${boot_kernel_common_name} initrd=${first}.igz root=/dev/ram0 init=/linuxrc cdroot ${cmdline_opts}" >> ${icfg}
echo "--bootloader=boot/iplboot" >> ${icfg}
echo "--ramdisk=boot/${first}.igz" >> ${icfg}
- ;;
- ppc)
- # NO SOFTLEVEL SUPPORT YET
-
- # PPC requirements:
- # -----------------
- # The specs indicate the kernels to be build. We need to put
- # those kernels and the corresponding initrd.img.gz(s) in the
- # /boot directory. This directory contains a message boot.msg
- # containing some info to be displayed on boot, a configuration
- # (yaboot.conf) specifying the boot options (kernel/initrd
- # combinations). The boot directory also contains a file called
- # yaboot, which normally gets copied from the live environment.
- # For now we supply a prebuilt file, prebuilt configuration
- # and prebuilt boot message. This can be enhanced later on
- # but the following suffices for now:
-
- # this sets up the config file for yaboot
-
-
- # ADD RUNLEVEL SUPPORT ???
-
- icfg=$1/boot/yaboot.conf
- kmsg=$1/boot/boot.msg
-
- echo "default ${first}" > ${icfg}
- echo "timeout 300" >> ${icfg}
- echo "device=cd:" >> ${icfg}
- echo "root=/dev/ram" >> ${icfg}
- echo "fgcolor=white" >> ${icfg}
- echo "bgcolor=black" >> ${icfg}
- echo "message=/boot/boot.msg" >> ${icfg}
-
- # Here is where I fix up the boot.msg file.
- sed -e 's/ARCH/PPC/' \
- -e 's/HARDWARE/32-bit Apple and Pegasos hardware/' \
- -i $kmsg
-
- # Here we wipe out the /ppc directory, if it exists.
- rm -rf $1/ppc
-
for x in ${clst_boot_kernel}
- do
- eval custom_kopts=\$${x}_kernelopts
- echo "APPENDING CUSTOM KERNEL ARGS: ${custom_kopts}"
- echo "image=/boot/${x}" >> ${icfg}
-
- if [ -e "$1/boot/${x}.igz" ]
- then
- echo "initrd=/boot/${x}.igz" >> ${icfg}
- fi
-
- echo "label=${x}" >> ${icfg}
- echo "read-write" >> ${icfg}
- if [ "${clst_livecd_splash_type}" == "gensplash" -a -n "${clst_livecd_splash_theme}" ]
- then
- echo "append=\"${default_append_line} splash=silent,theme:${clst_livecd_splash_theme} CONSOLE=/dev/tty1 quiet\"" >> ${icfg}
- else
- echo "append=\"${default_append_line}\"" >> ${icfg}
- fi
+ do
+ echo "--recoverykernel=boot/${x}" >> ${icfg}
done
;;
-
- ppc64)
+ ppc*|powerpc*)
# NO SOFTLEVEL SUPPORT YET
-
- # PPC requirements:
- # -----------------
- # The specs indicate the kernels to be build. We need to put
- # those kernels and the corresponding initrd.img.gz(s) in the
- # /boot directory. This directory contains a message boot.msg
- # containing some info to be displayed on boot, a configuration
- # (yaboot.conf) specifying the boot options (kernel/initrd
- # combinations). The boot directory also contains a file called
- # yaboot, which normally gets copied from the live environment.
- # For now we supply a prebuilt file, prebuilt configuration
- # and prebuilt boot message. This can be enhanced later on
- # but the following suffices for now:
-
- # this sets up the config file for yaboot
-
-
- # ADD RUNLEVEL SUPPORT ???
-
icfg=$1/boot/yaboot.conf
kmsg=$1/boot/boot.msg
echo "fgcolor=white" >> ${icfg}
echo "bgcolor=black" >> ${icfg}
echo "message=/boot/boot.msg" >> ${icfg}
-
+
# Here is where I fix up the boot.msg file.
- sed -e 's/ARCH/PPC/' \
- -e 's/HARDWARE/64-bit Apple and IBM hardware/' \
+ sed -e 's/ARCH/PowerPC/' \
+ -e 's/HARDWARE/Apple and IBM hardware/' \
-i $kmsg
- # Setup the IBM yaboot.conf
+ # Setup the IBM yaboot.conf
etc_icfg=$1/etc/yaboot.conf
- mkdir -p $1/etc
+ mkdir -p $1/etc
IBM_YABOOT="FALSE"
echo "root=/dev/ram" >> ${etc_icfg}
echo "fgcolor=white" >> ${etc_icfg}
echo "bgcolor=black" >> ${etc_icfg}
echo "message=/boot/boot.msg" >> ${etc_icfg}
-
+
for x in ${clst_boot_kernel}
- do
+ do
eval "clst_kernel_console=\$clst_boot_kernel_${x}_console"
eval "clst_kernel_machine_type=\$clst_boot_kernel_${x}_machine_type"
eval custom_kopts=\$${x}_kernelopts
-
+
echo "APPENDING CUSTOM KERNEL ARGS: ${custom_kopts}"
if [ "${clst_kernel_machine_type}" == "ibm" ]
then
echo "label=${x}" >> ${etc_icfg}
echo "read-write" >> ${icfg}
- if [ "${clst_livecd_splash_type}" == "gensplash" -a -n "${clst_livecd_splash_theme}" ]
- then
- echo "append=\"${default_append_line} splash=silent,theme:${clst_livecd_splash_theme} CONSOLE=/dev/tty1 quiet\"" >> ${etc_icfg}
- else
- echo "append=\"${default_append_line}\"" >> ${etc_icfg}
- fi
+ echo "append=\"${default_append_line}\"" >> ${etc_icfg}
for y in ${clst_kernel_console}
do
echo "label=${x}" >> ${etc_icfg}
echo "read-write" >> ${etc_icfg}
- if [ "${clst_livecd_splash_type}" == "gensplash" -a -n "${clst_livecd_splash_theme}" ]
- then
- echo "append=\"${default_append_line} splash=silent,theme:${clst_livecd_splash_theme} CONSOLE=/dev/tty1 quiet\"" >> ${etc_icfg}
- else
- echo "append=\"${default_append_line}\"" >> ${etc_icfg}
- fi
+ echo "append=\"${default_append_line}\"" >> ${etc_icfg}
fi
else
+ # Here we wipe out the /ppc directory, if it exists.
+ rm -rf $1/ppc
if [ -n "${clst_kernel_console}" ]
then
echo >> ${icfg}
echo "label=${x}" >> ${icfg}
echo "read-write" >> ${icfg}
- if [ "${clst_livecd_splash_type}" == "gensplash" -a -n "${clst_livecd_splash_theme}" ]
- then
- echo "append=\"${default_append_line} splash=silent,theme:${clst_livecd_splash_theme} CONSOLE=/dev/tty1 quiet\"" >> ${icfg}
- else
- echo "append=\"${default_append_line}\"" >> ${icfg}
- fi
-
+ echo "append=\"${default_append_line}\"" >> ${icfg}
+
for y in ${clst_kernel_console}
do
echo >> ${icfg}
echo "label=${x}" >> ${icfg}
echo "read-write" >> ${icfg}
- if [ "${clst_livecd_splash_type}" == "gensplash" -a -n "${clst_livecd_splash_theme}" ]
- then
- echo "append=\"${default_append_line} splash=silent,theme:${clst_livecd_splash_theme} CONSOLE=/dev/tty1 quiet\"" >> ${icfg}
- else
- echo "append=\"${default_append_line}\"" >> ${icfg}
- fi
+ echo "append=\"${default_append_line}\"" >> ${icfg}
fi
fi
done
if [ "${IBM_YABOOT}" == "FALSE" ]
- then
+ then
rm ${etc_kmsg}
rmdir $1/etc
if [ -d $1/ppc ]
fi
fi
- ;;
+ ;;
sparc*)
# NO SOFTLEVEL SUPPORT YET
-
scfg=$1/boot/silo.conf
echo "default=\"help\"" > ${scfg}
echo "message=\"/boot/boot.msg\"" >> ${scfg}
echo -e "label=\"help\"" >> ${scfg}
echo "image=\"cat /boot/parameters.msg\"" >> ${scfg}
echo -e "label=\"parameters\"" >> ${scfg}
- ;;
+ ;;
ia64)
# NO SOFTLEVEL SUPPORT YET
-
iacfg=$1/boot/elilo.conf
echo 'prompt' > ${iacfg}
echo 'message=/efi/boot/elilo.msg' >> ${iacfg}
echo " initrd=/efi/boot/${x}.igz" >> ${iacfg}
echo >> ${iacfg}
echo "image=/efi/boot/${x}" >> ${iacfg}
+ echo " label=${x}-ilo">> ${iacfg}
+ echo ' append="'initrd=${x}.igz ${default_append_line}' console=tty0 console=ttyS3,9600"' >> ${iacfg}
+ echo " initrd=/efi/boot/${x}.igz" >> ${iacfg}
+ echo >> ${iacfg}
+ echo "image=/efi/boot/${x}" >> ${iacfg}
echo " label=${x}-sgi">> ${iacfg}
echo ' append="'initrd=${x}.igz ${default_append_line}' console=tty0 console=ttySG0,115200"' >> ${iacfg}
echo " initrd=/efi/boot/${x}.igz" >> ${iacfg}
mv $1/boot/${x}{,.igz} $1/boot/efi/boot
done
cp ${iacfg} $1/boot/efi/boot
- ;;
+ ;;
x86|amd64)
if [ -e $1/isolinux/isolinux.bin ]
then
kmsg=$1/isolinux/kernels.msg
echo "default ${first}" > ${icfg}
echo "timeout 150" >> ${icfg}
+ echo "ontimeout localhost" >> ${icfg}
echo "prompt 1" >> ${icfg}
echo "display boot.msg" >> ${icfg}
echo "F1 kernels.msg" >> ${icfg}
eval custom_kopts=\$${x}_kernelopts
echo "APPENDING CUSTOM KERNEL ARGS: ${custom_kopts}"
echo >> ${icfg}
-
+
eval "clst_kernel_softlevel=\$clst_boot_kernel_${x}_softlevel"
if [ -n "${clst_kernel_softlevel}" ]
do
echo "label ${x}-${y}" >> ${icfg}
echo " kernel ${x}" >> ${icfg}
- if [ "${clst_livecd_splash_type}" == "gensplash" -a -n "${clst_livecd_splash_theme}" ]
- then
- echo " append ${default_append_line} softlevel=${y} initrd=${x}.igz vga=791 splash=silent,theme:${clst_livecd_splash_theme} CONSOLE=/dev/tty1 quiet" >> ${icfg}
- elif [ "${clst_livecd_splash_type}" == "bootplash" -a -n "${clst_livecd_splash_theme}" ]
- then
- echo " append ${default_append_line} softlevel=${y} initrd=${x}.igz vga=791 splash=silent" >> ${icfg}
- else
- echo " append ${default_append_line} softlevel=${y} initrd=${x}.igz vga=791" >> ${icfg}
- fi
+ echo " append ${default_append_line} softlevel=${y} initrd=${x}.igz vga=791" >> ${icfg}
echo >> ${icfg}
echo " ${x}" >> ${kmsg}
else
echo "label ${x}" >> ${icfg}
echo " kernel ${x}" >> ${icfg}
- if [ "${clst_livecd_splash_type}" == "gensplash" -a -n "${clst_livecd_splash_theme}" ]
- then
- echo " append ${default_append_line} initrd=${x}.igz vga=791 splash=silent,theme:${clst_livecd_splash_theme} CONSOLE=/dev/tty1 quiet" >> ${icfg}
- elif [ "${clst_livecd_splash_type}" == "bootplash" -a -n "${clst_livecd_splash_theme}" ]
- then
- echo " append ${default_append_line} initrd=${x}.igz vga=791 splash=silent" >> ${icfg}
- else
- echo " append ${default_append_line} initrd=${x}.igz vga=791" >> ${icfg}
- fi
+ echo " append ${default_append_line} initrd=${x}.igz vga=791" >> ${icfg}
echo >> ${icfg}
echo " ${x}" >> ${kmsg}
echo "label ${x}-nofb" >> ${icfg}
echo "label memtest86" >> $icfg
echo " kernel memtest86" >> $icfg
fi
+ echo >> $icfg
+ echo "label localhost" >> $icfg
+ echo " localboot -1" >> $icfg
+ echo " MENU HIDE" >> $icfg
fi
if [ -e $1/boot/efi/elilo.efi ]
if [ -e $1/boot/grub/stage2_eltorito ]
then
- icfg=$1/boot/grub/grub.conf
- echo "default 1" > ${icfg}
+ icfg=$1/boot/grub/menu.lst
+ echo "default 0" > ${icfg}
echo "timeout 15" >> ${icfg}
echo "pager on" >> ${icfg}
+ # Copy our splash if we're a Gentoo release
+ case ${clst_livecd_type} in
+ gentoo-*)
+ [ -e ${clst_chroot_path}/boot/grub/splash.xpm.gz ] && \
+ cp -f ${clst_chroot_path}/boot/grub/splash.xpm.gz \
+ ${1}/boot/grub
+ ;;
+ esac
+
if [ -e ${1}/boot/grub/splash.xpm.gz ]; then
echo "splashimage=/boot/grub/splash.xpm.gz" >> ${icfg}
fi
- # Setup help message
- echo >> ${icfg}
- echo "title help" >> ${icfg}
- cp ${clst_sharedir}/livecd/files/README.txt \
- $1/boot/help.msg
- echo "cat /boot/help.msg" >> ${icfg}
-
for x in ${clst_boot_kernel}
do
eval custom_kopts=\$${x}_kernelopts
echo "APPENDING CUSTOM KERNEL ARGS: ${custom_kopts}"
echo >> ${icfg}
-
+
eval "clst_kernel_softlevel=\$clst_boot_kernel_${x}_softlevel"
-
+
if [ -n "${clst_kernel_softlevel}" ]
then
for y in ${clst_kernel_softlevel}
do
echo "title ${x}-${y}" >> ${icfg}
- if [ "${clst_livecd_splash_type}" == "gensplash" -a -n "${clst_livecd_splash_theme}" ]
- then
- echo "kernel /boot/${x} softlevel=${y} ${default_append_line} vga=791 splash=silent,theme:${clst_livecd_splash_theme} CONSOLE=/dev/tty1 quiet" >> ${icfg}
- elif [ "${clst_livecd_splash_type}" == "bootplash" -a -n "${clst_livecd_splash_theme}" ]
- then
- echo " append ${default_append_line} softlevel=${y} initrd=${x}.igz vga=791 splash=silent" >> ${icfg}
- else
- echo " append ${default_append_line} softlevel=${y} initrd=${x}.igz vga=791" >> ${icfg}
- fi
+ echo " append ${default_append_line} softlevel=${y} initrd=${x}.igz vga=791" >> ${icfg}
if [ -e $1/boot/${x}.igz ]
then
echo "initrd /boot/${x}.igz" >> ${icfg}
done
else
echo "title ${x}" >> ${icfg}
- if [ "${clst_livecd_splash_type}" == "gensplash" -a -n "${clst_livecd_splash_theme}" ]
- then
- echo "kernel /boot/${x} ${default_append_line} vga=791 splash=silent,theme:${clst_livecd_splash_theme} CONSOLE=/dev/tty1 quiet" >> ${icfg}
- elif [ "${clst_livecd_splash_type}" == "bootplash" -a -n "${clst_livecd_splash_theme}" ]
- then
- echo "kernel /boot/${x} ${default_append_line} vga=791 splash=silent" >> ${icfg}
- else
- echo "kernel /boot/${x} ${default_append_line} vga=791" >> ${icfg}
- fi
+ echo "kernel /boot/${x} ${default_append_line} vga=791" >> ${icfg}
if [ -e $1/boot/${x}.igz ]
then
echo "initrd /boot/${x}.igz" >> ${icfg}
done
+ # Setup help message
+ echo >> ${icfg}
+ echo "title help" >> ${icfg}
+ cp ${clst_sharedir}/livecd/files/README.txt \
+ $1/boot/help.msg
+ echo "cat /boot/help.msg" >> ${icfg}
+
if [ -f $1/boot/memtest86 ]
then
echo >> ${icfg}
echo "kernel /boot/memtest86" >> ${icfg}
fi
fi
- ;;
+ ;;
mips)
-
# NO SOFTLEVEL SUPPORT YET
-
# Mips is an interesting arch -- where most archs will
# use ${1} as the root of the LiveCD, an SGI LiveCD lacks
# such a root. Instead, we will use ${1} as a scratch