grub, isolinux: add nomodeset menuentries, more hotkeys

add hotkeys for:
- speech + nomodeset (g)
- memtest (m)
- uefi firmware (f)
- reboot (b)
- poweroff (p)

the nomodeset entry will be useful in cases like the nvidia 6.6 issue,
where boot fails due to graphics drivers issues.

dracut/vmklive: add hook that disables display manager services if
nomodeset is set

fixes: #160
This commit is contained in:
classabbyamp 2024-12-20 09:00:34 -05:00 committed by classabbyamp
parent f3d5188b7c
commit 380f0fd3c4
4 changed files with 49 additions and 7 deletions

View File

@ -28,4 +28,5 @@ install() {
inst_hook pre-pivot 02 "$moddir/getty-serial.sh"
inst_hook pre-pivot 03 "$moddir/locale.sh"
inst_hook pre-pivot 04 "$moddir/accessibility.sh"
inst_hook pre-pivot 05 "$moddir/nomodeset.sh"
}

View File

@ -0,0 +1,13 @@
#!/bin/sh
# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
# ex: ts=8 sw=4 sts=4 et filetype=sh
type getargbool >/dev/null 2>&1 || . /lib/dracut-lib.sh
if getargbool 0 nomodeset; then
for dm in lightdm sddm gdm; do
if [ -e "${NEWROOT}/etc/runit/runsvdir/default/${dm}" ]; then
touch "${NEWROOT}/etc/runit/runsvdir/default/${dm}/down"
fi
done
fi

View File

@ -51,6 +51,15 @@ if [ cpuid -l ]; then
locale.LANG=@@LOCALE@@ @@BOOT_CMDLINE@@ rd.live.ram
initrd (${voidlive})/boot/initrd
}
menuentry "@@BOOT_TITLE@@ @@KERNVER@@ (@@ARCH@@) (graphics disabled)" --id "linuxnogfx" {
set gfxpayload="keep"
linux (${voidlive})/boot/vmlinuz \
root=live:CDLABEL=VOID_LIVE ro init=/sbin/init \
rd.luks=0 rd.md=0 rd.dm=0 loglevel=4 gpt add_efi_memmap \
vconsole.unicode=1 vconsole.keymap=@@KEYMAP@@ \
locale.LANG=@@LOCALE@@ @@BOOT_CMDLINE@@ nomodeset
initrd (${voidlive})/boot/initrd
}
menuentry "@@BOOT_TITLE@@ @@KERNVER@@ (@@ARCH@@) with speech" --hotkey s --id "linuxa11y" {
set gfxpayload="keep"
linux (${voidlive})/boot/vmlinuz \
@ -69,12 +78,21 @@ if [ cpuid -l ]; then
locale.LANG=@@LOCALE@@ @@BOOT_CMDLINE@@ live.accessibility live.autologin rd.live.ram
initrd (${voidlive})/boot/initrd
}
menuentry "@@BOOT_TITLE@@ @@KERNVER@@ (@@ARCH@@) (graphics disabled)" --hotkey g --id "linuxa11ynogfx" {
set gfxpayload="keep"
linux (${voidlive})/boot/vmlinuz \
root=live:CDLABEL=VOID_LIVE ro init=/sbin/init \
rd.luks=0 rd.md=0 rd.dm=0 loglevel=4 gpt add_efi_memmap \
vconsole.unicode=1 vconsole.keymap=@@KEYMAP@@ \
locale.LANG=@@LOCALE@@ @@BOOT_CMDLINE@@ live.accessibility live.autologin nomodeset
initrd (${voidlive})/boot/initrd
}
if [ "${grub_platform}" == "efi" ]; then
menuentry "Run Memtest86+ (RAM test)" --id memtest {
menuentry "Run Memtest86+ (RAM test)" --hotkey m --id memtest {
set gfxpayload="keep"
linux (${voidlive})/boot/memtest.efi
}
menuentry 'UEFI Firmware Settings' --id uefifw {
menuentry 'UEFI Firmware Settings' --hotkey f --id uefifw {
fwsetup
}
else
@ -84,12 +102,12 @@ if [ cpuid -l ]; then
}
fi
menuentry "System restart" --id restart {
menuentry "System restart" --hotkey b --id restart {
echo "System rebooting..."
reboot
}
menuentry "System shutdown" --id poweroff {
menuentry "System shutdown" --hotkey p --id poweroff {
echo "System shutting down..."
halt
}

View File

@ -30,6 +30,11 @@ MENU LABEL @@BOOT_TITLE@@ @@KERNVER@@ @@ARCH@@ (RAM)
KERNEL /boot/vmlinuz
APPEND initrd=/boot/initrd root=live:CDLABEL=VOID_LIVE init=/sbin/init ro rd.luks=0 rd.md=0 rd.dm=0 loglevel=4 vconsole.unicode=1 vconsole.keymap=@@KEYMAP@@ locale.LANG=@@LOCALE@@ @@BOOT_CMDLINE@@ rd.live.ram
LABEL linuxnogfx
MENU LABEL @@BOOT_TITLE@@ @@KERNVER@@ @@ARCH@@ (graphics disabled)
KERNEL /boot/vmlinuz
APPEND initrd=/boot/initrd root=live:CDLABEL=VOID_LIVE init=/sbin/init ro rd.luks=0 rd.md=0 rd.dm=0 loglevel=4 vconsole.unicode=1 vconsole.keymap=@@KEYMAP@@ locale.LANG=@@LOCALE@@ @@BOOT_CMDLINE@@ nomodeset
LABEL linuxa11y
MENU LABEL @@BOOT_TITLE@@ @@KERNVER@@ @@ARCH@@ with ^speech
KERNEL /boot/vmlinuz
@ -40,19 +45,24 @@ MENU LABEL @@BOOT_TITLE@@ @@KERNVER@@ @@ARCH@@ with speech (^RAM)
KERNEL /boot/vmlinuz
APPEND initrd=/boot/initrd root=live:CDLABEL=VOID_LIVE init=/sbin/init ro rd.luks=0 rd.md=0 rd.dm=0 loglevel=4 vconsole.unicode=1 vconsole.keymap=@@KEYMAP@@ locale.LANG=@@LOCALE@@ @@BOOT_CMDLINE@@ live.accessibility live.autologin rd.live.ram
LABEL linuxa11ynogfx
MENU LABEL @@BOOT_TITLE@@ @@KERNVER@@ @@ARCH@@ with speech (^graphics disabled)
KERNEL /boot/vmlinuz
APPEND initrd=/boot/initrd root=live:CDLABEL=VOID_LIVE init=/sbin/init ro rd.luks=0 rd.md=0 rd.dm=0 loglevel=4 vconsole.unicode=1 vconsole.keymap=@@KEYMAP@@ locale.LANG=@@LOCALE@@ @@BOOT_CMDLINE@@ live.accessibility live.autologin nomodeset
LABEL c
MENU LABEL Boot first HD found by BIOS
COM32 chain.c32
APPEND hd0
LABEL memtest
MENU LABEL Run Memtest86+ (RAM test)
MENU LABEL Run ^Memtest86+ (RAM test)
LINUX /boot/memtest.bin
LABEL reboot
MENU LABEL Reboot
MENU LABEL Re^boot
COM32 reboot.c32
LABEL poweroff
MENU LABEL Power Off
MENU LABEL ^Power Off
COM32 poweroff.c32