User:PWerken

From Openmoko

(Difference between revisions)
Jump to: navigation, search
(add device-hook script for adding agps support to gpsd)
 
(21 intermediate revisions by one user not shown)
Line 1: Line 1:
'''Peter van de Werken'''
+
== Peter van de Werken [[Special:Emailuser/PWerken|(email)]] ==
----
+
  
Bought a 2.5mm to 3.5mm converter cable ([http://www.dealextreme.com/details.dx/sku.7127 sku.7127 at dealextreme]).<br/>
+
Freerunner A5, with
It has the following pin-layout: TRRS: left, right, mic (unconnected), ground
+
[http://www.handheld-linux.com/wiki.php?page=Buzz-Rework Buzz],
 +
[http://www.handheld-linux.com/wiki.php?page=Bass-Rework Bass], and
 +
[http://www.handheld-linux.com/wiki.php?page=1024-Rework 1024] reworks,
 +
<br/>
 +
and "Standard" [[Freerunner Navigation Board v2]] installed.
  
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
  
----
+
== Links ==
  
Currently running a 2.6.34-oe4+gitr3 kernel from [http://build.shr-project.org/shr-kms/ shr-kms] with debian (squeeze/sid) as OS.
+
* [http://lists.openmoko.org/pipermail/community/2010-January/059014.html Handset sound volume issues]
 +
* [[Manually_using_Bluetooth|Bluetooth]]
 +
* [[Tethering#Turning_your_FreeRunner_into_a_Network_Address_Translation_.28NAT.29_gateway|Tethering]]
 +
* [http://www.screenpatronus.com ScreenPatronus]
  
The touchscreen was misconfigured (could not reach all the corners with the cursor, and also the axes were messed up) in X.
+
== gpsd device-hook ==
Calibration failed as there's no longer a /sys/.../calibrate. Also the option in the InputDevice section where ignored as udev (157) was already providing the input device.  So I fixed it by removing the unused inputdevice section and adding:
+
  
Section "InputClass"
+
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.
    Identifier              "S3C24XX TouchScreen"
+
    MatchDevicePath        "/dev/input/event1"
+
+
    Option "GrabDevice"    "1"
+
    Option "InvertY"        "1"
+
    Option "Calibration"    "110 920 110 920"
+
    Option "SwapAxes"      "1"
+
  EndSection
+
  
note: /etc/pointercal doesn't seem to be used anymore
+
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 :
  
* [http://downloads.openmoko.org/developer/schematics/GTA02/component-placement_by_lindi/ Component Placement by Lindi]
+
DATA=/var/cache/gta02-gps/agpsdata # nobody:dialout a=r,u+w
* [http://www.neofundas.blogspot.com/ #1024 Hardware fix]
+
agps=/usr/local/bin/gta02-gps
* [http://lists.openmoko.org/pipermail/community/2010-January/059014.html Handset sound volume issues]
+
 +
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.
  
Usage:
+
== Navigation Board v2 ==
* [[Manually_using_Bluetooth|Bluetooth]]
+
* [[Tethering#Turning_your_FreeRunner_into_a_Network_Address_Translation_.28NAT.29_gateway|Tethering]]
+
  
Screen protector:
+
'''# i2cdetect -l'''
* [http://www.screenpatronus.com ScreenPatronus]
+
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 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


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


Currently running a 2.6.34-oe4+gitr3 kernel from shr-kms with debian (squeeze/sid) as OS.

The touchscreen was misconfigured (could not reach all the corners with the cursor, and also the axes were messed up) in X. Calibration failed as there's no longer a /sys/.../calibrate. Also the option in the InputDevice section where ignored as udev (157) was already providing the input device. So I fixed it by removing the unused inputdevice section and adding:

Section "InputClass"
    Identifier              "S3C24XX TouchScreen"
    MatchDevicePath         "/dev/input/event1"

    Option "GrabDevice"     "1" 
    Option "InvertY"        "1" 
    Option "Calibration"    "110 920 110 920"
    Option "SwapAxes"       "1"
EndSection

note: /etc/pointercal doesn't seem to be used anymore


Usage:

Screen protector: