I have three different serial devices connected to three usb-serial converters (FTDI USB-RS232). If I connect them, I get the generic device names /dev/ttyUSBx as expected. When I try to write some udev rules, udevadm shows me the same output for the three devices except in some device serial id attributes.
Those serial id's will change on every device so if I use a different usb-serial converter, my rules won't work anymore. So, I need a way to communicate with the specific device connected to the serial converters and identify it by its response.
"Writing udev rules" HOWTO, says the following about using PROGRAM functionality to call an external program to name devices:
PROGRAM is used for running programs which produce device names (and they shouldn't do anything other than that). When those programs are being executed, the device node has not yet been created, so acting upon the device in any way is not possible,
Rule example:
SUBSYSTEM=="usb", PROGRAM="/bin/device_namer %k", SYMLINK+="%c"
so I can't write to /dev/ttyUSBx from there to identify the device. Then, I have the RUN functionality, but it seems that it can't create a new SYMLINK as udev won't get RUN's output.
Rule example:
SUBSYSTEM=="usb", RUN="/bin/program"
Can I instruct udev from that RUN script to create the symlink? Or can I create that symlink by hand from there?
Thanks