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


21

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

回答:


28

カーネルパラメーターは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はvideoACPI DSDTが標準の互換性を主張するバックライトデバイスを提供し、そのようなデバイスが見つからない場合にのみ他のベンダー固有のドライバーをチェックする場合、汎用ドライバーを使用します。acpi_backlight=vendorベンダー固有のドライバーが最初に試行されるように、この順序を逆にします。


3

「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_acpisony_acpi代わりのACPIの、など)をvideo.ko運転。


これらの答えは(特にacpi_osiについて)十分に詳細化されていないと私は主張します。
セスタリアン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.