步骤一:
查询供应商和产品ID
lsusb
我使用的手柄设备如下图,供应商ID为0079,产品ID是0126
步骤二:
创建并配置规则文件
在 Linux 系统中固定一个设备并将其设备名称设为 "you_id",使用 udev 规则,创建一个名为 "99-yourname.rules" 的规则文件(“99-”是确保规则文件的优先级),并将其放置在 /etc/udev/rules.d/ 目录下。操作如下
cd /etc/udev/rules.d
nano 99-yourname.rules
文件内容如下(记得改上自己的步骤一的两个ID,权限和名字自定义):
# /etc/udev/rules.d/99-yourname.rules
# 设备为输入设备, 供应商ID为0079和设备ID为0126(以自己步骤一查看的ID为准), 权限为0700(可根据自己情况, 0700代表只有管理员才有读取写入和执行权限), yourname是你自己取的设备名称, 后续可在ls /dev/查看, 和程序中固定路径调用
SUBSYSTEM=="input", ATTRS{idVendor}=="0079", ATTRS{idProduct}=="0126", MODE="0700", SYMLINK+="yourname"
加载udev规则(任何路径下都可):
sudo udevadm control --reload-rules
使用实例:
插入输入设备,输入下面指令,查看有没有自定义的设备名称“yourname”
ls /dev/
有的话,你就可以用固定的设备路径如:
device_path = "dev/yourname"
代替程序里面的随机设备路径如:
device_path = "dev/input/event4"