User:PWerken

From Openmoko

(Difference between revisions)
Jump to: navigation, search
m (update link to kernel git repo's)
(add device-hook script for adding agps support to gpsd)
 
Line 9: Line 9:
  
 
OS: [http://www.debian.org debian] (sid)
 
OS: [http://www.debian.org debian] (sid)
* [[Kernel#Building_the_2.6.32_branch|Kernel building]]: [http://gitorious.org/~jama/htc-msm-2-6-32/openmoko-kernel jama], [http://github.com/radekp/linux-2.6 radekp]
+
* [[Kernel#Building_the_2.6.32_branch|Kernel building]]
** using the no-drm config
+
** [http://github.com/shr-distribution/linux shr] [http://github.com/shr-distribution/linux/commits/om-gta02/2.6.39/om-stable om-gta02/2.6.39/om-stable]
*  µSD (15.9Gb, class 2):
+
*  µSD (16G, class 2):
** p1 <tt>rootfs</tt>    (1GB)
+
** p1 <tt>rootfs</tt>    (1G)
** p2 <tt>/home,/srv</tt> (14+GB)
+
** p2 <tt>/home,/srv</tt> (14+G)
** p3 <tt>swap</tt>      (128MB)
+
** p3 <tt>swap</tt>      (128M)
 
*  debian tweaks:
 
*  debian tweaks:
 
** localepurge
 
** localepurge
 
** dpkg with "path-exclude /usr/share/doc/*"
 
** dpkg with "path-exclude /usr/share/doc/*"
** [http://www.enlightenment.org Enlightenment] ([http://home.a-eskwadraat.nl/~pwerken/debian/ self build packages])
+
** [http://www.enlightenment.org Enlightenment] ([http://home.a-eskwadraat.nl/~pwerken/debian/ self build packages])
 +
** [[#gpsd device-hook|gpsd with device-hook]] that handles both fso resource and agps data
  
 
== Links ==
 
== Links ==
Line 26: Line 27:
 
* [[Tethering#Turning_your_FreeRunner_into_a_Network_Address_Translation_.28NAT.29_gateway|Tethering]]
 
* [[Tethering#Turning_your_FreeRunner_into_a_Network_Address_Translation_.28NAT.29_gateway|Tethering]]
 
* [http://www.screenpatronus.com ScreenPatronus]
 
* [http://www.screenpatronus.com ScreenPatronus]
 +
 +
== gpsd device-hook ==
 +
 +
With the device-hook script below gpsd will use [https://github.com/gabrys/gta02-agps 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.
  
 
== Navigation Board v2 ==
 
== Navigation Board v2 ==

Latest revision as of 23:32, 18 September 2012

Contents

[edit] Peter van de Werken (email)

Freerunner A5, with Buzz, Bass, and 1024 reworks,
and "Standard" Freerunner Navigation Board v2 installed.

OS: debian (sid)

[edit] Links

[edit] 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.

[edit] Navigation Board v2

# 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
Personal tools

Peter van de Werken (email)

Freerunner A5, with Buzz, Bass, and 1024 reworks,
and "Standard" Freerunner Navigation Board v2 installed.

OS: debian (sid)

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.

Navigation Board v2

# 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