Understanding Modem Manager
Dan Williams
dcbw at redhat.com
Mon Dec 16 11:28:16 PST 2013
On Mon, 2013-12-16 at 19:37 +0100, Aleksander Morgado wrote:
> Hey,
>
> On 16/12/13 19:24, Marc Murphy wrote:
> > I have now updated qmi and net/ethernet to support the updated qmi_wwan. There were some device IDs missing with one of them being the Huawei device I am using.
> >
>
> Are those device IDs also missing in the latest kernel sources? Could
> you share the patch you used to see if they need to be reported?
>
>
> > On kernel init it finds the device now;
> > qmi_wwan 1-1.1:1.1: wwan0: register 'qmi_wwan' at usb-ehci-omap.0-1.1, WWAN/QMI device, f6:4b:e3:c2:0a:ff
> >
> > and there is an uninitialized wwan0 interface;
> > wwan0 Link encap:Ethernet HWaddr F6:4B:E3:C2:0A:FF
> > BROADCAST MULTICAST MTU:1500 Metric:1
> > RX packets:0 errors:0 dropped:0 overruns:0 frame:0
> > TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
> > collisions:0 txqueuelen:1000
> > RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
> >
> >
> > Starting ModemManager with debug it identifies the modem and attempts to use qmi;
> >
> > ModemManager[899]: <info> [946685397.613443] [mm-plugin-manager.c:481] build_plugins_list(): (Plugin Manager) [cdc-wdm0] Found '2' plugins to try...
> > ModemManager[899]: <info> [946685397.613626] [mm-plugin-manager.c:485] build_plugins_list(): (Plugin Manager) [cdc-wdm0] Will try with plugin 'Huawei'
> > ModemManager[899]: <info> [946685397.613840] [mm-plugin-manager.c:485] build_plugins_list(): (Plugin Manager) [cdc-wdm0] Will try with plugin 'Generic'
> > ModemManager[899]: <debug> [946685397.614114] [mm-plugin.c:725] mm_plugin_supports_port(): (Huawei) [cdc-wdm0] probe required: 'qmi'
> > ModemManager[899]: <info> [946685397.614419] [mm-port-probe.c:1154] mm_port_probe_run(): (usbmisc/cdc-wdm0) launching port probing: 'qmi'
> > ModemManager[899]: <debug> [946685397.951028] [mm-manager.c:449] mm_manager_start(): Finished device scan...
> > ModemManager[899]: <debug> [946685397.952371] [mm-plugin-manager.c:410] plugin_supports_port_ready(): (Plugin Manager) [wwan0] deferring support check until result suggested
> > ModemManager[899]: <info> [946685397.978738] [mm-serial-port.c:857] mm_serial_port_open(): (ttyUSB0) opening serial port...
> > ModemManager[899]: <warn> [946685397.983102] [mm-serial-port.c:414] real_config_fd(): (ttyUSB0): port attributes not fully set
> > ModemManager[899]: <debug> [946685397.983987] [mm-serial-port.c:926] mm_serial_port_open(): (ttyUSB0) device open count is 1 (open)
> > ModemManager[899]: <info> [946685397.986551] [mm-serial-port.c:857] mm_serial_port_open(): (ttyUSB1) opening serial port...
> > ModemManager[899]: <warn> [946685397.988870] [mm-serial-port.c:414] real_config_fd(): (ttyUSB1): port attributes not fully set
> > ModemManager[899]: <debug> [946685397.989450] [mm-serial-port.c:926] mm_serial_port_open(): (ttyUSB1) device open count is 1 (open)
> > ModemManager[899]: <info> [946685397.991647] [mm-serial-port.c:857] mm_serial_port_open(): (ttyUSB2) opening serial port...
> > ModemManager[899]: <warn> [946685397.996377] [mm-serial-port.c:414] real_config_fd(): (ttyUSB2): port attributes not fully set
> > ModemManager[899]: <debug> [946685397.997049] [mm-serial-port.c:926] mm_serial_port_open(): (ttyUSB2) device open count is 1 (open)
> > ModemManager[899]: <debug> [946685397.998453] [mm-port-probe.c:399] wdm_probe_qmi(): (usbmisc/cdc-wdm0) probing QMI...
> > ModemManager[899]: [/dev/cdc-wdm0] Checking version info (10 retries)...
> > ModemManager[899]: [/dev/cdc-wdm0] Sent message...
> > <<<<<< RAW:
> > <<<<<< length = 12
> > <<<<<< data = 01:0B:00:00:00:00:00:01:21:00:00:00
> > ModemManager[899]: [/dev/cdc-wdm0] Sent message (translated)...
> > <<<<<< QMUX:
> > <<<<<< length = 11
> > <<<<<< flags = 0x00
> > <<<<<< service = "ctl"
> > <<<<<< client = 0
> > <<<<<< QMI:
> > <<<<<< flags = "none"
> > <<<<<< transaction = 1
> > <<<<<< tlv_length = 0
> > <<<<<< message = "Get Version Info" (0x0021)
> > ModemManager[899]: <debug> [946685398.220071] [mm-serial-port.c:966] mm_serial_port_close(): (ttyUSB1) device open count is 0 (close)
> > ModemManager[899]: <info> [946685398.220560] [mm-serial-port.c:982] mm_serial_port_close(): (ttyUSB1) closing serial port...
> > ModemManager[899]: <info> [946685398.222574] [mm-serial-port.c:1014] mm_serial_port_close(): (ttyUSB1) serial port closed
> > ModemManager[899]: <info> [946685398.223093] [mm-serial-port.c:1083] mm_serial_port_close_force(): (ttyUSB1) forced to close port
> > ModemManager[899]: <debug> [946685398.223947] [mm-serial-port.c:966] mm_serial_port_close(): (ttyUSB2) device open count is 0 (close)
> > ModemManager[899]: <info> [946685398.224344] [mm-serial-port.c:982] mm_serial_port_close(): (ttyUSB2) closing serial port...
> > ModemManager[899]: <info> [946685398.225839] [mm-serial-port.c:1014] mm_serial_port_close(): (ttyUSB2) serial port closed
> > ModemManager[899]: <info> [946685398.226175] [mm-serial-port.c:1083] mm_serial_port_close_force(): (ttyUSB2) forced to close port
> > ModemManager[899]: [/dev/cdc-wdm0] Received message...
> >>>>>>> >>>>>> RAW:
> >>>>>>> >>>>>> length = 48
> >>>>>>> >>>>>> data = 01:2F:00:80:00:00:01:01:21:00:24:00:02:04:00:00:00:00:00:01:1A:00:05:00:01:00:03:00:01:01:00:05:00:02:01:00:02:00:03:01:00:00:00:E0:00:00:00:00
> > ModemManager[899]: [/dev/cdc-wdm0] Received message (translated)...
> >>>>>>> >>>>>> QMUX:
> >>>>>>> >>>>>> length = 47
> >>>>>>> >>>>>> flags = 0x80
> >>>>>>> >>>>>> service = "ctl"
> >>>>>>> >>>>>> client = 0
> >>>>>>> >>>>>> QMI:
> >>>>>>> >>>>>> flags = "response"
> >>>>>>> >>>>>> transaction = 1
> >>>>>>> >>>>>> tlv_length = 36
> >>>>>>> >>>>>> message = "Get Version Info" (0x0021)
> >>>>>>> >>>>>> TLV:
> >>>>>>> >>>>>> type = "Result" (0x02)
> >>>>>>> >>>>>> length = 4
> >>>>>>> >>>>>> value = 00:00:00:00
> >>>>>>> >>>>>> translated = SUCCESS
> >>>>>>> >>>>>> TLV:
> >>>>>>> >>>>>> type = "Service list" (0x01)
> >>>>>>> >>>>>> length = 26
> >>>>>>> >>>>>> value = 05:00:01:00:03:00:01:01:00:05:00:02:01:00:02:00:03:01:00:00:00:E0:00:00:00:00
> >>>>>>> >>>>>> translated = { [0] = '[ service = 'ctl' major_version = '1' minor_version = '3' ] ' [1] = '[ service = 'wds' major_version = '1' minor_version = '5' ] ' [2] = '[ service = 'dms' major_version = '1' minor_version = '2' ] ' [3] = '[ service = 'nas' major_version = '1' minor_version = '0' ] ' [4] = '[ service = 'cat' major_version = '0' minor_version = '0' ] '}
> > ModemManager[899]: <debug> [946685398.229074] [mm-plugin-manager.c:374] plugin_supports_port_ready(): (Plugin Manager) (Huawei) [ttyUSB1] deferring support check
> > ModemManager[899]: <debug> [946685398.229562] [mm-plugin-manager.c:374] plugin_supports_port_ready(): (Plugin Manager) (Huawei) [ttyUSB2] deferring support check
> > ModemManager[899]: [/dev/cdc-wdm0] QMI Device supports 5 services:
> > ModemManager[899]: [/dev/cdc-wdm0] ctl (1.3)
> > ModemManager[899]: [/dev/cdc-wdm0] wds (1.5)
> > ModemManager[899]: [/dev/cdc-wdm0] dms (1.2)
> > ModemManager[899]: [/dev/cdc-wdm0] nas (1.0)
> > ModemManager[899]: [/dev/cdc-wdm0] cat (0.0)
> > ModemManager[899]: <debug> [946685398.232187] [mm-port-probe.c:253] mm_port_probe_set_result_qmi(): (usbmisc/cdc-wdm0) port is QMI-capable
> > ModemManager[899]: <debug> [946685398.235971] [mm-plugin-manager.c:323] plugin_supports_port_ready(): (Plugin Manager) (Huawei) [cdc-wdm0] found best plugin for port
> > ModemManager[899]: <debug> [946685398.236429] [mm-plugin-manager.c:186] port_probe_context_finished(): (Plugin Manager) (Huawei) [cdc-wdm0]: found best plugin for device (/sys/devices/platform/usbhs_omap/ehci-omap.0/usb1/1-1/1-1.1)
> > ModemManager[899]: <debug> [946685398.236856] [mm-plugin-manager.c:257] suggest_port_probe_result(): (Plugin Manager) (Huawei) [wwan0] deferred task completed, got suggested plugin
> > ModemManager[899]: <debug> [946685398.237192] [mm-plugin-manager.c:283] suggest_port_probe_result(): (Plugin Manager) (Huawei) [ttyUSB2] suggested plugin for port
> > ModemManager[899]: <debug> [946685398.573129] [mm-plugin-manager.c:283] suggest_port_probe_result(): (Plugin Manager) (Huawei) [ttyUSB1] suggested plugin for port
> > ModemManager[899]: <debug> [946685398.573373] [mm-plugin-manager.c:283] suggest_port_probe_result(): (Plugin Manager) (Huawei) [ttyUSB0] suggested plugin for port
> > ModemManager[899]: <debug> [946685398.574045] [mm-at-serial-port.c:392] debug_log(): (ttyUSB0): --> 'AT^CURC=0<CR>'
> > ModemManager[899]: <debug> [946685398.574838] [mm-plugin.c:665] mm_plugin_supports_port(): (Huawei) [wwan0] probing deferred until result suggested
> > ModemManager[899]: <debug> [946685398.575326] [mm-plugin-manager.c:390] plugin_supports_port_ready(): (Plugin Manager) (Huawei) [wwan0] task completed, got suggested plugin
> > ModemManager[899]: <debug> [946685401.175577] [mm-plugin.c:725] mm_plugin_supports_port(): (Huawei) [ttyUSB1] probe required: 'at, qcdm'
> > ModemManager[899]: <info> [946685401.176340] [mm-port-probe.c:1154] mm_port_probe_run(): (tty/ttyUSB1) launching port probing: 'at, qcdm'
> > ModemManager[899]: <debug> [946685401.176828] [mm-plugin.c:725] mm_plugin_supports_port(): (Huawei) [ttyUSB2] probe required: 'at, qcdm'
> > ModemManager[899]: <info> [946685401.177194] [mm-port-probe.c:1154] mm_port_probe_run(): (tty/ttyUSB2) launching port probing: 'at, qcdm'
> > ModemManager[899]: <info> [946685401.178934] [mm-serial-port.c:857] mm_serial_port_open(): (ttyUSB1) opening serial port...
> > ModemManager[899]: <warn> [946685401.181375] [mm-serial-port.c:414] real_config_fd(): (ttyUSB1): port attributes not fully set
> > ModemManager[899]: <debug> [946685401.181955] [mm-serial-port.c:926] mm_serial_port_open(): (ttyUSB1) device open count is 1 (open)
> > ModemManager[899]: <info> [946685401.184152] [mm-serial-port.c:857] mm_serial_port_open(): (ttyUSB2) opening serial port...
> > ModemManager[899]: <warn> [946685401.186472] [mm-serial-port.c:414] real_config_fd(): (ttyUSB2): port attributes not fully set
> > ModemManager[899]: <debug> [946685401.186990] [mm-serial-port.c:926] mm_serial_port_open(): (ttyUSB2) device open count is 1 (open)
> > ModemManager[899]: <debug> [946685401.284616] [mm-serial-port.c:966] mm_serial_port_close(): (ttyUSB1) device open count is 0 (close)
> > ModemManager[899]: <info> [946685401.285074] [mm-serial-port.c:982] mm_serial_port_close(): (ttyUSB1) closing serial port...
> > ModemManager[899]: <info> [946685401.286600] [mm-serial-port.c:1014] mm_serial_port_close(): (ttyUSB1) serial port closed
> > ModemManager[899]: <info> [946685401.286935] [mm-serial-port.c:1083] mm_serial_port_close_force(): (ttyUSB1) forced to close port
> > ModemManager[899]: <debug> [946685401.287607] [mm-plugin-manager.c:368] plugin_supports_port_ready(): (Plugin Manager) (Huawei) [ttyUSB1] deferring support check, suggested: Huawei
> > ModemManager[899]: <debug> [946685401.289011] [mm-serial-port.c:966] mm_serial_port_close(): (ttyUSB2) device open count is 0 (close)
> > ModemManager[899]: <info> [946685401.289438] [mm-serial-port.c:982] mm_serial_port_close(): (ttyUSB2) closing serial port...
> > ModemManager[899]: <info> [946685401.290933] [mm-serial-port.c:1014] mm_serial_port_close(): (ttyUSB2) serial port closed
> > ModemManager[899]: <info> [946685401.291269] [mm-serial-port.c:1083] mm_serial_port_close_force(): (ttyUSB2) forced to close port
> > ModemManager[899]: <debug> [946685401.291879] [mm-plugin-manager.c:368] plugin_supports_port_ready(): (Plugin Manager) (Huawei) [ttyUSB2] deferring support check, suggested: Huawei
> >
>
> It may take a while until it probes all ports. Did you wait enough time?
> I'm assuming that the log continues after the last lines you posted,
> right? Could you leave it running longer and post further logs?
Right, it's waiting for the ttyUSB0 AT^CURC response before continuing
with probing the other ports. The CURC request has a 3 second timeout,
and was sent at 398.57, but the logs stop at 401.29 before the timeout
has triggered. So we certainly need more log output here...
Dan
>
> > If I then try to use nmcli it reports that there are no modems available and because of this NetworkManager cannot try to initialise and connect.
> >
> > Its nearly there just think I need help with the next step please.
> >
>
> Run "mmcli -M" after plugging in the modem. It will monitor new devices
> being exported by ModemManager. Once MM finishes probing all ports in
> the modem, it should expose a modem device. Until then, you cannot use
> 'nmcli'.
>
More information about the ModemManager-devel
mailing list