[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Problem with udev device identification

Hi everyone,

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?


Sebastián Lara Menares
Ingeniería Civil Electrónica
Universidad de Concepción

Reply to: