From: Clemens Ladisch <clemens@ladisch.de>
To: linux-hotplug@vger.kernel.org
Subject: [PATCH] udev: persistent FireWire device names
Date: Wed, 04 Jul 2012 17:08:00 +0000 [thread overview]
Message-ID: <4FF47870.3020509@ladisch.de> (raw)
---
Makefile.am | 1 +
rules/60-persistent-firewire.rules | 26 ++++++++++++++++++++++++++
2 files changed, 27 insertions(+), 0 deletions(-)
diff --git a/Makefile.am b/Makefile.am
index 3b7ec0b..415fae6 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1510,6 +1510,7 @@ dist_udevrules_DATA += \
rules/60-persistent-input.rules \
rules/60-persistent-alsa.rules \
rules/60-persistent-storage.rules \
+ rules/60-persistent-firewire.rules \
rules/75-net-description.rules \
rules/75-tty-description.rules \
rules/78-sound-card.rules \
diff --git a/rules/60-persistent-firewire.rules b/rules/60-persistent-firewire.rules
new file mode 100644
index 0000000..2eb8cfe
--- /dev/null
+++ b/rules/60-persistent-firewire.rules
@@ -0,0 +1,26 @@
+# do not edit this file, it will be overwritten on update
+
+ACTION="remove", GOTO="persistent_firewire_end"
+SUBSYSTEM!="firewire", GOTO="persistent_firewire_end"
+
+ATTR{is_local}="1", OPTIONS="link_priority=1"
+
+TEST="guid", SYMLINK+="firewire/by-id/guid-$attr{guid}"
+
+# Most devices have the model name in the root directory.
+TEST="vendor_name", TEST="model_name", \
+ OPTIONS="string_escape=replace", \
+ SYMLINK+="firewire/by-name/$attr{vendor_name} $attr{model_name}"
+# Some devices have the model name only in the first unit directory, so we have
+# to get the name from the corresponding subdevice. (The detour through cat is
+# necessary because $attr does not allow substitutions in its file name.)
+TEST="vendor_name", TEST!="model_name", TEST="$kernel.0/model_name", \
+ PROGRAM="/bin/cat $sys$devpath/$kernel.0/model_name", \
+ OPTIONS="string_escape=replace", \
+ SYMLINK+="firewire/by-name/$attr{vendor_name} $result"
+# To make the preceding rule work when the subdevice is added after the parent
+# device, force a 'change' event to rerun that rule in this case.
+ACTION="add", DEVPATH="*/fw[0-9]*/fw[0-9]*.0", TEST="model_name", TEST!="../model_name", \
+ ATTR{../uevent}="change"
+
+LABEL="persistent_firewire_end"
next reply other threads:[~2012-07-04 17:08 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-07-04 17:08 Clemens Ladisch [this message]
2012-07-04 17:22 ` [PATCH] udev: persistent FireWire device names Kay Sievers
2012-07-04 19:48 ` Clemens Ladisch
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4FF47870.3020509@ladisch.de \
--to=clemens@ladisch.de \
--cc=linux-hotplug@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.