From: Kay Sievers Date: Thu, 20 Nov 2008 01:26:13 +0000 (+0100) Subject: rules: v4l - add by-id/ links for USB devices X-Git-Tag: 174~1301 X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=commitdiff_plain;h=24239ded2d7a152d1c428880ae2cf82d904a350d rules: v4l - add by-id/ links for USB devices /dev/v4l |-- by-id | |-- usb-046d_09a4_C4B15020-video-index0 -> ../../video0 | `-- usb-05a9_a511-video-index0 -> ../../video1 `-- by-path |-- pci-0000:00:1d.0-usb-0:1:1.0-video-index0 -> ../../video1 `-- pci-0000:00:1d.7-usb-0:2:1.0-video-index0 -> ../../video0 --- diff --git a/extras/usb_id/usb_id.c b/extras/usb_id/usb_id.c index 6dd1d450f..00d8a4c13 100644 --- a/extras/usb_id/usb_id.c +++ b/extras/usb_id/usb_id.c @@ -70,7 +70,9 @@ static void set_usb_iftype(char *to, int if_class_num, size_t len) case 0x0a: /* CDC-Data */ case 0x0b: /* Chip/Smart Card */ case 0x0d: /* Content Security */ - case 0x0e: /* Video */ + case 0x0e: + type = "video"; + break; case 0xdc: /* Diagnostic Device */ case 0xe0: /* Wireless Controller */ case 0xf2: /* Application-specific */ diff --git a/rules/rules.d/60-persistent-v4l.rules b/rules/rules.d/60-persistent-v4l.rules index 0d673ab39..fb961b79e 100644 --- a/rules/rules.d/60-persistent-v4l.rules +++ b/rules/rules.d/60-persistent-v4l.rules @@ -3,6 +3,9 @@ ACTION!="add|change", GOTO="persistent_v4l_end" SUBSYSTEM!="video4linux", GOTO="persistent_v4l_end" +SUBSYSTEMS=="usb", IMPORT{program}="usb_id --export" +KERNEL=="video*", ENV{ID_SERIAL}=="?*", SYMLINK+="v4l/by-id/$env{ID_BUS}-$env{ID_SERIAL}-video-index$attr{index}" + # check for valid "index" number TEST!="index", GOTO="persistent_v4l_end" ATTR{index}!="?*", GOTO="persistent_v4l_end"