问题描述
我的笔记本电脑中有亮度控制的问题,它有英特尔高清显卡和64位Ubuntu 10.10。因此,当我搜索修复时,我发现一个常见的建议是编辑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
我没有找到解决任何笔记本电脑问题的原因。
那么有人能告诉我acpi_osi=Linux
的内核启动选项是什么吗?
最佳解决办法
I think you mean
=Windows
, notLinux
. The argument tells the kernel to lie to the ACPI BIOS and tell it that it is something other than Linux (which is why specifying Linux is silly).
我确定他的意思是他写的。是的,如果没有检测到Windows,BIOS通常会禁用功能,但指定Linux并不愚蠢,因为默认情况下,当被问及Linux是否正在运行时,内核会响应错误。 acpi_osi=Linux
告诉内核做出响应。(参见drivers/acpi/osl.c
)看来你需要告诉BIOS真相。
这可能是驱动程序问题或ACPI实现不正确。您必须取出dsdt
并对其进行反汇编以查看代码并更好地了解Linux OSI下的损坏或禁用。
参考
次佳解决办法
该参数将”Linux”添加到内核在询问BIOS“嘿,你支持什么”时将获得的受支持操作系统列表。通过添加该字符串,以后,使用ACPI的东西会说“嘿,我有一个需要ACPI的功能,我正在运行Linux – 支持哪些平台?”他们会找回一个包含Linux的列表。
通过将此设置为Linux,您基本上禁用任何检查以查看BIOS是否表示某些ACPI功能将适用于某些操作系统。而这通常会使以前隐藏的作品成为可能。但是,在[希望]极少数情况下,它也可能会破坏以前工作的东西。 🙂
第三种解决办法
我认为你的意思是=Windows
,而不是Linux
。该论点告诉内核欺骗ACPI BIOS并告诉它它不是Linux(这就是为什么指定Linux是愚蠢的)。已知某些BIOS会检查它们是在Windows或特定版本的Windows下运行,如果不是,则禁用它们。这个参数让你解决这个愚蠢的问题。