[kwlug disc.] can i use ancestors in the sysfs tree for udev entries?

Robert P. J. Day rpjday at mindspring.com
Tue Mar 6 13:47:34 EST 2007


  if this is explained in the udev docs, i haven't noticed it.  as a
test, i want to create a couple alternate names for my printer, which
currently sits at /dev/usb/lp0.

  if i query that device via "udevinfo":

  $ udevinfo -a -p $(udevinfo -q path -n /dev/usb/lp0)

the first several lines of output are:

  looking at device '/devices/pci0000:00/0000:00:1d.0/usb1/1-1/1-1:1.0/lp0':
    KERNEL=="lp0"
    SUBSYSTEM=="usb"
    SYSFS{dev}=="180:0"

  looking at parent device '/devices/pci0000:00/0000:00:1d.0/usb1/1-1/1-1:1.0':
    ID=="1-1:1.0"
    BUS=="usb"
    DRIVER=="usblp"
    SYSFS{ieee1284_id}=="MFG:Brother_CMD:PJL,HBP_MDL:HL-2040 series_CLS:PRINTER_"
    SYSFS{modalias}=="usb:v04F9p0028d0100dc00dsc00dp00ic07isc01ip02"
    SYSFS{bInterfaceProtocol}=="02"
    SYSFS{bInterfaceSubClass}=="01"
    SYSFS{bInterfaceClass}=="07"
    SYSFS{bNumEndpoints}=="02"
    SYSFS{bAlternateSetting}==" 0"
    SYSFS{bInterfaceNumber}=="00"

  looking at parent device '/devices/pci0000:00/0000:00:1d.0/usb1/1-1':
    ID=="1-1"
    BUS=="usb"
    DRIVER=="usb"
    SYSFS{serial}=="A6J601267"
    SYSFS{product}=="HL-2040 series"
    ...

am i allowed to combine info from different levels in the hierarchy to
define a udev rule?  as in:

  BUS=="usb", SYSFS{serial}=="A6J601267", SYMLINK+="my_printer"

given that the "serial" number is actually two levels up in the sysfs
hierarchy.  is that still legal as long as it's unambiguous?  thanks.

rday
-- 
========================================================================
Robert P. J. Day
Linux Consulting, Training and Annoying Kernel Pedantry
Waterloo, Ontario, CANADA

http://fsdev.net/wiki/index.php?title=Main_Page
========================================================================


More information about the KWLUG-Disc mailing list