MMKernelDevice ID_USB_INTERFACE_NUM property isn't set anymore

Aleksander Morgado aleksander at aleksander.es
Wed May 3 12:55:33 UTC 2017


On Wed, May 3, 2017 at 2:09 PM, Carlo Lobrano <c.lobrano at gmail.com> wrote:
>> >> When using the "udev" backend, which you are, the property isn't
>> >> "loaded" or "stored" anywhere in our code. We directly look for the
>> >> property in the GUdevDevice underneath.
>> >>
>> >> Could you run udevadm info in the port to see if ID_USB_INTERFACE_NUM
>> >> is
>> >> set?
>> >
>> > Oh, I see now.
>> > The property is actually unset. Is there anything else I can do to have
>> > this
>> > information?
>> >
>> > $ udevadm info /dev/ttyACM0
>> > P:
>> >
>> > /devices/pci0000:00/0000:00:14.0/usb3/3-3/3-3.2/3-3.2.4/3-3.2.4.3/3-3.2.4.3:1.0/tty/ttyACM0
>> > N: ttyACM0
>> > E: DEVNAME=/dev/ttyACM0
>> > E:
>> >
>> > DEVPATH=/devices/pci0000:00/0000:00:14.0/usb3/3-3/3-3.2/3-3.2.4/3-3.2.4.3/3-3.2.4.3:1.0/tty/ttyACM0
>> > E: ID_MM_CANDIDATE=1
>> > E: ID_MM_TELIT_PORTS_TAGGED=1
>> > E: ID_MM_TELIT_TAGGED=1
>> > E: MAJOR=166
>> > E: MINOR=0
>> > E: SUBSYSTEM=tty
>> > E: TAGS=:systemd:
>> > E: USEC_INITIALIZED=75726372964
>>
>> Do you have a /lib/udev/rules.d/60-serial.rules in your system that
>> sets ID_USB_INTERFACE_NUM? Maybe we shouldn't rely on having that?
>>
>
> No, I do not have that 60-serial.rules file, but I did obtained the result I
> wanted adding the following rule to 77-mm-telit-port-types.rules
>
> SUBSYSTEMS=="usb", ATTRS{bInterfaceNumber}=="?*",
> ENV{ID_USB_INTERFACE_NUM}="$attr{bInterfaceNumber}"

We need to fix this; we shouldn't be relying on a systemd property. I
originally thought this was provided by udev itself... although with
the systemd/udev development being done together, it may actually be a
packaging decision; no idea.

One option would be to define ID_MM_USB_INTERFACE_NUM in all plugin
udev rules (telit, option, huawei, cinterion), and update the plugins
source code to use the new ID_MM_ prefixed property.

Another option would be to provide a common rules file that is run
before all the others and defines ID_MM_USB_INTERFACE_NUM for all
plugins... we could have a 77-mm-serial.rules file and rename all
plugin rules to 78-mm-...

What do you think?

-- 
Aleksander
https://aleksander.es


More information about the ModemManager-devel mailing list