Що роблять параметри ядра acpi_osi = linux та acpi_backlight = vendor?


21

У мене виникли проблеми з керуванням яскравістю екрана в моєму ноутбуці, і я виправив це, додавши файл acpi_osi=linuxі acpi_backlight=vendorпараметри у файл grub.cfg. Я хотів би знати, що означають ці параметри і чому вони працюють.

Відповіді:


28

Параметри ядра задокументовані на kernel.org .

Щоб зрозуміти, що acpi_osiробить, потрібно приблизно знати, як працює ACPI. ACPI складається з так званих таблиць, які BIOS завантажується в оперативну пам'ять до запуску операційної системи. Деякі з них просто містять інформацію про необхідні пристрої на материнській платі у фіксованому форматі, а деякі, як таблиця DSDT, містять код AML. Цей код виконується операційною системою і надає ОС структурі дерева, що описує багато пристроїв на материнській платі та функції дзвінка, які виконуються операційною системою, коли включено, наприклад, енергозбереження. Код AML може запитати ОС, для якої ОС це, викликавши _OSIфункцію. Постачальники часто використовують це рішення для вирішення проблем, наприклад, навколо помилок у деяких версіях Windows.

Оскільки багато постачальників обладнання протестують свої продукти лише з (на той час) останньою версією Windows, "звичайні" кодові шляхи без обхідних шляхів часто бувають помилковими. Через це Linux зазвичай відповідає "так" на запитання, чи це Windows. Linux також відповідав "так" на запитання, чи це "Linux", але це змусило постачальників BIOS працювати над помилками або відсутністю функціональності в (на той час) останній версії ядра Linux замість відкриття звітів про помилки або надання патчів. Коли ці помилки були виправлені, вирішення проблем спричинило непотрібні штрафні показники та інші проблеми для всіх пізніших версій Linux.

acpi_osi=Linux змушує Linux відповісти "так" ще раз, коли його запитують, чи це "Linux" за кодом ACPI, таким чином дозволяючи коду ACPI включити обхідні шляхи для Linux та / або відключити обхідні шляхи для Windows.

acpi_backlight=vendorзмінює порядок перевірки драйверів ACPI на підсвічування. Зазвичай Linux використовуватиме загальний videoдрайвер, коли ACPI DSDT забезпечує пристрій з підсвічуванням, що вимагає стандартної сумісності, і перевірятиме лише інші драйвери, що відповідають певним постачальникам, якщо такий пристрій не знайдено. acpi_backlight=vendorскасовує це замовлення, щоб спочатку спробувати конкретні драйвери.


3

Перший результат Google для "acpi_osi" пояснює acpi_osi=linux:

[...] Зазвичай BIOS відключає функціональність, якщо Windows не виявлена ​​[...] за замовчуванням ядро ​​відповідає на помилку, коли його запитують, чи працює Linux. acpi_osi=Linuxповідомляє ядро ​​відповісти правдою. (див. drivers/acpi/osl.c) Схоже, вам потрібно сказати BIOS правду.

Другий результат Google для "acpi_osi" пояснює acpi_backlight=vendor:

acpi_backlight=vendorвіддасть перевагу конкретного постачальника драйвера (наприклад thinkpad_acpi, sony_acpiі т.д.) замість ACPI video.koдрайвера.


Я б стверджував, що ці відповіді (особливо для acpi_osi) недостатньо деталізовані.
Cestarian
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.