Die Kernelparameter sind auf kernel.org dokumentiert.
Um zu verstehen, was acpi_osi
tut, müssen Sie ungefähr wissen, wie ACPI funktioniert. ACPI besteht aus sogenannten Tabellen, die das BIOS vor dem Start des Betriebssystems in den Arbeitsspeicher lädt. Einige von ihnen enthalten einfach Informationen über wichtige Geräte auf dem Mainboard in einem festen Format, andere wie die DSDT-Tabelle enthalten AML-Code. Dieser Code wird vom Betriebssystem ausgeführt und stellt dem Betriebssystem eine Baumstruktur zur Verfügung, die viele Geräte auf dem Mainboard und aufrufbare Funktionen beschreibt, die vom Betriebssystem ausgeführt werden, wenn z. Energiesparen ist aktiviert. Der AML-Code kann das Betriebssystem fragen, um welches Betriebssystem es sich handelt, indem er _OSI
aufruft Funktion. Dies wird häufig von Anbietern verwendet, um Problemumgehungen vorzunehmen, z. um Fehler in einigen Windows-Versionen herum.
Da viele Hardwarehersteller ihre Produkte nur mit der (damals) neuesten Version von Windows testen, sind die "normalen" Codepfade ohne die Workarounds oft fehlerhaft. Aus diesem Grund antwortet Linux normalerweise mit Ja, wenn es gefragt wird, ob es Windows ist. Früher antwortete Linux auch auf die Frage, ob es "Linux" sei, mit Ja, aber das führte dazu, dass BIOS-Anbieter Fehler oder fehlende Funktionen in der (damals) neuesten Linux-Kernel-Version umgingen, anstatt Fehlerberichte zu öffnen oder Patches bereitzustellen. Als diese Fehler behoben wurden, verursachten die Problemumgehungen unnötige Leistungseinbußen und andere Probleme für alle späteren Linux-Versionen.
acpi_osi=Linux
bewirkt, dass Linux erneut mit Ja antwortet, wenn es vom ACPI-Code gefragt wird, ob es "Linux" ist, wodurch der ACPI-Code Workarounds für Linux aktivieren und/oder Workarounds für Windows deaktivieren kann.
acpi_backlight=vendor
ändert die Reihenfolge, in der die ACPI-Treiber für die Hintergrundbeleuchtung überprüft werden. Normalerweise verwendet Linux den generischen video
Treiber, wenn ACPI DSDT ein Gerät mit Hintergrundbeleuchtung bereitstellt, das Standardkompatibilität beansprucht, und andere herstellerspezifische Treiber nur überprüft, wenn ein solches Gerät nicht gefunden wird. acpi_backlight=vendor
kehrt diese Reihenfolge um, sodass die herstellerspezifischen Treiber zuerst ausprobiert werden.
Das erste Google-Ergebnis für "acpi_osi" erklärt acpi_osi=linux
:
[...] BIOS normalerweise die Funktionalität deaktivieren, wenn Windows nicht erkannt wird [...]standardmäßig antwortet der Kernel falsch, wenn er gefragt wird, ob Linux läuft. acpi_osi=Linux
teilt dem Kernel mit, wahr zu antworten (siehe drivers/acpi/osl.c
). ) Es scheint, dass Sie dem BIOS die Wahrheit sagen müssen.
Das zweite Google-Ergebnis für "acpi_osi" erklärt acpi_backlight=vendor
:
acpi_backlight=vendor
bevorzugt einen herstellerspezifischen Treiber (z. B. thinkpad_acpi
, sony_acpi
, etc.) anstelle des ACPI video.ko
Fahrer.