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

48

Я столкнулся с проблемой управления яркостью в моем ноутбуке с графической системой 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
источник

Ответы:

29

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

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

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

Ссылка

fuzzy7k
источник
2
это было очень полезно для моей установки Ubuntu 14.04 на моем Dell Vostro 3750 с NVIDIA GeForce GT 525M и графикой Intel HD.
Джейсон
14

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

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

dannysauer
источник
2

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

psusi
источник
Это говорит = только Linux. livinginjava.blogspot.com/2010/11/…
AIB
Вот еще одна ссылка, в которой говорится о том же исправлении проблем с поклонниками ... ubuntuforums.org/showthread.php?t=1398596 Я считаю, что это считается исправлением для нескольких таких проблем .. forums.linuxmint.com/viewtopic. php? f = 42 & t = 56323
AIB