diff options
-rw-r--r-- | extra/usb_serial/50-google-serial.rules | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/extra/usb_serial/50-google-serial.rules b/extra/usb_serial/50-google-serial.rules new file mode 100644 index 0000000000..ee2db62543 --- /dev/null +++ b/extra/usb_serial/50-google-serial.rules @@ -0,0 +1,14 @@ +# +# Match a Google device with an interface that supports the simple serial +# driver. +# +# The first rule matches the google VID and records the product name, USB bus +# number and USB device path (the device path is the list of hub ports between +# the root and the device). This becomes a unique name under which the second +# rule creates the symlinks to the serial devices. The second rule will only +# fire if the .GOOGLE_CCD_NAME variable has been set by the first rule. If +# some other udev rule has set the same name previously, there would be a +# conflict, so this name is chosen to be verbose and likely unique. +# +SUBSYSTEMS=="usb", ATTRS{idVendor}=="18d1", ENV{.GOOGLE_CCD_NAME}="$attr{product}-$attr{busnum}-$attr{devpath}" +SUBSYSTEMS=="usb", ENV{.GOOGLE_CCD_NAME}!="", ATTRS{bInterfaceClass}=="ff", ATTRS{bInterfaceSubClass}=="50", ATTRS{bInterfaceProtocol}=="01", OPTIONS+="string_escape=replace", SYMLINK+="google/$env{.GOOGLE_CCD_NAME}/serial/$attr{interface}" |