* HE910 + ofono: "Activating context failed with error: Unknown error type" @ 2015-06-25 9:15 Marko Sulejic 2015-06-25 13:05 ` Marko Sulejic 0 siblings, 1 reply; 13+ messages in thread From: Marko Sulejic @ 2015-06-25 9:15 UTC (permalink / raw) To: ofono [-- Attachment #1: Type: text/plain, Size: 1400 bytes --] Hi, I need your help in using a Telit HE910 with ofono (and eventually connman). (I am using ofono 1.16 with HE910 firmware version 12.00.006; connman version is 1.29). My problem is the following ... on startup everything works fine and the ppp0 connection is established, but problems occur in the following case: connmanctl> disconnect cellular_*_context15 Disconnected cellular_*_context15 connmanctl> connect cellular_*_context15 Error /net/connman/service/cellular_*_context15: Input/output error ofonod[5355]: gprs-context.c(244):at_gprs_activate_primary() cid 1 ofonod[5355]: gprs.c(889):pri_activate_callback() 0x1a18c50 ofonod[5355]: gprs.c(893):pri_activate_callback() Activating context failed with error: Unknown error type connmand[3815]: Failed to change property: /he910_0/context15 org.ofono.ConnectionContext.Active: org.ofono.Error.Failed Operation failed The same error happens if I am manually sending connect/disconnect via dbus-send. Only a hard ofono restart can establish the connection again. This behavior happens all the time once a ppp0 disconnect happened (e.g. by removing the SIM; manual disconnect via dbus or connmanctl). A subquestion regarding connman: Can connmand be configured in such a way that on every connection loss, ofono is triggered to reconnect to the Internet? Thank you very muchin advance, Marko ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: HE910 + ofono: "Activating context failed with error: Unknown error type" 2015-06-25 9:15 HE910 + ofono: "Activating context failed with error: Unknown error type" Marko Sulejic @ 2015-06-25 13:05 ` Marko Sulejic 2015-06-29 11:16 ` Marko Sulejic 0 siblings, 1 reply; 13+ messages in thread From: Marko Sulejic @ 2015-06-25 13:05 UTC (permalink / raw) To: ofono [-- Attachment #1: Type: text/plain, Size: 2549 bytes --] Hi again, the problem seems to be in the atmodem/gprs-context.c : gprs_activate_primary function, where if (g_at_chat_send(gcd->chat, buf, none_prefix, at_cgdcont_cb, gc, NULL) > 0) is called after a reconnect, and then it fails. It seems to work if I call g_at_chat_send(gcd->chat, "AT&C0", none_prefix, NULL, NULL, NULL) prior. So this would mean that a disconnect or similar action sets DCD to low, and the chats are closed. Does oFono anywhere in the code sets DCD explicitely to low or is it maybe a bug? My patch would look something like this (if it is an HE910 issue only): if (gcd->vendor == OFONO_VENDOR_TELIT) { if(g_at_chat_send(gcd->chat, "AT&C0", none_prefix, NULL, NULL, NULL) <= 0) goto error; } Thanks, Marko Am 2015-06-25 um 11:15 schrieb Marko Sulejic: > Hi, > > I need your help in using a Telit HE910 with ofono (and eventually > connman). > (I am using ofono 1.16 with HE910 firmware version 12.00.006; connman > version is 1.29). > > My problem is the following ... > on startup everything works fine and the ppp0 connection is established, > but problems occur in the following case: > > connmanctl> disconnect cellular_*_context15 > Disconnected cellular_*_context15 > > connmanctl> connect cellular_*_context15 > Error /net/connman/service/cellular_*_context15: Input/output error > > > ofonod[5355]: gprs-context.c(244):at_gprs_activate_primary() cid 1 > ofonod[5355]: gprs.c(889):pri_activate_callback() 0x1a18c50 > ofonod[5355]: gprs.c(893):pri_activate_callback() Activating context > failed with error: Unknown error type > connmand[3815]: Failed to change property: /he910_0/context15 > org.ofono.ConnectionContext.Active: org.ofono.Error.Failed Operation > failed > > > The same error happens if I am manually sending connect/disconnect via > dbus-send. > > Only a hard ofono restart can establish the connection again. > This behavior happens all the time once a ppp0 disconnect happened > (e.g. by removing the SIM; manual disconnect via dbus or connmanctl). > > A subquestion regarding connman: > Can connmand be configured in such a way that on every connection > loss, ofono is triggered to reconnect to the Internet? > > Thank you very muchin advance, > Marko > _______________________________________________ > ofono mailing list > ofono(a)ofono.org > https://lists.ofono.org/mailman/listinfo/ofono ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: HE910 + ofono: "Activating context failed with error: Unknown error type" 2015-06-25 13:05 ` Marko Sulejic @ 2015-06-29 11:16 ` Marko Sulejic 2015-06-29 12:59 ` Enrico Sau 0 siblings, 1 reply; 13+ messages in thread From: Marko Sulejic @ 2015-06-29 11:16 UTC (permalink / raw) To: ofono [-- Attachment #1: Type: text/plain, Size: 2937 bytes --] Am 2015-06-25 um 15:05 schrieb Marko Sulejic: > Hi again, > > the problem seems to be in the > atmodem/gprs-context.c : gprs_activate_primary > function, where > > if (g_at_chat_send(gcd->chat, buf, none_prefix, > at_cgdcont_cb, gc, NULL) > 0) > > is called after a reconnect, and then it fails. > > > It seems to work if I call > > g_at_chat_send(gcd->chat, "AT&C0", none_prefix, > NULL, NULL, NULL) > > prior. > > So this would mean that a disconnect or similar action sets DCD to low, > and the chats are closed. > > Does oFono anywhere in the code sets DCD explicitely to low or is it > maybe a bug? > > My patch would look something like this (if it is an HE910 issue only): > > if (gcd->vendor == OFONO_VENDOR_TELIT) > { > if(g_at_chat_send(gcd->chat, "AT&C0", none_prefix, > NULL, NULL, NULL) <= 0) > goto error; > } > > > Thanks, > Marko > > > Am 2015-06-25 um 11:15 schrieb Marko Sulejic: >> Hi, >> >> I need your help in using a Telit HE910 with ofono (and eventually >> connman). >> (I am using ofono 1.16 with HE910 firmware version 12.00.006; connman >> version is 1.29). >> >> My problem is the following ... >> on startup everything works fine and the ppp0 connection is established, >> but problems occur in the following case: >> >> connmanctl> disconnect cellular_*_context15 >> Disconnected cellular_*_context15 >> >> connmanctl> connect cellular_*_context15 >> Error /net/connman/service/cellular_*_context15: Input/output error >> >> >> ofonod[5355]: gprs-context.c(244):at_gprs_activate_primary() cid 1 >> ofonod[5355]: gprs.c(889):pri_activate_callback() 0x1a18c50 >> ofonod[5355]: gprs.c(893):pri_activate_callback() Activating context >> failed with error: Unknown error type >> connmand[3815]: Failed to change property: /he910_0/context15 >> org.ofono.ConnectionContext.Active: org.ofono.Error.Failed Operation >> failed >> >> >> The same error happens if I am manually sending connect/disconnect >> via dbus-send. >> >> Only a hard ofono restart can establish the connection again. >> This behavior happens all the time once a ppp0 disconnect happened >> (e.g. by removing the SIM; manual disconnect via dbus or connmanctl). >> >> A subquestion regarding connman: >> Can connmand be configured in such a way that on every connection >> loss, ofono is triggered to reconnect to the Internet? >> >> Thank you very muchin advance, >> Marko >> _______________________________________________ >> ofono mailing list >> ofono(a)ofono.org >> https://lists.ofono.org/mailman/listinfo/ofono > > _______________________________________________ > ofono mailing list > ofono(a)ofono.org > https://lists.ofono.org/mailman/listinfo/ofono Hi, ok, the above code doesn't seem to solve the problem. Regards, Marko ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: HE910 + ofono: "Activating context failed with error: Unknown error type" 2015-06-29 11:16 ` Marko Sulejic @ 2015-06-29 12:59 ` Enrico Sau 2015-06-29 13:33 ` Marko Sulejic 0 siblings, 1 reply; 13+ messages in thread From: Enrico Sau @ 2015-06-29 12:59 UTC (permalink / raw) To: ofono [-- Attachment #1: Type: text/plain, Size: 3555 bytes --] Hi Marko, I had a similar problem with HE910 and I solved with the following code line immediatly after line 99 in he910.c plugin: 99| g_hash_table_insert(options, "Baud", "115200"); 100| *g_hash_table_insert(options, "Local", "on");* Let me know if it helps. Enrico 2015-06-29 13:16 GMT+02:00 Marko Sulejic <marko.sulejic@hale.at>: > > Am 2015-06-25 um 15:05 schrieb Marko Sulejic: > >> Hi again, >> >> the problem seems to be in the >> atmodem/gprs-context.c : gprs_activate_primary >> function, where >> >> if (g_at_chat_send(gcd->chat, buf, none_prefix, >> at_cgdcont_cb, gc, NULL) > 0) >> >> is called after a reconnect, and then it fails. >> >> >> It seems to work if I call >> >> g_at_chat_send(gcd->chat, "AT&C0", none_prefix, >> NULL, NULL, NULL) >> >> prior. >> >> So this would mean that a disconnect or similar action sets DCD to low, >> and the chats are closed. >> >> Does oFono anywhere in the code sets DCD explicitely to low or is it >> maybe a bug? >> >> My patch would look something like this (if it is an HE910 issue only): >> >> if (gcd->vendor == OFONO_VENDOR_TELIT) >> { >> if(g_at_chat_send(gcd->chat, "AT&C0", none_prefix, >> NULL, NULL, NULL) <= 0) >> goto error; >> } >> >> >> Thanks, >> Marko >> >> >> Am 2015-06-25 um 11:15 schrieb Marko Sulejic: >> >>> Hi, >>> >>> I need your help in using a Telit HE910 with ofono (and eventually >>> connman). >>> (I am using ofono 1.16 with HE910 firmware version 12.00.006; connman >>> version is 1.29). >>> >>> My problem is the following ... >>> on startup everything works fine and the ppp0 connection is established, >>> but problems occur in the following case: >>> >>> connmanctl> disconnect cellular_*_context15 >>> Disconnected cellular_*_context15 >>> >>> connmanctl> connect cellular_*_context15 >>> Error /net/connman/service/cellular_*_context15: Input/output error >>> >>> >>> ofonod[5355]: gprs-context.c(244):at_gprs_activate_primary() cid 1 >>> ofonod[5355]: gprs.c(889):pri_activate_callback() 0x1a18c50 >>> ofonod[5355]: gprs.c(893):pri_activate_callback() Activating context >>> failed with error: Unknown error type >>> connmand[3815]: Failed to change property: /he910_0/context15 >>> org.ofono.ConnectionContext.Active: org.ofono.Error.Failed Operation failed >>> >>> >>> The same error happens if I am manually sending connect/disconnect via >>> dbus-send. >>> >>> Only a hard ofono restart can establish the connection again. >>> This behavior happens all the time once a ppp0 disconnect happened >>> (e.g. by removing the SIM; manual disconnect via dbus or connmanctl). >>> >>> A subquestion regarding connman: >>> Can connmand be configured in such a way that on every connection >>> loss, ofono is triggered to reconnect to the Internet? >>> >>> Thank you very muchin advance, >>> Marko >>> _______________________________________________ >>> ofono mailing list >>> ofono(a)ofono.org >>> https://lists.ofono.org/mailman/listinfo/ofono >>> >> >> _______________________________________________ >> ofono mailing list >> ofono(a)ofono.org >> https://lists.ofono.org/mailman/listinfo/ofono >> > > > Hi, > > ok, the above code doesn't seem to solve the problem. > > Regards, > > Marko > > > > > > _______________________________________________ > ofono mailing list > ofono(a)ofono.org > https://lists.ofono.org/mailman/listinfo/ofono > [-- Attachment #2: attachment.html --] [-- Type: text/html, Size: 5323 bytes --] ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: HE910 + ofono: "Activating context failed with error: Unknown error type" 2015-06-29 12:59 ` Enrico Sau @ 2015-06-29 13:33 ` Marko Sulejic 2015-06-26 2:20 ` Denis Kenzior 0 siblings, 1 reply; 13+ messages in thread From: Marko Sulejic @ 2015-06-29 13:33 UTC (permalink / raw) To: ofono [-- Attachment #1: Type: text/plain, Size: 6641 bytes --] Hi Enrico! Am 2015-06-29 um 14:59 schrieb Enrico Sau: > Hi Marko, > I had a similar problem with HE910 and I solved with the following > code line immediatly after line 99 in he910.c plugin: > > 99| g_hash_table_insert(options, "Baud", "115200"); > 100| *g_hash_table_insert(options, "Local", "on");* > > Let me know if it helps. > > > Enrico > Thanks for the answer, but unfortunately it didn't help me. I figured out that the *at_cgdcont_cb() *callback is not called on reconnect: _The correct log_ (on startup): Jun 29 15:16:38 mx31tt01 daemon.warn connmand[561]: Skipping disconnect of /he910_0/context15, network is connecting. Jun 29 15:16:38 mx31tt01 daemon.debug ofonod[657]: gprs-context.c(240):at_gprs_activate_primary() cid 1 Jun 29 15:16:38 mx31tt01 daemon.info ofonod[657]: Modem: > AT+CGDCONT=1,"IP","web.one.at"\r Jun 29 15:16:38 mx31tt01 daemon.info ofonod[657]: Modem: < AT+CGDCONT=1,"IP","web.one.at"\r Jun 29 15:16:38 mx31tt01 daemon.info ofonod[657]: Modem: < \r\nOK\r\n Jun 29 15:16:38 mx31tt01 daemon.debug ofonod[657]: gprs-context.c(200):*at_cgdcont_cb()* ok 1 Jun 29 15:16:38 mx31tt01 daemon.info ofonod[657]: Modem: > AT+CGDATA="PPP",1\r Jun 29 15:16:38 mx31tt01 daemon.info ofonod[657]: Modem: < AT+CGDATA="PPP",1\r Jun 29 15:16:38 mx31tt01 daemon.info ofonod[657]: Modem: < \r\nCONNECT\r\n Jun 29 15:16:38 mx31tt01 daemon.debug ofonod[657]: gprs-context.c(176):*at_cgdata_cb()* ok 1 Jun 29 15:16:38 mx31tt01 daemon.debug ofonod[657]: gprs-context.c(141):setup_ppp() _And the fail log _(on reconnect): Jun 29 15:19:34 mx31tt01 daemon.debug ofonod[657]: gprs-context.c(240):at_gprs_activate_primary() cid 1 Jun 29 15:19:34 mx31tt01 daemon.info ofonod[657]: Modem: > AT+CGDCONT=1,"IP","web.one.at"\r ... Jun 29 15:20:14 mx31tt01 daemon.err connmand[561]: Failed to change property: /he910_0/context15 org.ofono.ConnectionContext.Active: org.freedesktop.DBus.Error.NoReply Did not receive a reply. Possible causes include: the remote application did not send a reply, the mess Jun 29 15:21:25 mx31tt01 daemon.warn connmand[561]: Skipping disconnect of /he910_0/context15, network is connecting. Jun 29 15:21:25 mx31tt01 daemon.err connmand[561]: Failed to change property: /he910_0/context15 org.ofono.ConnectionContext.Active: org.ofono.Error.InProgress Operation already in progress Any idea what could cause this? Regards, Marko > > 2015-06-29 13:16 GMT+02:00 Marko Sulejic <marko.sulejic@hale.at > <mailto:marko.sulejic@hale.at>>: > > > Am 2015-06-25 um 15:05 schrieb Marko Sulejic: > > Hi again, > > the problem seems to be in the > atmodem/gprs-context.c : gprs_activate_primary > function, where > > if (g_at_chat_send(gcd->chat, buf, none_prefix, > at_cgdcont_cb, gc, NULL) > 0) > > is called after a reconnect, and then it fails. > > > It seems to work if I call > > g_at_chat_send(gcd->chat, "AT&C0", none_prefix, > NULL, NULL, NULL) > > prior. > > So this would mean that a disconnect or similar action sets > DCD to low, > and the chats are closed. > > Does oFono anywhere in the code sets DCD explicitely to low or > is it maybe a bug? > > My patch would look something like this (if it is an HE910 > issue only): > > if (gcd->vendor == OFONO_VENDOR_TELIT) > { > if(g_at_chat_send(gcd->chat, "AT&C0", none_prefix, > NULL, NULL, NULL) <= 0) > goto error; > } > > > Thanks, > Marko > > > Am 2015-06-25 um 11:15 schrieb Marko Sulejic: > > Hi, > > I need your help in using a Telit HE910 with ofono (and > eventually connman). > (I am using ofono 1.16 with HE910 firmware version > 12.00.006; connman version is 1.29). > > My problem is the following ... > on startup everything works fine and the ppp0 connection > is established, > but problems occur in the following case: > > connmanctl> disconnect cellular_*_context15 > Disconnected cellular_*_context15 > > connmanctl> connect cellular_*_context15 > Error /net/connman/service/cellular_*_context15: > Input/output error > > > ofonod[5355]: > gprs-context.c(244):at_gprs_activate_primary() cid 1 > ofonod[5355]: gprs.c(889):pri_activate_callback() 0x1a18c50 > ofonod[5355]: gprs.c(893):pri_activate_callback() > Activating context failed with error: Unknown error type > connmand[3815]: Failed to change property: > /he910_0/context15 org.ofono.ConnectionContext.Active: > org.ofono.Error.Failed Operation failed > > > The same error happens if I am manually sending > connect/disconnect via dbus-send. > > Only a hard ofono restart can establish the connection again. > This behavior happens all the time once a ppp0 disconnect > happened > (e.g. by removing the SIM; manual disconnect via dbus or > connmanctl). > > A subquestion regarding connman: > Can connmand be configured in such a way that on every > connection > loss, ofono is triggered to reconnect to the Internet? > > Thank you very muchin advance, > Marko > _______________________________________________ > ofono mailing list > ofono(a)ofono.org <mailto:ofono@ofono.org> > https://lists.ofono.org/mailman/listinfo/ofono > > > _______________________________________________ > ofono mailing list > ofono(a)ofono.org <mailto:ofono@ofono.org> > https://lists.ofono.org/mailman/listinfo/ofono > > > > Hi, > > ok, the above code doesn't seem to solve the problem. > > Regards, > > Marko > > > > > > _______________________________________________ > ofono mailing list > ofono(a)ofono.org <mailto:ofono@ofono.org> > https://lists.ofono.org/mailman/listinfo/ofono > > > > > _______________________________________________ > ofono mailing list > ofono(a)ofono.org > https://lists.ofono.org/mailman/listinfo/ofono [-- Attachment #2: attachment.html --] [-- Type: text/html, Size: 11850 bytes --] ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: HE910 + ofono: "Activating context failed with error: Unknown error type" 2015-06-29 13:33 ` Marko Sulejic @ 2015-06-26 2:20 ` Denis Kenzior 2015-06-30 5:54 ` Marko Sulejic 0 siblings, 1 reply; 13+ messages in thread From: Denis Kenzior @ 2015-06-26 2:20 UTC (permalink / raw) To: ofono [-- Attachment #1: Type: text/plain, Size: 677 bytes --] Hi Marko, > > _And the fail log _(on reconnect): > > Jun 29 15:19:34 mx31tt01 daemon.debug ofonod[657]: > gprs-context.c(240):at_gprs_activate_primary() cid 1 > Jun 29 15:19:34 mx31tt01 daemon.info ofonod[657]: Modem: > > AT+CGDCONT=1,"IP","web.one.at"\r Your modem is not responding to this AT command. There's not much that can be done on the oFono side. You need to figure out why the modem is acting this way. > ... > > Jun 29 15:20:14 mx31tt01 daemon.err connmand[561]: Failed to change > property: /he910_0/context15 org.ofono.ConnectionContext.Active: > org.freedesktop.DBus.Error.NoReply Did not receive a reply. Possible Regards, -Denis ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: HE910 + ofono: "Activating context failed with error: Unknown error type" 2015-06-26 2:20 ` Denis Kenzior @ 2015-06-30 5:54 ` Marko Sulejic 2015-06-30 11:31 ` Marko Sulejic 0 siblings, 1 reply; 13+ messages in thread From: Marko Sulejic @ 2015-06-30 5:54 UTC (permalink / raw) To: ofono [-- Attachment #1: Type: text/plain, Size: 893 bytes --] Am 2015-06-26 um 04:20 schrieb Denis Kenzior: > Hi Marko, > > > >> _And the fail log _(on reconnect): >> >> Jun 29 15:19:34 mx31tt01 daemon.debug ofonod[657]: >> gprs-context.c(240):at_gprs_activate_primary() cid 1 >> Jun 29 15:19:34 mx31tt01 daemon.info ofonod[657]: Modem: > >> AT+CGDCONT=1,"IP","web.one.at"\r > > Your modem is not responding to this AT command. There's not much > that can be done on the oFono side. You need to figure out why the > modem is acting this way. > Hi Denis, thank you for the answer. If I can figure out the error, and can solve the problem, I will let you know. >> >> >> Jun 29 15:20:14 mx31tt01 daemon.err connmand[561]: Failed to change >> property: /he910_0/context15 org.ofono.ConnectionContext.Active: >> org.freedesktop.DBus.Error.NoReply Did not receive a reply. Possible > > Regards, > -Denis Regards, Marko ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: HE910 + ofono: "Activating context failed with error: Unknown error type" 2015-06-30 5:54 ` Marko Sulejic @ 2015-06-30 11:31 ` Marko Sulejic 2015-06-26 23:01 ` Denis Kenzior 0 siblings, 1 reply; 13+ messages in thread From: Marko Sulejic @ 2015-06-30 11:31 UTC (permalink / raw) To: ofono [-- Attachment #1: Type: text/plain, Size: 1194 bytes --] Am 2015-06-30 um 07:54 schrieb Marko Sulejic: > Am 2015-06-26 um 04:20 schrieb Denis Kenzior: >> Hi Marko, >> >> > >>> _And the fail log _(on reconnect): >>> >>> Jun 29 15:19:34 mx31tt01 daemon.debug ofonod[657]: >>> gprs-context.c(240):at_gprs_activate_primary() cid 1 >>> Jun 29 15:19:34 mx31tt01 daemon.info ofonod[657]: Modem: > >>> AT+CGDCONT=1,"IP","web.one.at"\r >> >> Your modem is not responding to this AT command. There's not much >> that can be done on the oFono side. You need to figure out why the >> modem is acting this way. >> > > Hi Denis, > > thank you for the answer. If I can figure out the error, > and can solve the problem, I will let you know. > Hi Denis, we figured out the problem: At the end of a PPP connection, garbage was passed in to the AT command parser on the modem chat. This garbage contained a doublequote, which switched the AT syntax parser into string mode. However, because no second doublequote arrived, it stayed in this mode, and kept returning UNSURE result. I think this is an major issue that should be fixed in oFono. The syntax parser has to be extended to handle such cases. Regards, Marko ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: HE910 + ofono: "Activating context failed with error: Unknown error type" 2015-06-30 11:31 ` Marko Sulejic @ 2015-06-26 23:01 ` Denis Kenzior 2015-06-30 15:16 ` Enrico Sau 2015-07-01 7:11 ` Marko Sulejic 0 siblings, 2 replies; 13+ messages in thread From: Denis Kenzior @ 2015-06-26 23:01 UTC (permalink / raw) To: ofono [-- Attachment #1: Type: text/plain, Size: 699 bytes --] Hi Marko, > > At the end of a PPP connection, garbage was passed in to the AT command > parser on the modem chat. Well, the modem should not be passing in garbage in the first place :) > This garbage contained a doublequote, which switched the AT syntax > parser into string mode. > However, because no second doublequote arrived, it stayed in this mode, > and kept returning UNSURE result. > Do you have a trace/hexdump of what is passed on to the GAtChat object? > I think this is an major issue that should be fixed in oFono. > The syntax parser has to be extended to handle such cases. > Any suggestions on how oFono should detect this condition? Regards, -Denis ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: HE910 + ofono: "Activating context failed with error: Unknown error type" 2015-06-26 23:01 ` Denis Kenzior @ 2015-06-30 15:16 ` Enrico Sau 2015-07-01 7:14 ` Marko Sulejic 2015-07-01 7:11 ` Marko Sulejic 1 sibling, 1 reply; 13+ messages in thread From: Enrico Sau @ 2015-06-30 15:16 UTC (permalink / raw) To: ofono [-- Attachment #1: Type: text/plain, Size: 99 bytes --] Marko, let me ask a maybe stupid question: do you have modemmanager package installed? Enrico [-- Attachment #2: attachment.html --] [-- Type: text/html, Size: 334 bytes --] ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: HE910 + ofono: "Activating context failed with error: Unknown error type" 2015-06-30 15:16 ` Enrico Sau @ 2015-07-01 7:14 ` Marko Sulejic 0 siblings, 0 replies; 13+ messages in thread From: Marko Sulejic @ 2015-07-01 7:14 UTC (permalink / raw) To: ofono [-- Attachment #1: Type: text/plain, Size: 456 bytes --] Hi Enrico, we don't have such a package installed. We have found the problem ... have a look at my response on Denis' mail. Regards, Marko Am 2015-06-30 um 17:16 schrieb Enrico Sau: > Marko, let me ask a maybe stupid question: do you have modemmanager > package installed? > > Enrico > > > _______________________________________________ > ofono mailing list > ofono(a)ofono.org > https://lists.ofono.org/mailman/listinfo/ofono [-- Attachment #2: attachment.html --] [-- Type: text/html, Size: 1460 bytes --] ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: HE910 + ofono: "Activating context failed with error: Unknown error type" 2015-06-26 23:01 ` Denis Kenzior 2015-06-30 15:16 ` Enrico Sau @ 2015-07-01 7:11 ` Marko Sulejic 2015-07-01 0:44 ` Denis Kenzior 1 sibling, 1 reply; 13+ messages in thread From: Marko Sulejic @ 2015-07-01 7:11 UTC (permalink / raw) To: ofono [-- Attachment #1: Type: text/plain, Size: 6310 bytes --] Am 2015-06-27 um 01:01 schrieb Denis Kenzior: > Hi Marko, Hi Denis, > > > >> At the end of a PPP connection, garbage was passed in to the AT command >> parser on the modem chat. > > Well, the modem should not be passing in garbage in the first place :) Yeah, but it unfortunately does so :) > >> This garbage contained a doublequote, which switched the AT syntax >> parser into string mode. >> However, because no second doublequote arrived, it stayed in this mode, >> and kept returning UNSURE result. >> > > Do you have a trace/hexdump of what is passed on to the GAtChat object? Before receiving the "NO CARRIER" signal, the modem leaves the data mode and enters the chat mode (apparently too early). In my log you can see that it gets some leftovers of a PPP package,including an opening double quote ... but it never gets the closing one, and therefore oFono is not responding any more. Here is the log: (the modem has already established a data connection, and I pull out the SIM card of its slot) ofonod[2816]: modem.c(501):modem_change_state() old state: 3, new state: 1 ofonod[2816]: modem.c(414):flush_atoms() ofonod[2816]: push-notification.c(166):push_notification_cleanup() 0x5519f8 ofonod[2816]: smart-messaging.c(291):smart_messaging_cleanup() 0x551e78 ofonod[2816]: network.c(1173):__ofono_netreg_remove_status_watch() 0x551178 ofonod[2816]: sms.c(1719):sms_remove() atom: 0x55a278 ofonod[2816]: phonebook.c(527):phonebook_remove() atom: 0x557000 ofonod[2816]: gprs.c(2279):gprs_context_unregister() 0x54f3c0, 0x54f290 ofonod[2816]: gprs.c(2413):gprs_context_remove() atom: 0x54f3e0 ofonod[2816]: gprs-context.c(422):at_gprs_context_remove() kernel: [ 1711.579055] PM: Removing info for No Bus:ppp0 ofonod[2816]: gprs.c(2644):gprs_unregister() 0x54f290 ofonod[2816]: network.c(1173):__ofono_netreg_remove_status_watch() 0x551178 ofonod[2816]: gprs.c(2683):gprs_remove() atom: 0x54f2f8 ofonod[2816]: message-waiting.c(1088):mw_remove() atom: 0x54edf8 ofonod[2816]: call-barring.c(1039):call_barring_remove() atom: 0x54eb60 ofonod[2816]: call-meter.c(718):call_meter_remove() atom: 0x54d398 ofonod[2816]: call-settings.c(1393):call_settings_remove() atom: 0x54d2d8 ofonod[2816]: call-forwarding.c(1465):call_forwarding_remove() atom: 0x54d200 ofonod[2816]: ussd.c(811):ussd_remove() atom: 0x5511e0 ofonod[2816]: sim.c(2720):ofono_sim_remove_spn_watch() 0x52dd10 ofonod[2816]: network.c(1836):netreg_remove() atom: 0x550f70 ofonod[2816]: voicecall.c(2787):voicecall_remove() atom: 0x52bf80 ofonod[2816]: udevng.c(979):remove_device() /sys/devices/virtual/net/ppp0 ofonod[2816]: udev.c(428):udev_event() subsystem net remove ofonod[2816]: udev.c(337):remove_modem() /devices/virtual/net/ppp0 ofonod[2816]: udev.c(442):udev_event() subsystem net finished ofonod[2816]: Aux: < \r\n ofonod[2816]: Aux: < +CGEV: NW DEACT IP, "10.183.107.173", 1\r\n ofonod[2816]: Modem: < ~\377}#\300!}%}"} }$Y(~ ofonod[2816]: Modem: < \r\nNO CARRIER\r\n > >> I think this is an major issue that should be fixed in oFono. >> The syntax parser has to be extended to handle such cases. >> > > Any suggestions on how oFono should detect this condition? Here is our "quick" solution to this problem. --- gatchat.c (f83233d) +++ gatchat.c (a3cb2b2) @@ -957,6 +957,11 @@ g_at_io_set_debug(chat->io, chat->debugf, chat->debug_data); g_at_io_set_read_handler(chat->io, new_bytes, chat); + /* Prevent garbage that arrives from the late data connection to + * switch the AT syntax parser to string mode (when it contains a doublequote) */ + if (chat->syntax->set_hint) + chat->syntax->set_hint(chat->syntax, G_AT_SYNTAX_EXPECT_GARBAGE); + if (g_queue_get_length(chat->command_queue) > 0) chat_wakeup_writer(chat); } --- gatsyntax.c (359f790) +++ gatsyntax.c (a3cb2b2) @@ -57,6 +57,8 @@ GSM_PERMISSIVE_STATE_PROMPT, GSM_PERMISSIVE_STATE_GUESS_SHORT_PROMPT, GSM_PERMISSIVE_STATE_SHORT_PROMPT, + GSM_PERMISSIVE_STATE_GUESS_GARBAGE, + GSM_PERMISSIVE_STATE_GARBAGE, }; static void gsmv1_hint(GAtSyntax *syntax, GAtSyntaxExpectHint hint) @@ -270,6 +272,8 @@ syntax->state = GSM_PERMISSIVE_STATE_GUESS_PDU; else if (hint == G_AT_SYNTAX_EXPECT_SHORT_PROMPT) syntax->state = GSM_PERMISSIVE_STATE_GUESS_SHORT_PROMPT; + else if (hint == G_AT_SYNTAX_EXPECT_GARBAGE) + syntax->state = GSM_PERMISSIVE_STATE_GUESS_GARBAGE; } static GAtSyntaxResult gsm_permissive_feed(GAtSyntax *syntax, @@ -358,6 +362,21 @@ syntax->state = GSM_PERMISSIVE_STATE_RESPONSE; return G_AT_SYNTAX_RESULT_UNSURE; + case GSM_PERMISSIVE_STATE_GUESS_GARBAGE: + if (byte != '\r' && byte != '\n') + syntax->state = GSM_PERMISSIVE_STATE_GARBAGE; + break; + + case GSM_PERMISSIVE_STATE_GARBAGE: + if (byte == '\r') { + syntax->state = GSM_PERMISSIVE_STATE_IDLE; + + i += 1; + res = G_AT_SYNTAX_RESULT_GARBAGE; + goto out; + } + break; + default: break; }; --- gatsyntax.h (21f9da9) +++ gatsyntax.h (a3cb2b2) @@ -30,7 +30,8 @@ G_AT_SYNTAX_EXPECT_PDU, G_AT_SYNTAX_EXPECT_MULTILINE, G_AT_SYNTAX_EXPECT_PROMPT, - G_AT_SYNTAX_EXPECT_SHORT_PROMPT + G_AT_SYNTAX_EXPECT_SHORT_PROMPT, + G_AT_SYNTAX_EXPECT_GARBAGE, }; typedef enum _GAtSyntaxExpectHint GAtSyntaxExpectHint; @@ -42,6 +43,7 @@ G_AT_SYNTAX_RESULT_MULTILINE, G_AT_SYNTAX_RESULT_PDU, G_AT_SYNTAX_RESULT_PROMPT, + G_AT_SYNTAX_RESULT_GARBAGE, }; typedef enum _GAtSyntaxResult GAtSyntaxResult; Our opinion is that the modem should only switch its mode once it really received the NO CARRIER signal (or something in this manner). But it's up to you to find the best solution :) > > Regards, > -Denis Regards, Marko P.S. We would also like to post a patch regarding oFono. How can we do this? > _______________________________________________ > ofono mailing list > ofono(a)ofono.org > https://lists.ofono.org/mailman/listinfo/ofono ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: HE910 + ofono: "Activating context failed with error: Unknown error type" 2015-07-01 7:11 ` Marko Sulejic @ 2015-07-01 0:44 ` Denis Kenzior 0 siblings, 0 replies; 13+ messages in thread From: Denis Kenzior @ 2015-07-01 0:44 UTC (permalink / raw) To: ofono [-- Attachment #1: Type: text/plain, Size: 4269 bytes --] Hi Marko, > > Before receiving the "NO CARRIER" signal, > the modem leaves the data mode > and enters the chat mode (apparently too early). > > In my log you can see that it gets some leftovers > of a PPP package,including an opening double quote > ... but it never gets the closing one, and therefore > oFono is not responding any more. > > Here is the log: > (the modem has already established a data connection, > and I pull out the SIM card of its slot) Aha. Now I understand. You're removing the SIM card, which triggers at_gprs_context_remove. And the modem firmware is not smart enough to send the final HDLC frame prior to sending us the SIM removed event. > ofonod[2816]: Modem: < ~\377}#\300!}%}"} }$Y(~ > ofonod[2816]: Modem: < \r\nNO CARRIER\r\n And indeed, we switch out of HDLC mode too early in this case. > > >> >>> I think this is an major issue that should be fixed in oFono. >>> The syntax parser has to be extended to handle such cases. >>> >> >> Any suggestions on how oFono should detect this condition? > > Here is our "quick" solution to this problem. > > --- gatchat.c (f83233d) > +++ gatchat.c (a3cb2b2) > @@ -957,6 +957,11 @@ > g_at_io_set_debug(chat->io, chat->debugf, chat->debug_data); > g_at_io_set_read_handler(chat->io, new_bytes, chat); > > + /* Prevent garbage that arrives from the late data connection to > + * switch the AT syntax parser to string mode (when it contains a > doublequote) */ > + if (chat->syntax->set_hint) > + chat->syntax->set_hint(chat->syntax, G_AT_SYNTAX_EXPECT_GARBAGE); > + > if (g_queue_get_length(chat->command_queue) > 0) > chat_wakeup_writer(chat); > } > > > --- gatsyntax.c (359f790) > +++ gatsyntax.c (a3cb2b2) > @@ -57,6 +57,8 @@ > GSM_PERMISSIVE_STATE_PROMPT, > GSM_PERMISSIVE_STATE_GUESS_SHORT_PROMPT, > GSM_PERMISSIVE_STATE_SHORT_PROMPT, > + GSM_PERMISSIVE_STATE_GUESS_GARBAGE, > + GSM_PERMISSIVE_STATE_GARBAGE, > }; > > static void gsmv1_hint(GAtSyntax *syntax, GAtSyntaxExpectHint hint) > @@ -270,6 +272,8 @@ > syntax->state = GSM_PERMISSIVE_STATE_GUESS_PDU; > else if (hint == G_AT_SYNTAX_EXPECT_SHORT_PROMPT) > syntax->state = GSM_PERMISSIVE_STATE_GUESS_SHORT_PROMPT; > + else if (hint == G_AT_SYNTAX_EXPECT_GARBAGE) > + syntax->state = GSM_PERMISSIVE_STATE_GUESS_GARBAGE; > } > > static GAtSyntaxResult gsm_permissive_feed(GAtSyntax *syntax, > @@ -358,6 +362,21 @@ > syntax->state = GSM_PERMISSIVE_STATE_RESPONSE; > return G_AT_SYNTAX_RESULT_UNSURE; > > + case GSM_PERMISSIVE_STATE_GUESS_GARBAGE: > + if (byte != '\r' && byte != '\n') > + syntax->state = GSM_PERMISSIVE_STATE_GARBAGE; > + break; > + > + case GSM_PERMISSIVE_STATE_GARBAGE: > + if (byte == '\r') { > + syntax->state = GSM_PERMISSIVE_STATE_IDLE; > + > + i += 1; > + res = G_AT_SYNTAX_RESULT_GARBAGE; > + goto out; > + } > + break; > + > default: > break; > }; > > > --- gatsyntax.h (21f9da9) > +++ gatsyntax.h (a3cb2b2) > @@ -30,7 +30,8 @@ > G_AT_SYNTAX_EXPECT_PDU, > G_AT_SYNTAX_EXPECT_MULTILINE, > G_AT_SYNTAX_EXPECT_PROMPT, > - G_AT_SYNTAX_EXPECT_SHORT_PROMPT > + G_AT_SYNTAX_EXPECT_SHORT_PROMPT, > + G_AT_SYNTAX_EXPECT_GARBAGE, > }; > > typedef enum _GAtSyntaxExpectHint GAtSyntaxExpectHint; > @@ -42,6 +43,7 @@ > G_AT_SYNTAX_RESULT_MULTILINE, > G_AT_SYNTAX_RESULT_PDU, > G_AT_SYNTAX_RESULT_PROMPT, > + G_AT_SYNTAX_RESULT_GARBAGE, > }; > > typedef enum _GAtSyntaxResult GAtSyntaxResult; > > > Our opinion is that the modem should only switch its > mode once it really received the NO CARRIER > signal (or something in this manner). > Correct. However, we currently expect all atom drivers to cleanup immediately (e.g. at_gprs_context_remove), so doing this cleanly is tricky. > P.S. We would also like to post a patch regarding oFono. > How can we do this? > git send-email. Regards, -Denis ^ permalink raw reply [flat|nested] 13+ messages in thread
end of thread, other threads:[~2015-07-01 7:14 UTC | newest] Thread overview: 13+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2015-06-25 9:15 HE910 + ofono: "Activating context failed with error: Unknown error type" Marko Sulejic 2015-06-25 13:05 ` Marko Sulejic 2015-06-29 11:16 ` Marko Sulejic 2015-06-29 12:59 ` Enrico Sau 2015-06-29 13:33 ` Marko Sulejic 2015-06-26 2:20 ` Denis Kenzior 2015-06-30 5:54 ` Marko Sulejic 2015-06-30 11:31 ` Marko Sulejic 2015-06-26 23:01 ` Denis Kenzior 2015-06-30 15:16 ` Enrico Sau 2015-07-01 7:14 ` Marko Sulejic 2015-07-01 7:11 ` Marko Sulejic 2015-07-01 0:44 ` Denis Kenzior
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.