2. 遥控器的 sysfs 节点

Documentation/ABI/testing/sysfs-class-rc 中定义,这些是控制遥控器的 sysfs 节点

2.1. /sys/class/rc/

/sys/class/rc/ 类子目录属于遥控器核心,并提供一个 sysfs 接口来配置红外遥控接收器。

2.2. /sys/class/rc/rcN/

为每个遥控接收器设备创建一个 /sys/class/rc/rcN 目录,其中 N 是接收器的编号。

2.3. /sys/class/rc/rcN/protocols

读取此文件会返回可用协议的列表,类似于

rc5 [rc6] nec jvc [sony]

已启用的协议显示在 [] 方括号中。

写入 “+proto” 会将协议添加到已启用协议列表中。

写入 “-proto” 会从已启用协议列表中删除协议。

写入 “proto” 将仅启用 “proto”。

写入 “none” 将禁用所有协议。

如果使用了无效的协议组合或未知的协议名称,则写入操作会失败并返回 EINVAL 错误。

2.4. /sys/class/rc/rcN/filter

设置期望的扫描码过滤值。

/sys/class/rc/rcN/filter_mask 结合使用,以设置过滤器掩码中设置的位的期望值。 如果硬件支持,则将忽略与过滤器不匹配的扫描码。 否则,写入操作将失败并返回错误。

如果当前协议被更改,则此值可能会重置为 0。

2.5. /sys/class/rc/rcN/filter_mask

设置要比较的扫描码过滤掩码位。与 /sys/class/rc/rcN/filter 结合使用,以设置应与期望值比较的扫描码位。值为 0 时,禁用过滤器以允许处理所有有效的扫描码。

如果硬件支持,则将忽略与过滤器不匹配的扫描码。否则,写入操作将失败并返回错误。

如果当前协议被更改,则此值可能会重置为 0。

2.6. /sys/class/rc/rcN/wakeup_protocols

读取此文件会返回可用于唤醒过滤器的可用协议列表,类似于

rc-5 nec nec-x rc-6-0 rc-6-6a-24 [rc-6-6a-32] rc-6-mce

请注意,会列出协议变体,因此 necsonyrc-5rc-6 如果可用,则会列出其不同的位长度编码。

请注意,会列出所有协议变体。

已启用的唤醒协议显示在 [] 方括号中。

一次只能选择一个协议。

写入 “proto” 将使用 “proto” 进行唤醒事件。

写入 “none” 将禁用唤醒。

如果使用了无效的协议组合或未知的协议名称,或者如果硬件不支持唤醒,则写入操作会失败并返回 EINVAL 错误。

2.7. /sys/class/rc/rcN/wakeup_filter

设置扫描码唤醒过滤器的期望值。与 /sys/class/rc/rcN/wakeup_filter_mask 结合使用,以设置唤醒过滤器掩码中设置的位的期望值,以触发系统唤醒事件。

如果硬件支持且 wakeup_filter_mask 不为 0,则与过滤器匹配的扫描码将使系统从例如挂起到 RAM 或断电中唤醒。 否则,写入操作将失败并返回错误。

如果唤醒协议被更改,则此值可能会重置为 0。

2.8. /sys/class/rc/rcN/wakeup_filter_mask

设置要比较的扫描码唤醒过滤掩码位。与 /sys/class/rc/rcN/wakeup_filter 结合使用,以设置应与期望值比较的扫描码位,以触发系统唤醒事件。

如果硬件支持且 wakeup_filter_mask 不为 0,则与过滤器匹配的扫描码将使系统从例如挂起到 RAM 或断电中唤醒。 否则,写入操作将失败并返回错误。

如果唤醒协议被更改,则此值可能会重置为 0。