ラップトップの画面の明るさの制御に問題があり、acpi_osi=linux
およびacpi_backlight=vendor
パラメータをファイルに追加して修正しましたgrub.cfg
。これらのパラメータの意味と、なぜ機能するのか知りたいのですが。
カーネルパラメータは 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
はこの順序を逆にするため、ベンダー固有のドライバーが最初に試行されます。
"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
は、ACPIthinkpad_acpi
ドライバではなく、ベンダー固有のドライバ(sony_acpi
、video.ko
など)を優先します。