diff --git a/doc/configuration.rst b/doc/configuration.rst index 4a81d70cf..d3cb73dc9 100644 --- a/doc/configuration.rst +++ b/doc/configuration.rst @@ -109,12 +109,15 @@ This allows identification through hot-plugging or rebooting. USBSerialPort: match: ID_SERIAL_SHORT: 'P-00-00682' + ID_USB_INTERFACE_NUM: '00' speed: 115200 -The example would search for a USB serial converter with the key -``ID_SERIAL_SHORT`` and the value ``P-00-00682`` and use it with a baud rate -of ``115200``. -The ``ID_SERIAL_SHORT`` property is set by the ``usb_id`` builtin helper program. +The example would search for a USB serial converter with a given serial number +(``ID_SERIAL_SHORT`` = ``P-00-00682``) and use first interface +(``ID_USB_INTERFACE_NUM`` = ``00``) with a baud rate of 115200. + +The ``ID_SERIAL_SHORT`` and ``ID_USB_INTERFACE_NUM`` properties are set by the +``usb_id`` builtin helper program. Arguments: - match (dict): key and value pairs for a udev match, see `udev Matching`_ diff --git a/labgrid/resource/udev.py b/labgrid/resource/udev.py index f66a0ed21..0b4354bca 100644 --- a/labgrid/resource/udev.py +++ b/labgrid/resource/udev.py @@ -91,12 +91,22 @@ def suggest_match(self, device): suggestions.append({'@ID_PATH': path}) serial = self.device.properties.get('ID_SERIAL_SHORT') + interface_num = self.device.properties.get('ID_USB_INTERFACE_NUM') if serial: - suggestions.append({'ID_SERIAL_SHORT': serial}) + if interface_num is not None: + suggestions.append({'ID_SERIAL_SHORT': serial, + 'ID_USB_INTERFACE_NUM': interface_num}) + else: + suggestions.append({'ID_SERIAL_SHORT': serial}) elif self.match.get('@SUBSYSTEM', None) == 'usb': serial = self._get_usb_device().properties.get('ID_SERIAL_SHORT') + interface_num = self._get_usb_device().properties.get('ID_USB_INTERFACE_NUM') if serial: - suggestions.append({'@ID_SERIAL_SHORT': serial}) + if interface_num is not None: + suggestions.append({'@ID_SERIAL_SHORT': serial, + '@ID_USB_INTERFACE_NUM': interface_num}) + else: + suggestions.append({'@ID_SERIAL_SHORT': serial}) return meta, suggestions