ACPI in OpenBSD reparieren
Übersetzungen
Den Bootprozess des Kernels unterbrechen
Als erstes muss der Kernel noch bevor autoconf(4)
abgearbeitet wird
angewiesen werden, in den UKC mode (boot_config(8)
) zu wechseln.
Dazu muss am Kernel Boot prompt -c
eingegeben werden.
boot> -c
If you want to boot another kernel and enter UKC mode:
boot> boot hd0a:/bsd.rd -c
Den Kernel "on the fly" konfigurieren
In dem UKC mode (=User Kernel Configuration mode) wird ein anderes
Prompt angezeigt: UKC>
Um ACPI zu deaktivieren, gibt man an diesem Prompt folgendes ein:
UKC> disable acpi
492 acpi disabled
Die Ausgabe von 492 acpi disabled
bedeutet, dass der Kernel jetzt
alle ACPI Funktionen deaktiviert hat und im nun folgenden Bootprozess
kein ACPI konfigurieren wird.
Natürlich kann dasselbe Vorgehen auch auf alle anderen Geräte angewendet werden, die den OpenBSD Kernel am booten hindern.
Auf einem älteren Notebook half dieser Befehl:
UKC> disable acpiprt* 426 acpiprt* disabled
Allerdings zeigte mein Thinkpad 570 stattdessen die Ausgabe
503 acpiprt* disabled
.
Wenn die Kernel Konfiguration nun auf diesem Wege verändert wurde, kann mit dem normalen Bootprozeß fortgefahren werden:
UKC> quit
Wenn der Kernel dann erfolgreich gestartet werden kann, können die gemachten Änderungen im nächsten Schritt permanent gemacht werden.
Falls nicht, muss die Kernelkonfiguration erneut gestartet und andere bzw. zusätzliche Kerneloptionen deaktiviert werden.
Um eine Liste der verfügbaren Kernel Optionen zu erhalten, kann am
UKC> prompt list
eingegeben werden. Die Eingaben help
or ?
am
Prompt geben Information zum User Kernel Configuration aus.
Die Änderungen an der Kernelkonfiguration permanent machen
Bevor an der Kernelkonfuration dauerhaft etwas verändert wird, empfehle ich, die Lektüre der OpenBSD FAQ und in diesem speziellen Fall das Kapitel über die Kernel Konfiguration.
Um einen neuen Kernel zu bauen, brauchen wir folgenden Befehl:
# config -u -f -e /bsd
Allerdings wird dies wahrscheinlich nicht funktionieren, denn
config(8) -u
benötigt kvm(3)
, um auf die Änderungen, die in UKC
gemacht wurden, zuzugreifen. Doch seit OpenBSD 6.1 wird der Zugriff
auf /dev/{,k}mem
im securelevel > 0 deaktiviert.
Dieses Verhalten könnte man nun natürlich austricksen und in die Datei
/etc/sysctl.conf
die Zeile kern.allowkmem=1
eintragen.
Aber dieses Vorgehen hebelt das Sicherheitskonzept von OpenBSD
aus und darum lassen wir solche unschöne Tricksereien.
Viel besser ist es, die Änderungen nochmals in config(8)
einzugeben
und dann den geänderten Kernel in eine neue Datei (hier bsd.new
) zu
schreiben:
# config -e -o /bsd.new /bsd