web-dev-qa-db-fra.com

Que fait le paramètre de démarrage du noyau "set acpi_osi = Linux"?

Je suis confronté à un problème de contrôle de la luminosité de mon ordinateur portable, qui est doté des cartes graphiques Intel HD et Ubuntu 10.10 64 bits. Ainsi, lorsque j'ai cherché un correctif, j'ai trouvé une suggestion courante consistant à modifier la ligne de fichier GRUB, GRUB_CMDLINE_LINUX_DEFAULT="quiet splash" en GRUB_CMDLINE_LINUX_DEFAULT="quiet splash acpi_osi=Linux acpi_backlight=vendor"

La documentation du paramètre de démarrage acpi_osi indique:

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/

Je ne trouve pas de raison pour laquelle cela devrait résoudre tout problème lié à l'ordinateur portable.

Alors, est-ce que quelqu'un pourrait me dire ce que l'option de démarrage du noyau acpi_osi=Linux fait?

46
AIB

Je pense que vous voulez dire =Windows, pas Linux. L'argument dit au noyau de mentir au BIOS ACPI et de lui dire qu'il s'agit de quelque chose autre que Linux (d'où la raison pour laquelle spécifier Linux est idiot).

Je suis sûr qu'il veut dire ce qu'il a écrit. Oui, la fonctionnalité généralement désactivée du BIOS si Windows n'est pas détecté, mais spécifier Linux n'est pas stupide, car par défaut, le noyau répond par faux lorsque le système lui demande si Linux est en cours d'exécution. acpi_osi=Linux indique au noyau de répondre comme il convient (voir drivers/acpi/osl.c) Il semble que vous deviez dire la vérité au BIOS.

C'est soit un problème de pilote, soit une implémentation ACPI incorrecte. Vous devez extraire votre dsdt et le désassembler pour revoir le code et mieux comprendre ce qui est cassé ou désactivé sous l'OSI Linux.

Référence

29
fuzzy7k

Le paramètre ajoute "Linux" à la liste des systèmes d'exploitation pris en charge que le noyau obtiendra lorsqu'il demandera au BIOS "Hé, qu'est-ce que vous supportez". En ajoutant cette chaîne, plus tard, les éléments qui utilisent ACPI diront "hé, j'ai une fonctionnalité qui nécessite ACPI et j'utilise Linux - quelles plates-formes sont prises en charge?" et ils vont récupérer une liste qui inclura Linux.

En définissant ceci sur Linux, vous désactivez en principe toute vérification pour savoir si le BIOS indique que certaines fonctionnalités ACPI fonctionneront avec certains systèmes d'exploitation. Et cela fait souvent des choses qui étaient auparavant cachées. Mais cela pourrait aussi casser des choses qui fonctionnaient jadis, dans de rares cas, espérons-le. :)

14
dannysauer

Je pense que vous voulez dire =Windows, pas Linux. L'argument dit au noyau de mentir au BIOS ACPI et de lui dire qu'il s'agit de quelque chose autre que Linux (d'où la raison pour laquelle spécifier Linux est idiot). On sait que certains BIOS vérifient s'ils sont exécutés sous Windows ou dans une version spécifique de Windows et désactivent leurs fonctionnalités s'ils ne le sont pas. Ce paramètre vous permet de contourner cette idiotie.

2
psusi