[Bug 256] GSM Modem doesn't seem to work on some devices

bugzilla-daemon at bugzilla.openmoko.org bugzilla-daemon at bugzilla.openmoko.org
Tue Aug 21 05:36:02 CEST 2007


http://bugzilla.openmoko.org/cgi-bin/bugzilla/show_bug.cgi?id=256





------- Additional Comments From technil at riseup.net  2007-08-21 05:36 -------
Hi all. similar problems here. Silence after the attempt to manually connect to
/dev/ttySAC0 . In addition the GSM Antenna symbol always shows question mark in
upper right, and top menubar GSM menu choices appear to have no effect.

hardware: GTA01Bv4

Kernel:
root at fic-gta01:~$ uname -r
2.6.21.6-moko11

Modules:
root at fic-gta01:~$ ls /lib/modules/
2.6.21.6-moko11

rootfs:
uImage-2.6.21.6-moko11-r1_0_0_2688_0-fic-gta01.bin

As per the recommendation at http://wiki.openmoko.org/wiki/Manually_using_GSM I
edited /etc/inittab and commented out the getty spawn "Our default images all
have a getty running on /dev/ttySAC0, please edit /etc/inittab and disable the
getty on that port"

I noticed after reboot that the gsmd gave a "success" as boot messages scrolled
by, (previously it hung there for a while). However, when running 

root at fic-gta01:~$ libgsmd-tool -m shell

After boot, I get:

libgsm-tool - (C) 2006 by Harald Welte
This program is Free Software and has ABSOLUTELY NO WARRANTY

Can't connect to gsmd

So then I invoked gsmd this way:

root at fic-gta01:~$ gsmd -F -s 115200 -p /dev/ttySAC0
gsmd - (C) 2006-2007 by Harald Welte <laforge at gnumonks.org>
This program is FREE SOFTWARE under the terms of GNU GPL

