Преглед изворни кода

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
classabbyamp пре 5 месеци
родитељ
комит
380f0fd3c4
4 измењених фајлова са 49 додато и 7 уклоњено
  1. 1 0
      dracut/vmklive/module-setup.sh
  2. 13 0
      dracut/vmklive/nomodeset.sh
  3. 22 4
      grub/grub_void.cfg.in
  4. 13 3
      isolinux/isolinux.cfg.in

+ 1 - 0
dracut/vmklive/module-setup.sh

@@ -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"
 }

+ 13 - 0
dracut/vmklive/nomodeset.sh

@@ -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

+ 22 - 4
grub/grub_void.cfg.in

@@ -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
 	}

+ 13 - 3
isolinux/isolinux.cfg.in

@@ -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