web-dev-qa-db-ja.com

カーネルブートパラメーター「set acpi_osi = Linux」は何をしますか?

Intel HDグラフィックスとUbuntu 10.10 64-bitを搭載したラップトップの輝度制御の問題に直面しています。修正を検索したとき、一般的な提案はGRUBファイル行を編集することであることがわかりました。GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"からGRUB_CMDLINE_LINUX_DEFAULT="quiet splash acpi_osi=Linux acpi_backlight=vendor"

ブートパラメータacpi_osiのドキュメントは次のことを示しています。

acpi_osi=   [HW,ACPI] Modify list of supported OS interface strings
            acpi_osi="string1"      # add string1 -- only one string
            acpi_osi="!string2"     # remove built-in string2
            acpi_osi=               # disable all strings

http://redsymbol.net/linux_boot_parameters/

ラップトップの問題をfixする必要がある理由はわかりません。

だから誰もカーネルブートオプションacpi_osi=Linuxが何をするのか教えてもらえますか?

46
AIB

Linuxではなく、=Windowsを意味すると思います。引数は、ACPI BIOSに嘘をつくようにカーネルに指示し、それがLinux以外の何かotherであることを伝えます(これが、Linuxの指定が馬鹿げている理由です)。

彼が書いたものを意味していると確信しています。はい。通常、Windowsが検出されない場合、BIOSは機能を無効にしますが、Linuxの実行はデフォルトでカーネルがfalseを応答するため、Linuxの指定は愚かではありません。 acpi_osi=Linuxは、カーネルにtrueと応答するように指示します。(drivers/acpi/osl.cを参照)BIOSに真実を伝える必要があるようです。

ドライバーの問題か、ACPI実装の誤りです。 dsdtを取り出して分解し、コードを確認して、Linux OSIで破損または無効になっているものをよりよく理解する必要があります。

参照

29
fuzzy7k

このパラメータは、カーネルがBIOSに「ねえ、あなたは何をサポートしていますか」と尋ねたときに取得する、サポートされているオペレーティングシステムのリストに「Linux」を追加します。その文字列を追加することで、後でACPIを使用するものは「ACPIを必要とする機能があり、Linuxを実行しています。どのプラットフォームがサポートされていますか?」 Linuxを含むリストが返されます。

これをLinuxに設定すると、基本的に、特定のACPI機能が特定のオペレーティングシステムで動作するとBIOSが言っているかどうかを確認するためのチェックを無効にします。そして、それにより、以前は隠されていたことがうまくいくことがよくあります。ただし、まれに[うまくいけば]動作するものを壊してしまうこともあります。 :)

14
dannysauer

Linuxではなく、=Windowsを意味すると思います。引数は、ACPI BIOSに嘘をつくようにカーネルに指示し、それがLinux以外の何かotherであることを伝えます(これがLinuxの指定がばかげている理由です)。特定のBIOSは、Windowsまたは特定のバージョンのWindowsで実行されているかどうかを確認し、実行されていない場合は機能を無効にすることが知られています。このパラメーターを使用すると、そのイディオシーを回避できます。

2
psusi