web-dev-qa-db-fra.com

Contrôle ACPI _OSC

J'ai remarqué une erreur dans la sortie de dmesg selon laquelle Ubuntu ne peut pas activer ASPM:

[    0.192722]  pci0000:00: ACPI _OSC support notification failed, disabling PCIe ASPM
[    0.192728]  pci0000:00: Unable to request _OSC control (_OSC support mask: 0x08)

Bien que je sache qu’il ne s’agit pas d’un bogue, je voudrais demander s’il existe un moyen de le corriger et d’activer ASPM, la raison en étant qu’il devrait augmenter la durée de vie de la batterie (powertop montre que PCIe est toujours activé à 100%).

Edit: je cours sur un ordinateur ASUS eee pc 1015px avec la dernière version du bios (1401)

2
nmc

Je colle ceci dans mon blog (plus quelques modifications) car cela ajoute un contexte à cette question.

Les périphériques liés en série basés sur PCI Express peuvent être gérés par ASPM (Active State Power Management) pour prolonger la durée de vie de la batterie sur les périphériques mobiles tels que les ordinateurs portables et les netbooks. ASPM est un protocole de gestion de l'alimentation qui permet à la gestion de l'alimentation d'un système d'exploitation de placer la couche physique de la liaison en mode basse consommation.

L’avantage, c’est que nous économisons de l’énergie avec ASPM, mais cela introduira une certaine latence car le bus a besoin de temps pour être réveillé lorsqu’il est dans un état de faible consommation. La spécification PCIe (version 2.0) définit deux modes d'alimentation:

  • Les L0, qui définissent le mode faible consommation dans la direction de la liaison (généralement depuis le contrôleur de couche de liaison physique en aval)

  • L1, qui définit le mode faible consommation dans les deux sens sur la liaison, mais avec une latence de réveil supérieure.

Malheureusement, il semble que votre microprogramme indique au noyau qu’il ne prend vraiment pas en charge ASPM sur votre matériel. Le noyau a interrogé le micrologiciel à l'aide du contrôle ACPI _OSC pour savoir si ASPM est pris en charge et il est informé que ce n'est pas le cas. ASPM est donc désactivé. Les raisons de cette désactivation sont spécifiques au fournisseur. C’est peut-être parce que, sous Windows, certains problèmes se bloquent ou ne sont pas fiables avec ASPM activé, de sorte que le micrologiciel le désactive complètement.

Linux fournit également des paramètres de noyau de pilotes ASPM pour permettre un certain niveau de personnalisation. Les paramètres de noyau suivants peuvent être utilisés:

désactiver ASPM:

pcie_aspm=off

utilisez la configuration de firmware par défaut:

pcie_aspm=default

désactive ASPM et la gestion de l'alimentation d'horloge:

pcie_aspm=performance

le mode d'économie d'énergie le plus élevé, activez la gestion d'énergie ASPM et d'horloge:

pcie_aspm=powersave

forcer ASPM sur:

pcie_aspm=force

Vous voudrez peut-être modifier le dernier paramètre pour voir si vous pouvez remplacer les paramètres ASPM par défaut.

6
Colin Ian King