Miałem problemy z regulacją jasności ekranu w moim laptopie i naprawiłem to, dodając parametry acpi_osi=linux
i acpi_backlight=vendor
do pliku grub.cfg
. Chciałbym wiedzieć, co oznaczają te parametry i dlaczego działają.
źródło
Miałem problemy z regulacją jasności ekranu w moim laptopie i naprawiłem to, dodając parametry acpi_osi=linux
i acpi_backlight=vendor
do pliku grub.cfg
. Chciałbym wiedzieć, co oznaczają te parametry i dlaczego działają.
Parametry jądra są udokumentowane na stronie kernel.org .
Aby zrozumieć, co acpi_osi
robi, z grubsza potrzebujesz wiedzieć, jak działa ACPI. ACPI składa się z tak zwanych tabel, które BIOS ładuje do pamięci RAM przed uruchomieniem systemu operacyjnego. Niektóre z nich zawierają po prostu informacje o niezbędnych urządzeniach na płycie głównej w ustalonym formacie, ale inne, takie jak tabela DSDT, zawierają kod AML. Ten kod jest wykonywany przez system operacyjny i zapewnia systemowi drzewnemu strukturę drzewiastą opisującą wiele urządzeń na płycie głównej oraz funkcje do wywołania, które są wykonywane przez system operacyjny, gdy np. Włączone jest oszczędzanie energii. Kod AML może zapytać system operacyjny, który to system, wywołując _OSI
funkcję. Jest to często wykorzystywane przez dostawców w celu obejścia problemów, np. Dotyczących błędów w niektórych wersjach systemu Windows.
Ponieważ wielu dostawców sprzętu testuje swoje produkty przy użyciu (wówczas) najnowszej wersji systemu Windows, „zwykłe” ścieżki kodu bez obejść są często błędne. Z tego powodu Linux zwykle odpowiada tak, gdy pyta się go, czy to Windows. Linux również odpowiadał „tak”, gdy pytano go, czy jest to „Linux”, ale to spowodowało , że dostawcy BIOS-u omijali błędy lub brakowali funkcji w (w tym czasie) najnowszej wersji jądra Linuksa zamiast otwierać raporty o błędach lub dostarczać łaty. Kiedy te błędy zostały naprawione, obejścia spowodowały niepotrzebne obniżenie wydajności i inne problemy dla wszystkich późniejszych wersji Linuksa.
acpi_osi=Linux
powoduje, że Linux ponownie odpowiada „tak” na pytanie, czy jest to „Linux” za pomocą kodu ACPI, umożliwiając w ten sposób kodowi ACPI włączenie obejścia dla systemu Linux i / lub wyłączenie obejścia dla systemu Windows.
acpi_backlight=vendor
zmienia kolejność sprawdzania sterowników ACPI podświetlenia. Zwykle Linux używa ogólnego video
sterownika, gdy ACPI DSDT zapewnia urządzenie podświetlające, twierdząc, że jest zgodne ze standardem, i sprawdza inne sterowniki specyficzne dla dostawcy, jeśli takie urządzenie nie zostanie znalezione. acpi_backlight=vendor
odwraca tę kolejność, aby najpierw wypróbować sterowniki specyficzne dla dostawcy.
Pierwszy wynik Google dla „acpi_osi” wyjaśnia acpi_osi=linux
:
[...] BIOS zwykle wyłącza funkcjonalność, jeśli Windows nie jest wykrywany [...] domyślnie jądro odpowiada na pytanie, czy Linux jest uruchomiony.
acpi_osi=Linux
informuje jądro, aby odpowiedziała prawdą. (patrzdrivers/acpi/osl.c
) Wydaje się, że musisz powiedzieć BIOSowi prawdę.
Drugi wynik Google dla „acpi_osi” wyjaśnia acpi_backlight=vendor
:
acpi_backlight=vendor
wolą kierowcy konkretnego dostawcy (npthinkpad_acpi
,sony_acpi
itp) zamiast ACPIvideo.ko
kierowcy.