华硕笔记本电脑附加功能

版本 0.1

2009 年 8 月 6 日

Corentin Chary <corentincj@iksaif.net> http://acpi4asus.sf.net/

此驱动程序为 ACPI 兼容的华硕笔记本电脑的附加功能提供支持。它还可能支持某些 MEDION、JVC 或 VICTOR 笔记本电脑(例如 MEDION 9675 或 VICTOR XP7210)。它使所有额外的按钮生成输入事件(如键盘)。

在某些型号上,增加了对更改显示器亮度、输出、打开和关闭 LCD 背光的支持,最重要的是,允许您闪烁那些用于报告邮件和无线状态的漂亮 LED。

此驱动程序取代了旧的 asus_acpi 驱动程序。

要求

为您的计算机配置的、具有 ACPI 支持的 Kernel 2.6.X 源代码。您还需要 CONFIG_INPUT 和 CONFIG_ACPI。

状态

目前支持的功能如下(详细说明见下文)

  • Fn 键组合

  • 启用和禁用蓝牙

  • 启用和禁用 WLAN

  • 启用和禁用 GPS

  • 视频输出切换

  • 打开和关闭环境光传感器

  • LED 控制

  • LED 显示控制

  • LCD 亮度控制

  • LCD 开关

网站上维护着按型号和功能划分的兼容性表,http://acpi4asus.sf.net/

用法

尝试 “modprobe asus-laptop”。检查您的 dmesg (只需键入 dmesg)。您应该看到类似这样的行

华硕笔记本电脑附加功能版本 0.42
  • 检测到 L2D 型号。

如果这不是您笔记本电脑上的输出,请将其(以及笔记本电脑的 DSDT)发送给我。

就这样,现在,您笔记本电脑热键生成的所有事件都应该通过 netlink 事件报告。您可以使用 “acpi_genl monitor” 进行检查(acpica 项目的一部分)。

热键也作为输入键(如键盘)报告,您可以使用 X11 下的 “xev” 检查支持哪些键。

您可以通过读取 /sys/devices/platform/asus-laptop/infos 条目来获取有关您的 DSDT 表版本的信息。如果您有疑问或错误报告,请包含此条目的输出。

LED

您可以通过将值回显到 /sys/class/leds/asus/*/brightness 来修改 LED

echo 1 >  /sys/class/leds/asus::mail/brightness

将打开邮件 LED。

您还可以通过读取它们的内容来知道它们是开/关状态,并使用内核触发器,如磁盘活动或心跳。

背光

您可以使用 /sys/class/backlight/asus-laptop/ 控制 LCD 背光电源和亮度。亮度值介于 0 和 15 之间。

无线设备

您可以使用蓝牙条目打开/关闭内部蓝牙适配器(仅在具有蓝牙的型号上)。这通常控制相关的 LED。WLAN 适配器也是如此。

显示切换

注意:显示切换代码目前被认为是实验性的。

切换适用于以下型号

  • L3800C

  • A2500H

  • L5800C

  • M5200N

  • W1000N(尽管有一些小故障)

  • M6700R

  • A6JC

  • F3J

切换不适用于以下型号

  • M3700N

  • L2X00D(在某些条件下锁定笔记本电脑)

要切换显示器,请将 0 到 15 的值回显到 /sys/devices/platform/asus-laptop/display。这些值的含义如下

二进制

DVI

TV

CRT

LCD

0000

0

0001

1

X

0010

2

X

0011

3

X

X

0100

4

X

0101

5

X

X

0110

6

X

X

0111

7

X

X

X

1000

8

X

1001

9

X

X

1010

10

X

X

1011

11

X

X

X

1100

12

X

X

1101

13

X

X

X

1110

14

X

X

X

1111

15

X

X

X

X

在大多数情况下,必须插入适当的显示器,上述组合才能工作。TV-Out 可能需要在启动时初始化。

调试

  1. 检查 Fn+F8 键是否

    1. 不锁定笔记本电脑(如果锁定,请尝试使用 noapic / nolapic 启动)

    2. 生成事件(0x6n,其中 n 是与上述配置对应的值)

    3. 实际工作

    记录每次配置的 disp 值。

  2. 将 0 到 15 的值回显到 /sys/devices/platform/asus-laptop/display。记录其值,注意任何更改。如果没有更改,请尝试更广泛的范围,最高可达 65535。

  3. 将任何输出(需要正面和负面报告,除非您的机器已在上面列出)发送到 acpi4asus-user 邮件列表。

注意:在某些机器(例如 L3C)上,加载模块后,只会生成 0x6n 事件,而不会发生实际切换。在这种情况下,类似这样的行

echo $((10#$arg-60)) > /sys/devices/platform/asus-laptop/display

通常会起作用($arg 是传递给 acpid 的类似 0000006n 的事件)。

注意:目前没有可靠的方法可以在 xxN (Centrino) 型号上读取显示状态。

LED 显示屏

某些型号(如 W1N)具有 LED 显示屏,可用于显示多个信息项。

LED 显示屏适用于以下型号

  • W1000N

  • W1J

要控制 LED 显示屏,请使用以下方法

echo 0x0T000DDD > /sys/devices/platform/asus-laptop/

其中 T 控制 3 个字母显示屏,DDD 控制 3 个数字显示屏,具体根据下表

DDD (digits)
000 to 999 = display digits
AAA        = ---
BBB to FFF = turn-off

T  (type)
0 = off
1 = dvd
2 = vcd
3 = mp3
4 = cd
5 = tv
6 = cpu
7 = vol

例如,“echo 0x01000001 >/sys/devices/platform/asus-laptop/ledd” 将显示 “DVD001”。

驱动程序选项

可以使用标准模块参数语法将选项传递给 asus-laptop 驱动程序(将选项传递给模块时使用 <param>=<value>,或者在 asus-laptop 静态链接到内核时,在内核启动行上使用 asus-laptop.<param>=<value>)。

wapf:WAPF 定义 Fn+Fx WLAN 键的行为

值的含义尚未找到,但大多数情况下

  • 0x0 应该不执行任何操作

  • 0x1 应该允许使用 Fn+Fx 键控制设备。

  • 0x4 应该在按下 Fn+Fx 键时发送一个 ACPI 事件 (0x88)

  • 0x5 像 0x1 或 0x4

默认值为 0x1。

不支持的型号

这些型号将永远不会被此模块支持,因为它们使用完全不同的机制来处理 LED 和其他额外的东西(这意味着我们不知道它是如何工作的)

  • 华硕 A1300 (A1B), A1370D

  • 华硕 L7300G

  • 华硕 L8400

补丁、错误、问题

我欢迎任何成功或失败报告,特别是如果它们添加到兼容性表中或更正了兼容性表。请在您的报告中包含以下信息

  • 华硕型号名称

  • 使用 “acpidump” 实用程序复制的 ACPI 表

  • /sys/devices/platform/asus-laptop/infos 的副本

  • 哪些驱动程序功能有效,哪些无效

  • 无效功能的观察行为

也欢迎任何其他评论或补丁。

acpi4asus-user@lists.sourceforge.net

http://sourceforge.net/projects/acpi4asus