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