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

44

Estou enfrentando um problema com o controle de brilho no meu laptop, que tem gráficos Intel HD e Ubuntu 10.10 de 64 bits. Então, quando eu procurei por 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"

Documentação para o parâmetro de inicialização acpi_osi informa:

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
     

- link

Eu não acho uma razão para isso consertar qualquer problema no laptop.

Alguém poderia me dizer qual é a opção de inicialização do kernel acpi_osi=Linux ?

    
por AIB 03.03.2011 / 13:07

3 respostas

26
  

Acho que você quer dizer =Windows , não Linux .   O argumento diz ao kernel para mentir   para o BIOS ACPI e dizer-lhe que   é algo outro que o Linux (que   é por isso que especificar o Linux é bobo).

Tenho certeza que ele quer dizer o que ele escreveu. Sim, o BIOS normalmente desabilita a funcionalidade se o Windows não for detectado, mas a especificação do Linux não é tola porque, por padrão, o kernel responde falso quando perguntado se o Linux está sendo executado. acpi_osi=Linux diz ao kernel para responder true (veja drivers/acpi/osl.c ) Parece que você precisa dizer a verdade à BIOS.

É um problema de driver ou uma implementação incorreta da ACPI. Você teria que retirar seu dsdt e desmontá-lo para revisar o código e entender melhor o que está quebrado ou desativado no Linux OSI.

Referência

por fuzzy7k 27.06.2011 / 16:35
14

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

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

    
por dannysauer 12.10.2011 / 06:21
2

Acho que você quer dizer =Windows , não Linux . O argumento diz ao kernel para mentir para o BIOS da ACPI e dizer que é algo outro que o Linux (é por isso que especificar o Linux é bobagem). Certos BIOS são conhecidos por verificar se estão sendo executados no Windows ou em uma versão específica do Windows e desativam a funcionalidade, se não estiverem. Esse parâmetro permite que você trabalhe em torno dessa idiotice.

    
por psusi 03.03.2011 / 15:46