mir*_*los 6 linux usb udev devices nxt
在那个问题中,有人想要所有 USB 设备的黑名单,然后只允许特定设备。
在这个问题中,我们希望接受所有 USB 设备,但阻止驱动程序(例如cdc_acm
)采用一种特定的设备类型——例如,不应采用闪存模式下的LEGO® NXT 积木(因为fwflash
需要对设备进行原始访问) ,但驱动程序仍应访问 Arduino 板以/dev/ttyACM0
在访问 NXT 和 Arduino 硬件的教育环境中进行生产。
经过一些技巧(并lsusb
用于在闪存模式下查找设备的供应商和产品 ID)后,我已经能够使用 udev 规则执行此操作:
$ cat /etc/udev/rules.d/nxt.rules
# disable NXT in flash mode
ACTION=="add", ATTR{idVendor}=="03eb", ATTR{idProduct}=="6124", RUN="/bin/sh -c '/bin/echo -n $kernel:1.0 | /usr/bin/tee /sys/bus/usb/drivers/cdc_acm/unbind | /usr/bin/logger -t nxt-flashmode'"
Run Code Online (Sandbox Code Playgroud)
当 NXT 砖块在 flash 模式下插入时触发此规则,或在插入时进入 flash 模式。它不会阻止cdc_acm
抓取它,但在告诉它释放设备后立即fwflash
可以访问它。
我还没有发现它是什么:1.0
,以及为什么使用它而不是:1.1
它也出现在 sysfs 中。但是,我想分享一个有效的(对我来说)解决方案。环境:截至 2014 年 10 月底,Debian 不稳定(即几乎是 Debian jessie)。
归档时间: |
|
查看次数: |
1682 次 |
最近记录: |