<div dir="ltr"><div class="gmail_default" style="font-family:arial,helvetica,sans-serif">By chance I have another Ubuntu machine, which is 17.04 while the main one is 16.10, not sure that this matters, and in this one IS_USB_INTERFACE_NUM is correctly defined :|</div></div><div class="gmail_extra"><br><div class="gmail_quote">On 3 May 2017 at 17:08, Dan Williams <span dir="ltr"><<a href="mailto:dcbw@redhat.com" target="_blank">dcbw@redhat.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="HOEnZb"><div class="h5">On Wed, 2017-05-03 at 14:55 +0200, Aleksander Morgado wrote:<br>
> On Wed, May 3, 2017 at 2:09 PM, Carlo Lobrano <<a href="mailto:c.lobrano@gmail.com">c.lobrano@gmail.com</a>><br>
> wrote:<br>
> > > > > When using the "udev" backend, which you are, the property<br>
> > > > > isn't<br>
> > > > > "loaded" or "stored" anywhere in our code. We directly look<br>
> > > > > for the<br>
> > > > > property in the GUdevDevice underneath.<br>
> > > > ><br>
> > > > > Could you run udevadm info in the port to see if<br>
> > > > > ID_USB_INTERFACE_NUM<br>
> > > > > is<br>
> > > > > set?<br>
> > > ><br>
> > > > Oh, I see now.<br>
> > > > The property is actually unset. Is there anything else I can do<br>
> > > > to have<br>
> > > > this<br>
> > > > information?<br>
> > > ><br>
> > > > $ udevadm info /dev/ttyACM0<br>
> > > > P:<br>
> > > ><br>
> > > > /devices/pci0000:00/0000:00:<wbr>14.0/usb3/3-3/3-3.2/3-3.2.4/3-<br>
> > > > <a href="http://3.2.4.3/3-3.2.4.3:1.0/tty/ttyACM0" rel="noreferrer" target="_blank">3.2.4.3/3-3.2.4.3:1.0/tty/<wbr>ttyACM0</a><br>
> > > > N: ttyACM0<br>
> > > > E: DEVNAME=/dev/ttyACM0<br>
> > > > E:<br>
> > > ><br>
> > > > DEVPATH=/devices/pci0000:00/<wbr>0000:00:14.0/usb3/3-3/3-3.2/3-<br>
> > > > 3.2.4/3-3.2.4.3/3-3.2.4.3:1.0/<wbr>tty/ttyACM0<br>
> > > > E: ID_MM_CANDIDATE=1<br>
> > > > E: ID_MM_TELIT_PORTS_TAGGED=1<br>
> > > > E: ID_MM_TELIT_TAGGED=1<br>
> > > > E: MAJOR=166<br>
> > > > E: MINOR=0<br>
> > > > E: SUBSYSTEM=tty<br>
> > > > E: TAGS=:systemd:<br>
> > > > E: USEC_INITIALIZED=75726372964<br>
> > ><br>
> > > Do you have a /lib/udev/rules.d/60-serial.<wbr>rules in your system<br>
> > > that<br>
> > > sets ID_USB_INTERFACE_NUM? Maybe we shouldn't rely on having<br>
> > > that?<br>
> > ><br>
> ><br>
> > No, I do not have that 60-serial.rules file, but I did obtained the<br>
> > result I<br>
> > wanted adding the following rule to 77-mm-telit-port-types.rules<br>
> ><br>
> > SUBSYSTEMS=="usb", ATTRS{bInterfaceNumber}=="?*",<br>
> > ENV{ID_USB_INTERFACE_NUM}="$<wbr>attr{bInterfaceNumber}"<br>
><br>
> We need to fix this; we shouldn't be relying on a systemd property. I<br>
> originally thought this was provided by udev itself... although with<br>
> the systemd/udev development being done together, it may actually be<br>
> a<br>
> packaging decision; no idea.<br>
<br>
</div></div>I think it originally was a udev property.  And I see it's still<br>
provided by systemd-udev, so I'd expect it to be present if udev is<br>
installed...<br>
<span class="HOEnZb"><font color="#888888"><br>
Dan<br>
</font></span><div class="HOEnZb"><div class="h5"><br>
> One option would be to define ID_MM_USB_INTERFACE_NUM in all plugin<br>
> udev rules (telit, option, huawei, cinterion), and update the plugins<br>
> source code to use the new ID_MM_ prefixed property.<br>
><br>
> Another option would be to provide a common rules file that is run<br>
> before all the others and defines ID_MM_USB_INTERFACE_NUM for all<br>
> plugins... we could have a 77-mm-serial.rules file and rename all<br>
> plugin rules to 78-mm-...<br>
><br>
> What do you think?<br>
><br>
</div></div></blockquote></div><br></div>