udev: parent device DEVPATH in rule

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

 



What is the best way to use the parent device DEVPATH (or the DEVPATH
where a parent attribute matched) as a substitution in a udev rule?

I am doing this to create stable paths to the sysfs directories
containing the hardware monitoring attributes of my NAS, but the
location of the sysfs attributes provided by the it87 driver has changed
over the years ...

 ACTION!="add", GOTO="n5550_hwmon_end"
 SUBSYSTEM!="hwmon", GOTO="n5550_hwmon_end"

 # coretemp attributes are always in DEVPATH directory
ATTR{name}=="coretemp", RUN{program}+="/bin/sh -c 'mkdir -p /run/n5550 && ln -s /sys$devpath /run/n5550/coretemp'", GOTO="n5550_hwmon_end"

 # it87 attributes are in DEVPATH directory on newer kernels
ATTR{name}=="it8728", RUN{program}+="/bin/sh -c 'mkdir -p /run/n5550 && ln -s /sys$devpath /run/n5550/it87'", GOTO="n5550_hwmon_end"

 # On older kernels, it87 attributes are in parent's DEVPATH
ATTRS{name}=="it8728", RUN{program}+="/bin/sh -c 'mkdir -p /run/n5550 && ln -s /sys$parent_devpath /run/n5550/it87'"

             ^^^^^^^^^^^^^^^
 LABEL="n5550_hwmon_end"

Of course "$parent_devpath" doesn't exist, so I'm trying to figure out
what I should be using instead.

(For added fun, the "older" kernel is this case is from CentOS 7, which
has systemd 219.)

Ideas appreciated.  Thanks!

--
========================================================================
Google                                      Where SkyNet meets Idiocracy
========================================================================




[Index of Archives]     [LARTC]     [Bugtraq]     [Yosemite Forum]     [Photo]

  Powered by Linux