GSM oscillating between registered and not registered aka 1024
|Line 99:||Line 99:|
hard coded to use AT%SLEEP=2 to avoid deep sleep mode entirely
Revision as of 07:12, 21 October 2009
Hardware bug #1024 creates a condition when the gsm modem is oscillating between registrated / not-registrated. This causes the phone to be unavailable at times. Distribution maintainers have been able to use a software setting to disable suspend of the gsm modem in order to work around this bug. The downside is that with this workaround the modem never sleeps and consumer more energy then needed.
If you decide to undergo a hardware fix of your phone you have to reconfigure your distribution to allow the gsm modem to go to sleep again in order to actually make use of the modem sleep function and therefore extend your battery life.
Not every Freerunner suffers this issue. To check if your phone has the bug #1024 please use this test script:
(This script will only work on FSO based distro. Also, this script is not 100% perfect, another way is to use frameworkd with ti_calypso_sleep_mode = 'adaptive' and inspect the logs. Frameworkd will tell you, when a real recamping exists)
#!/usr/bin/python import dbus import dbus.glib import gobject import datetime def onNetworkStatus(status ): print '[%s] Signal : cid=%s, lac=%s' % (datetime.datetime.now(),status['cid'],status['lac'] ) bus = dbus.SystemBus(); bus.add_signal_receiver( onNetworkStatus, "Status", "org.freesmartphone.GSM.Network", "org.freesmartphone.ogsmd", "/org/freesmartphone/GSM/Device" ) gobject.threads_init() dbus.glib.init_threads() main_loop = gobject.MainLoop() main_loop.run()
Run it like this:
root@om-gta02 ~ $ deep-sleep-check.py > dsc.log
If you have something like this:
[2009-09-09 12:36:09.189663] Signal : cid=3BB3, lac=0D48 [2009-09-09 12:36:15.088936] Signal : cid=3BB3, lac=0D48 [2009-09-09 12:38:10.442808] Signal : cid=3BB3, lac=0D48 [2009-09-09 12:38:13.020126] Signal : cid=3BB3, lac=0D48 [2009-09-09 12:40:25.772918] Signal : cid=3BB3, lac=0D48 [2009-09-09 12:40:28.620096] Signal : cid=3BB3, lac=0D48 [2009-09-09 12:41:17.557676] Signal : cid=3BB3, lac=0D48 [2009-09-09 12:41:20.404582] Signal : cid=3BB3, lac=0D48
Then you have the bug (trying to connect to GSM every second). Please note that cid is always the same.
Correct output might not show any messages or look like this:
[2009-10-18 07:51:27.107655] Signal : cid=4E91, lac=006A [2009-10-18 07:52:45.145288] Signal : cid=4E7B, lac=006A [2009-10-18 07:53:18.218122] Signal : cid=4E91, lac=006A
You can see the cid changing.
Bug detection by fso
Just use frameworkd with ti_calypso_sleep_mode = 'adaptive' and inspect the logs. Frameworkd will tell you, when a real recamping exists.
Hardware bug fixing
To perform the hardware update, please check description here: http://www.neofundas.blogspot.com/
After the fix, please recheck again with the script as above. Under normal circumstances you would only see these messages with a change of cell, so cid would be different.
If your fix was successful you can change setting to allow Calypso deep sleep:
Enabling/allowing Calypso GSM modem deep sleep
FSO based distros (SHR, Debian, OM2009...)
Edit /etc/frameworkd.conf , it should contain:
ti_calypso_deep_sleep = always
Then restart framework or reboot the phone.
QT based distos (Qtopia, QTExtended, QTMoko...)
Edit /opt/qtmoko/etc/default/Trolltech/Modem.conf , it should contain:
Although previously stated differently (hard coded to use AT%SLEEP=2 to avoid deep sleep mode entirely) it seems now that Android uses automatic detection of recamping bug and disables/enables deep sleep automagically:
IRC conversation October 20th 2009:
(07:44:36 PM) vanous123: panicking: what would be useful is optional settings for those, who have the 1024 fix done (07:52:28 PM) panicking: vanous123, why we need an option (07:52:38 PM) panicking: if the hardware is fixed the (07:52:46 PM) panicking: recamping function is never called (07:52:53 PM) panicking: I use a slide window of 4 minute (07:53:14 PM) panicking: The only think that remains to fix is the use of flowcontrolled (07:53:14 PM) vanous123: to check? (07:53:22 PM) vanous123: i see (07:53:57 PM) panicking: Now is fixed the calendar too (07:54:02 PM) panicking: so we can use the google calendar (07:54:04 PM) panicking: very nice (07:54:23 PM) vanous123: great