diff options
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 |
commit | 710dea0bae3979d084021c910af3f53388e72603 (patch) | |
tree | a803c4fc60931c0068b350741c48022b4fda2dd2 /EFI/BOOT/osdetect.cfg | |
parent | 517c42b8aa7ef23d2f897aeb1e840dc0dca8d673 (diff) | |
download | liveslak-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 '')
-rw-r--r-- | EFI/BOOT/osdetect.cfg | 390 |
1 files changed, 0 insertions, 390 deletions
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 |