| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
| |
When we detect that the modem is QMI-capable or MBIM-capable, we still
want to be able to use TTYs, for features unsupported by the main
protocols.
So, don't flag all the TTYs as non-AT non-QCDM, let them probe as
usual instead.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
Not all modems support AT command concatenation (e.g. u-blox TOBY-L4
doesn't, according to a specific note about it in the AT command
reference). So just skip concatenation in the few places where it's
used.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The TOBY-L2 allowed to skup the user/pass string fields when no
authentication was requested, but according to the AT command
reference, all the remaining u-blox modules do require these two
fields given always (e.g. just as empty strings).
As per this sequence in a TOBY-L4:
(ttyACM2): --> 'AT+UAUTHREQ=?<CR>'
(ttyACM2): <-- '<CR><LF>+UAUTHREQ: (1-4),(0-2),,<CR><LF><CR><LF>OK<CR><LF>'
(ttyACM2): --> 'AT+UAUTHREQ=1,0<CR>'
(ttyACM2): <-- '<CR><LF>+CME ERROR: 4<CR><LF>'
It should have been: AT+UAUTHREQ=1,0,"",""
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
If we're going to overwrite the timezone context, make sure everything
is cleaned up, including the signal handler. Otherwise, we may end up
running the signal handler without a context attached:
(gdb) bt
#0 network_timezone_state_changed (self=0x6aa1e8) at mm-iface-modem-time.c:266
#1 0x76a8d418 in g_closure_invoke (closure=0x6c9810, return_value=0x0, return_value@entry=0x1, n_param_values=2, param_values=0x7edb58c0, param_values@entry=0x6cdab8,
invocation_hint=invocation_hint@entry=0x7edb585c) at gclosure.c:804
#2 0x76a9e674 in signal_emit_unlocked_R (node=node@entry=0x6794d0, detail=0, detail@entry=391, instance=instance@entry=0x6aa1e8, emission_return=0x6794a8, emission_return@entry=0x0,
instance_and_params=instance_and_params@entry=0x7edb58c0) at gsignal.c:3629
#3 0x76aa31f4 in g_signal_emit_valist (instance=instance@entry=0x6aa1e8, signal_id=signal_id@entry=1, detail=detail@entry=6767564, var_args=..., var_args@entry=...) at gsignal.c:3385
#4 0x76aa34ec in g_signal_emit (instance=instance@entry=0x6aa1e8, signal_id=signal_id@entry=1, detail=391) at gsignal.c:3441
#5 0x76a91698 in g_object_dispatch_properties_changed (object=0x6aa1e8, n_pspecs=1, pspecs=<optimized out>) at gobject.c:1062
#6 0x76a90e7c in g_object_notify_queue_thaw (object=object@entry=0x6aa1e8, nqueue=nqueue@entry=0x75409418) at gobject.c:296
#7 0x76a9470c in g_object_set_valist (object=object@entry=0x6aa1e8, first_property_name=first_property_name@entry=0xad566 "iface-modem-state", var_args=..., var_args@entry=...) at gobject.c:2171
#8 0x76a94b18 in g_object_set (_object=_object@entry=0x6aa1e8, first_property_name=0xad566 "iface-modem-state") at gobject.c:2275
#9 0x0004b8a4 in __iface_modem_update_state_internal (self=0x6aa1e8, new_state=MM_MODEM_STATE_DISABLED, reason=MM_MODEM_STATE_CHANGE_REASON_USER_REQUESTED, failed_reason=MM_MODEM_STATE_FAILED_REASON_NONE)
at mm-iface-modem.c:1487
#10 0x0007047c in disabling_context_free (ctx=0x6ba850) at mm-broadband-modem.c:9053
#11 0x76b4e538 in g_task_finalize (object=0x682488) at gtask.c:636
#12 0x76a92800 in g_object_unref (_object=0x682488) at gobject.c:3183
#13 0x00072154 in iface_modem_disable_ready (self=0x6aa1e8, result=0x7011b0, task=0x682488) at mm-broadband-modem.c:9101
#14 0x76b4e6ec in g_task_return_now (task=0x7011b0) at gtask.c:1107
#15 0x76b4e720 in complete_in_idle_cb (task=0x7011b0) at gtask.c:1121
#16 0x7694d144 in g_main_dispatch (context=0x6765a8) at gmain.c:3154
#17 g_main_context_dispatch (context=context@entry=0x6765a8) at gmain.c:3769
#18 0x7694d40c in g_main_context_iterate (context=0x6765a8, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at gmain.c:3840
#19 0x7694d838 in g_main_loop_run (loop=0x6750d0) at gmain.c:4034
#20 0x0002bec0 in main (argc=<optimized out>, argv=<optimized out>) at main.c:181
|
|
|
|
|
|
| |
The problem of full vendor blacklist are hubs.
Because ATTRS{} matches all devices in the tree,
a modem connected to a OpenMoko hub will be blacklisted as well.
|
|
|
|
| |
Fix the comment.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
==8663== 1 bytes in 1 blocks are definitely lost in loss record 5 of 4,864
==8663== at 0x4C2CEDF: malloc (vg_replace_malloc.c:299)
==8663== by 0x669FAC9: g_malloc (in /usr/lib/libglib-2.0.so.0.5600.1)
==8663== by 0x66B9AEA: g_strndup (in /usr/lib/libglib-2.0.so.0.5600.1)
==8663== by 0x66ACE52: g_match_info_fetch (in /usr/lib/libglib-2.0.so.0.5600.1)
==8663== by 0x4E96DD2: mm_location_gps_raw_add_trace (mm-location-gps-raw.c:208)
==8663== by 0x18721E: mm_iface_modem_location_gps_update (mm-iface-modem-location.c:264)
==8663== by 0x1B9C7F: loc_location_nmea_indication_cb (mm-shared-qmi.c:712)
==8663== by 0x640C9E7: g_cclosure_marshal_VOID__BOXEDv (in /usr/lib/libgobject-2.0.so.0.5600.1)
==8663== by 0x6409C95: ??? (in /usr/lib/libgobject-2.0.so.0.5600.1)
==8663== by 0x64259E8: g_signal_emit_valist (in /usr/lib/libgobject-2.0.so.0.5600.1)
==8663== by 0x642612F: g_signal_emit (in /usr/lib/libgobject-2.0.so.0.5600.1)
==8663== by 0x54AAB2D: process_indication (qmi-loc.c:7454)
Reported by: Thomas Weißschuh <thomas@weissschuh.net>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
ModemManager[18223]: <debug> [1530023432.028473] Modem has 3GPP capabilities, enabling the Modem 3GPP interface...
Thread 1 "ModemManager" received signal SIGSEGV, Segmentation fault.
0x0000555555618baa in common_enable_disable_unsolicited_events_signal_strength (task=0x5555558e4440) at mm-broadband-modem-qmi.c:6545
6545 if (ctx->enable)
(gdb) bt
#0 0x0000555555618baa in common_enable_disable_unsolicited_events_signal_strength (task=0x5555558e4440) at mm-broadband-modem-qmi.c:6545
#1 0x0000555555618d70 in common_enable_disable_unsolicited_events (self=0x55555597a3f0, enable=1, callback=0x5555555c8c20 <enable_unsolicited_events_ready>, user_data=0x5555559779b0)
at mm-broadband-modem-qmi.c:6719
#2 0x0000555555618e5b in modem_3gpp_enable_unsolicited_events (self=0x55555597a3f0, callback=0x5555555c8c20 <enable_unsolicited_events_ready>, user_data=0x5555559779b0) at mm-broadband-modem-qmi.c:6749
#3 0x00005555555c9095 in interface_enabling_step (task=0x5555559779b0) at mm-iface-modem-3gpp.c:1907
#4 0x00005555555c8c0a in setup_unsolicited_events_ready (self=0x55555597a3f0, res=0x5555558efad0, task=0x5555559779b0) at mm-iface-modem-3gpp.c:1795
#5 0x00007ffff681e204 in () at /usr/lib/libgio-2.0.so.0
#6 0x00007ffff681e239 in () at /usr/lib/libgio-2.0.so.0
#7 0x00007ffff62731d6 in g_main_context_dispatch () at /usr/lib/libglib-2.0.so.0
#8 0x00007ffff62735b1 in () at /usr/lib/libglib-2.0.so.0
#9 0x00007ffff62738e2 in g_main_loop_run () at /usr/lib/libglib-2.0.so.0
#10 0x000055555559182c in main (argc=2, argv=0x7fffffffe4a8) at main.c:181
Fixes: baefe53ab9c0ea0612d2bf7da64b6f6cf9753bcd
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
After the tty is opened, the fd is passed off to a GIOChannel which
manages it. When the serial port is closed with _close_internal(),
g_io_channel_shutdown() is called which then calls g_io_unix_close() which
in turn close()s the fd.
_close_internal() performs a second explicit close() after the
g_io_channel_shutdown() which *in the best case scenario* will fail with
EBADF.
This is a race condition that can result in other file descriptors being
closed.
This change avoids double closing the serial port fd -- the shutdown() call
is removed in favour of the explicit close().
|
|
|
|
|
|
| |
From: Fabio Tomat <f.t.public@gmail.com>
https://gitlab.freedesktop.org/mobile-broadband/ModemManager/issues/42
|
|
|
|
|
| |
musl libc does not implement the canonicalize_file_name() GNU extension.
Use the POSIX standard realpath() instead.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
GVfs' libgvfsdbus.so GIo module, when automatically loaded, attempts to
discover if there's a session D-Bus instance to use. It tries real hard
to get the socket name it would use -- in absence of XDG_RUNTIME_DIR it
decides to make it up with user's home directory. When HOME is unset
too, it just tries to figure it out by looking into /etc/passwd. Which
upsets SELinux that would better not see us looking into it.
We trigger the load of the GIo modules, by using the GFile API to access
the the ports in /dev. They're utterly uesless to us, but there doesn't
seem to be a way to disable their load. Oh well.
For now, let's just ensure HOME is set and the problematic path in glib
is not taken.
|
|
|
|
|
| |
The mm_call_list_add_call() takes a full reference to the call, so we
can unref the original one safely.
|
| |
|
|
|
|
|
| |
They were reversed; ringing in applies to incoming calls, ringing out
applies to outgoing calls.
|
| |
|
|
|
|
|
|
|
|
| |
Commit 2a97e39cdd in libmim ("libmbim-glib: add additional cause codes
to MbimNwError") added additional cause codes to MbimNwError. This
patch maps some of those MbimNwError to MMMobileEquipmentError.
This patch requires libmbim >= 1.17.1
|
|
|
|
|
|
|
| |
assure_qmi_client() was created to help migrating MMBroadbandModemQmi code
to use GTask. Now that all MMBroadbandModemQmi code has been migrated to
use GTask, this patch removes the old ensure_qmi_client() and rename
assure_qmi_client() as ensure_qmi_client().
|
| |
|
| |
|
| |
|
|
|
|
| |
use GTask
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
use GTask
|
|
|
|
| |
GTask
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
modem_3gpp_{enable,disable}_unsolicited_registration_events to use GTask
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
common_setup_cleanup_unsolicited_registration_events to use GTask
|
|
|
|
| |
to use GTask
|
| |
|
| |
|