2. 遥控器的 sysfs 节点

正如在ABI 文件测试/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。