On Sun, 2002-06-02 at 08:21, Oliver Neukum wrote: > Am Mittwoch, 29. Mai 2002 12:23 schrieb Kim Deokhwan: > > Within a USB policy agent script, can we tell precisely which node the > > device has been bound to? According to > > Documentation/usb/usb-serial.txt: > > > > When the device is connected and recognized by the driver, the driver > > will print to the system log, which node(s) the device has been bound > > to. > > > > But the log message is too succint: > > > > May 27 10:51:11 localhost kernel: usbserial.c: Compaq iPAQ converter > > now attached to ttyUSB0 (or usb/tts/0 for devfs) > > > > In case of one iPAQ, we can find the relevant log entry by grepping the > > LAST matched line. But if two iPAQs are attached nearly at the same > > time, the last matched line may not be the relevant entry because > > context switching may happen between two agent scripts. > > > > Do you have any method that can solve it? > > At present I am afraid not. > This is just the tip of the iceberg. Basically, even if you had that > type of information, you cannot be sure that it stays valid > while the script is running. You need to tell the difference between the hardware devices, and you need to know which identified device uses which device node. Both can be done if the serial driver creates its own /proc/xxx entries. It is quite simple, and can be easily added. Some webcams, for example, offer this functionality for their own purposes. This will work on 2.4 kernel. The driver would, for example, create a text "file" (generated with a callback within the driver), and each line of text would contain serial number of the device (or hash of its descriptors) and the device node ID. Synchronization is, of course, a concern, since devices can be unplugged and replugged, but if you read the file immediately before opening the device it should be reasonably OK - users are not *that* fast ;-) You can also reread the file after opening the device and verify that it hasn't changed while you were blocked on open() call. Dmitri