Hey,

> I've been working on integrating the Telit ME910G1 into our platform and have 
> found some interesting behavior that I wanted to share and ask for some 
> feedback:
>
> USB Composition
> The USB composition for the device is:
>
>       0x110a: 3 reduced ACM devices. The composition also 1 rmnet adapter, 
> but it can’t be used for data calls, just for controlling the device
>
> The kernel I am running does not have support for the qmi_wwan driver for 
> this ID, so by default I only got the ttyUSBX devices. As a result, 
> ModemManager defaulted to using PPP for setting up the connection. This 
> worked perfectly fine. I haven't used PPP much since our other modems support 
> qmi. We are using OpenWRT and I did find that the pppd setup scripts create a 
> default route with no metric when the interface comes up. Since the 
> ModemManager Luci page supports metrics, I wanted to have this functionality. 
> I created a custom ppp-up script to get called by pppd that gets the metric 
> via uci get and adds that via json_add_int. It's not the cleanest approach, 
> so I would be curious if anyone else has faced an issue like this?
>
> I then wanted to have the cdc-wdm interface available for getting signal info 
> while the interface is up. Adding support in runtime with:
>
>  echo "1bc7 110a" > /sys/bus/usb/drivers/qmi_wwan/new_id
>
> worked, and I was able to use qmicli to query the modem. The issue is, 
> however, that ModemManager then wanted to use the qmi interface for setting 
> up the interface. I think I would like to force ModemManager to use PPP in 
> this specific instance (maybe I can change the primary port to ttyUSB?). I 
> haven't experienced a modem with this "partial" rmnet adapter, I'm assuming 
> it's not very common, so I'm not exactly sure what an ideal ModemManager 
> behavior would be but it seems like an interesting problem to solve.
>

If you want ModemManager to use the TTY ports exclusively, and ignore
the QMI port, you can flag the QMI ports with the ID_MM_PORT_IGNORE
udev tag (in OpenWRT ModemManager ships with a minimal udev rules
parser).

Something like this (untested):
# vim /lib/udev/rules.d/78-mm-custom.rules
ACTION!="add|change|move|bind", GOTO="mm_custom_rules_end"
ATTRS{idVendor}=="1bc7", ATTRS{idProduct}=="110a",
SUBSYSTEM=="usbmisc", ENV{ID_MM_PORT_IGNORE}="1"
LABEL="mm_custom_rules_end"

-- 
Aleksander
https://aleksander.es
_______________________________________________
ModemManager-devel mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/modemmanager-devel

Reply via email to