<div dir="ltr"><div class="gmail_default" style="font-family:arial,helvetica,sans-serif"><span style="font-family:arial,sans-serif">On 3 May 2017 at 14:55, Aleksander Morgado </span><span dir="ltr" style="font-family:arial,sans-serif"><<a href="mailto:aleksander@aleksander.es" target="_blank">aleksander@aleksander.es</a>></span><span style="font-family:arial,sans-serif"> wrote:</span><br></div><div class="gmail_extra"><div class="gmail_quote"><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, May 3, 2017 at 2:09 PM, Carlo Lobrano <<a href="mailto:c.lobrano@gmail.com">c.lobrano@gmail.com</a>> wrote:<br>
>> >> When using the "udev" backend, which you are, the property isn't<br>
>> >> "loaded" or "stored" anywhere in our code. We directly look for the<br>
>> >> property in the GUdevDevice underneath.<br>
>> >><br>
>> >> Could you run udevadm info in the port to see if 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 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-<wbr><a href="http://3.2.4.3/3-3.2.4.3:1.0/tty/">3.2.4.3/3-3.2.4.3:1.0/tty/</a><wbr>ttyACM0<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-<wbr>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 that<br>
>> sets ID_USB_INTERFACE_NUM? Maybe we shouldn't rely on having that?<br>
>><br>
><br>
> No, I do not have that 60-serial.rules file, but I did obtained the 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>
</div></div>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 a<br>
packaging decision; no idea.<br>
<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>
<span class="HOEnZb"><font color="#888888"><br></font></span></blockquote><div><br></div><div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif">​If the rule is the same for all the plugins (i.e. the one I wrote above), I'd go with​ the single file 77-mm-serial.rules. Eventually, each plugin can than adjust the behavior in its 78-mm... rule file</div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="HOEnZb"><font color="#888888">
--<br>
Aleksander<br>
<a href="https://aleksander.es" rel="noreferrer" target="_blank">https://aleksander.es</a><br>
</font></span></blockquote></div><br></div></div>