udev hid bpf帮助启用hidbpf使用而不是内核驱动程序来修复hid硬件

2024年 4月 26日 79.9k 0

现在,对于有缺陷的HID硬件或其他不完全符合规范或需要已知硬件解决方案的输入设备,往往需要一个新的Linux内核驱动程序,或者至少需要在现有内核驱动程序代码中添加一些怪癖。不缺乏不稳定的HID硬件/驱动程序来处理这种奇怪的情况。由于内核周期长和涉及的其他因素,长期以来,利用(e)BPF一直被认为是能够以eBPF程序的形式更快地发送硬件支持修复程序的领域之一。Rust编写的udev-hid-bpf项目已经准备好帮助实现这一目标。

Red Hat输入专家Peter Hutterer上周在博客中介绍了他与Red Hat的Benjamin Tissoires一起开发的udev hid bpf项目。udevhidbpf提供了使用eBPF修复hid设备的工具。udev-hid-bpf项目本身是用Rust编程语言编写的,但eBPF程序仍然是用C编写的。

HID-BPF是一种非常有趣的方法来处理古怪/有缺陷的HID硬件,而使用udev-HID-BPF,它有助于实现这一目标。Peter在宣布udev隐藏bpf工作的博客文章中解释道:

“如果我们想修复我们的设备,我们通常需要做两件事之一:修复报告描述符,以启用/禁用/更改设备假装支持的一些值。例如,我们可以说我们支持5个按钮,而不是假定的8个。或者我们需要通过例如反转设备的y值来修复报告。这可以在自定义内核驱动程序中完成,但HID BPF程序要方便得多。

...

udev hid bpf是一个工具,可以简化hid bpf程序的开发和测试,并收集hid bpf程序。你基本上运行介子编译和介子安装,瞧,无论什么BPF程序应用于你的设备,下次你插入它们时都会自动加载。如果你只想测试一个BPF.o文件,你可以udev hid BPF install/path/to/foo.BPF.o,它会安装所需的udev规则,以便在设备插入时加载它。如果你不知道如何编译,你可以从我们的CI中获取一个tarball,并测试预编译的BPF.o.Hooray,甚至更简单。"

The udev-hid-bpf documentation is on FreeDesktop.org for those wanting to learn more.

相关文章

塑造我成为 CTO 之路的“秘诀”
“人工智能教母”的公司估值达 10 亿美金
教授吐槽:985 高校成高级蓝翔!研究生基本废了,只为房子、票子……
Windows 蓝屏中断提醒开发者:Rust 比 C/C++ 更好
Claude 3.5 Sonnet 在伽利略幻觉指数中名列前茅
上海新增 11 款已完成登记生成式 AI 服务

发布评论