Что делает загрузочный параметр ядра «set acpi_osi = Linux»?

44

Я столкнулся с проблемой управления яркостью на своем ноутбуке с графикой Intel HD и 64-разрядным Ubuntu 10.10. Поэтому, когда я искал исправление, я обнаружил, что общее предложение состоит в том, чтобы отредактировать строку файла GRUB, GRUB_CMDLINE_LINUX_DEFAULT="quiet splash" , чтобы GRUB_CMDLINE_LINUX_DEFAULT="quiet splash acpi_osi=Linux acpi_backlight=vendor"

Документация для параметра загрузки acpi_osi сообщает:

acpi_osi=   [HW,ACPI] Modify list of supported OS interface strings
            acpi_osi="string1"      # add string1 -- only one string
            acpi_osi="!string2"     # remove built-in string2
            acpi_osi=               # disable all strings

http://redsymbol.net/linux_boot_parameters/

Я не могу найти причину, по которой это должно исправить проблему с ноутбуком.

Так может ли кто-нибудь сказать мне, какой вариант загрузки ядра acpi_osi=Linux сделать?

    
задан AIB 03.03.2011 в 13:07
источник

3 ответа

27

I think you mean =Windows, not Linux. The argument tells the kernel to lie to the ACPI BIOS and tell it that it is something other than Linux (which is why specifying Linux is silly).

Я уверен, что он имеет в виду то, что он написал. Да, BIOS обычно отключает функциональность, если Windows не обнаружена, но указание Linux не является глупым, потому что по умолчанию ядро отвечает на false, когда его спрашивают, работает ли Linux. acpi_osi=Linux сообщает ядру ответить true (см. drivers/acpi/osl.c ) Кажется, вам нужно сказать BIOS правду.

Это либо проблема с драйвером, либо неправильная реализация ACPI. Вам нужно будет вынуть dsdt и разобрать его, чтобы просмотреть код и лучше понять, что сломано или отключено в Linux OSI.

Ссылка

ответ дан fuzzy7k 27.06.2011 в 16:35
источник
14

Параметр добавляет «Linux» в список поддерживаемых операционных систем, которые ядро получит, когда он запросит BIOS «Эй, что вы поддерживаете». Добавив эту строку позже, все, что использует ACPI, скажет: «Эй, у меня есть функция, которая нуждается в ACPI, и я использую Linux - какие платформы поддерживаются?» и они вернут список, который будет включать Linux.

Установив это в Linux, вы в основном отключите любую проверку, чтобы убедиться, что BIOS говорит, что некоторые функции ACPI будут работать с определенными операционными системами. И это часто заставляет вещи работать, которые ранее были скрыты. Но это также может сломать материал, который раньше работал, в [надеюсь] редких случаях. :)     

ответ дан dannysauer 12.10.2011 в 06:21
2

Я думаю, вы имеете в виду =Windows , а не Linux . Аргумент говорит ядру лгать в ACPI BIOS и сказать, что это что-то другое , чем Linux (поэтому указание Linux глупо). Известно, что некоторые BIOS проверяют, выполняются ли они под Windows или определенной версией Windows, а также отключить функциональность, если они отсутствуют. Этот параметр позволяет вам обойти этот идиотизм.

    
ответ дан psusi 03.03.2011 в 15:46