![无法调整 Gateway NV54 的屏幕亮度](https://linux22.com/image/814725/%E6%97%A0%E6%B3%95%E8%B0%83%E6%95%B4%20Gateway%20NV54%20%E7%9A%84%E5%B1%8F%E5%B9%95%E4%BA%AE%E5%BA%A6.png)
我在 Gateway NV54 上安装了 ubuntu 11.10。我想安装显卡驱动程序,因为屏幕亮度没有变化。但“附加驱动程序”没有检测到任何东西。显卡:Mobile Intel® GM45 Express 芯片组谢谢。
答案1
无需安装,默认情况下它就在那里。这个问题与
为了响应所提出的 ACPI 调整,重要的是要了解您实际上在做什么来实现 Linux 桌面的“亮度控制”以及成本是多少。有一种叫做 ACPI 的东西,它就像用于硬件控制的 perl,实际代码保存在您的 BIOS 中,然后由操作系统(它有一个解释器)根据需要执行。此代码将根据你运行的操作系统而变化,或者在您的情况下,您将其更改为的操作系统名称。这些表格描述了从如何为 CPU 计时到挂起/恢复、热调节、多显示器(外部显示按钮)以及亮度等热键的所有内容。
当您更改 acpi_os 名称时,您实际上是在更改所有硬件在运行时的行为方式。我的热评论是一种更糟糕的情况,而且确实有可能,因为通过将 Linux 指定为 ACPI 名称,您实际上是在运行未经测试或测试不充分的代码,这些代码会告诉这些非常低级的资源该做什么。
因此,如果您想继续使用此捷径,那么您有责任确保机器在合理的公差范围内运行。这尤其意味着热量,走这条路可能是全有或全无的事情,风扇要么全速运转,要么最低限度运转。您还需要仔细检查所有其他运行时功能,例如它是否可以暂停和恢复?音量控制?超级键?所有这些都取决于 ACPI。
因此,Linux 的工作方式是模拟最新版本的 Windows,例如 Windows 2009。想想看,当您指定 Linux 时,它是什么版本?没有版本,因此下次您更新内核时,“Linux”ACPI 名称的行为可能会发生变化,而您只能忍受副作用。人们认为这是理所当然的,Windows 版本明确版本,内核+acpi 运行时都处于一个基准之下。Linux 只是将其向前推进,当然有一个 ACPI 版本,但还没有供应商代码(目前)。
那么,这对你有什么帮助呢?毕竟,你需要亮度控制,而所有这些技术背景并不能真正解决你的问题,但它却揭示了所涉及的风险。
Canonical 开发了一套测试套件,它擅长深入研究固件并测试其正确性。然后我们可以利用这些信息从源头上解决问题并为您提供更新的固件。
https://wiki.ubuntu.com/Kernel/Reference/fwts
运行此程序并提交错误,无需启用这些黑客,我们就可以解决问题。我们可能能够通过平台怪癖启用亮度控制。
您还需要考虑的另一件事是,您的硬件可能还没有准备好运行 Windows 2009。笔记本电脑上的小贴纸上写着“Windows 认证”是什么意思?您可以告诉 Linux 模拟早期版本的 Windows,如 Vista 或 XP。可能是您的 ACPI 表中有一个错误,Linux 要求 Windows 2009,但它不在那里,代码很糟糕,所以它只是放弃了,什么都没有配置。如果您改为更改 acpi_osi='Windows\ 2006'(例如 Vista),一切可能都有效。更妙的是,您的笔记本电脑可能已通过该操作系统的认证,因此我们知道所有代码都有效。
以下是 Linux 模拟的所有名称的表格,从末尾开始回滚,直到找到一个可用的名称。我相信 2.6.38 发布时我们默认使用 Windows 2009:http://lxr.linux.no/#linux+v3.2.7/drivers/acpi/acpica/utosi.c
/* * _OSI 预定义控制方法支持的字符串( * 在此模块内部实现。) * * 2009 年 3 月:删除了“Linux”,因为该主机不再愿意回应 * 表示此字符串。基本上,唯一安全的操作系统字符串是与 Windows 相关的 * 并且在大多数情况下代表唯一的测试路径 * BIOS 提供的 ASL 代码。 * * 每个条目的最后一个元素用于跟踪 * BIOS 请求的 Windows。 */ 静态结构 acpi_interface_info acpi_default_supported_interfaces[] = { /* 操作系统供应商字符串 */ {"Windows 2000", NULL, 0, ACPI_OSI_WIN_2000}, /* Windows 2000 */ {"Windows 2001", NULL, 0, ACPI_OSI_WIN_XP}, /* Windows XP */ {“Windows 2001 SP1”,NULL,0,ACPI_OSI_WIN_XP_SP1},/* Windows XP SP1 */ {“Windows 2001.1”,NULL,0,ACPI_OSI_WINSRV_2003},/* Windows Server 2003 */ {"Windows 2001 SP2", NULL, 0, ACPI_OSI_WIN_XP_SP2}, /* Windows XP SP2 */ {“Windows 2001.1 SP1”,NULL,0,ACPI_OSI_WINSRV_2003_SP1},/* Windows Server 2003 SP1 - 添加于 2006 年 3 月 */ {"Windows 2006", NULL, 0, ACPI_OSI_WIN_VISTA}, /* Windows Vista - 添加于 2006 年 3 月 */ {“Windows 2006.1”,NULL,0,ACPI_OSI_WINSRV_2008},/* Windows Server 2008 - 添加于 2009 年 9 月 */ {“Windows 2006 SP1”,NULL,0,ACPI_OSI_WIN_VISTA_SP1},/* Windows Vista SP1 - 添加于 2009 年 9 月 */ {"Windows 2006 SP2", NULL, 0, ACPI_OSI_WIN_VISTA_SP2}, /* Windows Vista SP2 - 添加于 2010 年 9 月 */ {"Windows 2009", NULL, 0, ACPI_OSI_WIN_7}, /* Windows 7 和 Server 2008 R2 - 添加于 2009 年 9 月 */
注意,你看不到Linux在该列表中,你呢?另外,请确保正确转义字符串以在 grub 默认值中包含空格,否则它将不起作用。通过检查 dmesg 日志,你将能够看到 OSI 名称生效。
答案2
您的图形驱动程序是默认安装的一部分。
要检查它并了解当前正在使用哪个驱动程序,请打开终端并输入以下内容
sudo lshw -C display
查找显示 的行configuration: driver=i915 latency=0
。如果存在,则驱动程序已启用。
为了保持驱动程序更新,您只需要使用更新管理器保持系统更新。
为了能够使用亮度按钮,您需要在 grub 配置文件中添加一些内容。
在终端中使用您喜欢的文本编辑器打开它,即gedit
gksudo gedit /etc/default/grub
找到这条线
GRUB_CMDLINE_LINUX=""
并将其更改为
GRUB_CMDLINE_LINUX="acpi_osi=Linux acpi_backlight=vendor"
保存文件并在终端类型中输入
sudo update-grub
使用以下方法重启计算机
sudo reboot
您的亮度按钮现在应该可以正常工作了。
(source
)