web-dev-qa-db-ja.com

カーネルパラメータacpi_osi = linuxおよびacpi_backlight = vendorは何をしますか?

ラップトップの画面の明るさの制御に問題があり、acpi_osi=linuxおよびacpi_backlight=vendorパラメータをファイルに追加して修正しましたgrub.cfg。これらのパラメータの意味と、なぜ機能するのか知りたいのですが。

23
user91655

カーネルパラメータは kernel.orgに記載 です。

acpi_osiの機能を理解するには、おおまかにACPIがどのように機能するかを知る必要があります。 ACPIは、オペレーティングシステムが起動する前にBIOSがRAM=にロードする、いわゆるテーブルで構成されています。一部のテーブルには、メインボード上の重要なデバイスに関する情報が固定形式で含まれていますが、DSDTのようなものもあります。テーブルにはAMLコードが含まれています。このコードはオペレーティングシステムによって実行され、メインボード上の多くのデバイスを記述するツリー構造と、省電力が有効な場合にOSによって実行される呼び出し可能関数をOSに提供します。AMLコードはOSに尋ねることができますこれは、_OSI関数を呼び出すことでどのOSになるかを示します。これは、一部のWindowsバージョンのバグなどの回避策を作成するためにベンダーによってよく使用されます。

多くのハードウェアベンダーは(現時点では)最新バージョンのWindowsでのみ製品をテストしているため、回避策のない「通常の」コードパスはバグが多い場合があります。このため、Linuxは通常、Windowsであるかどうかを尋ねられたときに「はい」と答えます。 Linuxは、「Linux」かどうか尋ねられたときに「はい」と答えることもありましたが、 その時点で、最新のLinuxカーネルバージョンのBIOSベンダーがバグや機能不足を回避する原因となった バグレポートを開くのではなく、パッチを提供します。これらのバグが修正された場合、回避策により、以降のすべてのLinuxバージョンで不要なパフォーマンスペナルティおよびその他の問題が発生しました。

acpi_osi=Linuxを指定すると、ACPIコードによって「Linux」であるかどうか尋ねられたときにLinuxが再びyesと応答するため、ACPIコードでLinuxの回避策を有効にしたり、Windowsの回避策を無効にしたりできます。

acpi_backlight=vendorは、バックライトのACPIドライバーがチェックされる順序を変更します。 ACPI DSDTが標準の互換性を主張するバックライトデバイスを提供する場合、通常Linuxは汎用のvideoドライバーを使用し、そのようなデバイスが見つからない場合にのみ他のベンダー固有のドライバーをチェックします。 acpi_backlight=vendorはこの順序を逆にするため、ベンダー固有のドライバーが最初に試行されます。

30
cg909

"acpi_osi"の最初のGoogle結果acpi_osi=linuxを説明します:

[...] Windowsが検出されない場合、BIOSは通常機能を無効にします[...]デフォルトでは、カーネルはLinuxが実行されているかどうかを尋ねられたときにfalseと応答します。 acpi_osi=Linuxは、カーネルにtrueと応答するように指示します。(drivers/acpi/osl.cを参照)BIOSに真実を伝える必要があるようです。

「acpi_osi」の2番目のGoogle結果acpi_backlight=vendorを説明します:

acpi_backlight=vendorは、ACPI thinkpad_acpiドライバではなく、ベンダー固有のドライバ(sony_acpivideo.koなど)を優先します。

3