User:PWerken

From Openmoko

(Difference between revisions)
Jump to: navigation, search
(Peter van de Werken)
(add device-hook script for adding agps support to gpsd)
 
(16 intermediate revisions by one user not shown)
Line 1: Line 1:
== Peter van de Werken ==
+
== Peter van de Werken [[Special:Emailuser/PWerken|(email)]] ==
  
Currently running debian (squeeze) from µSD with:
+
Freerunner A5, with
* [http://build.shr-project.org/shr-unstable/ SHR unstable] kernel 2.6.32.13-oe3.2+gitr6+a9254be10ac2294ea20165a87c09ea6afcf66d94-r0
+
[http://www.handheld-linux.com/wiki.php?page=Buzz-Rework Buzz],
* [http://home.a-eskwadraat.nl/~pwerken/debian/ Enlightenment (svn r49003)]
+
[http://www.handheld-linux.com/wiki.php?page=Bass-Rework Bass], and
 
+
[http://www.handheld-linux.com/wiki.php?page=1024-Rework 1024] reworks,
----
+
 
+
Bought a 2.5mm to 3.5mm converter cable ([http://www.dealextreme.com/details.dx/sku.7127 sku.7127 at dealextreme]).
+
 
<br/>
 
<br/>
It has the following pin-layout: TRRS: left, right, mic (unconnected), ground
+
and "Standard" [[Freerunner Navigation Board v2]] installed.
<br/>
+
Unfortunately this is incompatible with the FR which uses [[Headset#Pinout|TRRS: mic, right, left, ground]]
+
  
----
+
OS: [http://www.debian.org debian] (sid)
 +
* [[Kernel#Building_the_2.6.32_branch|Kernel building]]
 +
** [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 (16G, class 2):
 +
** p1 <tt>rootfs</tt>    (1G)
 +
** p2 <tt>/home,/srv</tt> (14+G)
 +
** p3 <tt>swap</tt>      (128M)
 +
*  debian tweaks:
 +
** localepurge
 +
** dpkg with "path-exclude /usr/share/doc/*"
 +
** [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
  
=== Useful links ===
+
== Links ==
  
* [http://downloads.openmoko.org/developer/schematics/GTA02/component-placement_by_lindi/ Component Placement by Lindi]
 
* [http://www.neofundas.blogspot.com/ #1024 Hardware fix]
 
* [[Freerunner Navigation Board]]
 
 
* [http://lists.openmoko.org/pipermail/community/2010-January/059014.html Handset sound volume issues]
 
* [http://lists.openmoko.org/pipermail/community/2010-January/059014.html Handset sound volume issues]
 
Usage:
 
 
* [[Manually_using_Bluetooth|Bluetooth]]
 
* [[Manually_using_Bluetooth|Bluetooth]]
 
* [[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]]
 
Screen protector:
 
 
* [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 ==
 +
 +
'''# 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

Latest revision as of 22: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

Currently running debian (squeeze) from µSD with:


Bought a 2.5mm to 3.5mm converter cable (sku.7127 at dealextreme).
It has the following pin-layout: TRRS: left, right, mic (unconnected), ground
Unfortunately this is incompatible with the FR which uses TRRS: mic, right, left, ground


Useful links

Usage:

Screen protector: