web-dev-qa-db-ja.com

ACPI _OSCコントロール

Ubuntu canot enable ASPMのdmesg出力からのエラーに気付きました。

[    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)

これはバグではないことはわかっていますが、それを修正してASPMを有効にする方法があるかどうかを尋ねたいと思います。理由は、バッテリーの寿命を延ばす必要があるからです(powertopはPCIeが常に100%オンになっていることを示しています)。

編集:最新のBIOSバージョン(1401)を搭載したASUS eee pc 1015pxで実行しています

2
nmc

この質問にコンテキストを追加するため、これをブログ(およびいくつかの変更)から貼り付けています。

PCI ExpressベースのシリアルリンクデバイスをActive State Power Management(ASPM)で管理して、ラップトップやネットブックなどのモバイルデバイスのバッテリー寿命を延ばすことができます。 ASPMは、オペレーティングシステムの電源管理がリンク物理層を低電力モードにできるようにする電源管理プロトコルであり、リンク上の他のデバイスに低電力モードにも移行するよう指示する機能があります。

プラスの面は、ASPMで電力を節約することですが、低電力状態のときにバスをウェイクアップするのに時間がかかるため、ある程度の遅延が発生します。 PCIe仕様(バージョン2.0)は、2つの電力モードを定義しています。

  • L0。リンクの方向に低電力モードを設定します(通常、物理リンク層コントローラーのダウンストリームから)

  • L1。リンクの両方向に低電力モードを設定しますが、ウェイクアップレイテンシが大きくなります。

残念ながら、あなたのファームウェアは、あなたのハードウェアでASPMを本当にサポートしていないことをカーネルに示しているようです。カーネルは、ACPI _OSCコントロールを使用してファームウェアを照会し、ASPMがサポートされているかどうかを確認し、サポートされていないことが通知されるため、ASPMは無効になります。これが無効になる理由はベンダー固有です。 Windowsでは、何かがハングするか、ASPMが有効になっていると信頼できないため、ファームウェアが完全に無効にしている可能性があります。

Linuxは、ある程度の調整を可能にするASPMドライバーカーネルパラメーターも提供します。次のカーネルパラメーターを使用できます。

aSPMを無効にします。

pcie_aspm=off

デフォルトのファームウェア構成を使用します。

pcie_aspm=default

aSPMおよびクロック電力管理を無効にします。

pcie_aspm=performance

最高の省電力モード、ASPMおよびクロック電力管理を有効にします。

pcie_aspm=powersave

aSPMを強制する:

pcie_aspm=force

デフォルトのASPM設定を上書きできるかどうかを確認するために、最後の設定をいじくり回したい場合があります。

6
Colin Ian King