summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
author Eric Hameleers <alien@slackware.com>2016-01-10 13:50:35 +0100
committer Eric Hameleers <alien@slackware.com>2016-01-10 13:50:35 +0100
commit710dea0bae3979d084021c910af3f53388e72603 (patch)
treea803c4fc60931c0068b350741c48022b4fda2dd2
parent517c42b8aa7ef23d2f897aeb1e840dc0dca8d673 (diff)
downloadliveslak-710dea0bae3979d084021c910af3f53388e72603.tar.gz
liveslak-710dea0bae3979d084021c910af3f53388e72603.tar.xz
BIOS (syslinux) and UEFI (grub2) boot: enhance the experience.
- generate the grub fonts (.pf2) ourselves instead of using the Slackware-provided grub font file. - expand the help text about the boot parameters. - show the liveslak version number in the boot menu. - remove the 'boot any OS' menu item in Grub because it never worked for me. - add a bit of Grub help text at the bottom of the screen. NOTES: - I do not like the way how I had to implement the Grub2 help menu, it is ugly. Perhaps the text artefacts and understrikes are caused by the fact that the grub console has to paint on top of the graphical boot menu? - In any case, the grub console (the black rectangle in the middle) has its coordinates hard-coded in the grub2 source so it is not configurable. - the grub fonts look better than in Beta3 but I am still not happy with them. Research on Grub boot menu enhancements done by Didier Spaier.
-rw-r--r--EFI/BOOT/help.txt66
-rw-r--r--EFI/BOOT/osdetect.cfg390
-rw-r--r--EFI/BOOT/theme/liveslak.txt20
-rw-r--r--grub.tpl12
-rwxr-xr-xmake_slackware_live.sh7
-rw-r--r--menu.tpl6
-rw-r--r--syslinux/f2.txt42
-rw-r--r--syslinux/f3.txt22
-rw-r--r--syslinux/f4.txt22
9 files changed, 165 insertions, 422 deletions
diff --git a/EFI/BOOT/help.txt b/EFI/BOOT/help.txt
new file mode 100644
index 0000000..2b1b54a
--- /dev/null
+++ b/EFI/BOOT/help.txt
@@ -0,0 +1,66 @@
+== Tweaks for the boot commandline ==
+
+To boot with default values just press ENTER.
+
+=== Desktop Environment ===
+
+0|1|2|3|4|5|6|S|s|single => Select a runlevel to start with.
+ The default is 4 for graphical login.
+
+kbd=fr xkb=ch,fr => Example of custom X keyboard layout.
+
+livepw="somestring" => Change the password for user "live".
+
+locale=nl_NL kbd=nl tz=Europe/Amsterdam => Example of language,
+ keyboard and/or timezone customization.
+
+rootpw="somestring" => Change the password for user "root".
+
+=== Custom software ===
+
+load=nvidia => Load and configure Nvidia drivers if available
+ in the ISO.
+
+load=mod1[,mod2[...]] => Load one or more squashfs modules
+ from the directory: "/liveslack/optional".
+ By default none of these modules is loaded on boot.
+
+noload=mod1[,mod2[...]] => Prevent loading of one or more
+ squashfs modules from the directory "/liveslack/addons".
+ By default all these modules are loaded on boot.
+
+=== Hardware related ===
+
+nomodeset => Boot without kernel mode setting, needed with
+ some machines.
+
+rootdelay=10 => Add 10 second delay to give the kernel more
+ time to initialize USB. Try this if booting fails.
+
+swap => Allow the Live OS to activate all swap partitions on
+ on the local hardware. By default, none is touched.
+
+=== Media tweaks ===
+
+livemedia=/dev/sdX => Tell the init script which partition
+ contains the Slackware Live OS you want to boot. This can
+ become necessary if you have another copy of Slackware Live
+ installed in another partition.
+
+livemain=directoryname => Use this if you copied the content
+ of the ISO to a different directory than "liveslak".
+
+nop => No persistence, i.e. boot the virgin installation in
+ case your "persistence" directory got corrupted.
+
+persistence=directoryname => Use this if you want to use
+ a different directory than "persistence" for storing
+ persistent data.
+
+=== Troubleshooting ===
+
+debug => During init, pause at specifiuc locations while as-
+ sembling the overlay filesystem and show mount information.
+
+rescue => After initialization, you will be dropped in a
+ rescue shell to perform lowlevel maintenance.
diff --git a/EFI/BOOT/osdetect.cfg b/EFI/BOOT/osdetect.cfg
deleted file mode 100644
index 40bfd28..0000000
--- a/EFI/BOOT/osdetect.cfg
+++ /dev/null
@@ -1,390 +0,0 @@
-# Sample GRUB script to autodetect operating systems
-#
-# Copyright (C) 2010 Free Software Foundation, Inc.
-# Copyright (C) 2011, 2012 Jordan Uggla
-# Copyright (C) 2011, 2012 Adrian Gibanel
-# Copyright (C) 2013 Niall Walsh
-#
-# GRUB is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# GRUB is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with GRUB. If not, see <http://www.gnu.org/licenses/>.
-
-source "${prefix}/tools.cfg"
-
-set saved_root=$root
-
-function freebsd_ufs_variants {
- set device=$1
- set fstype=$2
- set uuid=$3
-
- menuentry "FreeBSD ($fstype $device)" $device $uuid {
- set root=$2
- set uuid=$3
-
- kfreebsd /boot/kernel/kernel
- set kFreeBSD.acpi_load=YES
- set kFreeBSD.hint.acpi.0.disabled=0
- set kFreeBSD.vfs.root.mountfrom=ufs:ufsid/$uuid
- kfreebsd_loadenv /boot/device.hints
- }
-
- menuentry "FreeBSD ($fstype $device) (single)" $device $uuid {
- set root=$2
- set uuid=$3
-
- kfreebsd /boot/kernel/kernel -s
- set kFreeBSD.acpi_load=YES
- set kFreeBSD.hint.acpi.0.disabled=0
- set kFreeBSD.vfs.root.mountfrom=ufs:ufsid/$uuid
- kfreebsd_loadenv /boot/device.hints
- }
-
- menuentry "FreeBSD ($fstype $device) (verbose)" $device $uuid {
- set root=$2
- set uuid=$3
-
- kfreebsd /boot/kernel/kernel -v
- set kFreeBSD.acpi_load=YES
- set kFreeBSD.hint.acpi.0.disabled=0
- set kFreeBSD.vfs.root.mountfrom=ufs:ufsid/$uuid
- kfreebsd_loadenv /boot/device.hints
- }
-
- menuentry "FreeBSD ($fstype $device) (no ACPI)" $device $uuid {
- set root=$2
- set uuid=$3
-
- kfreebsd /boot/kernel/kernel -v
- unset kFreeBSD.acpi_load
- set kFreeBSD.hint.acpi.0.disabled=1
- set kFreeBSD.loader.acpi_disabled_by_user=1
- set kFreeBSD.vfs.root.mountfrom=ufs:ufsid/$uuid
- kfreebsd_loadenv /boot/device.hints
- }
-
- menuentry "FreeBSD ($fstype $device) (safe mode)" $device $uuid {
- set root=$2
- set uuid=$3
-
- kfreebsd /boot/kernel/kernel -v
- unset kFreeBSD.acpi_load
- set kFreeBSD.hint.acpi.0.disabled=1
- set kFreeBSD.loader.acpi_disabled_by_user=1
- set kFreeBSD.hint.apic.0.disabled=1
- set kFreeBSD.hw.ata.ata_dma=0
- set kFreeBSD.hw.ata.atapi_dma=0
- set kFreeBSD.hw.ata.wc=0
- set kFreeBSD.hw.eisa_slots=0
- set kFreeBSD.hint.kbdmux.0.disabled=1
- set kFreeBSD.vfs.root.mountfrom=ufs:ufsid/$uuid
- kfreebsd_loadenv /boot/device.hints
- }
-
- menuentry "FreeBSD ($fstype $device) (Default boot loader)" $device $uuid {
- set root=$2
-
- kfreebsd /boot/loader
- }
-}
-
-function freebsd_zfs_variants {
- set device=$1
- set fstype=zfs
-
- menuentry "FreeBSD ($fstype $device)" $device {
- set root=$2
-
- kfreebsd /@/boot/kernel/kernel
- set kFreeBSD.acpi_load=YES
- set kFreeBSD.hint.acpi.0.disabled=0
- kfreebsd_module_elf /@/boot/kernel/opensolaris.ko
- kfreebsd_module_elf /@/boot/kernel/zfs.ko
- kfreebsd_module /@/boot/zfs/zpool.cache type=/boot/zfs/zpool.cache
- probe -l -s name $root
- set kFreeBSD.vfs.root.mountfrom=zfs:$name
- kfreebsd_loadenv /@/boot/device.hints
- }
-
- menuentry "FreeBSD ($fstype $device) (single)" $device {
- set root=$2
-
- kfreebsd /@/boot/kernel/kernel -s
- set kFreeBSD.acpi_load=YES
- set kFreeBSD.hint.acpi.0.disabled=0
- kfreebsd_module_elf /@/boot/kernel/opensolaris.ko
- kfreebsd_module_elf /@/boot/kernel/zfs.ko
- kfreebsd_module /@/boot/zfs/zpool.cache type=/boot/zfs/zpool.cache
- probe -l -s name $root
- set kFreeBSD.vfs.root.mountfrom=zfs:$name
- kfreebsd_loadenv /@/boot/device.hints
- }
-
- menuentry "FreeBSD ($fstype $device) (verbose)" $device {
- set root=$2
-
- kfreebsd /@/boot/kernel/kernel -v
- set kFreeBSD.acpi_load=YES
- set kFreeBSD.hint.acpi.0.disabled=0
- kfreebsd_module_elf /@/boot/kernel/opensolaris.ko
- kfreebsd_module_elf /@/boot/kernel/zfs.ko
- kfreebsd_module /@/boot/zfs/zpool.cache type=/boot/zfs/zpool.cache
- probe -l -s name $root
- set kFreeBSD.vfs.root.mountfrom=zfs:$name
- kfreebsd_loadenv /@/boot/device.hints
- }
-
- menuentry "FreeBSD ($fstype $device) (no ACPI)" $device {
- set root=$2
-
- kfreebsd /@/boot/kernel/kernel -v
- unset kFreeBSD.acpi_load
- set kFreeBSD.hint.acpi.0.disabled=1
- set kFreeBSD.loader.acpi_disabled_by_user=1
- kfreebsd_module_elf /@/boot/kernel/opensolaris.ko
- kfreebsd_module_elf /@/boot/kernel/zfs.ko
- kfreebsd_module /@/boot/zfs/zpool.cache type=/boot/zfs/zpool.cache
- probe -l -s name $root
- set kFreeBSD.vfs.root.mountfrom=zfs:$name
- kfreebsd_loadenv /@/boot/device.hints
- }
-
- menuentry "FreeBSD ($fstype $device) (safe mode)" $device {
- set root=$2
-
- kfreebsd /@/boot/kernel/kernel -v
- unset kFreeBSD.acpi_load
- set kFreeBSD.hint.acpi.0.disabled=1
- set kFreeBSD.loader.acpi_disabled_by_user=1
- set kFreeBSD.hint.apic.0.disabled=1
- set kFreeBSD.hw.ata.ata_dma=0
- set kFreeBSD.hw.ata.atapi_dma=0
- set kFreeBSD.hw.ata.wc=0
- set kFreeBSD.hw.eisa_slots=0
- set kFreeBSD.hint.kbdmux.0.disabled=1
- kfreebsd_module_elf /@/boot/kernel/opensolaris.ko
- kfreebsd_module_elf /@/boot/kernel/zfs.ko
- kfreebsd_module /@/boot/zfs/zpool.cache type=/boot/zfs/zpool.cache
- probe -l -s name $root
- set kFreeBSD.vfs.root.mountfrom=zfs:$name
- kfreebsd_loadenv /@/boot/device.hints
- }
-
- menuentry "FreeBSD ($fstype $device) (Default boot loader)" $device $uuid {
- set root=$2
-
- kfreebsd /@/boot/loader
- }
-
-}
-
-function get_efis {
- blockdev="$1"
- blockfs="$2"
- efis=""
- if [ "$blockfs" = "fat" ]; then
- for efi in ($blockdev)/efi/*/*.efi ($blockdev)/efi/*/*/*.efi \
- ($blockdev)/*.efi ($blockdev)/*/*.efi ; do
- if [ -f "$efi" ] ; then
- efis="$efis $efi"
- fi
- done
- if [ -n "$efis" ]; then
- return 0
- fi
- fi
- return 1
-}
-
-insmod regexp
-
-
-for dev in (*); do
- # $device: parenthesis removed from $dev
- regexp -s device '\((.*)\)' $dev
- # Discard floppy and cdrom devices in search
- # But search them if their search has been inforced
-
- if searchindevice "$device" ; then
-
-
- # $fstype: filesystem type identified
- probe -s fstype -f $dev
- # uuid: filesystem UUID
- probe -s uuid -u $dev
-
- if test -f ($device)/bootmgr -a -f ($device)/boot/bcd; then
- menuentry "Windows Vista ($device)" $device {
- set root=$2
- chainloader +1
- }
- elif test -f ($device)/ntldr -a \
- -e ($device)/ntdetect.com -a -f ($device)/boot.ini; then
- menuentry "Windows NT/2000/XP ($device)" $device {
- set root=$2
- regexp -s devnum 'hd([0-9]+)' $root
- if test "$devnum" != "0"; then
- drivemap -s hd0 $root
- fi
- chainloader +1
- }
- elif test -f ($device)/windows/win.com; then
- menuentry "Windows 98/ME ($device)" $device {
- set root=$2
- regexp -s devnum 'hd([0-9]+)' $root
- if test "$devnum" != "0"; then
- drivemap -s hd0 $root
- fi
- chainloader +1
- }
- elif test -f ($device)/io.sys -a -f ($device)/command.com; then
- menuentry "MS-DOS ($device)" $device {
- set root=$2
- regexp -s devnum 'hd([0-9]+)' $root
- if test "$devnum" != "0"; then
- drivemap -s hd0 $root
- fi
- chainloader +1
- }
- elif test -f ($device)/kernel.sys; then
- menuentry "FreeDOS ($device)" $device {
- set root=$2
- regexp -s type '([fh])d[0-9]+' $root
- regexp -s devnum '[fh]d([0-9]+)' $root
- if test $type = 'h' -a "$devnum" != "0"; then
- drivemap -s hd0 $root
- fi
- chainloader +1
- }
- elif test "$fstype" = ufs1 -o "$fstype" = ufs2 -a \
- -e ($device)/boot/kernel/kernel -a \
- -e ($device)/boot/device.hints; then
-
- freebsd_ufs_variants $device $fstype $uuid
-
- elif test "$fstype" = zfs -a \
- -e ($device)/@/boot/kernel/kernel -a \
- -e ($device)/@/boot/device.hints; then
-
- freebsd_zfs_variants $device
-
- elif test "$fstype" = hfsplus -a -f ($device)/mach_kernel; then
- menuentry "Mac OS X/Darwin" $device $uuid {
- set root=$2
- set uuid=$3
-
- insmod vbe
- do_resume=0
- if [ /var/vm/sleepimage -nt10 / ]; then
- if xnu_resume /var/vm/sleepimage; then
- do_resume=1
- fi
- fi
- if [ $do_resume = 1 ]; then
- xnu_uuid $uuid uuid
- if [ -f /Extra/DSDT.aml ]; then
- acpi -e /Extra/DSDT.aml
- fi
- xnu_kernel /mach_kernel boot-uuid=${uuid} rd=*uuid
- if [ /System/Library/Extensions.mkext -nt /System/Library/Extensions ]; then
- xnu_mkext /System/Library/Extensions.mkext
- else
- xnu_mkext /System/Library/Extensions
- fi
- if [ -f /Extra/Extensions.mkext ]; then
- xnu_mkext /Extra/Extensions.mkext
- fi
- if [ -d /Extra/Extensions ]; then
- xnu_kextdir /Extra/Extensions
- fi
- if [ -f /Extra/devtree.txt ]; then
- xnu_devtree /Extra/devtree.txt
- fi
- if [ -f /Extra/splash.jpg ]; then
- insmod jpeg
- xnu_splash /Extra/splash.jpg
- fi
- if [ -f /Extra/splash.png ]; then
- insmod png
- xnu_splash /Extra/splash.png
- fi
- if [ -f /Extra/splash.tga ]; then
- insmod tga
- xnu_splash /Extra/splash.tga
- fi
- fi
- }
- elif get_efis $device $fstype; then
- for efi in $efis; do
- menuentry "$efi" "$device" {
- efi_device="$2"
- efi="$1"
- if [ "$grub_platform" = "efi" ]; then
- root="$efi_device"
- chainloader "$efi"
- else
- echo $"Sorry, but we are booted via BIOS and can not load this OS."
- echo $"Please try booting SG2D via UEFI."
- echo $"Press escape to return to the menu"
- sleep --interruptible 9999
- fi
- }
- done
- else
- set root=$device
- for file in /boot/vmlinuz-* /boot/linux-*; do
- if test -f $file; then
- regexp -s version '/boot/vmlinuz-(.*)' $file
- regexp -s version '/boot/linux-(.*)' $file
-
- menuentry "Linux $file" $device $uuid $file $version {
- set root=$2
- set uuid=$3
- set kernel=$4
- set version=$5
-
- linux $kernel root=UUID=$uuid ro
- if test -f /boot/initrd-$version.img; then
- initrd /boot/initrd-$version.img
- elif test -f /boot/initrd.img-$version; then
- initrd /boot/initrd.img-$version
- elif test -f /boot/initrd-$version; then
- initrd /boot/initrd-$version
- elif test -f /boot/initrd.gz; then
- initrd /boot/initrd.gz
- fi
- }
-
- menuentry "Linux $file (single)" $device $uuid $file $version {
- set root=$2
- set uuid=$3
- set kernel=$4
- set version=$5
-
- linux $kernel root=UUID=$uuid ro single
- if test -f /boot/initrd-$version.img; then
- initrd /boot/initrd-$version.img
- elif test -f /boot/initrd.img-$version; then
- initrd /boot/initrd.img-$version
- elif test -f /boot/initrd-$version; then
- initrd /boot/initrd-$version
- elif test -f /boot/initrd.gz; then
- initrd /boot/initrd.gz
- fi
- }
- fi
- done
- fi
- fi
-done
-
-set root=$saved_root
diff --git a/EFI/BOOT/theme/liveslak.txt b/EFI/BOOT/theme/liveslak.txt
index ec2bcf9..4334f20 100644
--- a/EFI/BOOT/theme/liveslak.txt
+++ b/EFI/BOOT/theme/liveslak.txt
@@ -4,22 +4,24 @@
# export theme
#
# Global Properties:
-#title-text: "GRUB Slackware Live Edition"
+#title-text: "Slackware Live Edition"
title-text: ""
#title-font: "Unknown Regular 16"
-title-font: "DejaVu Sans Mono Bold 12"
+title-font: "DejaVu Sans Mono Regular 12"
title-color: "#5569B9"
desktop-image: "/EFI/BOOT/theme/swlogog.png"
desktop-color: "#000000"
+message-font: "DejaVu Sans Mono Regular 12"
+terminal-font: "DejaVu Sans Mono Regular 10"
# Show the boot menu
+ boot_menu {
left = 5%
top = 35%
- width = 70%
+ width = 75%
height = 45%
#item_font = "Unknown Regular 16"
- item_font = "DejaVu Sans Mono Bold 12"
+ item_font = "DejaVu Sans Mono Regular 12"
item_color = "lightgrey"
selected_item_color = "red"
item_height = 15
@@ -42,3 +44,13 @@ desktop-color: "#000000"
bg_color = "#000000"
border_color = "#333333"
}
+
+# Show an informational message.
++ hbox {
+ top = 100%-60
+ left = 31%
+ height = 20
+ + label {
+ text = "Enter: Boot Selection E: Edit Selection C: GRUB Commandline" font = "DejaVu Sans Mono Regular 10" color = "#B9556B" align = "center"
+ }
+}
diff --git a/grub.tpl b/grub.tpl
index 9652ff2..fb6a336 100644
--- a/grub.tpl
+++ b/grub.tpl
@@ -43,7 +43,7 @@ if loadfont $grubdir/theme/dejavusansmono12.pf2 ; then
export theme
fi
-menuentry "Start Slackware@DIRSUFFIX@ @LIVEDE@ Live ($sl_lang)" --hotkey b {
+menuentry "Start Slackware@DIRSUFFIX@ @SL_VERSION@ @LIVEDE@ Live @VERSION@ ($sl_lang)" --hotkey b {
linux ($root)/boot/generic load_ramdisk=1 prompt_ramdisk=0 rw printk.time=0 kbd=$sl_kbd tz=$sl_tz locale=$sl_locale
initrd ($root)/boot/initrd.img
}
@@ -60,11 +60,13 @@ submenu "Non-US Timezone selection" --hotkey t {
configfile $grubdir/tz.cfg
}
-menuentry "Detect/boot any installed operating system" {
- configfile $grubdir/osdetect.cfg
-}
-
menuentry "Memory test with memtest86+" {
linux ($root)/boot/memtest
}
+menuentry "Help on boot parameters" --hotkey h {
+ set pager=1
+ cat $grubdir/help.txt
+ unset pager
+}
+
diff --git a/make_slackware_live.sh b/make_slackware_live.sh
index 0200ceb..c8018dc 100755
--- a/make_slackware_live.sh
+++ b/make_slackware_live.sh
@@ -328,6 +328,7 @@ function gen_bootmenu() {
-e "s/@MEDIALABEL@/$MEDIALABEL/g" \
-e "s/@LIVEDE@/$(echo $LIVEDE |sed 's/BASE//')/g" \
-e "s/@SL_VERSION@/$SL_VERSION/g" \
+ -e "s/@VERSION@/$VERSION/g" \
> ${MENUROOTDIR}/vesamenu.cfg
for LANCOD in $(cat ${LIVE_TOOLDIR}/languages |grep -Ev "(^ *#|^$)" |cut -d: -f1)
@@ -359,6 +360,7 @@ EOL
-e "s/@MEDIALABEL@/$MEDIALABEL/g" \
-e "s/@LIVEDE@/$(echo $LIVEDE |sed 's/BASE//')/g" \
-e "s/@SL_VERSION@/$SL_VERSION/g" \
+ -e "s/@VERSION@/$VERSION/g" \
> ${MENUROOTDIR}/menu_${LANCOD}.cfg
# Generate custom language selection submenu for selected keyboard:
@@ -408,6 +410,7 @@ function gen_uefimenu() {
-e "s/@MEDIALABEL@/$MEDIALABEL/g" \
-e "s/@LIVEDE@/$(echo $LIVEDE |sed 's/BASE//')/g" \
-e "s/@SL_VERSION@/$SL_VERSION/g" \
+ -e "s/@VERSION@/$VERSION/g" \
> ${GRUBDIR}/grub.cfg
# Set a default keyboard selection:
@@ -1314,11 +1317,11 @@ fi
# Copy the UEFI boot directory structure:
mkdir -p ${LIVE_STAGING}/EFI/BOOT
-cp -a ${LIVE_TOOLDIR}/EFI/BOOT/{grub-embedded.cfg,make-grub.sh,osdetect.cfg,theme} ${LIVE_STAGING}/EFI/BOOT/
+cp -a ${LIVE_TOOLDIR}/EFI/BOOT/{grub-embedded.cfg,make-grub.sh,*.txt,theme} ${LIVE_STAGING}/EFI/BOOT/
# Create the grub fonts used in the theme:
for FSIZE in 5 10 12; do
- grub-mkfont -s ${FSIZE} -bav \
+ grub-mkfont -s ${FSIZE} -av \
-o ${LIVE_STAGING}/EFI/BOOT/theme/dejavusansmono${FSIZE}.pf2 \
/usr/share/fonts/TTF/DejaVuSansMono.ttf \
| grep "^Font name: "
diff --git a/menu.tpl b/menu.tpl
index b40a8ac..9db9023 100644
--- a/menu.tpl
+++ b/menu.tpl
@@ -2,11 +2,13 @@ prompt 0
timeout 300
ui vesamenu.c32
default live
-f2 f2.txt
font @CONSFONT@
menu background swlogov.png
-menu title Slackware@DIRSUFFIX@-@SL_VERSION@ Live
+menu title Slackware@DIRSUFFIX@-@SL_VERSION@ Live @VERSION@
menu clear
+f2 f2.txt #00000000
+f3 f3.txt #00000000
+f4 f4.txt #00000000
menu hshift 1
menu vshift 9
diff --git a/syslinux/f2.txt b/syslinux/f2.txt
index bf4ee9a..ca2d9b4 100644
--- a/syslinux/f2.txt
+++ b/syslinux/f2.txt
@@ -1,27 +1,31 @@
+== Tweaks for the boot commandline ==
+=== Desktop Environment ===
+0|1|2|3|4|5|6|S|s|single => Select a runlevel to start with.
+ The default is 4 for graphical login.
+
+kbd=fr xkb=ch,fr => Example of custom X keyboard layout.
+
+livepw="somestring" => Change the password for user "live".
+locale=nl_NL kbd=nl tz=Europe/Amsterdam => Example of language,
+ keyboard and/or timezone customization.
+
+rootpw="somestring" => Change the password for user "root".
+=== Custom software ===
+load=nvidia => Load and configure Nvidia drivers if available
+ in the ISO.
+
+load=mod1[,mod2[...]] => Load one or more squashfs modules
+ from the directory: "/liveslack/optional".
+ By default none of these modules is loaded on boot.
+noload=mod1[,mod2[...]] => Prevent loading of one or more
+ squashfs modules from the directory "/liveslack/addons".
+ By default all these modules are loaded on boot.
-
-
-
- -+ Customization Help +-
-
-To boot with default values just press ENTER.
-Customizations of the Live environment:
-boot: live lang=nl_NL kbd=nl tz=Europe/Amsterdam
- "Specify language, keyboard and/or timezone"
-boot: live nop "No persistence, i.e. boot the virgin installation"
-boot: live nomodeset "Boot with kernel mode setting for graphics
- -- needed with some machines."
-boot: live load=nvidia "Load and configure binary Nvidia drivers"
-boot: live rootdelay=10
- "Add 10 second delay to allow proper USB initialization"
-boot: live swap "Activate swap partitions if found on the computer"
-
-To check your system memory with memtest86+, use 'memtest':
-boot: memtest
+== [F1]: Home [F3]: Media tweaks [F4]: Hardware/troubleshooting ==
diff --git a/syslinux/f3.txt b/syslinux/f3.txt
new file mode 100644
index 0000000..774e5c4
--- /dev/null
+++ b/syslinux/f3.txt
@@ -0,0 +1,22 @@
+== Tweaks for the boot commandline ==
+
+To boot with default values just press ENTER.
+
+=== Media customization ===
+
+livemedia=/dev/sdX => Tell the init script which partition
+ contains the Slackware Live OS you want to boot. This can
+ become necessary if you have another copy of Slackware Live
+ installed in another partition.
+
+livemain=directoryname => Use this if you copied the content
+ of the ISO to a different directory than "liveslak".
+
+nop => No persistence, i.e. boot the virgin installation in
+ case your "persistence" directory got corrupted.
+
+persistence=directoryname => Use this if you want to use
+ a different directory than "persistence" for storing
+ persistent data.
+
+== [F1]: Home [F2]: Desktop setup [F4]: Hardware/troubleshooting ==
diff --git a/syslinux/f4.txt b/syslinux/f4.txt
new file mode 100644
index 0000000..9d27e29
--- /dev/null
+++ b/syslinux/f4.txt
@@ -0,0 +1,22 @@
+== Tweaks for the boot commandline ==
+
+=== Hardware related ===
+
+nomodeset => Boot without kernel mode setting, needed with
+ some machines.
+
+rootdelay=10 => Add 10 second delay to give the kernel more
+ time to initialize USB. Try this if booting fails.
+
+swap => Allow the Live OS to activate all swap partitions on
+ on the local hardware. By default, none is touched.
+
+=== Troubleshooting ===
+
+debug => During init, pause at specifiuc locations while as-
+ sembling the overlay filesystem and show mount information.
+
+rescue => After initialization, you will be dropped in a
+ rescue shell to perform lowlevel maintenance.
+
+== [F1]: Home [F2]: Desktop setup [F3]: Media tweaks ==