summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xextras/path_id/path_id3
-rw-r--r--rules/rules.d/60-persistent-serial.rules19
2 files changed, 22 insertions, 0 deletions
diff --git a/extras/path_id/path_id b/extras/path_id/path_id
index f7b1435d3d..f45f62ad32 100755
--- a/extras/path_id/path_id
+++ b/extras/path_id/path_id
@@ -515,6 +515,9 @@ handle_device () {
*/host[0-9]*/[0-9]*:[0-9]*:[0-9]*:[0-9]*)
handle_scsi "$D"
;;
+ */ttyUSB*)
+ D=${D%/ttyUSB*}
+ ;;
*/usb[0-9]*/[0-9]*/*)
handle_usb "$D"
;;
diff --git a/rules/rules.d/60-persistent-serial.rules b/rules/rules.d/60-persistent-serial.rules
new file mode 100644
index 0000000000..df10606e07
--- /dev/null
+++ b/rules/rules.d/60-persistent-serial.rules
@@ -0,0 +1,19 @@
+# do not edit this file, it will be overwritten on update
+
+ACTION!="add|change", GOTO="persistent_serial_end"
+SUBSYSTEM!="tty", GOTO="persistent_serial_end"
+KERNEL!="ttyUSB[0-9]*", GOTO="persistent_serial_end"
+
+SUBSYSTEMS=="usb-serial", ENV{ID_PORT}="$attr{port_number}"
+ENV{ID_PORT}=="", GOTO="persistent_serial_end"
+
+IMPORT="path_id"
+ENV{ID_PATH}=="?*", SYMLINK+="serial/by-path/$env{ID_PATH}-port$env{ID_PORT}"
+
+IMPORT="usb_id --export"
+ENV{ID_SERIAL}=="", GOTO="persistent_serial_end"
+SUBSYSTEMS=="usb", ENV{ID_IFACE}="$attr{bInterfaceNumber}"
+ENV{ID_IFACE}=="", GOTO="persistent_serial_end"
+SYMLINK+="serial/by-id/$env{ID_BUS}-$env{ID_SERIAL}-if$env{ID_IFACE}-port$env{ID_PORT}"
+
+LABEL="persistent_serial_end"