Debian 12下Dualshock4输入写入/dev/input/js0的内核模块咨询
关于Dualshock4控制器/dev/input/js0数据来源的疑问
我在X64架构设备上运行Debian 12系统,通过USB连接Dualshock4控制器后,可借助Joystick API读取/dev/input/js0设备文件,能从中获取如下结构体数据:
struct js_event { __u32 time; /* event timestamp in milliseconds */ __s16 value; /* value */ __u8 type; /* event type */ __u8 number; /* axis/button number */ };
我的问题是:是什么将数据写入/dev/input/js0供我读取?是否存在处理Dualshock4输入并写入该文件的模块?
回答:
- 写入
/dev/input/js0数据的是Linux内核的游戏手柄子系统,核心功能由内核模块实现。 - 针对Dualshock4控制器,负责处理输入并生成
js_event数据的是内核中的hid-sony模块:这是专门处理索尼HID设备的驱动模块,会识别USB连接的Dualshock4,解析控制器发送的原始HID报告,将其转换为符合Joystick API规范的js_event结构体数据。 - 同时,内核的
joydev模块也会参与流程:它是游戏手柄设备的通用字符设备驱动,负责把hid-sony处理后的输入事件映射到/dev/input/js*这类设备节点,让用户空间程序能通过标准Joystick API读取数据。
内容的提问来源于stack exchange,提问作者Nigel Redding
相关产品推荐
相关产品推荐

