我有一条 udev 规则,用于识别 Spektrum RC 加密狗并将其 hidraw 文件符号链接到自定义文件。这是我正在使用的 udev 规则。
ACTION=="add", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="572b", SYMLINK+="spek"
符号链接已成功创建,我可以 cat /dev/spek 文件。但是,文件中的数据似乎与来自原始文件的数据不同。
为了首先描述差异,您可能需要了解 hidraw 文件中发生的默认行为:
如果 RC 控制器上的输入没有变化(即不移动操纵杆),则 RC Dongle 会发出完全相同的恒定数据流,代表控制器的状态。当操纵杆在控制器上移动时,此数据流会发生变化以匹配控制器的状态。传入数据永远不会中断或暂停。
然而,在符号链接文件中,没有恒定的数据流。只有当控制器上的存储棒移动时,它才会更新该文件,这将更改源文件中的数据。除此之外,似乎输入到符号链接文件的数据完全不正确。
原始 hidraw 文件中的原始数据遵循一组可以解析的格式,来自符号链接的数据似乎是垃圾。
我能做些什么来纠正这个问题吗?
答案1
我必须指定使用 hidraw 子系统,否则符号链接会转到某个随机文件。所以最终规则是
ACTION=="add", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="572b", SYMLINK+="spek"