User:PWerken
From Openmoko
Contents |
Peter van de Werken (email)
Freerunner A5, with
Buzz,
Bass, and
1024 reworks,
and "Standard" Freerunner Navigation Board v2 installed.
OS: debian (sid)
- Kernel building
- µSD (16G, class 2):
- p1 rootfs (1G)
- p2 /home,/srv (14+G)
- p3 swap (128M)
- debian tweaks:
- localepurge
- dpkg with "path-exclude /usr/share/doc/*"
- Enlightenment (self build packages)
- gpsd with device-hook that handles both fso resource and agps data
Links
gpsd device-hook
With the device-hook script below gpsd will use gta02-gps to retrieve and store agps data. Do NOT start gpsd with the -n option, because then it will never deactivate the gps device.
An issue that needs to be resolved: gpsd doesn't deactivate the device until 60 seconds after the last client disconnects. If the device suspends during those 60 seconds the kernel will power down the gps and the agps data will be lost.
- The 60 second timeout should be made configurable (and in our case be set to something low like 2 seconds).
- Another solution would be to have the suspend script check if gps is powered on and ifso don't suspend. Or even better set "om gps keep-on-in-suspend 1" and schedule a (rtc) wakeup in 60 seconds.
/etc/gpsd/device-hook :
DATA=/var/cache/gta02-gps/agpsdata # nobody:dialout a=r,u+w
agps=/usr/local/bin/gta02-gps
case "$2" in
"ACTIVATE")
mdbus2 -s org.freesmartphone.ousaged /org/freesmartphone/Usage \
org.freesmartphone.Usage.SetResourcePolicy GPS enabled
$agps --setup-serial $1 --load-agps $DATA
;;
"DEACTIVATE")
for i in 1 2 3
do
$agps --setup-serial $1 --dump-agps $DATA.new || continue
[ $(stat --printf="%s" $DATE.new) -lt 1024 ] && continue
mv $DATA.new $DATA
break
done
mdbus2 -s org.freesmartphone.ousaged /org/freesmartphone/Usage \
org.freesmartphone.Usage.SetResourcePolicy GPS auto
;;
esac
exit 0
If you don't use the fso resouce, just make a call to "om gps power" instead.
# i2cdetect -l
i2c-0 i2c s3c2410-i2c I2C adapter
# i2cdetect -F s3c2410-i2c
Functionalities implemented by /dev/i2c-0:
I2C yes
SMBus Quick Command yes
SMBus Send Byte yes
SMBus Receive Byte yes
SMBus Write Byte yes
SMBus Read Byte yes
SMBus Write Word yes
SMBus Read Word yes
SMBus Process Call yes
SMBus Block Write yes
SMBus Block Read no
SMBus Block Process Call no
SMBus PEC yes
I2C Block Write yes
I2C Block Read yes
# i2cdetect s3c2410-i2c
WARNING! This program can confuse your I2C bus, cause data loss and worse!
I will probe file /dev/i2c-0.
I will probe address range 0x03-0x77.
Continue? [Y/n] Y
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: 03 -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- UU -- -- -- 1e --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- 5a -- -- -- -- --
60: 60 -- -- -- -- -- -- -- -- 69 -- -- -- -- -- --
70: 70 -- -- UU -- -- -- 77
