udev: getting attributes from subdevice?

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

 



Hi,

I thought it would be useful to have persistent names for FireWire
devices:

########################################################################
ACTION=="remove", GOTO="persistent_firewire_end"
SUBSYSTEM!="firewire", GOTO="persistent_firewire_end"

TEST=="guid", SYMLINK+="firewire/by-id/guid-$attr{guid}"

TEST=="vendor_name", TEST=="model_name", \
	OPTIONS="string_escape=replace", \
	SYMLINK+="firewire/by-name/$attr{vendor_name} $attr{model_name}"

LABEL="persistent_firewire_end"
########################################################################

And these rules appear to work:

$ cat /sys/bus/firewire/devices/fw0/{vendor_name,model_name}
Linux Firewire
Juju
$ ls -l /dev/firewire/by-name/
lrwxrwxrwx 1 root root 9 2012-06-30 18:13 Linux_Firewire_Juju -> ../../fw0

However, there are devices where, due to some strange rules in the
FireWire specifications, some attributes end up belonging to a subdevice:

$ cat /sys/bus/firewire/devices/fw2/{vendor_name,model_name}
LaCie
cat: /sys/bus/firewire/devices/fw2/model_name: No such file or directory
$ cat /sys/bus/firewire/devices/fw2/fw2.0/model_name
Hard Drive Quadra

Okay, let's add some rules to handle this:

TEST=="vendor_name", TEST!="model_name", WAIT_FOR="$kernel.0/model_name"
TEST=="vendor_name", TEST!="model_name", TEST=="$kernel.0/model_name", \
	OPTIONS="string_escape=replace", \
	SYMLINK+="firewire/by-name/$attr{vendor_name} $attr{$kernel.0/model_name}"

But this doesn't work, probably because $kernel is not substituted
before $attr:

$ ls -l /dev/firewire/by-name/
lrwxrwxrwx 1 root root 9 2012-06-30 18:13 LaCie_ -> ../../fw2

(It works if I use $attr{fw2.0/model_name}, but that isn't generic enough.)

Do I have to write a separate tool for extracting the name?


Regards,
Clemens
--
To unsubscribe from this list: send the line "unsubscribe linux-hotplug" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Kernel]     [Linux DVB]     [Asterisk Internet PBX]     [DCCP]     [Netdev]     [X.org]     [Util Linux NG]     [Fedora Women]     [ALSA Devel]     [Linux USB]

  Powered by Linux