Mon Aug 20 22:12:22 2007 <1> machine.c:130:gsmd_machine_plugin_init() detected
'GTA01' hardware
Mon Aug 20 22:12:22 2007 <1> machine.c:72:gsmd_machine_plugin_load() loading
machine plugin "generic"
Mon Aug 20 22:12:22 2007 <1> vendor.c:75:gsmd_vendor_plugin_load() loading
vendor plugin "ti"
Mon Aug 20 22:12:22 2007 <1> machine.c:56:gsmd_machine_plugin_find() selecting
machine plugin "generic"
Mon Aug 20 22:12:23 2007 <1> atcmd.c:498:atcmd_drain() c_iflag = 0x00000000,
c_oflag = 0x00000000, c_cflag = 0x800018b2, c_lflag = 0x00000a30
Mon Aug 20 22:12:23 2007 <1> vendor.c:59:gsmd_vendor_plugin_find() selecting
vendor plugin "TI Calypso"
Mon Aug 20 22:12:23 2007 <1> atcmd.c:483:atcmd_submit() submitting command `ATE0V1'
Mon Aug 20 22:12:23 2007 <1> atcmd.c:483:atcmd_submit() submitting command `ATE0'
Mon Aug 20 22:12:23 2007 <1> atcmd.c:182:ml_parse() buf=`OK'(2)
Mon Aug 20 22:12:23 2007 <1> atcmd.c:366:ml_parse() Calling final cmd->cb()
Mon Aug 20 22:12:23 2007 <1> atcmd.c:483:atcmd_submit() submitting command `ATE0V1'
Mon Aug 20 22:12:23 2007 <1> atcmd.c:483:atcmd_submit() submitting command
`AT+CRC=1'
Mon Aug 20 22:12:23 2007 <1> atcmd.c:483:atcmd_submit() submitting command
`AT+CREG=2'
Mon Aug 20 22:12:23 2007 <1> atcmd.c:483:atcmd_submit() submitting command
`AT+CMEE=1'
Mon Aug 20 22:12:23 2007 <1> atcmd.c:483:atcmd_submit() submitting command
`AT+CLIP=1'
Mon Aug 20 22:12:23 2007 <1> atcmd.c:483:atcmd_submit() submitting command
`AT+COLP=1'
Mon Aug 20 22:12:23 2007 <1> atcmd.c:483:atcmd_submit() submitting command
`AT+CMGF=0'
Mon Aug 20 22:12:23 2007 <1> atcmd.c:483:atcmd_submit() submitting command
`AT+CTZR=1'
Mon Aug 20 22:12:23 2007 <1> atcmd.c:483:atcmd_submit() submitting command
`AT%CTZV=1'
Mon Aug 20 22:12:23 2007 <1> atcmd.c:483:atcmd_submit() submitting command
`AT%CPRI=1'
Mon Aug 20 22:12:23 2007 <1> atcmd.c:483:atcmd_submit() submitting command
`AT%CSQ=1'
Mon Aug 20 22:12:23 2007 <1> atcmd.c:483:atcmd_submit() submitting command
`AT%CUNS=0'
Mon Aug 20 22:12:23 2007 <1> atcmd.c:483:atcmd_submit() submitting command
`AT%CPI=?'
Mon Aug 20 22:12:23 2007 <1> atcmd.c:373:ml_parse() Clearing mlbuf
Mon Aug 20 22:12:23 2007 <1> atcmd.c:182:ml_parse() buf=`OK'(2)
Mon Aug 20 22:12:23 2007 <1> atcmd.c:366:ml_parse() Calling final cmd->cb()
Mon Aug 20 22:12:23 2007 <1> atcmd.c:373:ml_parse() Clearing mlbuf
Mon Aug 20 22:12:23 2007 <1> atcmd.c:182:ml_parse() buf=`OK'(2)
Mon Aug 20 22:12:23 2007 <1> atcmd.c:366:ml_parse() Calling final cmd->cb()
Mon Aug 20 22:12:23 2007 <1> gsmd.c:152:gsmd_test_atcb() `ATE0V1' returned `OK'
Mon Aug 20 22:12:23 2007 <1> atcmd.c:373:ml_parse() Clearing mlbuf
Mon Aug 20 22:12:23 2007 <1> atcmd.c:182:ml_parse() buf=`OK'(2)
Mon Aug 20 22:12:23 2007 <1> atcmd.c:366:ml_parse() Calling final cmd->cb()
Mon Aug 20 22:12:23 2007 <1> gsmd.c:152:gsmd_test_atcb() `AT+CRC=1' returned `OK'
Mon Aug 20 22:12:23 2007 <1> atcmd.c:373:ml_parse() Clearing mlbuf
Mon Aug 20 22:12:23 2007 <1> atcmd.c:182:ml_parse() buf=`OK'(2)
Mon Aug 20 22:12:23 2007 <1> atcmd.c:366:ml_parse() Calling final cmd->cb()
Mon Aug 20 22:12:23 2007 <1> gsmd.c:152:gsmd_test_atcb() `AT+CREG=2' returned `OK'
Mon Aug 20 22:12:23 2007 <1> atcmd.c:373:ml_parse() Clearing mlbuf
Mon Aug 20 22:12:23 2007 <1> atcmd.c:182:ml_parse() buf=`OK'(2)
Mon Aug 20 22:12:23 2007 <1> atcmd.c:366:ml_parse() Calling final cmd->cb()
Mon Aug 20 22:12:23 2007 <1> gsmd.c:152:gsmd_test_atcb() `AT+CMEE=1' returned `OK'
Mon Aug 20 22:12:23 2007 <1> atcmd.c:373:ml_parse() Clearing mlbuf
Mon Aug 20 22:12:23 2007 <1> atcmd.c:182:ml_parse() buf=`OK'(2)
Mon Aug 20 22:12:23 2007 <1> atcmd.c:366:ml_parse() Calling final cmd->cb()
Mon Aug 20 22:12:23 2007 <1> gsmd.c:152:gsmd_test_atcb() `AT+CLIP=1' returned `OK'
Mon Aug 20 22:12:23 2007 <1> atcmd.c:373:ml_parse() Clearing mlbuf
Mon Aug 20 22:12:23 2007 <1> atcmd.c:182:ml_parse() buf=`OK'(2)
Mon Aug 20 22:12:23 2007 <1> atcmd.c:366:ml_parse() Calling final cmd->cb()
Mon Aug 20 22:12:23 2007 <1> gsmd.c:152:gsmd_test_atcb() `AT+COLP=1' returned `OK'
Mon Aug 20 22:12:23 2007 <1> atcmd.c:373:ml_parse() Clearing mlbuf
Mon Aug 20 22:12:23 2007 <1> atcmd.c:182:ml_parse() buf=`OK'(2)
Mon Aug 20 22:12:23 2007 <1> atcmd.c:366:ml_parse() Calling final cmd->cb()
Mon Aug 20 22:12:23 2007 <1> gsmd.c:152:gsmd_test_atcb() `AT+CMGF=0' returned `OK'
Mon Aug 20 22:12:23 2007 <1> atcmd.c:373:ml_parse() Clearing mlbuf
Mon Aug 20 22:12:23 2007 <1> atcmd.c:182:ml_parse() buf=`OK'(2)
Mon Aug 20 22:12:23 2007 <1> atcmd.c:366:ml_parse() Calling final cmd->cb()
Mon Aug 20 22:12:23 2007 <1> gsmd.c:152:gsmd_test_atcb() `AT+CTZR=1' returned `OK'
Mon Aug 20 22:12:23 2007 <1> atcmd.c:373:ml_parse() Clearing mlbuf
Mon Aug 20 22:12:23 2007 <1> atcmd.c:182:ml_parse() buf=`OK'(2)
Mon Aug 20 22:12:23 2007 <1> atcmd.c:366:ml_parse() Calling final cmd->cb()
Mon Aug 20 22:12:23 2007 <1> gsmd.c:152:gsmd_test_atcb() `AT%CTZV=1' returned `OK'
Mon Aug 20 22:12:23 2007 <1> atcmd.c:373:ml_parse() Clearing mlbuf
Mon Aug 20 22:12:23 2007 <1> atcmd.c:182:ml_parse() buf=`OK'(2)
Mon Aug 20 22:12:23 2007 <1> atcmd.c:366:ml_parse() Calling final cmd->cb()
Mon Aug 20 22:12:23 2007 <1> gsmd.c:152:gsmd_test_atcb() `AT%CPRI=1' returned `OK'
Mon Aug 20 22:12:23 2007 <1> atcmd.c:373:ml_parse() Clearing mlbuf
Mon Aug 20 22:12:23 2007 <1> atcmd.c:182:ml_parse() buf=`%CSQ: 1 '(8)
Mon Aug 20 22:12:23 2007 <1> atcmd.c:338:ml_parse() Filling mlbuf
Mon Aug 20 22:12:23 2007 <1> atcmd.c:182:ml_parse() buf=`OK'(2)
Mon Aug 20 22:12:23 2007 <1> atcmd.c:366:ml_parse() Calling final cmd->cb()
Mon Aug 20 22:12:23 2007 <1> gsmd.c:152:gsmd_test_atcb() `AT%CSQ=1' returned
`%CSQ: 1 '
Mon Aug 20 22:12:23 2007 <1> atcmd.c:373:ml_parse() Clearing mlbuf
Mon Aug 20 22:12:23 2007 <1> atcmd.c:182:ml_parse() buf=`OK'(2)
Mon Aug 20 22:12:23 2007 <1> atcmd.c:366:ml_parse() Calling final cmd->cb()
Mon Aug 20 22:12:23 2007 <1> gsmd.c:152:gsmd_test_atcb() `AT%CUNS=0' returned `OK'
Mon Aug 20 22:12:23 2007 <1> atcmd.c:373:ml_parse() Clearing mlbuf
Mon Aug 20 22:12:23 2007 <1> atcmd.c:182:ml_parse() buf=`%CPI: (0-4)'(11)
Mon Aug 20 22:12:23 2007 <1> atcmd.c:338:ml_parse() Filling mlbuf
Mon Aug 20 22:12:23 2007 <1> atcmd.c:182:ml_parse() buf=`OK'(2)
Mon Aug 20 22:12:23 2007 <1> atcmd.c:366:ml_parse() Calling final cmd->cb()
Mon Aug 20 22:12:23 2007 <1> atcmd.c:483:atcmd_submit() submitting command
`AT%CPI=3'
Mon Aug 20 22:12:23 2007 <1> atcmd.c:373:ml_parse() Clearing mlbuf
Mon Aug 20 22:12:23 2007 <1> atcmd.c:182:ml_parse() buf=`OK'(2)
Mon Aug 20 22:12:23 2007 <1> atcmd.c:366:ml_parse() Calling final cmd->cb()
Mon Aug 20 22:12:23 2007 <1> gsmd.c:152:gsmd_test_atcb() `AT%CPI=3' returned `OK'
Mon Aug 20 22:12:23 2007 <1> atcmd.c:373:ml_parse() Clearing mlbuf
Mon Aug 20 22:12:53 2007 <1> gsmd.c:75:alive_tmr_cb() gsmd_alive timer expired
Mon Aug 20 22:12:53 2007 <3> gsmd.c:81:alive_tmr_cb() modem alive!
Mon Aug 20 22:14:29 2007 <1> atcmd.c:483:atcmd_submit() submitting command
`AT+COPS=0'
Mon Aug 20 22:14:29 2007 <1> atcmd.c:182:ml_parse() buf=`+CME ERROR: 3'(13)
Mon Aug 20 22:14:29 2007 <1> atcmd.c:231:ml_parse() error number 3
Mon Aug 20 22:14:29 2007 <1> atcmd.c:366:ml_parse() Calling final cmd->cb()
Mon Aug 20 22:14:29 2007 <1> usock.c:174:null_cmd_cb() null cmd cb
Mon Aug 20 22:14:29 2007 <1> atcmd.c:373:ml_parse() Clearing mlbuf
Mon Aug 20 22:17:23 2007 <1> gsmd.c:120:alive_interval_tmr_cb() interval
expired, starting next alive inquiry
Mon Aug 20 22:17:23 2007 <1> atcmd.c:483:atcmd_submit() submitting command `ATE0'
Mon Aug 20 22:17:23 2007 <1> atcmd.c:182:ml_parse() buf=`OK'(2)
Mon Aug 20 22:17:23 2007 <1> atcmd.c:366:ml_parse() Calling final cmd->cb()
Mon Aug 20 22:17:23 2007 <1> atcmd.c:373:ml_parse() Clearing mlbuf
Mon Aug 20 22:17:53 2007 <1> gsmd.c:75:alive_tmr_cb() gsmd_alive timer expired
Mon Aug 20 22:17:53 2007 <3> gsmd.c:81:alive_tmr_cb() modem alive!

