summaryrefslogtreecommitdiffstats
path: root/rules.d/60-persistent-media-controller.rules
diff options
context:
space:
mode:
authorMax Staudt <mstaudt@chromium.org>2024-02-22 09:47:36 +0100
committerLuca Boccassi <luca.boccassi@gmail.com>2024-02-22 20:27:29 +0100
commit04f19d673587252040e04bf55d9425d00e1f24d0 (patch)
tree45d19af4e552aa84dc008a4341b1a12431398c10 /rules.d/60-persistent-media-controller.rules
parentnetwork: introduce per-interface IP forwarding settings (diff)
downloadsystemd-04f19d673587252040e04bf55d9425d00e1f24d0.tar.xz
systemd-04f19d673587252040e04bf55d9425d00e1f24d0.zip
udev: Add /dev/media/by-path symlinks for media controllers
Add persistent symlinks for media controller ("mediaX") devices, based on their ID_PATH udev properties. For example, if the uvcvideo driver creates /dev/media0, a persistent name may be: /dev/media/by-path/pci-0000:04:00.3-usb-0:1:1.0-media-controller Persistent links are a handy tool to make scripts self-documenting during development or in tests, as well as less error prone in case of devices changing enumeration order. For media controllers, one can alternatively scan through all of them and look for a matching bus_info in their struct media_device_info, but the links are much handier when drafting something by hand. A similar pattern already exists for Video4Linux /dev/videoX devices, see 60-persistent-v4l.rules for those.
Diffstat (limited to 'rules.d/60-persistent-media-controller.rules')
-rw-r--r--rules.d/60-persistent-media-controller.rules12
1 files changed, 12 insertions, 0 deletions
diff --git a/rules.d/60-persistent-media-controller.rules b/rules.d/60-persistent-media-controller.rules
new file mode 100644
index 0000000000..bf614d9783
--- /dev/null
+++ b/rules.d/60-persistent-media-controller.rules
@@ -0,0 +1,12 @@
+# do not edit this file, it will be overwritten on update
+
+# Media controller rules
+
+ACTION=="remove", GOTO="persistent_media_ctl_end"
+SUBSYSTEM!="media", GOTO="persistent_media_ctl_end"
+ENV{MAJOR}=="", GOTO="persistent_media_ctl_end"
+
+IMPORT{builtin}="path_id"
+ENV{ID_PATH}=="?*", KERNEL=="media*", SYMLINK+="media/by-path/$env{ID_PATH}-media-controller"
+
+LABEL="persistent_media_ctl_end"