O que o parâmetro de inicialização do kernel "set acpi_osi = Linux" faz?

48

Estou enfrentando um problema com o controle de brilho no meu laptop, que possui gráficos Intel HD e Ubuntu 10.10 de 64 bits. Portanto, quando procurei uma correção, descobri que uma sugestão comum é editar a linha do arquivo GRUB, GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"para GRUB_CMDLINE_LINUX_DEFAULT="quiet splash acpi_osi=Linux acpi_backlight=vendor"

A documentação para o parâmetro de inicialização acpi_osiinforma:

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/

Não encontro um motivo para corrigir esse problema com o laptop.

Então, alguém poderia me dizer o que a opção de inicialização do kernel acpi_osi=Linuxfaz?

AIB
fonte

Respostas:

29

Eu acho que você quer dizer =Windows, não Linux. O argumento diz ao kernel que mente para o BIOS da ACPI e diz que é algo diferente do Linux (e é por isso que especificar o Linux é bobo).

Tenho certeza que ele quer dizer o que escreveu. Sim, a BIOS geralmente desativa a funcionalidade se o Windows não for detectado, mas a especificação do Linux não é boba porque, por padrão, o kernel responde falso quando perguntado se o Linux está em execução. acpi_osi=Linuxdiz ao kernel para responder como verdadeiro. (veja drivers/acpi/osl.c) Parece que você precisa dizer a verdade ao BIOS.

É um problema de driver ou implementação incorreta da ACPI. Você precisaria dsdtdesmontá-lo e desmontá-lo para revisar o código e entender melhor o que está quebrado ou desabilitado no Linux OSI.

Referência

fuzzy7k
fonte
2
isso foi muito útil para minha instalação do ubuntu 14.04 no meu dell vostro 3750 com os gráficos nvidia GeForce GT 525M e Intel HD.
Jason
14

O parâmetro adiciona "Linux" à lista de sistemas operacionais suportados que o kernel obterá quando perguntar ao BIOS "Ei, o que você oferece suporte". Ao adicionar essa sequência, mais tarde, as coisas que usam a ACPI dirão "ei, eu tenho um recurso que precisa da ACPI e estou executando o Linux - que plataformas são suportadas?" e eles receberão de volta uma lista que incluirá o Linux.

Ao definir isso para Linux, você basicamente desativa qualquer verificação para verificar se o BIOS diz que determinados recursos da ACPI funcionarão com determinados sistemas operacionais. E isso muitas vezes faz com que as coisas funcionem anteriormente ocultas. Mas também poderia quebrar coisas que costumavam funcionar, em [espero] casos raros. :)

dannysauer
fonte
2

Eu acho que você quer dizer =Windows, não Linux. O argumento diz ao kernel que mente para o BIOS da ACPI e diz que é algo diferente do Linux (e é por isso que especificar o Linux é bobo). Certos BIOS são conhecidos por verificar se estão sendo executados no Windows ou por uma versão específica do Windows e desativar a funcionalidade, caso não estejam. Este parâmetro permite solucionar essa idiotice.

psusi
fonte
Diz = apenas Linux. livinginjava.blogspot.com/2010/11/…
AIB 03/03
Aqui está outro link, que diz a mesma correção para problemas de fãs ... ubuntuforums.org/showthread.php?t=1398596 Considero que isso é considerado uma correção para vários desses problemas. Forums.linuxmint.com/viewtopic. php? f = 42 & t = 56323
AIB