Что делает параметр загрузки ядра "set acpi_osi=Linux"?

Я столкнулся с проблемой с регулировкой яркости на моем ноутбуке, который имеет Intel HD graphics и 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 делать?

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

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

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

Ссылка

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

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

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