Age | Commit message (Collapse) | Author |
|
We will explicitly query for +AUTOCSQ and +CNSMOD support before
trying to enable them.
If +AUTOCSQ is supported and correctly enabled, we'll request signal
quality polling to be disabled.
If +CNSMOD is supported and correctly enabled, we'll request access
technology polling to be disabled.
|
|
Same as with the signal quality polling, we may want to disable
explicitly the access technology polling if we can rely on plugin
specific URCs for this purpose.
|
|
E.g. if we have a specific command to enable the signal quality URCs,
we should only disable polling if the command is supported by the
specific modem and the command succeeds. If unsupported or fails, we
shouldn't disable the polling.
|
|
The +AUTOCSQ setup enables automatic signal quality reporting via +CSQ
URCs, which unfortunately have the same format as the +CSQ command
responses.
Therefore, we need to subclass load_signal_quality() explicitly in
order to ignore those cases where the response to the +CSQ command is
received empty (already processed as a URC).
|
|
If we're loading signal quality or access technology, skip reporting
any error message if the specific error received is 'in-progress'.
Plugins will use this error when they cannot process the response to
the operation, e.g. if it was already consumed by a URC handler.
|
|
|
|
The logic to setup the generic +CIND indications in the SIM7600E seems
to end up breaking connectivity when in TTY+PPP mode. If we issue the
AT+CMER=3,0,0,1 command, this will end up in the modem not replying a
correct CONNECT response to the ATD command.
Let's disable these +CIND indications completely in the simtech
plugin, as there is even no AT command reference saying those are
supported.
Fixes https://gitlab.freedesktop.org/mobile-broadband/ModemManager/issues/144
|
|
Not all modems support correctly +CIND URCs and +CMER settings.
|
|
The new logic is available in a new 'MMSharedSimtech' interface which
is implemented both by the generic AT-based MMBroadbandModemSimtech
modem, and by a new QMI-based new MMBroadbandModemQmiSimtech.
Fixes https://gitlab.freedesktop.org/mobile-broadband/ModemManager/issues/112
|
|
E.g. the SIM7600E shows up as:
P: Vendor=1e0e ProdID=9001 Rev=03.18
S: Manufacturer=SimTech, Incorporated
S: Product=SimTech, Incorporated
S: SerialNumber=0123456789ABCDEF
C: #Ifs= 6 Cfg#= 1 Atr=a0 MxPwr=500mA
I: If#=0x0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=option
I: If#=0x1 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
I: If#=0x2 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
I: If#=0x3 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
I: If#=0x4 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
I: If#=0x5 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=qmi_wwan
|
|
The plugin already has a VID filter for 0x1e0e, this tag is useless.
|
|
Fixes https://gitlab.freedesktop.org/mobile-broadband/ModemManager/issues/113
|
|
|
|
|
|
If the manufacturer uses QMI unique IDs in ASCII, use the same format
in our APIs, instead of blindly converting them to a 16-byte HEX
string.
This makes user operations much nicer, e.g. instead of:
$ sudo mmcli -m 0 --firmware-list
----------------
Firmware | list: 02.20.03.00_GENERIC
| current: yes
| gobi pri unique id: 3030322E3031375F3030300000000000
| gobi modem unique id: 3F5F3F00000000000000000000000000
| 02.14.03.02_SPRINT
| current: no
| gobi pri unique id: 3030322E3031325F3030310000000000
| gobi modem unique id: 3F5F3F00000000000000000000000000
| 02.20.03.22_VERIZON
| current: no
| gobi pri unique id: 3030322E3032365F3030300000000000
| gobi modem unique id: 3F5F3F00000000000000000000000000
| 02.14.03.00_VODAFONE
| current: no
| gobi pri unique id: 3030302E3030385F3030300000000000
| gobi modem unique id: 3F5F3F00000000000000000000000000
We will have:
$ sudo mmcli -m 1 --firmware-list
----------------
Firmware | list: 02.20.03.00_GENERIC
| current: no
| gobi pri unique id: 002.017_000
| gobi modem unique id: ?_?
| 02.14.03.02_SPRINT
| current: no
| gobi pri unique id: 002.012_001
| gobi modem unique id: ?_?
| 02.20.03.22_VERIZON
| current: yes
| gobi pri unique id: 002.026_000
| gobi modem unique id: ?_?
| 02.14.03.00_VODAFONE
| current: no
| gobi pri unique id: 000.008_000
| gobi modem unique id: ?_?
|
|
unsupported
|
|
|
|
|
|
Since 02.20.xx.xx, the 'index_of_running_image' reported for MODEM
images is wrong.
https://forum.sierrawireless.com/t/mc74xx-wrong-running-image-in-qmi-get-stored-images/8998
|
|
|
|
We have deprecated the use of MM_CORE_ERROR_CANCELLED inside the
daemon in favor of using G_IO_ERROR_CANCELLED right away, and so, we
will now register G_IO_ERROR_CANCELLED as the error mapped to the
"Cancelled" error in the ModemManager error domain in DBus.
We therefore avoid sending unknown/unmapped errors via DBus, as in
this case:
$ sudo ./test.sh
error: couldn't connect the modem: 'GDBus.Error:org.gtk.GDBus.UnmappedGError.Quark._g_2dio_2derror_2dquark.Code19: Operation was cancelled'
successfully disconnected all bearers in the modem
error: couldn't connect the modem: 'GDBus.Error:org.gtk.GDBus.UnmappedGError.Quark._g_2dio_2derror_2dquark.Code19: Operation was cancelled'
successfully disconnected all bearers in the modem
successfully disconnected all bearers in the modem
error: couldn't connect the modem: 'GDBus.Error:org.gtk.GDBus.UnmappedGError.Quark._g_2dio_2derror_2dquark.Code19: Operation was cancelled'
successfully disconnected all bearers in the modem
error: couldn't connect the modem: 'GDBus.Error:org.gtk.GDBus.UnmappedGError.Quark._g_2dio_2derror_2dquark.Code19: Operation was cancelled'
successfully disconnected all bearers in the modem
error: couldn't connect the modem: 'GDBus.Error:org.gtk.GDBus.UnmappedGError.Quark._g_2dio_2derror_2dquark.Code19: Operation was cancelled'
error: couldn't connect the modem: 'GDBus.Error:org.freedesktop.ModemManager1.Error.Core.Cancelled: Connection attempt cancelled'
successfully disconnected all bearers in the modem
error: couldn't connect the modem: 'GDBus.Error:org.gtk.GDBus.UnmappedGError.Quark._g_2dio_2derror_2dquark.Code19: Operation was cancelled'
successfully disconnected all bearers in the modem
successfully disconnected all bearers in the modem
error: couldn't connect the modem: 'GDBus.Error:org.gtk.GDBus.UnmappedGError.Quark._g_2dio_2derror_2dquark.Code19: Operation was cancelled'
error: couldn't connect the modem: 'GDBus.Error:org.freedesktop.ModemManager1.Error.Core.Cancelled: Connection attempt cancelled'
successfully disconnected all bearers in the modem
error: couldn't connect the modem: 'GDBus.Error:org.gtk.GDBus.UnmappedGError.Quark._g_2dio_2derror_2dquark.Code19: Operation was cancelled'
successfully disconnected all bearers in the modem
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
The Simple.Disconnect() method handler was totally broken when a
specific bearer path was given, because the user-provided bearer path
was never being stored in the DisconnectionContext struct...
This is an extremely bad error, but it also gives us an indication
that no one is really using this method to disconnect one single
bearer, mainly because we also have the Bearer.Disconnect() method,
which makes more sense. mmcli didn't even allow passing a bearer path
to --simple-disconnect.
|
|
|
|
|
|
|
|
$ sudo mmcli --call 1 --hangup
error: couldn't find sms at '/org/freedesktop/ModemManager1/Call/1': 'no modems found'
(cherry picked from commit e71a4282db94f8f18b5884fe7966b95febc18a6d)
|
|
|
|
|
|
|
|
The Firmware policy is always 'auth_admin'.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
There is no DBus API for SetAllowedModes, but only for SetCurrentModes.
|
|
|