YAY! hardware looks fine... not sure about the +CME Error but the list at 
http://www.activexperts.com/activsms/sms/gsmerrorcodes/
"GSM Equipment and Network Error Codes"
suggests it is:
CME ERROR: 3   	 Operation not allowed

At this point I opened a new shell on the GTA01Bv4 and invoked libgsmd-tools via:

root at fic-gta01:~$ libgsmd-tool -m shell
libgsm-tool - (C) 2006 by Harald Welte
This program is Free Software and has ABSOLUTELY NO WARRANTY

R
# Register
o
# Power-Off
EVENT: Netreg not searching for network 
O
# Power-On
R
# Register
EVENT: Netreg searching for network 
EVENT: Netreg registration denied 
EVENT: Signal Quality: 99
q

The output below is from the above session in libgsmd-tools. so it seems to work
(except that i can't get on my "home" network (UNICEL in this case) :( )

Mon Aug 20 22:18:56 2007 <1> atcmd.c:483:atcmd_submit() submitting command
`AT+CFUN=0'
Mon Aug 20 22:18:56 2007 <1> atcmd.c:182:ml_parse() buf=`+CREG: 0'(8)
Mon Aug 20 22:18:56 2007 <1> atcmd.c:251:ml_parse() extd reply `+CREG: 0' to cmd
`+CFUN=0', must be unsolicited
Mon Aug 20 22:18:56 2007 <1> unsolicited.c:69:usock_evt_send() entering evt=5
Mon Aug 20 22:18:56 2007 <1> usock.c:53:usock_cmd_enqueue() enqueueing usock cmd
0x2ba38 for user 0x2b9d8
Mon Aug 20 22:18:56 2007 <1> atcmd.c:182:ml_parse() buf=`OK'(2)
Mon Aug 20 22:18:56 2007 <1> atcmd.c:366:ml_parse() Calling final cmd->cb()
Mon Aug 20 22:18:56 2007 <1> usock.c:174:null_cmd_cb() null cmd cb
Mon Aug 20 22:18:56 2007 <1> atcmd.c:373:ml_parse() Clearing mlbuf
Mon Aug 20 22:18:56 2007 <1> usock.c:941:gsmd_usock_user_cb() successfully sent
cmd 0x2ba38 to user 0x2b9d8, freeing
Mon Aug 20 22:19:01 2007 <1> atcmd.c:483:atcmd_submit() submitting command
`AT+CFUN=1'
Mon Aug 20 22:19:04 2007 <1> atcmd.c:182:ml_parse() buf=`OK'(2)
Mon Aug 20 22:19:04 2007 <1> atcmd.c:366:ml_parse() Calling final cmd->cb()
Mon Aug 20 22:19:04 2007 <1> usock.c:174:null_cmd_cb() null cmd cb
Mon Aug 20 22:19:04 2007 <1> atcmd.c:373:ml_parse() Clearing mlbuf
Mon Aug 20 22:19:07 2007 <1> atcmd.c:483:atcmd_submit() submitting command
`AT+COPS=0'
Mon Aug 20 22:19:07 2007 <1> atcmd.c:182:ml_parse() buf=`+CREG: 2'(8)
Mon Aug 20 22:19:07 2007 <1> atcmd.c:251:ml_parse() extd reply `+CREG: 2' to cmd
`+COPS=0', must be unsolicited
Mon Aug 20 22:19:07 2007 <1> unsolicited.c:69:usock_evt_send() entering evt=5
Mon Aug 20 22:19:07 2007 <1> usock.c:53:usock_cmd_enqueue() enqueueing usock cmd
0x2b8d0 for user 0x2b9d8
Mon Aug 20 22:19:07 2007 <1> usock.c:941:gsmd_usock_user_cb() successfully sent
cmd 0x2b8d0 to user 0x2b9d8, freeing
Mon Aug 20 22:19:32 2007 <1> atcmd.c:182:ml_parse() buf=`+CREG: 3'(8)
Mon Aug 20 22:19:32 2007 <1> atcmd.c:251:ml_parse() extd reply `+CREG: 3' to cmd
`+COPS=0', must be unsolicited
Mon Aug 20 22:19:32 2007 <1> unsolicited.c:69:usock_evt_send() entering evt=5
Mon Aug 20 22:19:32 2007 <1> usock.c:53:usock_cmd_enqueue() enqueueing usock cmd
0x2b8d0 for user 0x2b9d8
Mon Aug 20 22:19:32 2007 <1> atcmd.c:182:ml_parse() buf=`+CME ERROR: 30'(14)
Mon Aug 20 22:19:32 2007 <1> atcmd.c:231:ml_parse() error number 30
Mon Aug 20 22:19:32 2007 <1> atcmd.c:366:ml_parse() Calling final cmd->cb()
Mon Aug 20 22:19:32 2007 <1> usock.c:174:null_cmd_cb() null cmd cb
Mon Aug 20 22:19:32 2007 <1> atcmd.c:373:ml_parse() Clearing mlbuf
Mon Aug 20 22:19:32 2007 <1> usock.c:941:gsmd_usock_user_cb() successfully sent
cmd 0x2b8d0 to user 0x2b9d8, freeing
Mon Aug 20 22:19:32 2007 <1> atcmd.c:182:ml_parse() buf=`%CSQ:  99, 99, 0'(16)
Mon Aug 20 22:19:32 2007 <1> atcmd.c:251:ml_parse() extd reply `%CSQ:  99, 99,
0' to cmd `NONE', must be unsolicited
Mon Aug 20 22:19:32 2007 <1> vendor_ti.c:78:csq_parse() entering csq_parse
param=` 99, 99, 0'
Mon Aug 20 22:19:32 2007 <1> unsolicited.c:69:usock_evt_send() entering evt=6
Mon Aug 20 22:19:32 2007 <1> usock.c:53:usock_cmd_enqueue() enqueueing usock cmd
0x2b7e8 for user 0x2b9d8
Mon Aug 20 22:19:32 2007 <1> usock.c:941:gsmd_usock_user_cb() successfully sent
cmd 0x2b7e8 to user 0x2b9d8, freeing
Mon Aug 20 22:22:23 2007 <1> gsmd.c:120:alive_interval_tmr_cb() interval
expired, starting next alive inquiry
Mon Aug 20 22:22:23 2007 <1> atcmd.c:483:atcmd_submit() submitting command `ATE0'
Mon Aug 20 22:22:23 2007 <1> atcmd.c:182:ml_parse() buf=`OK'(2)
Mon Aug 20 22:22:23 2007 <1> atcmd.c:366:ml_parse() Calling final cmd->cb()
Mon Aug 20 22:22:23 2007 <1> atcmd.c:373:ml_parse() Clearing mlbuf
Mon Aug 20 22:22:53 2007 <1> gsmd.c:75:alive_tmr_cb() gsmd_alive timer expired
Mon Aug 20 22:22:53 2007 <3> gsmd.c:81:alive_tmr_cb() modem alive!
Mon Aug 20 22:23:52 2007 <1> usock.c:905:gsmd_usock_user_cb() EOF, this client
has just vanished
Mon Aug 20 22:27:23 2007 <1> gsmd.c:120:alive_interval_tmr_cb() interval
expired, starting next alive inquiry
Mon Aug 20 22:27:23 2007 <1> atcmd.c:483:atcmd_submit() submitting command `ATE0'
Mon Aug 20 22:27:23 2007 <1> atcmd.c:182:ml_parse() buf=`OK'(2)
Mon Aug 20 22:27:23 2007 <1> atcmd.c:366:ml_parse() Calling final cmd->cb()
Mon Aug 20 22:27:23 2007 <1> atcmd.c:373:ml_parse() Clearing mlbuf
Mon Aug 20 22:27:53 2007 <1> gsmd.c:75:alive_tmr_cb() gsmd_alive timer expired
Mon Aug 20 22:27:53 2007 <3> gsmd.c:81:alive_tmr_cb() modem alive!
Mon Aug 20 22:32:23 2007 <1> gsmd.c:120:alive_interval_tmr_cb() interval
expired, starting next alive inquiry
Mon Aug 20 22:32:23 2007 <1> atcmd.c:483:atcmd_submit() submitting command `ATE0'
Mon Aug 20 22:32:23 2007 <1> atcmd.c:182:ml_parse() buf=`OK'(2)
Mon Aug 20 22:32:23 2007 <1> atcmd.c:366:ml_parse() Calling final cmd->cb()
Mon Aug 20 22:32:23 2007 <1> atcmd.c:373:ml_parse() Clearing mlbuf
Mon Aug 20 22:32:53 2007 <1> gsmd.c:75:alive_tmr_cb() gsmd_alive timer expired
Mon Aug 20 22:32:53 2007 <3> gsmd.c:81:alive_tmr_cb() modem alive!
Mon Aug 20 22:37:23 2007 <1> gsmd.c:120:alive_interval_tmr_cb() interval
expired, starting next alive inquiry
Mon Aug 20 22:37:23 2007 <1> atcmd.c:483:atcmd_submit() submitting command `ATE0'
Mon Aug 20 22:37:23 2007 <1> atcmd.c:182:ml_parse() buf=`OK'(2)
Mon Aug 20 22:37:23 2007 <1> atcmd.c:366:ml_parse() Calling final cmd->cb()
Mon Aug 20 22:37:23 2007 <1> atcmd.c:373:ml_parse() Clearing mlbuf
Mon Aug 20 22:37:53 2007 <1> gsmd.c:75:alive_tmr_cb() gsmd_alive timer expired
Mon Aug 20 22:37:53 2007 <3> gsmd.c:81:alive_tmr_cb() modem alive!
full talloc report on 'GSMD' (total 30 bytes in 7 blocks)
    operator_cache                 contains      1 bytes in   1 blocks (ref 0)
    gsmd_user                      contains      1 bytes in   1 blocks (ref 0)
    ucmd                           contains      1 bytes in   1 blocks (ref 0)
    atcmds                         contains      1 bytes in   1 blocks (ref 0)
    timers                         contains     25 bytes in   2 blocks (ref 0)
        timer.c:162                    contains     24 bytes in   1 blocks (ref 0)

All commands issued over ssh via USBnet.

Until I get a registration on the/a network I am at a bit of a loss. I will note
that no applications in the image show their interaction with gsmd in the
invocation i used above to check on the hardware (Dialer and/or GSM icon in
menubar). Offhand I don't know if they use libgsmd or if they try to send AT
commands directly to /dev/ttySAC0. I will look into it after I get some sleep.

HTH




------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.




More information about the buglog mailing list