On Mon, 2017-06-12 at 12:41 +0000, Petr Kloc wrote: > Dear developers. > > > I have a device with embedded Sierra Wireless EM7305 modem. The > device is running custom based linux alongside MS Windows (dualboot). > I am trying to use the full modem capability in linux while retaining > its basic functionality in MS Windows. > > The EM7305 modem has several USB compositions it can be switched to > (see list at the end of the email). Unfortunately switching it to > different composition than the default #14 cause the modem to stop > working in MS Windows. > > By default the modem is switched to Configuration 2 (MBIM only) and > supported by cdc_mbim module. In this state the networking part does > work flawlessly. But I did not find a way how to enable the GPS > functionality.
Yes, the MBIM standard does not define any kind of location API, so we are left with non-standard/proprietary mechanism when the modem supports MBIM. That could be via AT commands if the modem also exposes an AT port, or it could be that we have to reverse-engineer an MBIM proprietary device service. > I can switch the module to Configuration 1 (DM NMEA AT QMI) and use > either qcserial or qmi_wwan module to grab the device. Unfortunately > here I run into problems. The qmi_wwan does grab 3 out of 4 exposed > interfaces, but the ModemManager still claims, that no modem is > present. Can you share ModemManager debug logs when the modem does not work correctly in this configuration? Assuming the modem is always connected, you can run ModemManager like so: sudo ModemManager --debug &> /tmp/mm.log and then attach mm.log to a reply (don't copy and paste into the mail, as that adds line breaks and makes it hard to read...). If you want GPS, then a mode that includes QMI would be easiest for you. ModemManager will then read location details through QMI and provide those for you via the D-Bus interface, eg something like: mmcli -m 0 --location-enable-gps-nmea mmcli -m 0 --location-set-gps-refresh-rate=5 (refresh every 5 seconds) mmcli -m 0 --location-get-gps-nmea (report NMEA traces) Alternatively when you're in this mode, you may be able to use the NMEA port directly by doing what is suggested in: http://www.thinkwiki.org/wiki/Qualcomm_Gobi_2000#GPS Dan > The qcserial module exposes AT command interface and i can issue > commands to the modem. The modem is even recognized and can be > controlled using AT command. Unfortunately an attempt to establish > connection via NetworkManager result in failure and rejection of > successive commands. The logs are also included at the end of this > email. > > I would appreciate any advice how to get both GPS and modem > capability working. > > On the unrelated not I did not manage to find out which kernel module > is responsible for handling the NMEA interface. If I force-load > qcserail, it grabs 3 out of the 4 exposed interfaces, but neither of > the associated device nodes seems to be NMEA port. > > I would appreciate any help on this topic. > > Regards > Petr Kloc > > > > > > > USB compositions: > 0 - HIP DM NMEA AT MDM1 MDM2 MDM3 MS NOT SUPPORTED > 1 - HIP DM NMEA AT MDM1 MS SUPPORTED > 2 - HIP DM NMEA AT NIC1 MS NOT SUPPORTED > 3 - HIP DM NMEA AT MDM1 NIC1 MS NOT SUPPORTED > 4 - HIP DM NMEA AT NIC1 NIC2 NIC3 MS NOT SUPPORTED > 5 - HIP DM NMEA AT ECM1 MS NOT SUPPORTED > 6 - DM NMEA AT QMI SUPPORTED > 7 - DM NMEA AT RMNET1 RMNET2 RMNET3 SUPPORTED > 8 - DM NMEA AT MBIM SUPPORTED > 9 - MBIM SUPPORTED > 10 - NMEA MBIM SUPPORTED > 11 - DM MBIM SUPPORTED > 12 - DM NMEA MBIM SUPPORTED > 13 - Config1: comp6 Config2: comp8 NOT SUPPORTED > * 14 - Config1: comp6 Config2: comp9 SUPPORTED > 15 - Config1: comp6 Config2: comp10 NOT SUPPORTED > 16 - Config1: comp6 Config2: comp11 NOT SUPPORTED > 17 - Config1: comp6 Config2: comp12 NOT SUPPORTED > 18 - Config1: comp7 Config2: comp8 NOT SUPPORTED > 19 - Config1: comp7 Config2: comp9 SUPPORTED > 20 - Config1: comp7 Config2: comp10 NOT SUPPORTED > 21 - Config1: comp7 Config2: comp11 NOT SUPPORTED > 22 - Config1: comp7 Config2: comp12 NOT SUPPORTED > > > ModemManager --debug log part: > ModemManager[1463]: <info> [1497037357.892382] [mm-iface-modem- > simple.c:641] connect_auth_ready(): Simple connect started... > ModemManager[1463]: <debug> [1497037357.892412] [mm-iface-modem- > simple.c:651] connect_auth_ready(): PIN: unspecified > ModemManager[1463]: <debug> [1497037357.892423] [mm-iface-modem- > simple.c:653] connect_auth_ready(): Operator ID: unspecified > ModemManager[1463]: <debug> [1497037357.892434] [mm-iface-modem- > simple.c:655] connect_auth_ready(): Allowed roaming: yes > ModemManager[1463]: <debug> [1497037357.892444] [mm-iface-modem- > simple.c:657] connect_auth_ready(): APN: internet.t-mobile.cz > ModemManager[1463]: <debug> [1497037357.892458] [mm-iface-modem- > simple.c:662] connect_auth_ready(): IP family: ipv4v6 > ModemManager[1463]: <debug> [1497037357.892470] [mm-iface-modem- > simple.c:673] connect_auth_ready(): Allowed authentication: > unspecified > ModemManager[1463]: <debug> [1497037357.892499] [mm-iface-modem- > simple.c:675] connect_auth_ready(): User: unspecified > ModemManager[1463]: <debug> [1497037357.892511] [mm-iface-modem- > simple.c:677] connect_auth_ready(): Password: unspecified > ModemManager[1463]: <debug> [1497037357.892528] [mm-iface-modem- > simple.c:679] connect_auth_ready(): Number: *99# > ModemManager[1463]: <info> [1497037357.892537] [mm-iface-modem- > simple.c:469] connection_step(): Simple connect state (4/8): Wait to > get fully enabled > ModemManager[1463]: <info> [1497037357.892581] [mm-iface-modem- > simple.c:478] connection_step(): Simple connect state (5/8): Register > ModemManager[1463]: <debug> [1497037357.892607] [mm-iface-modem- > 3gpp.c:400] mm_iface_modem_3gpp_register_in_network(): Already > registered in network '23001', automatic registration not launched... > ModemManager[1463]: <info> [1497037357.892631] [mm-iface-modem- > simple.c:501] connection_step(): Simple connect state (6/8): Bearer > ModemManager[1463]: <debug> [1497037357.892645] [mm-iface-modem- > simple.c:521] connection_step(): Creating new bearer... > ModemManager[1463]: <debug> [1497037357.892656] [mm-broadband- > modem.c:297] modem_create_bearer(): Creating Broadband bearer in > broadband modem > ModemManager[1463]: <debug> [1497037357.892878] [mm-port- > serial.c:1292] mm_port_serial_open(): (ttyUSB1) device open count is > 2 (open) > ModemManager[1463]: <debug> [1497037357.892902] [mm-port- > serial.c:1349] _close_internal(): (ttyUSB1) device open count is 1 > (close) > ModemManager[1463]: <debug> [1497037357.892950] [mm-broadband- > modem.c:258] modem_create_bearer_finish(): New bearer created at DBus > path '/org/freedesktop/ModemManager1/Bearer/0' > ModemManager[1463]: <info> [1497037357.893053] [mm-iface-modem- > simple.c:583] connection_step(): Simple connect state (7/8): Connect > ModemManager[1463]: <debug> [1497037357.893076] [mm-base- > bearer.c:703] mm_base_bearer_connect(): Connecting bearer > '/org/freedesktop/ModemManager1/Bearer/0' > ModemManager[1463]: <info> [1497037357.893096] [mm-iface- > modem.c:1433] __iface_modem_update_state_internal(): Modem > /org/freedesktop/ModemManager1/Modem/0: state changed (registered -> > connecting) > ModemManager[1463]: <debug> [1497037357.893279] [mm-broadband- > bearer.c:1263] connect(): Launching 3GPP connection attempt with APN > 'internet.t-mobile.cz' > ModemManager[1463]: <debug> [1497037357.893298] [mm-broadband- > bearer.c:1052] connect_3gpp(): Looking for best CID... > ModemManager[1463]: <debug> [1497037357.893313] [mm-port- > serial.c:1292] mm_port_serial_open(): (ttyUSB1) device open count is > 2 (open) > ModemManager[1463]: <debug> [1497037357.893340] [mm-port-serial- > at.c:459] debug_log(): (ttyUSB1): --> 'AT+CGDCONT?<CR>' > ModemManager[1463]: <debug> [1497037357.908702] [mm-port-serial- > at.c:459] debug_log(): (ttyUSB1): <-- '<CR><LF>+CGDCONT: > 1,"IP","internet.t-mobile.cz","0.0.0.0",0,0<CR><LF>+CGDCONT: > 2,"IPV4V6","internet.t-mobile.cz","0.0.0.0",0,0<CR><LF>+CGDCONT: > 3,"IPV4V6","","0.0.0.0",0,0<CR><LF><CR><LF>OK<CR><LF>' > ModemManager[1463]: <debug> [1497037357.909020] [mm-broadband- > bearer.c:969] parse_pdp_list(): Found '3' PDP contexts > ModemManager[1463]: <debug> [1497037357.909053] [mm-broadband- > bearer.c:978] parse_pdp_list(): PDP context [cid=1] [type='ipv4'] > [apn='internet.t-mobile.cz'] > ModemManager[1463]: <debug> [1497037357.909065] [mm-broadband- > bearer.c:978] parse_pdp_list(): PDP context [cid=2] [type='ipv4v6'] > [apn='internet.t-mobile.cz'] > ModemManager[1463]: <debug> [1497037357.909074] [mm-broadband- > bearer.c:978] parse_pdp_list(): PDP context [cid=3] [type='ipv4v6'] > [apn=''] > ModemManager[1463]: <debug> [1497037357.909085] [mm-broadband- > bearer.c:1002] parse_pdp_list(): Found PDP context with CID 2 and PDP > type ipv4v6 for APN 'internet.t-mobile.cz' > ModemManager[1463]: <debug> [1497037357.909114] [mm-port- > serial.c:1292] mm_port_serial_open(): (ttyUSB1) device open count is > 3 (open) > ModemManager[1463]: <debug> [1497037357.909127] [mm-broadband- > bearer.c:214] common_get_at_data_port(): Connection through a plain > serial AT port (ttyUSB1) > ModemManager[1463]: <debug> [1497037357.909152] [mm-port- > serial.c:1292] mm_port_serial_open(): (ttyUSB1) device open count is > 4 (open) > ModemManager[1463]: <debug> [1497037357.909182] [mm-port- > serial.c:1349] _close_internal(): (ttyUSB1) device open count is 3 > (close) > ModemManager[1463]: <debug> [1497037357.909212] [mm-port-serial- > at.c:459] debug_log(): (ttyUSB1): --> 'ATD*99***2#<CR>' > ModemManager[1463]: <debug> [1497037357.924504] [mm-port-serial- > at.c:459] debug_log(): (ttyUSB1): <-- '<CR><LF>CONNECT > 100000000<CR><LF>' > ModemManager[1463]: <debug> [1497037357.924688] [mm-port.c:95] > mm_port_set_connected(): (ttyUSB1): port now connected > ModemManager[1463]: <debug> [1497037357.924811] [mm-port- > serial.c:1349] _close_internal(): (ttyUSB1) device open count is 2 > (close) > ModemManager[1463]: <debug> [1497037357.924911] [mm-base- > bearer.c:601] connect_ready(): Connected bearer > '/org/freedesktop/ModemManager1/Bearer/0' > ModemManager[1463]: <info> [1497037357.925197] [mm-iface- > modem.c:1433] __iface_modem_update_state_internal(): Modem > /org/freedesktop/ModemManager1/Modem/0: state changed (connecting -> > connected) > ModemManager[1463]: <info> [1497037357.925555] [mm-iface-modem- > simple.c:602] connection_step(): Simple connect state (8/8): All done > ModemManager[1463]: <debug> [1497037357.942041] [mm-base- > bearer.c:874] mm_base_bearer_disconnect(): Disconnecting bearer > '/org/freedesktop/ModemManager1/Bearer/0' > ModemManager[1463]: <info> [1497037357.942129] [mm-iface- > modem.c:1433] __iface_modem_update_state_internal(): Modem > /org/freedesktop/ModemManager1/Modem/0: state changed (connected -> > disconnecting) > ModemManager[1463]: <debug> [1497037357.942491] [mm-broadband- > bearer.c:1571] data_reopen_3gpp(): Reopening data port (ttyUSB1)... > ModemManager[1463]: <debug> [1497037357.942541] [mm-port- > serial.c:1612] mm_port_serial_reopen(): (ttyUSB1) reopening port (2) > ModemManager[1463]: <debug> [1497037357.942607] [mm-port- > serial.c:1349] _close_internal(): (ttyUSB1) device open count is 1 > (close) > ModemManager[1463]: <debug> [1497037357.942621] [mm-port- > serial.c:1349] _close_internal(): (ttyUSB1) device open count is 0 > (close) > ModemManager[1463]: <debug> [1497037357.942649] [mm-port- > serial.c:1365] _close_internal(): (ttyUSB1) closing serial port... > ModemManager[1463]: <debug> [1497037357.942672] [mm-port.c:95] > mm_port_set_connected(): (ttyUSB1): port now disconnected > ModemManager[1463]: <debug> [1497037357.943118] [mm-port- > serial.c:1413] _close_internal(): (ttyUSB1) serial port closed > ModemManager[1463]: <debug> [1497037358.945191] [mm-port- > serial.c:1162] mm_port_serial_open(): (ttyUSB1) opening serial > port... > ModemManager[1463]: <warn> [1497037358.945578] [mm-port- > serial.c:513] real_config_fd(): (ttyUSB1): port attributes not fully > set > ModemManager[1463]: <debug> [1497037358.945699] [mm-port- > serial.c:1292] mm_port_serial_open(): (ttyUSB1) device open count is > 1 (open) > ModemManager[1463]: <debug> [1497037358.945753] [mm-port-serial- > at.c:495] mm_port_serial_at_run_init_sequence(): (ttyUSB1): running > init sequence... > ModemManager[1463]: <debug> [1497037358.945865] [mm-port- > serial.c:1292] mm_port_serial_open(): (ttyUSB1) device open count is > 2 (open) > ModemManager[1463]: <debug> [1497037358.945983] [mm-broadband- > bearer.c:1559] data_reopen_3gpp_ready(): Flashing data port > (ttyUSB1)... > ModemManager[1463]: <debug> [1497037358.946112] [mm-port-serial- > at.c:459] debug_log(): (ttyUSB1): --> 'ATE0<CR>' > ModemManager[1463]: <debug> [1497037359.948294] [mm-port- > serial.c:1349] _close_internal(): (ttyUSB1) device open count is 1 > (close) > ModemManager[1463]: <debug> [1497037359.948396] [mm-broadband- > bearer.c:1529] data_flash_3gpp_ready(): Sending PDP context > deactivation in primary/data port... > ModemManager[1463]: <debug> [1497037359.948547] [mm-port- > serial.c:1292] mm_port_serial_open(): (ttyUSB1) device open count is > 2 (open) > ModemManager[1463]: <debug> [1497037361.923992] [mm-port-serial- > at.c:459] debug_log(): (ttyUSB1): --> 'ATV1<CR>' > ModemManager[1463]: <debug> [1497037364.925279] [mm-port-serial- > at.c:459] debug_log(): (ttyUSB1): --> 'AT+CMEE=1<CR>' > ModemManager[1463]: <debug> [1497037367.924638] [mm-port-serial- > at.c:459] debug_log(): (ttyUSB1): --> 'ATX4<CR>' > ModemManager[1463]: <debug> [1497037370.924851] [mm-port-serial- > at.c:459] debug_log(): (ttyUSB1): --> 'AT&C1<CR>' > ModemManager[1463]: <debug> [1497037373.925172] [mm-port-serial- > at.c:459] debug_log(): (ttyUSB1): --> 'AT+CGACT=0,2<CR>' > ModemManager[1463]: <debug> [1497037380.929008] [mm-broadband- > modem.c:1991] modem_load_signal_quality(): loading signal quality... > ModemManager[1463]: <debug> [1497037380.929133] [mm-port- > serial.c:1292] mm_port_serial_open(): (ttyUSB1) device open count is > 3 (open) > ModemManager[1463]: <debug> [1497037383.924600] [mm-broadband- > bearer.c:1470] cgact_data_ready(): PDP context deactivation failed > (not fatal): Serial command timed out > ModemManager[1463]: <debug> [1497037383.924727] [mm-port- > serial.c:1349] _close_internal(): (ttyUSB1) device open count is 2 > (close) > ModemManager[1463]: <debug> [1497037383.924899] [mm-base- > bearer.c:807] disconnect_ready(): Disconnected bearer > '/org/freedesktop/ModemManager1/Bearer/0' > ModemManager[1463]: <info> [1497037383.925039] [mm-iface- > modem.c:1433] __iface_modem_update_state_internal(): Modem > /org/freedesktop/ModemManager1/Modem/0: state changed (disconnecting > -> registered) > ModemManager[1463]: <debug> [1497037383.927719] [mm-port-serial- > at.c:459] debug_log(): (ttyUSB1): --> 'AT+CIND?<CR>' > ModemManager[1463]: <debug> [1497037386.924734] [mm-port- > serial.c:1292] mm_port_serial_open(): (ttyUSB1) device open count is > 3 (open) > ModemManager[1463]: <debug> [1497037386.924899] [mm-port- > serial.c:1349] _close_internal(): (ttyUSB1) device open count is 2 > (close) > ModemManager[1463]: <debug> [1497037386.925032] [mm-port-serial- > at.c:459] debug_log(): (ttyUSB1): --> 'AT+CSQ<CR>' > ModemManager[1463]: <debug> [1497037389.924885] [mm-port- > serial.c:1349] _close_internal(): (ttyUSB1) device open count is 1 > (close) > ModemManager[1463]: <debug> [1497037389.925056] [mm-iface- > modem.c:1262] signal_quality_check_ready(): Couldn't refresh signal > quality: 'Serial command timed out' > ModemManager[1463]: <debug> [1497037410.923033] [mm-broadband- > modem.c:1991] modem_load_signal_quality(): loading signal quality... > ModemManager[1463]: <debug> [1497037410.923173] [mm-port- > serial.c:1292] mm_port_serial_open(): (ttyUSB1) device open count is > 2 (open) > ModemManager[1463]: <debug> [1497037410.923285] [mm-iface- > modem.c:1142] expire_signal_quality(): Signal quality value not > updated in 60s, marking as not being recent > ModemManager[1463]: <debug> [1497037410.924333] [mm-port-serial- > at.c:459] debug_log(): (ttyUSB1): --> 'AT+CIND?<CR>' > ModemManager[1463]: <info> [1497037411.530741] [mm-iface-modem- > simple.c:641] connect_auth_ready(): Simple connect started... > ModemManager[1463]: <debug> [1497037411.530838] [mm-iface-modem- > simple.c:651] connect_auth_ready(): PIN: unspecified > ModemManager[1463]: <debug> [1497037411.530862] [mm-iface-modem- > simple.c:653] connect_auth_ready(): Operator ID: unspecified > ModemManager[1463]: <debug> [1497037411.530885] [mm-iface-modem- > simple.c:655] connect_auth_ready(): Allowed roaming: yes > ModemManager[1463]: <debug> [1497037411.530908] [mm-iface-modem- > simple.c:657] connect_auth_ready(): APN: internet.t-mobile.cz > ModemManager[1463]: <debug> [1497037411.530931] [mm-iface-modem- > simple.c:662] connect_auth_ready(): IP family: ipv4v6 > ModemManager[1463]: <debug> [1497037411.530954] [mm-iface-modem- > simple.c:673] connect_auth_ready(): Allowed authentication: > unspecified > ModemManager[1463]: <debug> [1497037411.530974] [mm-iface-modem- > simple.c:675] connect_auth_ready(): User: unspecified > ModemManager[1463]: <debug> [1497037411.530994] [mm-iface-modem- > simple.c:677] connect_auth_ready(): Password: unspecified > ModemManager[1463]: <debug> [1497037411.531014] [mm-iface-modem- > simple.c:679] connect_auth_ready(): Number: *99# > ModemManager[1463]: <info> [1497037411.531123] [mm-iface-modem- > simple.c:469] connection_step(): Simple connect state (4/8): Wait to > get fully enabled > ModemManager[1463]: <info> [1497037411.531321] [mm-iface-modem- > simple.c:478] connection_step(): Simple connect state (5/8): Register > ModemManager[1463]: <debug> [1497037411.531467] [mm-iface-modem- > 3gpp.c:400] mm_iface_modem_3gpp_register_in_network(): Already > registered in network '23001', automatic registration not launched... > ModemManager[1463]: <info> [1497037411.531643] [mm-iface-modem- > simple.c:501] connection_step(): Simple connect state (6/8): Bearer > ModemManager[1463]: <debug> [1497037411.531746] [mm-iface-modem- > simple.c:574] connection_step(): Using already existing bearer at > '/org/freedesktop/ModemManager1/Bearer/0'... > ModemManager[1463]: <info> [1497037411.531811] [mm-iface-modem- > simple.c:583] connection_step(): Simple connect state (7/8): Connect > ModemManager[1463]: <debug> [1497037411.531889] [mm-base- > bearer.c:703] mm_base_bearer_connect(): Connecting bearer > '/org/freedesktop/ModemManager1/Bearer/0' > ModemManager[1463]: <info> [1497037411.531990] [mm-iface- > modem.c:1433] __iface_modem_update_state_internal(): Modem > /org/freedesktop/ModemManager1/Modem/0: state changed (registered -> > connecting) > ModemManager[1463]: <debug> [1497037411.532642] [mm-broadband- > bearer.c:1263] connect(): Launching 3GPP connection attempt with APN > 'internet.t-mobile.cz' > ModemManager[1463]: <debug> [1497037411.532703] [mm-broadband- > bearer.c:1052] connect_3gpp(): Looking for best CID... > ModemManager[1463]: <debug> [1497037411.532748] [mm-port- > serial.c:1292] mm_port_serial_open(): (ttyUSB1) device open count is > 3 (open) > ModemManager[1463]: <debug> [1497037413.924638] [mm-port- > serial.c:1292] mm_port_serial_open(): (ttyUSB1) device open count is > 4 (open) > ModemManager[1463]: <debug> [1497037413.924770] [mm-port- > serial.c:1349] _close_internal(): (ttyUSB1) device open count is 3 > (close) > ModemManager[1463]: <debug> [1497037413.924891] [mm-port-serial- > at.c:459] debug_log(): (ttyUSB1): --> 'AT+CGDCONT?<CR>' > ModemManager[1463]: <debug> [1497037416.923658] [mm-broadband- > bearer.c:950] parse_pdp_list(): Unexpected +CGDCONT? error: 'Serial > command timed out' > ModemManager[1463]: <debug> [1497037416.923824] [mm-port-serial- > at.c:459] debug_log(): (ttyUSB1): --> 'AT+CSQ<CR>' > ModemManager[1463]: <debug> [1497037419.924451] [mm-port- > serial.c:1349] _close_internal(): (ttyUSB1) device open count is 2 > (close) > _______________________________________________ > ModemManager-devel mailing list > [email protected] > https://lists.freedesktop.org/mailman/listinfo/modemmanager-devel _______________________________________________ ModemManager-devel mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/modemmanager-devel
