回答:
カーネルパラメーターはkernel.orgで文書化されています。
何acpi_osi
が起こるかを理解するには、おおよそACPIの仕組みを知る必要があります。ACPIは、オペレーティングシステムが起動する前にBIOSがRAMに読み込むいわゆるテーブルで構成されています。それらの一部には、メインボード上の重要なデバイスに関する情報が固定形式で単に含まれていますが、DSDTテーブルのような一部にはAMLコードが含まれています。このコードは、オペレーティングシステムによって実行され、OSに、メインボード上の多くのデバイスと、省電力が有効な場合にOSによって実行される呼び出し可能な機能を記述するツリー構造を提供します。AMLコードは、_OSI
関数を呼び出すことでOSに問い合わせることができます。これは、いくつかのWindowsバージョンのバグなどの回避策を講じるためにベンダーによってよく使用されます。
多くのハードウェアベンダーは(当時の)最新バージョンのWindowsでのみ製品をテストするため、回避策のない「通常の」コードパスはバグが多いことがよくあります。このため、Linuxは通常Windowsかどうかを尋ねられたときにyesと答えます。Linuxは、「Linux」かどうかを尋ねられたときにyesと答えていましたが、BIOSベンダーは、バグレポートを開いたりパッチを提供したりする代わりに、(当時の)最新のLinuxカーネルのバグや機能の欠落を回避していました。これらのバグが修正されたとき、回避策はすべての以降のLinuxバージョンで不必要なパフォーマンスの低下やその他の問題を引き起こしました。
acpi_osi=Linux
ACPIコードで「Linux」であるかどうかを尋ねられた場合、Linuxに再びyesと応答させるため、ACPIコードでLinuxの回避策を有効にしたり、Windowsの回避策を無効にしたりできます。
acpi_backlight=vendor
バックライト用のACPIドライバーがチェックされる順序を変更します。通常、Linuxはvideo
ACPI DSDTが標準の互換性を主張するバックライトデバイスを提供し、そのようなデバイスが見つからない場合にのみ他のベンダー固有のドライバーをチェックする場合、汎用ドライバーを使用します。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
ベンダー固有のドライバ(例えば好むだろうthinkpad_acpi
、sony_acpi
代わりのACPIの、など)をvideo.ko
運転。