[argyllcms] Re: Recognizing instruments with udev under Linux

  • From: Graeme Gill <graeme@xxxxxxxxxxxxx>
  • To: argyllcms@xxxxxxxxxxxxx
  • Date: Fri, 04 Jan 2008 11:45:36 +1100

Leonard Evens wrote:
In the file from the distribution, there is the statement

 PROGRAM="/bin/sh -c 'K=%k; K=$${K#usbdev}; printf bus/usb/%%03i/%%03i
$${K%%%%.*} $${K#*.}'"

I think I can decipher it if I work hard enough, but some clues from an
expert would help.  It seems to send something to the device presumably
to initialize it.

As I understand it (and I don't know a great deal about udev), this makes
sure that there is the appropriate device name entry for the
USB device, so that libusb can find it. It makes use of the
"printf" function of the shell to simply generate the appropriate
device name. I think on some distributions this is taken care of elsewhere
(probably distros that come with libusb), while the above
is needed for distributions that don't know about libusb.

P.S. The documentation says that one might need to run /sbin/udevrestart
for udev to reread the rules.  The current command is supposed to be
"/sbin/udevcontrol reload_rules".  But for some reason, I haven't got
that to work either.  I've had to reboot.  (I think I may have forgotten
to unplug the device first.)

It's hard to know. The above was taken from publicly available
information (ie. <http://reactivated.net/writing_udev_rules.html>)
plus man files on the system I was developing on. Since
udev seems to change all the time, and isn't well documented,
it's hard to know what a particular system needs.

Graeme Gill.

Other related posts: