我有三个不同的串行设备连接到三个usb串行转换器(FTDI USB-RS232)。如果我连接它们,我会按预期得到通用设备名称/ dev/ttyUSBx。当我尝试编写一些udev规则时,除了某些设备序列标识属性外,udevadm向我显示了三个设备的相同输出。根据设备响应创建与udev的设备符号链接,而不是udev设备信息
这些序列号会在每个设备上发生变化,所以如果我使用不同的USB串口转换器,我的规则将不再适用。所以,我需要一种方式与连接到串行转换器的特定设备进行通信,并通过其响应来识别它。
"Writing udev rules" HOWTO说,对使用程序功能调用外部程序名称设备如下:
程序用于运行的生产设备名称(他们不应该做的比其他任何东西)计划。当正在执行这些程序,设备节点尚未建立,所以以任何方式作用于该设备是不可能的,
规则例如: SUBSYSTEM=="usb", PROGRAM="/bin/device_namer %k", SYMLINK+="%c"
,所以我不能写/ dev/ttyUSBx从那里识别设备。然后,我具有RUN功能,但它似乎无法创建新的SYMLINK,因为udev无法获得RUN的输出。
规则例如: SUBSYSTEM=="usb", RUN="/bin/program"
我可以指示udev从运行脚本来创建符号链接?或者我可以从那里手工创建该符号链接?
感谢
不错的解决方案。感谢您的详细解答 – slara 2012-01-05 20:03:42