summaryrefslogtreecommitdiffstats
path: root/EFI/BOOT
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 /EFI/BOOT
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.
Diffstat (limited to 'EFI/BOOT')
-rw-r--r--EFI/BOOT/help.txt66
-rw-r--r--EFI/BOOT/osdetect.cfg390
-rw-r--r--EFI/BOOT/theme/liveslak.txt20
3 files changed, 82 insertions, 394 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"
+ }
+}