http://wiki.openmoko.org/api.php?action=feedcontributions&user=Myfanwy&feedformat=atomOpenmoko - User contributions [en]2016-12-09T16:30:57ZUser contributionsMediaWiki 1.19.24http://wiki.openmoko.org/wiki/Disassembling_Neo_1973Disassembling Neo 19732012-05-09T06:41:35Z<p>Myfanwy: /* Removing PCB from case frame */</p>
<hr />
<div>{{Neo1973}}<br />
<br />
{{note| The [[Disassembling Neo1973 | Disassembling the Neo1973 page]] shows how to open up the Neo 1973. Since the Neo FreeRunner shares the same case, this procedure applies to both. }}<br />
<br />
== Back side of Neo1973 ==<br />
The picture below is from the GTA01Bv3 model. The GTA01Bv4 has the Openmoko logo + OPENMOKO text below instead.<br />
<br />
[[Image:Gta01b v3 case back white.jpg|700px]]<br />
<br />
== Opening back cover ==<br />
<br />
To remove the back cover, put your fingernail in the small recess on the top of the Neo, and pull gently.<br />
<br />
{{note| the back is not hinged, as it may appear in this picture; lift both sides away equally to avoid breaking the small tabs.}}<br />
<br />
[[Image:Gta01b v3 case back open white.jpg|700px]]<br />
<br />
Please note the 27 x 9 x 6 mm space above the sim &amp; memory cards after inserting the battery. This could maybe be of some use for 3rd party electronics.<br />
<br />
[[Image:Gta01b v4 space next to battery.jpg|700px]]<br />
<br />
{{note| In order to remove the front cover, you now need to remove the two Torx screws (T6x40)}}<br />
<br />
== Carefully remove top cover ==<br />
[[Image:Gta01b v3 case side opening white.jpg|700px]]<br />
<br />
To remove the top cover, after removing the two Torx screws, ''carefully'' squeeze the end of the supplied guitar pick between the cover and the case at the bottom of the device, and then slide the pick up to the top on one side (do not twist the pick). As you slide the pick along, the case retaining clips should come apart with a snapping sound. Repeat the procedure for the other side of the device. To unclip the last remaining large retaining clip at the top, slide the pick all the way to the top (this can be difficult) and then press it in at the centre. By ''careful'' application of force the clip will detach and the cover can then be removed.<br />
<br />
== Top case lid removed ==<br />
[[Image:Gta01b v3 case top open white.jpg|700px]]<br />
<br />
Visible in this image, from the right, going clockwise.<br />
<br />
*The blocky device at the far right is the GPS antenna.<br />
**To the left of this, there are two gold pads, which are where the earpiece speaker connects.<br />
*The [[Debug Board]] connector.<br />
*At the left, the black semicircular device is the GSM antenna.<br />
**Immediately to its right, the small circular black/gold object is the microphone<br />
*At the top right, the ''Aux button''<br />
*Right below it seems to be a small battery. It can also be seen on the picture below.<br />
<br />
In the middle is the touchscreen LCD, the touchscreen printed wire can be seen beginning at the bottom left of this, through the glass.<br />
<br />
== Lifting the PCB on the left side ==<br />
{{note|You have to bend the plastic case a bit outwards until the headphone jack on the left side of the device becomes loose}}<br />
[[Image:Gta01b v3 case top open pcb lift white.jpg|700px]]<br />
<br />
Its not shown in this picture, but I've found that it helps to slide the AUX button out of the case before trying to remove the PCB. This allows you to get a firm hold on the PCB while gently bending the case to free the headphone jack and plastic retaining clips.<br />
<br />
The &quot;official&quot; method:&lt;br&gt;<br />
I suggest to use your right hand thumb fingernail to bend the case outward exactly above hs-jack (index finger next to GSM-ant, middle finger in small recess next to GPS-ant) while holding the &quot;USB-Side&quot; of case in the inside of your four finger base knuckles of left hand and gently pushing battery compartment base with left middle finger. Board pops out easily, takes 1sec.<br />
<br />
Please do not use screwdriver for a lever (or similar things), this might easily break components on mainboard<br />
<br />
== Removing PCB from case frame ==<br />
{{note|Since the PCB now is loose on one side, you can carefully pull the USB socket and GPS antenna connector out of the right side of the case, and then flip the PCB upwards}}<br />
[[Image:Gta01b v3 case top open pcb lifted.jpg|700px]]<br />
<br />
This shows:<br />
*At the top on a green board, the bluetooth module, and the square bluetooth antenna.<br />
*The headset jack is to the right of this.<br />
**Immediately below the headset jack is the [[Neo1973 Battery]] connector.<br />
**Below the [[Neo1973 Battery]] connector, the two gold pads feed the vibrator motor.<br />
*To the right of the headset jack is the left speaker connector.<br />
<br />
On the other side of the PCB, going from bottom-right corner down-left.<br />
<br />
*The small circular connector is the GSM connector to which an external aerial can be connected with the back removed, or with an alternative back.<br />
<br />
*To the left of this is the right speaker connector.<br />
*One of the button switches.<br />
*USB port.<br />
*Micro-SD slot<br />
*SIM slot - overlaying the Micro-SD slot when present.<br />
*Golden GPS antenna connector.<br />
**Immediately above this with the grey wire connection is the connection to the built in GPS antenna. <br />
<br />
On the case picture below, you can see the left and right speakers under the translucent plastic, and the vibrator motor in the middle. Don't forget, there is only one speaker on the Neo Freerunner, not two.<br />
<br />
== Empty case frame ==<br />
<br />
[[Image:Gta01b v3 case empty white.jpg|700px]]<br />
<br />
You can actually see the two stereo speakers beneath the translucent cover, and next to it the small vibrator motor.<br />
<br />
Next to the top of the picture is a hole near the speaker.<br />
The external GSM antenna connector is accessed through this hole.<br />
<br />
== GSM Antenna ==<br />
<br />
[[Image:Gta01b v3 gsm antenna.jpg|700px]]<br />
<br />
== Display ==<br />
It may be easiest to unplug the ribbon cable which connects the LCD module to the PCB, before attempting to remove the screen. To do so, unpeel the silver-grey fabric strip which passes over the ribbon conenctor and around the board edge, and then flip up the black clip which holds the ribbon in place. The clip is at the PCB end of the ribbon, and is approximately 2mm x 12mm. The ribbon can then easily be pulled out of the white socket on the PCB. When reinserting after replacing the screen, be sure the ribbon is central, square to the socket, and pushed all the way in, or the screen may not turn on.<br />
<br />
The screen is fixed to the PCB by a strip of adhesive which extends the length of the module, down its centre. You will need to pry it off starting on the side opposite its connector cable. If care is taken removing it you can use it again (I used a blow dryer to heat the screen to make prying the screen from the board a little less likely to damage the unit).<br />
<br />
There are also four silver-grey pads, one at each corner, which support the screen, and a ribbon to the bluetooth module which passes around the PCB midway along one side. Be careful not to damage the ribbon or the pads when removing the LCD module.<br />
<br />
&lt;span id=&quot;bottom&quot;&gt;&lt;/span&gt;<br />
{{Languages|Disassembling_Neo1973}}<br />
<br />
[[Category:Neo1973 Hardware]]<br />
[[Category:Neo_FreeRunner_Hardware]]</div>Myfanwyhttp://wiki.openmoko.org/wiki/Disassembling_Neo_1973Disassembling Neo 19732012-05-09T06:39:51Z<p>Myfanwy: /* Display */</p>
<hr />
<div>{{Neo1973}}<br />
<br />
{{note| The [[Disassembling Neo1973 | Disassembling the Neo1973 page]] shows how to open up the Neo 1973. Since the Neo FreeRunner shares the same case, this procedure applies to both. }}<br />
<br />
== Back side of Neo1973 ==<br />
The picture below is from the GTA01Bv3 model. The GTA01Bv4 has the Openmoko logo + OPENMOKO text below instead.<br />
<br />
[[Image:Gta01b v3 case back white.jpg|700px]]<br />
<br />
== Opening back cover ==<br />
<br />
To remove the back cover, put your fingernail in the small recess on the top of the Neo, and pull gently.<br />
<br />
{{note| the back is not hinged, as it may appear in this picture; lift both sides away equally to avoid breaking the small tabs.}}<br />
<br />
[[Image:Gta01b v3 case back open white.jpg|700px]]<br />
<br />
Please note the 27 x 9 x 6 mm space above the sim &amp; memory cards after inserting the battery. This could maybe be of some use for 3rd party electronics.<br />
<br />
[[Image:Gta01b v4 space next to battery.jpg|700px]]<br />
<br />
{{note| In order to remove the front cover, you now need to remove the two Torx screws (T6x40)}}<br />
<br />
== Carefully remove top cover ==<br />
[[Image:Gta01b v3 case side opening white.jpg|700px]]<br />
<br />
To remove the top cover, after removing the two Torx screws, ''carefully'' squeeze the end of the supplied guitar pick between the cover and the case at the bottom of the device, and then slide the pick up to the top on one side (do not twist the pick). As you slide the pick along, the case retaining clips should come apart with a snapping sound. Repeat the procedure for the other side of the device. To unclip the last remaining large retaining clip at the top, slide the pick all the way to the top (this can be difficult) and then press it in at the centre. By ''careful'' application of force the clip will detach and the cover can then be removed.<br />
<br />
== Top case lid removed ==<br />
[[Image:Gta01b v3 case top open white.jpg|700px]]<br />
<br />
Visible in this image, from the right, going clockwise.<br />
<br />
*The blocky device at the far right is the GPS antenna.<br />
**To the left of this, there are two gold pads, which are where the earpiece speaker connects.<br />
*The [[Debug Board]] connector.<br />
*At the left, the black semicircular device is the GSM antenna.<br />
**Immediately to its right, the small circular black/gold object is the microphone<br />
*At the top right, the ''Aux button''<br />
*Right below it seems to be a small battery. It can also be seen on the picture below.<br />
<br />
In the middle is the touchscreen LCD, the touchscreen printed wire can be seen beginning at the bottom left of this, through the glass.<br />
<br />
== Lifting the PCB on the left side ==<br />
{{note|You have to bend the plastic case a bit outwards until the headphone jack on the left side of the device becomes loose}}<br />
[[Image:Gta01b v3 case top open pcb lift white.jpg|700px]]<br />
<br />
Its not shown in this picture, but I've found that it helps to slide the AUX button out of the case before trying to remove the PCB. This allows you to get a firm hold on the PCB while gently bending the case to free the headphone jack and plastic retaining clips.<br />
<br />
The &quot;official&quot; method:&lt;br&gt;<br />
I suggest to use your right hand thumb fingernail to bend the case outward exactly above hs-jack (index finger next to GSM-ant, middle finger in small recess next to GPS-ant) while holding the &quot;USB-Side&quot; of case in the inside of your four finger base knuckles of left hand and gently pushing battery compartment base with left middle finger. Board pops out easily, takes 1sec.<br />
<br />
Please do not use screwdriver for a lever (or similar things), this might easily break components on mainboard<br />
<br />
== Removing PCB from case frame ==<br />
{{note|Since the PCB now is loose on one side, you can carefully pull the USB socket and GPS antenna connector out of the right side of the case, and then flip the PCB upwards}}<br />
[[Image:Gta01b v3 case top open pcb lifted.jpg|700px]]<br />
<br />
This shows:<br />
*At the top on a green board, the bluetooth module, and the square bluetooth antenna.<br />
*The headset jack is to the right of this.<br />
**Immediately below the headset jack is the [[Neo1973 Battery]] connector.<br />
**Below the [[Neo1973 Battery]] connector, the two gold pads feed the vibrator motor.<br />
*To the right of the headset jack is the left speaker connector.<br />
<br />
On the other side of the PCB, going from bottom-right corner down-left.<br />
<br />
*The small circular connector is the GSM connector to which an external aerial can be connected with the back removed, or with an alternative back.<br />
<br />
*To the left of this is the right speaker connector.<br />
*One of the button switches.<br />
*USB port.<br />
*Micro-SD slot<br />
*SIM slot - overlaying the Micro-SD slot when present.<br />
*Gold GPS antenna connector.<br />
**Immediately above this with the grey wire connection is the connection to the built in GPS antenna. <br />
<br />
On the case picture below, you can see the left and right speakers under the translucent plastic, and the vibrator motor in the middle.<br />
<br />
== Empty case frame ==<br />
<br />
[[Image:Gta01b v3 case empty white.jpg|700px]]<br />
<br />
You can actually see the two stereo speakers beneath the translucent cover, and next to it the small vibrator motor.<br />
<br />
Next to the top of the picture is a hole near the speaker.<br />
The external GSM antenna connector is accessed through this hole.<br />
<br />
== GSM Antenna ==<br />
<br />
[[Image:Gta01b v3 gsm antenna.jpg|700px]]<br />
<br />
== Display ==<br />
It may be easiest to unplug the ribbon cable which connects the LCD module to the PCB, before attempting to remove the screen. To do so, unpeel the silver-grey fabric strip which passes over the ribbon conenctor and around the board edge, and then flip up the black clip which holds the ribbon in place. The clip is at the PCB end of the ribbon, and is approximately 2mm x 12mm. The ribbon can then easily be pulled out of the white socket on the PCB. When reinserting after replacing the screen, be sure the ribbon is central, square to the socket, and pushed all the way in, or the screen may not turn on.<br />
<br />
The screen is fixed to the PCB by a strip of adhesive which extends the length of the module, down its centre. You will need to pry it off starting on the side opposite its connector cable. If care is taken removing it you can use it again (I used a blow dryer to heat the screen to make prying the screen from the board a little less likely to damage the unit).<br />
<br />
There are also four silver-grey pads, one at each corner, which support the screen, and a ribbon to the bluetooth module which passes around the PCB midway along one side. Be careful not to damage the ribbon or the pads when removing the LCD module.<br />
<br />
&lt;span id=&quot;bottom&quot;&gt;&lt;/span&gt;<br />
{{Languages|Disassembling_Neo1973}}<br />
<br />
[[Category:Neo1973 Hardware]]<br />
[[Category:Neo_FreeRunner_Hardware]]</div>Myfanwyhttp://wiki.openmoko.org/wiki/Specialized_USB_cablesSpecialized USB cables2010-03-13T07:20:01Z<p>Myfanwy: /* USB hubs that can be used like a Y-cable without modifications */</p>
<hr />
<div>{{note|work in progress}}<br />
<br />
== Attaching the Neo (acting as a USB host) to a USB device ==<br />
<br />
The USB port (5 position mini type B jack) on the Neo 1973 and Neo FreeRunner can be both a USB device or a USB host. The provided cable (5 position mini type B plug to type A plug) is used when attaching the Neo to a USB host.<br />
<br />
A specialized cable is required when attaching the Neo to a USB device. (The device has a USB type A jack).<br />
<br />
(picture)<br />
<br />
Alternately, an adapter capable of connecting two type A plugs will allow attaching the provided USB cable to the USB cable that came with the USB device. This adapter is also known as a gender changer.<br />
<br />
(picture)<br />
<br />
=== Ready-made mini type A plug to a type A jack adapter ===<br />
<br />
You can now purchase a proper [http://www.electronicproductonline.com/catalog/product_info.php?products_id=2043 custom-manufacturered mini-A to full-sized A USB adapter from here]. This adapter already has Pins 4 and 5 shorted together internally; the unique form factor also makes it very handy and eliminated the need for things like the double USB female adapter trick shown at the bottom of this page.<br />
<br />
[[Image:USBOTGSwivel.jpg]]<br />
<br />
=== Ready-made mini type B plug to a type A jack cable ===<br />
<br />
You can buy [[http://www.jaykang.com/usbafetousbm1.html this]] ready-made USB A-Type Female to USB Mini-B Type 5 Pin Male Adapter.<br />
[[Image:jaykang_usbafetousbm1.jpg|thumb|none]]<br />
<br />
It is available in Europe from Openmoko distributor Goldelico: http://www.handheld-linux.com/wiki.php?page=Neo%20Freerunner%3AUSB%20Adapter<br />
<br />
A Mini-B to Female-A cable is also available from [http://www.usbfirewire.com/Parts/rr-2mb-020.html www.usbfirewire.com].<br />
<br />
Adapter $1.45 including worldwide shipping, http://www.dealextreme.com/details.dx/sku.26783 --[[User:Schorhr|Schorhr]] 05:24, 16 September 2009 (UTC)<br />
<br />
=== How to make a mini type B plug to a type A jack cable ===<br />
<br />
(picture, as soon as I build it)<br />
<br />
Parts list:<br />
<br />
* Mini type B plug: Digi-Key [[http://search.digikey.com/scripts/DkSearch/dksus.dll?Detail?name=H2958-ND H2958-ND]]<br />
* type A jack: I have not yet been able to find a source for these. Meanwhile, use the jack from a standard USB extension cord<br />
* Cable: Ideally, the data lines should be twisted and 28 AWG, the power lines should be 20 or 28 AWG, e.g. Hitachi Cable [[http://www.hcm.hitachi.com/electronic_round_cable/bulk-usb-cable.shtml 49248 ]]<br />
<br />
Construction instructions:<br />
<br />
(TBA)<br />
<br />
=== Ready-made type A jack to a type A jack adapter (gender changer) ===<br />
<br />
You can buy [[http://www.jaykang.com/usbtyfetotyf.html this]] ready-made USB Type A Female to Female Gender Changer.<br />
[[Image:jaykang_usbtyfetotyf.jpg|thumb|none]]<br />
<br />
=== How to make a type A jack to a type A jack adapter (gender changer) ===<br />
<br />
This community provided instruction shows how to build an adapter from a USB socket salvaged from a computer motherboard.<br />
<br />
Note that these instructions are provided in the hope that they are useful but without any warranty!<br />
<br />
[[Image:2-usb-receptables.jpg|thumb|none]]<br />
<br />
:#Find an old motherboard with a set of two USB receptacles as shown above.<br />
:#Desolder this set of receptacles from the motherboard. This can be bit tricky but it is doable at least with a desoldering gun. Solder braid (available at electronic parts stores including Radio Shack) works better than even a professional desoldering gun and is a lot cheaper.<br />
:#Each receptacle has four pins. Use a multimeter to verify that you have no short circuits between the pins or the shield.<br />
:#Solder adjacent pins together (GND to GND, D- to D-, D+ to D+, VCC to VCC).<br />
:#(Optional) Build a test cable. Cut an USB cable with A plug into half, connect it a receptacle and again measure that you have no short circuits. Then connect the test cable to PC and verify that you see<br />
*black GND<br />
*green 0V<br />
*white 0V<br />
*red +5V<br />
:#FreeRunner is shipped with a mini-B-to-A-plug cable. Connect this to a receptacle.<br />
:#(Optional)Connect test cable to the other receptacle and verify that you see<br />
*black GND<br />
*green 0V<br />
*white 0V<br />
*red 0V<br />
when freerunner acts as a device and<br />
*black GND<br />
*green 0V<br />
*white 0V<br />
*red +5V<br />
when it acts as a host.<br />
:#At your own risk, switch freerunner to USB host mode and connect an USB device to the other receptacle of the adapter. Here's how the setup should look like:<br />
<br />
&lt;gallery&gt;<br />
Image:Usb-gender-changer1.jpg<br />
Image:Usb-gender-changer2.jpg<br />
&lt;/gallery&gt;<br />
<br />
=== How to make a type A jack to a type A jack adapter (gender changer) without soldering ===<br />
<br />
:#Find a 2-port USB front-panel with a 9-pin connector. Usually you can get one from a PC motherboard package box.<br />
:#Align it in a way so you see the connector pins as a 2 row 5 column matrix with one pin missing.<br />
:#Use 4 staples to short the pins residing in a same column.<br />
:#FreeRunner is shipped with a mini-B-to-A-plug cable. Use it to connect the first port of your panel with your FreeRunner.<br />
:#At your own risk, switch freerunner to USB host mode and connect an USB device to the other receptacle of the adapter.<br />
<br />
If you have a ASUS USB/MIR front panel, it is even easier - you can use jumpers to short the pins.<br />
<br />
[[Image:asususb.jpg]]<br />
<br />
=== Compatibility ===<br />
<br />
The adapter works with kingston data traveller 4G memory stick and aiptec pencam webcam. However, for some reason (probably the missing 15k resistors at D+ and D-) it did not work with any of the tested USB keyboards or mice:<br />
&lt;pre&gt;<br />
usb 1-2: new full speed USB device using s3c2410-ohci and address 24<br />
usb 1-2: device descriptor read/64, error -62<br />
usb 1-2: device descriptor read/64, error -62<br />
usb 1-2: new full speed USB device using s3c2410-ohci and address 25<br />
usb 1-2: device descriptor read/64, error -62<br />
usb 1-2: device descriptor read/64, error -62<br />
usb 1-2: new full speed USB device using s3c2410-ohci and address 26<br />
usb 1-2: device not accepting address 26, error -62<br />
usb 1-2: new full speed USB device using s3c2410-ohci and address 27<br />
usb 1-2: device not accepting address 27, error -62<br />
&lt;/pre&gt;<br />
However, if I connect neo to small (unpowered) USB hub<br />
&lt;pre&gt;<br />
usb 1-2: new full speed USB device using s3c2410-ohci and address 61<br />
usb 1-2: configuration #1 chosen from 1 choice<br />
hub 1-2:1.0: USB hub found<br />
hub 1-2:1.0: 4 ports detected<br />
&lt;/pre&gt;<br />
and connect the keyboard to the hub then it is correctly recognized:<br />
&lt;pre&gt;<br />
usb 1-2.3: new low speed USB device using s3c2410-ohci and address 62<br />
usb 1-2.3: configuration #1 chosen from 1 choice<br />
input: USB Keyboard as /devices/platform/s3c2410-ohci/usb1/1-2/1-2.3/1-2.3:1.0/input/input13<br />
input: USB HID v1.10 Keyboard [ USB Keyboard] on usb-s3c24xx-2.3<br />
input: USB Keyboard as /devices/platform/s3c2410-ohci/usb1/1-2/1-2.3/1-2.3:1.1/input/input14<br />
input: USB HID v1.10 Device [ USB Keyboard] on usb-s3c24xx-2.3<br />
&lt;/pre&gt;<br />
With the hub I can also use both keyboard and usb memory stick at the same time.<br />
<br />
==== Power consumption ====<br />
<br />
When I unplug the USB hub (with only keyboard connected to it) the power consumption estimate at /sys/devices/platform/bq2700-battery.0/power_supply/bat/current_now decreases from 175000 to 145000 (are these microamperes?).<br />
<br />
== Buy a USB Y cable for powering USB devices and charging the Freerunner while in host mode ==<br />
<br />
You do not need to make a cable, you can just buy a &quot;USB 2.0 Dual Power Cable, 2 x Type A to mini B&quot; from [http://www.lindy.co.uk/1m-usb-2-dual-power-cable-2-x-type-a-50cm-apart-to-mini-b/31782.html lindy]. You then plug (via an adapter) the central plug of the Y cable into the upstream port (B socket or A plug) of your powered USB hub, the other A plug of the Y cable into one of the A sockets of your hub, and the mini-B plug of the Y cable into your Freerunner. Put your Freerunner into USB unpowered host mode. It will charge and you can plug a keyboard, a mouse, a disk, cable modem, etc, into the hub.<br />
<br />
Adapters, [http://www.rueducommerce.fr/Accessoires-Consommables/Cables-USB/Adaptateurs-convertisseurs/-/MO-35F4EM2168156-Adaptateur-Usb-type-A-Femelle-type-B-Male.htm A female to B male] or [http://www.rueducommerce.fr/Accessoires-Consommables/Cables-USB/Adaptateurs-convertisseurs/-/MO-B7A48M2167837-Changeur-Usb-type-A-Femelle-Femelle.htm A female to A female], are easy to find on the net. You will need a &quot;A female to B male&quot; if your hub has a type B socket or a &quot;A female to A female&quot; if your hub has a type A plug.<br />
<br />
== How to make a USB cable for powering attached USB devices and charging the Neo while in host mode (aka Y-Cable) ==<br />
<br />
{{note|work in progress}}<br />
<br />
This method was invented by [[User:JOERG|Joerg Reisenweber]], and was<br />
since implemented practically by many community members. See<br />
http://lists.openmoko.org/pipermail/community/2008-March/013978.html .<br />
<br />
---<br />
You can find some pictures (schematics, parts and part numbers<br />
at http://om.quatrox.org/om/ but be careful!!!<br />
Report any bugs to quatrox<br />
(irc #openmoko, #openmoko-cdevel, #ocp at freenode.org)<br />
---<br />
<br />
<br />
This cable might be necessary for a number of reasons, e.g.<br />
<br />
* The application requires that the Neo not become suspended<br />
* The application requires long run time<br />
* The attached USB device consumes a lot of power<br />
<br />
(However, as there is a wide range[http://permalink.gmane.org/gmane.comp.handhelds.openmoko.hardware/415]<br />
of USB hubs out there, one might find power (on a powered USB hub)<br />
is available already on the hub's mini USB 5 pin socket already, so not need a specialized cable after all!<br />
Check with a test meter.)<br />
<br />
These instructions will show you how to make a cable with 3 ends:<br />
<br />
* A mini-USB type B cable for the Neo itself<br />
* A cable of whatever type to go to your USB device.<br />
* A cable going to a +5V +/-10%(max!) power supply with enough power for your device and to charge the Neo. This could be a wall charger or even another USB plug.<br />
<br />
You connect the Data+ and Data- wires of the Neo and the device, and connect all of the ground wires together and all of the +5V wires together. This powers the Neo and the device, while letting the neo talk to the device.<br />
You have to connect 2 pcs 15k ohm resistors, one from D+ to ground, and one from D- to ground, to comply with USB-spec for hostmode, as Neo is switching off the internal resistors when you enable charging/powering over USB by asserting EN_USBHOST.<br />
See schematics, LOCATION:49XX<br />
<br />
Just for reference, the USB wires from left to right are:<br />
*Black: Power -<br />
*Green: Data -<br />
*White: Data +<br />
*Red: Power +<br />
<br />
The Mini_USB-B connector has a fifth pin, the ID-pin.<br />
This pin is supposed to be short to ground to signal FreeRunner to enter hostmode. For the Y-cable and enabling external power while in hostmode, you may connect a 47k ohm resistor from ID-pin to ground. This is the same trick the OM-wallcharger uses to signal to FreeRunner it can charge with 1A. Future kernels should switch to hostmode + external power when seeing this 47k resistor.<br />
<br />
===Parts===<br />
USB 2.0 Plug type A to mini 5 pin USB Plug type B that should include the ID signal, so that you can add the 47k ohm resistor to ID-pin to trigger fast charging<br />
<br />
# [http://www.firefold.com/Products/6-Foot-USB-20-Plug-type-A-to-mini-USB-Plug-type-B-5-pin-Cable---Black__USB-5PMINI-6.aspx firefold]<br />
# Belkin 5 pin (find reference)<br />
#https://www.argentdata.com/catalog/product_info.php?products_id=111<br />
#http://www.partsdata.de/USB_Mini-B-Verlaengerung_Kabel_1m_CU-XB05-10.html<br />
<br />
== USB hubs that can be used like a Y-cable without modifications ==<br />
<br />
[http://www.dealextreme.com/details.dx/sku.13526 Cable Style Dual-Power 1000mA USB 2.0 4-Port Hub]. Connect power source to the red upstream connector and openmoko to the black upstream connector. Then connect USB devices to the downstream ports. After settings usb_mode=host the openmoko will charge and will still be able to talk to the downstream ports.&lt;br&gt;<br />
also available on ebay: [http://cgi.ebay.com/High-Speed-Smart-3-Ports-USB-Hub-5-Pin-Cable-for-PC_W0QQitemZ260567368077QQcmdZViewItemQQptZLH_DefaultDomain_0?hash=item3cab06818d]<br />
<br />
[[Category:USB]]<br />
[[Category:Neo FreeRunner Hardware]]<br />
[[Category:Power]]</div>Myfanwyhttp://wiki.openmoko.org/wiki/Specialized_USB_cablesSpecialized USB cables2010-03-13T07:19:38Z<p>Myfanwy: /* USB hubs that can be used like a Y-cable without modifications */</p>
<hr />
<div>{{note|work in progress}}<br />
<br />
== Attaching the Neo (acting as a USB host) to a USB device ==<br />
<br />
The USB port (5 position mini type B jack) on the Neo 1973 and Neo FreeRunner can be both a USB device or a USB host. The provided cable (5 position mini type B plug to type A plug) is used when attaching the Neo to a USB host.<br />
<br />
A specialized cable is required when attaching the Neo to a USB device. (The device has a USB type A jack).<br />
<br />
(picture)<br />
<br />
Alternately, an adapter capable of connecting two type A plugs will allow attaching the provided USB cable to the USB cable that came with the USB device. This adapter is also known as a gender changer.<br />
<br />
(picture)<br />
<br />
=== Ready-made mini type A plug to a type A jack adapter ===<br />
<br />
You can now purchase a proper [http://www.electronicproductonline.com/catalog/product_info.php?products_id=2043 custom-manufacturered mini-A to full-sized A USB adapter from here]. This adapter already has Pins 4 and 5 shorted together internally; the unique form factor also makes it very handy and eliminated the need for things like the double USB female adapter trick shown at the bottom of this page.<br />
<br />
[[Image:USBOTGSwivel.jpg]]<br />
<br />
=== Ready-made mini type B plug to a type A jack cable ===<br />
<br />
You can buy [[http://www.jaykang.com/usbafetousbm1.html this]] ready-made USB A-Type Female to USB Mini-B Type 5 Pin Male Adapter.<br />
[[Image:jaykang_usbafetousbm1.jpg|thumb|none]]<br />
<br />
It is available in Europe from Openmoko distributor Goldelico: http://www.handheld-linux.com/wiki.php?page=Neo%20Freerunner%3AUSB%20Adapter<br />
<br />
A Mini-B to Female-A cable is also available from [http://www.usbfirewire.com/Parts/rr-2mb-020.html www.usbfirewire.com].<br />
<br />
Adapter $1.45 including worldwide shipping, http://www.dealextreme.com/details.dx/sku.26783 --[[User:Schorhr|Schorhr]] 05:24, 16 September 2009 (UTC)<br />
<br />
=== How to make a mini type B plug to a type A jack cable ===<br />
<br />
(picture, as soon as I build it)<br />
<br />
Parts list:<br />
<br />
* Mini type B plug: Digi-Key [[http://search.digikey.com/scripts/DkSearch/dksus.dll?Detail?name=H2958-ND H2958-ND]]<br />
* type A jack: I have not yet been able to find a source for these. Meanwhile, use the jack from a standard USB extension cord<br />
* Cable: Ideally, the data lines should be twisted and 28 AWG, the power lines should be 20 or 28 AWG, e.g. Hitachi Cable [[http://www.hcm.hitachi.com/electronic_round_cable/bulk-usb-cable.shtml 49248 ]]<br />
<br />
Construction instructions:<br />
<br />
(TBA)<br />
<br />
=== Ready-made type A jack to a type A jack adapter (gender changer) ===<br />
<br />
You can buy [[http://www.jaykang.com/usbtyfetotyf.html this]] ready-made USB Type A Female to Female Gender Changer.<br />
[[Image:jaykang_usbtyfetotyf.jpg|thumb|none]]<br />
<br />
=== How to make a type A jack to a type A jack adapter (gender changer) ===<br />
<br />
This community provided instruction shows how to build an adapter from a USB socket salvaged from a computer motherboard.<br />
<br />
Note that these instructions are provided in the hope that they are useful but without any warranty!<br />
<br />
[[Image:2-usb-receptables.jpg|thumb|none]]<br />
<br />
:#Find an old motherboard with a set of two USB receptacles as shown above.<br />
:#Desolder this set of receptacles from the motherboard. This can be bit tricky but it is doable at least with a desoldering gun. Solder braid (available at electronic parts stores including Radio Shack) works better than even a professional desoldering gun and is a lot cheaper.<br />
:#Each receptacle has four pins. Use a multimeter to verify that you have no short circuits between the pins or the shield.<br />
:#Solder adjacent pins together (GND to GND, D- to D-, D+ to D+, VCC to VCC).<br />
:#(Optional) Build a test cable. Cut an USB cable with A plug into half, connect it a receptacle and again measure that you have no short circuits. Then connect the test cable to PC and verify that you see<br />
*black GND<br />
*green 0V<br />
*white 0V<br />
*red +5V<br />
:#FreeRunner is shipped with a mini-B-to-A-plug cable. Connect this to a receptacle.<br />
:#(Optional)Connect test cable to the other receptacle and verify that you see<br />
*black GND<br />
*green 0V<br />
*white 0V<br />
*red 0V<br />
when freerunner acts as a device and<br />
*black GND<br />
*green 0V<br />
*white 0V<br />
*red +5V<br />
when it acts as a host.<br />
:#At your own risk, switch freerunner to USB host mode and connect an USB device to the other receptacle of the adapter. Here's how the setup should look like:<br />
<br />
&lt;gallery&gt;<br />
Image:Usb-gender-changer1.jpg<br />
Image:Usb-gender-changer2.jpg<br />
&lt;/gallery&gt;<br />
<br />
=== How to make a type A jack to a type A jack adapter (gender changer) without soldering ===<br />
<br />
:#Find a 2-port USB front-panel with a 9-pin connector. Usually you can get one from a PC motherboard package box.<br />
:#Align it in a way so you see the connector pins as a 2 row 5 column matrix with one pin missing.<br />
:#Use 4 staples to short the pins residing in a same column.<br />
:#FreeRunner is shipped with a mini-B-to-A-plug cable. Use it to connect the first port of your panel with your FreeRunner.<br />
:#At your own risk, switch freerunner to USB host mode and connect an USB device to the other receptacle of the adapter.<br />
<br />
If you have a ASUS USB/MIR front panel, it is even easier - you can use jumpers to short the pins.<br />
<br />
[[Image:asususb.jpg]]<br />
<br />
=== Compatibility ===<br />
<br />
The adapter works with kingston data traveller 4G memory stick and aiptec pencam webcam. However, for some reason (probably the missing 15k resistors at D+ and D-) it did not work with any of the tested USB keyboards or mice:<br />
&lt;pre&gt;<br />
usb 1-2: new full speed USB device using s3c2410-ohci and address 24<br />
usb 1-2: device descriptor read/64, error -62<br />
usb 1-2: device descriptor read/64, error -62<br />
usb 1-2: new full speed USB device using s3c2410-ohci and address 25<br />
usb 1-2: device descriptor read/64, error -62<br />
usb 1-2: device descriptor read/64, error -62<br />
usb 1-2: new full speed USB device using s3c2410-ohci and address 26<br />
usb 1-2: device not accepting address 26, error -62<br />
usb 1-2: new full speed USB device using s3c2410-ohci and address 27<br />
usb 1-2: device not accepting address 27, error -62<br />
&lt;/pre&gt;<br />
However, if I connect neo to small (unpowered) USB hub<br />
&lt;pre&gt;<br />
usb 1-2: new full speed USB device using s3c2410-ohci and address 61<br />
usb 1-2: configuration #1 chosen from 1 choice<br />
hub 1-2:1.0: USB hub found<br />
hub 1-2:1.0: 4 ports detected<br />
&lt;/pre&gt;<br />
and connect the keyboard to the hub then it is correctly recognized:<br />
&lt;pre&gt;<br />
usb 1-2.3: new low speed USB device using s3c2410-ohci and address 62<br />
usb 1-2.3: configuration #1 chosen from 1 choice<br />
input: USB Keyboard as /devices/platform/s3c2410-ohci/usb1/1-2/1-2.3/1-2.3:1.0/input/input13<br />
input: USB HID v1.10 Keyboard [ USB Keyboard] on usb-s3c24xx-2.3<br />
input: USB Keyboard as /devices/platform/s3c2410-ohci/usb1/1-2/1-2.3/1-2.3:1.1/input/input14<br />
input: USB HID v1.10 Device [ USB Keyboard] on usb-s3c24xx-2.3<br />
&lt;/pre&gt;<br />
With the hub I can also use both keyboard and usb memory stick at the same time.<br />
<br />
==== Power consumption ====<br />
<br />
When I unplug the USB hub (with only keyboard connected to it) the power consumption estimate at /sys/devices/platform/bq2700-battery.0/power_supply/bat/current_now decreases from 175000 to 145000 (are these microamperes?).<br />
<br />
== Buy a USB Y cable for powering USB devices and charging the Freerunner while in host mode ==<br />
<br />
You do not need to make a cable, you can just buy a &quot;USB 2.0 Dual Power Cable, 2 x Type A to mini B&quot; from [http://www.lindy.co.uk/1m-usb-2-dual-power-cable-2-x-type-a-50cm-apart-to-mini-b/31782.html lindy]. You then plug (via an adapter) the central plug of the Y cable into the upstream port (B socket or A plug) of your powered USB hub, the other A plug of the Y cable into one of the A sockets of your hub, and the mini-B plug of the Y cable into your Freerunner. Put your Freerunner into USB unpowered host mode. It will charge and you can plug a keyboard, a mouse, a disk, cable modem, etc, into the hub.<br />
<br />
Adapters, [http://www.rueducommerce.fr/Accessoires-Consommables/Cables-USB/Adaptateurs-convertisseurs/-/MO-35F4EM2168156-Adaptateur-Usb-type-A-Femelle-type-B-Male.htm A female to B male] or [http://www.rueducommerce.fr/Accessoires-Consommables/Cables-USB/Adaptateurs-convertisseurs/-/MO-B7A48M2167837-Changeur-Usb-type-A-Femelle-Femelle.htm A female to A female], are easy to find on the net. You will need a &quot;A female to B male&quot; if your hub has a type B socket or a &quot;A female to A female&quot; if your hub has a type A plug.<br />
<br />
== How to make a USB cable for powering attached USB devices and charging the Neo while in host mode (aka Y-Cable) ==<br />
<br />
{{note|work in progress}}<br />
<br />
This method was invented by [[User:JOERG|Joerg Reisenweber]], and was<br />
since implemented practically by many community members. See<br />
http://lists.openmoko.org/pipermail/community/2008-March/013978.html .<br />
<br />
---<br />
You can find some pictures (schematics, parts and part numbers<br />
at http://om.quatrox.org/om/ but be careful!!!<br />
Report any bugs to quatrox<br />
(irc #openmoko, #openmoko-cdevel, #ocp at freenode.org)<br />
---<br />
<br />
<br />
This cable might be necessary for a number of reasons, e.g.<br />
<br />
* The application requires that the Neo not become suspended<br />
* The application requires long run time<br />
* The attached USB device consumes a lot of power<br />
<br />
(However, as there is a wide range[http://permalink.gmane.org/gmane.comp.handhelds.openmoko.hardware/415]<br />
of USB hubs out there, one might find power (on a powered USB hub)<br />
is available already on the hub's mini USB 5 pin socket already, so not need a specialized cable after all!<br />
Check with a test meter.)<br />
<br />
These instructions will show you how to make a cable with 3 ends:<br />
<br />
* A mini-USB type B cable for the Neo itself<br />
* A cable of whatever type to go to your USB device.<br />
* A cable going to a +5V +/-10%(max!) power supply with enough power for your device and to charge the Neo. This could be a wall charger or even another USB plug.<br />
<br />
You connect the Data+ and Data- wires of the Neo and the device, and connect all of the ground wires together and all of the +5V wires together. This powers the Neo and the device, while letting the neo talk to the device.<br />
You have to connect 2 pcs 15k ohm resistors, one from D+ to ground, and one from D- to ground, to comply with USB-spec for hostmode, as Neo is switching off the internal resistors when you enable charging/powering over USB by asserting EN_USBHOST.<br />
See schematics, LOCATION:49XX<br />
<br />
Just for reference, the USB wires from left to right are:<br />
*Black: Power -<br />
*Green: Data -<br />
*White: Data +<br />
*Red: Power +<br />
<br />
The Mini_USB-B connector has a fifth pin, the ID-pin.<br />
This pin is supposed to be short to ground to signal FreeRunner to enter hostmode. For the Y-cable and enabling external power while in hostmode, you may connect a 47k ohm resistor from ID-pin to ground. This is the same trick the OM-wallcharger uses to signal to FreeRunner it can charge with 1A. Future kernels should switch to hostmode + external power when seeing this 47k resistor.<br />
<br />
===Parts===<br />
USB 2.0 Plug type A to mini 5 pin USB Plug type B that should include the ID signal, so that you can add the 47k ohm resistor to ID-pin to trigger fast charging<br />
<br />
# [http://www.firefold.com/Products/6-Foot-USB-20-Plug-type-A-to-mini-USB-Plug-type-B-5-pin-Cable---Black__USB-5PMINI-6.aspx firefold]<br />
# Belkin 5 pin (find reference)<br />
#https://www.argentdata.com/catalog/product_info.php?products_id=111<br />
#http://www.partsdata.de/USB_Mini-B-Verlaengerung_Kabel_1m_CU-XB05-10.html<br />
<br />
== USB hubs that can be used like a Y-cable without modifications ==<br />
<br />
[http://www.dealextreme.com/details.dx/sku.13526 Cable Style Dual-Power 1000mA USB 2.0 4-Port Hub]. Connect power source to the red upstream connector and openmoko to the black upstream connector. Then connect USB devices to the downstream ports. After settings usb_mode=host the openmoko will charge and will still be able to talk to the downstream ports.<br />
also available on ebay: [http://cgi.ebay.com/High-Speed-Smart-3-Ports-USB-Hub-5-Pin-Cable-for-PC_W0QQitemZ260567368077QQcmdZViewItemQQptZLH_DefaultDomain_0?hash=item3cab06818d]<br />
<br />
[[Category:USB]]<br />
[[Category:Neo FreeRunner Hardware]]<br />
[[Category:Power]]</div>Myfanwyhttp://wiki.openmoko.org/wiki/ApplicationsApplications2009-09-11T10:51:39Z<p>Myfanwy: /* Telephony */</p>
<hr />
<div>{{Languages|Applications}}<br />
This is the wiki's master application list for the Openmoko smartphones. <br />
<br />
== How to register new applications ?==<br />
<br />
This list can not be exhaustive, as new things are showing up every week. This page is here to help spreading awareness about applications. Here are instructions on how to add a specific application to this list. There are many ways to go<br />
<br />
Method 1 (preferred):<br />
* Register your application at http://opkg.org. You will get a package number there, for example 33.<br />
* Notify the community mailing list.<br />
* Come back here, click on &quot;edit&quot; next to the appropriate section title, then add a line like:<br />
&lt;pre&gt;* {{opkg.org|33|Application name}} A short description&lt;/pre&gt;<br />
<br />
Method 2: Just link to wherever the application is hosted.<br />
* Click on &quot;edit&quot; next to the appropriate section title, add a line like:<br />
&lt;pre&gt;* [http://your.host.domain/the/path/to/app/page.html Application name] A short description&lt;/pre&gt;<br />
<br />
Method 3: Create a new page in this wiki.<br />
* Click on &quot;edit&quot; next to the appropriate section title, then add a line like:<br />
&lt;pre&gt;* [[Application name]] A short description&lt;/pre&gt;<br />
* The application name will appear in red, click on it to create and edit the new page.<br />
<br />
== Audio ==<br />
<br />
* [http://www.faltantornillos.net/proyectos/gnu/brightPlayer/brightPlayerGTK0.2.tar.gz Bright Player] - Fast, lightweight and easy random music player.<br />
* [[Dictator]] - Record mic, incoming GSM-sound, or a whole Phonecall<br />
* {{opkg.org|55|ePiano}} - epiano is going to be a virtual piano<br />
* [[Fingertier]] - minimal and finger friendly music player<br />
* [[Fourier]]- Realtime frequency analysis of sound data.<br />
* [[Guitartune]] - Tune musical Instruments.<br />
* [[GTick]] - GTick is a metronome application written for GNU/Linux<br />
* [[Intone]] - Elementary based mplayer frontend (for audio files).<br />
* [[Mokoko]]- Play music.<br />
* {{opkg.org|151|MokoPod}} - Retrieve and listen to podcasts <br />
* [[Neoqplayer]] - Renamed as GorshPlayer: a multimedia player written in Qt4: play and retreive podcasts feeds, more reactive interface, now able to play videos ( in svn ).<br />
* [http://fisoft.eu/standa/openmoko/omshuffle_0.1_arm.ipk omShuffle] - Inspired by Bright Player with volume control. Needs mplayer to work.<br />
* [[Openmoko-mediaplayer2]] - Play music and video (mp3...)<br />
* [[Openmokast]] - Play audio stream and slideshow stream<br />
* [[Pythm]] - Audio player GUI using mplayer and mpd as backend.<br />
* [[PyRok]] - Audio player which uses Gstreamer for playback and Pygame for GUI.<br />
* [[Satan]] - Create your own music!<br />
* [[Streamtuner]] - Listen to Internet Radio Stations<br />
* [[Streamripper]] - Record from Internet Radio Stations<br />
* [[Voicenote]] - Voicenote is a script which allows to record any sound from the microphone into a wav file. It can play the created files too. It is intended to be an easy and quick way to do so.<br />
* [http://rzr.online.fr/q/esd boxar] - Touchscreen as a finger friendly piano -- [[User:RzR]]<br />
* {{opkg.org|271|JaMoko}} Jamoko is a Jamendo player for OpenMoko.<br />
----<br />
<br />
== BlueTooth ==<br />
* [[Coypu]] - Utility for send file via BlueTooth<br />
----<br />
<br />
== Games ==<br />
<br />
* [[Games/Om 2007.2]] - Many small games on Om 2007.2<br />
* [[Om 2008.8 Sudoku]] - Number placement based puzzle game<br />
* [[Moko-sudoku]] - Another sudoku puzzle game.<br />
* {{opkg.org|60|ScummVM}} ([[Scummvm|Wiki]]) Virtual Machine for several classic graphical point-and-click adventure games<br />
* [[Kobodeluxe]] - A top-view space shooter, available from 2008.8 repositories.<br />
* [[Pingus]] - Pingus is a lemmings clone with penguins.<br />
* [[Duke Nukem 3D]] - Legendary First Person Shooter.<br />
* [[Numptyphysics]] - A drawing puzzle game.<br />
* [[Gnuboy]] - An emulator for the handheld gaming all-time bestseller.<br />
* [[XBill]] - Little action game to stop Bill from installing Windows(tm) on computers.<br />
* [[Xlogical]]-A puzzle based game where you turn spinners to move balls around.<br />
* [[Liquid War]]-Liquid War is a truly original multiplayer wargame.<br />
* [http://unsyncopated.com/BrainSolvent/Doom%20Port DOOM]- Classic FPS. Freerunner/1973<br />
* [[MBAC]]- MBAC is &quot;Moko Bulls and Cows&quot;, a classic game for openmoko written in pygtk similar to mastermind.<br />
* [[OpenVibe]] - The first opensource vibrator.<br />
* [[OpenTTD]] - OpenTransportTycoonDeluxe, ported to openmoko, using only GPLed datafiles.<br />
* [http://scalde.free.fr/index.php?option=com_content&amp;view=article&amp;id=93:pong-pogresses&amp;catid=43:openmoko&amp;Itemid=66 Pong progresses]- This is a little pong game for the openmoko freerunner. The screen is devided in halves, so you can touch the right half to move the paddle right and the left half to move it left.<br />
* [[OpenMooCow]] - OpenMooCow reads information out of your accelerometers. Now, if you turn the phone upside down and back again, it &quot;moos&quot; like one of the little toys.<br />
* [[Freerunner LightSaber]]-Application as iphone LightSaber.<br />
* [[CellHunter]] - A game you earn points by collecting cells (in english now).<br />
* [[XSkat]] - XSkat lets you play the card game Skat defined by the official Skat Order.<br />
* {{opkg.org|136|OpenMiaoCat}} OpenMiaoCat, like OpenMooCow, makes your phone became a cat!<br />
* {{opkg.org|149|I'm Rich}} I'm Rich application<br />
* {{opkg.org|121|Mokomaze}} Ball-in-the-labyrinth game<br />
* [[Acceleroids]] Shoot-the-asteroids game<br />
* {{opkg.org|169|Black Sheep}} Fight insomnia!<br />
----<br />
<br />
== GPS ==<br />
* {{opkg.org|268|Advanced Geocaching Tool for Linux}} - &quot;Towards paperless geocaching&quot; - [[Advanced Geocaching Tool for Linux|User Manual]]<br />
* [[SGTL|Simple Geocaching Tool for Linux]] - A geocaching application which shows you the direction.<br />
* [[GPS Sight]] - Display GPS information, location, tracks, etc, without maps.<br />
* [[Gpsdrive]] - Car (bike, etc) navigation system<br />
* [[Om 2008.8 Locations]] - (aka Splinter) - Location sharing based on GPS and SMS<br />
* [[Navit]] - Car navigation system with routing engine<br />
* [[TangoGPS]] - Display map (OSM..), record GPS tracks...<br />
* [[Pyroute]] - Pyroute is a routing program written in Python. It features mobile phone GUI for maps, GPS, and routing.<br />
* [http://www.mumpot.org/ mumpot] - Display map (OSM), routing, OSM editing, a bit of live editing<br />
* [[QMapControl]] - Display maps (OSM..) and add points, lines...<br />
* [[Qpegps]] - Display map with current position<br />
* [[Idle Hands]] - Give a task to you based on your location<br />
* [[Gtkaddpoi]] - Utility for add a POI to TangoGPS using address or coordinates and export to Navit or to .kml file.<br />
* [[Gpsdcontrol]]-A simple python script for start or stop gpsd daemon with a button on the desktop.<br />
* [[OpenBmap]]-a free and open map of wireless communicating objects (e.g. cellular antenna, Wi-Fi, Bluetooth). It provides tools to mutualize data, create and access this map.<br />
* {{opkg.org|162|gvSIG Mobile}} - This is an unofficial port of gvSIG Mobile (http://www.gvsig.gva.es/) to the Openmoko platform. gvSIG Mobile for Openmoko is currently a GPS-enabled projection-aware map viewer. [http://gvsigmobileonopenmoko.wordpress.com/ Homepage].<br />
* {{opkg.org|175|BikeAtor}} - Like TangoGPS BikeAtor can display OSM Maps. The Speedometer displays the most interesting values of the trip.<br />
* {{opkg.org|178|bicirutas}} - This application looks for mtb routes in www.bicirutas.net (routes in Spain, Portugal, United Kingdom, France, Italy and Germany). It gets the current position from the gps system and downloads nearby routes. Then you can follow them with tangogps application.<br />
* [http://code.google.com/p/omgps omgps] - High performance, UBX binary or ogpsd as GPS data provider, layered maps, AGPS online, track replay, scratch on map, ruler and lat/lon grid, basic sounding. etc.<br />
* [[Travel Diary]] - a simple application to save little diary entries to a csv file and send this to a server (that can generate a .kml file or show a map or do whatever...)<br />
* [[QNavitCtl]] - send coordinates to Navit via dbus (position, destination, map center)<br />
* [[a-gps GUI]] - uses cellhunter data to locate you, then uses u-blox a-gps to initialize your GPS chip<br />
* [[sms-sentry]] - locate a lost or stolen phone<br />
* [[bicirutas]] - download bicycle routes<br />
<br />
== Graphics ==<br />
<br />
* [[Orrery]] - Displays the night sky<br />
* [[OMView]] - Image viewer<br />
* [[PyPenNotes]] - Write notes using pen and touchscreen<br />
* [[Gpe-scap]] - Take screenshots<br />
* [[Flash|Gnash]]-Play flash file on Neo<br />
* [[Neon]] - Image viewer<br />
<br />
----<br />
<br />
== Internet ==<br />
===Web browsers===<br />
* [http://www.dillo.org/ Dillo] - Multiplatform fast and small web browser ([http://misc.andi.de1.cc/dillo/ .ipk]).<br />
* fennec<br />
* [[Midori]] - Webkit based web browser<br />
* [[Minimo]] - Mozilla based web browser<br />
* [http://www.netsurf-browser.org/ netsurf]-A new browser for Neo FreeRunner.<br />
* [[Openmoko-browser2]] - The original Openmoko web browser<br />
* [http://code.google.com/p/pyqt-browser/ pyqt-browser] - modified the sample code from python-pyqt4 and changed it to use webkit for web browsing. <br />
* woosh<br />
<br />
===VOIP===<br />
* [[Twinkle]] - Voice over IP<br />
* [[Linphone]] - Voice over IP<br />
<br />
===Email clients===<br />
* [[Openmoko Mail]] - E-mail client<br />
* [http://www.claws-mail.org/ claws-mail] email client available in shr-unstable<br />
* [[Qtmail]] - Default mail program on Om 2008.8<br />
<br />
===Offline wikipedia===<br />
* [[Mokopedia]] - Read small Wikipedia dumps offline<br />
* [[Offline Wikipedia reader]] - store the entire content of wikipedia (single-language, excluding images), on a single 8GB microSD card<br />
* evopedia<br />
<br />
===IM===<br />
* [[Pidgin]] - Instant messaging client (ICQ, MSN, Jabber, Yahoo and more.)<br />
* [[CenterIM]] - Instant messaging client (terminal-based).<br />
<br />
===other===<br />
* [[Openmokast]] - Play audio stream and slideshow stream<br />
* [[PyFeedRead]] - RSS feed reader<br />
* [[TwitterMoko]] - A Twitter client for Openmoko<br />
* [http://we.trekbeyond.org/~kd8ikt/moko/shr_pkgz/ ettercap-ng] DEAD LINK<br />
* {{opkg.org|205|GPRSModem}} - Converts your neo in a GPRS modem.<br />
<br />
== Office ==<br />
* dates - a simple calendar<br />
* [[e-tasks]] - An elementary task manager<br />
* [[Epdfview]] - PDF reader.<br />
* Evince - Document reader for PDF, PS, DJVU and more.<br />
* [[FBReader]] - E-book reader program (TXT, FB2, HTML and more)<br />
* [[GPE contacts]]<br />
* [[Gutenflash]] - Fast text reader by scrolling text<br />
* [[OMoney]] - A bookkeeping application<br />
* {{opkg.org|191|PISI}} - PISI is synchronizing (PIM) information<br />
<br />
== Settings ==<br />
<br />
* [[Mofi]] - Wifi setup tool<br />
* [[Mokonnect]] - Connection manager<br />
* [[Lint-wifi]] - Wifi setup tool<br />
* [[KnjMokoWifi]] - Wifi setup tool<br />
* [[KnjMokoOPKG]] - A graphical frontend to OPKG.<br />
* [[Om 2008.8 Installer]] - Graphical software installer<br />
* [[Opkg]] - Command line software installer<br />
* [[Sephora]] - Settings manager<br />
* [[SettingsGUI]] - Edit various settings<br />
* [[Wicd]] - Wifi setup tool<br />
* [[ZOMG!]] - A graphical package manager (opkg frontend -&gt; should work on any distro)<br />
* [[Timezone|tzdata]]- Customise your time zone setting.<br />
* [[momtools]] - an application to control Wifi, gprs and some other stuff<br />
* [[Wlan]] - Wlan is an application to manage wireless connection on the Freerunner<br />
<br />
== System ==<br />
* [[Aphasia]] - A system built on Erlang and a vertical application for people with apahasia.<br />
* [http://www.pierrox.net/auimd/ AUIMD] - AUIMD is a PyQt graphical user interface for mobile devices.<br />
* [[Auxlaunch]] - Finger-friendly app launcher and window switcher<br />
* [[Display Locker]] - Screen lock<br />
* [[Gwaterpas]] - levelling tool using accelerometer<br />
* [[Gestures]] - Detect movement and display information, rotate screen<br />
* [[Keychain]] - SSH keys<br />
* [[MokoFEM]] - Monitors GSM information<br />
* [[Mokostat]] - Monitors battery<br />
* [[Openmoko Bluetooth remote controller|ReMoko]] - Control stuff via BlueTooth<br />
* [[Rotate]] - Rotate screen when phone is rotated<br />
* [[Vala-terminal]] - Command prompt with tabs<br />
* [[Ts calibrate]] - Calibrates touchscreen<br />
* [[Zedlock]] - Screen locker<br />
* [http://fso-control.projects.openmoko.org/ fso-control] - Popup Power menu to shutdown/suspend/reboot.<br />
* [[omkeys_functions]] - Remap AUX key bindings<br />
* [[Siglaunchd]] - A daemon that listens to dbus signals and launches appliactions upon arrival.<br />
* [[Pexpect]]-a pure Python module for spawning child applications; controlling them; and responding to expected patterns in their output. <br />
* {{opkg.org|253|libaxel}} - Library for easy use accelerometer.<br />
----<br />
<br />
== Telephony ==<br />
* [[Dialer/2007.2]] - The dialer application in Om 2007.2<br />
* [[Openmoko SMS Middleware]]- SMS middleware is a Openmoko middleware software for additional features related to SMS. Plugin architecture and Python based code gives this project lots of flexibility and enchancebility.<br />
* [[Paroli]] -Paroli is an integrated phone application based on Tichy (and so also written in python). <br />
* [[Litephone]] Easy to use, single window phone application written in Qt.<br />
* Launcher<br />
<br />
== Utility ==<br />
* [[Unison]] - Unison is a file-synchronization tool for Unix and Windows. It determines all differences between two directory trees and lets the user decide, how to proceed with every differing file. <br />
* [[HP48 Series RPN Calculator]] - Calculator with many functions<br />
* [[qwo]]- An alternative input method.<br />
* {{opkg.org|57|fido}} - [[fido]] is a todo list\note manager written with elementary<br />
* [http://meuk.spritesserver.nl/lightsaber-0.1.tgz The Lightsaber]. Pre-alpha starwaresque orphanware.<br />
* [[NeoTool]] NeoTool is a bash script for your desktop system to provide a friendly GUI frontend to some common management tasks.<br />
* [[NeoCon]] - neocon is a handy serial console utility (not only) for u-boot. The main feature of neocon is actually that you can give it a list of devices and it will pick one that works.<br />
* [http://techiem2.net/index.php?/archives/10-Freerunner-USB-Mode-Control-Program.html usbmode]-a quick pygtk program. <br />
* [[Enotes]] - Enotes is the implementation of a TODOlist manager written with elementary to appear better with distribution that use illume, like SHR.<br />
* [[LED clock]] - When an Openmoko is sitting unused at night, turn it into an alarm clock with large 7-segment digits on a black background in landscape mode. <br />
* [[MokoGeocaching]] - Utility for add a POI to TangoGPS using geocaching.com <br />
* [[Wrench]] - Modual used utility enlightenment_remote.<br />
* [[Yaouh!]] - Yet Another OSM Updater H.<br />
* [[ShortOm]] - Graphical launcher for shell or application, with editable config file, and log result page.<br />
* [[Pimlico]]-Pimlico is a suite of lightweight Personal Information Management (PIM) applications designed primarily for handheld and mobile devices<br />
* [http://projects.openmoko.org/projects/otp4neo/ OTP4Neo] One time password generator<br />
* [http://projects.openmoko.org/projects/ffalarms/ FFAlarm] is a program to set multiple alarms a day using a finger friendly user interface<br />
* [[OpenWrt]]-basic support for the Openmoko &quot;Freerunner&quot;! Kernel (2.6.28) is building and booting.<br />
* [[Enscribi]]-a handwriting recognition input method for Linux. It's mainly developed for the Openmoko Freerunner smartphone.<br />
* [[GridPad]]-GridPad is an alternative input method for entering text with your finger, a Simple Character Recognizer Software.<br />
* [[sortdesk]] sort your om-desktop in categories<br />
* [[Mokometeo]] is a widget which fetches the weather forecast from yahoo, for a list of cities<br />
* {{opkg.org|176|CoovaChilli}} - It turns your phone's WiFi network into an Ad-Hoc Hotspot!<br />
* [http://openmoko.huber-computer.de/ DWDWetter] Fetches weather information from dwd (First Register at dwd!)<br />
* [[QSuunto-Lite]] display dive log information from Suunto Dive computers (that work with divetools-ab)<br />
* [[Literki]] - alternative keyboard<br />
<br />
==Setting Application==<br />
* [[Wmiconfig]]- wmiconfig is a tool written by Atheros Communications Inc to configure the Ar6k WIFI chip used in the Neo Freerunner. This is a standalone C executable, released under GPL v2.<br />
* [[GTA02 sysfs]]- sysfs is a filesystem that is mounted on /sys which contains various fake &quot;files&quot; that are actually filled by a variety of drivers and other kernel subsystems. You can use it to change settings and behaviours of the kernel and drivers dynamically.<br />
<br />
== Video ==<br />
<br />
* [[Video Player]] - Using Mplayer on Openmoko smartphones.<br />
* [http://katastrophos.net/andre/blog/software/quasar-media-player/ Quasar] - a mplayer frontend for X11.<br />
<br />
<br />
<br />
<br />
----<br />
<br />
== daemon ==<br />
* [[PyPhonelog]] - daemon uses the framework to track and log all the calls made to and from the moko.<br />
* [[Lscd]] - LSC library/daemon on Linux System.<br />
<br />
== An automatic list of application-related wiki pages ==<br />
<br />
The pages linked above are all maintained manually. We also maintain an automatic categorization system by tagging wiki pages. Here is the list of application-related pages in this wiki. Normally, every page listed below should be also listed above in the same category. The converse is false: there are applications without a wiki page.<br />
<br />
&lt;div style=&quot;border: solid 1px black; padding: 1ex&quot;&gt;&lt;b&gt;Applications in this Wiki:&lt;/b&gt;<br />
&lt;categorytree mode=pages depth=2 hideroot=on&gt;Applications&lt;/categorytree&gt;<br />
&lt;/div&gt;<br />
<br />
<br />
== Where to find more applications? ==<br />
<br />
At [http://opkg.org opkg.org] !<br />
<br />
Not all Openmoko apps are listed on this wiki - there are much more [http://projects.openmoko.org/softwaremap/ projects at the Openmoko GForge] than the wiki can list, not to mention self-hosted applications on their own websites. Actually the phones can run most Linux based Free Software, using for example the [[Debian]] distribution. The [http://handhelds.freshmeat.net/browse/1038/ mobile phones section of Freshmeat] may be a interesting place to look.<br />
<br />
Note also that there are many packages in the repository that are not installed by default. If what you want is a classic, chances are that it is already packaged. Suppose you want to install Perl:<br />
opkg list|grep perl<br />
opkg install perl<br />
<br />
More application download related pages:<br />
<br />
* [[Community Repository]]<br />
* [[Users Repositories]]<br />
<br />
&lt;div style=&quot;clear:both&quot;&gt;&amp;nbsp;&lt;/div&gt;<br />
<br />
== Where to find full distributions ? ==<br />
<br />
* [[Download]]: for complete system downloads<br />
<br />
== The usual warnings ==<br />
&lt;small&gt;<br />
* Some of these software are developed by Openmoko Inc. and some are contributed by the community. Any problems with community contributed software should be reported to the individual software developer rather than the Openmoko core team.<br />
* Most programs listed here are not mature/stable, but only useable/beta.<br />
* Many programs listed here are not yet packaged for your distribution and integrated in its repositories. Whichever it is.<br />
* Installing experimental software from the internet is certain to break things. Running it as root is a very insecure thing to do. Kown that you will be burned, have backups, and be ready to apologize to everybody in your phone contact list in case they receive strange SMSs...<br />
&lt;/small&gt;<br />
<br />
See also [[Hall of Fame]]<br />
<br />
[[Category:Applications| ]]<br />
[[Category:Basic End User]]</div>Myfanwyhttp://wiki.openmoko.org/wiki/NeoqplayerNeoqplayer2009-09-11T10:49:05Z<p>Myfanwy: /* Introduction */</p>
<hr />
<div>This page is '''obsolete''', neoqplayer has been '''renamed to Gorsh Player'''.<br />
Visit the author website for more informations : [http://think-free.homelinux.org/wordpress/?page_id=23 | GorshPlayer |] <br />
<br />
Current version : 0.3.1 ( 24 march 2009 )<br />
<br />
<br />
----<br />
<br />
<br />
{{ApplicationBox|<br />
Name=NeoQPlayer sunset (version 0.2)| <br />
Description=NeoQPlayer is a finger friendly, light multimedia application ( only audio now ) written in Qt4 which wants to be as fast as possible|<br />
Screenshot=Neoqplayer-Sunset.png|<br />
Homepage=http://projects.openmoko.org/projects/neoqplayer/|<br />
TestedOn=Debian|<br />
PackageName=[http://projects.openmoko.org/frs/download.php/513/NeoQPlayer-0.2-src.tar.gz]<br />
}}<br />
<br />
==Introduction==<br />
NeoQplayer is written in Qt4 and tries to use as little as possible cpu, removing cpu hungry items.<br />
It has only been tested on Debian which provides needed packages (Qt4 dev libraries, phonon, ...) but thanks to Qt4 it can be ported easily to other distributions.<br />
<br />
==Functionality==<br />
* Audio playing through gstreamer, xine, ... with phonon<br />
* Playlist creation on the fly, show the current playlist<br />
* Show the cover of the current album<br />
<br />
==Installing neoqplayer==<br />
NeoQplayer can be installed on Debian with provided scripts in the source archive which downloads dependencies, compiles the code and copies needed files to the right place.<br />
<br />
==Using cover functionality==<br />
You can show the cover of the current album, song, artist, ...<br />
For that you need to put a .cover.png file in the folder containing the played song<br />
( There will be a utility to manage your songs and covers soon )<br />
<br />
<br />
==Screenshots==<br />
* [http://wiki.openmoko.org/images/1/18/NeoQPlayer-Sunset-fileSelection.png] FileSelection ( folder view )<br />
* [http://wiki.openmoko.org/images/e/e0/NeoQPlayer-Sunset-fileSelection2.png] FileSelection ( file view )<br />
* [http://wiki.openmoko.org/images/b/b6/NeoQPlayer-Sunset-playList.png] PlayListView<br />
<br />
==Ideas, Feature Requests==<br />
Here you can put your Feature-ideas.<br />
* add an idea here<br />
* (idea^^)motion-gesture features like shaking for a random song or swing right for next song<br />
<br />
Or use the tracked ( better ) :<br />
http://projects.openmoko.org/tracker/?group_id=231<br />
<br />
==User feedback==<br />
* add your feedback/comments here<br />
<br />
==Known Problems==<br />
* FIXED in svn : The gui is not as fast as it should be on the neo, it seems that this is a Xglamo issue as Xglamo use ~60-70% cpu on screen update <br />
<br />
==Reporting Bugs==<br />
<br />
http://projects.openmoko.org/tracker/?group_id=231<br />
<br />
==News about the project==<br />
http://projects.openmoko.org/news/?group_id=231<br />
<br />
[[Category:Audio Applications]]</div>Myfanwyhttp://wiki.openmoko.org/wiki/ApplicationsApplications2009-09-11T10:09:10Z<p>Myfanwy: /* web browsers */</p>
<hr />
<div>{{Languages|Applications}}<br />
This is the wiki's master application list for the Openmoko smartphones. <br />
<br />
== How to register new applications ?==<br />
<br />
This list can not be exhaustive, as new things are showing up every week. This page is here to help spreading awareness about applications. Here are instructions on how to add a specific application to this list. There are many ways to go<br />
<br />
Method 1 (preferred):<br />
* Register your application at http://opkg.org. You will get a package number there, for example 33.<br />
* Notify the community mailing list.<br />
* Come back here, click on &quot;edit&quot; next to the appropriate section title, then add a line like:<br />
&lt;pre&gt;* {{opkg.org|33|Application name}} A short description&lt;/pre&gt;<br />
<br />
Method 2: Just link to wherever the application is hosted.<br />
* Click on &quot;edit&quot; next to the appropriate section title, add a line like:<br />
&lt;pre&gt;* [http://your.host.domain/the/path/to/app/page.html Application name] A short description&lt;/pre&gt;<br />
<br />
Method 3: Create a new page in this wiki.<br />
* Click on &quot;edit&quot; next to the appropriate section title, then add a line like:<br />
&lt;pre&gt;* [[Application name]] A short description&lt;/pre&gt;<br />
* The application name will appear in red, click on it to create and edit the new page.<br />
<br />
== Audio ==<br />
<br />
* [http://www.faltantornillos.net/proyectos/gnu/brightPlayer/brightPlayerGTK0.2.tar.gz Bright Player] - Fast, lightweight and easy random music player.<br />
* [[Dictator]] - Record mic, incoming GSM-sound, or a whole Phonecall<br />
* {{opkg.org|55|ePiano}} - epiano is going to be a virtual piano<br />
* [[Fingertier]] - minimal and finger friendly music player<br />
* [[Fourier]]- Realtime frequency analysis of sound data.<br />
* [[Guitartune]] - Tune musical Instruments.<br />
* [[GTick]] - GTick is a metronome application written for GNU/Linux<br />
* [[Intone]] - Elementary based mplayer frontend (for audio files).<br />
* [[Mokoko]]- Play music.<br />
* {{opkg.org|151|MokoPod}} - Retrieve and listen to podcasts <br />
* [[Neoqplayer]] - Renamed as GorshPlayer: a multimedia player written in Qt4: play and retreive podcasts feeds, more reactive interface, now able to play videos ( in svn ).<br />
* [http://fisoft.eu/standa/openmoko/omshuffle_0.1_arm.ipk omShuffle] - Inspired by Bright Player with volume control. Needs mplayer to work.<br />
* [[Openmoko-mediaplayer2]] - Play music and video (mp3...)<br />
* [[Openmokast]] - Play audio stream and slideshow stream<br />
* [[Pythm]] - Audio player GUI using mplayer and mpd as backend.<br />
* [[PyRok]] - Audio player which uses Gstreamer for playback and Pygame for GUI.<br />
* [[Satan]] - Create your own music!<br />
* [[Streamtuner]] - Listen to Internet Radio Stations<br />
* [[Streamripper]] - Record from Internet Radio Stations<br />
* [[Voicenote]] - Voicenote is a script which allows to record any sound from the microphone into a wav file. It can play the created files too. It is intended to be an easy and quick way to do so.<br />
* [http://rzr.online.fr/q/esd boxar] - Touchscreen as a finger friendly piano -- [[User:RzR]]<br />
* {{opkg.org|271|JaMoko}} Jamoko is a Jamendo player for OpenMoko.<br />
----<br />
<br />
== BlueTooth ==<br />
* [[Coypu]] - Utility for send file via BlueTooth<br />
----<br />
<br />
== Games ==<br />
<br />
* [[Games/Om 2007.2]] - Many small games on Om 2007.2<br />
* [[Om 2008.8 Sudoku]] - Number placement based puzzle game<br />
* [[Moko-sudoku]] - Another sudoku puzzle game.<br />
* {{opkg.org|60|ScummVM}} ([[Scummvm|Wiki]]) Virtual Machine for several classic graphical point-and-click adventure games<br />
* [[Kobodeluxe]] - A top-view space shooter, available from 2008.8 repositories.<br />
* [[Pingus]] - Pingus is a lemmings clone with penguins.<br />
* [[Duke Nukem 3D]] - Legendary First Person Shooter.<br />
* [[Numptyphysics]] - A drawing puzzle game.<br />
* [[Gnuboy]] - An emulator for the handheld gaming all-time bestseller.<br />
* [[XBill]] - Little action game to stop Bill from installing Windows(tm) on computers.<br />
* [[Xlogical]]-A puzzle based game where you turn spinners to move balls around.<br />
* [[Liquid War]]-Liquid War is a truly original multiplayer wargame.<br />
* [http://unsyncopated.com/BrainSolvent/Doom%20Port DOOM]- Classic FPS. Freerunner/1973<br />
* [[MBAC]]- MBAC is &quot;Moko Bulls and Cows&quot;, a classic game for openmoko written in pygtk similar to mastermind.<br />
* [[OpenVibe]] - The first opensource vibrator.<br />
* [[OpenTTD]] - OpenTransportTycoonDeluxe, ported to openmoko, using only GPLed datafiles.<br />
* [http://scalde.free.fr/index.php?option=com_content&amp;view=article&amp;id=93:pong-pogresses&amp;catid=43:openmoko&amp;Itemid=66 Pong progresses]- This is a little pong game for the openmoko freerunner. The screen is devided in halves, so you can touch the right half to move the paddle right and the left half to move it left.<br />
* [[OpenMooCow]] - OpenMooCow reads information out of your accelerometers. Now, if you turn the phone upside down and back again, it &quot;moos&quot; like one of the little toys.<br />
* [[Freerunner LightSaber]]-Application as iphone LightSaber.<br />
* [[CellHunter]] - A game you earn points by collecting cells (in english now).<br />
* [[XSkat]] - XSkat lets you play the card game Skat defined by the official Skat Order.<br />
* {{opkg.org|136|OpenMiaoCat}} OpenMiaoCat, like OpenMooCow, makes your phone became a cat!<br />
* {{opkg.org|149|I'm Rich}} I'm Rich application<br />
* {{opkg.org|121|Mokomaze}} Ball-in-the-labyrinth game<br />
* [[Acceleroids]] Shoot-the-asteroids game<br />
* {{opkg.org|169|Black Sheep}} Fight insomnia!<br />
----<br />
<br />
== GPS ==<br />
* {{opkg.org|268|Advanced Geocaching Tool for Linux}} - &quot;Towards paperless geocaching&quot; - [[Advanced Geocaching Tool for Linux|User Manual]]<br />
* [[SGTL|Simple Geocaching Tool for Linux]] - A geocaching application which shows you the direction.<br />
* [[GPS Sight]] - Display GPS information, location, tracks, etc, without maps.<br />
* [[Gpsdrive]] - Car (bike, etc) navigation system<br />
* [[Om 2008.8 Locations]] - (aka Splinter) - Location sharing based on GPS and SMS<br />
* [[Navit]] - Car navigation system with routing engine<br />
* [[TangoGPS]] - Display map (OSM..), record GPS tracks...<br />
* [[Pyroute]] - Pyroute is a routing program written in Python. It features mobile phone GUI for maps, GPS, and routing.<br />
* [http://www.mumpot.org/ mumpot] - Display map (OSM), routing, OSM editing, a bit of live editing<br />
* [[QMapControl]] - Display maps (OSM..) and add points, lines...<br />
* [[Qpegps]] - Display map with current position<br />
* [[Idle Hands]] - Give a task to you based on your location<br />
* [[Gtkaddpoi]] - Utility for add a POI to TangoGPS using address or coordinates and export to Navit or to .kml file.<br />
* [[Gpsdcontrol]]-A simple python script for start or stop gpsd daemon with a button on the desktop.<br />
* [[OpenBmap]]-a free and open map of wireless communicating objects (e.g. cellular antenna, Wi-Fi, Bluetooth). It provides tools to mutualize data, create and access this map.<br />
* {{opkg.org|162|gvSIG Mobile}} - This is an unofficial port of gvSIG Mobile (http://www.gvsig.gva.es/) to the Openmoko platform. gvSIG Mobile for Openmoko is currently a GPS-enabled projection-aware map viewer. [http://gvsigmobileonopenmoko.wordpress.com/ Homepage].<br />
* {{opkg.org|175|BikeAtor}} - Like TangoGPS BikeAtor can display OSM Maps. The Speedometer displays the most interesting values of the trip.<br />
* {{opkg.org|178|bicirutas}} - This application looks for mtb routes in www.bicirutas.net (routes in Spain, Portugal, United Kingdom, France, Italy and Germany). It gets the current position from the gps system and downloads nearby routes. Then you can follow them with tangogps application.<br />
* [http://code.google.com/p/omgps omgps] - High performance, UBX binary or ogpsd as GPS data provider, layered maps, AGPS online, track replay, scratch on map, ruler and lat/lon grid, basic sounding. etc.<br />
* [[Travel Diary]] - a simple application to save little diary entries to a csv file and send this to a server (that can generate a .kml file or show a map or do whatever...)<br />
* [[QNavitCtl]] - send coordinates to Navit via dbus (position, destination, map center)<br />
* [[a-gps GUI]] - uses cellhunter data to locate you, then uses u-blox a-gps to initialize your GPS chip<br />
* [[sms-sentry]] - locate a lost or stolen phone<br />
* [[bicirutas]] - download bicycle routes<br />
<br />
== Graphics ==<br />
<br />
* [[Orrery]] - Displays the night sky<br />
* [[OMView]] - Image viewer<br />
* [[PyPenNotes]] - Write notes using pen and touchscreen<br />
* [[Gpe-scap]] - Take screenshots<br />
* [[Flash|Gnash]]-Play flash file on Neo<br />
* [[Neon]] - Image viewer<br />
<br />
----<br />
<br />
== Internet ==<br />
===web browsers===<br />
* [http://www.dillo.org/ Dillo] - Multiplatform fast and small web browser ([http://misc.andi.de1.cc/dillo/ .ipk]).<br />
* fennec<br />
* [[Midori]] - Webkit based web browser<br />
* [[Minimo]] - Mozilla based web browser<br />
* [http://www.netsurf-browser.org/ netsurf]-A new browser for Neo FreeRunner.<br />
* [[Openmoko-browser2]] - The original Openmoko web browser<br />
* [http://code.google.com/p/pyqt-browser/ pyqt-browser] - modified the sample code from python-pyqt4 and changed it to use webkit for web browsing. <br />
* woosh<br />
<br />
===VOIP===<br />
* [[Twinkle]] - Voice over IP<br />
* [[Linphone]] - Voice over IP<br />
<br />
===email clients===<br />
* [[Openmoko Mail]] - E-mail client<br />
* [http://www.claws-mail.org/ claws-mail] email client available in shr-unstable<br />
* [[Qtmail]] - Default mail program on Om 2008.8<br />
<br />
===Offline wikipedia===<br />
* [[Mokopedia]] - Read small Wikipedia dumps offline<br />
* [[Offline Wikipedia reader]] - store the entire content of wikipedia (single-language, excluding images), on a single 8GB microSD card<br />
* evopedia<br />
<br />
===IM===<br />
* [[Pidgin]] - Instant messaging client (ICQ, MSN, Jabber, Yahoo and more.)<br />
* [[CenterIM]] - Instant messaging client (terminal-based).<br />
<br />
===other===<br />
* [[Openmokast]] - Play audio stream and slideshow stream<br />
* [[PyFeedRead]] - RSS feed reader<br />
* [[TwitterMoko]] - A Twitter client for Openmoko<br />
* [http://we.trekbeyond.org/~kd8ikt/moko/shr_pkgz/ ettercap-ng] DEAD LINK<br />
* {{opkg.org|205|GPRSModem}} - Converts your neo in a GPRS modem.<br />
<br />
== Office ==<br />
* dates - a simple calendar<br />
* [[e-tasks]] - An elementary task manager<br />
* [[Epdfview]] - PDF reader.<br />
* Evince - Document reader for PDF, PS, DJVU and more.<br />
* [[FBReader]] - E-book reader program (TXT, FB2, HTML and more)<br />
* [[GPE contacts]]<br />
* [[Gutenflash]] - Fast text reader by scrolling text<br />
* [[OMoney]] - A bookkeeping application<br />
* {{opkg.org|191|PISI}} - PISI is synchronizing (PIM) information<br />
<br />
== Settings ==<br />
<br />
* [[Mofi]] - Wifi setup tool<br />
* [[Mokonnect]] - Connection manager<br />
* [[Lint-wifi]] - Wifi setup tool<br />
* [[KnjMokoWifi]] - Wifi setup tool<br />
* [[KnjMokoOPKG]] - A graphical frontend to OPKG.<br />
* [[Om 2008.8 Installer]] - Graphical software installer<br />
* [[Opkg]] - Command line software installer<br />
* [[Sephora]] - Settings manager<br />
* [[SettingsGUI]] - Edit various settings<br />
* [[Wicd]] - Wifi setup tool<br />
* [[ZOMG!]] - A graphical package manager (opkg frontend -&gt; should work on any distro)<br />
* [[Timezone|tzdata]]- Customise your time zone setting.<br />
* [[momtools]] - an application to control Wifi, gprs and some other stuff<br />
* [[Wlan]] - Wlan is an application to manage wireless connection on the Freerunner<br />
<br />
== System ==<br />
* [[Aphasia]] - A system built on Erlang and a vertical application for people with apahasia.<br />
* [http://www.pierrox.net/auimd/ AUIMD] - AUIMD is a PyQt graphical user interface for mobile devices.<br />
* [[Auxlaunch]] - Finger-friendly app launcher and window switcher<br />
* [[Display Locker]] - Screen lock<br />
* [[Gwaterpas]] - levelling tool using accelerometer<br />
* [[Gestures]] - Detect movement and display information, rotate screen<br />
* [[Keychain]] - SSH keys<br />
* [[MokoFEM]] - Monitors GSM information<br />
* [[Mokostat]] - Monitors battery<br />
* [[Openmoko Bluetooth remote controller|ReMoko]] - Control stuff via BlueTooth<br />
* [[Rotate]] - Rotate screen when phone is rotated<br />
* [[Vala-terminal]] - Command prompt with tabs<br />
* [[Ts calibrate]] - Calibrates touchscreen<br />
* [[Zedlock]] - Screen locker<br />
* [http://fso-control.projects.openmoko.org/ fso-control] - Popup Power menu to shutdown/suspend/reboot.<br />
* [[omkeys_functions]] - Remap AUX key bindings<br />
* [[Siglaunchd]] - A daemon that listens to dbus signals and launches appliactions upon arrival.<br />
* [[Pexpect]]-a pure Python module for spawning child applications; controlling them; and responding to expected patterns in their output. <br />
* {{opkg.org|253|libaxel}} - Library for easy use accelerometer.<br />
----<br />
<br />
== Telephony ==<br />
* [[Dialer/2007.2]] - The dialer application in Om 2007.2<br />
* [[Openmoko SMS Middleware]]- SMS middleware is a Openmoko middleware software for additional features related to SMS. Plugin architecture and Python based code gives this project lots of flexibility and enchancebility.<br />
* [[Paroli]] -Paroli is an integrated phone application based on Tichy (and so also written in python). <br />
* [[Litephone]] Easy to use, single window phone application written in Qt.<br />
----<br />
<br />
== Utility ==<br />
* [[Unison]] - Unison is a file-synchronization tool for Unix and Windows. It determines all differences between two directory trees and lets the user decide, how to proceed with every differing file. <br />
* [[HP48 Series RPN Calculator]] - Calculator with many functions<br />
* [[qwo]]- An alternative input method.<br />
* {{opkg.org|57|fido}} - [[fido]] is a todo list\note manager written with elementary<br />
* [http://meuk.spritesserver.nl/lightsaber-0.1.tgz The Lightsaber]. Pre-alpha starwaresque orphanware.<br />
* [[NeoTool]] NeoTool is a bash script for your desktop system to provide a friendly GUI frontend to some common management tasks.<br />
* [[NeoCon]] - neocon is a handy serial console utility (not only) for u-boot. The main feature of neocon is actually that you can give it a list of devices and it will pick one that works.<br />
* [http://techiem2.net/index.php?/archives/10-Freerunner-USB-Mode-Control-Program.html usbmode]-a quick pygtk program. <br />
* [[Enotes]] - Enotes is the implementation of a TODOlist manager written with elementary to appear better with distribution that use illume, like SHR.<br />
* [[LED clock]] - When an Openmoko is sitting unused at night, turn it into an alarm clock with large 7-segment digits on a black background in landscape mode. <br />
* [[MokoGeocaching]] - Utility for add a POI to TangoGPS using geocaching.com <br />
* [[Wrench]] - Modual used utility enlightenment_remote.<br />
* [[Yaouh!]] - Yet Another OSM Updater H.<br />
* [[ShortOm]] - Graphical launcher for shell or application, with editable config file, and log result page.<br />
* [[Pimlico]]-Pimlico is a suite of lightweight Personal Information Management (PIM) applications designed primarily for handheld and mobile devices<br />
* [http://projects.openmoko.org/projects/otp4neo/ OTP4Neo] One time password generator<br />
* [http://projects.openmoko.org/projects/ffalarms/ FFAlarm] is a program to set multiple alarms a day using a finger friendly user interface<br />
* [[OpenWrt]]-basic support for the Openmoko &quot;Freerunner&quot;! Kernel (2.6.28) is building and booting.<br />
* [[Enscribi]]-a handwriting recognition input method for Linux. It's mainly developed for the Openmoko Freerunner smartphone.<br />
* [[GridPad]]-GridPad is an alternative input method for entering text with your finger, a Simple Character Recognizer Software.<br />
* [[sortdesk]] sort your om-desktop in categories<br />
* [[Mokometeo]] is a widget which fetches the weather forecast from yahoo, for a list of cities<br />
* {{opkg.org|176|CoovaChilli}} - It turns your phone's WiFi network into an Ad-Hoc Hotspot!<br />
* [http://openmoko.huber-computer.de/ DWDWetter] Fetches weather information from dwd (First Register at dwd!)<br />
* [[QSuunto-Lite]] display dive log information from Suunto Dive computers (that work with divetools-ab)<br />
* [[Literki]] - alternative keyboard<br />
<br />
==Setting Application==<br />
* [[Wmiconfig]]- wmiconfig is a tool written by Atheros Communications Inc to configure the Ar6k WIFI chip used in the Neo Freerunner. This is a standalone C executable, released under GPL v2.<br />
* [[GTA02 sysfs]]- sysfs is a filesystem that is mounted on /sys which contains various fake &quot;files&quot; that are actually filled by a variety of drivers and other kernel subsystems. You can use it to change settings and behaviours of the kernel and drivers dynamically.<br />
<br />
== Video ==<br />
<br />
* [[Video Player]] - Using Mplayer on Openmoko smartphones.<br />
* [http://katastrophos.net/andre/blog/software/quasar-media-player/ Quasar] - a mplayer frontend for X11.<br />
<br />
<br />
<br />
<br />
----<br />
<br />
== daemon ==<br />
* [[PyPhonelog]] - daemon uses the framework to track and log all the calls made to and from the moko.<br />
* [[Lscd]] - LSC library/daemon on Linux System.<br />
<br />
== An automatic list of application-related wiki pages ==<br />
<br />
The pages linked above are all maintained manually. We also maintain an automatic categorization system by tagging wiki pages. Here is the list of application-related pages in this wiki. Normally, every page listed below should be also listed above in the same category. The converse is false: there are applications without a wiki page.<br />
<br />
&lt;div style=&quot;border: solid 1px black; padding: 1ex&quot;&gt;&lt;b&gt;Applications in this Wiki:&lt;/b&gt;<br />
&lt;categorytree mode=pages depth=2 hideroot=on&gt;Applications&lt;/categorytree&gt;<br />
&lt;/div&gt;<br />
<br />
<br />
== Where to find more applications? ==<br />
<br />
At [http://opkg.org opkg.org] !<br />
<br />
Not all Openmoko apps are listed on this wiki - there are much more [http://projects.openmoko.org/softwaremap/ projects at the Openmoko GForge] than the wiki can list, not to mention self-hosted applications on their own websites. Actually the phones can run most Linux based Free Software, using for example the [[Debian]] distribution. The [http://handhelds.freshmeat.net/browse/1038/ mobile phones section of Freshmeat] may be a interesting place to look.<br />
<br />
Note also that there are many packages in the repository that are not installed by default. If what you want is a classic, chances are that it is already packaged. Suppose you want to install Perl:<br />
opkg list|grep perl<br />
opkg install perl<br />
<br />
More application download related pages:<br />
<br />
* [[Community Repository]]<br />
* [[Users Repositories]]<br />
<br />
&lt;div style=&quot;clear:both&quot;&gt;&amp;nbsp;&lt;/div&gt;<br />
<br />
== Where to find full distributions ? ==<br />
<br />
* [[Download]]: for complete system downloads<br />
<br />
== The usual warnings ==<br />
&lt;small&gt;<br />
* Some of these software are developed by Openmoko Inc. and some are contributed by the community. Any problems with community contributed software should be reported to the individual software developer rather than the Openmoko core team.<br />
* Most programs listed here are not mature/stable, but only useable/beta.<br />
* Many programs listed here are not yet packaged for your distribution and integrated in its repositories. Whichever it is.<br />
* Installing experimental software from the internet is certain to break things. Running it as root is a very insecure thing to do. Kown that you will be burned, have backups, and be ready to apologize to everybody in your phone contact list in case they receive strange SMSs...<br />
&lt;/small&gt;<br />
<br />
See also [[Hall of Fame]]<br />
<br />
[[Category:Applications| ]]<br />
[[Category:Basic End User]]</div>Myfanwyhttp://wiki.openmoko.org/wiki/ApplicationsApplications2009-09-11T10:02:12Z<p>Myfanwy: /* Internet */</p>
<hr />
<div>{{Languages|Applications}}<br />
This is the wiki's master application list for the Openmoko smartphones. <br />
<br />
== How to register new applications ?==<br />
<br />
This list can not be exhaustive, as new things are showing up every week. This page is here to help spreading awareness about applications. Here are instructions on how to add a specific application to this list. There are many ways to go<br />
<br />
Method 1 (preferred):<br />
* Register your application at http://opkg.org. You will get a package number there, for example 33.<br />
* Notify the community mailing list.<br />
* Come back here, click on &quot;edit&quot; next to the appropriate section title, then add a line like:<br />
&lt;pre&gt;* {{opkg.org|33|Application name}} A short description&lt;/pre&gt;<br />
<br />
Method 2: Just link to wherever the application is hosted.<br />
* Click on &quot;edit&quot; next to the appropriate section title, add a line like:<br />
&lt;pre&gt;* [http://your.host.domain/the/path/to/app/page.html Application name] A short description&lt;/pre&gt;<br />
<br />
Method 3: Create a new page in this wiki.<br />
* Click on &quot;edit&quot; next to the appropriate section title, then add a line like:<br />
&lt;pre&gt;* [[Application name]] A short description&lt;/pre&gt;<br />
* The application name will appear in red, click on it to create and edit the new page.<br />
<br />
== Audio ==<br />
<br />
* [http://www.faltantornillos.net/proyectos/gnu/brightPlayer/brightPlayerGTK0.2.tar.gz Bright Player] - Fast, lightweight and easy random music player.<br />
* [[Dictator]] - Record mic, incoming GSM-sound, or a whole Phonecall<br />
* {{opkg.org|55|ePiano}} - epiano is going to be a virtual piano<br />
* [[Fingertier]] - minimal and finger friendly music player<br />
* [[Fourier]]- Realtime frequency analysis of sound data.<br />
* [[Guitartune]] - Tune musical Instruments.<br />
* [[GTick]] - GTick is a metronome application written for GNU/Linux<br />
* [[Intone]] - Elementary based mplayer frontend (for audio files).<br />
* [[Mokoko]]- Play music.<br />
* {{opkg.org|151|MokoPod}} - Retrieve and listen to podcasts <br />
* [[Neoqplayer]] - Renamed as GorshPlayer: a multimedia player written in Qt4: play and retreive podcasts feeds, more reactive interface, now able to play videos ( in svn ).<br />
* [http://fisoft.eu/standa/openmoko/omshuffle_0.1_arm.ipk omShuffle] - Inspired by Bright Player with volume control. Needs mplayer to work.<br />
* [[Openmoko-mediaplayer2]] - Play music and video (mp3...)<br />
* [[Openmokast]] - Play audio stream and slideshow stream<br />
* [[Pythm]] - Audio player GUI using mplayer and mpd as backend.<br />
* [[PyRok]] - Audio player which uses Gstreamer for playback and Pygame for GUI.<br />
* [[Satan]] - Create your own music!<br />
* [[Streamtuner]] - Listen to Internet Radio Stations<br />
* [[Streamripper]] - Record from Internet Radio Stations<br />
* [[Voicenote]] - Voicenote is a script which allows to record any sound from the microphone into a wav file. It can play the created files too. It is intended to be an easy and quick way to do so.<br />
* [http://rzr.online.fr/q/esd boxar] - Touchscreen as a finger friendly piano -- [[User:RzR]]<br />
* {{opkg.org|271|JaMoko}} Jamoko is a Jamendo player for OpenMoko.<br />
----<br />
<br />
== BlueTooth ==<br />
* [[Coypu]] - Utility for send file via BlueTooth<br />
----<br />
<br />
== Games ==<br />
<br />
* [[Games/Om 2007.2]] - Many small games on Om 2007.2<br />
* [[Om 2008.8 Sudoku]] - Number placement based puzzle game<br />
* [[Moko-sudoku]] - Another sudoku puzzle game.<br />
* {{opkg.org|60|ScummVM}} ([[Scummvm|Wiki]]) Virtual Machine for several classic graphical point-and-click adventure games<br />
* [[Kobodeluxe]] - A top-view space shooter, available from 2008.8 repositories.<br />
* [[Pingus]] - Pingus is a lemmings clone with penguins.<br />
* [[Duke Nukem 3D]] - Legendary First Person Shooter.<br />
* [[Numptyphysics]] - A drawing puzzle game.<br />
* [[Gnuboy]] - An emulator for the handheld gaming all-time bestseller.<br />
* [[XBill]] - Little action game to stop Bill from installing Windows(tm) on computers.<br />
* [[Xlogical]]-A puzzle based game where you turn spinners to move balls around.<br />
* [[Liquid War]]-Liquid War is a truly original multiplayer wargame.<br />
* [http://unsyncopated.com/BrainSolvent/Doom%20Port DOOM]- Classic FPS. Freerunner/1973<br />
* [[MBAC]]- MBAC is &quot;Moko Bulls and Cows&quot;, a classic game for openmoko written in pygtk similar to mastermind.<br />
* [[OpenVibe]] - The first opensource vibrator.<br />
* [[OpenTTD]] - OpenTransportTycoonDeluxe, ported to openmoko, using only GPLed datafiles.<br />
* [http://scalde.free.fr/index.php?option=com_content&amp;view=article&amp;id=93:pong-pogresses&amp;catid=43:openmoko&amp;Itemid=66 Pong progresses]- This is a little pong game for the openmoko freerunner. The screen is devided in halves, so you can touch the right half to move the paddle right and the left half to move it left.<br />
* [[OpenMooCow]] - OpenMooCow reads information out of your accelerometers. Now, if you turn the phone upside down and back again, it &quot;moos&quot; like one of the little toys.<br />
* [[Freerunner LightSaber]]-Application as iphone LightSaber.<br />
* [[CellHunter]] - A game you earn points by collecting cells (in english now).<br />
* [[XSkat]] - XSkat lets you play the card game Skat defined by the official Skat Order.<br />
* {{opkg.org|136|OpenMiaoCat}} OpenMiaoCat, like OpenMooCow, makes your phone became a cat!<br />
* {{opkg.org|149|I'm Rich}} I'm Rich application<br />
* {{opkg.org|121|Mokomaze}} Ball-in-the-labyrinth game<br />
* [[Acceleroids]] Shoot-the-asteroids game<br />
* {{opkg.org|169|Black Sheep}} Fight insomnia!<br />
----<br />
<br />
== GPS ==<br />
* {{opkg.org|268|Advanced Geocaching Tool for Linux}} - &quot;Towards paperless geocaching&quot; - [[Advanced Geocaching Tool for Linux|User Manual]]<br />
* [[SGTL|Simple Geocaching Tool for Linux]] - A geocaching application which shows you the direction.<br />
* [[GPS Sight]] - Display GPS information, location, tracks, etc, without maps.<br />
* [[Gpsdrive]] - Car (bike, etc) navigation system<br />
* [[Om 2008.8 Locations]] - (aka Splinter) - Location sharing based on GPS and SMS<br />
* [[Navit]] - Car navigation system with routing engine<br />
* [[TangoGPS]] - Display map (OSM..), record GPS tracks...<br />
* [[Pyroute]] - Pyroute is a routing program written in Python. It features mobile phone GUI for maps, GPS, and routing.<br />
* [http://www.mumpot.org/ mumpot] - Display map (OSM), routing, OSM editing, a bit of live editing<br />
* [[QMapControl]] - Display maps (OSM..) and add points, lines...<br />
* [[Qpegps]] - Display map with current position<br />
* [[Idle Hands]] - Give a task to you based on your location<br />
* [[Gtkaddpoi]] - Utility for add a POI to TangoGPS using address or coordinates and export to Navit or to .kml file.<br />
* [[Gpsdcontrol]]-A simple python script for start or stop gpsd daemon with a button on the desktop.<br />
* [[OpenBmap]]-a free and open map of wireless communicating objects (e.g. cellular antenna, Wi-Fi, Bluetooth). It provides tools to mutualize data, create and access this map.<br />
* {{opkg.org|162|gvSIG Mobile}} - This is an unofficial port of gvSIG Mobile (http://www.gvsig.gva.es/) to the Openmoko platform. gvSIG Mobile for Openmoko is currently a GPS-enabled projection-aware map viewer. [http://gvsigmobileonopenmoko.wordpress.com/ Homepage].<br />
* {{opkg.org|175|BikeAtor}} - Like TangoGPS BikeAtor can display OSM Maps. The Speedometer displays the most interesting values of the trip.<br />
* {{opkg.org|178|bicirutas}} - This application looks for mtb routes in www.bicirutas.net (routes in Spain, Portugal, United Kingdom, France, Italy and Germany). It gets the current position from the gps system and downloads nearby routes. Then you can follow them with tangogps application.<br />
* [http://code.google.com/p/omgps omgps] - High performance, UBX binary or ogpsd as GPS data provider, layered maps, AGPS online, track replay, scratch on map, ruler and lat/lon grid, basic sounding. etc.<br />
* [[Travel Diary]] - a simple application to save little diary entries to a csv file and send this to a server (that can generate a .kml file or show a map or do whatever...)<br />
* [[QNavitCtl]] - send coordinates to Navit via dbus (position, destination, map center)<br />
* [[a-gps GUI]] - uses cellhunter data to locate you, then uses u-blox a-gps to initialize your GPS chip<br />
* [[sms-sentry]] - locate a lost or stolen phone<br />
* [[bicirutas]] - download bicycle routes<br />
<br />
== Graphics ==<br />
<br />
* [[Orrery]] - Displays the night sky<br />
* [[OMView]] - Image viewer<br />
* [[PyPenNotes]] - Write notes using pen and touchscreen<br />
* [[Gpe-scap]] - Take screenshots<br />
* [[Flash|Gnash]]-Play flash file on Neo<br />
* [[Neon]] - Image viewer<br />
<br />
----<br />
<br />
== Internet ==<br />
===web browsers===<br />
* [[Midori]] - Webkit based web browser<br />
* [[Minimo]] - Mozilla based web browser<br />
* [http://www.dillo.org/ Dillo] - Multiplatform fast and small web browser ([http://misc.andi.de1.cc/dillo/ .ipk]).<br />
* [http://code.google.com/p/pyqt-browser/ pyqt-browser] - modified the sample code from python-pyqt4 and changed it to use webkit for web browsing. <br />
* [http://www.netsurf-browser.org/ netsurf]-A new browser for Neo FreeRunner.<br />
* [[Openmoko-browser2]] - The original Openmoko web browser<br />
<br />
===VOIP===<br />
* [[Twinkle]] - Voice over IP<br />
* [[Linphone]] - Voice over IP<br />
<br />
===email clients===<br />
* [[Openmoko Mail]] - E-mail client<br />
* [http://www.claws-mail.org/ claws-mail] email client available in shr-unstable<br />
* [[Qtmail]] - Default mail program on Om 2008.8<br />
<br />
===Offline wikipedia===<br />
* [[Mokopedia]] - Read small Wikipedia dumps offline<br />
* [[Offline Wikipedia reader]] - store the entire content of wikipedia (single-language, excluding images), on a single 8GB microSD card<br />
* evopedia<br />
<br />
===IM===<br />
* [[Pidgin]] - Instant messaging client (ICQ, MSN, Jabber, Yahoo and more.)<br />
* [[CenterIM]] - Instant messaging client (terminal-based).<br />
<br />
===other===<br />
* [[Openmokast]] - Play audio stream and slideshow stream<br />
* [[PyFeedRead]] - RSS feed reader<br />
* [[TwitterMoko]] - A Twitter client for Openmoko<br />
* [http://we.trekbeyond.org/~kd8ikt/moko/shr_pkgz/ ettercap-ng] DEAD LINK<br />
* {{opkg.org|205|GPRSModem}} - Converts your neo in a GPRS modem.<br />
<br />
== Office ==<br />
* dates - a simple calendar<br />
* [[e-tasks]] - An elementary task manager<br />
* [[Epdfview]] - PDF reader.<br />
* Evince - Document reader for PDF, PS, DJVU and more.<br />
* [[FBReader]] - E-book reader program (TXT, FB2, HTML and more)<br />
* [[GPE contacts]]<br />
* [[Gutenflash]] - Fast text reader by scrolling text<br />
* [[OMoney]] - A bookkeeping application<br />
* {{opkg.org|191|PISI}} - PISI is synchronizing (PIM) information<br />
<br />
== Settings ==<br />
<br />
* [[Mofi]] - Wifi setup tool<br />
* [[Mokonnect]] - Connection manager<br />
* [[Lint-wifi]] - Wifi setup tool<br />
* [[KnjMokoWifi]] - Wifi setup tool<br />
* [[KnjMokoOPKG]] - A graphical frontend to OPKG.<br />
* [[Om 2008.8 Installer]] - Graphical software installer<br />
* [[Opkg]] - Command line software installer<br />
* [[Sephora]] - Settings manager<br />
* [[SettingsGUI]] - Edit various settings<br />
* [[Wicd]] - Wifi setup tool<br />
* [[ZOMG!]] - A graphical package manager (opkg frontend -&gt; should work on any distro)<br />
* [[Timezone|tzdata]]- Customise your time zone setting.<br />
* [[momtools]] - an application to control Wifi, gprs and some other stuff<br />
* [[Wlan]] - Wlan is an application to manage wireless connection on the Freerunner<br />
<br />
== System ==<br />
* [[Aphasia]] - A system built on Erlang and a vertical application for people with apahasia.<br />
* [http://www.pierrox.net/auimd/ AUIMD] - AUIMD is a PyQt graphical user interface for mobile devices.<br />
* [[Auxlaunch]] - Finger-friendly app launcher and window switcher<br />
* [[Display Locker]] - Screen lock<br />
* [[Gwaterpas]] - levelling tool using accelerometer<br />
* [[Gestures]] - Detect movement and display information, rotate screen<br />
* [[Keychain]] - SSH keys<br />
* [[MokoFEM]] - Monitors GSM information<br />
* [[Mokostat]] - Monitors battery<br />
* [[Openmoko Bluetooth remote controller|ReMoko]] - Control stuff via BlueTooth<br />
* [[Rotate]] - Rotate screen when phone is rotated<br />
* [[Vala-terminal]] - Command prompt with tabs<br />
* [[Ts calibrate]] - Calibrates touchscreen<br />
* [[Zedlock]] - Screen locker<br />
* [http://fso-control.projects.openmoko.org/ fso-control] - Popup Power menu to shutdown/suspend/reboot.<br />
* [[omkeys_functions]] - Remap AUX key bindings<br />
* [[Siglaunchd]] - A daemon that listens to dbus signals and launches appliactions upon arrival.<br />
* [[Pexpect]]-a pure Python module for spawning child applications; controlling them; and responding to expected patterns in their output. <br />
* {{opkg.org|253|libaxel}} - Library for easy use accelerometer.<br />
----<br />
<br />
== Telephony ==<br />
* [[Dialer/2007.2]] - The dialer application in Om 2007.2<br />
* [[Openmoko SMS Middleware]]- SMS middleware is a Openmoko middleware software for additional features related to SMS. Plugin architecture and Python based code gives this project lots of flexibility and enchancebility.<br />
* [[Paroli]] -Paroli is an integrated phone application based on Tichy (and so also written in python). <br />
* [[Litephone]] Easy to use, single window phone application written in Qt.<br />
----<br />
<br />
== Utility ==<br />
* [[Unison]] - Unison is a file-synchronization tool for Unix and Windows. It determines all differences between two directory trees and lets the user decide, how to proceed with every differing file. <br />
* [[HP48 Series RPN Calculator]] - Calculator with many functions<br />
* [[qwo]]- An alternative input method.<br />
* {{opkg.org|57|fido}} - [[fido]] is a todo list\note manager written with elementary<br />
* [http://meuk.spritesserver.nl/lightsaber-0.1.tgz The Lightsaber]. Pre-alpha starwaresque orphanware.<br />
* [[NeoTool]] NeoTool is a bash script for your desktop system to provide a friendly GUI frontend to some common management tasks.<br />
* [[NeoCon]] - neocon is a handy serial console utility (not only) for u-boot. The main feature of neocon is actually that you can give it a list of devices and it will pick one that works.<br />
* [http://techiem2.net/index.php?/archives/10-Freerunner-USB-Mode-Control-Program.html usbmode]-a quick pygtk program. <br />
* [[Enotes]] - Enotes is the implementation of a TODOlist manager written with elementary to appear better with distribution that use illume, like SHR.<br />
* [[LED clock]] - When an Openmoko is sitting unused at night, turn it into an alarm clock with large 7-segment digits on a black background in landscape mode. <br />
* [[MokoGeocaching]] - Utility for add a POI to TangoGPS using geocaching.com <br />
* [[Wrench]] - Modual used utility enlightenment_remote.<br />
* [[Yaouh!]] - Yet Another OSM Updater H.<br />
* [[ShortOm]] - Graphical launcher for shell or application, with editable config file, and log result page.<br />
* [[Pimlico]]-Pimlico is a suite of lightweight Personal Information Management (PIM) applications designed primarily for handheld and mobile devices<br />
* [http://projects.openmoko.org/projects/otp4neo/ OTP4Neo] One time password generator<br />
* [http://projects.openmoko.org/projects/ffalarms/ FFAlarm] is a program to set multiple alarms a day using a finger friendly user interface<br />
* [[OpenWrt]]-basic support for the Openmoko &quot;Freerunner&quot;! Kernel (2.6.28) is building and booting.<br />
* [[Enscribi]]-a handwriting recognition input method for Linux. It's mainly developed for the Openmoko Freerunner smartphone.<br />
* [[GridPad]]-GridPad is an alternative input method for entering text with your finger, a Simple Character Recognizer Software.<br />
* [[sortdesk]] sort your om-desktop in categories<br />
* [[Mokometeo]] is a widget which fetches the weather forecast from yahoo, for a list of cities<br />
* {{opkg.org|176|CoovaChilli}} - It turns your phone's WiFi network into an Ad-Hoc Hotspot!<br />
* [http://openmoko.huber-computer.de/ DWDWetter] Fetches weather information from dwd (First Register at dwd!)<br />
* [[QSuunto-Lite]] display dive log information from Suunto Dive computers (that work with divetools-ab)<br />
* [[Literki]] - alternative keyboard<br />
<br />
==Setting Application==<br />
* [[Wmiconfig]]- wmiconfig is a tool written by Atheros Communications Inc to configure the Ar6k WIFI chip used in the Neo Freerunner. This is a standalone C executable, released under GPL v2.<br />
* [[GTA02 sysfs]]- sysfs is a filesystem that is mounted on /sys which contains various fake &quot;files&quot; that are actually filled by a variety of drivers and other kernel subsystems. You can use it to change settings and behaviours of the kernel and drivers dynamically.<br />
<br />
== Video ==<br />
<br />
* [[Video Player]] - Using Mplayer on Openmoko smartphones.<br />
* [http://katastrophos.net/andre/blog/software/quasar-media-player/ Quasar] - a mplayer frontend for X11.<br />
<br />
<br />
<br />
<br />
----<br />
<br />
== daemon ==<br />
* [[PyPhonelog]] - daemon uses the framework to track and log all the calls made to and from the moko.<br />
* [[Lscd]] - LSC library/daemon on Linux System.<br />
<br />
== An automatic list of application-related wiki pages ==<br />
<br />
The pages linked above are all maintained manually. We also maintain an automatic categorization system by tagging wiki pages. Here is the list of application-related pages in this wiki. Normally, every page listed below should be also listed above in the same category. The converse is false: there are applications without a wiki page.<br />
<br />
&lt;div style=&quot;border: solid 1px black; padding: 1ex&quot;&gt;&lt;b&gt;Applications in this Wiki:&lt;/b&gt;<br />
&lt;categorytree mode=pages depth=2 hideroot=on&gt;Applications&lt;/categorytree&gt;<br />
&lt;/div&gt;<br />
<br />
<br />
== Where to find more applications? ==<br />
<br />
At [http://opkg.org opkg.org] !<br />
<br />
Not all Openmoko apps are listed on this wiki - there are much more [http://projects.openmoko.org/softwaremap/ projects at the Openmoko GForge] than the wiki can list, not to mention self-hosted applications on their own websites. Actually the phones can run most Linux based Free Software, using for example the [[Debian]] distribution. The [http://handhelds.freshmeat.net/browse/1038/ mobile phones section of Freshmeat] may be a interesting place to look.<br />
<br />
Note also that there are many packages in the repository that are not installed by default. If what you want is a classic, chances are that it is already packaged. Suppose you want to install Perl:<br />
opkg list|grep perl<br />
opkg install perl<br />
<br />
More application download related pages:<br />
<br />
* [[Community Repository]]<br />
* [[Users Repositories]]<br />
<br />
&lt;div style=&quot;clear:both&quot;&gt;&amp;nbsp;&lt;/div&gt;<br />
<br />
== Where to find full distributions ? ==<br />
<br />
* [[Download]]: for complete system downloads<br />
<br />
== The usual warnings ==<br />
&lt;small&gt;<br />
* Some of these software are developed by Openmoko Inc. and some are contributed by the community. Any problems with community contributed software should be reported to the individual software developer rather than the Openmoko core team.<br />
* Most programs listed here are not mature/stable, but only useable/beta.<br />
* Many programs listed here are not yet packaged for your distribution and integrated in its repositories. Whichever it is.<br />
* Installing experimental software from the internet is certain to break things. Running it as root is a very insecure thing to do. Kown that you will be burned, have backups, and be ready to apologize to everybody in your phone contact list in case they receive strange SMSs...<br />
&lt;/small&gt;<br />
<br />
See also [[Hall of Fame]]<br />
<br />
[[Category:Applications| ]]<br />
[[Category:Basic End User]]</div>Myfanwyhttp://wiki.openmoko.org/wiki/ApplicationsApplications2009-09-11T10:01:39Z<p>Myfanwy: /* email */</p>
<hr />
<div>{{Languages|Applications}}<br />
This is the wiki's master application list for the Openmoko smartphones. <br />
<br />
== How to register new applications ?==<br />
<br />
This list can not be exhaustive, as new things are showing up every week. This page is here to help spreading awareness about applications. Here are instructions on how to add a specific application to this list. There are many ways to go<br />
<br />
Method 1 (preferred):<br />
* Register your application at http://opkg.org. You will get a package number there, for example 33.<br />
* Notify the community mailing list.<br />
* Come back here, click on &quot;edit&quot; next to the appropriate section title, then add a line like:<br />
&lt;pre&gt;* {{opkg.org|33|Application name}} A short description&lt;/pre&gt;<br />
<br />
Method 2: Just link to wherever the application is hosted.<br />
* Click on &quot;edit&quot; next to the appropriate section title, add a line like:<br />
&lt;pre&gt;* [http://your.host.domain/the/path/to/app/page.html Application name] A short description&lt;/pre&gt;<br />
<br />
Method 3: Create a new page in this wiki.<br />
* Click on &quot;edit&quot; next to the appropriate section title, then add a line like:<br />
&lt;pre&gt;* [[Application name]] A short description&lt;/pre&gt;<br />
* The application name will appear in red, click on it to create and edit the new page.<br />
<br />
== Audio ==<br />
<br />
* [http://www.faltantornillos.net/proyectos/gnu/brightPlayer/brightPlayerGTK0.2.tar.gz Bright Player] - Fast, lightweight and easy random music player.<br />
* [[Dictator]] - Record mic, incoming GSM-sound, or a whole Phonecall<br />
* {{opkg.org|55|ePiano}} - epiano is going to be a virtual piano<br />
* [[Fingertier]] - minimal and finger friendly music player<br />
* [[Fourier]]- Realtime frequency analysis of sound data.<br />
* [[Guitartune]] - Tune musical Instruments.<br />
* [[GTick]] - GTick is a metronome application written for GNU/Linux<br />
* [[Intone]] - Elementary based mplayer frontend (for audio files).<br />
* [[Mokoko]]- Play music.<br />
* {{opkg.org|151|MokoPod}} - Retrieve and listen to podcasts <br />
* [[Neoqplayer]] - Renamed as GorshPlayer: a multimedia player written in Qt4: play and retreive podcasts feeds, more reactive interface, now able to play videos ( in svn ).<br />
* [http://fisoft.eu/standa/openmoko/omshuffle_0.1_arm.ipk omShuffle] - Inspired by Bright Player with volume control. Needs mplayer to work.<br />
* [[Openmoko-mediaplayer2]] - Play music and video (mp3...)<br />
* [[Openmokast]] - Play audio stream and slideshow stream<br />
* [[Pythm]] - Audio player GUI using mplayer and mpd as backend.<br />
* [[PyRok]] - Audio player which uses Gstreamer for playback and Pygame for GUI.<br />
* [[Satan]] - Create your own music!<br />
* [[Streamtuner]] - Listen to Internet Radio Stations<br />
* [[Streamripper]] - Record from Internet Radio Stations<br />
* [[Voicenote]] - Voicenote is a script which allows to record any sound from the microphone into a wav file. It can play the created files too. It is intended to be an easy and quick way to do so.<br />
* [http://rzr.online.fr/q/esd boxar] - Touchscreen as a finger friendly piano -- [[User:RzR]]<br />
* {{opkg.org|271|JaMoko}} Jamoko is a Jamendo player for OpenMoko.<br />
----<br />
<br />
== BlueTooth ==<br />
* [[Coypu]] - Utility for send file via BlueTooth<br />
----<br />
<br />
== Games ==<br />
<br />
* [[Games/Om 2007.2]] - Many small games on Om 2007.2<br />
* [[Om 2008.8 Sudoku]] - Number placement based puzzle game<br />
* [[Moko-sudoku]] - Another sudoku puzzle game.<br />
* {{opkg.org|60|ScummVM}} ([[Scummvm|Wiki]]) Virtual Machine for several classic graphical point-and-click adventure games<br />
* [[Kobodeluxe]] - A top-view space shooter, available from 2008.8 repositories.<br />
* [[Pingus]] - Pingus is a lemmings clone with penguins.<br />
* [[Duke Nukem 3D]] - Legendary First Person Shooter.<br />
* [[Numptyphysics]] - A drawing puzzle game.<br />
* [[Gnuboy]] - An emulator for the handheld gaming all-time bestseller.<br />
* [[XBill]] - Little action game to stop Bill from installing Windows(tm) on computers.<br />
* [[Xlogical]]-A puzzle based game where you turn spinners to move balls around.<br />
* [[Liquid War]]-Liquid War is a truly original multiplayer wargame.<br />
* [http://unsyncopated.com/BrainSolvent/Doom%20Port DOOM]- Classic FPS. Freerunner/1973<br />
* [[MBAC]]- MBAC is &quot;Moko Bulls and Cows&quot;, a classic game for openmoko written in pygtk similar to mastermind.<br />
* [[OpenVibe]] - The first opensource vibrator.<br />
* [[OpenTTD]] - OpenTransportTycoonDeluxe, ported to openmoko, using only GPLed datafiles.<br />
* [http://scalde.free.fr/index.php?option=com_content&amp;view=article&amp;id=93:pong-pogresses&amp;catid=43:openmoko&amp;Itemid=66 Pong progresses]- This is a little pong game for the openmoko freerunner. The screen is devided in halves, so you can touch the right half to move the paddle right and the left half to move it left.<br />
* [[OpenMooCow]] - OpenMooCow reads information out of your accelerometers. Now, if you turn the phone upside down and back again, it &quot;moos&quot; like one of the little toys.<br />
* [[Freerunner LightSaber]]-Application as iphone LightSaber.<br />
* [[CellHunter]] - A game you earn points by collecting cells (in english now).<br />
* [[XSkat]] - XSkat lets you play the card game Skat defined by the official Skat Order.<br />
* {{opkg.org|136|OpenMiaoCat}} OpenMiaoCat, like OpenMooCow, makes your phone became a cat!<br />
* {{opkg.org|149|I'm Rich}} I'm Rich application<br />
* {{opkg.org|121|Mokomaze}} Ball-in-the-labyrinth game<br />
* [[Acceleroids]] Shoot-the-asteroids game<br />
* {{opkg.org|169|Black Sheep}} Fight insomnia!<br />
----<br />
<br />
== GPS ==<br />
* {{opkg.org|268|Advanced Geocaching Tool for Linux}} - &quot;Towards paperless geocaching&quot; - [[Advanced Geocaching Tool for Linux|User Manual]]<br />
* [[SGTL|Simple Geocaching Tool for Linux]] - A geocaching application which shows you the direction.<br />
* [[GPS Sight]] - Display GPS information, location, tracks, etc, without maps.<br />
* [[Gpsdrive]] - Car (bike, etc) navigation system<br />
* [[Om 2008.8 Locations]] - (aka Splinter) - Location sharing based on GPS and SMS<br />
* [[Navit]] - Car navigation system with routing engine<br />
* [[TangoGPS]] - Display map (OSM..), record GPS tracks...<br />
* [[Pyroute]] - Pyroute is a routing program written in Python. It features mobile phone GUI for maps, GPS, and routing.<br />
* [http://www.mumpot.org/ mumpot] - Display map (OSM), routing, OSM editing, a bit of live editing<br />
* [[QMapControl]] - Display maps (OSM..) and add points, lines...<br />
* [[Qpegps]] - Display map with current position<br />
* [[Idle Hands]] - Give a task to you based on your location<br />
* [[Gtkaddpoi]] - Utility for add a POI to TangoGPS using address or coordinates and export to Navit or to .kml file.<br />
* [[Gpsdcontrol]]-A simple python script for start or stop gpsd daemon with a button on the desktop.<br />
* [[OpenBmap]]-a free and open map of wireless communicating objects (e.g. cellular antenna, Wi-Fi, Bluetooth). It provides tools to mutualize data, create and access this map.<br />
* {{opkg.org|162|gvSIG Mobile}} - This is an unofficial port of gvSIG Mobile (http://www.gvsig.gva.es/) to the Openmoko platform. gvSIG Mobile for Openmoko is currently a GPS-enabled projection-aware map viewer. [http://gvsigmobileonopenmoko.wordpress.com/ Homepage].<br />
* {{opkg.org|175|BikeAtor}} - Like TangoGPS BikeAtor can display OSM Maps. The Speedometer displays the most interesting values of the trip.<br />
* {{opkg.org|178|bicirutas}} - This application looks for mtb routes in www.bicirutas.net (routes in Spain, Portugal, United Kingdom, France, Italy and Germany). It gets the current position from the gps system and downloads nearby routes. Then you can follow them with tangogps application.<br />
* [http://code.google.com/p/omgps omgps] - High performance, UBX binary or ogpsd as GPS data provider, layered maps, AGPS online, track replay, scratch on map, ruler and lat/lon grid, basic sounding. etc.<br />
* [[Travel Diary]] - a simple application to save little diary entries to a csv file and send this to a server (that can generate a .kml file or show a map or do whatever...)<br />
* [[QNavitCtl]] - send coordinates to Navit via dbus (position, destination, map center)<br />
* [[a-gps GUI]] - uses cellhunter data to locate you, then uses u-blox a-gps to initialize your GPS chip<br />
* [[sms-sentry]] - locate a lost or stolen phone<br />
* [[bicirutas]] - download bicycle routes<br />
<br />
== Graphics ==<br />
<br />
* [[Orrery]] - Displays the night sky<br />
* [[OMView]] - Image viewer<br />
* [[PyPenNotes]] - Write notes using pen and touchscreen<br />
* [[Gpe-scap]] - Take screenshots<br />
* [[Flash|Gnash]]-Play flash file on Neo<br />
* [[Neon]] - Image viewer<br />
<br />
----<br />
<br />
== Internet ==<br />
===web browsers===<br />
* [[Midori]] - Webkit based web browser<br />
* [[Minimo]] - Mozilla based web browser<br />
* [http://www.dillo.org/ Dillo] - Multiplatform fast and small web browser ([http://misc.andi.de1.cc/dillo/ .ipk]).<br />
* [http://code.google.com/p/pyqt-browser/ pyqt-browser] - modified the sample code from python-pyqt4 and changed it to use webkit for web browsing. <br />
* [http://www.netsurf-browser.org/ netsurf]-A new browser for Neo FreeRunner.<br />
* [[Openmoko-browser2]] - The original Openmoko web browser<br />
<br />
===VOIP===<br />
* [[Twinkle]] - Voice over IP<br />
* [[Linphone]] - Voice over IP<br />
<br />
===email clients===<br />
* [[Openmoko Mail]] - E-mail client<br />
* [http://www.claws-mail.org/ claws-mail] email client available in shr-unstable<br />
* [[Qtmail]] - Default mail program on Om 2008.8<br />
<br />
===Offline wikipedia===<br />
* [[Mokopedia]] - Read small Wikipedia dumps offline<br />
* [[Offline Wikipedia reader]] - store the entire content of wikipedia (single-language, excluding images), on a single 8GB microSD card<br />
<br />
===IM===<br />
* [[Pidgin]] - Instant messaging client (ICQ, MSN, Jabber, Yahoo and more.)<br />
* [[CenterIM]] - Instant messaging client (terminal-based).<br />
<br />
===other===<br />
* [[Openmokast]] - Play audio stream and slideshow stream<br />
* [[PyFeedRead]] - RSS feed reader<br />
* [[TwitterMoko]] - A Twitter client for Openmoko<br />
* [http://we.trekbeyond.org/~kd8ikt/moko/shr_pkgz/ ettercap-ng] DEAD LINK<br />
* {{opkg.org|205|GPRSModem}} - Converts your neo in a GPRS modem.<br />
<br />
== Office ==<br />
* dates - a simple calendar<br />
* [[e-tasks]] - An elementary task manager<br />
* [[Epdfview]] - PDF reader.<br />
* Evince - Document reader for PDF, PS, DJVU and more.<br />
* [[FBReader]] - E-book reader program (TXT, FB2, HTML and more)<br />
* [[GPE contacts]]<br />
* [[Gutenflash]] - Fast text reader by scrolling text<br />
* [[OMoney]] - A bookkeeping application<br />
* {{opkg.org|191|PISI}} - PISI is synchronizing (PIM) information<br />
<br />
== Settings ==<br />
<br />
* [[Mofi]] - Wifi setup tool<br />
* [[Mokonnect]] - Connection manager<br />
* [[Lint-wifi]] - Wifi setup tool<br />
* [[KnjMokoWifi]] - Wifi setup tool<br />
* [[KnjMokoOPKG]] - A graphical frontend to OPKG.<br />
* [[Om 2008.8 Installer]] - Graphical software installer<br />
* [[Opkg]] - Command line software installer<br />
* [[Sephora]] - Settings manager<br />
* [[SettingsGUI]] - Edit various settings<br />
* [[Wicd]] - Wifi setup tool<br />
* [[ZOMG!]] - A graphical package manager (opkg frontend -&gt; should work on any distro)<br />
* [[Timezone|tzdata]]- Customise your time zone setting.<br />
* [[momtools]] - an application to control Wifi, gprs and some other stuff<br />
* [[Wlan]] - Wlan is an application to manage wireless connection on the Freerunner<br />
<br />
== System ==<br />
* [[Aphasia]] - A system built on Erlang and a vertical application for people with apahasia.<br />
* [http://www.pierrox.net/auimd/ AUIMD] - AUIMD is a PyQt graphical user interface for mobile devices.<br />
* [[Auxlaunch]] - Finger-friendly app launcher and window switcher<br />
* [[Display Locker]] - Screen lock<br />
* [[Gwaterpas]] - levelling tool using accelerometer<br />
* [[Gestures]] - Detect movement and display information, rotate screen<br />
* [[Keychain]] - SSH keys<br />
* [[MokoFEM]] - Monitors GSM information<br />
* [[Mokostat]] - Monitors battery<br />
* [[Openmoko Bluetooth remote controller|ReMoko]] - Control stuff via BlueTooth<br />
* [[Rotate]] - Rotate screen when phone is rotated<br />
* [[Vala-terminal]] - Command prompt with tabs<br />
* [[Ts calibrate]] - Calibrates touchscreen<br />
* [[Zedlock]] - Screen locker<br />
* [http://fso-control.projects.openmoko.org/ fso-control] - Popup Power menu to shutdown/suspend/reboot.<br />
* [[omkeys_functions]] - Remap AUX key bindings<br />
* [[Siglaunchd]] - A daemon that listens to dbus signals and launches appliactions upon arrival.<br />
* [[Pexpect]]-a pure Python module for spawning child applications; controlling them; and responding to expected patterns in their output. <br />
* {{opkg.org|253|libaxel}} - Library for easy use accelerometer.<br />
----<br />
<br />
== Telephony ==<br />
* [[Dialer/2007.2]] - The dialer application in Om 2007.2<br />
* [[Openmoko SMS Middleware]]- SMS middleware is a Openmoko middleware software for additional features related to SMS. Plugin architecture and Python based code gives this project lots of flexibility and enchancebility.<br />
* [[Paroli]] -Paroli is an integrated phone application based on Tichy (and so also written in python). <br />
* [[Litephone]] Easy to use, single window phone application written in Qt.<br />
----<br />
<br />
== Utility ==<br />
* [[Unison]] - Unison is a file-synchronization tool for Unix and Windows. It determines all differences between two directory trees and lets the user decide, how to proceed with every differing file. <br />
* [[HP48 Series RPN Calculator]] - Calculator with many functions<br />
* [[qwo]]- An alternative input method.<br />
* {{opkg.org|57|fido}} - [[fido]] is a todo list\note manager written with elementary<br />
* [http://meuk.spritesserver.nl/lightsaber-0.1.tgz The Lightsaber]. Pre-alpha starwaresque orphanware.<br />
* [[NeoTool]] NeoTool is a bash script for your desktop system to provide a friendly GUI frontend to some common management tasks.<br />
* [[NeoCon]] - neocon is a handy serial console utility (not only) for u-boot. The main feature of neocon is actually that you can give it a list of devices and it will pick one that works.<br />
* [http://techiem2.net/index.php?/archives/10-Freerunner-USB-Mode-Control-Program.html usbmode]-a quick pygtk program. <br />
* [[Enotes]] - Enotes is the implementation of a TODOlist manager written with elementary to appear better with distribution that use illume, like SHR.<br />
* [[LED clock]] - When an Openmoko is sitting unused at night, turn it into an alarm clock with large 7-segment digits on a black background in landscape mode. <br />
* [[MokoGeocaching]] - Utility for add a POI to TangoGPS using geocaching.com <br />
* [[Wrench]] - Modual used utility enlightenment_remote.<br />
* [[Yaouh!]] - Yet Another OSM Updater H.<br />
* [[ShortOm]] - Graphical launcher for shell or application, with editable config file, and log result page.<br />
* [[Pimlico]]-Pimlico is a suite of lightweight Personal Information Management (PIM) applications designed primarily for handheld and mobile devices<br />
* [http://projects.openmoko.org/projects/otp4neo/ OTP4Neo] One time password generator<br />
* [http://projects.openmoko.org/projects/ffalarms/ FFAlarm] is a program to set multiple alarms a day using a finger friendly user interface<br />
* [[OpenWrt]]-basic support for the Openmoko &quot;Freerunner&quot;! Kernel (2.6.28) is building and booting.<br />
* [[Enscribi]]-a handwriting recognition input method for Linux. It's mainly developed for the Openmoko Freerunner smartphone.<br />
* [[GridPad]]-GridPad is an alternative input method for entering text with your finger, a Simple Character Recognizer Software.<br />
* [[sortdesk]] sort your om-desktop in categories<br />
* [[Mokometeo]] is a widget which fetches the weather forecast from yahoo, for a list of cities<br />
* {{opkg.org|176|CoovaChilli}} - It turns your phone's WiFi network into an Ad-Hoc Hotspot!<br />
* [http://openmoko.huber-computer.de/ DWDWetter] Fetches weather information from dwd (First Register at dwd!)<br />
* [[QSuunto-Lite]] display dive log information from Suunto Dive computers (that work with divetools-ab)<br />
* [[Literki]] - alternative keyboard<br />
<br />
==Setting Application==<br />
* [[Wmiconfig]]- wmiconfig is a tool written by Atheros Communications Inc to configure the Ar6k WIFI chip used in the Neo Freerunner. This is a standalone C executable, released under GPL v2.<br />
* [[GTA02 sysfs]]- sysfs is a filesystem that is mounted on /sys which contains various fake &quot;files&quot; that are actually filled by a variety of drivers and other kernel subsystems. You can use it to change settings and behaviours of the kernel and drivers dynamically.<br />
<br />
== Video ==<br />
<br />
* [[Video Player]] - Using Mplayer on Openmoko smartphones.<br />
* [http://katastrophos.net/andre/blog/software/quasar-media-player/ Quasar] - a mplayer frontend for X11.<br />
<br />
<br />
<br />
<br />
----<br />
<br />
== daemon ==<br />
* [[PyPhonelog]] - daemon uses the framework to track and log all the calls made to and from the moko.<br />
* [[Lscd]] - LSC library/daemon on Linux System.<br />
<br />
== An automatic list of application-related wiki pages ==<br />
<br />
The pages linked above are all maintained manually. We also maintain an automatic categorization system by tagging wiki pages. Here is the list of application-related pages in this wiki. Normally, every page listed below should be also listed above in the same category. The converse is false: there are applications without a wiki page.<br />
<br />
&lt;div style=&quot;border: solid 1px black; padding: 1ex&quot;&gt;&lt;b&gt;Applications in this Wiki:&lt;/b&gt;<br />
&lt;categorytree mode=pages depth=2 hideroot=on&gt;Applications&lt;/categorytree&gt;<br />
&lt;/div&gt;<br />
<br />
<br />
== Where to find more applications? ==<br />
<br />
At [http://opkg.org opkg.org] !<br />
<br />
Not all Openmoko apps are listed on this wiki - there are much more [http://projects.openmoko.org/softwaremap/ projects at the Openmoko GForge] than the wiki can list, not to mention self-hosted applications on their own websites. Actually the phones can run most Linux based Free Software, using for example the [[Debian]] distribution. The [http://handhelds.freshmeat.net/browse/1038/ mobile phones section of Freshmeat] may be a interesting place to look.<br />
<br />
Note also that there are many packages in the repository that are not installed by default. If what you want is a classic, chances are that it is already packaged. Suppose you want to install Perl:<br />
opkg list|grep perl<br />
opkg install perl<br />
<br />
More application download related pages:<br />
<br />
* [[Community Repository]]<br />
* [[Users Repositories]]<br />
<br />
&lt;div style=&quot;clear:both&quot;&gt;&amp;nbsp;&lt;/div&gt;<br />
<br />
== Where to find full distributions ? ==<br />
<br />
* [[Download]]: for complete system downloads<br />
<br />
== The usual warnings ==<br />
&lt;small&gt;<br />
* Some of these software are developed by Openmoko Inc. and some are contributed by the community. Any problems with community contributed software should be reported to the individual software developer rather than the Openmoko core team.<br />
* Most programs listed here are not mature/stable, but only useable/beta.<br />
* Many programs listed here are not yet packaged for your distribution and integrated in its repositories. Whichever it is.<br />
* Installing experimental software from the internet is certain to break things. Running it as root is a very insecure thing to do. Kown that you will be burned, have backups, and be ready to apologize to everybody in your phone contact list in case they receive strange SMSs...<br />
&lt;/small&gt;<br />
<br />
See also [[Hall of Fame]]<br />
<br />
[[Category:Applications| ]]<br />
[[Category:Basic End User]]</div>Myfanwyhttp://wiki.openmoko.org/wiki/ApplicationsApplications2009-09-11T10:01:14Z<p>Myfanwy: /* Internet */</p>
<hr />
<div>{{Languages|Applications}}<br />
This is the wiki's master application list for the Openmoko smartphones. <br />
<br />
== How to register new applications ?==<br />
<br />
This list can not be exhaustive, as new things are showing up every week. This page is here to help spreading awareness about applications. Here are instructions on how to add a specific application to this list. There are many ways to go<br />
<br />
Method 1 (preferred):<br />
* Register your application at http://opkg.org. You will get a package number there, for example 33.<br />
* Notify the community mailing list.<br />
* Come back here, click on &quot;edit&quot; next to the appropriate section title, then add a line like:<br />
&lt;pre&gt;* {{opkg.org|33|Application name}} A short description&lt;/pre&gt;<br />
<br />
Method 2: Just link to wherever the application is hosted.<br />
* Click on &quot;edit&quot; next to the appropriate section title, add a line like:<br />
&lt;pre&gt;* [http://your.host.domain/the/path/to/app/page.html Application name] A short description&lt;/pre&gt;<br />
<br />
Method 3: Create a new page in this wiki.<br />
* Click on &quot;edit&quot; next to the appropriate section title, then add a line like:<br />
&lt;pre&gt;* [[Application name]] A short description&lt;/pre&gt;<br />
* The application name will appear in red, click on it to create and edit the new page.<br />
<br />
== Audio ==<br />
<br />
* [http://www.faltantornillos.net/proyectos/gnu/brightPlayer/brightPlayerGTK0.2.tar.gz Bright Player] - Fast, lightweight and easy random music player.<br />
* [[Dictator]] - Record mic, incoming GSM-sound, or a whole Phonecall<br />
* {{opkg.org|55|ePiano}} - epiano is going to be a virtual piano<br />
* [[Fingertier]] - minimal and finger friendly music player<br />
* [[Fourier]]- Realtime frequency analysis of sound data.<br />
* [[Guitartune]] - Tune musical Instruments.<br />
* [[GTick]] - GTick is a metronome application written for GNU/Linux<br />
* [[Intone]] - Elementary based mplayer frontend (for audio files).<br />
* [[Mokoko]]- Play music.<br />
* {{opkg.org|151|MokoPod}} - Retrieve and listen to podcasts <br />
* [[Neoqplayer]] - Renamed as GorshPlayer: a multimedia player written in Qt4: play and retreive podcasts feeds, more reactive interface, now able to play videos ( in svn ).<br />
* [http://fisoft.eu/standa/openmoko/omshuffle_0.1_arm.ipk omShuffle] - Inspired by Bright Player with volume control. Needs mplayer to work.<br />
* [[Openmoko-mediaplayer2]] - Play music and video (mp3...)<br />
* [[Openmokast]] - Play audio stream and slideshow stream<br />
* [[Pythm]] - Audio player GUI using mplayer and mpd as backend.<br />
* [[PyRok]] - Audio player which uses Gstreamer for playback and Pygame for GUI.<br />
* [[Satan]] - Create your own music!<br />
* [[Streamtuner]] - Listen to Internet Radio Stations<br />
* [[Streamripper]] - Record from Internet Radio Stations<br />
* [[Voicenote]] - Voicenote is a script which allows to record any sound from the microphone into a wav file. It can play the created files too. It is intended to be an easy and quick way to do so.<br />
* [http://rzr.online.fr/q/esd boxar] - Touchscreen as a finger friendly piano -- [[User:RzR]]<br />
* {{opkg.org|271|JaMoko}} Jamoko is a Jamendo player for OpenMoko.<br />
----<br />
<br />
== BlueTooth ==<br />
* [[Coypu]] - Utility for send file via BlueTooth<br />
----<br />
<br />
== Games ==<br />
<br />
* [[Games/Om 2007.2]] - Many small games on Om 2007.2<br />
* [[Om 2008.8 Sudoku]] - Number placement based puzzle game<br />
* [[Moko-sudoku]] - Another sudoku puzzle game.<br />
* {{opkg.org|60|ScummVM}} ([[Scummvm|Wiki]]) Virtual Machine for several classic graphical point-and-click adventure games<br />
* [[Kobodeluxe]] - A top-view space shooter, available from 2008.8 repositories.<br />
* [[Pingus]] - Pingus is a lemmings clone with penguins.<br />
* [[Duke Nukem 3D]] - Legendary First Person Shooter.<br />
* [[Numptyphysics]] - A drawing puzzle game.<br />
* [[Gnuboy]] - An emulator for the handheld gaming all-time bestseller.<br />
* [[XBill]] - Little action game to stop Bill from installing Windows(tm) on computers.<br />
* [[Xlogical]]-A puzzle based game where you turn spinners to move balls around.<br />
* [[Liquid War]]-Liquid War is a truly original multiplayer wargame.<br />
* [http://unsyncopated.com/BrainSolvent/Doom%20Port DOOM]- Classic FPS. Freerunner/1973<br />
* [[MBAC]]- MBAC is &quot;Moko Bulls and Cows&quot;, a classic game for openmoko written in pygtk similar to mastermind.<br />
* [[OpenVibe]] - The first opensource vibrator.<br />
* [[OpenTTD]] - OpenTransportTycoonDeluxe, ported to openmoko, using only GPLed datafiles.<br />
* [http://scalde.free.fr/index.php?option=com_content&amp;view=article&amp;id=93:pong-pogresses&amp;catid=43:openmoko&amp;Itemid=66 Pong progresses]- This is a little pong game for the openmoko freerunner. The screen is devided in halves, so you can touch the right half to move the paddle right and the left half to move it left.<br />
* [[OpenMooCow]] - OpenMooCow reads information out of your accelerometers. Now, if you turn the phone upside down and back again, it &quot;moos&quot; like one of the little toys.<br />
* [[Freerunner LightSaber]]-Application as iphone LightSaber.<br />
* [[CellHunter]] - A game you earn points by collecting cells (in english now).<br />
* [[XSkat]] - XSkat lets you play the card game Skat defined by the official Skat Order.<br />
* {{opkg.org|136|OpenMiaoCat}} OpenMiaoCat, like OpenMooCow, makes your phone became a cat!<br />
* {{opkg.org|149|I'm Rich}} I'm Rich application<br />
* {{opkg.org|121|Mokomaze}} Ball-in-the-labyrinth game<br />
* [[Acceleroids]] Shoot-the-asteroids game<br />
* {{opkg.org|169|Black Sheep}} Fight insomnia!<br />
----<br />
<br />
== GPS ==<br />
* {{opkg.org|268|Advanced Geocaching Tool for Linux}} - &quot;Towards paperless geocaching&quot; - [[Advanced Geocaching Tool for Linux|User Manual]]<br />
* [[SGTL|Simple Geocaching Tool for Linux]] - A geocaching application which shows you the direction.<br />
* [[GPS Sight]] - Display GPS information, location, tracks, etc, without maps.<br />
* [[Gpsdrive]] - Car (bike, etc) navigation system<br />
* [[Om 2008.8 Locations]] - (aka Splinter) - Location sharing based on GPS and SMS<br />
* [[Navit]] - Car navigation system with routing engine<br />
* [[TangoGPS]] - Display map (OSM..), record GPS tracks...<br />
* [[Pyroute]] - Pyroute is a routing program written in Python. It features mobile phone GUI for maps, GPS, and routing.<br />
* [http://www.mumpot.org/ mumpot] - Display map (OSM), routing, OSM editing, a bit of live editing<br />
* [[QMapControl]] - Display maps (OSM..) and add points, lines...<br />
* [[Qpegps]] - Display map with current position<br />
* [[Idle Hands]] - Give a task to you based on your location<br />
* [[Gtkaddpoi]] - Utility for add a POI to TangoGPS using address or coordinates and export to Navit or to .kml file.<br />
* [[Gpsdcontrol]]-A simple python script for start or stop gpsd daemon with a button on the desktop.<br />
* [[OpenBmap]]-a free and open map of wireless communicating objects (e.g. cellular antenna, Wi-Fi, Bluetooth). It provides tools to mutualize data, create and access this map.<br />
* {{opkg.org|162|gvSIG Mobile}} - This is an unofficial port of gvSIG Mobile (http://www.gvsig.gva.es/) to the Openmoko platform. gvSIG Mobile for Openmoko is currently a GPS-enabled projection-aware map viewer. [http://gvsigmobileonopenmoko.wordpress.com/ Homepage].<br />
* {{opkg.org|175|BikeAtor}} - Like TangoGPS BikeAtor can display OSM Maps. The Speedometer displays the most interesting values of the trip.<br />
* {{opkg.org|178|bicirutas}} - This application looks for mtb routes in www.bicirutas.net (routes in Spain, Portugal, United Kingdom, France, Italy and Germany). It gets the current position from the gps system and downloads nearby routes. Then you can follow them with tangogps application.<br />
* [http://code.google.com/p/omgps omgps] - High performance, UBX binary or ogpsd as GPS data provider, layered maps, AGPS online, track replay, scratch on map, ruler and lat/lon grid, basic sounding. etc.<br />
* [[Travel Diary]] - a simple application to save little diary entries to a csv file and send this to a server (that can generate a .kml file or show a map or do whatever...)<br />
* [[QNavitCtl]] - send coordinates to Navit via dbus (position, destination, map center)<br />
* [[a-gps GUI]] - uses cellhunter data to locate you, then uses u-blox a-gps to initialize your GPS chip<br />
* [[sms-sentry]] - locate a lost or stolen phone<br />
* [[bicirutas]] - download bicycle routes<br />
<br />
== Graphics ==<br />
<br />
* [[Orrery]] - Displays the night sky<br />
* [[OMView]] - Image viewer<br />
* [[PyPenNotes]] - Write notes using pen and touchscreen<br />
* [[Gpe-scap]] - Take screenshots<br />
* [[Flash|Gnash]]-Play flash file on Neo<br />
* [[Neon]] - Image viewer<br />
<br />
----<br />
<br />
== Internet ==<br />
===web browsers===<br />
* [[Midori]] - Webkit based web browser<br />
* [[Minimo]] - Mozilla based web browser<br />
* [http://www.dillo.org/ Dillo] - Multiplatform fast and small web browser ([http://misc.andi.de1.cc/dillo/ .ipk]).<br />
* [http://code.google.com/p/pyqt-browser/ pyqt-browser] - modified the sample code from python-pyqt4 and changed it to use webkit for web browsing. <br />
* [http://www.netsurf-browser.org/ netsurf]-A new browser for Neo FreeRunner.<br />
* [[Openmoko-browser2]] - The original Openmoko web browser<br />
<br />
===VOIP===<br />
* [[Twinkle]] - Voice over IP<br />
* [[Linphone]] - Voice over IP<br />
<br />
===email===<br />
* [[Openmoko Mail]] - E-mail client<br />
* [http://www.claws-mail.org/ claws-mail] email client available in shr-unstable<br />
* [[Qtmail]] - Default mail program on Om 2008.8<br />
<br />
===Offline wikipedia===<br />
* [[Mokopedia]] - Read small Wikipedia dumps offline<br />
* [[Offline Wikipedia reader]] - store the entire content of wikipedia (single-language, excluding images), on a single 8GB microSD card<br />
<br />
===IM===<br />
* [[Pidgin]] - Instant messaging client (ICQ, MSN, Jabber, Yahoo and more.)<br />
* [[CenterIM]] - Instant messaging client (terminal-based).<br />
<br />
===other===<br />
* [[Openmokast]] - Play audio stream and slideshow stream<br />
* [[PyFeedRead]] - RSS feed reader<br />
* [[TwitterMoko]] - A Twitter client for Openmoko<br />
* [http://we.trekbeyond.org/~kd8ikt/moko/shr_pkgz/ ettercap-ng] DEAD LINK<br />
* {{opkg.org|205|GPRSModem}} - Converts your neo in a GPRS modem.<br />
<br />
== Office ==<br />
* dates - a simple calendar<br />
* [[e-tasks]] - An elementary task manager<br />
* [[Epdfview]] - PDF reader.<br />
* Evince - Document reader for PDF, PS, DJVU and more.<br />
* [[FBReader]] - E-book reader program (TXT, FB2, HTML and more)<br />
* [[GPE contacts]]<br />
* [[Gutenflash]] - Fast text reader by scrolling text<br />
* [[OMoney]] - A bookkeeping application<br />
* {{opkg.org|191|PISI}} - PISI is synchronizing (PIM) information<br />
<br />
== Settings ==<br />
<br />
* [[Mofi]] - Wifi setup tool<br />
* [[Mokonnect]] - Connection manager<br />
* [[Lint-wifi]] - Wifi setup tool<br />
* [[KnjMokoWifi]] - Wifi setup tool<br />
* [[KnjMokoOPKG]] - A graphical frontend to OPKG.<br />
* [[Om 2008.8 Installer]] - Graphical software installer<br />
* [[Opkg]] - Command line software installer<br />
* [[Sephora]] - Settings manager<br />
* [[SettingsGUI]] - Edit various settings<br />
* [[Wicd]] - Wifi setup tool<br />
* [[ZOMG!]] - A graphical package manager (opkg frontend -&gt; should work on any distro)<br />
* [[Timezone|tzdata]]- Customise your time zone setting.<br />
* [[momtools]] - an application to control Wifi, gprs and some other stuff<br />
* [[Wlan]] - Wlan is an application to manage wireless connection on the Freerunner<br />
<br />
== System ==<br />
* [[Aphasia]] - A system built on Erlang and a vertical application for people with apahasia.<br />
* [http://www.pierrox.net/auimd/ AUIMD] - AUIMD is a PyQt graphical user interface for mobile devices.<br />
* [[Auxlaunch]] - Finger-friendly app launcher and window switcher<br />
* [[Display Locker]] - Screen lock<br />
* [[Gwaterpas]] - levelling tool using accelerometer<br />
* [[Gestures]] - Detect movement and display information, rotate screen<br />
* [[Keychain]] - SSH keys<br />
* [[MokoFEM]] - Monitors GSM information<br />
* [[Mokostat]] - Monitors battery<br />
* [[Openmoko Bluetooth remote controller|ReMoko]] - Control stuff via BlueTooth<br />
* [[Rotate]] - Rotate screen when phone is rotated<br />
* [[Vala-terminal]] - Command prompt with tabs<br />
* [[Ts calibrate]] - Calibrates touchscreen<br />
* [[Zedlock]] - Screen locker<br />
* [http://fso-control.projects.openmoko.org/ fso-control] - Popup Power menu to shutdown/suspend/reboot.<br />
* [[omkeys_functions]] - Remap AUX key bindings<br />
* [[Siglaunchd]] - A daemon that listens to dbus signals and launches appliactions upon arrival.<br />
* [[Pexpect]]-a pure Python module for spawning child applications; controlling them; and responding to expected patterns in their output. <br />
* {{opkg.org|253|libaxel}} - Library for easy use accelerometer.<br />
----<br />
<br />
== Telephony ==<br />
* [[Dialer/2007.2]] - The dialer application in Om 2007.2<br />
* [[Openmoko SMS Middleware]]- SMS middleware is a Openmoko middleware software for additional features related to SMS. Plugin architecture and Python based code gives this project lots of flexibility and enchancebility.<br />
* [[Paroli]] -Paroli is an integrated phone application based on Tichy (and so also written in python). <br />
* [[Litephone]] Easy to use, single window phone application written in Qt.<br />
----<br />
<br />
== Utility ==<br />
* [[Unison]] - Unison is a file-synchronization tool for Unix and Windows. It determines all differences between two directory trees and lets the user decide, how to proceed with every differing file. <br />
* [[HP48 Series RPN Calculator]] - Calculator with many functions<br />
* [[qwo]]- An alternative input method.<br />
* {{opkg.org|57|fido}} - [[fido]] is a todo list\note manager written with elementary<br />
* [http://meuk.spritesserver.nl/lightsaber-0.1.tgz The Lightsaber]. Pre-alpha starwaresque orphanware.<br />
* [[NeoTool]] NeoTool is a bash script for your desktop system to provide a friendly GUI frontend to some common management tasks.<br />
* [[NeoCon]] - neocon is a handy serial console utility (not only) for u-boot. The main feature of neocon is actually that you can give it a list of devices and it will pick one that works.<br />
* [http://techiem2.net/index.php?/archives/10-Freerunner-USB-Mode-Control-Program.html usbmode]-a quick pygtk program. <br />
* [[Enotes]] - Enotes is the implementation of a TODOlist manager written with elementary to appear better with distribution that use illume, like SHR.<br />
* [[LED clock]] - When an Openmoko is sitting unused at night, turn it into an alarm clock with large 7-segment digits on a black background in landscape mode. <br />
* [[MokoGeocaching]] - Utility for add a POI to TangoGPS using geocaching.com <br />
* [[Wrench]] - Modual used utility enlightenment_remote.<br />
* [[Yaouh!]] - Yet Another OSM Updater H.<br />
* [[ShortOm]] - Graphical launcher for shell or application, with editable config file, and log result page.<br />
* [[Pimlico]]-Pimlico is a suite of lightweight Personal Information Management (PIM) applications designed primarily for handheld and mobile devices<br />
* [http://projects.openmoko.org/projects/otp4neo/ OTP4Neo] One time password generator<br />
* [http://projects.openmoko.org/projects/ffalarms/ FFAlarm] is a program to set multiple alarms a day using a finger friendly user interface<br />
* [[OpenWrt]]-basic support for the Openmoko &quot;Freerunner&quot;! Kernel (2.6.28) is building and booting.<br />
* [[Enscribi]]-a handwriting recognition input method for Linux. It's mainly developed for the Openmoko Freerunner smartphone.<br />
* [[GridPad]]-GridPad is an alternative input method for entering text with your finger, a Simple Character Recognizer Software.<br />
* [[sortdesk]] sort your om-desktop in categories<br />
* [[Mokometeo]] is a widget which fetches the weather forecast from yahoo, for a list of cities<br />
* {{opkg.org|176|CoovaChilli}} - It turns your phone's WiFi network into an Ad-Hoc Hotspot!<br />
* [http://openmoko.huber-computer.de/ DWDWetter] Fetches weather information from dwd (First Register at dwd!)<br />
* [[QSuunto-Lite]] display dive log information from Suunto Dive computers (that work with divetools-ab)<br />
* [[Literki]] - alternative keyboard<br />
<br />
==Setting Application==<br />
* [[Wmiconfig]]- wmiconfig is a tool written by Atheros Communications Inc to configure the Ar6k WIFI chip used in the Neo Freerunner. This is a standalone C executable, released under GPL v2.<br />
* [[GTA02 sysfs]]- sysfs is a filesystem that is mounted on /sys which contains various fake &quot;files&quot; that are actually filled by a variety of drivers and other kernel subsystems. You can use it to change settings and behaviours of the kernel and drivers dynamically.<br />
<br />
== Video ==<br />
<br />
* [[Video Player]] - Using Mplayer on Openmoko smartphones.<br />
* [http://katastrophos.net/andre/blog/software/quasar-media-player/ Quasar] - a mplayer frontend for X11.<br />
<br />
<br />
<br />
<br />
----<br />
<br />
== daemon ==<br />
* [[PyPhonelog]] - daemon uses the framework to track and log all the calls made to and from the moko.<br />
* [[Lscd]] - LSC library/daemon on Linux System.<br />
<br />
== An automatic list of application-related wiki pages ==<br />
<br />
The pages linked above are all maintained manually. We also maintain an automatic categorization system by tagging wiki pages. Here is the list of application-related pages in this wiki. Normally, every page listed below should be also listed above in the same category. The converse is false: there are applications without a wiki page.<br />
<br />
&lt;div style=&quot;border: solid 1px black; padding: 1ex&quot;&gt;&lt;b&gt;Applications in this Wiki:&lt;/b&gt;<br />
&lt;categorytree mode=pages depth=2 hideroot=on&gt;Applications&lt;/categorytree&gt;<br />
&lt;/div&gt;<br />
<br />
<br />
== Where to find more applications? ==<br />
<br />
At [http://opkg.org opkg.org] !<br />
<br />
Not all Openmoko apps are listed on this wiki - there are much more [http://projects.openmoko.org/softwaremap/ projects at the Openmoko GForge] than the wiki can list, not to mention self-hosted applications on their own websites. Actually the phones can run most Linux based Free Software, using for example the [[Debian]] distribution. The [http://handhelds.freshmeat.net/browse/1038/ mobile phones section of Freshmeat] may be a interesting place to look.<br />
<br />
Note also that there are many packages in the repository that are not installed by default. If what you want is a classic, chances are that it is already packaged. Suppose you want to install Perl:<br />
opkg list|grep perl<br />
opkg install perl<br />
<br />
More application download related pages:<br />
<br />
* [[Community Repository]]<br />
* [[Users Repositories]]<br />
<br />
&lt;div style=&quot;clear:both&quot;&gt;&amp;nbsp;&lt;/div&gt;<br />
<br />
== Where to find full distributions ? ==<br />
<br />
* [[Download]]: for complete system downloads<br />
<br />
== The usual warnings ==<br />
&lt;small&gt;<br />
* Some of these software are developed by Openmoko Inc. and some are contributed by the community. Any problems with community contributed software should be reported to the individual software developer rather than the Openmoko core team.<br />
* Most programs listed here are not mature/stable, but only useable/beta.<br />
* Many programs listed here are not yet packaged for your distribution and integrated in its repositories. Whichever it is.<br />
* Installing experimental software from the internet is certain to break things. Running it as root is a very insecure thing to do. Kown that you will be burned, have backups, and be ready to apologize to everybody in your phone contact list in case they receive strange SMSs...<br />
&lt;/small&gt;<br />
<br />
See also [[Hall of Fame]]<br />
<br />
[[Category:Applications| ]]<br />
[[Category:Basic End User]]</div>Myfanwyhttp://wiki.openmoko.org/wiki/DebianDebian2009-09-09T22:55:38Z<p>Myfanwy: spelling mistake</p>
<hr />
<div>__NOTOC__<br />
{{Languages|Debian}}<br />
<br />
Debian is a ''universal operating system'' used on many other embedded devices, and also on home computers. Using Debian on the FreeRunner gives access to the Huge army of software packaged in the Debian repositories, already compiled for the Neo's arm(v4) processor. Moreover, one can build one's own source files for programs without having to learn the OpenEmbedded way. For example compiling natively is a snap with Debian, just apt-get gcc&amp;libc-dev.<br />
<br />
For an existing Debian/Ubuntu user, choosing Debian for Neo FreeRunner makes phone a very familiar place to be in.<br />
<br />
'''The bulk of information related to running Debian on FreeRunner is supposed to be at [http://wiki.debian.org/ wiki.debian.org]. For all installation, support or bug reporting needs please see [http://wiki.debian.org/DebianOnFreeRunner DebianOnFreeRunner] in the Debian wiki.'''<br />
<br />
''The current method of installation, install.sh, is not fail-proof. Work is progressing on a real debian-installer support.''<br />
<br />
== Showcase: Desktop Environments And Applications ==<br />
=== Illume ===<br />
[[Image:Debian_illume_zhone.png|right|thumb|250px|Debian with illume, and Zhone running]]<br />
[[Image:Debian_illume_zhone_kb.png|right|thumb|250px|Debian with illume, and Zhone running, with the on-screen keyboard visible]]<br />
[[Illume]], the desktop environment used in recent openmoko distribution releases, is also available under Debian. It's part of the Enlightenment window manager version 17 (which is currently in the alpha stage of development), which the Debian FSO package maintainers have placed in their repository. If you have a Debian FSO system running, you can use the following commands to install illume.<br />
<br />
apt-get install e17<br />
<br />
Then use the following commands to ensure that it starts on boot.<br />
<br />
apt-get remove zhone-session<br />
apt-get install nodm<br />
<br />
mv /root/.xsession /root/.xsession.backup <br />
cat &lt;&lt; END &gt; /root/.xsession<br />
#!/bin/sh<br />
zhone &amp;<br />
enlightenment_start<br />
END<br />
<br />
&lt;br style=&quot;clear:both&quot; /&gt;<br />
<br />
=== OpenOffice.org ===<br />
[[Image:Freerunner_Debian_runs_openoffice3.jpg|right|thumb|300px|Debian running OpenOffice.org 3]]<br />
<br />
Did we already mention you can install ''anything'' in Debian?<br />
<br />
&lt;br style=&quot;clear:both&quot; /&gt;<br />
<br />
=== Matchbox With fbpanel ===<br />
It is not really a Desktop environment, but using fbpanel with Matchbox you can have a fast, lightweight, gtk2 desktop panel.<br />
[[Image:Debian_fbpanel_zhone.png|right|thumb|300px|Debian with fbpanel, matchbox-window-manager and Zhone running]]<br />
&lt;ol&gt;&lt;li&gt;Install fbpanel:<br />
&lt;pre&gt;sudo apt-get install fbpanel&lt;/pre&gt;&lt;/li&gt;<br />
&lt;li&gt;Customize the X startup process:<br />
&lt;pre&gt;~/.xsession&lt;/pre&gt;<br />
&lt;pre&gt;<br />
#!/bin/sh<br />
export GTK_MODULES=libgtkstylus.so<br />
zhone &amp;<br />
xsetroot -solid black<br />
matchbox-keyboard-toggle &amp;<br />
matchbox-window-manager -use_titlebar yes &amp;<br />
# -use_titlebar yes to minimize &amp; toggle between apps<br />
# fbpanel's taskbar does not work with matchbox-window-manager<br />
#~/bin/auxlaunch &amp;<br />
while true;<br />
do<br />
fbpanel;<br />
sleep 1;<br />
done;<br />
&lt;/pre&gt;&lt;/li&gt;<br />
<br />
&lt;li&gt;Read http://fbpanel.sourceforge.net/docs.html#config<br />
&lt;pre&gt;~/.fbpanel/default&lt;/pre&gt;<br />
&lt;pre&gt;<br />
mkdir ~/.fbpanel<br />
cp /etc/fbpanel/default ~/.fbpanel/default<br />
nano ~/.fbpanel/default<br />
&lt;/pre&gt;<br />
Remove section with 'taskbar' plugin - it's useless with matchbox-window-manager. You may add plugin 'cpu'<br />
&lt;pre&gt;Plugin {<br />
type = cpu<br />
}&lt;/pre&gt;<br />
Also, plugin 'genmon' is useful:<br />
&lt;pre&gt;Plugin {<br />
type = genmon<br />
config {<br />
Command = echo -e $(grep &quot;MemFree&quot; /proc/meminfo | awk '{printf &quot;%0.2f&quot;, $2 / 1024}') &quot;|&quot;\<br />
$(cat /proc/loadavg | awk '{print $3}') &quot;|&quot; $(apm | awk '{print $5}')<br />
PollingTime = 60<br />
TextSize = small<br />
TextColor = darkblue<br />
}<br />
}&lt;/pre&gt;<br />
After 'killall fbpanel' it will show: free mem in megabytes | loadavg | battery % left.&lt;/li&gt;<br />
&lt;li&gt;Default theme is ugly. You can change it and / or make fonts bigger:<br />
&lt;pre&gt;~/.gtkrc-2.0&lt;/pre&gt;<br />
&lt;pre&gt;sudo apt-cache search gtk2-engines<br />
sudo apt-get install gtk2-engines gtk-theme-switch<br />
DISPLAY=:0 gtk-theme-switch2&lt;/pre&gt;<br />
Now choose your theme, font and save it. To see changes do 'killall fbpanel'.&lt;/li&gt;&lt;/ol&gt;<br />
<br />
In order to use killall, install the psmisc package:<br />
apt-get install psmisc<br />
<br />
Some of the icons rely on the hicolor-icon-theme:<br />
apt-get install hicolor-icon-theme<br />
<br />
=== LXDE ===<br />
<br />
I you want a really nice desktop enviroment but you think XFCE is too fat, you can try to install [http://en.wikipedia.org/wiki/LXDE LXDE]. It give to you the GTK comfort, but use only a fraction of the ram needed by XFCE.<br />
[[Image:Debian_lxde_zhone.png|right|thumb|300px|Debian with lxde and Zhone running]]<br />
To install it:<br />
&lt;pre&gt;apt-get install lxde&lt;/pre&gt;<br />
<br />
to launch it create a &lt;code&gt;/etc/init.d/lxde&lt;/code&gt; script in the same way descripted for xfce4, replacing &lt;code&gt;startxfce4&lt;/code&gt; occurrences with &lt;code&gt;startlxde&lt;/code&gt;.<br />
&lt;div style=&quot;clear:right;&quot;&gt;&amp;nbsp;&lt;/div&gt;<br />
<br />
=== XFCE ===<br />
The debian installation script installs by default the matchbox window manager. It doesn't feature a desktop environment. '''xfce''' is a small and lightweight desktop environment and so is quite fast for the FreeRunner.<br />
<br />
&lt;pre&gt;apt-get install xfce4&lt;/pre&gt;<br />
<br />
Edit your .xsession to launch xfce4 at X startup :<br />
<br />
&lt;pre&gt;#!/bin/sh<br />
xfce4-session&lt;/pre&gt;<br />
<br />
Edit section [Failsafe Session] of /etc/xdg/xfce4-session/xfce4-session.rc (or ~/.config/xfce4-session/xfce4-session.rc) to handle the auto-started apps. For example:<br />
&lt;pre&gt;[Failsafe Session]<br />
Count=3<br />
Client0_Command=xfce4-panel<br />
Client0_PerScreen=False<br />
Client1_Command=xfdesktop<br />
Client1_PerScreen=False<br />
Client2_Command=zhone<br />
Client2_PerScreen=True&lt;/pre&gt;<br />
Start XFCE !<br />
<br />
&lt;pre&gt;/etc/init.d/nodm restart&lt;/pre&gt;<br />
<br />
The desktop takes a while to start but once up was snappy as can be expected.<br />
I've not yet looked at the reason for the seemingly too slow start for the desktop.<br />
<br />
zhone is available from the &quot;Office&quot; menu in xfce.<br />
The matchbox keyboard is available in &quot;Accessories&quot;.<br />
<br />
If you want to display the screen on the long side (ie rotated, 4:3 aspect), add the following to the /etc/X11/xorg.conf in both the Device and InputDevice sections :<br />
<br />
&lt;pre&gt;Option &quot;Rotate&quot; &quot;CCW&quot;&lt;/pre&gt;<br />
<br />
and then (re)start xfce.<br />
<br />
If you want to be able to shutdown/restart the device, add the following line to ''/etc/sudoers'' (don't forget to replace ''username'' with your actual username):<br />
&lt;pre&gt;username localhost = NOPASSWD: /usr/sbin/xfsm-shutdown-helper&lt;/pre&gt;<br />
<br />
==== Using matchbox-window-manager with XFCE ====<br />
<br />
XFCE's window manager is poorly configured for use with the FreeRunner. Fortunately, matchbox's window manager is compatible with xfce. To use the matchbox window manager, modify ~/.xsession as follows:<br />
<br />
&lt;pre&gt;#!/bin/sh<br />
exec matchbox-window-manager -use_titlebar no -use_cursor no &amp;<br />
xfce4-session&lt;/pre&gt;<br />
<br />
== Derivative Distributions of Debian ==<br />
<br />
Several distributions are sharing Debian's infrastructure - this is long known. For the Openmoko, <br />
* [[Fyp]] extends the basic Debian installation while avoiding the need of an SD<br />
* [[Hackable1]] focuses on GNOME Mobile integration<br />
* [[Mer]] : based on [[Maemo]] ; see demo and download image at http://digg.com/linux_unix/mer_merge_of_maemo_debian_ubuntu_on_freerunner_mobile_ddl<br />
<br />
[[Category:Debian| ]]</div>Myfanwyhttp://wiki.openmoko.org/wiki/OpkgOpkg2009-07-25T14:33:48Z<p>Myfanwy: /* FAQ */</p>
<hr />
<div>{{Languages|Opkg}}<br />
<br />
== About Opkg ==<br />
<br />
Opkg is a lightweight [[package management]] system based on [[Ipkg]].<br />
<br />
<br />
Mid December, 2008, the project moved to Google code: http://code.google.com/p/opkg/<br />
* Group: http://groups.google.com/group/opkg-devel<br />
* mailto: opkg-devel at googlegroups.com &lt;opkg-devel at googlegroups.com&gt;<br />
* Checkout Code: http://code.google.com/p/opkg/source/checkout<br />
<br />
Prior to that date, a mailing list for discussion was available here: http://lists.openmoko.org/mailman/listinfo/opkg-devel<br />
Source code was available in the subversion repository: http://svn.openmoko.org/trunk/src/target/opkg/. The repository could also be [http://svnweb.openmoko.org/trunk/src/target/opkg/ viewed online].<br />
<br />
You can learn how to create own [http://handhelds.org/moin/moin.cgi/BuildingIpkgs Opkg packages] on the Ipkg site.<br />
<br />
Packages should install .desktops at the very end of the installation process. This ensures that the icons referenced in the .desktop file are available. [https://docs.openmoko.org/trac/ticket/1524 Reference]<br />
<br />
== New Features ==<br />
<br />
This is a list of features that have been completed. Mostly this is a list of changes from Ipkg.<br />
<br />
* Use libcurl to download files<br />
* Send download progress updates to libopkg clients<br />
* Re-organize and clean up source code into sub directories<br />
* Verify package lists with gpg detached signature<br />
* Mark packages that were installed to satisfy dependencies (auto installed)<br />
* Additional command line option to remove &quot;auto installed&quot; packages<br />
* Support for faceted classification (similar to debtags). ''A &quot;Tags&quot; line has been added to the package information and opkg makes this available to clients, but does not process it in anyway. The command line client also does not use this features yet.''<br />
<br />
<br />
=== Ipkg Patches ===<br />
<br />
The following ipkg patches have been applied:<br />
<br />
* &quot;2-pkg-vec--Optimize-gross-inefficiency.patch&quot; from OpenEmbedded <br />
* &quot;1-pkg-parse--Optimize-inefficient-parsing.patch&quot; from OpenEmbedded<br />
<br />
* [http://svn.o-hand.com/view/poky/trunk/meta/packages/ipkg/files/update_version_comparision.patch?rev=3827&amp;view=auto update_version_comparision.patch] from Richard Purdie<br />
* [http://svn.o-hand.com/view/poky/trunk/meta/packages/ipkg/files/enable_debversion.patch?rev=3827&amp;view=auto enable_debversion.patch] from Richard Purdie<br />
<br />
== Planned features ==<br />
<br />
These are features either under development or planned for inclusion before the next release.<br />
<br />
* improve/cleanup [[libopkg]] api<br />
* locking system to prevent two simultaneous operations on the file system<br />
<br />
=== Bug fixes ===<br />
<br />
* Ipkg bug - Overflowing / crashes machine - [http://bugs.openembedded.net/show_bug.cgi?id=1028]<br />
* ipkg tries to access ro SD card - [http://bugs.openembedded.net/show_bug.cgi?id=1029]<br />
<br />
=== Lower priority features ===<br />
<br />
* Simple user interactions during postinstall<br />
* Improve command line options<br />
* Restructure source code and make it more robust<br />
* Store packages in database<br />
* Check available space in /tmp prior to downloading<br />
* Check available space in dest prior to unpacking<br />
<br />
== Possible Issues ==<br />
<br />
This is a list of possible issues or known bugs.<br />
<br />
* http proxy works but authentication not tested yet (--[[User:cberger|cberger]] tested version 0.1.4, does not recognize proxy_username and proxy_password for authentication)<br />
* autoremove feature only inspects &quot;depends&quot; and not &quot;pre-depends&quot;<br />
* if you encounter fork failures, and/or segmentation fault, you probably need more memory. To do so, add temporarily swap by:<br />
** Creating a file which will be used for swap:<br />
***If you are using dd from coreutils:<br />
dd if=/dev/zero of=/media/card/file.swap bs=1M count=512<br />
***If you are using dd from busybox (Interrupt the process (ctrl+c) once the file is big enough. 128 MB should be enough):<br />
dd if=/dev/zero of=/media/card/file.swap<br />
**Turn the file into a swap<br />
mkswap /media/card/file.swap<br />
**Activate the swap through the file (until swapoff command is used, or reboot)<br />
swapon /media/card/file.swap<br />
**Upgrade<br />
opkg upgrade<br />
**Deactivate swap<br />
swapoff or reboot<br />
<br />
Next time you will simply need to reactivate the swap before upgrading.<br />
<br />
== Error Codes ==<br />
<br />
It looks like, in some cases, Opkg will return an error code if something goes wrong. Here's a list that I pulled from the error.h file:<br />
<br />
* -1: Unknown Error<br />
* 0: No Error (Success)<br />
<br />
Configuration Errors:<br />
* 1: Could not set default destination<br />
* 2: Error parsing config file<br />
* 3: Could not create temporary directory<br />
* 4: Could not obtain administrative lock<br />
** This could be cause by assassin not releasing the lock on the package management. It can be released by killing its manager:<br />
killall packagekitd<br />
<br />
Package Errors<br />
* 5: Unsatisfied Dependencies<br />
* 6: Is Essential<br />
* 7: Has Dependents<br />
* 8: Has No Candidate<br />
* 9: PackageHas No Available Architecture<br />
<br />
Install Errors<br />
* 10: Not Trusted<br />
* 11: Download Error<br />
* 12: Conflicts<br />
* 13: Already Installed<br />
* 14: Dependencies<br />
* 15: No Downgrade<br />
* 16: Out Of Space<br />
* 17: Bad Signature<br />
* 18: MD5 Error<br />
* 19: Internal Error<br />
<br />
{{note|I had a problem where I was trying to manually install a package that had dependencies. The dependencies had a bad signature (actually, my signature files were bad). Instead of returning 17 because of the bad signature, it returned 14 because of a dependency problem. So if you get a 14, try installing that package by itself and see what you get. --[[User:Jtickle|Jtickle]] 18:16, 23 July 2008 (EST) }}<br />
<br />
== FAQ ==<br />
<br />
Q. What version of Ipkg is Opkg based on?<br />
<br />
A. It is based on the [http://www.handhelds.org/download/packages/ipkg/ipkg-0.99.163.tar.gz ipkg-0.99.163] tarball<br />
<br />
Q. Why &quot;fork&quot; and rename Ipkg?<br />
<br />
A. Ipkg is no longer actively maintained upstream and there are potential trademark issues with using the Ipkg name<br />
<br />
Q. Does opkg have a feature similar to APT pinning?<br />
<br />
A. Yes you can define priorities on the architecture field (the second field in a feed definition) in /etc/opkg/arch.conf<br />
<br />
Q. Does opkg have an auto completion system ?<br />
<br />
A. Yes, it's a contribution script available at the [http://blog.upme.fr/?/Linux/28-Openmoko-Opkg-Autocompletion-With-Packages-Names upme blog]<br />
<br />
Q. How similar is the ipk format, to the deb format? They look very similar; the data and control tar balls are identical as far as i can tell.<br />
<br />
A. Very similar. ipk files are basically deb files with documentation removed, and ipkg is even supposedly able to handle deb files. Opkg can install .deb packages directly, with no change. There may be issues with some packages, concerning preinst and postinst scripts<br />
<br />
{{Languages|Opkg}}<br />
<br />
[[Category:Package management]]</div>Myfanwyhttp://wiki.openmoko.org/wiki/DistributionsDistributions2009-07-09T08:35:13Z<p>Myfanwy: /* Applications */</p>
<hr />
<div>{{Languages|Distributions}}<br />
<br />
{|align=left<br />
|__TOC__<br />
|}<br />
<br />
== About distributions ==<br />
Openmoko distributions are designed to run on various mobile devices, with the primary aim of supporting Openmoko Inc.'s [[GTA01:Neo 1973|Neo 1973]] and [[Neo FreeRunner]] phones. They are GNU/Linux distributions -- complete operating systems including user applications. You can install any of them on your phone or even have a dualboot system with two distributions installed. For downloads see [[Download]], for installation instructions see [[Flashing the Neo FreeRunner]].<br />
<br />
Besides, Openmoko distributions also run on [[Supported devices|other]] mobile devices and some other software distributions also run on the phones of Openmoko Inc.<br />
<br />
=== Choosing a distribution ===<br />
Currently the most used distributions are [[Om 2008]], which comes preinstalled on the Neo FreeRunner, and [[Stable Hybrid Release|SHR]].[http://spreadsheets.google.com/pub?key=p2ZQdcRSVg9XfYLwBVsZicg]<br />
<br />
In the future [[Om 2009]] will be the default distribution. It is currently under development and should be released in june 2009. Like SHR it will be based on the [[freesmartphone.org]] framework.<br />
<br />
Furthermore, there are many other distributions, like [[Qt Extended]] (for stable basic functions), Google's [[Android]], and some [[Debian]]-based distros.<br />
<br />
{| class=&quot;wikitable&quot; style=&quot;float:right;width:200px;background-color:#FF6600;text-align:center;border-collapse:collapse;font-weight:bold&quot;<br />
|&lt;font color=white&gt;Distributions&lt;/font&gt;<br />
|-<br />
! style='background-color:#333333;color:#FFFFFF'|<br />
&lt;div align=left&gt;<br />
* &lt;font color='#BBBBBB'&gt;Openmoko (official)&lt;/font&gt;<br />
** [[Om 2009]]<br />
** [[Om 2008]]<br />
** [[Om 2007.2]]<br />
* &lt;font color='#BBBBBB'&gt;Om Community&lt;/font&gt;<br />
** [[SHR]]<br />
** [[FDOM]]<br />
* &lt;font color='#BBBBBB'&gt;Other&lt;/font&gt;<br />
** [[Qt Extended Improved]]<br />
** [[Debian]]<br />
** [[Gentoo]]<br />
** [[Android]]<br />
** [[Hackable:1]]<br />
** [[neovento]]<br />
** [[Mer]]<br />
&lt;/div&gt;<br />
|-<br />
|}<br />
<br />
=== Please note ===<br />
<br />
* Stable in the FreeRunner world does not mean the same thing as stable in the Debian world.<br />
* Most distributions use the same bootloader, kernel, drivers and hardware. Therefore, the same low level bugs are commonly found in all distributions. The latest and greatest software usually has most bug fixes, plus a whole set of new fresh bugs.<br />
* Most of these distributions also have package repositories. It is a BAD idea to feed from another distribution's repository.<br />
* Upgrade path between these distributions are mostly not tested, thus updating by changing the feeds will most likely end in broken packages or even an unbootable system. It is advisable to reflash the whole filesystem with [[dfu-util]] to switch between the different distributions, with the reminder that a dual-boot setup (e.g. via sdcard or NFS) can be used.<br />
<br />
== Official Openmoko releases ==<br />
<br />
'Release targets' offered by Openmoko Inc. are built out of different branches of the [[OpenEmbedded]] metadistribution source tree.<br />
<br />
=== Om series ===<br />
<br />
* '''[[Om 2009]]''' is intended to be the new distro; it is not a simple follow-on from [[Om 2008]]. It is based on the [http://freesmartphone.org freesmartphone.org] milestone 5.5 framework.<br />
<br />
{{Main|Om2009}}<br />
<br />
* '''[[Om 2008]]''' was released on August 8, 2008, to replace 2007.2. Prior to that, its codename was ASU (April/August Software Update). This is still the name of the branch in the version control system. This distribution integrates the [http://trolltech.com/products/qtopia Qtopia] phone stack with a set of new Openmoko applications based on the Enlightenment Foundation Libraries ([[EFL_Documentation|EFL]]). Qtopia being a more mature product than the GNOME Mobile stack, the standard phone applications (dialer, contacts, calculator, calendar) work better than in 2007.2. The Qtopia used in 2008.8 was ported to run on X11, contrary to standard Qtopia which uses the framebuffer. This allows non-Qt applications to safely share the screen with Qt applications. <br />
<br />
{{Main|Om 2008}}<br />
<br />
* '''[[Om 2007.2]]''' was the first distribution created by Openmoko. The interface was totally finger-oriented, optimized for 285ppi, and very orange. It used the GTK+ stack, which is part of the [http://www.gnome.org/mobile/ GNOME Mobile] platform. This distribution is now considered obsolete and not being worked on by Openmoko Inc or by OpenedHand. <br />
<br />
{{Main|Om 2007.2}}<br />
<br />
== Openmoko community releases ==<br />
<br />
=== SHR ===<br />
<br />
SHR is a community driven distribution. It contains some basic EFL based applications which make use of the FSO. There currently is an [[EFL_Documentation|EFL]] (with elementary) dialer, messages and contacts application programmed in C, as well as a nice Settings-GUI in Python. As of April 12th, 2009, there is no stable release of this distribution yet, as the SHR team doesn't feel it to be good enough. You can find images though on the [http://shr.bearstech.com/shr-testing SHR buildhost].<br />
<br />
{{Main|SHR}}<br />
<br />
=== FDOM (FAT and Dirty Openmoko) ===<br />
<br />
[[FDOM]] is a distribution based on Openmoko's currently supported image, updated with many ready-to-use applications and with fixes posted in the mailing lists. A combination of applications (everything goes) and fixes to demonstrate the capabilities of the Freerunner and to have a functional phone (sort of). This all while retaining the ability to update through the official feeds.<br />
<br />
{{Main|FDOM}}<br />
<br />
=== Non-Openmoko distributions ===<br />
<br />
These are not Openmoko (and OE) based distributions. These are alternatives you can run on your Openmoko phones.<br />
<br />
==== Qt Extended Improved ====<br />
Qt Extended has had several names. The current name is &lt;b&gt;Qt Extended Improved&lt;/b&gt;. An Openmoko-based community develops Qt Extended Improved as a Free Software project. Qt Extended Improved builds on the foundation of Qt Extended/Qtopia/Qt by Qt Software/Trolltech. Qt Extended Improved provides a robust telephony stack, a webkit based browser and other smartphone features.<br />
<br />
On 5th March 2009 Qt Software released Qt Extended 4.4.3. On 3rd March 2009 Qt Software announced that Qt Extended 4.4.3 would be the last release of the Qt Extended product. Prior to version 4.3, Qt Extended was known as Qtopia.<br />
<br />
{{Main|Qt Extended Improved}}<br />
<br />
==== Debian ====<br />
Debian is &quot;the universal operating system&quot;. It comes with thousands and thousands of packages (most of them designed for desktops or servers so far). So in the words of Joachim &quot;nomeata&quot; Breitner from the [http://wiki.debian.org/Teams/DebianFSO pkg-fso] team, this is not really a distribution in the Openmoko sense of the word, but rather a different underlying system for Openmoko distributions. At the moment, we ship the software from the FSO stack, but hopefully we’ll also have, for example, the SHR software in our archive. So for now, Debian is a different way of installing FSO, which takes more space and provides more programs :-)<br />
<br />
{{Main|Debian}}<br />
<br />
==== [[Gentoo ]]====<br />
Gentoo is all about choices. When installing Gentoo, this is made clear to you several times -- you can choose how much you want to compile yourself, how to install Gentoo, what system logger you want, etc. Gentoo is a fast, modern metadistribution with a clean and flexible design. Gentoo is built around free software and doesn't hide from its users what is beneath the hood. Portage, the package maintenance system which Gentoo uses, is written in Python, meaning you can easily view and modify the source code. Gentoo's packaging system uses source code (although support for precompiled packages is included too) and configuring Gentoo happens through regular textfiles. In other words, openness everywhere.<br />
<br />
{{Main|Gentoo}}<br />
<br />
==== Android ====<br />
[http://code.google.com/android/ Android] is a software stack for mobile devices developed by the [http://www.openhandsetalliance.com/ The Open Handset Alliance.] Openmoko is fully supporting Android running on the Freerunner.<br />
<br />
Android has now reached a point where it is usable on the FreeRunner as an everyday phone, there are, however, still some caveats. Check out the main Android section of the wiki for more info.<br />
<br />
{{Main|Android}}You can also visit the user web page for [http://wiki.openmoko.org/wiki/User:Seanmcneil3 Sean McNeil] for some more info.<br />
<br />
====Slackware====<br />
As of release 12.2, Slackware is now officially supported on the Neo Freerunner<br />
[http://armedslack.org/]<br />
--[[User:Djdas|djdas]] 15:54, 13 June 2009 (UTC)There aren't any confirmations of ArmedSlack running on Freerunner either on the website or the official ML, do you have any link pointing on that?<br />
<br />
==== Hackable:1====<br />
Hackable1 is a community distribution for hackable devices like the Neo Freerunner. It is based on Debian and 2007.2 userland which has been abandoned by Openmoko. It follows the GNOME mobile platform. <br />
{{Main|Hackable:1}}<br />
<br />
====[[neovento]]====<br />
neovento (ex FYP) is a [[Debian|Debian on Freerunner]] based [[Distributions|distribution]] which uses [http://lxde.org/ LXDE] and [[Zhone]] on top. It is a [http://freeyourphone.de FreeYourPhone.de] community project. <br />
<br />
{{Main|neovento}}<br />
<br />
====OpenWrt====<br />
[[OpenWrt]] is described as a Linux distribution for embedded devices.<br />
<br />
Instead of trying to create a single, static firmware, [[OpenWrt]] provides a fully writable filesystem with package management. This frees you from the application selection and configuration provided by the vendor and allows you to customize the device through the use of packages to suit any application. For developer, [[OpenWrt]] is the framework to build an application without having to build a complete firmware around it; for users this means the ability for full customization, to use the device in ways never envisioned.<br />
<br />
[[OpenWrt]] development trunk now supports s3c24xx, CPU used in [[Freerunner]].<br />
<br />
Mainly due to the usage of uClibc instead of glibc as libc implementation, OpenWrt can boot from NAND with enlightenment window manager within 1 minute 7 seconds using u-boot (NOR) bootloader.<br />
<br />
* [http://www.openwrt.org OpenWrt website]<br />
* [http://dev.openwrt.org OpenWrt development site]<br />
<br />
{{Main|OpenWrt}}<br />
<br />
====Mer====<br />
[[Mer]] is a distribution based on [[Maemo]].<br />
<br />
==== Others / unreleased ====<br />
* The [http://www.neopwn.com/software.php NeoPwn] network auditng system's core is a modified Linux 2.6.24 kernel, with cross-compiled module driver support for the numerous compatible addon devices running on a FULL Debian (ARMEL) operating system. The filesystem has been optimized for performance and size and includes the NeoPwn menu system and several GUI dialogs for hardware control and attack automation. ''Status: Unknown, the GPL requires source code to be distributed only to customers''.<br />
* [http://runningbear.org/trac RunningBear] is an innovative, yet free and open-source Operating System for hackable devices driven by Bearstech. Lightweight, Portable, Secure, Friendly and Useful. ''Status: In development''.<br />
* [http://pokylinux.org/ Poky] and Sato, by OpenedHand/Intel. An open source platform build tool derived from OE. It is a complete software development environment for the creation of Linux devices. It enables you to design, develop, build, debug, and test a complete, modern, software stack using Linux, the X Window System and GNOME Mobile based application frameworks for both ARM and x86 based platforms. ''Status: The &quot;Nightly Build&quot; Image works fine on Neo Freerunner, but phone functionality doesn't.''<br />
* [http://pyneo.org/ PyNeo] pyneo is a stack for mobile devices excessivly using dbus, glib and evas. Pyneo is NO distribution but a middleware or framework like FSO which itself developed from a very early version of pyneo. Current pyneo images are entirely based on debian instead of oe. ''Status: still active and in development! ask around on #pyneo.org ''<br />
* [http://www.quantum-step.com/ mySTEP] by Openmoko distributor Golden Delicious Computers is based on GNUstep and brings a Objective-C API to the Neo. Core GUI frameworks are &quot;Foundation&quot; &amp; &quot;AppKit&quot;. It has been shown on FOSDEM 2008, LinuxTag 2008 and SYSTEMS 2008 to run on the Neo 1973. If someone reengineers UIKit, (open) source code compatibility to iPhone apps appears achievable. ''Status: slow progress behind the scenes''<br />
* [http://www.archmobile.org/ Archlinux] is a distribution that follows the KISS principle.<br />
<br />
== Features by distribution/release target ==<br />
<br />
Generally, distributions can differ on one or more of the following components:<br />
* The bootsplash screen image. This is purely decorative.<br />
* The bootloader. Theoretically, any version of ''uboot'' could be used with any distribution. In the future ''Qi'' will replace ''uboot''.<br />
* The kernel. GNU/Linux kernels versions 2.6.24, 2.6.26 or 2.6.28 can be found. Some have modules compiled in, others have modules compiled separately. If compiled separately, modules can be distributed in the same package file as the kernel or separately.<br />
* Middleware: daemons to handle GSM calls or GPS, sound system, personal information storage and so on. Qt and Android have their own subsystems, FreeSmartphone.Org (FSO) is working towards a standard-based Free Software one.<br />
* Display driver. The original ''Qt Extended'' uses the framebuffer, most other distributions today use ''X11''.<br />
* Libraries and application framework (widget toolkit and and graphical environment) : EFL, Qt, Gtk+ or Java ?<br />
* Basic telephony applications: voice calls, SMS, alarm clock...<br />
* Smartphone applications: GPS, media player, simple games, web browser...<br />
* Open source applications: more games, scientific, you name it...<br />
<br />
=== Hardware Support ===<br />
{|class=&quot;wikitable&quot; border=&quot;1&quot; cellpadding=&quot;5&quot; cellspacing=&quot;0&quot; width=100%<br />
! width=10%| !! width=8%|[[Om 2008]] !! width=8%|Om 2007.2 !! width=8%|FSO !! width=8%|SHR !! width=8%|FDOM !! width=8%|Qt Extended !! width=8%|Debian !! width=8%|Gentoo !! width=8%|Android<br />
|-<br />
| GTA01 || ?? || ?? || ?? || {{Yes}} || ?? || {{Yes}} || {{Yes}} || ?? || ??<br />
|-<br />
| GTA02 || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}}<br />
|-<br />
|}<br />
<br />
=== Connectivity ===<br />
{|class=&quot;wikitable&quot; border=&quot;1&quot; cellpadding=&quot;5&quot; cellspacing=&quot;0&quot; width=100%<br />
! width=10%| !! width=8%|[[Om 2008]] !! width=8%|Om 2007.2 !! width=8%|FSO !! width=8%|SHR !! width=8%|FDOM !! width=8%|Qt Extended !! width=8%|Debian !! width=8%|Gentoo !! width=8%|Android<br />
|-<br />
| Telephony || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} (1) || ?? || {{Yes}}<br />
|-<br />
| SMS || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} (1) || ?? || {{Yes}}<br />
|-<br />
| [[GPRS]] || Not through UI || Not through UI|| Not through UI || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} (1) || Not through UI || {{Yes}}<br />
|-<br />
| [[WiFi]] || {{Yes}} (*) || {{Yes}} || Not through UI || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || Not through UI || {{Yes}}<br />
|-<br />
| VoIP || ?? || ?? || ?? || ?? || {{Yes}} || {{Yes}} (1) || {{Yes}} || ?? || {{no}}<br />
|-<br />
| Bluetooth || {{Yes}} || {{Yes}} || {{No}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || ?? || {{Yes}}<br />
|-<br />
| GPS (1) || {{Yes}} (1) || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} (1) || {{Yes}} (1) || {{Yes}}<br />
|-<br />
|}<br />
<br />
=== Power ===<br />
{|class=&quot;wikitable&quot; border=&quot;1&quot; cellpadding=&quot;5&quot; cellspacing=&quot;0&quot; width=100%<br />
! width=10%| !! width=8%|[[Om 2008]] !! width=8%|Om 2007.2 !! width=8%|FSO !! width=8%|SHR !! width=8%|FDOM !! width=8%|Qt Extended !! width=8%|Debian !! width=8%|Gentoo !! width=8%|Android<br />
|-<br />
| Suspend || {{Yes}} || ?? || ?? || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}}<br />
|-<br />
| Resumes on Event || ?? || ?? || ?? || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || ??<br />
|-<br />
| Functions after Resume || {{Yes}} || ?? || ?? || {{Yes}} || {{No}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}}<br />
|-<br />
|}<br />
<br />
=== User Interaction ===<br />
{|class=&quot;wikitable&quot; border=&quot;1&quot; cellpadding=&quot;5&quot; cellspacing=&quot;0&quot; width=100%<br />
! width=10%| !! width=8%|Om2008 !! width=8%|2007.2 !! width=8%|FSO !! width=8%|SHR !! width=8%|FDOM !! width=8%|Qt Extended !! width=8%|Debian !! width=8%|Gentoo !! width=8%|Android<br />
|-<br />
| Stylus friendly || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}}<br />
|-<br />
| Finger friendly || Partially || Partially || Partially || {{Yes}} || {{Yes}} || {{Yes}} || {{No}} || {{Yes}} || {{Yes}}<br />
|-<br />
| Accelerometer || {{Yes}} [[Rotate|(1)]][[Gestures|(1)]] || {{No}} || {{No}} || {{yes}} (1) || {{Yes}} || {{No}} || {{Yes}} || ?? || {{Yes}}<br />
|-<br />
|}<br />
<br />
=== Applications ===<br />
{|class=&quot;wikitable&quot; border=&quot;1&quot; cellpadding=&quot;5&quot; cellspacing=&quot;0&quot; width=100%<br />
! width=10%| !! width=8%|[[Om 2008]] !! width=8%|2007.2 !! width=8%|FSO !! width=8%|SHR !! width=8%|FDOM !! width=8%|Qt Extended !! width=8%|Debian !! width=8%|Gentoo !! width=8%|Android<br />
|-<br />
| Terminal || {{Yes}} (1) || Basic (2) || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} (1) || {{Yes}}<br />
|-<br />
| PIM || {{Yes}} || {{Yes}} || {{No}} || N/A || {{Yes}} || {{Yes}} || {{Yes}} (1) || ?? || ??<br />
|-<br />
| Phonebook || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} (1) || ?? || {{Yes}}<br />
|-<br />
| Dialer || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} (1) || ?? || {{Yes}}<br />
|-<br />
| Web Browser || {{Yes}} (1) || {{Yes}} (1) || ? || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} (1) || ?? || {{Yes}}<br />
|-<br />
| Mail Client || {{Yes}} || ? || ? || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} (1) || ?? || {{Yes}}<br />
|-<br />
| XMPP Client || {{Yes}} [[Instant Messaging|(1)]] || {{Yes}} (1) || ? || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} (1) || || ??<br />
|-<br />
| Media Player || {{Yes}} (1) || {{Yes}} || ? || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} (1) || ?? || {{Yes}}<br />
|-<br />
|}<br />
<br />
=== Toolkits / Runtimes ===<br />
{|class=&quot;wikitable&quot; border=&quot;1&quot; cellpadding=&quot;5&quot; cellspacing=&quot;0&quot;<br />
! width=10%| !! width=8%|[[Om 2008]] !! width=8%|2007.2 !! width=8%|FSO !! width=8%|SHR !! width=8%|FDOM !! width=8%|Qt Extended !! width=8%|Debian !! width=8%|Gentoo !! width=8%|Android<br />
|-<br />
| GTK+ || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{No}} || {{Yes}} || {{Yes}} || ??<br />
|-<br />
| Qt/Qt Extended || {{Yes}} || {{No}} || {{Yes}} ? || {{Yes}}? || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || ??<br />
|-<br />
| Middleware || qtopia-x11 || gsmd/neod || FSO || FSO || qtopia-x11 || Qt Extended || FSO || FSO || ??<br />
|-<br />
| [[Java]] || {{Yes|Jalimo}} || {{Yes|Jalimo}} || {{Yes|Jalimo}} || {{Yes|Jalimo}} || {{Yes}} || ?? || {{Yes|CacaoVM, JamVM}} || ?? || ??<br />
|-<br />
| [[Python]] || {{Yes}} || {{Yes}} || {{Yes}} || {{yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || ??<br />
|-<br />
| [[Mono]] || {{Yes}} (1) || {{Yes}} (1) || ?? || {{no}} || ?? || ?? || {{Yes}} (1) || ?? || ??<br />
|-<br />
| [[Ruby]] || {{Yes}} || ?? || ?? || ?? || ?? || ?? || {{Yes}} (1) || {{Yes}} (1) || ??<br />
|}<br />
<br />
=== Images ===<br />
Latest and stable combinations for Neo FreeRunner gta02<br />
{|class=&quot;wikitable&quot; border=&quot;1&quot; cellpadding=&quot;5&quot; cellspacing=&quot;0&quot;<br />
| || OM || FDOM || Qt Extended || Android<br />
|-<br />
| current bootloader || [[U-boot|U-Boot]] from [http://downloads.openmoko.org/distro/releases/Om2008.9/ OM daily] version [http://downloads.openmoko.org/] || [[U-boot|U-Boot]] from [http://downloads.openmoko.org/repository/experimental/ OM daily] version [http://downloads.openmoko.org/daily/gta02v5_and_up-u-boot.bin gta02v5_and_up] || [[U-boot|U-Boot]] from [http://downloads.openmoko.org/repository/experimental/ OM daily] version [http://downloads.openmoko.org/daily/gta02v5_and_up-u-boot.bin gta02v5_and_up] ||<br />
|-<br />
| future bootloader || [[Qi]] from [http://people.openmoko.org/andy/ Andy] latest qi-andy.udfu || [[Qi]] from [http://people.openmoko.org/andy/ Andy] latest qi-andy.udfu || [[Qi]] from [http://people.openmoko.org/andy/ Andy] latest qi-andy.udfu ||<br />
|-<br />
| splash || [[Configuring_the_boot_splash_screens|U-Boot]] from [http://downloads.openmoko.org/releases/ OM releases] or [http://downloads.openmoko.org/daily/ OM daily] latest splash.gz || [[Configuring_the_boot_splash_screens|U-Boot]] from [http://downloads.openmoko.org/releases/ OM releases] or [http://downloads.openmoko.org/daily/ OM daily] latest splash.gz || [[Configuring_the_boot_splash_screens|U-Boot]] from [http://downloads.openmoko.org/releases/ OM releases] or [http://downloads.openmoko.org/daily/ OM daily] latest splash.gz ||<br />
|-<br />
| kernel || [[Linux]] from [http://downloads.openmoko.org/releases/ OM releases] or [http://downloads.openmoko.org/daily/ OM daily] latest uImage.bin || [[Linux]] from [http://moko.mwester.net/download/ mwester] latest uImage-gta02-mwester-stable.bin or from [http://downloads.tuxfamily.org/3v1deb/openmoko/ treviño] latest uImage-gta02-stable-3v1n0.bin || [[Linux]] see [[Qt_Extended]] page for latest version || [[Linux]] from [http://koolu.org/releases/ koolu]<br />
|-<br />
| modules || ? || [[Linux]] from [http://moko.mwester.net/download/ mwester] latest modules-min-gta02-mwester-stable.tgz or modules-all-gta02-mwester-stable.tgz || [[Linux]] from [http://moko.mwester.net/download/ mwester] latest modules-min-gta02-mwester-stable.tgz or modules-all-gta02-mwester-stable.tgz ||<br />
|-<br />
| rootfs || [[Main_Page|OM]] from [http://downloads.openmoko.org/releases/ OM releases] or [http://downloads.openmoko.org/daily/ OM daily] latest rootfs.jffs2 || [[FDOM]] from [ftp://ftp.tuxbrain.com/openmoko/fdom/releases/ TuxBrain] version [ftp://ftp.tuxbrain.com/openmoko/fdom/releases/Fat_and_Dirty_OM.200809_20081023.rootfs.jff2 200809_20081023] || See [[Qt_Extended]] for latest rootfs || [[Android]] from [http://koolu.org/releases/ koolu]<br />
|}<br />
<br />
Footnotes:<br />
<br />
(1) works, but need additional software to be installed<br />
<br />
(2) unusable due to lack of certain keyboard characters. [[Switching_Keyboards#Matchbox_keyboard|Various fixes available.]]<br />
<br />
(*) unstable<br />
<br />
==Quick download page==<br />
<br />
[[Download]]<br />
<br />
== See also ==<br />
<br />
* Mickey Lauer's post &quot;[http://www.vanille-media.de/site/index.php/2008/06/28/gtk-asu-fso-tmtla/ GTK, ASU, FSO, TMTLA!]&quot; describes the differences between distributions 2007.2, ASU and FSO.<br />
<br />
* Latest news and tips are in [[Community Updates]]<br />
<br />
* [[Kustomizer]] is a script to change your 2008.12 to a usable phone<br />
<br />
[[Category:Distributions| ]]</div>Myfanwyhttp://wiki.openmoko.org/wiki/NavitNavit2009-07-04T09:14:40Z<p>Myfanwy: added missing space in navit feed command</p>
<hr />
<div>{{Application|Navit}}<br />
<br />
As described on the [http://navit.sourceforge.net/ Navit home page],<br />
<br />
&quot;Navit is a car navigation system with routing engine.<br />
<br />
Its modular design is capable of using vector maps of various formats for routing and rendering of the displayed map. It's even possible to use multiple maps at a time.<br />
<br />
The GTK+ or SDL user interfaces are designed to work well with touch screen displays. Points of Interest of various formats are displayed on the map.<br />
<br />
The current vehicle position is either read from gpsd or directly from NMEA GPS sensors.&quot;<br />
<br />
Some people say Navit is also a good choice for pedestrian and bicycle navigation.<br />
<br />
[[Image:Navit-2241.png|thumb|Navit-r2241]]<br />
<br />
== Acknowledgment ==<br />
<br />
Thanks to [[User:Alessandro | Alessandro]], stefan_schmidt, cp15 and all Navit developers I have done a small (&quot;not really working&quot;) preview of Navit on Neo1973 at [http://www.telemobilityforum.com/eng/ Telemobility Forum 2007]. Thanks to [http://gfoss.it GFoss] guys to invite me.<br />
''[[User:Tyrael | Tyrael]]''<br />
<br />
==Setting up Navit==<br />
<br />
===Install Navit===<br />
====OM2008.x====<br />
You can now simply add a feed from there : http://download.navit-project.org/navit/openmoko/svn/<br />
<br />
Essentially, to enable this directory as [[Om_2008.8_Installer#How to add a Repository ?|feed]] and install or update navit do:<br />
* Only for the first time:<br />
echo src navit http://download.navit-project.org/navit/openmoko/svn &gt; /etc/opkg/navit-feed.conf<br />
opkg update<br />
<br />
* Always:<br />
opkg install navit<br />
<br />
Navit will be auto-updated when you run opkg upgrade later<br />
<br />
====Debian====<br />
Navit is now in [http://packages.debian.org/source/experimental/navit Debian experimental].<br />
<br />
More recent releases of the very same packaging can be found in the Pini's repository:<br />
deb http://pini.free.fr/debian unstable main<br />
deb-src http://pini.free.fr/debian unstable main<br />
<br />
The up-to-date source package is available through git at '''git://git.debian.org/git/collab-maint/navit.git''' ([http://git.debian.org/?p=collab-maint/navit.git;a=summary browse]).<br />
<br />
====FSO====<br />
I found that navit did not start fso-gpsd. I found the solution on the [http://lists.openmoko.org/nabble.html#nabble-td2473189 mailing list]. Starting navit from the command line produced the following output:<br />
<br />
navit:plugin_load:can't load '/usr/lib/navit/vehicle/<br />
libvehicle_gpsd.so', Error 'libgps.so.16: cannot open shared object <br />
file: No such file or directory'<br />
navit:vehicle_new:invalid type 'gpsd'<br />
<br />
So I used the following workaround:<br />
<br />
opkg install libgps17<br />
ln -s /usr/lib/libgps.so.17 /usr/lib/libgps.so.16 <br />
<br />
===Set up the maps you want===<br />
<br />
====The Easy Way====<br />
Use [http://maps.navit-project.org/download/ Navit pre-processed OSM maps]. Navigate to the region you want, and click select to select it, select the region you want, then click download<br />
<br />
If you just want the entire planet (as of this writing, ~1.8 GB), it's [http://maps.navit-project.org/planet.bin here].<br />
<br />
[http://downloads.cloudmade.com/ CloudMade] also has up-to-date maps from OpenStreetMap by country (by state in the US).<br />
<br />
====From the command line====<br />
'''OpenStreetMap''' - follow directions at http://wiki.navit-project.org/index.php/OpenStreetMaps<br />
* There are some pre-processed, up-to-date maps that can be grabbed with wget:<br />
<br />
&lt;pre&gt;wget -O germany.bin http://maps.navit-project.org/api/map/?bbox=5.185546875,46.845703125,15.46875,55.634765625&lt;/pre&gt;<br />
<br />
* Here's an example to get the maps for the area around Seattle, WA:<br />
** Find the map coordinates using http://informationfreeway.org/?lat=47.520270037501454&amp;lon=-122.20130713167327&amp;zoom=9&amp;layers=B000F000<br />
** Download 4 regions from OpenStreetMaps ([[Navit#Script_to_download_OSM_maps|see below]] for a script to do this for you automatically for largish areas):<br />
<br />
&lt;pre&gt;wget -O map1.osm http://www.openstreetmap.org/api/0.5/map?bbox=-122.2,47.5,-122,47.7<br />
wget -O map2.osm http://www.openstreetmap.org/api/0.5/map?bbox=-122.4,47.5,-122.2,47.7<br />
wget -O map3.osm http://www.openstreetmap.org/api/0.5/map?bbox=-122.4,47.3,-122.2,47.5<br />
wget -O map4.osm http://www.openstreetmap.org/api/0.5/map?bbox=-122.2,47.3,-122,47.5&lt;/pre&gt;<br />
<br />
* A binary Navit map file needs to be created. The following uses osm2navit, and it's recommended that this command be used on something more powerful than the Neo:<br />
<br />
&lt;pre&gt;cat *.osm | osm2navit --dedupe-ways mymap.bin&lt;/pre&gt;<br />
<br />
===Copy the map to the NEO===<br />
To copy the map using scp (replace ''/directory'' as is appropriate in the following):<br />
&lt;pre&gt;scp mymap.bin root@neo:/directory&lt;/pre&gt;<br />
Once it's somewhere on the NEO, Navit needs to know that it's there.<br />
&lt;pre&gt;mkdir ~/.navit<br />
cp /usr/share/navit/navit.xml ~/.navit/navit.xml<br />
vi ~/.navit/navit.xml&lt;/pre&gt;<br />
In the navit.xml file, put the following into a new &lt;mapset&gt; section:<br />
&lt;pre&gt;&lt;map type=&quot;binfile&quot; enabled=&quot;yes&quot; data=&quot;/directory&quot; /&gt;&lt;/pre&gt;<br />
Disable unused mapset sections by setting enabled to false.<br />
<br />
* Run navit<br />
** Start gllin (for GTA01)<br />
** Start gpsd ( gpsd /tmp/nmeaNP )<br />
** Start navit<br />
<br />
* The version of osm2navit with which you build the maps should match the version of navit you have. If in doubt, build the maps on the Openmoko.<br />
<br />
===Tips and Tricks===<br />
====Center on Vehicle====<br />
Navit supports a &quot;always center on vehicle&quot; option. <br />
<br />
To activate this add<br />
follow=&quot;3&quot;<br />
to the vehicle tag in navit.xml. The &quot;3&quot; causes to give the gui time to do something between the repaints (drag the map or browse the menu). When its set to &quot;1&quot; navit does nothing more than repainting the map continuously.<br />
<br />
== News ==<br />
<br />
=== Getting the display right ===<br />
<br />
If using SHR the keyboard in country/town/street search mode does not fit on the street, make sure your gui configuration is set to the following line:<br />
<br />
&lt;gui type=&quot;internal&quot; font_size=&quot;350&quot;/&gt;<br />
<br />
The example line provided for freerunners hides some important icons. Namely, instead of typing your city name first, you will first have to click the button on the top left, to go into country search mode. Enter your country name, then the city name, in order to enable the search function. This requires your map data to be searchable. <br />
<br />
=== Street names ===<br />
They are now displayed on Openmoko using the CVS version of Navit (20071217).<br />
<br />
=== Point selection by pen ===<br />
Easier using the CVS version (20071217).<br />
<br />
=== Route &gt; Destination ===<br />
The Route &gt; Destination menu item crashes the software (20071217 and 0.04, but fixed in 0.1.0+svnrev1255).<br />
<br />
A workaround is to set the LANG variable before calling navit. For example:<br />
<br />
LANG=fr_FR.UTF-8 navit<br />
<br />
Note that a short syntax (e.g. LANG=fr) would not work.<br />
<br />
If you put an &quot;export LANG=fr_FR.UTF-8&quot; into your /etc/profile file, it will automatically set this environment variable every time you boot up. This way, you can launch Navit from the Icon in Illume.<br />
<br />
http://trac.navit-project.org/ticket/51<br />
<br />
=== Speech ===<br />
Navit can speak if you install eSpeak + speech-dispatcher and updates your navit.xml file.<br />
<br />
For adventurous people, one way to do this:<br />
<br />
* mokoTTS aims to integrate these packages in OM:<br />
http://projects.openmoko.org/projects/mokotts/<br />
<br />
install espeak, dotconf, and then speech-dispatcher.<br />
note: running 2008.8 updating from zecke's &quot;testing&quot; repo does not require &quot;dotconf&quot;<br />
<br />
* change the speech tag in navit.xml:<br />
&lt;speech type=&quot;cmdline&quot; data=&quot;spd-say '%s'&quot; /&gt;<br />
<br />
or &quot;spd-say -l fr '%s'&quot; for using the French voice for example.<br />
<br />
'''Note: Package speech-dispatcher broke my audio after suspend with current SHR (2009-04-13, though the problem's not shr, but speech-dispatcher itself).''' A solution is to disable starting of speech-dispatcher with:<br />
update-rc.d -f speech-dispatcher remove<br />
And then edit /usr/bin/navit, so that it starts speech-dispatcher before navit, and stops it afterwards. See http://lists.openmoko.org/nabble.html#nabble-td1088795<br />
<br />
=== Maps ===<br />
==== Downloadable Maps ====<br />
Downloadable OSM maps for most areas of the world are available free in Navit format from Cloudmade at [http://downloads.cloudmade.com/ http://downloads.cloudmade.com/]. Simply navigate to the country or region you want and download the &lt;code&gt;.navit.bin.zip&lt;/code&gt; version of the map. You'll have to exatract the &lt;code&gt;.bin&lt;/code&gt; file from the ZIP archive before using it with Navit.<br />
==== Planet extract ====<br />
You can download pre-compiled (ready-to-use) maps using the OpenStreetMap-data from the [http://maps.navit-project.org/download/ the navit planet extractor] ;-)]™ which allows you to select a region of OpenStreetMap to extract. This will give you a binary file that can be used directly by Navit without further processing. The planet extractor's map data is updated daily.<br />
<br />
==== Script to download OSM maps ====<br />
[[User:Wurp|Wurp]] wrote a little python script to download all OSM maps within a lat/long rectangle. Just copy the script to a file called dlOSM.sh, chmod +x it, and run it like<br />
dlOSM.sh &lt;minimum latitude&gt; &lt;maximum latitude&gt; &lt;minimum longitude&gt; &lt;maximum longitude&gt;<br />
<br />
It takes a long time for large maps. I could optimize it some by having it try to get a big section at once, then if it fails, break it into smaller pieces and recurse. I'm not sure when/if I'll get around to that...<br />
<br />
dlOSM.sh:<br />
&lt;pre&gt;<br />
#!/usr/bin/python<br />
<br />
import os<br />
import sys<br />
#import math<br />
<br />
def doIt(cmd):<br />
os.system(cmd)<br />
<br />
def getOsms(basename, minLat, maxLat, minLon, maxLon):<br />
'''basename - base name of map, maps are named {basename}{count}.osm<br />
minLat - latitude of the west side of the map<br />
maxLat - latitude of the east side of the map<br />
minLon - longitude of the north side of the map<br />
maxLon - longitude of the south side of the map'''<br />
<br />
wgetCmdTemplate = 'wget -O %s%s.osm http://api.openstreetmap.org/api/0.5/map?bbox=%s,%s,%s,%s'<br />
<br />
currLat = minLat<br />
mapCount = 0<br />
while currLat &lt; maxLat:<br />
nextLat = min(currLat + 0.1, maxLat)<br />
<br />
currLon = minLon<br />
while currLon &lt; maxLon:<br />
nextLon = min(currLon + 0.1, maxLon)<br />
<br />
doIt(wgetCmdTemplate % (basename, mapCount, currLon, currLat, nextLon, nextLat))<br />
<br />
currLon = nextLon<br />
mapCount = mapCount + 1<br />
<br />
currLat = nextLat<br />
<br />
(minLat, maxLat, minLon, maxLon) = map(float, sys.argv[1:])<br />
getOsms('map', minLat, maxLat, minLon, maxLon)<br />
&lt;/pre&gt;<br />
<br />
&lt;onlyinclude&gt;<br />
{{ApplicationBox|<br />
Name=[[Navit]]|<br />
Description=Navit is a car navigation system with routing engine.|<br />
Screenshot=Screenshot-3.png|<br />
Homepage=http://navit.sourceforge.net|<br />
TestedOn=|<br />
PackageName=<br />
}}<br />
&lt;/onlyinclude&gt;<br />
<br />
[[Category:GPS Applications]]</div>Myfanwyhttp://wiki.openmoko.org/wiki/PimlicoPimlico2009-07-04T08:30:45Z<p>Myfanwy: /* Pimlico */</p>
<hr />
<div>==Pimlico==<br />
<br />
From the website: ''Pimlico is a suite of lightweight Personal Information Management (PIM) <br />
applications designed primarily for handheld and mobile devices''<br />
<br />
* Dates - calendar<br />
* Contacts - address book<br />
* Tasks - task list<br />
* Sync - synchronization<br />
<br />
This project uses the evolution-data-server.<br />
<br />
Project Website: [http://www.pimlico-project.org/ pimlico]<br />
<br />
Successfully imported a full address book vcf file created by saving an Evolution address book. Have not yet tried importing (or sharing) a calendar. Dates seems to support online web calendars.<br />
<br />
According to the project website, Sync is not quite ready for release (other than svn).<br />
<br />
===OM2008===<br />
<br />
Dates and Tasks are in opkg:<br />
<br />
&lt;pre&gt;<br />
opkg install openmoko-dates2 openmoko-tasks2<br />
&lt;/pre&gt;<br />
<br />
See the project website for screen shots.<br />
<br />
(In OM2008.x Contacts uses other package from qtopia.)<br />
<br />
NB: This packages do not correspond to the last version of pimlico ?<br />
<br />
===Debian===<br />
<br />
Dates and Contacts can be compiled relatively easily from source by installing <br />
the necessary development packages. (''Packaging underway'').<br />
<br />
Screenshots of running under the Matchbox WM:<br />
<br />
====Dates====<br />
<br />
[[Image:Dates-month.png|150px|Dates - Month View]] [[Image:Dates-week.png|150px|Dates - Week View]] [[Image:Dates-day.png|150px|Dates - Day View]] [[Image:Dates-details.png|150px|Dates - Details View]]<br />
<br />
====Contacts====<br />
<br />
[[Image:Contacts-view.png|150px|Contacts - View]] [[Image:Contacts-new.png|150px|Contacts - New]][[Image:Contacts-edit2.png|150px|Contacts - Edit]]<br />
<br />
<br />
===SHR===<br />
==== SHR testing (2009-03) ====<br />
There is currently no package in the SHR repositories. You can add the [http://wiki.openmoko.org/wiki/Users_Repositories#Angstrom_Repository Angstrom repository] :<br />
<br />
echo &quot;arch base 50&quot; &gt; /etc/opkg/angstrom-feed.conf<br />
echo &quot;src/gz base http://www.angstrom-distribution.org/feeds/2008/ipk/glibc/armv4t/base&quot; &gt;&gt; /etc/opkg/angstrom-feed.conf<br />
opkg update<br />
opkg install dates tasks<br />
<br />
If you don't want to break your shr install with the next opkg upgrade, you must remove the angtrom feed after installing dates and tasks<br />
rm /etc/opkg/angstrom-feed.conf<br />
opkg update<br />
<br />
==== SHR unstable (2009-04-10) ====<br />
Since this date, &quot;dates&quot; and &quot;tasks&quot; from Pimlico are in the SHR unstable repository. So if you run SHR unstable, just do<br />
opkg update<br />
opkg install dates tasks<br />
to install them.</div>Myfanwyhttp://wiki.openmoko.org/wiki/TangoGPSTangoGPS2009-06-30T03:51:00Z<p>Myfanwy: /* Importing Tracks into tangoGPS */</p>
<hr />
<div>{{Languages|tangoGPS}}<br />
{{Application|tangoGPS}}<br />
<br />
__TOC__<br />
<br />
tangoGPS is a map application which can utilize Neo's built-in GPS to show your current location.<br />
<br />
[[Image:TangoGPS1.jpg]]<br />
<br />
Website: http://www.tangogps.org<br />
<br />
<br />
== Running tangoGPS ==<br />
=== [[Om 2008.8]] ===<br />
<br />
From the freerunner connected to the internet:<br />
&lt;pre&gt;<br />
opkg update<br />
opkg install gpsd<br />
&lt;/pre&gt;<br />
{{note|I experienced hangups if gpsd was not installed.}}<br />
&lt;pre&gt;<br />
opkg install http://www.tangogps.org/downloads/tangogps_0.9.5-r0_armv4t.opk<br />
&lt;/pre&gt;<br />
If opkg complains about not being able to acquire a lock, try:<br />
&lt;pre&gt;pkill packagekit&lt;/pre&gt;<br />
To get gpsd working on the FreeRunner you have to change the configuration according to [[Gpsd#GPS_on_GTA02]].<br />
Then start gpsd by:<br />
&lt;pre&gt;<br />
/etc/init.d/gpsd start<br />
&lt;/pre&gt;<br />
If you get an error about no GPS device in /etc/default/gpsd execute:<br />
&lt;pre&gt;<br />
echo &quot;GPS_DEV=\&quot;/dev/ttySAC1\&quot;&quot; &gt; /etc/default/gpsd<br />
&lt;/pre&gt;<br />
Now you must power up the GPS-chip by opening the &quot;Settings&quot; application and setting the GPS entry to &quot;on&quot;. Now you can run tangoGPS and wait until it get's a GPS fix. This can take up to a few minutes.<br />
<br />
=== [[Debian]] ===<br />
<br />
The latest version is available in [[Debian]].<br />
<br />
It depends on gpsd which conflicts with frameworkd in fso-frameworkd, but there is a package available that provides<br />
the gpsd interface to clients while using the services of the FSO frameworkd daemon, fso-gpsd. The install.sh script for the Debian distribution on the OpenMoko already installs it. To add tangogps run<br />
<br />
# apt-get install tangogps<br />
<br />
The gps device will be started automatically upon the invocation of tangogps or another gps application, e.g. like the one in [[Zhone]]. For the records, one can manually turn on the gps device using<br />
<br />
# echo 1 &gt;/sys/devices/platform/s3c2440-i2c/i2c-adapter/i2c-0/0-0073/neo1973-pm-gps.0/pwron<br />
<br />
The tangoGPS applications may appear as &quot;GPS &amp; Map&quot; on various desktops.<br />
<br />
'''Issues:'''<br />
* Both gpsd and the framework publish GPS data through dbus, though with different interfaces. This suggests a number of possible solutions.<br />
** gpsd or the framework could implement the other's interface (along with their own).<br />
** a translator could read one interface and emulate the other. This is what fso-gpsd does.<br />
** the framework could have an option to read data from gpsd.<br />
** ogpsd/gypsy could be extended to be backwards compatible with the majority of gps applications.<br />
<br />
=== FSO Milestone 3 ([[OpenmokoFramework]]) ===<br />
<br />
There are two various GPS interfaces -- (1) one provided with default gpsd and (2) the other provided by ogpsd (part of the frameworkd). tangoGPS requires the ad 1 and it obtains information from gps from the dbus interface provided by gpsd.<br />
<br />
On FSO milestone 3, there is tangoGPS pre-installed as well as both gpsd and ogpsd (see &lt;code&gt;/etc/frameworkd.conf&lt;/code&gt;, section &lt;code&gt;ogpsd&lt;/code&gt;). As mentioned above, there also exists a fso-gpsd package, that converts from ad 2 to ad 1 (unfortunately fso-gpsd is not in default image and must be installed with &lt;code&gt;opkg install fso-gpsd&lt;/code&gt;).<br />
<br />
You cannot have both &quot;providers&quot; (ad 1 &amp; ad 2) running, but you can have ad 2 (recommended for FSO) and &quot;convertor&quot; (fso-gpsd) providing the ad 1. To get usable tangoGPS on FreeRunner, one has to:<br />
<br />
# check that &lt;code&gt;/etc/frameworkd.conf&lt;/code&gt;, section &lt;code&gt;ogpsd&lt;/code&gt; reads GPS data from the right device (&lt;code&gt;/dev/ttySAC1&lt;/code&gt;)<br />
# if changes were made to configuration, one should restart the frameworkd -- &lt;code&gt;/etc/init.d/frameworkd stop &amp;&amp; /etc/init.d/frameworkd start&lt;/code&gt;<br />
# check that gpsd is not running -- &lt;code&gt;/etc/init.d/gpsd stop&lt;/code&gt;<br />
# check that fso-gpsd is installed and running -- &lt;code&gt;opkg install fso-gpsd; fso-gpsd&lt;/code&gt;<br />
# check that gps chip is online (&lt;code&gt;echo 1 &gt; /sys/devices/platform/s3c2440-i2c/i2c-adapter/i2c-0/0-0073/neo1973-pm-gps.0/pwron&lt;/code&gt;)<br />
# finally start up the tangoGPS and locate the gps signal; it should be up in a few minutes.<br />
<br />
Note 1: handy application for testing the gps (and gps signal strength) is &lt;code&gt;openmoko-agpsui&lt;/code&gt;, see general gps info at [[Gps]]<br />
<br />
Note 2: You can automate the process -- (1) remove the startup script for gpsd (&lt;code&gt;update-rc.d -f gpsd remove&lt;/code&gt;) and (2) create a simple startup scipt for fso-gpsd (you can use current script for gpsd as a skeleton)<br />
<br />
<br />
== Downloading Maps ==<br />
=== pre-load for offline use ===<br />
<br />
tangoGPS can bunch-download the map images so you don't need an internet connection while walking around. By default tangoGPS stores downloaded maps to /tmp/. This folder is lost every time you reboot the device. But you can use the &quot;Config&quot; tab within tangoGPS to change the &quot;Cache Dir&quot; location to , for example, /osm/ . So downloaded maps will be kept in the Neos flash, also after reboot. Note that the map files can take up large amounts of space, so you may want to store them on your sd card, e.g. in /media/card/osm or /media/mmcblk0p2/data/maps.<br />
<br />
If you find that TangoGPS does not remember configuration changes that you make to it, be sure to run it from the touchscreen, and not an SSH session. TangoGPS uses gconf to store its settings, and cannot access gconf when run via SSH.<br />
<br />
An alternative way to setup the configuration is through the command line. having /media/mmcblk0p2/data/maps as your data directory you could do the follwing:<br />
&lt;pre&gt;<br />
gconftool-2 -s /apps/tangogps/repos \<br />
&quot;[OSM|http://tile.openstreetmap.org/%d/%d/%d.png|/media/mmcblk0p2/data/maps/OSM|\<br />
0,Topo|maps-for-free|/media/mmcblk0p2/data/maps/maps4free|\<br />
0,Aerial|openaerial|/media/mmcblk0p2/data/maps/openaerial|\<br />
0,Opencyclemap|http://a.andy.sandbox.cloudmade.com/tiles/cycle/%d/%d/%d.png|/media/mmcblk0p2/data/maps/opencyclemap|\<br />
0,Google Sat (testing only)|http://khm1.google.com/kh?v=34&amp;hl=en&amp;x=%d&amp;s=&amp;y=%d&amp;z=%d|/media/mmcblk0p2/data/maps/googlesat|1]&quot; \<br />
--type list --list-type string<br />
&lt;/pre&gt;<br />
<br />
Once you have set the location to a non-volatile path, you can connect your Neo to the internet by USB or WiFi at home and start downloading the maps of your area. Tap the map screen and select &quot;map download&quot;. Now on-the-road tangoGPS will be able to show you maps in different zoom levels even though you are not connected to the internet.<br />
<br />
=== Downloading Maps via GPRS ===<br />
I think tangoGPS may have started working after I followed the instructions to get GPRS working with GSM multiplexing here: [[Manually_using_GPRS#Option_1:_With_GSM_multiplexing_and_with_a_GUI]]<br />
<br />
There are steps included in those instructions to improve GPS performance. The great thing is that once you get GPRS working, you can roam with TangoGPS running and have it download maps as needed over the GPRS connection!<br />
<br />
=== Updating pre-downloaded maps ===<br />
If you have many maps already downloaded, [[Media:updateMaps.txt|updateMaps.pl]] is a perl script to bring you up-to-date. It's made to work for OSM maps only, but can be adapted to work with any map dataset. See also: [[Yaouh!]].<br />
<br />
== Using tangoGPS for OpenStreetMap.org ==<br />
=== creating tracks ===<br />
tangoGPS works fine to create track for Openstreetmap. However, it records and stores a track in its native format, use [http://www.tangogps.org/downloads/convert2gpx.pl convert2gpx.pl] (see also: [http://psung.blogspot.com/2008/07/sharing-gps-tracks-from-tangogps-on.html tools])(you can also use [http://minucci.net/file/convert2gpx.py convert2gpx.py]) to convert the track to GPX (i.e to import into JOSM):<br />
<br />
perl convert2gpx.pl 20080903_111508.log &gt; 20080903_111508.gpx<br />
<br />
==== tangoGPS logging format ====<br />
<br />
&lt;lat&gt;,&lt;lon&gt;,&lt;elevation&gt;,&lt;speed&gt;,&lt;course&gt;,&lt;hdop&gt;,&lt;datetime&gt;<br />
<br />
=== using OpenStreetBugs ===<br />
[http://wiki.openstreetmap.org/wiki/TangoGPS#Using_together_with_OpenStreetBugs see OSM wiki]<br />
<br />
<br />
== Importing Tracks into tangoGPS ==<br />
<br />
tangoGPS does not support the import of tracks directly. However the following xslt style sheet can be used to convert gpx tracks - e.g from routing software such as maps.cloudmade.com - to tangogps log files, which can then be imported&lt;br&gt;<br />
At present this style sheet will only convert tracks which make use of the 'wpt' (waypoint) tag. Some software uses the 'trkpt' (trackpoint) tag. This will be incorporated into the stylesheet at some point. In the meantime, it can be used on the latter type of gpx file by changing 'wpt' to 'trkpt' on line 6.<br />
<br />
&lt;pre&gt;<br />
&lt;nowiki&gt;<br />
&lt;?xml version=&quot;1.0&quot; encoding=&quot;ISO-8859-1&quot;?&gt;<br />
&lt;xsl:stylesheet version=&quot;1.0&quot; xmlns:xsl=&quot;http://www.w3.org/1999/XSL/Transform&quot; xmlns:g=&quot;http://www.topografix.com/GPX/1/1&quot;&gt;<br />
&lt;xsl:output method=&quot;text&quot; omit-xml-declaration=&quot;yes&quot;/&gt;<br />
&lt;xsl:template match=&quot;g:gpx&quot; &gt;<br />
&lt;xsl:for-each select=&quot;g:wpt&quot;&gt;<br />
&lt;xsl:value-of select=&quot;@lat&quot;/&gt;,&lt;xsl:value-of select=&quot;@lon&quot;/&gt;,11.8,1.1,346.0,1.4,2008-12-30T06:46:0&lt;xsl:if test=&quot;position()!=last()&quot;&gt;&lt;xsl:text&gt;1&lt;/xsl:text&gt;&lt;/xsl:if&gt;&lt;xsl:if test=&quot;position()=last()&quot;&gt;&lt;xsl:text&gt;2&lt;/xsl:text&gt;&lt;/xsl:if&gt;Z<br />
&lt;/xsl:for-each&gt;<br />
&lt;/xsl:template&gt;<br />
&lt;/xsl:stylesheet&gt;<br />
&lt;/nowiki&gt;<br />
&lt;/pre&gt;<br />
<br />
save this into a file called 'gpx2log.xslt', then run<br />
<br />
&lt;pre&gt;<br />
$ xsltproc gpx2log.xslt input_file.gpx &gt; output_file.log<br />
&lt;/pre&gt;<br />
<br />
move output_file.log to the tangogps traces directory, and use the 'Load...' button on the 'Track' tab to overlay it on the map<br />
<br />
Note: this stylesheet was thrown together in a short time, and makes at least one shortcut - namely, the use of 'dummy' variables for various details, such as the altitude, date, etc. Feel free to improve this if required, although it has no bearing on the display of the track<br />
<br />
You may help yourself by using [http://relet.net/frog/archives/68 this tool] to import GPX trackpoints as a series of POIs directly into the sqlite database which tangoGPS uses to store POIs.<br />
<br />
== Using the TangoGPS logs == <br />
<br />
You can convert the logfiles from TangoGPS to other formats using gpsbabel and this style-file: <br />
<br />
&lt;pre&gt;<br />
DESCRIPTION TangoGPS 0.92<br />
EXTENSION log<br />
DATATYPE TRACK<br />
<br />
FIELD_DELIMITER COMMA<br />
RECORD_DELIMITER NEWLINE<br />
<br />
IFIELD LAT_DECIMAL,&quot;&quot;,&quot;%f&quot;<br />
IFIELD LON_DECIMAL,&quot;&quot;,&quot;%f&quot;<br />
IFIELD ALT_METERS,&quot;&quot;,&quot;%f&quot;<br />
IFIELD PATH_SPEED,&quot;&quot;,&quot;%f&quot;<br />
IFIELD PATH_COURSE,&quot;&quot;,&quot;%f&quot;<br />
IFIELD GPS_HDOP,&quot;&quot;,&quot;%f&quot;<br />
IFIELD ISO_TIME,&quot;&quot;,&quot;%s&quot; <br />
&lt;/pre&gt;<br />
<br />
Save this as '''tangogps.style''' and you can use gpsbabel to for instance convert to google-earth files like this: <br />
<br />
gpsbabel -i xcsv,style=tangogps.style -o kml -f file.log -F file.kml<br />
<br />
== Add POI from address ==<br />
<br />
You can use [[gtkaddpoi]] for searching the destination address and add it as a POI.<br />
<br />
== Add POI from GeoRSS feed ==<br />
<br />
If you would like to import GeoRSS feeds from Google maps or elsewhere as points of interest (POI), read this [http://bonedaddy.net/pabs3/log/2009/05/28/georss-tangogps/ blog post]. Hopefully TangoGPS upstream will include the script soon, but until then and if you aren't using Debian, download this [http://bugs.debian.org/cgi-bin/bugreport.cgi?msg=5;filename=georss-to-tangogps-poi.py;att=1;bug=530718 script] from the Debian bug tracker.<br />
<br />
== Using Google Maps with tangoGPS ==<br />
<br />
Go to Config and create a new repository.<br />
<br />
Set the url for '''street-maps''' to:<br />
&lt;pre&gt;http://mt1.google.com/mt?&amp;x=%d&amp;y=%d&amp;z=%d&lt;/pre&gt;<br />
for '''satellite-maps''' to:<br />
&lt;pre&gt;http://khm.google.com/kh?&amp;x=%d&amp;y=%d&amp;zoom=%d&lt;/pre&gt;<br />
for '''topographic-maps''':<br />
&lt;pre&gt;http://mt.google.com/mt?v=app.81&amp;x=%d&amp;y=%d&amp;zoom=%d&lt;/pre&gt;<br />
<br />
Check the &quot;Inverted Zoom&quot; box. Press save Repository Configuration and you're ready to go.<br />
<br />
<br />
'''Since TangoGPS 0.9.5''' the &quot;Inverted Zoom&quot; box is no longer available because Google changed the addressing scheme; instead, select &quot;xyz instead of zxy&quot; and use the following URLs:<br />
&lt;pre&gt;<br />
Maps: <br />
http://mt3.google.com/mt/v=w2.89&amp;hl=en&amp;x=%d&amp;y=%d&amp;z=%d&amp;s=Galileo <br />
<br />
Sat: <br />
http://khm3.google.com/kh/v=36&amp;hl=en&amp;x=%d&amp;y=%d&amp;z=%d&amp;s=Galileo<br />
&lt;/pre&gt;<br />
<br />
'''Generalization:''' The above 'Maps' URL isn't the current one anymore, also. Google changes the URL layout sometimes. To find out the current scheme open maps.google.com and view the page source. Search for http:// until you find sth similar to the above URL. This way I found<br />
&lt;pre&gt;<br />
http://mt1.google.com/mt/v=w2.92&amp;amp;hl=en&amp;amp;x=3&amp;amp;y=5&amp;amp;z=4&amp;amp;s=Galile<br />
&lt;/pre&gt;<br />
<br />
Now you could tweak your configuration unsing the above link (delete the 'amp;' tokens and replace every number with '%d'), for example with<br />
&lt;pre&gt;<br />
gconftool-2 -s /apps/tangogps/repos \<br />
&quot;[OSM|http://tile.openstreetmap.org/%d/%d/%d.png|/media/mmcblk0p2/data/maps/OSM|\<br />
0,Topo|maps-for-free|/media/mmcblk0p2/data/maps/maps4free|\<br />
0,Aerial|openaerial|/media/mmcblk0p2/data/maps/openaerial|\<br />
0,Opencyclemap|http://a.andy.sandbox.cloudmade.com/tiles/cycle/%d/%d/%d.png|/media/mmcblk0p2/data/maps/opencyclemap|\<br />
0,Google Sat (testing only)|http://khm1.google.com/kh?v=34&amp;hl=en&amp;x=%d&amp;s=&amp;y=%d&amp;z=%d|/media/mmcblk0p2/data/maps/googlesat|\<br />
0,Google Maps (testing only)|http://mt1.google.com/mt/v=w2.92&amp;hl=en&amp;x=%d&amp;y=%d&amp;z=%d&amp;s=Galile|/media/mmcblk0p2/data/maps/googlemaps|1]&quot; \<br />
--type list --list-type string<br />
&lt;/pre&gt;<br />
<br />
&lt;onlyinclude&gt;<br />
{{ApplicationBox|<br />
Name=[[TangoGPS]]|<br />
Description= TangoGPS is a map application which can utilize Neo's built-in GPS to show your current location. It automatically downloads maps from http://openstreetmap.com and you can download map tiles for offline use too.|<br />
Screenshot=TangoGPS1.jpg|<br />
Homepage=http://www.tangogps.org|<br />
TestedOn=Om 2008.8|<br />
PackageName=tangogps<br />
}}<br />
&lt;/onlyinclude&gt;<br />
<br />
[[Category:GPS Applications]]</div>Myfanwyhttp://wiki.openmoko.org/wiki/TangoGPSTangoGPS2009-06-29T04:42:11Z<p>Myfanwy: /* Importing Tracks into tangoGPS */</p>
<hr />
<div>{{Languages|tangoGPS}}<br />
{{Application|tangoGPS}}<br />
<br />
__TOC__<br />
<br />
tangoGPS is a map application which can utilize Neo's built-in GPS to show your current location.<br />
<br />
[[Image:TangoGPS1.jpg]]<br />
<br />
Website: http://www.tangogps.org<br />
<br />
<br />
== Running tangoGPS ==<br />
=== [[Om 2008.8]] ===<br />
<br />
From the freerunner connected to the internet:<br />
&lt;pre&gt;<br />
opkg update<br />
opkg install gpsd<br />
&lt;/pre&gt;<br />
{{note|I experienced hangups if gpsd was not installed.}}<br />
&lt;pre&gt;<br />
opkg install http://www.tangogps.org/downloads/tangogps_0.9.5-r0_armv4t.opk<br />
&lt;/pre&gt;<br />
If opkg complains about not being able to acquire a lock, try:<br />
&lt;pre&gt;pkill packagekit&lt;/pre&gt;<br />
To get gpsd working on the FreeRunner you have to change the configuration according to [[Gpsd#GPS_on_GTA02]].<br />
Then start gpsd by:<br />
&lt;pre&gt;<br />
/etc/init.d/gpsd start<br />
&lt;/pre&gt;<br />
If you get an error about no GPS device in /etc/default/gpsd execute:<br />
&lt;pre&gt;<br />
echo &quot;GPS_DEV=\&quot;/dev/ttySAC1\&quot;&quot; &gt; /etc/default/gpsd<br />
&lt;/pre&gt;<br />
Now you must power up the GPS-chip by opening the &quot;Settings&quot; application and setting the GPS entry to &quot;on&quot;. Now you can run tangoGPS and wait until it get's a GPS fix. This can take up to a few minutes.<br />
<br />
=== [[Debian]] ===<br />
<br />
The latest version is available in [[Debian]].<br />
<br />
It depends on gpsd which conflicts with frameworkd in fso-frameworkd, but there is a package available that provides<br />
the gpsd interface to clients while using the services of the FSO frameworkd daemon, fso-gpsd. The install.sh script for the Debian distribution on the OpenMoko already installs it. To add tangogps run<br />
<br />
# apt-get install tangogps<br />
<br />
The gps device will be started automatically upon the invocation of tangogps or another gps application, e.g. like the one in [[Zhone]]. For the records, one can manually turn on the gps device using<br />
<br />
# echo 1 &gt;/sys/devices/platform/s3c2440-i2c/i2c-adapter/i2c-0/0-0073/neo1973-pm-gps.0/pwron<br />
<br />
The tangoGPS applications may appear as &quot;GPS &amp; Map&quot; on various desktops.<br />
<br />
'''Issues:'''<br />
* Both gpsd and the framework publish GPS data through dbus, though with different interfaces. This suggests a number of possible solutions.<br />
** gpsd or the framework could implement the other's interface (along with their own).<br />
** a translator could read one interface and emulate the other. This is what fso-gpsd does.<br />
** the framework could have an option to read data from gpsd.<br />
** ogpsd/gypsy could be extended to be backwards compatible with the majority of gps applications.<br />
<br />
=== FSO Milestone 3 ([[OpenmokoFramework]]) ===<br />
<br />
There are two various GPS interfaces -- (1) one provided with default gpsd and (2) the other provided by ogpsd (part of the frameworkd). tangoGPS requires the ad 1 and it obtains information from gps from the dbus interface provided by gpsd.<br />
<br />
On FSO milestone 3, there is tangoGPS pre-installed as well as both gpsd and ogpsd (see &lt;code&gt;/etc/frameworkd.conf&lt;/code&gt;, section &lt;code&gt;ogpsd&lt;/code&gt;). As mentioned above, there also exists a fso-gpsd package, that converts from ad 2 to ad 1 (unfortunately fso-gpsd is not in default image and must be installed with &lt;code&gt;opkg install fso-gpsd&lt;/code&gt;).<br />
<br />
You cannot have both &quot;providers&quot; (ad 1 &amp; ad 2) running, but you can have ad 2 (recommended for FSO) and &quot;convertor&quot; (fso-gpsd) providing the ad 1. To get usable tangoGPS on FreeRunner, one has to:<br />
<br />
# check that &lt;code&gt;/etc/frameworkd.conf&lt;/code&gt;, section &lt;code&gt;ogpsd&lt;/code&gt; reads GPS data from the right device (&lt;code&gt;/dev/ttySAC1&lt;/code&gt;)<br />
# if changes were made to configuration, one should restart the frameworkd -- &lt;code&gt;/etc/init.d/frameworkd stop &amp;&amp; /etc/init.d/frameworkd start&lt;/code&gt;<br />
# check that gpsd is not running -- &lt;code&gt;/etc/init.d/gpsd stop&lt;/code&gt;<br />
# check that fso-gpsd is installed and running -- &lt;code&gt;opkg install fso-gpsd; fso-gpsd&lt;/code&gt;<br />
# check that gps chip is online (&lt;code&gt;echo 1 &gt; /sys/devices/platform/s3c2440-i2c/i2c-adapter/i2c-0/0-0073/neo1973-pm-gps.0/pwron&lt;/code&gt;)<br />
# finally start up the tangoGPS and locate the gps signal; it should be up in a few minutes.<br />
<br />
Note 1: handy application for testing the gps (and gps signal strength) is &lt;code&gt;openmoko-agpsui&lt;/code&gt;, see general gps info at [[Gps]]<br />
<br />
Note 2: You can automate the process -- (1) remove the startup script for gpsd (&lt;code&gt;update-rc.d -f gpsd remove&lt;/code&gt;) and (2) create a simple startup scipt for fso-gpsd (you can use current script for gpsd as a skeleton)<br />
<br />
<br />
== Downloading Maps ==<br />
=== pre-load for offline use ===<br />
<br />
tangoGPS can bunch-download the map images so you don't need an internet connection while walking around. By default tangoGPS stores downloaded maps to /tmp/. This folder is lost every time you reboot the device. But you can use the &quot;Config&quot; tab within tangoGPS to change the &quot;Cache Dir&quot; location to , for example, /osm/ . So downloaded maps will be kept in the Neos flash, also after reboot. Note that the map files can take up large amounts of space, so you may want to store them on your sd card, e.g. in /media/card/osm or /media/mmcblk0p2/data/maps.<br />
<br />
If you find that TangoGPS does not remember configuration changes that you make to it, be sure to run it from the touchscreen, and not an SSH session. TangoGPS uses gconf to store its settings, and cannot access gconf when run via SSH.<br />
<br />
An alternative way to setup the configuration is through the command line. having /media/mmcblk0p2/data/maps as your data directory you could do the follwing:<br />
&lt;pre&gt;<br />
gconftool-2 -s /apps/tangogps/repos \<br />
&quot;[OSM|http://tile.openstreetmap.org/%d/%d/%d.png|/media/mmcblk0p2/data/maps/OSM|\<br />
0,Topo|maps-for-free|/media/mmcblk0p2/data/maps/maps4free|\<br />
0,Aerial|openaerial|/media/mmcblk0p2/data/maps/openaerial|\<br />
0,Opencyclemap|http://a.andy.sandbox.cloudmade.com/tiles/cycle/%d/%d/%d.png|/media/mmcblk0p2/data/maps/opencyclemap|\<br />
0,Google Sat (testing only)|http://khm1.google.com/kh?v=34&amp;hl=en&amp;x=%d&amp;s=&amp;y=%d&amp;z=%d|/media/mmcblk0p2/data/maps/googlesat|1]&quot; \<br />
--type list --list-type string<br />
&lt;/pre&gt;<br />
<br />
Once you have set the location to a non-volatile path, you can connect your Neo to the internet by USB or WiFi at home and start downloading the maps of your area. Tap the map screen and select &quot;map download&quot;. Now on-the-road tangoGPS will be able to show you maps in different zoom levels even though you are not connected to the internet.<br />
<br />
=== Downloading Maps via GPRS ===<br />
I think tangoGPS may have started working after I followed the instructions to get GPRS working with GSM multiplexing here: [[Manually_using_GPRS#Option_1:_With_GSM_multiplexing_and_with_a_GUI]]<br />
<br />
There are steps included in those instructions to improve GPS performance. The great thing is that once you get GPRS working, you can roam with TangoGPS running and have it download maps as needed over the GPRS connection!<br />
<br />
=== Updating pre-downloaded maps ===<br />
If you have many maps already downloaded, [[Media:updateMaps.txt|updateMaps.pl]] is a perl script to bring you up-to-date. It's made to work for OSM maps only, but can be adapted to work with any map dataset. See also: [[Yaouh!]].<br />
<br />
== Using tangoGPS for OpenStreetMap.org ==<br />
=== creating tracks ===<br />
tangoGPS works fine to create track for Openstreetmap. However, it records and stores a track in its native format, use [http://www.tangogps.org/downloads/convert2gpx.pl convert2gpx.pl] (see also: [http://psung.blogspot.com/2008/07/sharing-gps-tracks-from-tangogps-on.html tools])(you can also use [http://minucci.net/file/convert2gpx.py convert2gpx.py]) to convert the track to GPX (i.e to import into JOSM):<br />
<br />
perl convert2gpx.pl 20080903_111508.log &gt; 20080903_111508.gpx<br />
<br />
==== tangoGPS logging format ====<br />
<br />
&lt;lat&gt;,&lt;lon&gt;,&lt;elevation&gt;,&lt;speed&gt;,&lt;course&gt;,&lt;hdop&gt;,&lt;datetime&gt;<br />
<br />
=== using OpenStreetBugs ===<br />
[http://wiki.openstreetmap.org/wiki/TangoGPS#Using_together_with_OpenStreetBugs see OSM wiki]<br />
<br />
<br />
== Importing Tracks into tangoGPS ==<br />
<br />
tangoGPS does not support the import of tracks directly. However the following xslt style sheet can be used to convert gpx tracks - e.g from routing software such as maps.cloudmade.com - to tangogps log files, which can then be imported&lt;br&gt;<br />
At present this style sheet will only convert tracks which make use of the 'wpt' (waypoint) tag. Some software uses the 'trk' (trackpoint) tag. This will be incorporated into the stylesheet at some point. In the meantime, it can be used on the latter type of gpx file by changing 'wpt' to 'trkpt' on line 6.<br />
<br />
&lt;pre&gt;<br />
&lt;nowiki&gt;<br />
&lt;?xml version=&quot;1.0&quot; encoding=&quot;ISO-8859-1&quot;?&gt;<br />
&lt;xsl:stylesheet version=&quot;1.0&quot; xmlns:xsl=&quot;http://www.w3.org/1999/XSL/Transform&quot; xmlns:g=&quot;http://www.topografix.com/GPX/1/1&quot;&gt;<br />
&lt;xsl:output method=&quot;text&quot; omit-xml-declaration=&quot;yes&quot;/&gt;<br />
&lt;xsl:template match=&quot;g:gpx&quot; &gt;<br />
&lt;xsl:for-each select=&quot;g:wpt&quot;&gt;<br />
&lt;xsl:value-of select=&quot;@lat&quot;/&gt;,&lt;xsl:value-of select=&quot;@lon&quot;/&gt;,11.8,1.1,346.0,1.4,2008-12-30T06:46:0&lt;xsl:if test=&quot;position()!=last()&quot;&gt;&lt;xsl:text&gt;1&lt;/xsl:text&gt;&lt;/xsl:if&gt;&lt;xsl:if test=&quot;position()=last()&quot;&gt;&lt;xsl:text&gt;2&lt;/xsl:text&gt;&lt;/xsl:if&gt;Z<br />
&lt;/xsl:for-each&gt;<br />
&lt;/xsl:template&gt;<br />
&lt;/xsl:stylesheet&gt;<br />
&lt;/nowiki&gt;<br />
&lt;/pre&gt;<br />
<br />
save this into a file called 'gpx2log.xslt', then run<br />
<br />
&lt;pre&gt;<br />
$ xsltproc gpx2log.xslt input_file.gpx &gt; output_file.log<br />
&lt;/pre&gt;<br />
<br />
move output_file.log to the tangogps traces directory, and use the 'Load...' button on the 'Track' tab to overlay it on the map<br />
<br />
Note: this stylesheet was thrown together in a short time, and makes at least one shortcut - namely, the use of 'dummy' variables for various details, such as the altitude, date, etc. Feel free to improve this if required, although it has no bearing on the display of the track<br />
<br />
You may help yourself by using [http://relet.net/frog/archives/68 this tool] to import GPX trackpoints as a series of POIs directly into the sqlite database which tangoGPS uses to store POIs.<br />
<br />
== Using the TangoGPS logs == <br />
<br />
You can convert the logfiles from TangoGPS to other formats using gpsbabel and this style-file: <br />
<br />
&lt;pre&gt;<br />
DESCRIPTION TangoGPS 0.92<br />
EXTENSION log<br />
DATATYPE TRACK<br />
<br />
FIELD_DELIMITER COMMA<br />
RECORD_DELIMITER NEWLINE<br />
<br />
IFIELD LAT_DECIMAL,&quot;&quot;,&quot;%f&quot;<br />
IFIELD LON_DECIMAL,&quot;&quot;,&quot;%f&quot;<br />
IFIELD ALT_METERS,&quot;&quot;,&quot;%f&quot;<br />
IFIELD PATH_SPEED,&quot;&quot;,&quot;%f&quot;<br />
IFIELD PATH_COURSE,&quot;&quot;,&quot;%f&quot;<br />
IFIELD GPS_HDOP,&quot;&quot;,&quot;%f&quot;<br />
IFIELD ISO_TIME,&quot;&quot;,&quot;%s&quot; <br />
&lt;/pre&gt;<br />
<br />
Save this as '''tangogps.style''' and you can use gpsbabel to for instance convert to google-earth files like this: <br />
<br />
gpsbabel -i xcsv,style=tangogps.style -o kml -f file.log -F file.kml<br />
<br />
== Add POI from address ==<br />
<br />
You can use [[gtkaddpoi]] for searching the destination address and add it as a POI.<br />
<br />
== Add POI from GeoRSS feed ==<br />
<br />
If you would like to import GeoRSS feeds from Google maps or elsewhere as points of interest (POI), read this [http://bonedaddy.net/pabs3/log/2009/05/28/georss-tangogps/ blog post]. Hopefully TangoGPS upstream will include the script soon, but until then and if you aren't using Debian, download this [http://bugs.debian.org/cgi-bin/bugreport.cgi?msg=5;filename=georss-to-tangogps-poi.py;att=1;bug=530718 script] from the Debian bug tracker.<br />
<br />
== Using Google Maps with tangoGPS ==<br />
<br />
Go to Config and create a new repository.<br />
<br />
Set the url for '''street-maps''' to:<br />
&lt;pre&gt;http://mt1.google.com/mt?&amp;x=%d&amp;y=%d&amp;z=%d&lt;/pre&gt;<br />
for '''satellite-maps''' to:<br />
&lt;pre&gt;http://khm.google.com/kh?&amp;x=%d&amp;y=%d&amp;zoom=%d&lt;/pre&gt;<br />
for '''topographic-maps''':<br />
&lt;pre&gt;http://mt.google.com/mt?v=app.81&amp;x=%d&amp;y=%d&amp;zoom=%d&lt;/pre&gt;<br />
<br />
Check the &quot;Inverted Zoom&quot; box. Press save Repository Configuration and you're ready to go.<br />
<br />
<br />
'''Since TangoGPS 0.9.5''' the &quot;Inverted Zoom&quot; box is no longer available because Google changed the addressing scheme; instead, select &quot;xyz instead of zxy&quot; and use the following URLs:<br />
&lt;pre&gt;<br />
Maps: <br />
http://mt3.google.com/mt/v=w2.89&amp;hl=en&amp;x=%d&amp;y=%d&amp;z=%d&amp;s=Galileo <br />
<br />
Sat: <br />
http://khm3.google.com/kh/v=36&amp;hl=en&amp;x=%d&amp;y=%d&amp;z=%d&amp;s=Galileo<br />
&lt;/pre&gt;<br />
<br />
'''Generalization:''' The above 'Maps' URL isn't the current one anymore, also. Google changes the URL layout sometimes. To find out the current scheme open maps.google.com and view the page source. Search for http:// until you find sth similar to the above URL. This way I found<br />
&lt;pre&gt;<br />
http://mt1.google.com/mt/v=w2.92&amp;amp;hl=en&amp;amp;x=3&amp;amp;y=5&amp;amp;z=4&amp;amp;s=Galile<br />
&lt;/pre&gt;<br />
<br />
Now you could tweak your configuration unsing the above link (delete the 'amp;' tokens and replace every number with '%d'), for example with<br />
&lt;pre&gt;<br />
gconftool-2 -s /apps/tangogps/repos \<br />
&quot;[OSM|http://tile.openstreetmap.org/%d/%d/%d.png|/media/mmcblk0p2/data/maps/OSM|\<br />
0,Topo|maps-for-free|/media/mmcblk0p2/data/maps/maps4free|\<br />
0,Aerial|openaerial|/media/mmcblk0p2/data/maps/openaerial|\<br />
0,Opencyclemap|http://a.andy.sandbox.cloudmade.com/tiles/cycle/%d/%d/%d.png|/media/mmcblk0p2/data/maps/opencyclemap|\<br />
0,Google Sat (testing only)|http://khm1.google.com/kh?v=34&amp;hl=en&amp;x=%d&amp;s=&amp;y=%d&amp;z=%d|/media/mmcblk0p2/data/maps/googlesat|\<br />
0,Google Maps (testing only)|http://mt1.google.com/mt/v=w2.92&amp;hl=en&amp;x=%d&amp;y=%d&amp;z=%d&amp;s=Galile|/media/mmcblk0p2/data/maps/googlemaps|1]&quot; \<br />
--type list --list-type string<br />
&lt;/pre&gt;<br />
<br />
&lt;onlyinclude&gt;<br />
{{ApplicationBox|<br />
Name=[[TangoGPS]]|<br />
Description= TangoGPS is a map application which can utilize Neo's built-in GPS to show your current location. It automatically downloads maps from http://openstreetmap.com and you can download map tiles for offline use too.|<br />
Screenshot=TangoGPS1.jpg|<br />
Homepage=http://www.tangogps.org|<br />
TestedOn=Om 2008.8|<br />
PackageName=tangogps<br />
}}<br />
&lt;/onlyinclude&gt;<br />
<br />
[[Category:GPS Applications]]</div>Myfanwyhttp://wiki.openmoko.org/wiki/TangoGPSTangoGPS2009-06-28T07:14:26Z<p>Myfanwy: /* Importing Tracks into tangoGPS */</p>
<hr />
<div>{{Languages|tangoGPS}}<br />
{{Application|tangoGPS}}<br />
<br />
__TOC__<br />
<br />
tangoGPS is a map application which can utilize Neo's built-in GPS to show your current location.<br />
<br />
[[Image:TangoGPS1.jpg]]<br />
<br />
Website: http://www.tangogps.org<br />
<br />
<br />
== Running tangoGPS ==<br />
=== [[Om 2008.8]] ===<br />
<br />
From the freerunner connected to the internet:<br />
&lt;pre&gt;<br />
opkg update<br />
opkg install gpsd<br />
&lt;/pre&gt;<br />
{{note|I experienced hangups if gpsd was not installed.}}<br />
&lt;pre&gt;<br />
opkg install http://www.tangogps.org/downloads/tangogps_0.9.5-r0_armv4t.opk<br />
&lt;/pre&gt;<br />
If opkg complains about not being able to acquire a lock, try:<br />
&lt;pre&gt;pkill packagekit&lt;/pre&gt;<br />
To get gpsd working on the FreeRunner you have to change the configuration according to [[Gpsd#GPS_on_GTA02]].<br />
Then start gpsd by:<br />
&lt;pre&gt;<br />
/etc/init.d/gpsd start<br />
&lt;/pre&gt;<br />
If you get an error about no GPS device in /etc/default/gpsd execute:<br />
&lt;pre&gt;<br />
echo &quot;GPS_DEV=\&quot;/dev/ttySAC1\&quot;&quot; &gt; /etc/default/gpsd<br />
&lt;/pre&gt;<br />
Now you must power up the GPS-chip by opening the &quot;Settings&quot; application and setting the GPS entry to &quot;on&quot;. Now you can run tangoGPS and wait until it get's a GPS fix. This can take up to a few minutes.<br />
<br />
=== [[Debian]] ===<br />
<br />
The latest version is available in [[Debian]].<br />
<br />
It depends on gpsd which conflicts with frameworkd in fso-frameworkd, but there is a package available that provides<br />
the gpsd interface to clients while using the services of the FSO frameworkd daemon, fso-gpsd. The install.sh script for the Debian distribution on the OpenMoko already installs it. To add tangogps run<br />
<br />
# apt-get install tangogps<br />
<br />
The gps device will be started automatically upon the invocation of tangogps or another gps application, e.g. like the one in [[Zhone]]. For the records, one can manually turn on the gps device using<br />
<br />
# echo 1 &gt;/sys/devices/platform/s3c2440-i2c/i2c-adapter/i2c-0/0-0073/neo1973-pm-gps.0/pwron<br />
<br />
The tangoGPS applications may appear as &quot;GPS &amp; Map&quot; on various desktops.<br />
<br />
'''Issues:'''<br />
* Both gpsd and the framework publish GPS data through dbus, though with different interfaces. This suggests a number of possible solutions.<br />
** gpsd or the framework could implement the other's interface (along with their own).<br />
** a translator could read one interface and emulate the other. This is what fso-gpsd does.<br />
** the framework could have an option to read data from gpsd.<br />
** ogpsd/gypsy could be extended to be backwards compatible with the majority of gps applications.<br />
<br />
=== FSO Milestone 3 ([[OpenmokoFramework]]) ===<br />
<br />
There are two various GPS interfaces -- (1) one provided with default gpsd and (2) the other provided by ogpsd (part of the frameworkd). tangoGPS requires the ad 1 and it obtains information from gps from the dbus interface provided by gpsd.<br />
<br />
On FSO milestone 3, there is tangoGPS pre-installed as well as both gpsd and ogpsd (see &lt;code&gt;/etc/frameworkd.conf&lt;/code&gt;, section &lt;code&gt;ogpsd&lt;/code&gt;). As mentioned above, there also exists a fso-gpsd package, that converts from ad 2 to ad 1 (unfortunately fso-gpsd is not in default image and must be installed with &lt;code&gt;opkg install fso-gpsd&lt;/code&gt;).<br />
<br />
You cannot have both &quot;providers&quot; (ad 1 &amp; ad 2) running, but you can have ad 2 (recommended for FSO) and &quot;convertor&quot; (fso-gpsd) providing the ad 1. To get usable tangoGPS on FreeRunner, one has to:<br />
<br />
# check that &lt;code&gt;/etc/frameworkd.conf&lt;/code&gt;, section &lt;code&gt;ogpsd&lt;/code&gt; reads GPS data from the right device (&lt;code&gt;/dev/ttySAC1&lt;/code&gt;)<br />
# if changes were made to configuration, one should restart the frameworkd -- &lt;code&gt;/etc/init.d/frameworkd stop &amp;&amp; /etc/init.d/frameworkd start&lt;/code&gt;<br />
# check that gpsd is not running -- &lt;code&gt;/etc/init.d/gpsd stop&lt;/code&gt;<br />
# check that fso-gpsd is installed and running -- &lt;code&gt;opkg install fso-gpsd; fso-gpsd&lt;/code&gt;<br />
# check that gps chip is online (&lt;code&gt;echo 1 &gt; /sys/devices/platform/s3c2440-i2c/i2c-adapter/i2c-0/0-0073/neo1973-pm-gps.0/pwron&lt;/code&gt;)<br />
# finally start up the tangoGPS and locate the gps signal; it should be up in a few minutes.<br />
<br />
Note 1: handy application for testing the gps (and gps signal strength) is &lt;code&gt;openmoko-agpsui&lt;/code&gt;, see general gps info at [[Gps]]<br />
<br />
Note 2: You can automate the process -- (1) remove the startup script for gpsd (&lt;code&gt;update-rc.d -f gpsd remove&lt;/code&gt;) and (2) create a simple startup scipt for fso-gpsd (you can use current script for gpsd as a skeleton)<br />
<br />
<br />
== Downloading Maps ==<br />
=== pre-load for offline use ===<br />
<br />
tangoGPS can bunch-download the map images so you don't need an internet connection while walking around. By default tangoGPS stores downloaded maps to /tmp/. This folder is lost every time you reboot the device. But you can use the &quot;Config&quot; tab within tangoGPS to change the &quot;Cache Dir&quot; location to , for example, /osm/ . So downloaded maps will be kept in the Neos flash, also after reboot. Note that the map files can take up large amounts of space, so you may want to store them on your sd card, e.g. in /media/card/osm or /media/mmcblk0p2/data/maps.<br />
<br />
If you find that TangoGPS does not remember configuration changes that you make to it, be sure to run it from the touchscreen, and not an SSH session. TangoGPS uses gconf to store its settings, and cannot access gconf when run via SSH.<br />
<br />
An alternative way to setup the configuration is through the command line. having /media/mmcblk0p2/data/maps as your data directory you could do the follwing:<br />
&lt;pre&gt;<br />
gconftool-2 -s /apps/tangogps/repos \<br />
&quot;[OSM|http://tile.openstreetmap.org/%d/%d/%d.png|/media/mmcblk0p2/data/maps/OSM|\<br />
0,Topo|maps-for-free|/media/mmcblk0p2/data/maps/maps4free|\<br />
0,Aerial|openaerial|/media/mmcblk0p2/data/maps/openaerial|\<br />
0,Opencyclemap|http://a.andy.sandbox.cloudmade.com/tiles/cycle/%d/%d/%d.png|/media/mmcblk0p2/data/maps/opencyclemap|\<br />
0,Google Sat (testing only)|http://khm1.google.com/kh?v=34&amp;hl=en&amp;x=%d&amp;s=&amp;y=%d&amp;z=%d|/media/mmcblk0p2/data/maps/googlesat|1]&quot; \<br />
--type list --list-type string<br />
&lt;/pre&gt;<br />
<br />
Once you have set the location to a non-volatile path, you can connect your Neo to the internet by USB or WiFi at home and start downloading the maps of your area. Tap the map screen and select &quot;map download&quot;. Now on-the-road tangoGPS will be able to show you maps in different zoom levels even though you are not connected to the internet.<br />
<br />
=== Downloading Maps via GPRS ===<br />
I think tangoGPS may have started working after I followed the instructions to get GPRS working with GSM multiplexing here: [[Manually_using_GPRS#Option_1:_With_GSM_multiplexing_and_with_a_GUI]]<br />
<br />
There are steps included in those instructions to improve GPS performance. The great thing is that once you get GPRS working, you can roam with TangoGPS running and have it download maps as needed over the GPRS connection!<br />
<br />
=== Updating pre-downloaded maps ===<br />
If you have many maps already downloaded, [[Media:updateMaps.txt|updateMaps.pl]] is a perl script to bring you up-to-date. It's made to work for OSM maps only, but can be adapted to work with any map dataset. See also: [[Yaouh!]].<br />
<br />
== Using tangoGPS for OpenStreetMap.org ==<br />
=== creating tracks ===<br />
tangoGPS works fine to create track for Openstreetmap. However, it records and stores a track in its native format, use [http://www.tangogps.org/downloads/convert2gpx.pl convert2gpx.pl] (see also: [http://psung.blogspot.com/2008/07/sharing-gps-tracks-from-tangogps-on.html tools])(you can also use [http://minucci.net/file/convert2gpx.py convert2gpx.py]) to convert the track to GPX (i.e to import into JOSM):<br />
<br />
perl convert2gpx.pl 20080903_111508.log &gt; 20080903_111508.gpx<br />
<br />
==== tangoGPS logging format ====<br />
<br />
&lt;lat&gt;,&lt;lon&gt;,&lt;elevation&gt;,&lt;speed&gt;,&lt;course&gt;,&lt;hdop&gt;,&lt;datetime&gt;<br />
<br />
=== using OpenStreetBugs ===<br />
[http://wiki.openstreetmap.org/wiki/TangoGPS#Using_together_with_OpenStreetBugs see OSM wiki]<br />
<br />
<br />
== Importing Tracks into tangoGPS ==<br />
<br />
tangoGPS does not support the import of tracks directly. However the following xslt style sheet can be used to convert gpx tracks - e.g from routing software such as maps.cloudmade.com - to tangogps log files, which can then be imported&lt;br&gt;<br />
<br />
&lt;pre&gt;<br />
&lt;nowiki&gt;<br />
&lt;?xml version=&quot;1.0&quot; encoding=&quot;ISO-8859-1&quot;?&gt;<br />
&lt;xsl:stylesheet version=&quot;1.0&quot; xmlns:xsl=&quot;http://www.w3.org/1999/XSL/Transform&quot; xmlns:g=&quot;http://www.topografix.com/GPX/1/1&quot;&gt;<br />
&lt;xsl:output method=&quot;text&quot; omit-xml-declaration=&quot;yes&quot;/&gt;<br />
&lt;xsl:template match=&quot;g:gpx&quot; &gt;<br />
&lt;xsl:for-each select=&quot;g:wpt&quot;&gt;<br />
&lt;xsl:value-of select=&quot;@lat&quot;/&gt;,&lt;xsl:value-of select=&quot;@lon&quot;/&gt;,11.8,1.1,346.0,1.4,2008-12-30T06:46:0&lt;xsl:if test=&quot;position()!=last()&quot;&gt;&lt;xsl:text&gt;1&lt;/xsl:text&gt;&lt;/xsl:if&gt;&lt;xsl:if test=&quot;position()=last()&quot;&gt;&lt;xsl:text&gt;2&lt;/xsl:text&gt;&lt;/xsl:if&gt;Z<br />
&lt;/xsl:for-each&gt;<br />
&lt;/xsl:template&gt;<br />
&lt;/xsl:stylesheet&gt;<br />
&lt;/nowiki&gt;<br />
&lt;/pre&gt;<br />
save this into a file called 'gpx2log.xslt', then run<br />
<br />
&lt;pre&gt;<br />
$ xsltproc gpx2log.xslt input_file.gpx &gt; output_file.log<br />
&lt;/pre&gt;<br />
<br />
move save output_file.log to the traces <br />
<br />
and use the 'Load...' button on the 'Track' tab of tangogps to overlay it on the map<br />
<br />
Note: this stylesheet was thrown together in a short time, and makes at least one shortcut - namely, the use of 'dummy' variables for various details, such as the altitude, date, etc. feel free to improve<br />
<br />
You may help yourself by using [http://relet.net/frog/archives/68 this tool] to import GPX trackpoints as a series of POIs directly into the sqlite database which tangoGPS uses to store POIs.<br />
<br />
== Using the TangoGPS logs == <br />
<br />
You can convert the logfiles from TangoGPS to other formats using gpsbabel and this style-file: <br />
<br />
&lt;pre&gt;<br />
DESCRIPTION TangoGPS 0.92<br />
EXTENSION log<br />
DATATYPE TRACK<br />
<br />
FIELD_DELIMITER COMMA<br />
RECORD_DELIMITER NEWLINE<br />
<br />
IFIELD LAT_DECIMAL,&quot;&quot;,&quot;%f&quot;<br />
IFIELD LON_DECIMAL,&quot;&quot;,&quot;%f&quot;<br />
IFIELD ALT_METERS,&quot;&quot;,&quot;%f&quot;<br />
IFIELD PATH_SPEED,&quot;&quot;,&quot;%f&quot;<br />
IFIELD PATH_COURSE,&quot;&quot;,&quot;%f&quot;<br />
IFIELD GPS_HDOP,&quot;&quot;,&quot;%f&quot;<br />
IFIELD ISO_TIME,&quot;&quot;,&quot;%s&quot; <br />
&lt;/pre&gt;<br />
<br />
Save this as '''tangogps.style''' and you can use gpsbabel to for instance convert to google-earth files like this: <br />
<br />
gpsbabel -i xcsv,style=tangogps.style -o kml -f file.log -F file.kml<br />
<br />
== Add POI from address ==<br />
<br />
You can use [[gtkaddpoi]] for searching the destination address and add it as a POI.<br />
<br />
== Add POI from GeoRSS feed ==<br />
<br />
If you would like to import GeoRSS feeds from Google maps or elsewhere as points of interest (POI), read this [http://bonedaddy.net/pabs3/log/2009/05/28/georss-tangogps/ blog post]. Hopefully TangoGPS upstream will include the script soon, but until then and if you aren't using Debian, download this [http://bugs.debian.org/cgi-bin/bugreport.cgi?msg=5;filename=georss-to-tangogps-poi.py;att=1;bug=530718 script] from the Debian bug tracker.<br />
<br />
== Using Google Maps with tangoGPS ==<br />
<br />
Go to Config and create a new repository.<br />
<br />
Set the url for '''street-maps''' to:<br />
&lt;pre&gt;http://mt1.google.com/mt?&amp;x=%d&amp;y=%d&amp;z=%d&lt;/pre&gt;<br />
for '''satellite-maps''' to:<br />
&lt;pre&gt;http://khm.google.com/kh?&amp;x=%d&amp;y=%d&amp;zoom=%d&lt;/pre&gt;<br />
for '''topographic-maps''':<br />
&lt;pre&gt;http://mt.google.com/mt?v=app.81&amp;x=%d&amp;y=%d&amp;zoom=%d&lt;/pre&gt;<br />
<br />
Check the &quot;Inverted Zoom&quot; box. Press save Repository Configuration and you're ready to go.<br />
<br />
<br />
'''Since TangoGPS 0.9.5''' the &quot;Inverted Zoom&quot; box is no longer available because Google changed the addressing scheme; instead, select &quot;xyz instead of zxy&quot; and use the following URLs:<br />
&lt;pre&gt;<br />
Maps: <br />
http://mt3.google.com/mt/v=w2.89&amp;hl=en&amp;x=%d&amp;y=%d&amp;z=%d&amp;s=Galileo <br />
<br />
Sat: <br />
http://khm3.google.com/kh/v=36&amp;hl=en&amp;x=%d&amp;y=%d&amp;z=%d&amp;s=Galileo<br />
&lt;/pre&gt;<br />
<br />
'''Generalization:''' The above 'Maps' URL isn't the current one anymore, also. Google changes the URL layout sometimes. To find out the current scheme open maps.google.com and view the page source. Search for http:// until you find sth similar to the above URL. This way I found<br />
&lt;pre&gt;<br />
http://mt1.google.com/mt/v=w2.92&amp;amp;hl=en&amp;amp;x=3&amp;amp;y=5&amp;amp;z=4&amp;amp;s=Galile<br />
&lt;/pre&gt;<br />
<br />
Now you could tweak your configuration unsing the above link (delete the 'amp;' tokens and replace every number with '%d'), for example with<br />
&lt;pre&gt;<br />
gconftool-2 -s /apps/tangogps/repos \<br />
&quot;[OSM|http://tile.openstreetmap.org/%d/%d/%d.png|/media/mmcblk0p2/data/maps/OSM|\<br />
0,Topo|maps-for-free|/media/mmcblk0p2/data/maps/maps4free|\<br />
0,Aerial|openaerial|/media/mmcblk0p2/data/maps/openaerial|\<br />
0,Opencyclemap|http://a.andy.sandbox.cloudmade.com/tiles/cycle/%d/%d/%d.png|/media/mmcblk0p2/data/maps/opencyclemap|\<br />
0,Google Sat (testing only)|http://khm1.google.com/kh?v=34&amp;hl=en&amp;x=%d&amp;s=&amp;y=%d&amp;z=%d|/media/mmcblk0p2/data/maps/googlesat|\<br />
0,Google Maps (testing only)|http://mt1.google.com/mt/v=w2.92&amp;hl=en&amp;x=%d&amp;y=%d&amp;z=%d&amp;s=Galile|/media/mmcblk0p2/data/maps/googlemaps|1]&quot; \<br />
--type list --list-type string<br />
&lt;/pre&gt;<br />
<br />
&lt;onlyinclude&gt;<br />
{{ApplicationBox|<br />
Name=[[TangoGPS]]|<br />
Description= TangoGPS is a map application which can utilize Neo's built-in GPS to show your current location. It automatically downloads maps from http://openstreetmap.com and you can download map tiles for offline use too.|<br />
Screenshot=TangoGPS1.jpg|<br />
Homepage=http://www.tangogps.org|<br />
TestedOn=Om 2008.8|<br />
PackageName=tangogps<br />
}}<br />
&lt;/onlyinclude&gt;<br />
<br />
[[Category:GPS Applications]]</div>Myfanwyhttp://wiki.openmoko.org/wiki/TangoGPSTangoGPS2009-06-28T06:58:52Z<p>Myfanwy: /* Importing Tracks into tangoGPS */</p>
<hr />
<div>{{Languages|tangoGPS}}<br />
{{Application|tangoGPS}}<br />
<br />
__TOC__<br />
<br />
tangoGPS is a map application which can utilize Neo's built-in GPS to show your current location.<br />
<br />
[[Image:TangoGPS1.jpg]]<br />
<br />
Website: http://www.tangogps.org<br />
<br />
<br />
== Running tangoGPS ==<br />
=== [[Om 2008.8]] ===<br />
<br />
From the freerunner connected to the internet:<br />
&lt;pre&gt;<br />
opkg update<br />
opkg install gpsd<br />
&lt;/pre&gt;<br />
{{note|I experienced hangups if gpsd was not installed.}}<br />
&lt;pre&gt;<br />
opkg install http://www.tangogps.org/downloads/tangogps_0.9.5-r0_armv4t.opk<br />
&lt;/pre&gt;<br />
If opkg complains about not being able to acquire a lock, try:<br />
&lt;pre&gt;pkill packagekit&lt;/pre&gt;<br />
To get gpsd working on the FreeRunner you have to change the configuration according to [[Gpsd#GPS_on_GTA02]].<br />
Then start gpsd by:<br />
&lt;pre&gt;<br />
/etc/init.d/gpsd start<br />
&lt;/pre&gt;<br />
If you get an error about no GPS device in /etc/default/gpsd execute:<br />
&lt;pre&gt;<br />
echo &quot;GPS_DEV=\&quot;/dev/ttySAC1\&quot;&quot; &gt; /etc/default/gpsd<br />
&lt;/pre&gt;<br />
Now you must power up the GPS-chip by opening the &quot;Settings&quot; application and setting the GPS entry to &quot;on&quot;. Now you can run tangoGPS and wait until it get's a GPS fix. This can take up to a few minutes.<br />
<br />
=== [[Debian]] ===<br />
<br />
The latest version is available in [[Debian]].<br />
<br />
It depends on gpsd which conflicts with frameworkd in fso-frameworkd, but there is a package available that provides<br />
the gpsd interface to clients while using the services of the FSO frameworkd daemon, fso-gpsd. The install.sh script for the Debian distribution on the OpenMoko already installs it. To add tangogps run<br />
<br />
# apt-get install tangogps<br />
<br />
The gps device will be started automatically upon the invocation of tangogps or another gps application, e.g. like the one in [[Zhone]]. For the records, one can manually turn on the gps device using<br />
<br />
# echo 1 &gt;/sys/devices/platform/s3c2440-i2c/i2c-adapter/i2c-0/0-0073/neo1973-pm-gps.0/pwron<br />
<br />
The tangoGPS applications may appear as &quot;GPS &amp; Map&quot; on various desktops.<br />
<br />
'''Issues:'''<br />
* Both gpsd and the framework publish GPS data through dbus, though with different interfaces. This suggests a number of possible solutions.<br />
** gpsd or the framework could implement the other's interface (along with their own).<br />
** a translator could read one interface and emulate the other. This is what fso-gpsd does.<br />
** the framework could have an option to read data from gpsd.<br />
** ogpsd/gypsy could be extended to be backwards compatible with the majority of gps applications.<br />
<br />
=== FSO Milestone 3 ([[OpenmokoFramework]]) ===<br />
<br />
There are two various GPS interfaces -- (1) one provided with default gpsd and (2) the other provided by ogpsd (part of the frameworkd). tangoGPS requires the ad 1 and it obtains information from gps from the dbus interface provided by gpsd.<br />
<br />
On FSO milestone 3, there is tangoGPS pre-installed as well as both gpsd and ogpsd (see &lt;code&gt;/etc/frameworkd.conf&lt;/code&gt;, section &lt;code&gt;ogpsd&lt;/code&gt;). As mentioned above, there also exists a fso-gpsd package, that converts from ad 2 to ad 1 (unfortunately fso-gpsd is not in default image and must be installed with &lt;code&gt;opkg install fso-gpsd&lt;/code&gt;).<br />
<br />
You cannot have both &quot;providers&quot; (ad 1 &amp; ad 2) running, but you can have ad 2 (recommended for FSO) and &quot;convertor&quot; (fso-gpsd) providing the ad 1. To get usable tangoGPS on FreeRunner, one has to:<br />
<br />
# check that &lt;code&gt;/etc/frameworkd.conf&lt;/code&gt;, section &lt;code&gt;ogpsd&lt;/code&gt; reads GPS data from the right device (&lt;code&gt;/dev/ttySAC1&lt;/code&gt;)<br />
# if changes were made to configuration, one should restart the frameworkd -- &lt;code&gt;/etc/init.d/frameworkd stop &amp;&amp; /etc/init.d/frameworkd start&lt;/code&gt;<br />
# check that gpsd is not running -- &lt;code&gt;/etc/init.d/gpsd stop&lt;/code&gt;<br />
# check that fso-gpsd is installed and running -- &lt;code&gt;opkg install fso-gpsd; fso-gpsd&lt;/code&gt;<br />
# check that gps chip is online (&lt;code&gt;echo 1 &gt; /sys/devices/platform/s3c2440-i2c/i2c-adapter/i2c-0/0-0073/neo1973-pm-gps.0/pwron&lt;/code&gt;)<br />
# finally start up the tangoGPS and locate the gps signal; it should be up in a few minutes.<br />
<br />
Note 1: handy application for testing the gps (and gps signal strength) is &lt;code&gt;openmoko-agpsui&lt;/code&gt;, see general gps info at [[Gps]]<br />
<br />
Note 2: You can automate the process -- (1) remove the startup script for gpsd (&lt;code&gt;update-rc.d -f gpsd remove&lt;/code&gt;) and (2) create a simple startup scipt for fso-gpsd (you can use current script for gpsd as a skeleton)<br />
<br />
<br />
== Downloading Maps ==<br />
=== pre-load for offline use ===<br />
<br />
tangoGPS can bunch-download the map images so you don't need an internet connection while walking around. By default tangoGPS stores downloaded maps to /tmp/. This folder is lost every time you reboot the device. But you can use the &quot;Config&quot; tab within tangoGPS to change the &quot;Cache Dir&quot; location to , for example, /osm/ . So downloaded maps will be kept in the Neos flash, also after reboot. Note that the map files can take up large amounts of space, so you may want to store them on your sd card, e.g. in /media/card/osm or /media/mmcblk0p2/data/maps.<br />
<br />
If you find that TangoGPS does not remember configuration changes that you make to it, be sure to run it from the touchscreen, and not an SSH session. TangoGPS uses gconf to store its settings, and cannot access gconf when run via SSH.<br />
<br />
An alternative way to setup the configuration is through the command line. having /media/mmcblk0p2/data/maps as your data directory you could do the follwing:<br />
&lt;pre&gt;<br />
gconftool-2 -s /apps/tangogps/repos \<br />
&quot;[OSM|http://tile.openstreetmap.org/%d/%d/%d.png|/media/mmcblk0p2/data/maps/OSM|\<br />
0,Topo|maps-for-free|/media/mmcblk0p2/data/maps/maps4free|\<br />
0,Aerial|openaerial|/media/mmcblk0p2/data/maps/openaerial|\<br />
0,Opencyclemap|http://a.andy.sandbox.cloudmade.com/tiles/cycle/%d/%d/%d.png|/media/mmcblk0p2/data/maps/opencyclemap|\<br />
0,Google Sat (testing only)|http://khm1.google.com/kh?v=34&amp;hl=en&amp;x=%d&amp;s=&amp;y=%d&amp;z=%d|/media/mmcblk0p2/data/maps/googlesat|1]&quot; \<br />
--type list --list-type string<br />
&lt;/pre&gt;<br />
<br />
Once you have set the location to a non-volatile path, you can connect your Neo to the internet by USB or WiFi at home and start downloading the maps of your area. Tap the map screen and select &quot;map download&quot;. Now on-the-road tangoGPS will be able to show you maps in different zoom levels even though you are not connected to the internet.<br />
<br />
=== Downloading Maps via GPRS ===<br />
I think tangoGPS may have started working after I followed the instructions to get GPRS working with GSM multiplexing here: [[Manually_using_GPRS#Option_1:_With_GSM_multiplexing_and_with_a_GUI]]<br />
<br />
There are steps included in those instructions to improve GPS performance. The great thing is that once you get GPRS working, you can roam with TangoGPS running and have it download maps as needed over the GPRS connection!<br />
<br />
=== Updating pre-downloaded maps ===<br />
If you have many maps already downloaded, [[Media:updateMaps.txt|updateMaps.pl]] is a perl script to bring you up-to-date. It's made to work for OSM maps only, but can be adapted to work with any map dataset. See also: [[Yaouh!]].<br />
<br />
== Using tangoGPS for OpenStreetMap.org ==<br />
=== creating tracks ===<br />
tangoGPS works fine to create track for Openstreetmap. However, it records and stores a track in its native format, use [http://www.tangogps.org/downloads/convert2gpx.pl convert2gpx.pl] (see also: [http://psung.blogspot.com/2008/07/sharing-gps-tracks-from-tangogps-on.html tools])(you can also use [http://minucci.net/file/convert2gpx.py convert2gpx.py]) to convert the track to GPX (i.e to import into JOSM):<br />
<br />
perl convert2gpx.pl 20080903_111508.log &gt; 20080903_111508.gpx<br />
<br />
==== tangoGPS logging format ====<br />
<br />
&lt;lat&gt;,&lt;lon&gt;,&lt;elevation&gt;,&lt;speed&gt;,&lt;course&gt;,&lt;hdop&gt;,&lt;datetime&gt;<br />
<br />
=== using OpenStreetBugs ===<br />
[http://wiki.openstreetmap.org/wiki/TangoGPS#Using_together_with_OpenStreetBugs see OSM wiki]<br />
<br />
<br />
== Importing Tracks into tangoGPS ==<br />
<br />
tangoGPS does not support the import of tracks directly. However the following xslt style sheet can be used to convert gpx tracks - e.g from routing software such as maps.cloudmade.com - to tangogps log files, which can then be imported&lt;br&gt;<br />
<br />
&lt;nowiki&gt;<br />
<br />
&lt;?xml version=&quot;1.0&quot; encoding=&quot;ISO-8859-1&quot;?&gt;<br />
&lt;xsl:stylesheet version=&quot;1.0&quot; xmlns:xsl=&quot;http://www.w3.org/1999/XSL/Transform&quot; xmlns:g=&quot;http://www.topografix.com/GPX/1/1&quot;&gt;<br />
&lt;xsl:output method=&quot;text&quot; omit-xml-declaration=&quot;yes&quot;/&gt;<br />
&lt;xsl:template match=&quot;g:gpx&quot; &gt;<br />
&lt;xsl:for-each select=&quot;g:wpt&quot;&gt;<br />
&lt;xsl:value-of select=&quot;@lat&quot;/&gt;,&lt;xsl:value-of select=&quot;@lon&quot;/&gt;,11.8,1.1,346.0,1.4,2008-12-30T06:46:0&lt;xsl:if test=&quot;position()!=last()&quot;&gt;&lt;xsl:text&gt;1&lt;/xsl:text&gt;&lt;/xsl:if&gt;&lt;xsl:if test=&quot;position()=last()&quot;&gt;&lt;xsl:text&gt;2&lt;/xsl:text&gt;&lt;/xsl:if&gt;Z<br />
&lt;/xsl:for-each&gt;<br />
&lt;/xsl:template&gt;<br />
&lt;/xsl:stylesheet&gt;<br />
&lt;/nowiki&gt;<br />
&lt;br&gt;<br />
&lt;br&gt;<br />
<br />
save this into a file called 'gpx2log.xslt', then run<br />
<br />
&lt;pre&gt;<br />
$ xsltproc gpx2log.xslt input_file.gpx &gt; output_file.log<br />
&lt;/pre&gt;<br />
<br />
move save output_file.log to the traces <br />
<br />
and use the 'Load...' button on the 'Track' tab of tangogps to overlay it on the map<br />
<br />
Note: this stylesheet was thrown together in a short time, and makes at least one shortcut - namely, the use of 'dummy' variables for various details, such as the altitude, date, etc. feel free to improve<br />
<br />
You may help yourself by using [http://relet.net/frog/archives/68 this tool] to import GPX trackpoints as a series of POIs directly into the sqlite database which tangoGPS uses to store POIs.<br />
<br />
== Using the TangoGPS logs == <br />
<br />
You can convert the logfiles from TangoGPS to other formats using gpsbabel and this style-file: <br />
<br />
&lt;pre&gt;<br />
DESCRIPTION TangoGPS 0.92<br />
EXTENSION log<br />
DATATYPE TRACK<br />
<br />
FIELD_DELIMITER COMMA<br />
RECORD_DELIMITER NEWLINE<br />
<br />
IFIELD LAT_DECIMAL,&quot;&quot;,&quot;%f&quot;<br />
IFIELD LON_DECIMAL,&quot;&quot;,&quot;%f&quot;<br />
IFIELD ALT_METERS,&quot;&quot;,&quot;%f&quot;<br />
IFIELD PATH_SPEED,&quot;&quot;,&quot;%f&quot;<br />
IFIELD PATH_COURSE,&quot;&quot;,&quot;%f&quot;<br />
IFIELD GPS_HDOP,&quot;&quot;,&quot;%f&quot;<br />
IFIELD ISO_TIME,&quot;&quot;,&quot;%s&quot; <br />
&lt;/pre&gt;<br />
<br />
Save this as '''tangogps.style''' and you can use gpsbabel to for instance convert to google-earth files like this: <br />
<br />
gpsbabel -i xcsv,style=tangogps.style -o kml -f file.log -F file.kml<br />
<br />
== Add POI from address ==<br />
<br />
You can use [[gtkaddpoi]] for searching the destination address and add it as a POI.<br />
<br />
== Add POI from GeoRSS feed ==<br />
<br />
If you would like to import GeoRSS feeds from Google maps or elsewhere as points of interest (POI), read this [http://bonedaddy.net/pabs3/log/2009/05/28/georss-tangogps/ blog post]. Hopefully TangoGPS upstream will include the script soon, but until then and if you aren't using Debian, download this [http://bugs.debian.org/cgi-bin/bugreport.cgi?msg=5;filename=georss-to-tangogps-poi.py;att=1;bug=530718 script] from the Debian bug tracker.<br />
<br />
== Using Google Maps with tangoGPS ==<br />
<br />
Go to Config and create a new repository.<br />
<br />
Set the url for '''street-maps''' to:<br />
&lt;pre&gt;http://mt1.google.com/mt?&amp;x=%d&amp;y=%d&amp;z=%d&lt;/pre&gt;<br />
for '''satellite-maps''' to:<br />
&lt;pre&gt;http://khm.google.com/kh?&amp;x=%d&amp;y=%d&amp;zoom=%d&lt;/pre&gt;<br />
for '''topographic-maps''':<br />
&lt;pre&gt;http://mt.google.com/mt?v=app.81&amp;x=%d&amp;y=%d&amp;zoom=%d&lt;/pre&gt;<br />
<br />
Check the &quot;Inverted Zoom&quot; box. Press save Repository Configuration and you're ready to go.<br />
<br />
<br />
'''Since TangoGPS 0.9.5''' the &quot;Inverted Zoom&quot; box is no longer available because Google changed the addressing scheme; instead, select &quot;xyz instead of zxy&quot; and use the following URLs:<br />
&lt;pre&gt;<br />
Maps: <br />
http://mt3.google.com/mt/v=w2.89&amp;hl=en&amp;x=%d&amp;y=%d&amp;z=%d&amp;s=Galileo <br />
<br />
Sat: <br />
http://khm3.google.com/kh/v=36&amp;hl=en&amp;x=%d&amp;y=%d&amp;z=%d&amp;s=Galileo<br />
&lt;/pre&gt;<br />
<br />
'''Generalization:''' The above 'Maps' URL isn't the current one anymore, also. Google changes the URL layout sometimes. To find out the current scheme open maps.google.com and view the page source. Search for http:// until you find sth similar to the above URL. This way I found<br />
&lt;pre&gt;<br />
http://mt1.google.com/mt/v=w2.92&amp;amp;hl=en&amp;amp;x=3&amp;amp;y=5&amp;amp;z=4&amp;amp;s=Galile<br />
&lt;/pre&gt;<br />
<br />
Now you could tweak your configuration unsing the above link (delete the 'amp;' tokens and replace every number with '%d'), for example with<br />
&lt;pre&gt;<br />
gconftool-2 -s /apps/tangogps/repos \<br />
&quot;[OSM|http://tile.openstreetmap.org/%d/%d/%d.png|/media/mmcblk0p2/data/maps/OSM|\<br />
0,Topo|maps-for-free|/media/mmcblk0p2/data/maps/maps4free|\<br />
0,Aerial|openaerial|/media/mmcblk0p2/data/maps/openaerial|\<br />
0,Opencyclemap|http://a.andy.sandbox.cloudmade.com/tiles/cycle/%d/%d/%d.png|/media/mmcblk0p2/data/maps/opencyclemap|\<br />
0,Google Sat (testing only)|http://khm1.google.com/kh?v=34&amp;hl=en&amp;x=%d&amp;s=&amp;y=%d&amp;z=%d|/media/mmcblk0p2/data/maps/googlesat|\<br />
0,Google Maps (testing only)|http://mt1.google.com/mt/v=w2.92&amp;hl=en&amp;x=%d&amp;y=%d&amp;z=%d&amp;s=Galile|/media/mmcblk0p2/data/maps/googlemaps|1]&quot; \<br />
--type list --list-type string<br />
&lt;/pre&gt;<br />
<br />
&lt;onlyinclude&gt;<br />
{{ApplicationBox|<br />
Name=[[TangoGPS]]|<br />
Description= TangoGPS is a map application which can utilize Neo's built-in GPS to show your current location. It automatically downloads maps from http://openstreetmap.com and you can download map tiles for offline use too.|<br />
Screenshot=TangoGPS1.jpg|<br />
Homepage=http://www.tangogps.org|<br />
TestedOn=Om 2008.8|<br />
PackageName=tangogps<br />
}}<br />
&lt;/onlyinclude&gt;<br />
<br />
[[Category:GPS Applications]]</div>Myfanwyhttp://wiki.openmoko.org/wiki/TangoGPSTangoGPS2009-06-28T06:53:28Z<p>Myfanwy: /* Importing Tracks into tangoGPS */</p>
<hr />
<div>{{Languages|tangoGPS}}<br />
{{Application|tangoGPS}}<br />
<br />
__TOC__<br />
<br />
tangoGPS is a map application which can utilize Neo's built-in GPS to show your current location.<br />
<br />
[[Image:TangoGPS1.jpg]]<br />
<br />
Website: http://www.tangogps.org<br />
<br />
<br />
== Running tangoGPS ==<br />
=== [[Om 2008.8]] ===<br />
<br />
From the freerunner connected to the internet:<br />
&lt;pre&gt;<br />
opkg update<br />
opkg install gpsd<br />
&lt;/pre&gt;<br />
{{note|I experienced hangups if gpsd was not installed.}}<br />
&lt;pre&gt;<br />
opkg install http://www.tangogps.org/downloads/tangogps_0.9.5-r0_armv4t.opk<br />
&lt;/pre&gt;<br />
If opkg complains about not being able to acquire a lock, try:<br />
&lt;pre&gt;pkill packagekit&lt;/pre&gt;<br />
To get gpsd working on the FreeRunner you have to change the configuration according to [[Gpsd#GPS_on_GTA02]].<br />
Then start gpsd by:<br />
&lt;pre&gt;<br />
/etc/init.d/gpsd start<br />
&lt;/pre&gt;<br />
If you get an error about no GPS device in /etc/default/gpsd execute:<br />
&lt;pre&gt;<br />
echo &quot;GPS_DEV=\&quot;/dev/ttySAC1\&quot;&quot; &gt; /etc/default/gpsd<br />
&lt;/pre&gt;<br />
Now you must power up the GPS-chip by opening the &quot;Settings&quot; application and setting the GPS entry to &quot;on&quot;. Now you can run tangoGPS and wait until it get's a GPS fix. This can take up to a few minutes.<br />
<br />
=== [[Debian]] ===<br />
<br />
The latest version is available in [[Debian]].<br />
<br />
It depends on gpsd which conflicts with frameworkd in fso-frameworkd, but there is a package available that provides<br />
the gpsd interface to clients while using the services of the FSO frameworkd daemon, fso-gpsd. The install.sh script for the Debian distribution on the OpenMoko already installs it. To add tangogps run<br />
<br />
# apt-get install tangogps<br />
<br />
The gps device will be started automatically upon the invocation of tangogps or another gps application, e.g. like the one in [[Zhone]]. For the records, one can manually turn on the gps device using<br />
<br />
# echo 1 &gt;/sys/devices/platform/s3c2440-i2c/i2c-adapter/i2c-0/0-0073/neo1973-pm-gps.0/pwron<br />
<br />
The tangoGPS applications may appear as &quot;GPS &amp; Map&quot; on various desktops.<br />
<br />
'''Issues:'''<br />
* Both gpsd and the framework publish GPS data through dbus, though with different interfaces. This suggests a number of possible solutions.<br />
** gpsd or the framework could implement the other's interface (along with their own).<br />
** a translator could read one interface and emulate the other. This is what fso-gpsd does.<br />
** the framework could have an option to read data from gpsd.<br />
** ogpsd/gypsy could be extended to be backwards compatible with the majority of gps applications.<br />
<br />
=== FSO Milestone 3 ([[OpenmokoFramework]]) ===<br />
<br />
There are two various GPS interfaces -- (1) one provided with default gpsd and (2) the other provided by ogpsd (part of the frameworkd). tangoGPS requires the ad 1 and it obtains information from gps from the dbus interface provided by gpsd.<br />
<br />
On FSO milestone 3, there is tangoGPS pre-installed as well as both gpsd and ogpsd (see &lt;code&gt;/etc/frameworkd.conf&lt;/code&gt;, section &lt;code&gt;ogpsd&lt;/code&gt;). As mentioned above, there also exists a fso-gpsd package, that converts from ad 2 to ad 1 (unfortunately fso-gpsd is not in default image and must be installed with &lt;code&gt;opkg install fso-gpsd&lt;/code&gt;).<br />
<br />
You cannot have both &quot;providers&quot; (ad 1 &amp; ad 2) running, but you can have ad 2 (recommended for FSO) and &quot;convertor&quot; (fso-gpsd) providing the ad 1. To get usable tangoGPS on FreeRunner, one has to:<br />
<br />
# check that &lt;code&gt;/etc/frameworkd.conf&lt;/code&gt;, section &lt;code&gt;ogpsd&lt;/code&gt; reads GPS data from the right device (&lt;code&gt;/dev/ttySAC1&lt;/code&gt;)<br />
# if changes were made to configuration, one should restart the frameworkd -- &lt;code&gt;/etc/init.d/frameworkd stop &amp;&amp; /etc/init.d/frameworkd start&lt;/code&gt;<br />
# check that gpsd is not running -- &lt;code&gt;/etc/init.d/gpsd stop&lt;/code&gt;<br />
# check that fso-gpsd is installed and running -- &lt;code&gt;opkg install fso-gpsd; fso-gpsd&lt;/code&gt;<br />
# check that gps chip is online (&lt;code&gt;echo 1 &gt; /sys/devices/platform/s3c2440-i2c/i2c-adapter/i2c-0/0-0073/neo1973-pm-gps.0/pwron&lt;/code&gt;)<br />
# finally start up the tangoGPS and locate the gps signal; it should be up in a few minutes.<br />
<br />
Note 1: handy application for testing the gps (and gps signal strength) is &lt;code&gt;openmoko-agpsui&lt;/code&gt;, see general gps info at [[Gps]]<br />
<br />
Note 2: You can automate the process -- (1) remove the startup script for gpsd (&lt;code&gt;update-rc.d -f gpsd remove&lt;/code&gt;) and (2) create a simple startup scipt for fso-gpsd (you can use current script for gpsd as a skeleton)<br />
<br />
<br />
== Downloading Maps ==<br />
=== pre-load for offline use ===<br />
<br />
tangoGPS can bunch-download the map images so you don't need an internet connection while walking around. By default tangoGPS stores downloaded maps to /tmp/. This folder is lost every time you reboot the device. But you can use the &quot;Config&quot; tab within tangoGPS to change the &quot;Cache Dir&quot; location to , for example, /osm/ . So downloaded maps will be kept in the Neos flash, also after reboot. Note that the map files can take up large amounts of space, so you may want to store them on your sd card, e.g. in /media/card/osm or /media/mmcblk0p2/data/maps.<br />
<br />
If you find that TangoGPS does not remember configuration changes that you make to it, be sure to run it from the touchscreen, and not an SSH session. TangoGPS uses gconf to store its settings, and cannot access gconf when run via SSH.<br />
<br />
An alternative way to setup the configuration is through the command line. having /media/mmcblk0p2/data/maps as your data directory you could do the follwing:<br />
&lt;pre&gt;<br />
gconftool-2 -s /apps/tangogps/repos \<br />
&quot;[OSM|http://tile.openstreetmap.org/%d/%d/%d.png|/media/mmcblk0p2/data/maps/OSM|\<br />
0,Topo|maps-for-free|/media/mmcblk0p2/data/maps/maps4free|\<br />
0,Aerial|openaerial|/media/mmcblk0p2/data/maps/openaerial|\<br />
0,Opencyclemap|http://a.andy.sandbox.cloudmade.com/tiles/cycle/%d/%d/%d.png|/media/mmcblk0p2/data/maps/opencyclemap|\<br />
0,Google Sat (testing only)|http://khm1.google.com/kh?v=34&amp;hl=en&amp;x=%d&amp;s=&amp;y=%d&amp;z=%d|/media/mmcblk0p2/data/maps/googlesat|1]&quot; \<br />
--type list --list-type string<br />
&lt;/pre&gt;<br />
<br />
Once you have set the location to a non-volatile path, you can connect your Neo to the internet by USB or WiFi at home and start downloading the maps of your area. Tap the map screen and select &quot;map download&quot;. Now on-the-road tangoGPS will be able to show you maps in different zoom levels even though you are not connected to the internet.<br />
<br />
=== Downloading Maps via GPRS ===<br />
I think tangoGPS may have started working after I followed the instructions to get GPRS working with GSM multiplexing here: [[Manually_using_GPRS#Option_1:_With_GSM_multiplexing_and_with_a_GUI]]<br />
<br />
There are steps included in those instructions to improve GPS performance. The great thing is that once you get GPRS working, you can roam with TangoGPS running and have it download maps as needed over the GPRS connection!<br />
<br />
=== Updating pre-downloaded maps ===<br />
If you have many maps already downloaded, [[Media:updateMaps.txt|updateMaps.pl]] is a perl script to bring you up-to-date. It's made to work for OSM maps only, but can be adapted to work with any map dataset. See also: [[Yaouh!]].<br />
<br />
== Using tangoGPS for OpenStreetMap.org ==<br />
=== creating tracks ===<br />
tangoGPS works fine to create track for Openstreetmap. However, it records and stores a track in its native format, use [http://www.tangogps.org/downloads/convert2gpx.pl convert2gpx.pl] (see also: [http://psung.blogspot.com/2008/07/sharing-gps-tracks-from-tangogps-on.html tools])(you can also use [http://minucci.net/file/convert2gpx.py convert2gpx.py]) to convert the track to GPX (i.e to import into JOSM):<br />
<br />
perl convert2gpx.pl 20080903_111508.log &gt; 20080903_111508.gpx<br />
<br />
==== tangoGPS logging format ====<br />
<br />
&lt;lat&gt;,&lt;lon&gt;,&lt;elevation&gt;,&lt;speed&gt;,&lt;course&gt;,&lt;hdop&gt;,&lt;datetime&gt;<br />
<br />
=== using OpenStreetBugs ===<br />
[http://wiki.openstreetmap.org/wiki/TangoGPS#Using_together_with_OpenStreetBugs see OSM wiki]<br />
<br />
<br />
== Importing Tracks into tangoGPS ==<br />
<br />
tangoGPS does not support the import of tracks directly. However the following xslt style sheet can be used to convert gpx tracks - e.g from routing software such as maps.cloudmade.com - to tangogps log files, which can then be imported&lt;br&gt;<br />
<br />
&lt;nowiki&gt;<br />
<br />
&lt;?xml version=&quot;1.0&quot; encoding=&quot;ISO-8859-1&quot;?&gt;<br />
&lt;xsl:stylesheet version=&quot;1.0&quot; xmlns:xsl=&quot;http://www.w3.org/1999/XSL/Transform&quot; xmlns:g=&quot;http://www.topografix.com/GPX/1/1&quot;&gt;<br />
&lt;xsl:output method=&quot;text&quot; omit-xml-declaration=&quot;yes&quot;/&gt;<br />
&lt;xsl:template match=&quot;g:gpx&quot; &gt;<br />
&lt;xsl:for-each select=&quot;g:wpt&quot;&gt;<br />
&lt;xsl:value-of select=&quot;@lat&quot;/&gt;,&lt;xsl:value-of select=&quot;@lon&quot;/&gt;,11.8,1.1,346.0,1.4,2008-12-30T06:46:0&lt;xsl:if test=&quot;position()!=last()&quot;&gt;&lt;xsl:text&gt;1&lt;/xsl:text&gt;&lt;/xsl:if&gt;&lt;xsl:if test=&quot;position()=last()&quot;&gt;&lt;xsl:text&gt;2&lt;/xsl:text&gt;&lt;/xsl:if&gt;Z<br />
&lt;/xsl:for-each&gt;<br />
&lt;/xsl:template&gt;<br />
&lt;/xsl:stylesheet&gt;<br />
&lt;/nowiki&gt;<br />
&lt;br&gt;<br />
&lt;br&gt;<br />
<br />
save this into a file called 'gpx2log.xslt', then run<br />
<br />
$ xsltproc gpx2log.xslt input_file.gpx &gt; output_file.log<br />
<br />
move save output_file.log to the traces <br />
<br />
and use the 'Load...' button on the 'Track' tab of tangogps to overlay it on the map<br />
<br />
Note: this stylesheet was thrown together in a short time, and makes at least one shortcut - namely, the use of 'dummy' variables for various details, such as the altitude, date, etc. feel free to improve<br />
<br />
You may help yourself by using [http://relet.net/frog/archives/68 this tool] to import GPX trackpoints as a series of POIs directly into the sqlite database which tangoGPS uses to store POIs.<br />
<br />
== Using the TangoGPS logs == <br />
<br />
You can convert the logfiles from TangoGPS to other formats using gpsbabel and this style-file: <br />
<br />
&lt;pre&gt;<br />
DESCRIPTION TangoGPS 0.92<br />
EXTENSION log<br />
DATATYPE TRACK<br />
<br />
FIELD_DELIMITER COMMA<br />
RECORD_DELIMITER NEWLINE<br />
<br />
IFIELD LAT_DECIMAL,&quot;&quot;,&quot;%f&quot;<br />
IFIELD LON_DECIMAL,&quot;&quot;,&quot;%f&quot;<br />
IFIELD ALT_METERS,&quot;&quot;,&quot;%f&quot;<br />
IFIELD PATH_SPEED,&quot;&quot;,&quot;%f&quot;<br />
IFIELD PATH_COURSE,&quot;&quot;,&quot;%f&quot;<br />
IFIELD GPS_HDOP,&quot;&quot;,&quot;%f&quot;<br />
IFIELD ISO_TIME,&quot;&quot;,&quot;%s&quot; <br />
&lt;/pre&gt;<br />
<br />
Save this as '''tangogps.style''' and you can use gpsbabel to for instance convert to google-earth files like this: <br />
<br />
gpsbabel -i xcsv,style=tangogps.style -o kml -f file.log -F file.kml<br />
<br />
== Add POI from address ==<br />
<br />
You can use [[gtkaddpoi]] for searching the destination address and add it as a POI.<br />
<br />
== Add POI from GeoRSS feed ==<br />
<br />
If you would like to import GeoRSS feeds from Google maps or elsewhere as points of interest (POI), read this [http://bonedaddy.net/pabs3/log/2009/05/28/georss-tangogps/ blog post]. Hopefully TangoGPS upstream will include the script soon, but until then and if you aren't using Debian, download this [http://bugs.debian.org/cgi-bin/bugreport.cgi?msg=5;filename=georss-to-tangogps-poi.py;att=1;bug=530718 script] from the Debian bug tracker.<br />
<br />
== Using Google Maps with tangoGPS ==<br />
<br />
Go to Config and create a new repository.<br />
<br />
Set the url for '''street-maps''' to:<br />
&lt;pre&gt;http://mt1.google.com/mt?&amp;x=%d&amp;y=%d&amp;z=%d&lt;/pre&gt;<br />
for '''satellite-maps''' to:<br />
&lt;pre&gt;http://khm.google.com/kh?&amp;x=%d&amp;y=%d&amp;zoom=%d&lt;/pre&gt;<br />
for '''topographic-maps''':<br />
&lt;pre&gt;http://mt.google.com/mt?v=app.81&amp;x=%d&amp;y=%d&amp;zoom=%d&lt;/pre&gt;<br />
<br />
Check the &quot;Inverted Zoom&quot; box. Press save Repository Configuration and you're ready to go.<br />
<br />
<br />
'''Since TangoGPS 0.9.5''' the &quot;Inverted Zoom&quot; box is no longer available because Google changed the addressing scheme; instead, select &quot;xyz instead of zxy&quot; and use the following URLs:<br />
&lt;pre&gt;<br />
Maps: <br />
http://mt3.google.com/mt/v=w2.89&amp;hl=en&amp;x=%d&amp;y=%d&amp;z=%d&amp;s=Galileo <br />
<br />
Sat: <br />
http://khm3.google.com/kh/v=36&amp;hl=en&amp;x=%d&amp;y=%d&amp;z=%d&amp;s=Galileo<br />
&lt;/pre&gt;<br />
<br />
'''Generalization:''' The above 'Maps' URL isn't the current one anymore, also. Google changes the URL layout sometimes. To find out the current scheme open maps.google.com and view the page source. Search for http:// until you find sth similar to the above URL. This way I found<br />
&lt;pre&gt;<br />
http://mt1.google.com/mt/v=w2.92&amp;amp;hl=en&amp;amp;x=3&amp;amp;y=5&amp;amp;z=4&amp;amp;s=Galile<br />
&lt;/pre&gt;<br />
<br />
Now you could tweak your configuration unsing the above link (delete the 'amp;' tokens and replace every number with '%d'), for example with<br />
&lt;pre&gt;<br />
gconftool-2 -s /apps/tangogps/repos \<br />
&quot;[OSM|http://tile.openstreetmap.org/%d/%d/%d.png|/media/mmcblk0p2/data/maps/OSM|\<br />
0,Topo|maps-for-free|/media/mmcblk0p2/data/maps/maps4free|\<br />
0,Aerial|openaerial|/media/mmcblk0p2/data/maps/openaerial|\<br />
0,Opencyclemap|http://a.andy.sandbox.cloudmade.com/tiles/cycle/%d/%d/%d.png|/media/mmcblk0p2/data/maps/opencyclemap|\<br />
0,Google Sat (testing only)|http://khm1.google.com/kh?v=34&amp;hl=en&amp;x=%d&amp;s=&amp;y=%d&amp;z=%d|/media/mmcblk0p2/data/maps/googlesat|\<br />
0,Google Maps (testing only)|http://mt1.google.com/mt/v=w2.92&amp;hl=en&amp;x=%d&amp;y=%d&amp;z=%d&amp;s=Galile|/media/mmcblk0p2/data/maps/googlemaps|1]&quot; \<br />
--type list --list-type string<br />
&lt;/pre&gt;<br />
<br />
&lt;onlyinclude&gt;<br />
{{ApplicationBox|<br />
Name=[[TangoGPS]]|<br />
Description= TangoGPS is a map application which can utilize Neo's built-in GPS to show your current location. It automatically downloads maps from http://openstreetmap.com and you can download map tiles for offline use too.|<br />
Screenshot=TangoGPS1.jpg|<br />
Homepage=http://www.tangogps.org|<br />
TestedOn=Om 2008.8|<br />
PackageName=tangogps<br />
}}<br />
&lt;/onlyinclude&gt;<br />
<br />
[[Category:GPS Applications]]</div>Myfanwyhttp://wiki.openmoko.org/wiki/TangoGPSTangoGPS2009-06-28T06:51:20Z<p>Myfanwy: /* Importing Tracks into tangoGPS */</p>
<hr />
<div>{{Languages|tangoGPS}}<br />
{{Application|tangoGPS}}<br />
<br />
__TOC__<br />
<br />
tangoGPS is a map application which can utilize Neo's built-in GPS to show your current location.<br />
<br />
[[Image:TangoGPS1.jpg]]<br />
<br />
Website: http://www.tangogps.org<br />
<br />
<br />
== Running tangoGPS ==<br />
=== [[Om 2008.8]] ===<br />
<br />
From the freerunner connected to the internet:<br />
&lt;pre&gt;<br />
opkg update<br />
opkg install gpsd<br />
&lt;/pre&gt;<br />
{{note|I experienced hangups if gpsd was not installed.}}<br />
&lt;pre&gt;<br />
opkg install http://www.tangogps.org/downloads/tangogps_0.9.5-r0_armv4t.opk<br />
&lt;/pre&gt;<br />
If opkg complains about not being able to acquire a lock, try:<br />
&lt;pre&gt;pkill packagekit&lt;/pre&gt;<br />
To get gpsd working on the FreeRunner you have to change the configuration according to [[Gpsd#GPS_on_GTA02]].<br />
Then start gpsd by:<br />
&lt;pre&gt;<br />
/etc/init.d/gpsd start<br />
&lt;/pre&gt;<br />
If you get an error about no GPS device in /etc/default/gpsd execute:<br />
&lt;pre&gt;<br />
echo &quot;GPS_DEV=\&quot;/dev/ttySAC1\&quot;&quot; &gt; /etc/default/gpsd<br />
&lt;/pre&gt;<br />
Now you must power up the GPS-chip by opening the &quot;Settings&quot; application and setting the GPS entry to &quot;on&quot;. Now you can run tangoGPS and wait until it get's a GPS fix. This can take up to a few minutes.<br />
<br />
=== [[Debian]] ===<br />
<br />
The latest version is available in [[Debian]].<br />
<br />
It depends on gpsd which conflicts with frameworkd in fso-frameworkd, but there is a package available that provides<br />
the gpsd interface to clients while using the services of the FSO frameworkd daemon, fso-gpsd. The install.sh script for the Debian distribution on the OpenMoko already installs it. To add tangogps run<br />
<br />
# apt-get install tangogps<br />
<br />
The gps device will be started automatically upon the invocation of tangogps or another gps application, e.g. like the one in [[Zhone]]. For the records, one can manually turn on the gps device using<br />
<br />
# echo 1 &gt;/sys/devices/platform/s3c2440-i2c/i2c-adapter/i2c-0/0-0073/neo1973-pm-gps.0/pwron<br />
<br />
The tangoGPS applications may appear as &quot;GPS &amp; Map&quot; on various desktops.<br />
<br />
'''Issues:'''<br />
* Both gpsd and the framework publish GPS data through dbus, though with different interfaces. This suggests a number of possible solutions.<br />
** gpsd or the framework could implement the other's interface (along with their own).<br />
** a translator could read one interface and emulate the other. This is what fso-gpsd does.<br />
** the framework could have an option to read data from gpsd.<br />
** ogpsd/gypsy could be extended to be backwards compatible with the majority of gps applications.<br />
<br />
=== FSO Milestone 3 ([[OpenmokoFramework]]) ===<br />
<br />
There are two various GPS interfaces -- (1) one provided with default gpsd and (2) the other provided by ogpsd (part of the frameworkd). tangoGPS requires the ad 1 and it obtains information from gps from the dbus interface provided by gpsd.<br />
<br />
On FSO milestone 3, there is tangoGPS pre-installed as well as both gpsd and ogpsd (see &lt;code&gt;/etc/frameworkd.conf&lt;/code&gt;, section &lt;code&gt;ogpsd&lt;/code&gt;). As mentioned above, there also exists a fso-gpsd package, that converts from ad 2 to ad 1 (unfortunately fso-gpsd is not in default image and must be installed with &lt;code&gt;opkg install fso-gpsd&lt;/code&gt;).<br />
<br />
You cannot have both &quot;providers&quot; (ad 1 &amp; ad 2) running, but you can have ad 2 (recommended for FSO) and &quot;convertor&quot; (fso-gpsd) providing the ad 1. To get usable tangoGPS on FreeRunner, one has to:<br />
<br />
# check that &lt;code&gt;/etc/frameworkd.conf&lt;/code&gt;, section &lt;code&gt;ogpsd&lt;/code&gt; reads GPS data from the right device (&lt;code&gt;/dev/ttySAC1&lt;/code&gt;)<br />
# if changes were made to configuration, one should restart the frameworkd -- &lt;code&gt;/etc/init.d/frameworkd stop &amp;&amp; /etc/init.d/frameworkd start&lt;/code&gt;<br />
# check that gpsd is not running -- &lt;code&gt;/etc/init.d/gpsd stop&lt;/code&gt;<br />
# check that fso-gpsd is installed and running -- &lt;code&gt;opkg install fso-gpsd; fso-gpsd&lt;/code&gt;<br />
# check that gps chip is online (&lt;code&gt;echo 1 &gt; /sys/devices/platform/s3c2440-i2c/i2c-adapter/i2c-0/0-0073/neo1973-pm-gps.0/pwron&lt;/code&gt;)<br />
# finally start up the tangoGPS and locate the gps signal; it should be up in a few minutes.<br />
<br />
Note 1: handy application for testing the gps (and gps signal strength) is &lt;code&gt;openmoko-agpsui&lt;/code&gt;, see general gps info at [[Gps]]<br />
<br />
Note 2: You can automate the process -- (1) remove the startup script for gpsd (&lt;code&gt;update-rc.d -f gpsd remove&lt;/code&gt;) and (2) create a simple startup scipt for fso-gpsd (you can use current script for gpsd as a skeleton)<br />
<br />
<br />
== Downloading Maps ==<br />
=== pre-load for offline use ===<br />
<br />
tangoGPS can bunch-download the map images so you don't need an internet connection while walking around. By default tangoGPS stores downloaded maps to /tmp/. This folder is lost every time you reboot the device. But you can use the &quot;Config&quot; tab within tangoGPS to change the &quot;Cache Dir&quot; location to , for example, /osm/ . So downloaded maps will be kept in the Neos flash, also after reboot. Note that the map files can take up large amounts of space, so you may want to store them on your sd card, e.g. in /media/card/osm or /media/mmcblk0p2/data/maps.<br />
<br />
If you find that TangoGPS does not remember configuration changes that you make to it, be sure to run it from the touchscreen, and not an SSH session. TangoGPS uses gconf to store its settings, and cannot access gconf when run via SSH.<br />
<br />
An alternative way to setup the configuration is through the command line. having /media/mmcblk0p2/data/maps as your data directory you could do the follwing:<br />
&lt;pre&gt;<br />
gconftool-2 -s /apps/tangogps/repos \<br />
&quot;[OSM|http://tile.openstreetmap.org/%d/%d/%d.png|/media/mmcblk0p2/data/maps/OSM|\<br />
0,Topo|maps-for-free|/media/mmcblk0p2/data/maps/maps4free|\<br />
0,Aerial|openaerial|/media/mmcblk0p2/data/maps/openaerial|\<br />
0,Opencyclemap|http://a.andy.sandbox.cloudmade.com/tiles/cycle/%d/%d/%d.png|/media/mmcblk0p2/data/maps/opencyclemap|\<br />
0,Google Sat (testing only)|http://khm1.google.com/kh?v=34&amp;hl=en&amp;x=%d&amp;s=&amp;y=%d&amp;z=%d|/media/mmcblk0p2/data/maps/googlesat|1]&quot; \<br />
--type list --list-type string<br />
&lt;/pre&gt;<br />
<br />
Once you have set the location to a non-volatile path, you can connect your Neo to the internet by USB or WiFi at home and start downloading the maps of your area. Tap the map screen and select &quot;map download&quot;. Now on-the-road tangoGPS will be able to show you maps in different zoom levels even though you are not connected to the internet.<br />
<br />
=== Downloading Maps via GPRS ===<br />
I think tangoGPS may have started working after I followed the instructions to get GPRS working with GSM multiplexing here: [[Manually_using_GPRS#Option_1:_With_GSM_multiplexing_and_with_a_GUI]]<br />
<br />
There are steps included in those instructions to improve GPS performance. The great thing is that once you get GPRS working, you can roam with TangoGPS running and have it download maps as needed over the GPRS connection!<br />
<br />
=== Updating pre-downloaded maps ===<br />
If you have many maps already downloaded, [[Media:updateMaps.txt|updateMaps.pl]] is a perl script to bring you up-to-date. It's made to work for OSM maps only, but can be adapted to work with any map dataset. See also: [[Yaouh!]].<br />
<br />
== Using tangoGPS for OpenStreetMap.org ==<br />
=== creating tracks ===<br />
tangoGPS works fine to create track for Openstreetmap. However, it records and stores a track in its native format, use [http://www.tangogps.org/downloads/convert2gpx.pl convert2gpx.pl] (see also: [http://psung.blogspot.com/2008/07/sharing-gps-tracks-from-tangogps-on.html tools])(you can also use [http://minucci.net/file/convert2gpx.py convert2gpx.py]) to convert the track to GPX (i.e to import into JOSM):<br />
<br />
perl convert2gpx.pl 20080903_111508.log &gt; 20080903_111508.gpx<br />
<br />
==== tangoGPS logging format ====<br />
<br />
&lt;lat&gt;,&lt;lon&gt;,&lt;elevation&gt;,&lt;speed&gt;,&lt;course&gt;,&lt;hdop&gt;,&lt;datetime&gt;<br />
<br />
=== using OpenStreetBugs ===<br />
[http://wiki.openstreetmap.org/wiki/TangoGPS#Using_together_with_OpenStreetBugs see OSM wiki]<br />
<br />
<br />
== Importing Tracks into tangoGPS ==<br />
<br />
tangoGPS does not support the import of tracks directly, however the following xslt style sheet can be used to convert gpx tracks to tangogps log files, which can then be imported&lt;br&gt;<br />
<br />
&lt;nowiki&gt;<br />
<br />
&lt;?xml version=&quot;1.0&quot; encoding=&quot;ISO-8859-1&quot;?&gt;<br />
&lt;xsl:stylesheet version=&quot;1.0&quot; xmlns:xsl=&quot;http://www.w3.org/1999/XSL/Transform&quot; xmlns:g=&quot;http://www.topografix.com/GPX/1/1&quot;&gt;<br />
&lt;xsl:output method=&quot;text&quot; omit-xml-declaration=&quot;yes&quot;/&gt;<br />
&lt;xsl:template match=&quot;g:gpx&quot; &gt;<br />
&lt;xsl:for-each select=&quot;g:wpt&quot;&gt;<br />
&lt;xsl:value-of select=&quot;@lat&quot;/&gt;,&lt;xsl:value-of select=&quot;@lon&quot;/&gt;,11.8,1.1,346.0,1.4,2008-12-30T06:46:0&lt;xsl:if test=&quot;position()!=last()&quot;&gt;&lt;xsl:text&gt;1&lt;/xsl:text&gt;&lt;/xsl:if&gt;&lt;xsl:if test=&quot;position()=last()&quot;&gt;&lt;xsl:text&gt;2&lt;/xsl:text&gt;&lt;/xsl:if&gt;Z<br />
&lt;/xsl:for-each&gt;<br />
&lt;/xsl:template&gt;<br />
&lt;/xsl:stylesheet&gt;<br />
&lt;/nowiki&gt;<br />
&lt;br&gt;<br />
&lt;br&gt;<br />
<br />
save this into a file called 'gpx2log.xslt', then run<br />
<br />
$ xsltproc gpx2log.xslt input_file.gpx &gt; output_file.log<br />
<br />
move save output_file.log to the traces <br />
<br />
and use the 'Load...' button on the 'Track' tab of tangogps to overlay it on the map<br />
<br />
Note: this stylesheet was thrown together in a short time, and makes at least one shortcut - namely, the use of 'dummy' variables for various details, such as the altitude, date, etc. feel free to improve<br />
<br />
You may help yourself by using [http://relet.net/frog/archives/68 this tool] to import GPX trackpoints as a series of POIs directly into the sqlite database which tangoGPS uses to store POIs.<br />
<br />
== Using the TangoGPS logs == <br />
<br />
You can convert the logfiles from TangoGPS to other formats using gpsbabel and this style-file: <br />
<br />
&lt;pre&gt;<br />
DESCRIPTION TangoGPS 0.92<br />
EXTENSION log<br />
DATATYPE TRACK<br />
<br />
FIELD_DELIMITER COMMA<br />
RECORD_DELIMITER NEWLINE<br />
<br />
IFIELD LAT_DECIMAL,&quot;&quot;,&quot;%f&quot;<br />
IFIELD LON_DECIMAL,&quot;&quot;,&quot;%f&quot;<br />
IFIELD ALT_METERS,&quot;&quot;,&quot;%f&quot;<br />
IFIELD PATH_SPEED,&quot;&quot;,&quot;%f&quot;<br />
IFIELD PATH_COURSE,&quot;&quot;,&quot;%f&quot;<br />
IFIELD GPS_HDOP,&quot;&quot;,&quot;%f&quot;<br />
IFIELD ISO_TIME,&quot;&quot;,&quot;%s&quot; <br />
&lt;/pre&gt;<br />
<br />
Save this as '''tangogps.style''' and you can use gpsbabel to for instance convert to google-earth files like this: <br />
<br />
gpsbabel -i xcsv,style=tangogps.style -o kml -f file.log -F file.kml<br />
<br />
== Add POI from address ==<br />
<br />
You can use [[gtkaddpoi]] for searching the destination address and add it as a POI.<br />
<br />
== Add POI from GeoRSS feed ==<br />
<br />
If you would like to import GeoRSS feeds from Google maps or elsewhere as points of interest (POI), read this [http://bonedaddy.net/pabs3/log/2009/05/28/georss-tangogps/ blog post]. Hopefully TangoGPS upstream will include the script soon, but until then and if you aren't using Debian, download this [http://bugs.debian.org/cgi-bin/bugreport.cgi?msg=5;filename=georss-to-tangogps-poi.py;att=1;bug=530718 script] from the Debian bug tracker.<br />
<br />
== Using Google Maps with tangoGPS ==<br />
<br />
Go to Config and create a new repository.<br />
<br />
Set the url for '''street-maps''' to:<br />
&lt;pre&gt;http://mt1.google.com/mt?&amp;x=%d&amp;y=%d&amp;z=%d&lt;/pre&gt;<br />
for '''satellite-maps''' to:<br />
&lt;pre&gt;http://khm.google.com/kh?&amp;x=%d&amp;y=%d&amp;zoom=%d&lt;/pre&gt;<br />
for '''topographic-maps''':<br />
&lt;pre&gt;http://mt.google.com/mt?v=app.81&amp;x=%d&amp;y=%d&amp;zoom=%d&lt;/pre&gt;<br />
<br />
Check the &quot;Inverted Zoom&quot; box. Press save Repository Configuration and you're ready to go.<br />
<br />
<br />
'''Since TangoGPS 0.9.5''' the &quot;Inverted Zoom&quot; box is no longer available because Google changed the addressing scheme; instead, select &quot;xyz instead of zxy&quot; and use the following URLs:<br />
&lt;pre&gt;<br />
Maps: <br />
http://mt3.google.com/mt/v=w2.89&amp;hl=en&amp;x=%d&amp;y=%d&amp;z=%d&amp;s=Galileo <br />
<br />
Sat: <br />
http://khm3.google.com/kh/v=36&amp;hl=en&amp;x=%d&amp;y=%d&amp;z=%d&amp;s=Galileo<br />
&lt;/pre&gt;<br />
<br />
'''Generalization:''' The above 'Maps' URL isn't the current one anymore, also. Google changes the URL layout sometimes. To find out the current scheme open maps.google.com and view the page source. Search for http:// until you find sth similar to the above URL. This way I found<br />
&lt;pre&gt;<br />
http://mt1.google.com/mt/v=w2.92&amp;amp;hl=en&amp;amp;x=3&amp;amp;y=5&amp;amp;z=4&amp;amp;s=Galile<br />
&lt;/pre&gt;<br />
<br />
Now you could tweak your configuration unsing the above link (delete the 'amp;' tokens and replace every number with '%d'), for example with<br />
&lt;pre&gt;<br />
gconftool-2 -s /apps/tangogps/repos \<br />
&quot;[OSM|http://tile.openstreetmap.org/%d/%d/%d.png|/media/mmcblk0p2/data/maps/OSM|\<br />
0,Topo|maps-for-free|/media/mmcblk0p2/data/maps/maps4free|\<br />
0,Aerial|openaerial|/media/mmcblk0p2/data/maps/openaerial|\<br />
0,Opencyclemap|http://a.andy.sandbox.cloudmade.com/tiles/cycle/%d/%d/%d.png|/media/mmcblk0p2/data/maps/opencyclemap|\<br />
0,Google Sat (testing only)|http://khm1.google.com/kh?v=34&amp;hl=en&amp;x=%d&amp;s=&amp;y=%d&amp;z=%d|/media/mmcblk0p2/data/maps/googlesat|\<br />
0,Google Maps (testing only)|http://mt1.google.com/mt/v=w2.92&amp;hl=en&amp;x=%d&amp;y=%d&amp;z=%d&amp;s=Galile|/media/mmcblk0p2/data/maps/googlemaps|1]&quot; \<br />
--type list --list-type string<br />
&lt;/pre&gt;<br />
<br />
&lt;onlyinclude&gt;<br />
{{ApplicationBox|<br />
Name=[[TangoGPS]]|<br />
Description= TangoGPS is a map application which can utilize Neo's built-in GPS to show your current location. It automatically downloads maps from http://openstreetmap.com and you can download map tiles for offline use too.|<br />
Screenshot=TangoGPS1.jpg|<br />
Homepage=http://www.tangogps.org|<br />
TestedOn=Om 2008.8|<br />
PackageName=tangogps<br />
}}<br />
&lt;/onlyinclude&gt;<br />
<br />
[[Category:GPS Applications]]</div>Myfanwyhttp://wiki.openmoko.org/wiki/TangoGPSTangoGPS2009-06-28T06:46:03Z<p>Myfanwy: /* Importing Tracks into tangoGPS */</p>
<hr />
<div>{{Languages|tangoGPS}}<br />
{{Application|tangoGPS}}<br />
<br />
__TOC__<br />
<br />
tangoGPS is a map application which can utilize Neo's built-in GPS to show your current location.<br />
<br />
[[Image:TangoGPS1.jpg]]<br />
<br />
Website: http://www.tangogps.org<br />
<br />
<br />
== Running tangoGPS ==<br />
=== [[Om 2008.8]] ===<br />
<br />
From the freerunner connected to the internet:<br />
&lt;pre&gt;<br />
opkg update<br />
opkg install gpsd<br />
&lt;/pre&gt;<br />
{{note|I experienced hangups if gpsd was not installed.}}<br />
&lt;pre&gt;<br />
opkg install http://www.tangogps.org/downloads/tangogps_0.9.5-r0_armv4t.opk<br />
&lt;/pre&gt;<br />
If opkg complains about not being able to acquire a lock, try:<br />
&lt;pre&gt;pkill packagekit&lt;/pre&gt;<br />
To get gpsd working on the FreeRunner you have to change the configuration according to [[Gpsd#GPS_on_GTA02]].<br />
Then start gpsd by:<br />
&lt;pre&gt;<br />
/etc/init.d/gpsd start<br />
&lt;/pre&gt;<br />
If you get an error about no GPS device in /etc/default/gpsd execute:<br />
&lt;pre&gt;<br />
echo &quot;GPS_DEV=\&quot;/dev/ttySAC1\&quot;&quot; &gt; /etc/default/gpsd<br />
&lt;/pre&gt;<br />
Now you must power up the GPS-chip by opening the &quot;Settings&quot; application and setting the GPS entry to &quot;on&quot;. Now you can run tangoGPS and wait until it get's a GPS fix. This can take up to a few minutes.<br />
<br />
=== [[Debian]] ===<br />
<br />
The latest version is available in [[Debian]].<br />
<br />
It depends on gpsd which conflicts with frameworkd in fso-frameworkd, but there is a package available that provides<br />
the gpsd interface to clients while using the services of the FSO frameworkd daemon, fso-gpsd. The install.sh script for the Debian distribution on the OpenMoko already installs it. To add tangogps run<br />
<br />
# apt-get install tangogps<br />
<br />
The gps device will be started automatically upon the invocation of tangogps or another gps application, e.g. like the one in [[Zhone]]. For the records, one can manually turn on the gps device using<br />
<br />
# echo 1 &gt;/sys/devices/platform/s3c2440-i2c/i2c-adapter/i2c-0/0-0073/neo1973-pm-gps.0/pwron<br />
<br />
The tangoGPS applications may appear as &quot;GPS &amp; Map&quot; on various desktops.<br />
<br />
'''Issues:'''<br />
* Both gpsd and the framework publish GPS data through dbus, though with different interfaces. This suggests a number of possible solutions.<br />
** gpsd or the framework could implement the other's interface (along with their own).<br />
** a translator could read one interface and emulate the other. This is what fso-gpsd does.<br />
** the framework could have an option to read data from gpsd.<br />
** ogpsd/gypsy could be extended to be backwards compatible with the majority of gps applications.<br />
<br />
=== FSO Milestone 3 ([[OpenmokoFramework]]) ===<br />
<br />
There are two various GPS interfaces -- (1) one provided with default gpsd and (2) the other provided by ogpsd (part of the frameworkd). tangoGPS requires the ad 1 and it obtains information from gps from the dbus interface provided by gpsd.<br />
<br />
On FSO milestone 3, there is tangoGPS pre-installed as well as both gpsd and ogpsd (see &lt;code&gt;/etc/frameworkd.conf&lt;/code&gt;, section &lt;code&gt;ogpsd&lt;/code&gt;). As mentioned above, there also exists a fso-gpsd package, that converts from ad 2 to ad 1 (unfortunately fso-gpsd is not in default image and must be installed with &lt;code&gt;opkg install fso-gpsd&lt;/code&gt;).<br />
<br />
You cannot have both &quot;providers&quot; (ad 1 &amp; ad 2) running, but you can have ad 2 (recommended for FSO) and &quot;convertor&quot; (fso-gpsd) providing the ad 1. To get usable tangoGPS on FreeRunner, one has to:<br />
<br />
# check that &lt;code&gt;/etc/frameworkd.conf&lt;/code&gt;, section &lt;code&gt;ogpsd&lt;/code&gt; reads GPS data from the right device (&lt;code&gt;/dev/ttySAC1&lt;/code&gt;)<br />
# if changes were made to configuration, one should restart the frameworkd -- &lt;code&gt;/etc/init.d/frameworkd stop &amp;&amp; /etc/init.d/frameworkd start&lt;/code&gt;<br />
# check that gpsd is not running -- &lt;code&gt;/etc/init.d/gpsd stop&lt;/code&gt;<br />
# check that fso-gpsd is installed and running -- &lt;code&gt;opkg install fso-gpsd; fso-gpsd&lt;/code&gt;<br />
# check that gps chip is online (&lt;code&gt;echo 1 &gt; /sys/devices/platform/s3c2440-i2c/i2c-adapter/i2c-0/0-0073/neo1973-pm-gps.0/pwron&lt;/code&gt;)<br />
# finally start up the tangoGPS and locate the gps signal; it should be up in a few minutes.<br />
<br />
Note 1: handy application for testing the gps (and gps signal strength) is &lt;code&gt;openmoko-agpsui&lt;/code&gt;, see general gps info at [[Gps]]<br />
<br />
Note 2: You can automate the process -- (1) remove the startup script for gpsd (&lt;code&gt;update-rc.d -f gpsd remove&lt;/code&gt;) and (2) create a simple startup scipt for fso-gpsd (you can use current script for gpsd as a skeleton)<br />
<br />
<br />
== Downloading Maps ==<br />
=== pre-load for offline use ===<br />
<br />
tangoGPS can bunch-download the map images so you don't need an internet connection while walking around. By default tangoGPS stores downloaded maps to /tmp/. This folder is lost every time you reboot the device. But you can use the &quot;Config&quot; tab within tangoGPS to change the &quot;Cache Dir&quot; location to , for example, /osm/ . So downloaded maps will be kept in the Neos flash, also after reboot. Note that the map files can take up large amounts of space, so you may want to store them on your sd card, e.g. in /media/card/osm or /media/mmcblk0p2/data/maps.<br />
<br />
If you find that TangoGPS does not remember configuration changes that you make to it, be sure to run it from the touchscreen, and not an SSH session. TangoGPS uses gconf to store its settings, and cannot access gconf when run via SSH.<br />
<br />
An alternative way to setup the configuration is through the command line. having /media/mmcblk0p2/data/maps as your data directory you could do the follwing:<br />
&lt;pre&gt;<br />
gconftool-2 -s /apps/tangogps/repos \<br />
&quot;[OSM|http://tile.openstreetmap.org/%d/%d/%d.png|/media/mmcblk0p2/data/maps/OSM|\<br />
0,Topo|maps-for-free|/media/mmcblk0p2/data/maps/maps4free|\<br />
0,Aerial|openaerial|/media/mmcblk0p2/data/maps/openaerial|\<br />
0,Opencyclemap|http://a.andy.sandbox.cloudmade.com/tiles/cycle/%d/%d/%d.png|/media/mmcblk0p2/data/maps/opencyclemap|\<br />
0,Google Sat (testing only)|http://khm1.google.com/kh?v=34&amp;hl=en&amp;x=%d&amp;s=&amp;y=%d&amp;z=%d|/media/mmcblk0p2/data/maps/googlesat|1]&quot; \<br />
--type list --list-type string<br />
&lt;/pre&gt;<br />
<br />
Once you have set the location to a non-volatile path, you can connect your Neo to the internet by USB or WiFi at home and start downloading the maps of your area. Tap the map screen and select &quot;map download&quot;. Now on-the-road tangoGPS will be able to show you maps in different zoom levels even though you are not connected to the internet.<br />
<br />
=== Downloading Maps via GPRS ===<br />
I think tangoGPS may have started working after I followed the instructions to get GPRS working with GSM multiplexing here: [[Manually_using_GPRS#Option_1:_With_GSM_multiplexing_and_with_a_GUI]]<br />
<br />
There are steps included in those instructions to improve GPS performance. The great thing is that once you get GPRS working, you can roam with TangoGPS running and have it download maps as needed over the GPRS connection!<br />
<br />
=== Updating pre-downloaded maps ===<br />
If you have many maps already downloaded, [[Media:updateMaps.txt|updateMaps.pl]] is a perl script to bring you up-to-date. It's made to work for OSM maps only, but can be adapted to work with any map dataset. See also: [[Yaouh!]].<br />
<br />
== Using tangoGPS for OpenStreetMap.org ==<br />
=== creating tracks ===<br />
tangoGPS works fine to create track for Openstreetmap. However, it records and stores a track in its native format, use [http://www.tangogps.org/downloads/convert2gpx.pl convert2gpx.pl] (see also: [http://psung.blogspot.com/2008/07/sharing-gps-tracks-from-tangogps-on.html tools])(you can also use [http://minucci.net/file/convert2gpx.py convert2gpx.py]) to convert the track to GPX (i.e to import into JOSM):<br />
<br />
perl convert2gpx.pl 20080903_111508.log &gt; 20080903_111508.gpx<br />
<br />
==== tangoGPS logging format ====<br />
<br />
&lt;lat&gt;,&lt;lon&gt;,&lt;elevation&gt;,&lt;speed&gt;,&lt;course&gt;,&lt;hdop&gt;,&lt;datetime&gt;<br />
<br />
=== using OpenStreetBugs ===<br />
[http://wiki.openstreetmap.org/wiki/TangoGPS#Using_together_with_OpenStreetBugs see OSM wiki]<br />
<br />
<br />
== Importing Tracks into tangoGPS ==<br />
<br />
tangoGPS does not support the import of tracks directly, however the following xslt style sheet can be used to convert gpx tracks to tangogps log files, which can then be imported&lt;br&gt;<br />
<br />
&lt;nowiki&gt;<br />
<br />
&lt;?xml version=&quot;1.0&quot; encoding=&quot;ISO-8859-1&quot;?&gt;<br />
&lt;xsl:stylesheet version=&quot;1.0&quot; xmlns:xsl=&quot;http://www.w3.org/1999/XSL/Transform&quot; xmlns:g=&quot;http://www.topografix.com/GPX/1/1&quot;&gt;<br />
&lt;xsl:output method=&quot;text&quot; omit-xml-declaration=&quot;yes&quot;/&gt;<br />
&lt;xsl:template match=&quot;g:gpx&quot; &gt;<br />
&lt;xsl:for-each select=&quot;g:wpt&quot;&gt;<br />
&lt;xsl:value-of select=&quot;@lat&quot;/&gt;,&lt;xsl:value-of select=&quot;@lon&quot;/&gt;,11.8,1.1,346.0,1.4,2008-12-30T06:46:0&lt;xsl:if test=&quot;position()!=last()&quot;&gt;&lt;xsl:text&gt;1&lt;/xsl:text&gt;&lt;/xsl:if&gt;&lt;xsl:if test=&quot;position()=last()&quot;&gt;&lt;xsl:text&gt;2&lt;/xsl:text&gt;&lt;/xsl:if&gt;Z<br />
&lt;/xsl:for-each&gt;<br />
&lt;/xsl:template&gt;<br />
&lt;/xsl:stylesheet&gt;<br />
&lt;/nowiki&gt;<br />
&lt;br&gt;<br />
save this into a file called 'gpx2log.xslt', then run<br />
<br />
$ xsltproc gpx2log.xslt input_file.gpx &gt; output_file.log<br />
<br />
move save output_file.log to the traces <br />
<br />
and use the 'Load...' button on the 'Track' tab of tangogps to overlay it on the map<br />
<br />
Note: this stylesheet was thrown together in a short time, and makes at least one shortcut - namely, the use of 'dummy' variables for various details, such as the altitude, date, etc. feel free to improve<br />
<br />
You may help yourself by using [http://relet.net/frog/archives/68 this tool] to import GPX trackpoints as a series of POIs directly into the sqlite database which tangoGPS uses to store POIs.<br />
<br />
== Using the TangoGPS logs == <br />
<br />
You can convert the logfiles from TangoGPS to other formats using gpsbabel and this style-file: <br />
<br />
&lt;pre&gt;<br />
DESCRIPTION TangoGPS 0.92<br />
EXTENSION log<br />
DATATYPE TRACK<br />
<br />
FIELD_DELIMITER COMMA<br />
RECORD_DELIMITER NEWLINE<br />
<br />
IFIELD LAT_DECIMAL,&quot;&quot;,&quot;%f&quot;<br />
IFIELD LON_DECIMAL,&quot;&quot;,&quot;%f&quot;<br />
IFIELD ALT_METERS,&quot;&quot;,&quot;%f&quot;<br />
IFIELD PATH_SPEED,&quot;&quot;,&quot;%f&quot;<br />
IFIELD PATH_COURSE,&quot;&quot;,&quot;%f&quot;<br />
IFIELD GPS_HDOP,&quot;&quot;,&quot;%f&quot;<br />
IFIELD ISO_TIME,&quot;&quot;,&quot;%s&quot; <br />
&lt;/pre&gt;<br />
<br />
Save this as '''tangogps.style''' and you can use gpsbabel to for instance convert to google-earth files like this: <br />
<br />
gpsbabel -i xcsv,style=tangogps.style -o kml -f file.log -F file.kml<br />
<br />
== Add POI from address ==<br />
<br />
You can use [[gtkaddpoi]] for searching the destination address and add it as a POI.<br />
<br />
== Add POI from GeoRSS feed ==<br />
<br />
If you would like to import GeoRSS feeds from Google maps or elsewhere as points of interest (POI), read this [http://bonedaddy.net/pabs3/log/2009/05/28/georss-tangogps/ blog post]. Hopefully TangoGPS upstream will include the script soon, but until then and if you aren't using Debian, download this [http://bugs.debian.org/cgi-bin/bugreport.cgi?msg=5;filename=georss-to-tangogps-poi.py;att=1;bug=530718 script] from the Debian bug tracker.<br />
<br />
== Using Google Maps with tangoGPS ==<br />
<br />
Go to Config and create a new repository.<br />
<br />
Set the url for '''street-maps''' to:<br />
&lt;pre&gt;http://mt1.google.com/mt?&amp;x=%d&amp;y=%d&amp;z=%d&lt;/pre&gt;<br />
for '''satellite-maps''' to:<br />
&lt;pre&gt;http://khm.google.com/kh?&amp;x=%d&amp;y=%d&amp;zoom=%d&lt;/pre&gt;<br />
for '''topographic-maps''':<br />
&lt;pre&gt;http://mt.google.com/mt?v=app.81&amp;x=%d&amp;y=%d&amp;zoom=%d&lt;/pre&gt;<br />
<br />
Check the &quot;Inverted Zoom&quot; box. Press save Repository Configuration and you're ready to go.<br />
<br />
<br />
'''Since TangoGPS 0.9.5''' the &quot;Inverted Zoom&quot; box is no longer available because Google changed the addressing scheme; instead, select &quot;xyz instead of zxy&quot; and use the following URLs:<br />
&lt;pre&gt;<br />
Maps: <br />
http://mt3.google.com/mt/v=w2.89&amp;hl=en&amp;x=%d&amp;y=%d&amp;z=%d&amp;s=Galileo <br />
<br />
Sat: <br />
http://khm3.google.com/kh/v=36&amp;hl=en&amp;x=%d&amp;y=%d&amp;z=%d&amp;s=Galileo<br />
&lt;/pre&gt;<br />
<br />
'''Generalization:''' The above 'Maps' URL isn't the current one anymore, also. Google changes the URL layout sometimes. To find out the current scheme open maps.google.com and view the page source. Search for http:// until you find sth similar to the above URL. This way I found<br />
&lt;pre&gt;<br />
http://mt1.google.com/mt/v=w2.92&amp;amp;hl=en&amp;amp;x=3&amp;amp;y=5&amp;amp;z=4&amp;amp;s=Galile<br />
&lt;/pre&gt;<br />
<br />
Now you could tweak your configuration unsing the above link (delete the 'amp;' tokens and replace every number with '%d'), for example with<br />
&lt;pre&gt;<br />
gconftool-2 -s /apps/tangogps/repos \<br />
&quot;[OSM|http://tile.openstreetmap.org/%d/%d/%d.png|/media/mmcblk0p2/data/maps/OSM|\<br />
0,Topo|maps-for-free|/media/mmcblk0p2/data/maps/maps4free|\<br />
0,Aerial|openaerial|/media/mmcblk0p2/data/maps/openaerial|\<br />
0,Opencyclemap|http://a.andy.sandbox.cloudmade.com/tiles/cycle/%d/%d/%d.png|/media/mmcblk0p2/data/maps/opencyclemap|\<br />
0,Google Sat (testing only)|http://khm1.google.com/kh?v=34&amp;hl=en&amp;x=%d&amp;s=&amp;y=%d&amp;z=%d|/media/mmcblk0p2/data/maps/googlesat|\<br />
0,Google Maps (testing only)|http://mt1.google.com/mt/v=w2.92&amp;hl=en&amp;x=%d&amp;y=%d&amp;z=%d&amp;s=Galile|/media/mmcblk0p2/data/maps/googlemaps|1]&quot; \<br />
--type list --list-type string<br />
&lt;/pre&gt;<br />
<br />
&lt;onlyinclude&gt;<br />
{{ApplicationBox|<br />
Name=[[TangoGPS]]|<br />
Description= TangoGPS is a map application which can utilize Neo's built-in GPS to show your current location. It automatically downloads maps from http://openstreetmap.com and you can download map tiles for offline use too.|<br />
Screenshot=TangoGPS1.jpg|<br />
Homepage=http://www.tangogps.org|<br />
TestedOn=Om 2008.8|<br />
PackageName=tangogps<br />
}}<br />
&lt;/onlyinclude&gt;<br />
<br />
[[Category:GPS Applications]]</div>Myfanwyhttp://wiki.openmoko.org/wiki/TangoGPSTangoGPS2009-06-28T06:43:24Z<p>Myfanwy: /* Importing Tracks into tangoGPS */</p>
<hr />
<div>{{Languages|tangoGPS}}<br />
{{Application|tangoGPS}}<br />
<br />
__TOC__<br />
<br />
tangoGPS is a map application which can utilize Neo's built-in GPS to show your current location.<br />
<br />
[[Image:TangoGPS1.jpg]]<br />
<br />
Website: http://www.tangogps.org<br />
<br />
<br />
== Running tangoGPS ==<br />
=== [[Om 2008.8]] ===<br />
<br />
From the freerunner connected to the internet:<br />
&lt;pre&gt;<br />
opkg update<br />
opkg install gpsd<br />
&lt;/pre&gt;<br />
{{note|I experienced hangups if gpsd was not installed.}}<br />
&lt;pre&gt;<br />
opkg install http://www.tangogps.org/downloads/tangogps_0.9.5-r0_armv4t.opk<br />
&lt;/pre&gt;<br />
If opkg complains about not being able to acquire a lock, try:<br />
&lt;pre&gt;pkill packagekit&lt;/pre&gt;<br />
To get gpsd working on the FreeRunner you have to change the configuration according to [[Gpsd#GPS_on_GTA02]].<br />
Then start gpsd by:<br />
&lt;pre&gt;<br />
/etc/init.d/gpsd start<br />
&lt;/pre&gt;<br />
If you get an error about no GPS device in /etc/default/gpsd execute:<br />
&lt;pre&gt;<br />
echo &quot;GPS_DEV=\&quot;/dev/ttySAC1\&quot;&quot; &gt; /etc/default/gpsd<br />
&lt;/pre&gt;<br />
Now you must power up the GPS-chip by opening the &quot;Settings&quot; application and setting the GPS entry to &quot;on&quot;. Now you can run tangoGPS and wait until it get's a GPS fix. This can take up to a few minutes.<br />
<br />
=== [[Debian]] ===<br />
<br />
The latest version is available in [[Debian]].<br />
<br />
It depends on gpsd which conflicts with frameworkd in fso-frameworkd, but there is a package available that provides<br />
the gpsd interface to clients while using the services of the FSO frameworkd daemon, fso-gpsd. The install.sh script for the Debian distribution on the OpenMoko already installs it. To add tangogps run<br />
<br />
# apt-get install tangogps<br />
<br />
The gps device will be started automatically upon the invocation of tangogps or another gps application, e.g. like the one in [[Zhone]]. For the records, one can manually turn on the gps device using<br />
<br />
# echo 1 &gt;/sys/devices/platform/s3c2440-i2c/i2c-adapter/i2c-0/0-0073/neo1973-pm-gps.0/pwron<br />
<br />
The tangoGPS applications may appear as &quot;GPS &amp; Map&quot; on various desktops.<br />
<br />
'''Issues:'''<br />
* Both gpsd and the framework publish GPS data through dbus, though with different interfaces. This suggests a number of possible solutions.<br />
** gpsd or the framework could implement the other's interface (along with their own).<br />
** a translator could read one interface and emulate the other. This is what fso-gpsd does.<br />
** the framework could have an option to read data from gpsd.<br />
** ogpsd/gypsy could be extended to be backwards compatible with the majority of gps applications.<br />
<br />
=== FSO Milestone 3 ([[OpenmokoFramework]]) ===<br />
<br />
There are two various GPS interfaces -- (1) one provided with default gpsd and (2) the other provided by ogpsd (part of the frameworkd). tangoGPS requires the ad 1 and it obtains information from gps from the dbus interface provided by gpsd.<br />
<br />
On FSO milestone 3, there is tangoGPS pre-installed as well as both gpsd and ogpsd (see &lt;code&gt;/etc/frameworkd.conf&lt;/code&gt;, section &lt;code&gt;ogpsd&lt;/code&gt;). As mentioned above, there also exists a fso-gpsd package, that converts from ad 2 to ad 1 (unfortunately fso-gpsd is not in default image and must be installed with &lt;code&gt;opkg install fso-gpsd&lt;/code&gt;).<br />
<br />
You cannot have both &quot;providers&quot; (ad 1 &amp; ad 2) running, but you can have ad 2 (recommended for FSO) and &quot;convertor&quot; (fso-gpsd) providing the ad 1. To get usable tangoGPS on FreeRunner, one has to:<br />
<br />
# check that &lt;code&gt;/etc/frameworkd.conf&lt;/code&gt;, section &lt;code&gt;ogpsd&lt;/code&gt; reads GPS data from the right device (&lt;code&gt;/dev/ttySAC1&lt;/code&gt;)<br />
# if changes were made to configuration, one should restart the frameworkd -- &lt;code&gt;/etc/init.d/frameworkd stop &amp;&amp; /etc/init.d/frameworkd start&lt;/code&gt;<br />
# check that gpsd is not running -- &lt;code&gt;/etc/init.d/gpsd stop&lt;/code&gt;<br />
# check that fso-gpsd is installed and running -- &lt;code&gt;opkg install fso-gpsd; fso-gpsd&lt;/code&gt;<br />
# check that gps chip is online (&lt;code&gt;echo 1 &gt; /sys/devices/platform/s3c2440-i2c/i2c-adapter/i2c-0/0-0073/neo1973-pm-gps.0/pwron&lt;/code&gt;)<br />
# finally start up the tangoGPS and locate the gps signal; it should be up in a few minutes.<br />
<br />
Note 1: handy application for testing the gps (and gps signal strength) is &lt;code&gt;openmoko-agpsui&lt;/code&gt;, see general gps info at [[Gps]]<br />
<br />
Note 2: You can automate the process -- (1) remove the startup script for gpsd (&lt;code&gt;update-rc.d -f gpsd remove&lt;/code&gt;) and (2) create a simple startup scipt for fso-gpsd (you can use current script for gpsd as a skeleton)<br />
<br />
<br />
== Downloading Maps ==<br />
=== pre-load for offline use ===<br />
<br />
tangoGPS can bunch-download the map images so you don't need an internet connection while walking around. By default tangoGPS stores downloaded maps to /tmp/. This folder is lost every time you reboot the device. But you can use the &quot;Config&quot; tab within tangoGPS to change the &quot;Cache Dir&quot; location to , for example, /osm/ . So downloaded maps will be kept in the Neos flash, also after reboot. Note that the map files can take up large amounts of space, so you may want to store them on your sd card, e.g. in /media/card/osm or /media/mmcblk0p2/data/maps.<br />
<br />
If you find that TangoGPS does not remember configuration changes that you make to it, be sure to run it from the touchscreen, and not an SSH session. TangoGPS uses gconf to store its settings, and cannot access gconf when run via SSH.<br />
<br />
An alternative way to setup the configuration is through the command line. having /media/mmcblk0p2/data/maps as your data directory you could do the follwing:<br />
&lt;pre&gt;<br />
gconftool-2 -s /apps/tangogps/repos \<br />
&quot;[OSM|http://tile.openstreetmap.org/%d/%d/%d.png|/media/mmcblk0p2/data/maps/OSM|\<br />
0,Topo|maps-for-free|/media/mmcblk0p2/data/maps/maps4free|\<br />
0,Aerial|openaerial|/media/mmcblk0p2/data/maps/openaerial|\<br />
0,Opencyclemap|http://a.andy.sandbox.cloudmade.com/tiles/cycle/%d/%d/%d.png|/media/mmcblk0p2/data/maps/opencyclemap|\<br />
0,Google Sat (testing only)|http://khm1.google.com/kh?v=34&amp;hl=en&amp;x=%d&amp;s=&amp;y=%d&amp;z=%d|/media/mmcblk0p2/data/maps/googlesat|1]&quot; \<br />
--type list --list-type string<br />
&lt;/pre&gt;<br />
<br />
Once you have set the location to a non-volatile path, you can connect your Neo to the internet by USB or WiFi at home and start downloading the maps of your area. Tap the map screen and select &quot;map download&quot;. Now on-the-road tangoGPS will be able to show you maps in different zoom levels even though you are not connected to the internet.<br />
<br />
=== Downloading Maps via GPRS ===<br />
I think tangoGPS may have started working after I followed the instructions to get GPRS working with GSM multiplexing here: [[Manually_using_GPRS#Option_1:_With_GSM_multiplexing_and_with_a_GUI]]<br />
<br />
There are steps included in those instructions to improve GPS performance. The great thing is that once you get GPRS working, you can roam with TangoGPS running and have it download maps as needed over the GPRS connection!<br />
<br />
=== Updating pre-downloaded maps ===<br />
If you have many maps already downloaded, [[Media:updateMaps.txt|updateMaps.pl]] is a perl script to bring you up-to-date. It's made to work for OSM maps only, but can be adapted to work with any map dataset. See also: [[Yaouh!]].<br />
<br />
== Using tangoGPS for OpenStreetMap.org ==<br />
=== creating tracks ===<br />
tangoGPS works fine to create track for Openstreetmap. However, it records and stores a track in its native format, use [http://www.tangogps.org/downloads/convert2gpx.pl convert2gpx.pl] (see also: [http://psung.blogspot.com/2008/07/sharing-gps-tracks-from-tangogps-on.html tools])(you can also use [http://minucci.net/file/convert2gpx.py convert2gpx.py]) to convert the track to GPX (i.e to import into JOSM):<br />
<br />
perl convert2gpx.pl 20080903_111508.log &gt; 20080903_111508.gpx<br />
<br />
==== tangoGPS logging format ====<br />
<br />
&lt;lat&gt;,&lt;lon&gt;,&lt;elevation&gt;,&lt;speed&gt;,&lt;course&gt;,&lt;hdop&gt;,&lt;datetime&gt;<br />
<br />
=== using OpenStreetBugs ===<br />
[http://wiki.openstreetmap.org/wiki/TangoGPS#Using_together_with_OpenStreetBugs see OSM wiki]<br />
<br />
<br />
== Importing Tracks into tangoGPS ==<br />
<br />
tangoGPS does not support the import of tracks directly, however the following xslt style sheet can be used to convert gpx tracks to tangogps log files, which can then be imported&lt;br&gt;<br />
<br />
&lt;nowiki&gt;<br />
<br />
&lt;?xml version=&quot;1.0&quot; encoding=&quot;ISO-8859-1&quot;?&gt;<br />
<br />
&lt;xsl:stylesheet version=&quot;1.0&quot; xmlns:xsl=&quot;http://www.w3.org/1999/XSL/Transform&quot; xmlns:g=&quot;http://www.topografix.com/GPX/1/1&quot;&gt;<br />
<br />
&lt;xsl:output method=&quot;text&quot; omit-xml-declaration=&quot;yes&quot;/&gt;<br />
<br />
&lt;xsl:template match=&quot;g:gpx&quot; &gt;<br />
<br />
&lt;xsl:for-each select=&quot;g:wpt&quot;&gt;<br />
<br />
&lt;xsl:value-of select=&quot;@lat&quot;/&gt;,&lt;xsl:value-of select=&quot;@lon&quot;/&gt;,11.8,1.1,346.0,1.4,2008-12-30T06:46:0&lt;xsl:if test=&quot;position()!=last()&quot;&gt;&lt;xsl:text&gt;1&lt;/xsl:text&gt;&lt;/xsl:if&gt;&lt;xsl:if test=&quot;position()=last()&quot;&gt;&lt;xsl:text&gt;2&lt;/xsl:text&gt;&lt;/xsl:if&gt;Z<br />
<br />
&lt;/xsl:for-each&gt;<br />
<br />
&lt;/xsl:template&gt;<br />
<br />
&lt;/xsl:stylesheet&gt;<br />
&lt;/nowiki&gt;<br />
<br />
&lt;br&gt;<br />
save this into a file called 'gpx2log.xslt', then run<br />
<br />
$ xsltproc gpx2log.xslt input_file.gpx &gt; output_file.log<br />
<br />
move save output_file.log to the traces <br />
<br />
and use the 'Load...' button on the 'Track' tab of tangogps to overlay it on the map<br />
<br />
Note: this stylesheet was thrown together in a short time, and makes at least one shortcut - namely, the use of 'dummy' variables for various details, such as the altitude, date, etc. feel free to improve<br />
<br />
You may help yourself by using [http://relet.net/frog/archives/68 this tool] to import GPX trackpoints as a series of POIs directly into the sqlite database which tangoGPS uses to store POIs.<br />
<br />
== Using the TangoGPS logs == <br />
<br />
You can convert the logfiles from TangoGPS to other formats using gpsbabel and this style-file: <br />
<br />
&lt;pre&gt;<br />
DESCRIPTION TangoGPS 0.92<br />
EXTENSION log<br />
DATATYPE TRACK<br />
<br />
FIELD_DELIMITER COMMA<br />
RECORD_DELIMITER NEWLINE<br />
<br />
IFIELD LAT_DECIMAL,&quot;&quot;,&quot;%f&quot;<br />
IFIELD LON_DECIMAL,&quot;&quot;,&quot;%f&quot;<br />
IFIELD ALT_METERS,&quot;&quot;,&quot;%f&quot;<br />
IFIELD PATH_SPEED,&quot;&quot;,&quot;%f&quot;<br />
IFIELD PATH_COURSE,&quot;&quot;,&quot;%f&quot;<br />
IFIELD GPS_HDOP,&quot;&quot;,&quot;%f&quot;<br />
IFIELD ISO_TIME,&quot;&quot;,&quot;%s&quot; <br />
&lt;/pre&gt;<br />
<br />
Save this as '''tangogps.style''' and you can use gpsbabel to for instance convert to google-earth files like this: <br />
<br />
gpsbabel -i xcsv,style=tangogps.style -o kml -f file.log -F file.kml<br />
<br />
== Add POI from address ==<br />
<br />
You can use [[gtkaddpoi]] for searching the destination address and add it as a POI.<br />
<br />
== Add POI from GeoRSS feed ==<br />
<br />
If you would like to import GeoRSS feeds from Google maps or elsewhere as points of interest (POI), read this [http://bonedaddy.net/pabs3/log/2009/05/28/georss-tangogps/ blog post]. Hopefully TangoGPS upstream will include the script soon, but until then and if you aren't using Debian, download this [http://bugs.debian.org/cgi-bin/bugreport.cgi?msg=5;filename=georss-to-tangogps-poi.py;att=1;bug=530718 script] from the Debian bug tracker.<br />
<br />
== Using Google Maps with tangoGPS ==<br />
<br />
Go to Config and create a new repository.<br />
<br />
Set the url for '''street-maps''' to:<br />
&lt;pre&gt;http://mt1.google.com/mt?&amp;x=%d&amp;y=%d&amp;z=%d&lt;/pre&gt;<br />
for '''satellite-maps''' to:<br />
&lt;pre&gt;http://khm.google.com/kh?&amp;x=%d&amp;y=%d&amp;zoom=%d&lt;/pre&gt;<br />
for '''topographic-maps''':<br />
&lt;pre&gt;http://mt.google.com/mt?v=app.81&amp;x=%d&amp;y=%d&amp;zoom=%d&lt;/pre&gt;<br />
<br />
Check the &quot;Inverted Zoom&quot; box. Press save Repository Configuration and you're ready to go.<br />
<br />
<br />
'''Since TangoGPS 0.9.5''' the &quot;Inverted Zoom&quot; box is no longer available because Google changed the addressing scheme; instead, select &quot;xyz instead of zxy&quot; and use the following URLs:<br />
&lt;pre&gt;<br />
Maps: <br />
http://mt3.google.com/mt/v=w2.89&amp;hl=en&amp;x=%d&amp;y=%d&amp;z=%d&amp;s=Galileo <br />
<br />
Sat: <br />
http://khm3.google.com/kh/v=36&amp;hl=en&amp;x=%d&amp;y=%d&amp;z=%d&amp;s=Galileo<br />
&lt;/pre&gt;<br />
<br />
'''Generalization:''' The above 'Maps' URL isn't the current one anymore, also. Google changes the URL layout sometimes. To find out the current scheme open maps.google.com and view the page source. Search for http:// until you find sth similar to the above URL. This way I found<br />
&lt;pre&gt;<br />
http://mt1.google.com/mt/v=w2.92&amp;amp;hl=en&amp;amp;x=3&amp;amp;y=5&amp;amp;z=4&amp;amp;s=Galile<br />
&lt;/pre&gt;<br />
<br />
Now you could tweak your configuration unsing the above link (delete the 'amp;' tokens and replace every number with '%d'), for example with<br />
&lt;pre&gt;<br />
gconftool-2 -s /apps/tangogps/repos \<br />
&quot;[OSM|http://tile.openstreetmap.org/%d/%d/%d.png|/media/mmcblk0p2/data/maps/OSM|\<br />
0,Topo|maps-for-free|/media/mmcblk0p2/data/maps/maps4free|\<br />
0,Aerial|openaerial|/media/mmcblk0p2/data/maps/openaerial|\<br />
0,Opencyclemap|http://a.andy.sandbox.cloudmade.com/tiles/cycle/%d/%d/%d.png|/media/mmcblk0p2/data/maps/opencyclemap|\<br />
0,Google Sat (testing only)|http://khm1.google.com/kh?v=34&amp;hl=en&amp;x=%d&amp;s=&amp;y=%d&amp;z=%d|/media/mmcblk0p2/data/maps/googlesat|\<br />
0,Google Maps (testing only)|http://mt1.google.com/mt/v=w2.92&amp;hl=en&amp;x=%d&amp;y=%d&amp;z=%d&amp;s=Galile|/media/mmcblk0p2/data/maps/googlemaps|1]&quot; \<br />
--type list --list-type string<br />
&lt;/pre&gt;<br />
<br />
&lt;onlyinclude&gt;<br />
{{ApplicationBox|<br />
Name=[[TangoGPS]]|<br />
Description= TangoGPS is a map application which can utilize Neo's built-in GPS to show your current location. It automatically downloads maps from http://openstreetmap.com and you can download map tiles for offline use too.|<br />
Screenshot=TangoGPS1.jpg|<br />
Homepage=http://www.tangogps.org|<br />
TestedOn=Om 2008.8|<br />
PackageName=tangogps<br />
}}<br />
&lt;/onlyinclude&gt;<br />
<br />
[[Category:GPS Applications]]</div>Myfanwyhttp://wiki.openmoko.org/wiki/TangoGPSTangoGPS2009-06-28T06:42:51Z<p>Myfanwy: /* Importing Tracks into tangoGPS */</p>
<hr />
<div>{{Languages|tangoGPS}}<br />
{{Application|tangoGPS}}<br />
<br />
__TOC__<br />
<br />
tangoGPS is a map application which can utilize Neo's built-in GPS to show your current location.<br />
<br />
[[Image:TangoGPS1.jpg]]<br />
<br />
Website: http://www.tangogps.org<br />
<br />
<br />
== Running tangoGPS ==<br />
=== [[Om 2008.8]] ===<br />
<br />
From the freerunner connected to the internet:<br />
&lt;pre&gt;<br />
opkg update<br />
opkg install gpsd<br />
&lt;/pre&gt;<br />
{{note|I experienced hangups if gpsd was not installed.}}<br />
&lt;pre&gt;<br />
opkg install http://www.tangogps.org/downloads/tangogps_0.9.5-r0_armv4t.opk<br />
&lt;/pre&gt;<br />
If opkg complains about not being able to acquire a lock, try:<br />
&lt;pre&gt;pkill packagekit&lt;/pre&gt;<br />
To get gpsd working on the FreeRunner you have to change the configuration according to [[Gpsd#GPS_on_GTA02]].<br />
Then start gpsd by:<br />
&lt;pre&gt;<br />
/etc/init.d/gpsd start<br />
&lt;/pre&gt;<br />
If you get an error about no GPS device in /etc/default/gpsd execute:<br />
&lt;pre&gt;<br />
echo &quot;GPS_DEV=\&quot;/dev/ttySAC1\&quot;&quot; &gt; /etc/default/gpsd<br />
&lt;/pre&gt;<br />
Now you must power up the GPS-chip by opening the &quot;Settings&quot; application and setting the GPS entry to &quot;on&quot;. Now you can run tangoGPS and wait until it get's a GPS fix. This can take up to a few minutes.<br />
<br />
=== [[Debian]] ===<br />
<br />
The latest version is available in [[Debian]].<br />
<br />
It depends on gpsd which conflicts with frameworkd in fso-frameworkd, but there is a package available that provides<br />
the gpsd interface to clients while using the services of the FSO frameworkd daemon, fso-gpsd. The install.sh script for the Debian distribution on the OpenMoko already installs it. To add tangogps run<br />
<br />
# apt-get install tangogps<br />
<br />
The gps device will be started automatically upon the invocation of tangogps or another gps application, e.g. like the one in [[Zhone]]. For the records, one can manually turn on the gps device using<br />
<br />
# echo 1 &gt;/sys/devices/platform/s3c2440-i2c/i2c-adapter/i2c-0/0-0073/neo1973-pm-gps.0/pwron<br />
<br />
The tangoGPS applications may appear as &quot;GPS &amp; Map&quot; on various desktops.<br />
<br />
'''Issues:'''<br />
* Both gpsd and the framework publish GPS data through dbus, though with different interfaces. This suggests a number of possible solutions.<br />
** gpsd or the framework could implement the other's interface (along with their own).<br />
** a translator could read one interface and emulate the other. This is what fso-gpsd does.<br />
** the framework could have an option to read data from gpsd.<br />
** ogpsd/gypsy could be extended to be backwards compatible with the majority of gps applications.<br />
<br />
=== FSO Milestone 3 ([[OpenmokoFramework]]) ===<br />
<br />
There are two various GPS interfaces -- (1) one provided with default gpsd and (2) the other provided by ogpsd (part of the frameworkd). tangoGPS requires the ad 1 and it obtains information from gps from the dbus interface provided by gpsd.<br />
<br />
On FSO milestone 3, there is tangoGPS pre-installed as well as both gpsd and ogpsd (see &lt;code&gt;/etc/frameworkd.conf&lt;/code&gt;, section &lt;code&gt;ogpsd&lt;/code&gt;). As mentioned above, there also exists a fso-gpsd package, that converts from ad 2 to ad 1 (unfortunately fso-gpsd is not in default image and must be installed with &lt;code&gt;opkg install fso-gpsd&lt;/code&gt;).<br />
<br />
You cannot have both &quot;providers&quot; (ad 1 &amp; ad 2) running, but you can have ad 2 (recommended for FSO) and &quot;convertor&quot; (fso-gpsd) providing the ad 1. To get usable tangoGPS on FreeRunner, one has to:<br />
<br />
# check that &lt;code&gt;/etc/frameworkd.conf&lt;/code&gt;, section &lt;code&gt;ogpsd&lt;/code&gt; reads GPS data from the right device (&lt;code&gt;/dev/ttySAC1&lt;/code&gt;)<br />
# if changes were made to configuration, one should restart the frameworkd -- &lt;code&gt;/etc/init.d/frameworkd stop &amp;&amp; /etc/init.d/frameworkd start&lt;/code&gt;<br />
# check that gpsd is not running -- &lt;code&gt;/etc/init.d/gpsd stop&lt;/code&gt;<br />
# check that fso-gpsd is installed and running -- &lt;code&gt;opkg install fso-gpsd; fso-gpsd&lt;/code&gt;<br />
# check that gps chip is online (&lt;code&gt;echo 1 &gt; /sys/devices/platform/s3c2440-i2c/i2c-adapter/i2c-0/0-0073/neo1973-pm-gps.0/pwron&lt;/code&gt;)<br />
# finally start up the tangoGPS and locate the gps signal; it should be up in a few minutes.<br />
<br />
Note 1: handy application for testing the gps (and gps signal strength) is &lt;code&gt;openmoko-agpsui&lt;/code&gt;, see general gps info at [[Gps]]<br />
<br />
Note 2: You can automate the process -- (1) remove the startup script for gpsd (&lt;code&gt;update-rc.d -f gpsd remove&lt;/code&gt;) and (2) create a simple startup scipt for fso-gpsd (you can use current script for gpsd as a skeleton)<br />
<br />
<br />
== Downloading Maps ==<br />
=== pre-load for offline use ===<br />
<br />
tangoGPS can bunch-download the map images so you don't need an internet connection while walking around. By default tangoGPS stores downloaded maps to /tmp/. This folder is lost every time you reboot the device. But you can use the &quot;Config&quot; tab within tangoGPS to change the &quot;Cache Dir&quot; location to , for example, /osm/ . So downloaded maps will be kept in the Neos flash, also after reboot. Note that the map files can take up large amounts of space, so you may want to store them on your sd card, e.g. in /media/card/osm or /media/mmcblk0p2/data/maps.<br />
<br />
If you find that TangoGPS does not remember configuration changes that you make to it, be sure to run it from the touchscreen, and not an SSH session. TangoGPS uses gconf to store its settings, and cannot access gconf when run via SSH.<br />
<br />
An alternative way to setup the configuration is through the command line. having /media/mmcblk0p2/data/maps as your data directory you could do the follwing:<br />
&lt;pre&gt;<br />
gconftool-2 -s /apps/tangogps/repos \<br />
&quot;[OSM|http://tile.openstreetmap.org/%d/%d/%d.png|/media/mmcblk0p2/data/maps/OSM|\<br />
0,Topo|maps-for-free|/media/mmcblk0p2/data/maps/maps4free|\<br />
0,Aerial|openaerial|/media/mmcblk0p2/data/maps/openaerial|\<br />
0,Opencyclemap|http://a.andy.sandbox.cloudmade.com/tiles/cycle/%d/%d/%d.png|/media/mmcblk0p2/data/maps/opencyclemap|\<br />
0,Google Sat (testing only)|http://khm1.google.com/kh?v=34&amp;hl=en&amp;x=%d&amp;s=&amp;y=%d&amp;z=%d|/media/mmcblk0p2/data/maps/googlesat|1]&quot; \<br />
--type list --list-type string<br />
&lt;/pre&gt;<br />
<br />
Once you have set the location to a non-volatile path, you can connect your Neo to the internet by USB or WiFi at home and start downloading the maps of your area. Tap the map screen and select &quot;map download&quot;. Now on-the-road tangoGPS will be able to show you maps in different zoom levels even though you are not connected to the internet.<br />
<br />
=== Downloading Maps via GPRS ===<br />
I think tangoGPS may have started working after I followed the instructions to get GPRS working with GSM multiplexing here: [[Manually_using_GPRS#Option_1:_With_GSM_multiplexing_and_with_a_GUI]]<br />
<br />
There are steps included in those instructions to improve GPS performance. The great thing is that once you get GPRS working, you can roam with TangoGPS running and have it download maps as needed over the GPRS connection!<br />
<br />
=== Updating pre-downloaded maps ===<br />
If you have many maps already downloaded, [[Media:updateMaps.txt|updateMaps.pl]] is a perl script to bring you up-to-date. It's made to work for OSM maps only, but can be adapted to work with any map dataset. See also: [[Yaouh!]].<br />
<br />
== Using tangoGPS for OpenStreetMap.org ==<br />
=== creating tracks ===<br />
tangoGPS works fine to create track for Openstreetmap. However, it records and stores a track in its native format, use [http://www.tangogps.org/downloads/convert2gpx.pl convert2gpx.pl] (see also: [http://psung.blogspot.com/2008/07/sharing-gps-tracks-from-tangogps-on.html tools])(you can also use [http://minucci.net/file/convert2gpx.py convert2gpx.py]) to convert the track to GPX (i.e to import into JOSM):<br />
<br />
perl convert2gpx.pl 20080903_111508.log &gt; 20080903_111508.gpx<br />
<br />
==== tangoGPS logging format ====<br />
<br />
&lt;lat&gt;,&lt;lon&gt;,&lt;elevation&gt;,&lt;speed&gt;,&lt;course&gt;,&lt;hdop&gt;,&lt;datetime&gt;<br />
<br />
=== using OpenStreetBugs ===<br />
[http://wiki.openstreetmap.org/wiki/TangoGPS#Using_together_with_OpenStreetBugs see OSM wiki]<br />
<br />
<br />
== Importing Tracks into tangoGPS ==<br />
<br />
tangoGPS does not support the import of tracks directly, however the following xslt style sheet can be used to convert gpx tracks to tangogps log files, which can then be imported&lt;br&gt;<br />
<br />
&lt;nowiki&gt;<br />
<br />
&lt;?xml version=&quot;1.0&quot; encoding=&quot;ISO-8859-1&quot;?&gt;&lt;br&gt;<br />
&lt;xsl:stylesheet version=&quot;1.0&quot; xmlns:xsl=&quot;http://www.w3.org/1999/XSL/Transform&quot; xmlns:g=&quot;http://www.topografix.com/GPX/1/1&quot;&gt;<br />
&lt;xsl:output method=&quot;text&quot; omit-xml-declaration=&quot;yes&quot;/&gt;<br />
&lt;xsl:template match=&quot;g:gpx&quot; &gt;<br />
&lt;xsl:for-each select=&quot;g:wpt&quot;&gt;<br />
&lt;xsl:value-of select=&quot;@lat&quot;/&gt;,&lt;xsl:value-of select=&quot;@lon&quot;/&gt;,11.8,1.1,346.0,1.4,2008-12-30T06:46:0&lt;xsl:if test=&quot;position()!=last()&quot;&gt;&lt;xsl:text&gt;1&lt;/xsl:text&gt;&lt;/xsl:if&gt;&lt;xsl:if test=&quot;position()=last()&quot;&gt;&lt;xsl:text&gt;2&lt;/xsl:text&gt;&lt;/xsl:if&gt;Z<br />
&lt;/xsl:for-each&gt;<br />
&lt;/xsl:template&gt;<br />
&lt;/xsl:stylesheet&gt;<br />
&lt;/nowiki&gt;<br />
<br />
&lt;br&gt;<br />
save this into a file called 'gpx2log.xslt', then run<br />
<br />
$ xsltproc gpx2log.xslt input_file.gpx &gt; output_file.log<br />
<br />
move save output_file.log to the traces <br />
<br />
and use the 'Load...' button on the 'Track' tab of tangogps to overlay it on the map<br />
<br />
Note: this stylesheet was thrown together in a short time, and makes at least one shortcut - namely, the use of 'dummy' variables for various details, such as the altitude, date, etc. feel free to improve<br />
<br />
You may help yourself by using [http://relet.net/frog/archives/68 this tool] to import GPX trackpoints as a series of POIs directly into the sqlite database which tangoGPS uses to store POIs.<br />
<br />
== Using the TangoGPS logs == <br />
<br />
You can convert the logfiles from TangoGPS to other formats using gpsbabel and this style-file: <br />
<br />
&lt;pre&gt;<br />
DESCRIPTION TangoGPS 0.92<br />
EXTENSION log<br />
DATATYPE TRACK<br />
<br />
FIELD_DELIMITER COMMA<br />
RECORD_DELIMITER NEWLINE<br />
<br />
IFIELD LAT_DECIMAL,&quot;&quot;,&quot;%f&quot;<br />
IFIELD LON_DECIMAL,&quot;&quot;,&quot;%f&quot;<br />
IFIELD ALT_METERS,&quot;&quot;,&quot;%f&quot;<br />
IFIELD PATH_SPEED,&quot;&quot;,&quot;%f&quot;<br />
IFIELD PATH_COURSE,&quot;&quot;,&quot;%f&quot;<br />
IFIELD GPS_HDOP,&quot;&quot;,&quot;%f&quot;<br />
IFIELD ISO_TIME,&quot;&quot;,&quot;%s&quot; <br />
&lt;/pre&gt;<br />
<br />
Save this as '''tangogps.style''' and you can use gpsbabel to for instance convert to google-earth files like this: <br />
<br />
gpsbabel -i xcsv,style=tangogps.style -o kml -f file.log -F file.kml<br />
<br />
== Add POI from address ==<br />
<br />
You can use [[gtkaddpoi]] for searching the destination address and add it as a POI.<br />
<br />
== Add POI from GeoRSS feed ==<br />
<br />
If you would like to import GeoRSS feeds from Google maps or elsewhere as points of interest (POI), read this [http://bonedaddy.net/pabs3/log/2009/05/28/georss-tangogps/ blog post]. Hopefully TangoGPS upstream will include the script soon, but until then and if you aren't using Debian, download this [http://bugs.debian.org/cgi-bin/bugreport.cgi?msg=5;filename=georss-to-tangogps-poi.py;att=1;bug=530718 script] from the Debian bug tracker.<br />
<br />
== Using Google Maps with tangoGPS ==<br />
<br />
Go to Config and create a new repository.<br />
<br />
Set the url for '''street-maps''' to:<br />
&lt;pre&gt;http://mt1.google.com/mt?&amp;x=%d&amp;y=%d&amp;z=%d&lt;/pre&gt;<br />
for '''satellite-maps''' to:<br />
&lt;pre&gt;http://khm.google.com/kh?&amp;x=%d&amp;y=%d&amp;zoom=%d&lt;/pre&gt;<br />
for '''topographic-maps''':<br />
&lt;pre&gt;http://mt.google.com/mt?v=app.81&amp;x=%d&amp;y=%d&amp;zoom=%d&lt;/pre&gt;<br />
<br />
Check the &quot;Inverted Zoom&quot; box. Press save Repository Configuration and you're ready to go.<br />
<br />
<br />
'''Since TangoGPS 0.9.5''' the &quot;Inverted Zoom&quot; box is no longer available because Google changed the addressing scheme; instead, select &quot;xyz instead of zxy&quot; and use the following URLs:<br />
&lt;pre&gt;<br />
Maps: <br />
http://mt3.google.com/mt/v=w2.89&amp;hl=en&amp;x=%d&amp;y=%d&amp;z=%d&amp;s=Galileo <br />
<br />
Sat: <br />
http://khm3.google.com/kh/v=36&amp;hl=en&amp;x=%d&amp;y=%d&amp;z=%d&amp;s=Galileo<br />
&lt;/pre&gt;<br />
<br />
'''Generalization:''' The above 'Maps' URL isn't the current one anymore, also. Google changes the URL layout sometimes. To find out the current scheme open maps.google.com and view the page source. Search for http:// until you find sth similar to the above URL. This way I found<br />
&lt;pre&gt;<br />
http://mt1.google.com/mt/v=w2.92&amp;amp;hl=en&amp;amp;x=3&amp;amp;y=5&amp;amp;z=4&amp;amp;s=Galile<br />
&lt;/pre&gt;<br />
<br />
Now you could tweak your configuration unsing the above link (delete the 'amp;' tokens and replace every number with '%d'), for example with<br />
&lt;pre&gt;<br />
gconftool-2 -s /apps/tangogps/repos \<br />
&quot;[OSM|http://tile.openstreetmap.org/%d/%d/%d.png|/media/mmcblk0p2/data/maps/OSM|\<br />
0,Topo|maps-for-free|/media/mmcblk0p2/data/maps/maps4free|\<br />
0,Aerial|openaerial|/media/mmcblk0p2/data/maps/openaerial|\<br />
0,Opencyclemap|http://a.andy.sandbox.cloudmade.com/tiles/cycle/%d/%d/%d.png|/media/mmcblk0p2/data/maps/opencyclemap|\<br />
0,Google Sat (testing only)|http://khm1.google.com/kh?v=34&amp;hl=en&amp;x=%d&amp;s=&amp;y=%d&amp;z=%d|/media/mmcblk0p2/data/maps/googlesat|\<br />
0,Google Maps (testing only)|http://mt1.google.com/mt/v=w2.92&amp;hl=en&amp;x=%d&amp;y=%d&amp;z=%d&amp;s=Galile|/media/mmcblk0p2/data/maps/googlemaps|1]&quot; \<br />
--type list --list-type string<br />
&lt;/pre&gt;<br />
<br />
&lt;onlyinclude&gt;<br />
{{ApplicationBox|<br />
Name=[[TangoGPS]]|<br />
Description= TangoGPS is a map application which can utilize Neo's built-in GPS to show your current location. It automatically downloads maps from http://openstreetmap.com and you can download map tiles for offline use too.|<br />
Screenshot=TangoGPS1.jpg|<br />
Homepage=http://www.tangogps.org|<br />
TestedOn=Om 2008.8|<br />
PackageName=tangogps<br />
}}<br />
&lt;/onlyinclude&gt;<br />
<br />
[[Category:GPS Applications]]</div>Myfanwyhttp://wiki.openmoko.org/wiki/TangoGPSTangoGPS2009-06-28T06:39:55Z<p>Myfanwy: /* Importing Tracks into tangoGPS */</p>
<hr />
<div>{{Languages|tangoGPS}}<br />
{{Application|tangoGPS}}<br />
<br />
__TOC__<br />
<br />
tangoGPS is a map application which can utilize Neo's built-in GPS to show your current location.<br />
<br />
[[Image:TangoGPS1.jpg]]<br />
<br />
Website: http://www.tangogps.org<br />
<br />
<br />
== Running tangoGPS ==<br />
=== [[Om 2008.8]] ===<br />
<br />
From the freerunner connected to the internet:<br />
&lt;pre&gt;<br />
opkg update<br />
opkg install gpsd<br />
&lt;/pre&gt;<br />
{{note|I experienced hangups if gpsd was not installed.}}<br />
&lt;pre&gt;<br />
opkg install http://www.tangogps.org/downloads/tangogps_0.9.5-r0_armv4t.opk<br />
&lt;/pre&gt;<br />
If opkg complains about not being able to acquire a lock, try:<br />
&lt;pre&gt;pkill packagekit&lt;/pre&gt;<br />
To get gpsd working on the FreeRunner you have to change the configuration according to [[Gpsd#GPS_on_GTA02]].<br />
Then start gpsd by:<br />
&lt;pre&gt;<br />
/etc/init.d/gpsd start<br />
&lt;/pre&gt;<br />
If you get an error about no GPS device in /etc/default/gpsd execute:<br />
&lt;pre&gt;<br />
echo &quot;GPS_DEV=\&quot;/dev/ttySAC1\&quot;&quot; &gt; /etc/default/gpsd<br />
&lt;/pre&gt;<br />
Now you must power up the GPS-chip by opening the &quot;Settings&quot; application and setting the GPS entry to &quot;on&quot;. Now you can run tangoGPS and wait until it get's a GPS fix. This can take up to a few minutes.<br />
<br />
=== [[Debian]] ===<br />
<br />
The latest version is available in [[Debian]].<br />
<br />
It depends on gpsd which conflicts with frameworkd in fso-frameworkd, but there is a package available that provides<br />
the gpsd interface to clients while using the services of the FSO frameworkd daemon, fso-gpsd. The install.sh script for the Debian distribution on the OpenMoko already installs it. To add tangogps run<br />
<br />
# apt-get install tangogps<br />
<br />
The gps device will be started automatically upon the invocation of tangogps or another gps application, e.g. like the one in [[Zhone]]. For the records, one can manually turn on the gps device using<br />
<br />
# echo 1 &gt;/sys/devices/platform/s3c2440-i2c/i2c-adapter/i2c-0/0-0073/neo1973-pm-gps.0/pwron<br />
<br />
The tangoGPS applications may appear as &quot;GPS &amp; Map&quot; on various desktops.<br />
<br />
'''Issues:'''<br />
* Both gpsd and the framework publish GPS data through dbus, though with different interfaces. This suggests a number of possible solutions.<br />
** gpsd or the framework could implement the other's interface (along with their own).<br />
** a translator could read one interface and emulate the other. This is what fso-gpsd does.<br />
** the framework could have an option to read data from gpsd.<br />
** ogpsd/gypsy could be extended to be backwards compatible with the majority of gps applications.<br />
<br />
=== FSO Milestone 3 ([[OpenmokoFramework]]) ===<br />
<br />
There are two various GPS interfaces -- (1) one provided with default gpsd and (2) the other provided by ogpsd (part of the frameworkd). tangoGPS requires the ad 1 and it obtains information from gps from the dbus interface provided by gpsd.<br />
<br />
On FSO milestone 3, there is tangoGPS pre-installed as well as both gpsd and ogpsd (see &lt;code&gt;/etc/frameworkd.conf&lt;/code&gt;, section &lt;code&gt;ogpsd&lt;/code&gt;). As mentioned above, there also exists a fso-gpsd package, that converts from ad 2 to ad 1 (unfortunately fso-gpsd is not in default image and must be installed with &lt;code&gt;opkg install fso-gpsd&lt;/code&gt;).<br />
<br />
You cannot have both &quot;providers&quot; (ad 1 &amp; ad 2) running, but you can have ad 2 (recommended for FSO) and &quot;convertor&quot; (fso-gpsd) providing the ad 1. To get usable tangoGPS on FreeRunner, one has to:<br />
<br />
# check that &lt;code&gt;/etc/frameworkd.conf&lt;/code&gt;, section &lt;code&gt;ogpsd&lt;/code&gt; reads GPS data from the right device (&lt;code&gt;/dev/ttySAC1&lt;/code&gt;)<br />
# if changes were made to configuration, one should restart the frameworkd -- &lt;code&gt;/etc/init.d/frameworkd stop &amp;&amp; /etc/init.d/frameworkd start&lt;/code&gt;<br />
# check that gpsd is not running -- &lt;code&gt;/etc/init.d/gpsd stop&lt;/code&gt;<br />
# check that fso-gpsd is installed and running -- &lt;code&gt;opkg install fso-gpsd; fso-gpsd&lt;/code&gt;<br />
# check that gps chip is online (&lt;code&gt;echo 1 &gt; /sys/devices/platform/s3c2440-i2c/i2c-adapter/i2c-0/0-0073/neo1973-pm-gps.0/pwron&lt;/code&gt;)<br />
# finally start up the tangoGPS and locate the gps signal; it should be up in a few minutes.<br />
<br />
Note 1: handy application for testing the gps (and gps signal strength) is &lt;code&gt;openmoko-agpsui&lt;/code&gt;, see general gps info at [[Gps]]<br />
<br />
Note 2: You can automate the process -- (1) remove the startup script for gpsd (&lt;code&gt;update-rc.d -f gpsd remove&lt;/code&gt;) and (2) create a simple startup scipt for fso-gpsd (you can use current script for gpsd as a skeleton)<br />
<br />
<br />
== Downloading Maps ==<br />
=== pre-load for offline use ===<br />
<br />
tangoGPS can bunch-download the map images so you don't need an internet connection while walking around. By default tangoGPS stores downloaded maps to /tmp/. This folder is lost every time you reboot the device. But you can use the &quot;Config&quot; tab within tangoGPS to change the &quot;Cache Dir&quot; location to , for example, /osm/ . So downloaded maps will be kept in the Neos flash, also after reboot. Note that the map files can take up large amounts of space, so you may want to store them on your sd card, e.g. in /media/card/osm or /media/mmcblk0p2/data/maps.<br />
<br />
If you find that TangoGPS does not remember configuration changes that you make to it, be sure to run it from the touchscreen, and not an SSH session. TangoGPS uses gconf to store its settings, and cannot access gconf when run via SSH.<br />
<br />
An alternative way to setup the configuration is through the command line. having /media/mmcblk0p2/data/maps as your data directory you could do the follwing:<br />
&lt;pre&gt;<br />
gconftool-2 -s /apps/tangogps/repos \<br />
&quot;[OSM|http://tile.openstreetmap.org/%d/%d/%d.png|/media/mmcblk0p2/data/maps/OSM|\<br />
0,Topo|maps-for-free|/media/mmcblk0p2/data/maps/maps4free|\<br />
0,Aerial|openaerial|/media/mmcblk0p2/data/maps/openaerial|\<br />
0,Opencyclemap|http://a.andy.sandbox.cloudmade.com/tiles/cycle/%d/%d/%d.png|/media/mmcblk0p2/data/maps/opencyclemap|\<br />
0,Google Sat (testing only)|http://khm1.google.com/kh?v=34&amp;hl=en&amp;x=%d&amp;s=&amp;y=%d&amp;z=%d|/media/mmcblk0p2/data/maps/googlesat|1]&quot; \<br />
--type list --list-type string<br />
&lt;/pre&gt;<br />
<br />
Once you have set the location to a non-volatile path, you can connect your Neo to the internet by USB or WiFi at home and start downloading the maps of your area. Tap the map screen and select &quot;map download&quot;. Now on-the-road tangoGPS will be able to show you maps in different zoom levels even though you are not connected to the internet.<br />
<br />
=== Downloading Maps via GPRS ===<br />
I think tangoGPS may have started working after I followed the instructions to get GPRS working with GSM multiplexing here: [[Manually_using_GPRS#Option_1:_With_GSM_multiplexing_and_with_a_GUI]]<br />
<br />
There are steps included in those instructions to improve GPS performance. The great thing is that once you get GPRS working, you can roam with TangoGPS running and have it download maps as needed over the GPRS connection!<br />
<br />
=== Updating pre-downloaded maps ===<br />
If you have many maps already downloaded, [[Media:updateMaps.txt|updateMaps.pl]] is a perl script to bring you up-to-date. It's made to work for OSM maps only, but can be adapted to work with any map dataset. See also: [[Yaouh!]].<br />
<br />
== Using tangoGPS for OpenStreetMap.org ==<br />
=== creating tracks ===<br />
tangoGPS works fine to create track for Openstreetmap. However, it records and stores a track in its native format, use [http://www.tangogps.org/downloads/convert2gpx.pl convert2gpx.pl] (see also: [http://psung.blogspot.com/2008/07/sharing-gps-tracks-from-tangogps-on.html tools])(you can also use [http://minucci.net/file/convert2gpx.py convert2gpx.py]) to convert the track to GPX (i.e to import into JOSM):<br />
<br />
perl convert2gpx.pl 20080903_111508.log &gt; 20080903_111508.gpx<br />
<br />
==== tangoGPS logging format ====<br />
<br />
&lt;lat&gt;,&lt;lon&gt;,&lt;elevation&gt;,&lt;speed&gt;,&lt;course&gt;,&lt;hdop&gt;,&lt;datetime&gt;<br />
<br />
=== using OpenStreetBugs ===<br />
[http://wiki.openstreetmap.org/wiki/TangoGPS#Using_together_with_OpenStreetBugs see OSM wiki]<br />
<br />
<br />
== Importing Tracks into tangoGPS ==<br />
<br />
tangoGPS does not support the import of tracks directly, however the following xslt style sheet can be used to convert gpx tracks to tangogps log files, which can then be imported&lt;br&gt;<br />
<br />
&lt;nowiki&gt;<br />
<br />
&lt;?xml version=&quot;1.0&quot; encoding=&quot;ISO-8859-1&quot;?&gt;<br />
&lt;xsl:stylesheet version=&quot;1.0&quot; xmlns:xsl=&quot;http://www.w3.org/1999/XSL/Transform&quot; xmlns:g=&quot;http://www.topografix.com/GPX/1/1&quot;&gt;<br />
&lt;xsl:output method=&quot;text&quot; omit-xml-declaration=&quot;yes&quot;/&gt;<br />
&lt;xsl:template match=&quot;g:gpx&quot; &gt;<br />
&lt;xsl:for-each select=&quot;g:wpt&quot;&gt;<br />
&lt;xsl:value-of select=&quot;@lat&quot;/&gt;,&lt;xsl:value-of select=&quot;@lon&quot;/&gt;,11.8,1.1,346.0,1.4,2008-12-30T06:46:0&lt;xsl:if test=&quot;position()!=last()&quot;&gt;&lt;xsl:text&gt;1&lt;/xsl:text&gt;&lt;/xsl:if&gt;&lt;xsl:if test=&quot;position()=last()&quot;&gt;&lt;xsl:text&gt;2&lt;/xsl:text&gt;&lt;/xsl:if&gt;Z<br />
&lt;/xsl:for-each&gt;<br />
&lt;/xsl:template&gt;<br />
&lt;/xsl:stylesheet&gt;<br />
&lt;/nowiki&gt;<br />
<br />
&lt;br&gt;<br />
save this into a file called 'gpx2log.xslt', then run<br />
<br />
$ xsltproc gpx2log.xslt input_file.gpx &gt; output_file.log<br />
<br />
move save output_file.log to the traces <br />
<br />
and use the 'Load...' button on the 'Track' tab of tangogps to overlay it on the map<br />
<br />
Note: this stylesheet was thrown together in a short time, and makes at least one shortcut - namely, the use of 'dummy' variables for various details, such as the altitude, date, etc. feel free to improve<br />
<br />
You may help yourself by using [http://relet.net/frog/archives/68 this tool] to import GPX trackpoints as a series of POIs directly into the sqlite database which tangoGPS uses to store POIs.<br />
<br />
== Using the TangoGPS logs == <br />
<br />
You can convert the logfiles from TangoGPS to other formats using gpsbabel and this style-file: <br />
<br />
&lt;pre&gt;<br />
DESCRIPTION TangoGPS 0.92<br />
EXTENSION log<br />
DATATYPE TRACK<br />
<br />
FIELD_DELIMITER COMMA<br />
RECORD_DELIMITER NEWLINE<br />
<br />
IFIELD LAT_DECIMAL,&quot;&quot;,&quot;%f&quot;<br />
IFIELD LON_DECIMAL,&quot;&quot;,&quot;%f&quot;<br />
IFIELD ALT_METERS,&quot;&quot;,&quot;%f&quot;<br />
IFIELD PATH_SPEED,&quot;&quot;,&quot;%f&quot;<br />
IFIELD PATH_COURSE,&quot;&quot;,&quot;%f&quot;<br />
IFIELD GPS_HDOP,&quot;&quot;,&quot;%f&quot;<br />
IFIELD ISO_TIME,&quot;&quot;,&quot;%s&quot; <br />
&lt;/pre&gt;<br />
<br />
Save this as '''tangogps.style''' and you can use gpsbabel to for instance convert to google-earth files like this: <br />
<br />
gpsbabel -i xcsv,style=tangogps.style -o kml -f file.log -F file.kml<br />
<br />
== Add POI from address ==<br />
<br />
You can use [[gtkaddpoi]] for searching the destination address and add it as a POI.<br />
<br />
== Add POI from GeoRSS feed ==<br />
<br />
If you would like to import GeoRSS feeds from Google maps or elsewhere as points of interest (POI), read this [http://bonedaddy.net/pabs3/log/2009/05/28/georss-tangogps/ blog post]. Hopefully TangoGPS upstream will include the script soon, but until then and if you aren't using Debian, download this [http://bugs.debian.org/cgi-bin/bugreport.cgi?msg=5;filename=georss-to-tangogps-poi.py;att=1;bug=530718 script] from the Debian bug tracker.<br />
<br />
== Using Google Maps with tangoGPS ==<br />
<br />
Go to Config and create a new repository.<br />
<br />
Set the url for '''street-maps''' to:<br />
&lt;pre&gt;http://mt1.google.com/mt?&amp;x=%d&amp;y=%d&amp;z=%d&lt;/pre&gt;<br />
for '''satellite-maps''' to:<br />
&lt;pre&gt;http://khm.google.com/kh?&amp;x=%d&amp;y=%d&amp;zoom=%d&lt;/pre&gt;<br />
for '''topographic-maps''':<br />
&lt;pre&gt;http://mt.google.com/mt?v=app.81&amp;x=%d&amp;y=%d&amp;zoom=%d&lt;/pre&gt;<br />
<br />
Check the &quot;Inverted Zoom&quot; box. Press save Repository Configuration and you're ready to go.<br />
<br />
<br />
'''Since TangoGPS 0.9.5''' the &quot;Inverted Zoom&quot; box is no longer available because Google changed the addressing scheme; instead, select &quot;xyz instead of zxy&quot; and use the following URLs:<br />
&lt;pre&gt;<br />
Maps: <br />
http://mt3.google.com/mt/v=w2.89&amp;hl=en&amp;x=%d&amp;y=%d&amp;z=%d&amp;s=Galileo <br />
<br />
Sat: <br />
http://khm3.google.com/kh/v=36&amp;hl=en&amp;x=%d&amp;y=%d&amp;z=%d&amp;s=Galileo<br />
&lt;/pre&gt;<br />
<br />
'''Generalization:''' The above 'Maps' URL isn't the current one anymore, also. Google changes the URL layout sometimes. To find out the current scheme open maps.google.com and view the page source. Search for http:// until you find sth similar to the above URL. This way I found<br />
&lt;pre&gt;<br />
http://mt1.google.com/mt/v=w2.92&amp;amp;hl=en&amp;amp;x=3&amp;amp;y=5&amp;amp;z=4&amp;amp;s=Galile<br />
&lt;/pre&gt;<br />
<br />
Now you could tweak your configuration unsing the above link (delete the 'amp;' tokens and replace every number with '%d'), for example with<br />
&lt;pre&gt;<br />
gconftool-2 -s /apps/tangogps/repos \<br />
&quot;[OSM|http://tile.openstreetmap.org/%d/%d/%d.png|/media/mmcblk0p2/data/maps/OSM|\<br />
0,Topo|maps-for-free|/media/mmcblk0p2/data/maps/maps4free|\<br />
0,Aerial|openaerial|/media/mmcblk0p2/data/maps/openaerial|\<br />
0,Opencyclemap|http://a.andy.sandbox.cloudmade.com/tiles/cycle/%d/%d/%d.png|/media/mmcblk0p2/data/maps/opencyclemap|\<br />
0,Google Sat (testing only)|http://khm1.google.com/kh?v=34&amp;hl=en&amp;x=%d&amp;s=&amp;y=%d&amp;z=%d|/media/mmcblk0p2/data/maps/googlesat|\<br />
0,Google Maps (testing only)|http://mt1.google.com/mt/v=w2.92&amp;hl=en&amp;x=%d&amp;y=%d&amp;z=%d&amp;s=Galile|/media/mmcblk0p2/data/maps/googlemaps|1]&quot; \<br />
--type list --list-type string<br />
&lt;/pre&gt;<br />
<br />
&lt;onlyinclude&gt;<br />
{{ApplicationBox|<br />
Name=[[TangoGPS]]|<br />
Description= TangoGPS is a map application which can utilize Neo's built-in GPS to show your current location. It automatically downloads maps from http://openstreetmap.com and you can download map tiles for offline use too.|<br />
Screenshot=TangoGPS1.jpg|<br />
Homepage=http://www.tangogps.org|<br />
TestedOn=Om 2008.8|<br />
PackageName=tangogps<br />
}}<br />
&lt;/onlyinclude&gt;<br />
<br />
[[Category:GPS Applications]]</div>Myfanwyhttp://wiki.openmoko.org/wiki/TangoGPSTangoGPS2009-06-28T06:39:11Z<p>Myfanwy: /* Importing Tracks into tangoGPS */</p>
<hr />
<div>{{Languages|tangoGPS}}<br />
{{Application|tangoGPS}}<br />
<br />
__TOC__<br />
<br />
tangoGPS is a map application which can utilize Neo's built-in GPS to show your current location.<br />
<br />
[[Image:TangoGPS1.jpg]]<br />
<br />
Website: http://www.tangogps.org<br />
<br />
<br />
== Running tangoGPS ==<br />
=== [[Om 2008.8]] ===<br />
<br />
From the freerunner connected to the internet:<br />
&lt;pre&gt;<br />
opkg update<br />
opkg install gpsd<br />
&lt;/pre&gt;<br />
{{note|I experienced hangups if gpsd was not installed.}}<br />
&lt;pre&gt;<br />
opkg install http://www.tangogps.org/downloads/tangogps_0.9.5-r0_armv4t.opk<br />
&lt;/pre&gt;<br />
If opkg complains about not being able to acquire a lock, try:<br />
&lt;pre&gt;pkill packagekit&lt;/pre&gt;<br />
To get gpsd working on the FreeRunner you have to change the configuration according to [[Gpsd#GPS_on_GTA02]].<br />
Then start gpsd by:<br />
&lt;pre&gt;<br />
/etc/init.d/gpsd start<br />
&lt;/pre&gt;<br />
If you get an error about no GPS device in /etc/default/gpsd execute:<br />
&lt;pre&gt;<br />
echo &quot;GPS_DEV=\&quot;/dev/ttySAC1\&quot;&quot; &gt; /etc/default/gpsd<br />
&lt;/pre&gt;<br />
Now you must power up the GPS-chip by opening the &quot;Settings&quot; application and setting the GPS entry to &quot;on&quot;. Now you can run tangoGPS and wait until it get's a GPS fix. This can take up to a few minutes.<br />
<br />
=== [[Debian]] ===<br />
<br />
The latest version is available in [[Debian]].<br />
<br />
It depends on gpsd which conflicts with frameworkd in fso-frameworkd, but there is a package available that provides<br />
the gpsd interface to clients while using the services of the FSO frameworkd daemon, fso-gpsd. The install.sh script for the Debian distribution on the OpenMoko already installs it. To add tangogps run<br />
<br />
# apt-get install tangogps<br />
<br />
The gps device will be started automatically upon the invocation of tangogps or another gps application, e.g. like the one in [[Zhone]]. For the records, one can manually turn on the gps device using<br />
<br />
# echo 1 &gt;/sys/devices/platform/s3c2440-i2c/i2c-adapter/i2c-0/0-0073/neo1973-pm-gps.0/pwron<br />
<br />
The tangoGPS applications may appear as &quot;GPS &amp; Map&quot; on various desktops.<br />
<br />
'''Issues:'''<br />
* Both gpsd and the framework publish GPS data through dbus, though with different interfaces. This suggests a number of possible solutions.<br />
** gpsd or the framework could implement the other's interface (along with their own).<br />
** a translator could read one interface and emulate the other. This is what fso-gpsd does.<br />
** the framework could have an option to read data from gpsd.<br />
** ogpsd/gypsy could be extended to be backwards compatible with the majority of gps applications.<br />
<br />
=== FSO Milestone 3 ([[OpenmokoFramework]]) ===<br />
<br />
There are two various GPS interfaces -- (1) one provided with default gpsd and (2) the other provided by ogpsd (part of the frameworkd). tangoGPS requires the ad 1 and it obtains information from gps from the dbus interface provided by gpsd.<br />
<br />
On FSO milestone 3, there is tangoGPS pre-installed as well as both gpsd and ogpsd (see &lt;code&gt;/etc/frameworkd.conf&lt;/code&gt;, section &lt;code&gt;ogpsd&lt;/code&gt;). As mentioned above, there also exists a fso-gpsd package, that converts from ad 2 to ad 1 (unfortunately fso-gpsd is not in default image and must be installed with &lt;code&gt;opkg install fso-gpsd&lt;/code&gt;).<br />
<br />
You cannot have both &quot;providers&quot; (ad 1 &amp; ad 2) running, but you can have ad 2 (recommended for FSO) and &quot;convertor&quot; (fso-gpsd) providing the ad 1. To get usable tangoGPS on FreeRunner, one has to:<br />
<br />
# check that &lt;code&gt;/etc/frameworkd.conf&lt;/code&gt;, section &lt;code&gt;ogpsd&lt;/code&gt; reads GPS data from the right device (&lt;code&gt;/dev/ttySAC1&lt;/code&gt;)<br />
# if changes were made to configuration, one should restart the frameworkd -- &lt;code&gt;/etc/init.d/frameworkd stop &amp;&amp; /etc/init.d/frameworkd start&lt;/code&gt;<br />
# check that gpsd is not running -- &lt;code&gt;/etc/init.d/gpsd stop&lt;/code&gt;<br />
# check that fso-gpsd is installed and running -- &lt;code&gt;opkg install fso-gpsd; fso-gpsd&lt;/code&gt;<br />
# check that gps chip is online (&lt;code&gt;echo 1 &gt; /sys/devices/platform/s3c2440-i2c/i2c-adapter/i2c-0/0-0073/neo1973-pm-gps.0/pwron&lt;/code&gt;)<br />
# finally start up the tangoGPS and locate the gps signal; it should be up in a few minutes.<br />
<br />
Note 1: handy application for testing the gps (and gps signal strength) is &lt;code&gt;openmoko-agpsui&lt;/code&gt;, see general gps info at [[Gps]]<br />
<br />
Note 2: You can automate the process -- (1) remove the startup script for gpsd (&lt;code&gt;update-rc.d -f gpsd remove&lt;/code&gt;) and (2) create a simple startup scipt for fso-gpsd (you can use current script for gpsd as a skeleton)<br />
<br />
<br />
== Downloading Maps ==<br />
=== pre-load for offline use ===<br />
<br />
tangoGPS can bunch-download the map images so you don't need an internet connection while walking around. By default tangoGPS stores downloaded maps to /tmp/. This folder is lost every time you reboot the device. But you can use the &quot;Config&quot; tab within tangoGPS to change the &quot;Cache Dir&quot; location to , for example, /osm/ . So downloaded maps will be kept in the Neos flash, also after reboot. Note that the map files can take up large amounts of space, so you may want to store them on your sd card, e.g. in /media/card/osm or /media/mmcblk0p2/data/maps.<br />
<br />
If you find that TangoGPS does not remember configuration changes that you make to it, be sure to run it from the touchscreen, and not an SSH session. TangoGPS uses gconf to store its settings, and cannot access gconf when run via SSH.<br />
<br />
An alternative way to setup the configuration is through the command line. having /media/mmcblk0p2/data/maps as your data directory you could do the follwing:<br />
&lt;pre&gt;<br />
gconftool-2 -s /apps/tangogps/repos \<br />
&quot;[OSM|http://tile.openstreetmap.org/%d/%d/%d.png|/media/mmcblk0p2/data/maps/OSM|\<br />
0,Topo|maps-for-free|/media/mmcblk0p2/data/maps/maps4free|\<br />
0,Aerial|openaerial|/media/mmcblk0p2/data/maps/openaerial|\<br />
0,Opencyclemap|http://a.andy.sandbox.cloudmade.com/tiles/cycle/%d/%d/%d.png|/media/mmcblk0p2/data/maps/opencyclemap|\<br />
0,Google Sat (testing only)|http://khm1.google.com/kh?v=34&amp;hl=en&amp;x=%d&amp;s=&amp;y=%d&amp;z=%d|/media/mmcblk0p2/data/maps/googlesat|1]&quot; \<br />
--type list --list-type string<br />
&lt;/pre&gt;<br />
<br />
Once you have set the location to a non-volatile path, you can connect your Neo to the internet by USB or WiFi at home and start downloading the maps of your area. Tap the map screen and select &quot;map download&quot;. Now on-the-road tangoGPS will be able to show you maps in different zoom levels even though you are not connected to the internet.<br />
<br />
=== Downloading Maps via GPRS ===<br />
I think tangoGPS may have started working after I followed the instructions to get GPRS working with GSM multiplexing here: [[Manually_using_GPRS#Option_1:_With_GSM_multiplexing_and_with_a_GUI]]<br />
<br />
There are steps included in those instructions to improve GPS performance. The great thing is that once you get GPRS working, you can roam with TangoGPS running and have it download maps as needed over the GPRS connection!<br />
<br />
=== Updating pre-downloaded maps ===<br />
If you have many maps already downloaded, [[Media:updateMaps.txt|updateMaps.pl]] is a perl script to bring you up-to-date. It's made to work for OSM maps only, but can be adapted to work with any map dataset. See also: [[Yaouh!]].<br />
<br />
== Using tangoGPS for OpenStreetMap.org ==<br />
=== creating tracks ===<br />
tangoGPS works fine to create track for Openstreetmap. However, it records and stores a track in its native format, use [http://www.tangogps.org/downloads/convert2gpx.pl convert2gpx.pl] (see also: [http://psung.blogspot.com/2008/07/sharing-gps-tracks-from-tangogps-on.html tools])(you can also use [http://minucci.net/file/convert2gpx.py convert2gpx.py]) to convert the track to GPX (i.e to import into JOSM):<br />
<br />
perl convert2gpx.pl 20080903_111508.log &gt; 20080903_111508.gpx<br />
<br />
==== tangoGPS logging format ====<br />
<br />
&lt;lat&gt;,&lt;lon&gt;,&lt;elevation&gt;,&lt;speed&gt;,&lt;course&gt;,&lt;hdop&gt;,&lt;datetime&gt;<br />
<br />
=== using OpenStreetBugs ===<br />
[http://wiki.openstreetmap.org/wiki/TangoGPS#Using_together_with_OpenStreetBugs see OSM wiki]<br />
<br />
<br />
== Importing Tracks into tangoGPS ==<br />
<br />
tangoGPS does not support the import of tracks directly, however the following xslt style sheet can be used to convert gpx tracks to tangogps log files, which can then be imported<br />
&lt;nowiki&gt;<br />
<br />
&lt;?xml version=&quot;1.0&quot; encoding=&quot;ISO-8859-1&quot;?&gt;<br />
&lt;xsl:stylesheet version=&quot;1.0&quot; xmlns:xsl=&quot;http://www.w3.org/1999/XSL/Transform&quot; xmlns:g=&quot;http://www.topografix.com/GPX/1/1&quot;&gt;<br />
&lt;xsl:output method=&quot;text&quot; omit-xml-declaration=&quot;yes&quot;/&gt;<br />
&lt;xsl:template match=&quot;g:gpx&quot; &gt;<br />
&lt;xsl:for-each select=&quot;g:wpt&quot;&gt;<br />
&lt;xsl:value-of select=&quot;@lat&quot;/&gt;,&lt;xsl:value-of select=&quot;@lon&quot;/&gt;,11.8,1.1,346.0,1.4,2008-12-30T06:46:0&lt;xsl:if test=&quot;position()!=last()&quot;&gt;&lt;xsl:text&gt;1&lt;/xsl:text&gt;&lt;/xsl:if&gt;&lt;xsl:if test=&quot;position()=last()&quot;&gt;&lt;xsl:text&gt;2&lt;/xsl:text&gt;&lt;/xsl:if&gt;Z<br />
&lt;/xsl:for-each&gt;<br />
&lt;/xsl:template&gt;<br />
&lt;/xsl:stylesheet&gt;/nowiki&gt;<br />
<br />
save this into a file called 'gpx2log.xslt', then run<br />
<br />
$ xsltproc gpx2log.xslt input_file.gpx &gt; output_file.log<br />
<br />
move save output_file.log to the traces <br />
<br />
and use the 'Load...' button on the 'Track' tab of tangogps to overlay it on the map<br />
<br />
Note: this stylesheet was thrown together in a short time, and makes at least one shortcut - namely, the use of 'dummy' variables for various details, such as the altitude, date, etc. feel free to improve<br />
<br />
You may help yourself by using [http://relet.net/frog/archives/68 this tool] to import GPX trackpoints as a series of POIs directly into the sqlite database which tangoGPS uses to store POIs.<br />
<br />
== Using the TangoGPS logs == <br />
<br />
You can convert the logfiles from TangoGPS to other formats using gpsbabel and this style-file: <br />
<br />
&lt;pre&gt;<br />
DESCRIPTION TangoGPS 0.92<br />
EXTENSION log<br />
DATATYPE TRACK<br />
<br />
FIELD_DELIMITER COMMA<br />
RECORD_DELIMITER NEWLINE<br />
<br />
IFIELD LAT_DECIMAL,&quot;&quot;,&quot;%f&quot;<br />
IFIELD LON_DECIMAL,&quot;&quot;,&quot;%f&quot;<br />
IFIELD ALT_METERS,&quot;&quot;,&quot;%f&quot;<br />
IFIELD PATH_SPEED,&quot;&quot;,&quot;%f&quot;<br />
IFIELD PATH_COURSE,&quot;&quot;,&quot;%f&quot;<br />
IFIELD GPS_HDOP,&quot;&quot;,&quot;%f&quot;<br />
IFIELD ISO_TIME,&quot;&quot;,&quot;%s&quot; <br />
&lt;/pre&gt;<br />
<br />
Save this as '''tangogps.style''' and you can use gpsbabel to for instance convert to google-earth files like this: <br />
<br />
gpsbabel -i xcsv,style=tangogps.style -o kml -f file.log -F file.kml<br />
<br />
== Add POI from address ==<br />
<br />
You can use [[gtkaddpoi]] for searching the destination address and add it as a POI.<br />
<br />
== Add POI from GeoRSS feed ==<br />
<br />
If you would like to import GeoRSS feeds from Google maps or elsewhere as points of interest (POI), read this [http://bonedaddy.net/pabs3/log/2009/05/28/georss-tangogps/ blog post]. Hopefully TangoGPS upstream will include the script soon, but until then and if you aren't using Debian, download this [http://bugs.debian.org/cgi-bin/bugreport.cgi?msg=5;filename=georss-to-tangogps-poi.py;att=1;bug=530718 script] from the Debian bug tracker.<br />
<br />
== Using Google Maps with tangoGPS ==<br />
<br />
Go to Config and create a new repository.<br />
<br />
Set the url for '''street-maps''' to:<br />
&lt;pre&gt;http://mt1.google.com/mt?&amp;x=%d&amp;y=%d&amp;z=%d&lt;/pre&gt;<br />
for '''satellite-maps''' to:<br />
&lt;pre&gt;http://khm.google.com/kh?&amp;x=%d&amp;y=%d&amp;zoom=%d&lt;/pre&gt;<br />
for '''topographic-maps''':<br />
&lt;pre&gt;http://mt.google.com/mt?v=app.81&amp;x=%d&amp;y=%d&amp;zoom=%d&lt;/pre&gt;<br />
<br />
Check the &quot;Inverted Zoom&quot; box. Press save Repository Configuration and you're ready to go.<br />
<br />
<br />
'''Since TangoGPS 0.9.5''' the &quot;Inverted Zoom&quot; box is no longer available because Google changed the addressing scheme; instead, select &quot;xyz instead of zxy&quot; and use the following URLs:<br />
&lt;pre&gt;<br />
Maps: <br />
http://mt3.google.com/mt/v=w2.89&amp;hl=en&amp;x=%d&amp;y=%d&amp;z=%d&amp;s=Galileo <br />
<br />
Sat: <br />
http://khm3.google.com/kh/v=36&amp;hl=en&amp;x=%d&amp;y=%d&amp;z=%d&amp;s=Galileo<br />
&lt;/pre&gt;<br />
<br />
'''Generalization:''' The above 'Maps' URL isn't the current one anymore, also. Google changes the URL layout sometimes. To find out the current scheme open maps.google.com and view the page source. Search for http:// until you find sth similar to the above URL. This way I found<br />
&lt;pre&gt;<br />
http://mt1.google.com/mt/v=w2.92&amp;amp;hl=en&amp;amp;x=3&amp;amp;y=5&amp;amp;z=4&amp;amp;s=Galile<br />
&lt;/pre&gt;<br />
<br />
Now you could tweak your configuration unsing the above link (delete the 'amp;' tokens and replace every number with '%d'), for example with<br />
&lt;pre&gt;<br />
gconftool-2 -s /apps/tangogps/repos \<br />
&quot;[OSM|http://tile.openstreetmap.org/%d/%d/%d.png|/media/mmcblk0p2/data/maps/OSM|\<br />
0,Topo|maps-for-free|/media/mmcblk0p2/data/maps/maps4free|\<br />
0,Aerial|openaerial|/media/mmcblk0p2/data/maps/openaerial|\<br />
0,Opencyclemap|http://a.andy.sandbox.cloudmade.com/tiles/cycle/%d/%d/%d.png|/media/mmcblk0p2/data/maps/opencyclemap|\<br />
0,Google Sat (testing only)|http://khm1.google.com/kh?v=34&amp;hl=en&amp;x=%d&amp;s=&amp;y=%d&amp;z=%d|/media/mmcblk0p2/data/maps/googlesat|\<br />
0,Google Maps (testing only)|http://mt1.google.com/mt/v=w2.92&amp;hl=en&amp;x=%d&amp;y=%d&amp;z=%d&amp;s=Galile|/media/mmcblk0p2/data/maps/googlemaps|1]&quot; \<br />
--type list --list-type string<br />
&lt;/pre&gt;<br />
<br />
&lt;onlyinclude&gt;<br />
{{ApplicationBox|<br />
Name=[[TangoGPS]]|<br />
Description= TangoGPS is a map application which can utilize Neo's built-in GPS to show your current location. It automatically downloads maps from http://openstreetmap.com and you can download map tiles for offline use too.|<br />
Screenshot=TangoGPS1.jpg|<br />
Homepage=http://www.tangogps.org|<br />
TestedOn=Om 2008.8|<br />
PackageName=tangogps<br />
}}<br />
&lt;/onlyinclude&gt;<br />
<br />
[[Category:GPS Applications]]</div>Myfanwyhttp://wiki.openmoko.org/wiki/OpkgOpkg2009-05-31T09:07:38Z<p>Myfanwy: /* FAQ */</p>
<hr />
<div>{{Languages|Opkg}}<br />
<br />
== About Opkg ==<br />
<br />
Opkg is a lightweight package management system based on [http://handhelds.org/moin/moin.cgi/Ipkg Ipkg].<br />
<br />
<br />
Mid December, 2008, the project moved to Google code: http://code.google.com/p/opkg/<br />
* Group: http://groups.google.com/group/opkg-devel<br />
* mailto: opkg-devel at googlegroups.com &lt;opkg-devel at googlegroups.com&gt;<br />
* Checkout Code: http://code.google.com/p/opkg/source/checkout<br />
<br />
Prior to that date, a mailing list for discussion was available here: http://lists.openmoko.org/mailman/listinfo/opkg-devel<br />
Source code was available in the subversion repository: http://svn.openmoko.org/trunk/src/target/opkg/. The repository could also be [http://svnweb.openmoko.org/trunk/src/target/opkg/ viewed online].<br />
<br />
You can learn how to create own [http://handhelds.org/moin/moin.cgi/BuildingIpkgs Opkg packages] on the Ipkg site.<br />
<br />
Packages should install .desktops at the very end of the installation process. This ensures that the icons referenced in the .desktop file are available. [https://docs.openmoko.org/trac/ticket/1524 Reference]<br />
<br />
== New Features ==<br />
<br />
This is a list of features that have been completed. Mostly this is a list of changes from Ipkg.<br />
<br />
* Use libcurl to download files<br />
* Send download progress updates to libopkg clients<br />
* Re-organize and clean up source code into sub directories<br />
* Verify package lists with gpg detached signature<br />
* Mark packages that were installed to satisfy dependencies (auto installed)<br />
* Additional command line option to remove &quot;auto installed&quot; packages<br />
* Support for faceted classification (similar to debtags). ''A &quot;Tags&quot; line has been added to the package information and opkg makes this available to clients, but does not process it in anyway. The command line client also does not use this features yet.''<br />
<br />
<br />
=== Ipkg Patches ===<br />
<br />
The following ipkg patches have been applied:<br />
<br />
* &quot;2-pkg-vec--Optimize-gross-inefficiency.patch&quot; from OpenEmbedded <br />
* &quot;1-pkg-parse--Optimize-inefficient-parsing.patch&quot; from OpenEmbedded<br />
<br />
* [http://svn.o-hand.com/view/poky/trunk/meta/packages/ipkg/files/update_version_comparision.patch?rev=3827&amp;view=auto update_version_comparision.patch] from Richard Purdie<br />
* [http://svn.o-hand.com/view/poky/trunk/meta/packages/ipkg/files/enable_debversion.patch?rev=3827&amp;view=auto enable_debversion.patch] from Richard Purdie<br />
<br />
== Planned features ==<br />
<br />
These are features either under development or planned for inclusion before the next release.<br />
<br />
* improve/cleanup [[libopkg]] api<br />
* locking system to prevent two simultaneous operations on the file system<br />
<br />
=== Bug fixes ===<br />
<br />
* Ipkg bug - Overflowing / crashes machine - [http://bugs.openembedded.net/show_bug.cgi?id=1028]<br />
* ipkg tries to access ro SD card - [http://bugs.openembedded.net/show_bug.cgi?id=1029]<br />
<br />
=== Lower priority features ===<br />
<br />
* Simple user interactions during postinstall<br />
* Improve command line options<br />
* Restructure source code and make it more robust<br />
* Store packages in database<br />
* Check available space in /tmp prior to downloading<br />
* Check available space in dest prior to unpacking<br />
<br />
== Possible Issues ==<br />
<br />
This is a list of possible issues or known bugs.<br />
<br />
* http proxy works but authentication not tested yet (--[[User:cberger|cberger]] tested version 0.1.4, does not recognize proxy_username and proxy_password for authentication)<br />
* autoremove feature only inspects &quot;depends&quot; and not &quot;pre-depends&quot;<br />
<br />
== Error Codes ==<br />
<br />
It looks like, in some cases, Opkg will return an error code if something goes wrong. Here's a list that I pulled from the error.h file:<br />
<br />
* -1: Unknown Error<br />
* 0: No Error (Success)<br />
<br />
Configuration Errors:<br />
* 1: Could not set default destination<br />
* 2: Error parsing config file<br />
* 3: Could not create temporary directory<br />
* 4: Could not obtain administrative lock<br />
** This could be cause by assassin not releasing the lock on the package management. It can be released by killing its manager:<br />
killall packagekitd<br />
<br />
Package Errors<br />
* 5: Unsatisfied Dependencies<br />
* 6: Is Essential<br />
* 7: Has Dependents<br />
* 8: Has No Candidate<br />
* 9: PackageHas No Available Architecture<br />
<br />
Install Errors<br />
* 10: Not Trusted<br />
* 11: Download Error<br />
* 12: Conflicts<br />
* 13: Already Installed<br />
* 14: Dependencies<br />
* 15: No Downgrade<br />
* 16: Out Of Space<br />
* 17: Bad Signature<br />
* 18: MD5 Error<br />
* 19: Internal Error<br />
<br />
{{note|I had a problem where I was trying to manually install a package that had dependencies. The dependencies had a bad signature (actually, my signature files were bad). Instead of returning 17 because of the bad signature, it returned 14 because of a dependency problem. So if you get a 14, try installing that package by itself and see what you get. --[[User:Jtickle|Jtickle]] 18:16, 23 July 2008 (EST) }}<br />
<br />
== FAQ ==<br />
<br />
Q. What version of Ipkg is Opkg based on?<br />
<br />
A. It is based on the [http://www.handhelds.org/download/packages/ipkg/ipkg-0.99.163.tar.gz ipkg-0.99.163] tarball<br />
<br />
Q. Why &quot;fork&quot; and rename Ipkg?<br />
<br />
A. Ipkg is no longer actively maintained upstream and there are potential trademark issues with using the Ipkg name<br />
<br />
Q. Does opkg have a feature similar to APT pinning?<br />
<br />
A. Yes you can define priorities on the architecture field (the second field in a feed definition) in /etc/opkg/arch.conf<br />
<br />
Q. Does opkg have an auto completion system ?<br />
<br />
A. Yes, it's a contribution script available at the [http://blog.upme.fr/?/Linux/28-Openmoko-Opkg-Autocompletion-With-Packages-Names upme blog]<br />
<br />
Q: How similar is the ipk format, to the deb format? They look very similar; the data and control tar balls are identical as far as i can tell.<br />
<br />
<br />
{{Languages|Opkg}}<br />
<br />
[[Category:Settings Applications]]</div>Myfanwyhttp://wiki.openmoko.org/wiki/ParoliParoli2009-05-20T03:02:37Z<p>Myfanwy: /* FAQ */</p>
<hr />
<div>[[Image:Paroli.png|thumb|Paroli Screenshot]]<br />
Paroli is a new approach to application development on the Openmoko phones. It is actually able, in combination with Om2009 distribution to make Freerunner work as a simple phone.<br />
It's based on top of the [[OpenmokoFramework|FSO framework]] and enables the use of it via a core and several services.<br />
<br />
For more information please visit [http://www.paroli-project.org/ Paroli website]<br />
<br />
If you are interested in helping out with paroli, contribute code or test or or or ... Let us know! Send a mail to [mailto:mirko@openmoko.com Mirko] and/or visit #paroli IRC channel!<br />
<br />
== Stuff that works ==<br />
<br />
Paroli actually makes FR a simple, very working phone!!<br />
* ability to turn off PIN check &amp; change pin! (The first distro that does it ?)<br />
* Connecting to WLAN (with WPA, WPA2, WEP)<br />
* suspend &amp; resume<br />
* etc etc<br />
<br />
==Installation / download ==<br />
<br />
=== Full distro ===<br />
<br />
To install the [[Om2009]] distribution download the uImage and fso-paroli-image from http://downloads.openmoko.org/distro/testing/NeoFreerunner/<br />
<br />
=== Only the package ===<br />
In order to get the package from unstable you'll need to adjust the configuration of opkg:<br />
<br />
&lt;nowiki&gt;echo src/gz openmoko-unstable-armv4t http://downloads.openmoko.org/repository/unstable/armv4t &gt; /etc/opkg/om-unstable.conf&lt;/nowiki&gt;<br />
<br />
Then do an opkg-update and opkg install paroli.<br />
<br />
This should get you the newest version.<br />
<br />
=== Download ===<br />
<br />
Download paroli from <br />
[http://downloads.freesmartphone.org/fso-milestone5/feeds//armv4t/paroli_0.2.1+gitr7a2fdc16174258e9276e7c2d80f500b4dd624442-r0_armv4t.ipk http://downloads.freesmartphone.org/fso-milestone5/feeds//armv4t/paroli_0.2.1+gitr7a2...442-r0_armv4t.ipk]<br />
<br />
or from http://downloads.openmoko.org/distro/experimental/<br />
<br />
=== Getting the sources ===<br />
<br />
git clone http://git.paroli-project.org/paroli.git/<br />
<br />
== FAQ ==<br />
<br />
''' I/O... what's that..'''<br />
* I/O is the phone log. It'll show your dialled, answered and missed calls.<br />
** why do you name something so fundamentally necessary, with such an obscure name?<br />
* Msgs is the place to send &amp; read messages (SMS)<br />
* Tele is the dialler<br />
* People is the phone book<br />
<br />
'''How do I get to settings?'''<br />
<br />
Go to the home-screen (the one with the big clock) and hold the AUX-button pressed for 2 seconds.<br />
<br />
'''How do I get Illume?'''<br />
<br />
Open settings, click on &quot;display&quot; and then hit &quot;profile&quot; (once) and be patient, after some rumbling on the screen you will have the standard illume look with paroli in windowed mode.<br />
<br />
''' How do I shut it down? '''<br />
<br />
Hold the power button down for 10 seconds. It will not give you a visual feedback, it just starts shutting down.<br />
<br />
''' How do I change the audio profile '''<br />
<br />
* When not on call, short pressing of AUX changes between audio profiles (default / silent).<br />
* When on call, it changes the speaker volume (20-40-60-80-100%). Using level over 80 might cause some echo.<br />
<br />
''' Where are the messages folder? Drafts, sent etc.?<br />
<br />
<br />
'''How do I lock the screen, without going to suspend?<br />
<br />
<br />
''' How do i set the alarm?<br />
<br />
<br />
''' How do I contribute? '''<br />
<br />
<br />
See [[Om 2009 get active#Paroli phone software|Paroli section on Om2009 &quot;get active&quot; page]].<br />
<br />
== Known issues ==<br />
See wiki page [[paroli-issues]] for the list of known issues and vital feature requests.<br />
<br />
Bug tracker is available at http://www.paroli-project.org/trac<br />
<br />
[[Category:FSO]]</div>Myfanwyhttp://wiki.openmoko.org/wiki/DistributionsDistributions2009-05-01T12:55:36Z<p>Myfanwy: /* Non-Openmoko distributions */</p>
<hr />
<div>{{Languages|Distributions}}<br />
<br />
{|align=left<br />
|__TOC__<br />
|}<br />
<br />
== About distributions ==<br />
Openmoko distributions are designed to run on various mobile devices, with the primary aim of supporting Openmoko Inc.'s [[GTA01:Neo 1973|Neo 1973]] and [[Neo FreeRunner]] phones. They are GNU/Linux distributions -- complete operating systems including user applications. You can install any of them on your phone or even have a dualboot system with two distributions installed. For downloads see [[Download]], for installation instructions see [[Flashing the Neo FreeRunner]].<br />
<br />
Besides, Openmoko distributions also run on [[Supported devices|other]] mobile devices and some other software distributions also run on the phones of Openmoko Inc.<br />
<br />
=== Choosing a distribution ===<br />
* Official/current. As of December 2008, the phones ship with [[Om 2008.9]].The branch currently supported by Openmoko Inc. is [[Om 2008.12 Update]], which is the second minor upgrade of [[Om 2008.9]] (the version formerly named ''ASU'').<br />
* Official/future. The current trunk tip is a &quot;base image&quot; on which the next major release should be based. This next release[http://wiki.openmoko.org/wiki/Om2009 (Om 2009)] can be previewed by installing milestones of the [[FSO]] - Free Smartphone.Org project. If you want to develop anything that last, your platform is [[FSO]] (and the choice between EFL, GTK+, Qt, Java, Python or whatever is open). The [[Debian]] packaging team also track that branch.<br />
* Openmoko community. Based on [[Om 2008.8]], the community made the [[FDOM]] distribution by adding lots of fixes and applications to it. Most new users find [[FDOM]] the most comprehensive and functional distribution.<br />
* Other community. The FreeRunner is also a reference platform for TrollTech's ''Qt Extended'' (formerly [[Qtopia]]) distribution. If you want &quot;just a working phone&quot;, try [[Qtopia]].<br />
* Other communities. [[Android]] work is in progress; [[Debian]] and [[Gentoo]] are for people who do not need to ask which distribution they should use.<br />
<br />
<br />
{| class=&quot;wikitable&quot; style=&quot;float:right;width:200px;background-color:#FF6600;text-align:center;border-collapse:collapse;font-weight:bold&quot;<br />
|&lt;font color=white&gt;Distributions&lt;/font&gt;<br />
|-<br />
! style='background-color:#333333;color:#FFFFFF'|<br />
&lt;div align=left&gt;<br />
* &lt;font color='#BBBBBB'&gt;Openmoko (official)&lt;/font&gt;<br />
** [[Om2009]]<br />
** [[Om 2008.12 Update]]<br />
** [[Om 2008.9 Update]]<br />
** [[Om 2008.8]]<br />
** [[Om 2007.2]]<br />
** [[OpenmokoFramework|FSO]]<br />
* &lt;font color='#BBBBBB'&gt;Om Community&lt;/font&gt;<br />
** [[SHR]]<br />
** [[FDOM]]<br />
* &lt;font color='#BBBBBB'&gt;Other&lt;/font&gt;<br />
** [[Qtopia]]<br />
** [[Debian]]<br />
** [[Gentoo]]<br />
** [[Android]]<br />
** [[Hackable:1]]<br />
** [[Fyp]]<br />
&lt;/div&gt;<br />
|-<br />
|}<br />
<br />
=== Please note ===<br />
<br />
* Stable in the FreeRunner world does not mean the same thing as stable in the Debian world.<br />
* Most distributions use the same bootloader, kernel, drivers and hardware. Therefore, the same low level bugs are commonly found in all distributions. The latest and greatest software usually has most bug fixes, plus a whole set of new fresh bugs.<br />
* Most of these distributions also have package repositories. It is a BAD idea to feed from another distribution's repository.<br />
* Upgrade path between these distributions are mostly not tested, thus updating by changing the feeds will most likely end in broken packages or even an unbootable system. It is advisable to reflash the whole filesystem with [[dfu-util]] to switch between the different distributions, with the reminder that a dual-boot setup (e.g. via sdcard or NFS) can be used.<br />
<br />
== Official Openmoko releases ==<br />
<br />
'Release targets' offered by Openmoko Inc. are built out of different branches of the [[OpenEmbedded]] metadistribution source tree.<br />
<br />
=== Om series ===<br />
<br />
* '''[[Om2009]]''' is intended to be the new distro; it is not a simple follow-on from [[Om 2008.12 Update]]. '''It is still very much in development and by no means ready for production use''' and is based on the [http://freesmartphone.org freesmartphone.org] milestone 5.5 framework.<br />
<br />
{{Main|Om2009}}<br />
<br />
* '''[[Om 2008.12 Update]]''' is the second point release after the initial ''Om 2008.9'' release.<br />
<br />
{{Main|Om 2008.12 Update}}<br />
<br />
* '''[[Om 2008.9 Update]]''' is the first point release after the initial ''Om 2008.8'' release. Openmoko recommends that all existing installations of Om 2008.8 should be updated to that version. Quality-wise, we are still far from the goal, but this version includes general stability enhancing operating system improvements and a new splash screen. No applications were added or removed. Users with basic telephony needs will find it tolerable as an everyday phone.<br />
<br />
{{Main|Om 2008.9 Update}}<br />
<br />
* '''[[Om 2008.8]]''' was released on August 8, 2008, to replace 2007.2. Prior to that, its codename was ASU (April/August Software Update). This is still the name of the branch in the version control system. This distribution integrates the [http://trolltech.com/products/qtopia Qtopia] phone stack with a set of new Openmoko applications based on the Enlightenment Foundation Libraries ([[EFL_Documentation|EFL]]). Qtopia being a more mature product than the GNOME Mobile stack, the standard phone applications (dialer, contacts, calculator, calendar) work better than in 2007.2. The Qtopia used in 2008.8 was ported to run on X11, contrary to standard Qtopia which uses the framebuffer. This allows non-Qt applications to safely share the screen with Qt applications. This is a .0 release, many unresolved issues remain in the lower layers (kernel power management, sound, wifi drivers...).<br />
<br />
{{Main|Om2008.8}}<br />
<br />
* '''[[Om 2007.2]]''' is the base-system which is installed on FreeRunner when it leaves the factory. The interface was totally finger-oriented, optimized for 285ppi, and very orange. It used the GTK+ stack, which is part of the [http://www.gnome.org/mobile/ GNOME Mobile] platform. This distribution is now considered obsolete and not being worked on by Openmoko Inc or by OpenedHand. There is a community effort (see [[SHR]]) to port the GTK based telephony applications to the future middleware from [[FSO]].<br />
<br />
{{Main|Om 2007.2}}<br />
<br />
=== FSO series ===<br />
<br />
'''FSO''' is an abbreviation for FreeSmartphone.Org. Openmoko is working on a stable system services back-end. Focus is on stable highlevel services that you can access from whatever language or UI that supports [http://dbus.freesmartphone.org/ dbus]. The framework will be used in forthcoming Openmoko distributions. FSO is all about middleware, but if one stacks a bootloader+kernel under it and telephony applications on top, one gets a functional distribution. These are made available as FSO-image milestones. <br />
<br />
* '''FSO Milestone V''' was released and named 'Calling All Stations'. The telephony application on top of it is Zhone. This is a basic Python dialer/homescreen designed as scaffolding to test the FSO functionalities (even if Zhone is pretty, code path coverage is more critical to it than user-friendliness). More details at <br />
[http://wiki.openmoko.org/wiki/OpenmokoFramework/Status_Update_6 Status Update 6]. You can grab it from http://downloads.freesmartphone.org/fso-stable/milestone5.1/ . <br />
<br />
{{Main|FSO}}<br />
<br />
== Openmoko community releases ==<br />
<br />
=== SHR - Stable Hybrid Release ===<br />
<br />
SHR is a community driven distribution. It contains some basic EFL based applications which make use of the FSO. There currently is an [[EFL_Documentation|EFL]] (with elementary) dialer, messages and contacts application programmed in C, as well as a nice Settings-GUI in Python. As of April 12th, 2009, there is no stable release of this distribution yet, as the SHR team doesn't feel it to be good enough. You can find images though on the [http://shr.bearstech.com/shr-testing SHR buildhost].<br />
<br />
{{Main|Stable Hybrid Release}}<br />
<br />
=== FDOM (FAT and Dirty Openmoko) ===<br />
<br />
[[FDOM]] is a distribution based on Openmoko's currently supported image, updated with many ready-to-use applications and with fixes posted in the mailing lists. A combination of applications (everything goes) and fixes to demonstrate the capabilities of the Freerunner and to have a functional phone (sort of). This all while retaining the ability to update through the official feeds.<br />
<br />
{{Main|FDOM}}<br />
<br />
=== Non-Openmoko distributions ===<br />
<br />
These are not Openmoko (and OE) based distributions. These are alternatives you can run on your Openmoko phones.<br />
<br />
==== Qt Extended ====<br />
Qt Extended has had several names. The current name is &lt;b&gt;Qt Extended Improved&lt;/b&gt;. An Openmoko-based community develops Qt Extended Improved as a Free Software project. Qt Extended Improved builds on the foundation of Qt Extended/Qtopia/Qt by Qt Software/Trolltech. Qt Extended Improved provides a robust telephony stack, a webkit based browser and other smartphone features.<br />
<br />
On 5th March 2009 Qt Software released Qt Extended 4.4.3. On 3rd March 2009 Qt Software announced that Qt Extended would 4.4.3 would be the last release of the Qt Extended product. Prior to version 4.3, Qt Extended was known as Qtopia.<br />
<br />
{{Main|Qtopia / Qt Extended on FreeRunner}}<br />
<br />
==== Debian ====<br />
Debian is &quot;the universal operating system&quot;. It comes with thousands and thousands of packages (most of them designed for desktops or servers so far). So in the words of Joachim &quot;nomeata&quot; Breitner from the [http://wiki.debian.org/Teams/DebianFSO pkg-fso] team, this is not really a distribution in the Openmoko sense of the word, but rather a different underlying system for Openmoko distributions. At the moment, we ship the software from the FSO stack, but hopefully we’ll also have, for example, the Stable Hybrid Release software in our archive. So for now, Debian is a different way of installing FSO, which takes more space and provides more programs :-)<br />
<br />
{{Main|Debian}}<br />
<br />
==== [[Gentoo ]]====<br />
Gentoo is all about choices. When installing Gentoo, this is made clear to you several times -- you can choose how much you want to compile yourself, how to install Gentoo, what system logger you want, etc. Gentoo is a fast, modern metadistribution with a clean and flexible design. Gentoo is built around free software and doesn't hide from its users what is beneath the hood. Portage, the package maintenance system which Gentoo uses, is written in Python, meaning you can easily view and modify the source code. Gentoo's packaging system uses source code (although support for precompiled packages is included too) and configuring Gentoo happens through regular textfiles. In other words, openness everywhere.<br />
<br />
{{Main|Gentoo}}<br />
<br />
==== Android ====<br />
[http://code.google.com/android/ Android] is a software stack for mobile devices developed by the [http://www.openhandsetalliance.com/ The Open Handset Alliance.] Openmoko is fully supporting Android running on the Freerunner.<br />
<br />
Android has now reached a point where it is usable on the FreeRunner as an everyday phone, there are, however, still some caveats. Check out the main Android section of the wiki for more info.<br />
<br />
{{Main|Android}}You can also visit the user web page for [http://wiki.openmoko.org/wiki/User:Seanmcneil3 Sean McNeil] for some more info.<br />
<br />
====Slackware====<br />
As of release 12.2, Slackware is now officially supported on the Neo Freerunner<br />
[http://armedslack.org/]<br />
<br />
<br />
==== Hackable:1====<br />
Hackable1 is a community distribution for hackable devices like the Neo Freerunner. It is based on Debian and 2007.2 userland which has been abandoned by Openmoko. It follows the GNOME mobile platform. <br />
{{Main|Hackable:1}}<br />
<br />
====[[neovento]]====<br />
neovento is a [[Debian|Debian for Freerunner]] based [[Distributions|distribution]] which uses [http://lxde.org/ LXDE] and [[Zhone]] on top. It is a [http://freeyourphone.de FreeYourPhone.de] community project. <br />
<br />
{{Main|neovento}}<br />
<br />
==== Others / unreleased ====<br />
* The [http://www.neopwn.com/software.php NeoPwn] network auditng system's core is a modified Linux 2.6.24 kernel, with cross-compiled module driver support for the numerous compatible addon devices running on a FULL Debian (ARMEL) operating system. The filesystem has been optimized for performance and size and includes the NeoPwn menu system and several GUI dialogs for hardware control and attack automation. ''Status: Unknown, the GPL requires source code to be distributed only to customers''.<br />
* [http://runningbear.org/trac RunningBear] is an innovative, yet free and open-source Operating System for hackable devices driven by Bearstech. Lightweight, Portable, Secure, Friendly and Useful. ''Status: In development''.<br />
* [http://pokylinux.org/ Poky] and Sato, by OpenedHand/Intel. An open source platform build tool derived from OE. It is a complete software development environment for the creation of Linux devices. It enables you to design, develop, build, debug, and test a complete, modern, software stack using Linux, the X Window System and GNOME Mobile based application frameworks for both ARM and x86 based platforms. ''Status: The &quot;Nightly Build&quot; Image works fine on Neo Freerunner, but phone functionality doesn't.''<br />
* [http://pyneo.org/ PyNeo] pyneo is a stack for mobile devices excessivly using dbus, glib and evas. pyneo can be considered FSO milestone 0. Afterwards, FSO evolved into an own project with different goals. ''Status: still active, ask around on #pyneo.org ''<br />
* [http://www.quantum-step.com/ mySTEP] by Openmoko distributor Golden Delicious Computers is based on GNUstep and brings a Objective-C API to the Neo. Core GUI frameworks are &quot;Foundation&quot; &amp; &quot;AppKit&quot;. It has been shown on FOSDEM 2008, LinuxTag 2008 and SYSTEMS 2008 to run on the Neo 1973. If someone reengineers UIKit, (open) source code compatibility to iPhone apps appears achievable. ''Status: it does not have its own kernel so a Freerunner distribution waits for a solid basis and an arm-linux-gnueabi toolchain that runs natively on Mac OS X is currently lacking.''<br />
<br />
== Features by distribution/release target ==<br />
<br />
Generally, distributions can differ on one or more of the following components:<br />
* The bootsplash screen image. This is purely decorative.<br />
* The bootloader. Theoretically, any version of ''uboot'' could be used with any distribution. In the future ''Qi'' will replace ''uboot''.<br />
* The kernel. GNU/Linux kernels versions 2.6.24, 2.6.26 or 2.6.28 can be found. Some have modules compiled in, others have modules compiled separately. If compiled separately, modules can be distributed in the same package file as the kernel or separately.<br />
* Middleware: daemons to handle GSM calls or GPS, sound system, personal information storage and so on. Qt and Android have their own subsystems, FreeSmartphone.Org (FSO) is working towards a standard-based Free Software one.<br />
* Display driver. The original ''Qt Extended'' uses the framebuffer, most other distributions today use ''X11''.<br />
* Libraries and application framework (widget toolkit and and graphical environment) : EFL, Qt, Gtk+ or Java ?<br />
* Basic telephony applications: voice calls, SMS, alarm clock...<br />
* Smartphone applications: GPS, media player, simple games, web browser...<br />
* Open source applications: more games, scientific, you name it...<br />
<br />
=== Hardware Support ===<br />
{|class=&quot;wikitable&quot; border=&quot;1&quot; cellpadding=&quot;5&quot; cellspacing=&quot;0&quot; width=100%<br />
! width=10%| !! width=8%|[[Om 2008.8]] !! width=8%|Om 2007.2 !! width=8%|FSO !! width=8%|SHR !! width=8%|FDOM !! width=8%|Qt Extended !! width=8%|Debian !! width=8%|Gentoo !! width=8%|Android<br />
|-<br />
| GTA01 || ?? || ?? || ?? || {{Yes}} || ?? || {{Yes}} || {{Yes}} || ?? || ??<br />
|-<br />
| GTA02 || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}}<br />
|-<br />
|}<br />
<br />
=== Connectivity ===<br />
{|class=&quot;wikitable&quot; border=&quot;1&quot; cellpadding=&quot;5&quot; cellspacing=&quot;0&quot; width=100%<br />
! width=10%| !! width=8%|[[Om 2008.8]] !! width=8%|Om 2007.2 !! width=8%|FSO !! width=8%|SHR !! width=8%|FDOM !! width=8%|Qt Extended !! width=8%|Debian !! width=8%|Gentoo !! width=8%|Android<br />
|-<br />
| Telephony || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} (1) || ?? || {{Yes}}<br />
|-<br />
| SMS || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} (1) || ?? || {{Yes}}<br />
|-<br />
| [[GPRS]] || Not through UI || Not through UI|| Not through UI || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} (1) || Not through UI || {{Yes}}<br />
|-<br />
| [[WiFi]] || {{Yes}} (*) || {{Yes}} || Not through UI || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || Not through UI || {{Yes}}<br />
|-<br />
| VoIP || ?? || ?? || ?? || ?? || {{Yes}} || {{Yes}} (1) || {{Yes}} || ?? || {{no}}<br />
|-<br />
| Bluetooth || {{Yes}} || {{Yes}} || {{No}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || ?? || {{Yes}}<br />
|-<br />
| GPS (1) || {{Yes}} (1) || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} (1) || {{Yes}} (1) || {{Yes}}<br />
|-<br />
|}<br />
<br />
=== Power ===<br />
{|class=&quot;wikitable&quot; border=&quot;1&quot; cellpadding=&quot;5&quot; cellspacing=&quot;0&quot; width=100%<br />
! width=10%| !! width=8%|[[Om 2008.8]] !! width=8%|Om 2007.2 !! width=8%|FSO !! width=8%|SHR !! width=8%|FDOM !! width=8%|Qt Extended !! width=8%|Debian !! width=8%|Gentoo !! width=8%|Android<br />
|-<br />
| Suspend || {{Yes}} || ?? || ?? || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}}<br />
|-<br />
| Resumes on Event || ?? || ?? || ?? || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || ??<br />
|-<br />
| Functions after Resume || {{Yes}} || ?? || ?? || {{Yes}} || {{No}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}}<br />
|-<br />
|}<br />
<br />
=== User Interaction ===<br />
{|class=&quot;wikitable&quot; border=&quot;1&quot; cellpadding=&quot;5&quot; cellspacing=&quot;0&quot; width=100%<br />
! width=10%| !! width=8%|Om2008.8 !! width=8%|2007.2 !! width=8%|FSO !! width=8%|SHR !! width=8%|FDOM !! width=8%|Qt Extended !! width=8%|Debian !! width=8%|Gentoo !! width=8%|Android<br />
|-<br />
| Stylus friendly || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}}<br />
|-<br />
| Finger friendly || Partially || Partially || Partially || {{Yes}} || {{Yes}} || {{Yes}} || {{No}} || {{Yes}} || {{Yes}}<br />
|-<br />
| Accelerometer || {{Yes}} [[Rotate|(1)]][[Gestures|(1)]] || {{No}} || {{No}} || {{yes}} (1) || {{Yes}} || {{No}} || {{Yes}} || ?? || {{Yes}}<br />
|-<br />
|}<br />
<br />
=== Applications ===<br />
{|class=&quot;wikitable&quot; border=&quot;1&quot; cellpadding=&quot;5&quot; cellspacing=&quot;0&quot; width=100%<br />
! width=10%| !! width=8%|[[Om 2008.8]] !! width=8%|2007.2 !! width=8%|FSO !! width=8%|SHR !! width=8%|FDOM !! width=8%|Qt Extended !! width=8%|Debian !! width=8%|Gentoo !! width=8%|Android<br />
|-<br />
| Terminal || {{Yes}} (1) || Basic (2) || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} (1) || {{Yes}}<br />
|-<br />
| PIM || {{Yes}} || {{Yes}} || {{No}} || N/A || {{Yes}} || {{Yes}} || {{Yes}} (1) || ?? || ??<br />
|-<br />
| Phonebook || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} (1) || ?? || {{Yes}}<br />
|-<br />
| Dialer || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} (1) || ?? || {{Yes}}<br />
|-<br />
| Web Browser || {{Yes}} (1) || {{Yes}} (1) || ? || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} (1) || ?? || {{Yes}}<br />
|-<br />
| Mail Client || {{Yes}} || ? || ? || ? || {{Yes}} || {{Yes}} || {{Yes}} (1) || ?? || {{Yes}}<br />
|-<br />
| XMPP Client || {{Yes}} [[Instant Messaging|(1)]] || {{Yes}} (1) || ? || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} (1) || || ??<br />
|-<br />
| Media Player || {{Yes}} (1) || {{Yes}} || ? || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} (1) || ?? || {{Yes}}<br />
|-<br />
|}<br />
<br />
=== Toolkits / Runtimes ===<br />
{|class=&quot;wikitable&quot; border=&quot;1&quot; cellpadding=&quot;5&quot; cellspacing=&quot;0&quot;<br />
! width=10%| !! width=8%|[[Om 2008.8]] !! width=8%|2007.2 !! width=8%|FSO !! width=8%|SHR !! width=8%|FDOM !! width=8%|Qt Extended !! width=8%|Debian !! width=8%|Gentoo !! width=8%|Android<br />
|-<br />
| GTK+ || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{No}} || {{Yes}} || {{Yes}} || ??<br />
|-<br />
| Qt/Qt Extended || {{Yes}} || {{No}} || {{Yes}} ? || {{Yes}}? || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || ??<br />
|-<br />
| Middleware || qtopia-x11 || gsmd/neod || FSO || FSO || qtopia-x11 || Qt Extended || FSO || FSO || ??<br />
|-<br />
| [[Java]] || {{Yes|Jalimo}} || {{Yes|Jalimo}} || {{Yes|Jalimo}} || {{Yes|Jalimo}} || {{Yes}} || ?? || {{Yes|CacaoVM, JamVM}} || ?? || ??<br />
|-<br />
| [[Python]] || {{Yes}} || {{Yes}} || {{Yes}} || {{yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || ??<br />
|-<br />
| [[Mono]] || {{Yes}} (1) || {{Yes}} (1) || ?? || {{no}} || ?? || ?? || {{Yes}} (1) || ?? || ??<br />
|-<br />
| [[Ruby]] || {{Yes}} || ?? || ?? || ?? || ?? || ?? || {{Yes}} (1) || {{Yes}} (1) || ??<br />
|}<br />
<br />
=== Images ===<br />
Latest and stable combinations for Neo FreeRunner gta02<br />
{|class=&quot;wikitable&quot; border=&quot;1&quot; cellpadding=&quot;5&quot; cellspacing=&quot;0&quot;<br />
| || OM || FDOM || Qt Extended || Android<br />
|-<br />
| current bootloader || [[U-boot|U-Boot]] from [http://downloads.openmoko.org/distro/releases/Om2008.9/ OM daily] version [http://downloads.openmoko.org/] || [[U-boot|U-Boot]] from [http://downloads.openmoko.org/repository/experimental/ OM daily] version [http://downloads.openmoko.org/daily/gta02v5_and_up-u-boot.bin gta02v5_and_up] || [[U-boot|U-Boot]] from [http://downloads.openmoko.org/repository/experimental/ OM daily] version [http://downloads.openmoko.org/daily/gta02v5_and_up-u-boot.bin gta02v5_and_up] ||<br />
|-<br />
| future bootloader || [[Qi]] from [http://people.openmoko.org/andy/ Andy] latest qi-andy.udfu || [[Qi]] from [http://people.openmoko.org/andy/ Andy] latest qi-andy.udfu || [[Qi]] from [http://people.openmoko.org/andy/ Andy] latest qi-andy.udfu ||<br />
|-<br />
| splash || [[Configuring_the_boot_splash_screens|U-Boot]] from [http://downloads.openmoko.org/releases/ OM releases] or [http://downloads.openmoko.org/daily/ OM daily] latest splash.gz || [[Configuring_the_boot_splash_screens|U-Boot]] from [http://downloads.openmoko.org/releases/ OM releases] or [http://downloads.openmoko.org/daily/ OM daily] latest splash.gz || [[Configuring_the_boot_splash_screens|U-Boot]] from [http://downloads.openmoko.org/releases/ OM releases] or [http://downloads.openmoko.org/daily/ OM daily] latest splash.gz ||<br />
|-<br />
| kernel || [[Linux]] from [http://downloads.openmoko.org/releases/ OM releases] or [http://downloads.openmoko.org/daily/ OM daily] latest uImage.bin || [[Linux]] from [http://moko.mwester.net/download/ mwester] latest uImage-gta02-mwester-stable.bin or from [http://downloads.tuxfamily.org/3v1deb/openmoko/ treviño] latest uImage-gta02-stable-3v1n0.bin || [[Linux]] see [[Qt_Extended]] page for latest version || [[Linux]] from [http://koolu.org/releases/ koolu]<br />
|-<br />
| modules || ? || [[Linux]] from [http://moko.mwester.net/download/ mwester] latest modules-min-gta02-mwester-stable.tgz or modules-all-gta02-mwester-stable.tgz || [[Linux]] from [http://moko.mwester.net/download/ mwester] latest modules-min-gta02-mwester-stable.tgz or modules-all-gta02-mwester-stable.tgz ||<br />
|-<br />
| rootfs || [[Main_Page|OM]] from [http://downloads.openmoko.org/releases/ OM releases] or [http://downloads.openmoko.org/daily/ OM daily] latest rootfs.jffs2 || [[FDOM]] from [ftp://ftp.tuxbrain.com/openmoko/fdom/releases/ TuxBrain] version [ftp://ftp.tuxbrain.com/openmoko/fdom/releases/Fat_and_Dirty_OM.200809_20081023.rootfs.jff2 200809_20081023] || See [[Qt_Extended]] for latest rootfs || [[Android]] from [http://koolu.org/releases/ koolu]<br />
|}<br />
<br />
Footnotes:<br />
<br />
(1) works, but need additional software to be installed<br />
<br />
(2) unusable due to lack of certain keyboard characters. [[Switching_Keyboards#Matchbox_keyboard|Various fixes available.]]<br />
<br />
(*) unstable<br />
<br />
==Quick download page==<br />
<br />
[[Download]]<br />
<br />
== See also ==<br />
<br />
* Mickey Lauer's post &quot;[http://www.vanille-media.de/site/index.php/2008/06/28/gtk-asu-fso-tmtla/ GTK, ASU, FSO, TMTLA!]&quot; describes the differences between distributions 2007.2, ASU and FSO.<br />
<br />
* Latest news and tips are in [[Community Updates]]<br />
<br />
* [[Kustomizer]] is a script to change your 2008.12 to a usable phone<br />
<br />
[[Category:Distributions| ]]</div>Myfanwyhttp://wiki.openmoko.org/wiki/DistributionsDistributions2009-05-01T12:50:40Z<p>Myfanwy: /* Non-Openmoko distributions */</p>
<hr />
<div>{{Languages|Distributions}}<br />
<br />
{|align=left<br />
|__TOC__<br />
|}<br />
<br />
== About distributions ==<br />
Openmoko distributions are designed to run on various mobile devices, with the primary aim of supporting Openmoko Inc.'s [[GTA01:Neo 1973|Neo 1973]] and [[Neo FreeRunner]] phones. They are GNU/Linux distributions -- complete operating systems including user applications. You can install any of them on your phone or even have a dualboot system with two distributions installed. For downloads see [[Download]], for installation instructions see [[Flashing the Neo FreeRunner]].<br />
<br />
Besides, Openmoko distributions also run on [[Supported devices|other]] mobile devices and some other software distributions also run on the phones of Openmoko Inc.<br />
<br />
=== Choosing a distribution ===<br />
* Official/current. As of December 2008, the phones ship with [[Om 2008.9]].The branch currently supported by Openmoko Inc. is [[Om 2008.12 Update]], which is the second minor upgrade of [[Om 2008.9]] (the version formerly named ''ASU'').<br />
* Official/future. The current trunk tip is a &quot;base image&quot; on which the next major release should be based. This next release[http://wiki.openmoko.org/wiki/Om2009 (Om 2009)] can be previewed by installing milestones of the [[FSO]] - Free Smartphone.Org project. If you want to develop anything that last, your platform is [[FSO]] (and the choice between EFL, GTK+, Qt, Java, Python or whatever is open). The [[Debian]] packaging team also track that branch.<br />
* Openmoko community. Based on [[Om 2008.8]], the community made the [[FDOM]] distribution by adding lots of fixes and applications to it. Most new users find [[FDOM]] the most comprehensive and functional distribution.<br />
* Other community. The FreeRunner is also a reference platform for TrollTech's ''Qt Extended'' (formerly [[Qtopia]]) distribution. If you want &quot;just a working phone&quot;, try [[Qtopia]].<br />
* Other communities. [[Android]] work is in progress; [[Debian]] and [[Gentoo]] are for people who do not need to ask which distribution they should use.<br />
<br />
<br />
{| class=&quot;wikitable&quot; style=&quot;float:right;width:200px;background-color:#FF6600;text-align:center;border-collapse:collapse;font-weight:bold&quot;<br />
|&lt;font color=white&gt;Distributions&lt;/font&gt;<br />
|-<br />
! style='background-color:#333333;color:#FFFFFF'|<br />
&lt;div align=left&gt;<br />
* &lt;font color='#BBBBBB'&gt;Openmoko (official)&lt;/font&gt;<br />
** [[Om2009]]<br />
** [[Om 2008.12 Update]]<br />
** [[Om 2008.9 Update]]<br />
** [[Om 2008.8]]<br />
** [[Om 2007.2]]<br />
** [[OpenmokoFramework|FSO]]<br />
* &lt;font color='#BBBBBB'&gt;Om Community&lt;/font&gt;<br />
** [[SHR]]<br />
** [[FDOM]]<br />
* &lt;font color='#BBBBBB'&gt;Other&lt;/font&gt;<br />
** [[Qtopia]]<br />
** [[Debian]]<br />
** [[Gentoo]]<br />
** [[Android]]<br />
** [[Hackable:1]]<br />
** [[Fyp]]<br />
&lt;/div&gt;<br />
|-<br />
|}<br />
<br />
=== Please note ===<br />
<br />
* Stable in the FreeRunner world does not mean the same thing as stable in the Debian world.<br />
* Most distributions use the same bootloader, kernel, drivers and hardware. Therefore, the same low level bugs are commonly found in all distributions. The latest and greatest software usually has most bug fixes, plus a whole set of new fresh bugs.<br />
* Most of these distributions also have package repositories. It is a BAD idea to feed from another distribution's repository.<br />
* Upgrade path between these distributions are mostly not tested, thus updating by changing the feeds will most likely end in broken packages or even an unbootable system. It is advisable to reflash the whole filesystem with [[dfu-util]] to switch between the different distributions, with the reminder that a dual-boot setup (e.g. via sdcard or NFS) can be used.<br />
<br />
== Official Openmoko releases ==<br />
<br />
'Release targets' offered by Openmoko Inc. are built out of different branches of the [[OpenEmbedded]] metadistribution source tree.<br />
<br />
=== Om series ===<br />
<br />
* '''[[Om2009]]''' is intended to be the new distro; it is not a simple follow-on from [[Om 2008.12 Update]]. '''It is still very much in development and by no means ready for production use''' and is based on the [http://freesmartphone.org freesmartphone.org] milestone 5.5 framework.<br />
<br />
{{Main|Om2009}}<br />
<br />
* '''[[Om 2008.12 Update]]''' is the second point release after the initial ''Om 2008.9'' release.<br />
<br />
{{Main|Om 2008.12 Update}}<br />
<br />
* '''[[Om 2008.9 Update]]''' is the first point release after the initial ''Om 2008.8'' release. Openmoko recommends that all existing installations of Om 2008.8 should be updated to that version. Quality-wise, we are still far from the goal, but this version includes general stability enhancing operating system improvements and a new splash screen. No applications were added or removed. Users with basic telephony needs will find it tolerable as an everyday phone.<br />
<br />
{{Main|Om 2008.9 Update}}<br />
<br />
* '''[[Om 2008.8]]''' was released on August 8, 2008, to replace 2007.2. Prior to that, its codename was ASU (April/August Software Update). This is still the name of the branch in the version control system. This distribution integrates the [http://trolltech.com/products/qtopia Qtopia] phone stack with a set of new Openmoko applications based on the Enlightenment Foundation Libraries ([[EFL_Documentation|EFL]]). Qtopia being a more mature product than the GNOME Mobile stack, the standard phone applications (dialer, contacts, calculator, calendar) work better than in 2007.2. The Qtopia used in 2008.8 was ported to run on X11, contrary to standard Qtopia which uses the framebuffer. This allows non-Qt applications to safely share the screen with Qt applications. This is a .0 release, many unresolved issues remain in the lower layers (kernel power management, sound, wifi drivers...).<br />
<br />
{{Main|Om2008.8}}<br />
<br />
* '''[[Om 2007.2]]''' is the base-system which is installed on FreeRunner when it leaves the factory. The interface was totally finger-oriented, optimized for 285ppi, and very orange. It used the GTK+ stack, which is part of the [http://www.gnome.org/mobile/ GNOME Mobile] platform. This distribution is now considered obsolete and not being worked on by Openmoko Inc or by OpenedHand. There is a community effort (see [[SHR]]) to port the GTK based telephony applications to the future middleware from [[FSO]].<br />
<br />
{{Main|Om 2007.2}}<br />
<br />
=== FSO series ===<br />
<br />
'''FSO''' is an abbreviation for FreeSmartphone.Org. Openmoko is working on a stable system services back-end. Focus is on stable highlevel services that you can access from whatever language or UI that supports [http://dbus.freesmartphone.org/ dbus]. The framework will be used in forthcoming Openmoko distributions. FSO is all about middleware, but if one stacks a bootloader+kernel under it and telephony applications on top, one gets a functional distribution. These are made available as FSO-image milestones. <br />
<br />
* '''FSO Milestone V''' was released and named 'Calling All Stations'. The telephony application on top of it is Zhone. This is a basic Python dialer/homescreen designed as scaffolding to test the FSO functionalities (even if Zhone is pretty, code path coverage is more critical to it than user-friendliness). More details at <br />
[http://wiki.openmoko.org/wiki/OpenmokoFramework/Status_Update_6 Status Update 6]. You can grab it from http://downloads.freesmartphone.org/fso-stable/milestone5.1/ . <br />
<br />
{{Main|FSO}}<br />
<br />
== Openmoko community releases ==<br />
<br />
=== SHR - Stable Hybrid Release ===<br />
<br />
SHR is a community driven distribution. It contains some basic EFL based applications which make use of the FSO. There currently is an [[EFL_Documentation|EFL]] (with elementary) dialer, messages and contacts application programmed in C, as well as a nice Settings-GUI in Python. As of April 12th, 2009, there is no stable release of this distribution yet, as the SHR team doesn't feel it to be good enough. You can find images though on the [http://shr.bearstech.com/shr-testing SHR buildhost].<br />
<br />
{{Main|Stable Hybrid Release}}<br />
<br />
=== FDOM (FAT and Dirty Openmoko) ===<br />
<br />
[[FDOM]] is a distribution based on Openmoko's currently supported image, updated with many ready-to-use applications and with fixes posted in the mailing lists. A combination of applications (everything goes) and fixes to demonstrate the capabilities of the Freerunner and to have a functional phone (sort of). This all while retaining the ability to update through the official feeds.<br />
<br />
{{Main|FDOM}}<br />
<br />
=== Non-Openmoko distributions ===<br />
<br />
These are not Openmoko (and OE) based distributions. These are alternatives you can run on your Openmoko phones.<br />
<br />
==== Qt Extended ====<br />
<br />
Qt Extended has had several names. The current name is &lt;b&gt;Qt Extended Improved&lt;/b&gt;. An Openmoko based community develops Qt Extended Improved as a Free Software project. Qt Extended Improved builds on the foundation of Qt Extended/Qtopia/Qt by Qt Software/Trolltech. Qt Extended Improved provides a robust telephony stack, a webkit based browser and other smartphone features.<br />
<br />
On 5th March 2009 Qt Software released Qt Extended 4.4.3. On 3rd March 2009 Qt Software announced that Qt Extended would 4.4.3 would be the last release of the Qt Extended product. Prior to version 4.3, Qt Extended was known as Qtopia.<br />
<br />
{{Main|Qtopia / Qt Extended on FreeRunner}}<br />
<br />
==== Debian ====<br />
<br />
Debian is &quot;the universal operating system&quot;. It comes with thousands and thousands of packages (most of them designed for desktops or servers so far). So in the words of Joachim &quot;nomeata&quot; Breitner from the [http://wiki.debian.org/Teams/DebianFSO pkg-fso] team, this is not really a distribution in the Openmoko sense of the word, but rather a different underlying system for Openmoko distributions. At the moment, we ship the software from the FSO stack, but hopefully we’ll also have, for example, the Stable Hybrid Release software in our archive. So for now, Debian is a different way of installing FSO, which takes more space and provides more programs :-)<br />
<br />
{{Main|Debian}}<br />
<br />
<br />
<br />
==== [[Gentoo ]]====<br />
<br />
Gentoo is all about choices. When installing Gentoo, this is made clear to you several times -- you can choose how much you want to compile yourself, how to install Gentoo, what system logger you want, etc. Gentoo is a fast, modern metadistribution with a clean and flexible design. Gentoo is built around free software and doesn't hide from its users what is beneath the hood. Portage, the package maintenance system which Gentoo uses, is written in Python, meaning you can easily view and modify the source code. Gentoo's packaging system uses source code (although support for precompiled packages is included too) and configuring Gentoo happens through regular textfiles. In other words, openness everywhere.<br />
<br />
{{Main|Gentoo}}<br />
<br />
==== Android ====<br />
<br />
[http://code.google.com/android/ Android] is a software stack for mobile devices developed by the [http://www.openhandsetalliance.com/ The Open Handset Alliance.] Openmoko is fully supporting Android running on the Freerunner.<br />
<br />
Android has now reached a point where it is usable on the FreeRunner as an everyday phone, there are, however, still some caveats. Check out the main Android section of the wiki for more info.<br />
<br />
{{Main|Android}}You can also visit the user web page for [http://wiki.openmoko.org/wiki/User:Seanmcneil3 Sean McNeil] for some more info.<br />
<br />
====Slackware====<br />
<br />
As of release 12.2, Slackware is now officially supported on the Neo Freerunner<br />
[http://armedslack.org/]<br />
<br />
<br />
==== Hackable:1====<br />
Hackable1 is a community distribution for hackable devices like the Neo Freerunner. It is based on Debian and 2007.2 userland which has been abandoned by Openmoko. It follows the GNOME mobile platform. <br />
{{Main|Hackable:1}}<br />
<br />
====[[neovento]]====<br />
neovento is a [[Debian|Debian for Freerunner]] based [[Distributions|distribution]] which uses [http://lxde.org/ LXDE] and [[Zhone]] on top. It is a [http://freeyourphone.de FreeYourPhone.de] community project. <br />
<br />
{{Main|neovento}}<br />
<br />
==== Others / unreleased ====<br />
<br />
* The [http://www.neopwn.com/software.php NeoPwn] network auditng system's core is a modified Linux 2.6.24 kernel, with cross-compiled module driver support for the numerous compatible addon devices running on a FULL Debian (ARMEL) operating system. The filesystem has been optimized for performance and size and includes the NeoPwn menu system and several GUI dialogs for hardware control and attack automation. ''Status: Unknown, the GPL requires source code to be distributed only to customers''.<br />
* [http://runningbear.org/trac RunningBear] is an innovative, yet free and open-source Operating System for hackable devices driven by Bearstech. Lightweight, Portable, Secure, Friendly and Useful. ''Status: In development''.<br />
* [http://pokylinux.org/ Poky] and Sato, by OpenedHand/Intel. An open source platform build tool derived from OE. It is a complete software development environment for the creation of Linux devices. It enables you to design, develop, build, debug, and test a complete, modern, software stack using Linux, the X Window System and GNOME Mobile based application frameworks for both ARM and x86 based platforms. ''Status: The &quot;Nightly Build&quot; Image works fine on Neo Freerunner, but phone functionality doesn't.''<br />
* [http://pyneo.org/ PyNeo] pyneo is a stack for mobile devices excessivly using dbus, glib and evas. pyneo can be considered FSO milestone 0. Afterwards, FSO evolved into an own project with different goals. ''Status: still active, ask around on #pyneo.org ''<br />
* [http://www.quantum-step.com/ mySTEP] by Openmoko distributor Golden Delicious Computers is based on GNUstep and brings a Objective-C API to the Neo. Core GUI frameworks are &quot;Foundation&quot; &amp; &quot;AppKit&quot;. It has been shown on FOSDEM 2008, LinuxTag 2008 and SYSTEMS 2008 to run on the Neo 1973. If someone reengineers UIKit, (open) source code compatibility to iPhone apps appears achievable. ''Status: it does not have its own kernel so a Freerunner distribution waits for a solid basis and an arm-linux-gnueabi toolchain that runs natively on Mac OS X is currently lacking.''<br />
<br />
== Features by distribution/release target ==<br />
<br />
Generally, distributions can differ on one or more of the following components:<br />
* The bootsplash screen image. This is purely decorative.<br />
* The bootloader. Theoretically, any version of ''uboot'' could be used with any distribution. In the future ''Qi'' will replace ''uboot''.<br />
* The kernel. GNU/Linux kernels versions 2.6.24, 2.6.26 or 2.6.28 can be found. Some have modules compiled in, others have modules compiled separately. If compiled separately, modules can be distributed in the same package file as the kernel or separately.<br />
* Middleware: daemons to handle GSM calls or GPS, sound system, personal information storage and so on. Qt and Android have their own subsystems, FreeSmartphone.Org (FSO) is working towards a standard-based Free Software one.<br />
* Display driver. The original ''Qt Extended'' uses the framebuffer, most other distributions today use ''X11''.<br />
* Libraries and application framework (widget toolkit and and graphical environment) : EFL, Qt, Gtk+ or Java ?<br />
* Basic telephony applications: voice calls, SMS, alarm clock...<br />
* Smartphone applications: GPS, media player, simple games, web browser...<br />
* Open source applications: more games, scientific, you name it...<br />
<br />
=== Hardware Support ===<br />
{|class=&quot;wikitable&quot; border=&quot;1&quot; cellpadding=&quot;5&quot; cellspacing=&quot;0&quot; width=100%<br />
! width=10%| !! width=8%|[[Om 2008.8]] !! width=8%|Om 2007.2 !! width=8%|FSO !! width=8%|SHR !! width=8%|FDOM !! width=8%|Qt Extended !! width=8%|Debian !! width=8%|Gentoo !! width=8%|Android<br />
|-<br />
| GTA01 || ?? || ?? || ?? || {{Yes}} || ?? || {{Yes}} || {{Yes}} || ?? || ??<br />
|-<br />
| GTA02 || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}}<br />
|-<br />
|}<br />
<br />
=== Connectivity ===<br />
{|class=&quot;wikitable&quot; border=&quot;1&quot; cellpadding=&quot;5&quot; cellspacing=&quot;0&quot; width=100%<br />
! width=10%| !! width=8%|[[Om 2008.8]] !! width=8%|Om 2007.2 !! width=8%|FSO !! width=8%|SHR !! width=8%|FDOM !! width=8%|Qt Extended !! width=8%|Debian !! width=8%|Gentoo !! width=8%|Android<br />
|-<br />
| Telephony || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} (1) || ?? || {{Yes}}<br />
|-<br />
| SMS || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} (1) || ?? || {{Yes}}<br />
|-<br />
| [[GPRS]] || Not through UI || Not through UI|| Not through UI || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} (1) || Not through UI || {{Yes}}<br />
|-<br />
| [[WiFi]] || {{Yes}} (*) || {{Yes}} || Not through UI || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || Not through UI || {{Yes}}<br />
|-<br />
| VoIP || ?? || ?? || ?? || ?? || {{Yes}} || {{Yes}} (1) || {{Yes}} || ?? || {{no}}<br />
|-<br />
| Bluetooth || {{Yes}} || {{Yes}} || {{No}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || ?? || {{Yes}}<br />
|-<br />
| GPS (1) || {{Yes}} (1) || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} (1) || {{Yes}} (1) || {{Yes}}<br />
|-<br />
|}<br />
<br />
=== Power ===<br />
{|class=&quot;wikitable&quot; border=&quot;1&quot; cellpadding=&quot;5&quot; cellspacing=&quot;0&quot; width=100%<br />
! width=10%| !! width=8%|[[Om 2008.8]] !! width=8%|Om 2007.2 !! width=8%|FSO !! width=8%|SHR !! width=8%|FDOM !! width=8%|Qt Extended !! width=8%|Debian !! width=8%|Gentoo !! width=8%|Android<br />
|-<br />
| Suspend || {{Yes}} || ?? || ?? || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}}<br />
|-<br />
| Resumes on Event || ?? || ?? || ?? || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || ??<br />
|-<br />
| Functions after Resume || {{Yes}} || ?? || ?? || {{Yes}} || {{No}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}}<br />
|-<br />
|}<br />
<br />
=== User Interaction ===<br />
{|class=&quot;wikitable&quot; border=&quot;1&quot; cellpadding=&quot;5&quot; cellspacing=&quot;0&quot; width=100%<br />
! width=10%| !! width=8%|Om2008.8 !! width=8%|2007.2 !! width=8%|FSO !! width=8%|SHR !! width=8%|FDOM !! width=8%|Qt Extended !! width=8%|Debian !! width=8%|Gentoo !! width=8%|Android<br />
|-<br />
| Stylus friendly || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}}<br />
|-<br />
| Finger friendly || Partially || Partially || Partially || {{Yes}} || {{Yes}} || {{Yes}} || {{No}} || {{Yes}} || {{Yes}}<br />
|-<br />
| Accelerometer || {{Yes}} [[Rotate|(1)]][[Gestures|(1)]] || {{No}} || {{No}} || {{yes}} (1) || {{Yes}} || {{No}} || {{Yes}} || ?? || {{Yes}}<br />
|-<br />
|}<br />
<br />
=== Applications ===<br />
{|class=&quot;wikitable&quot; border=&quot;1&quot; cellpadding=&quot;5&quot; cellspacing=&quot;0&quot; width=100%<br />
! width=10%| !! width=8%|[[Om 2008.8]] !! width=8%|2007.2 !! width=8%|FSO !! width=8%|SHR !! width=8%|FDOM !! width=8%|Qt Extended !! width=8%|Debian !! width=8%|Gentoo !! width=8%|Android<br />
|-<br />
| Terminal || {{Yes}} (1) || Basic (2) || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} (1) || {{Yes}}<br />
|-<br />
| PIM || {{Yes}} || {{Yes}} || {{No}} || N/A || {{Yes}} || {{Yes}} || {{Yes}} (1) || ?? || ??<br />
|-<br />
| Phonebook || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} (1) || ?? || {{Yes}}<br />
|-<br />
| Dialer || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} (1) || ?? || {{Yes}}<br />
|-<br />
| Web Browser || {{Yes}} (1) || {{Yes}} (1) || ? || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} (1) || ?? || {{Yes}}<br />
|-<br />
| Mail Client || {{Yes}} || ? || ? || ? || {{Yes}} || {{Yes}} || {{Yes}} (1) || ?? || {{Yes}}<br />
|-<br />
| XMPP Client || {{Yes}} [[Instant Messaging|(1)]] || {{Yes}} (1) || ? || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} (1) || || ??<br />
|-<br />
| Media Player || {{Yes}} (1) || {{Yes}} || ? || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} (1) || ?? || {{Yes}}<br />
|-<br />
|}<br />
<br />
=== Toolkits / Runtimes ===<br />
{|class=&quot;wikitable&quot; border=&quot;1&quot; cellpadding=&quot;5&quot; cellspacing=&quot;0&quot;<br />
! width=10%| !! width=8%|[[Om 2008.8]] !! width=8%|2007.2 !! width=8%|FSO !! width=8%|SHR !! width=8%|FDOM !! width=8%|Qt Extended !! width=8%|Debian !! width=8%|Gentoo !! width=8%|Android<br />
|-<br />
| GTK+ || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{No}} || {{Yes}} || {{Yes}} || ??<br />
|-<br />
| Qt/Qt Extended || {{Yes}} || {{No}} || {{Yes}} ? || {{Yes}}? || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || ??<br />
|-<br />
| Middleware || qtopia-x11 || gsmd/neod || FSO || FSO || qtopia-x11 || Qt Extended || FSO || FSO || ??<br />
|-<br />
| [[Java]] || {{Yes|Jalimo}} || {{Yes|Jalimo}} || {{Yes|Jalimo}} || {{Yes|Jalimo}} || {{Yes}} || ?? || {{Yes|CacaoVM, JamVM}} || ?? || ??<br />
|-<br />
| [[Python]] || {{Yes}} || {{Yes}} || {{Yes}} || {{yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || ??<br />
|-<br />
| [[Mono]] || {{Yes}} (1) || {{Yes}} (1) || ?? || {{no}} || ?? || ?? || {{Yes}} (1) || ?? || ??<br />
|-<br />
| [[Ruby]] || {{Yes}} || ?? || ?? || ?? || ?? || ?? || {{Yes}} (1) || {{Yes}} (1) || ??<br />
|}<br />
<br />
=== Images ===<br />
Latest and stable combinations for Neo FreeRunner gta02<br />
{|class=&quot;wikitable&quot; border=&quot;1&quot; cellpadding=&quot;5&quot; cellspacing=&quot;0&quot;<br />
| || OM || FDOM || Qt Extended || Android<br />
|-<br />
| current bootloader || [[U-boot|U-Boot]] from [http://downloads.openmoko.org/distro/releases/Om2008.9/ OM daily] version [http://downloads.openmoko.org/] || [[U-boot|U-Boot]] from [http://downloads.openmoko.org/repository/experimental/ OM daily] version [http://downloads.openmoko.org/daily/gta02v5_and_up-u-boot.bin gta02v5_and_up] || [[U-boot|U-Boot]] from [http://downloads.openmoko.org/repository/experimental/ OM daily] version [http://downloads.openmoko.org/daily/gta02v5_and_up-u-boot.bin gta02v5_and_up] ||<br />
|-<br />
| future bootloader || [[Qi]] from [http://people.openmoko.org/andy/ Andy] latest qi-andy.udfu || [[Qi]] from [http://people.openmoko.org/andy/ Andy] latest qi-andy.udfu || [[Qi]] from [http://people.openmoko.org/andy/ Andy] latest qi-andy.udfu ||<br />
|-<br />
| splash || [[Configuring_the_boot_splash_screens|U-Boot]] from [http://downloads.openmoko.org/releases/ OM releases] or [http://downloads.openmoko.org/daily/ OM daily] latest splash.gz || [[Configuring_the_boot_splash_screens|U-Boot]] from [http://downloads.openmoko.org/releases/ OM releases] or [http://downloads.openmoko.org/daily/ OM daily] latest splash.gz || [[Configuring_the_boot_splash_screens|U-Boot]] from [http://downloads.openmoko.org/releases/ OM releases] or [http://downloads.openmoko.org/daily/ OM daily] latest splash.gz ||<br />
|-<br />
| kernel || [[Linux]] from [http://downloads.openmoko.org/releases/ OM releases] or [http://downloads.openmoko.org/daily/ OM daily] latest uImage.bin || [[Linux]] from [http://moko.mwester.net/download/ mwester] latest uImage-gta02-mwester-stable.bin or from [http://downloads.tuxfamily.org/3v1deb/openmoko/ treviño] latest uImage-gta02-stable-3v1n0.bin || [[Linux]] see [[Qt_Extended]] page for latest version || [[Linux]] from [http://koolu.org/releases/ koolu]<br />
|-<br />
| modules || ? || [[Linux]] from [http://moko.mwester.net/download/ mwester] latest modules-min-gta02-mwester-stable.tgz or modules-all-gta02-mwester-stable.tgz || [[Linux]] from [http://moko.mwester.net/download/ mwester] latest modules-min-gta02-mwester-stable.tgz or modules-all-gta02-mwester-stable.tgz ||<br />
|-<br />
| rootfs || [[Main_Page|OM]] from [http://downloads.openmoko.org/releases/ OM releases] or [http://downloads.openmoko.org/daily/ OM daily] latest rootfs.jffs2 || [[FDOM]] from [ftp://ftp.tuxbrain.com/openmoko/fdom/releases/ TuxBrain] version [ftp://ftp.tuxbrain.com/openmoko/fdom/releases/Fat_and_Dirty_OM.200809_20081023.rootfs.jff2 200809_20081023] || See [[Qt_Extended]] for latest rootfs || [[Android]] from [http://koolu.org/releases/ koolu]<br />
|}<br />
<br />
Footnotes:<br />
<br />
(1) works, but need additional software to be installed<br />
<br />
(2) unusable due to lack of certain keyboard characters. [[Switching_Keyboards#Matchbox_keyboard|Various fixes available.]]<br />
<br />
(*) unstable<br />
<br />
==Quick download page==<br />
<br />
[[Download]]<br />
<br />
== See also ==<br />
<br />
* Mickey Lauer's post &quot;[http://www.vanille-media.de/site/index.php/2008/06/28/gtk-asu-fso-tmtla/ GTK, ASU, FSO, TMTLA!]&quot; describes the differences between distributions 2007.2, ASU and FSO.<br />
<br />
* Latest news and tips are in [[Community Updates]]<br />
<br />
* [[Kustomizer]] is a script to change your 2008.12 to a usable phone<br />
<br />
[[Category:Distributions| ]]</div>Myfanwyhttp://wiki.openmoko.org/wiki/KernelKernel2009-04-14T11:14:28Z<p>Myfanwy: spelling, grammar, general readability</p>
<hr />
<div>{{Kernel}}<br />
<br />
<br />
== Things changed ==<br />
<br />
This page will be updated soon. Those are the current [[Kernel_Plans|Kernel plans]].<br />
<br />
== Is this page meant for you? ==<br />
<br />
This information is mostly useful for developers and power/curious users. If you are looking for a kernel to flash into your GTA01/GTA02 you might want to grab one from the daily builds (scroll down and you'll find it) or get one that ships with one of the [[Distributions]]. The good thing with daily builds is that the newest might be the better. The bad thing of daily builds might be that you can get a broken kernel. If you feel way too uncomfortable making decisions about which kernel to try first and you are not willing to spend the time finding out which one works for you, then this page is not meant for you and you should be looking for stable [[Distributions]] instead. The distributors make this easier for you. You might want to scroll down for the 'blessed' kernels in the daily builds.<br />
<br />
== Introduction ==<br />
<br />
Linux kernel developers from the community and [[Openmoko]] Linux kernel developers maintain a working kernel for the [[Freerunner]] (Also known as GTA02) and also for the [[Neo1973]] (Aka GTA01).<br />
<br />
Right now there is an ongoing effort to reduce the difference between current Linux 2.6 (mainline) and the kernel in the Openmoko repository and thanks to this work we can run the most recent released version of Linux 2.6.<br />
<br />
=== Sister pages ===<br />
<br />
# [[Kernel branches]].<br />
<br />
== Sources ==<br />
<br />
The sources of the Openmoko Linux kernel live in a GIT repository. With the WEB interface you can peek at the contents of the repository:<br />
<br />
http://git.openmoko.org/?p=kernel.git;a=summary<br />
<br />
[http://git-scm.com GIT] is a fast version control system suited for the workflow that many kernel developers use. It is specially useful when you need to send patches for a project (who in turn might need to send them upstream). This is an over-simplification but it gives you the idea in case you did not know.<br />
<br />
GIT might seem complicated at first but once it's usage is learned, you will find many ways for it to increase your productivity. For completeness in this page we include the GIT commands which you need in order to build a working kernel.<br />
<br />
If you are very new to GIT you might want to read [http://git.or.cz/course/ the good manuals that already available].<br />
<br />
If you would like to contribute code we also have a page with [[Hints_on_using_GIT_and_stgit]] where we all hope to share some cool tips and tricks that can help you. You do not need to learn stgit in order to send patches to the Kernel Mailing List but we have to tell you that once you know git, stgit will make you more productive when you need to send a few patch at once (patchsets).<br />
<br />
=== Branches ===<br />
<br />
GIT allow developers to use different [[branches that help speed up development (and even make it possible). You might have noticed we have a few branches if already you visited the WEB interface (http://git.openmoko.org/?p=kernel.git;a=summary).<br />
<br />
The ''andy-tracking'' branch is the one where most of the action takes place these days. <br />
<br />
We have [[Kernel_branches|branch policies]] that explain what each branch is for.<br />
<br />
=== Daily builds ===<br />
<br />
==== Automatic revisions ====<br />
<br />
Think of a robot that takes whatever kernels are the most recent in GIT, builds them for you and then makes them available here:<br />
<br />
http://downloads.openmoko.org/distro/experimental/<br />
<br />
==== Blessed revisions ====<br />
<br />
Another robot but this one only builds the versions picked by our friendly [[OpenEmbedded]] developers. Download from:<br />
<br />
http://downloads.openmoko.org/distro/unstable/<br />
<br />
If you understand OpenEmbedded you will get this: Those versions are tied to a specific GIT revision through conf/distro/include/sane-srcrevs.bb.<br />
<br />
=== Building the andy-tracking branch ===<br />
<br />
Those are the minimum survival commands:<br />
<br />
$ git clone git://git.openmoko.org/git/kernel.git linux-2.6<br />
$ cd linux-2.6<br />
$ git-checkout --track -b andy-tracking origin/andy-tracking<br />
$ mkdir GTA02 <br />
$ cp ./arch/arm/configs/gta02_moredrivers_defconfig GTA02/.config<br />
<br />
Before building this kernel you need install a [http://wiki.openmoko.org/wiki/Toolchain#Downloading_and_installing Toolchain].<br />
<br />
$ ./build GTA02<br />
<br />
Once the script finishes you will get two files. The first is ''uImage-GTA02.bin'' and a second file with a longer name but same contents, for instance ''uImage-moredrivers-GTA02_andy-tracking_c16287685cb59f91.bin''. Please use the second file if you publish your kernel in some server or if you talk about it in public (specially in bugs reports) because it will allow others to know what kernel you were trying (in case you don't have local changes).<br />
<br />
In order to build the modules you can:<br />
<br />
$ ./build GTA02 dummy<br />
<br />
This will create a file called modules-GTA02_andy-tracking-&lt;git hash&gt;.tar.gz. The contents of this file have to be copied to /lib/firmaware and /lib/modules and one way to do it is untarring the file on the root directory of the device.<br />
<br />
If you want to update the local copy of the repository so that you get the latest changes, you can type:<br />
<br />
$ git-pull<br />
<br />
Before reporting that the new kernel does not build please first check for changes in the configuration file provided by Openmoko.<br />
<br />
=== kernel building tips ===<br />
<br />
If you are modifying Linux kernel code and building it quite often you really want to be using [http://ccache.samba.org ccache]. It will save you a lot of time.<br />
<br />
TODO: submit a patch for the build script that makes ccache use easier. '''Note''': There is a [http://lists.openmoko.org/pipermail/openmoko-kernel/2009-March/009139.html patch being reviewed].<br />
<br />
== Contributing ==<br />
<br />
The development resources [[Openmoko]] offers are:<br />
<br />
* Git repository: http://git.openmoko.org/?p=kernel.git;a=summary<br />
* [http://lists.openmoko.org/mailman/listinfo/openmoko-kernel Mailing list] ([http://lists.openmoko.org/pipermail/openmoko-kernel/ Online Archive])<br />
<br />
We appreciate your contributions. Check the Open Issues at the end of this page to check where we need more help.<br />
<br />
If in doubt ask in the mailing list.<br />
<br />
== FAQ ==<br />
<br />
=== Why does Openmoko cares about sending code upstream instead of (insert your task here)? ===<br />
<br />
There are two very different approaches and both of them would be doomed if we committed all our resources to only one of them.<br />
<br />
The first approach is not to care about upstream kernel development efforts and stick to an old kernel while struggling to make it work, ignoring the fact that it is [http://www.kernel.org upstream] where the people who want to help us improve, maintain and support the code running in our devices, hang out.<br />
<br />
The second is to care way '''too much''' about upstream to the point that we are not willing to ship a temporary dirty hack that makes users happy and able to better use their phones. We cannot afford that kind of purity.<br />
<br />
As with many things in engineering (and life), we have to find a point in the middle that works well - we will try hard to do it.<br />
<br />
=== Who's Andy and why is he sticking his name in the kernel? ===<br />
<br />
He created the branch and maintained it for a while. It is an usual practice that in kernel development some branches are named after the person who is taking care of them<br />
<br />
Check [[Kernel_branches]] if you care about the details.<br />
<br />
=== Kernel developers are not polite! They do not even care to say &quot;Hello&quot; when they reply to my emails! ===<br />
<br />
The long version is here: [[Kernel-developers-are-not-polite]].<br />
<br />
To the point:<br />
<br />
All these opensource programmers are nicer in person (if you don't interrupt them while they are programming). On the internet they might appear to be very rude, but in person things are very different specially over lunch or when sharing a beer. <br />
<br />
They just tend to write very short text because they have to read and write a lot every day.<br />
<br />
== Known issues ==<br />
<br />
=== Sysfs paths ===<br />
<br />
Unfortunately we had to update many sysfs paths (see [[GTA02_sysfs]]) and since we did it the kernel stopped working properly with some distributions. Unless the distribution is abandoned it will likely catch up with the newest kernel soon.<br />
<br />
[[FSO]] developers realized that this problem could be prevented from from happening in the future and they decided to code a nice daemon called [http://www.freesmartphone.org/index.php/Implementations/OpenDeviceDaemon odeviced].<br />
<br />
== Open Tickets ==<br />
<br />
'''This<br />
[http://docs.openmoko.org/trac/query?status=in_testing&amp;status=reopened&amp;status=assigned&amp;status=new&amp;status=accepted&amp;group=status&amp;milestone=stable-kernel-2009.1 report] will show the bugs that are a priority for us now'''.<br />
<br />
<br />
'''Please read [https://docs.openmoko.org/trac/query?status=accepted&amp;status=assigned&amp;status=in_testing&amp;status=new&amp;status=reopened&amp;component=System+Software&amp;order=priority&amp;col=id&amp;col=summary&amp;col=status&amp;col=type&amp;col=priority&amp;col=milestone&amp;col=component this report]''' if you wish to know what the current issues are.<br />
<br />
If you can help us with one of those issues it would be a great way to help us move forward. If in doubt please write to the Openmoko Kernel Mailing List. Let us link some bugs here without overdoing it because trac is better than a normal wiki for this. If we have more than 10 bugs the following lists then we might be doing it wrong.<br />
<br />
=== Easy bugs ===<br />
<br />
Those are the bugs that active kernel developers believe can be fixed by new kernel programmers that might want to join us. Thus they are leaving them unfixed for some reasonable time while they work on the harder bugs.<br />
<br />
TODO: list of bugs linking to trac.<br />
<br />
=== Normal bugs ===<br />
<br />
Those are the bugs that we have not fixed because they might be hard and/or because we have not found the time to fix them. They might end up being Easy Bugs or Evil bugs. We will use trac for them.<br />
<br />
'''This is the complete [https://docs.openmoko.org/trac/query?status=accepted&amp;status=assigned&amp;status=in_testing&amp;status=new&amp;status=reopened&amp;component=System+Software&amp;order=priority&amp;col=id&amp;col=summary&amp;col=status&amp;col=type&amp;col=priority&amp;col=milestone&amp;col=component report]''' with all the bugs (some of them might be invalid).<br />
<br />
=== Hard bugs ===<br />
<br />
Those are the evil bugs that we haven't fixed either because:<br />
<br />
# We do not know how to do it in reasonable time<br />
# The hardware vendor does not want to release documentation or to fix firmware (some of them do that unfortunately / even breaking promises they made to Openmoko about making things easier for developers)<br />
# More testing is needed (perhaps a hard-to-reproduce bug)<br />
<br />
Here is the list:<br />
<br />
* [https://docs.openmoko.org/trac/ticket/2235 #2235 : Monochrome display on resume]<br />
<br />
{{Languages|Kernel}}<br />
<br />
[[Category:Kernel]]<br />
[[Category:System Developers]]<br />
[[Category:Application Developer]]</div>Myfanwyhttp://wiki.openmoko.org/wiki/KernelKernel2009-04-14T11:11:57Z<p>Myfanwy: /* Sources */</p>
<hr />
<div>{{Kernel}}<br />
<br />
<br />
== Things changed ==<br />
<br />
This page will be updated soon. Those are the current [[Kernel_Plans|Kernel plans]].<br />
<br />
== Is this page meant for you? ==<br />
<br />
This information is mostly useful for developers and power/curious users. If you are looking for a kernel to flash into your GTA01/GTA02 you might want to grab one from the daily builds (scroll down and you'll find it) or get one that ships with one of the [[Distributions]]. The good thing with daily builds is that the newest might be the better. The bad thing of daily builds might be that you can get a broken kernel. If you feel way too uncomfortable making decisions about which kernel to try first and you are not willing to spend the time finding out which one works for you, then this page is not meant for you and you should be looking for stable [[Distributions]] instead. The distributors make this easier for you. You might want to scroll down for the 'blessed' kernels in the daily builds.<br />
<br />
== Introduction ==<br />
<br />
Linux kernel developers from the community and [[Openmoko]] Linux kernel developers maintain a working kernel for the [[Freerunner]] (Also known as GTA02) and also for the [[Neo1973]] (Aka GTA01).<br />
<br />
Right now there is an ongoing effort to reduce the difference between current Linux 2.6 (mainline) and the kernel in the Openmoko repository and thanks to this work we can run the most recent released version of Linux 2.6.<br />
<br />
=== Sister pages ===<br />
<br />
# [[Kernel branches]].<br />
<br />
== Sources ==<br />
<br />
The sources of the Openmoko Linux kernel live in a GIT repository. With the WEB interface you can peek at the contents of the repository:<br />
<br />
http://git.openmoko.org/?p=kernel.git;a=summary<br />
<br />
[http://git-scm.com GIT] is a fast version control system suited for the workflow that many kernel developers use. It is specially useful when you need to send patches for a project (who in turn might need to send them upstream). This is an over-simplification but it gives you the idea in case you did not know.<br />
<br />
GIT might seem complicated at first but once it's usage is learned, you will find many ways for it to increase your productivity. For completeness in this page we include the GIT commands which you need in order to build a working kernel.<br />
<br />
If you are very new to GIT you might want to read [http://git.or.cz/course/ the good manuals that already available].<br />
<br />
If you would like to contribute code we also have a page with [[Hints_on_using_GIT_and_stgit]] where we all hope to share some cool tips and tricks that can help you. You do not need to learn stgit in order to send patches to the Kernel Mailing List but we have to tell you that once you know git, stgit will make you more productive when you need to send a few patch at once (patchsets).<br />
<br />
=== Branches ===<br />
<br />
GIT allow developers to use different [[branches that help speed up development (and even make it possible). You might have noticed we have a few branches if already you visited the WEB interface (http://git.openmoko.org/?p=kernel.git;a=summary).<br />
<br />
The ''andy-tracking'' branch is the one where most of the action takes place these days. <br />
<br />
We have [[Kernel_branches|branch policies]] that explain what each branch is for.<br />
<br />
=== Daily builds ===<br />
<br />
==== Automatic revisions ====<br />
<br />
Think of a robot that takes whatever kernels are the most recent in GIT, builds them for you and then makes them available here:<br />
<br />
http://downloads.openmoko.org/distro/experimental/<br />
<br />
==== Blessed revisions ====<br />
<br />
Another robot but this one only builds the versions picked by our friendly [[OpenEmbedded]] developers. Download from:<br />
<br />
http://downloads.openmoko.org/distro/unstable/<br />
<br />
If you understand OpenEmbedded you will get this: Those versions are tied to a specific GIT revision through conf/distro/include/sane-srcrevs.bb.<br />
<br />
=== Building the andy-tracking branch ===<br />
<br />
Those are the minimum survival commands:<br />
<br />
$ git clone git://git.openmoko.org/git/kernel.git linux-2.6<br />
$ cd linux-2.6<br />
$ git-checkout --track -b andy-tracking origin/andy-tracking<br />
$ mkdir GTA02 <br />
$ cp ./arch/arm/configs/gta02_moredrivers_defconfig GTA02/.config<br />
<br />
Before building this kernel you need install a [http://wiki.openmoko.org/wiki/Toolchain#Downloading_and_installing Toolchain].<br />
<br />
$ ./build GTA02<br />
<br />
Once the script finishes you will get two files. The first is ''uImage-GTA02.bin'' and a second file with a longer name but same contents, for instance ''uImage-moredrivers-GTA02_andy-tracking_c16287685cb59f91.bin''. Please use the second file if you publish your kernel in some server or if you talk about it in public (specially in bugs reports) because it will allow others to know what kernel you were trying (in case you don't have local changes).<br />
<br />
In order to build the modules you can:<br />
<br />
$ ./build GTA02 dummy<br />
<br />
This will create a file called modules-GTA02_andy-tracking-&lt;git hash&gt;.tar.gz. The contents of this file have to be copied to /lib/firmaware and /lib/modules and one way to do it is untarring the file on the root directory of the device.<br />
<br />
If you want to update the local copy of the repository so that you get the latest changes, you can type:<br />
<br />
$ git-pull<br />
<br />
Before reporting that the new kernel does not build please first check for changes in the configuration file provided by Openmoko.<br />
<br />
=== kernel building tips ===<br />
<br />
If you are modifying Linux kernel code and building it quite often you really want to be using [http://ccache.samba.org ccache]. It will save you a lot of time.<br />
<br />
TODO: submit a patch for the build script that makes ccache use easier. '''Note''': There is a [http://lists.openmoko.org/pipermail/openmoko-kernel/2009-March/009139.html patch being reviewed].<br />
<br />
== Contributing ==<br />
<br />
The development resources [[Openmoko]] offers are:<br />
<br />
* Git repository: http://git.openmoko.org/?p=kernel.git;a=summary<br />
* [http://lists.openmoko.org/mailman/listinfo/openmoko-kernel Mailing list] ([http://lists.openmoko.org/pipermail/openmoko-kernel/ Online Archive])<br />
<br />
We appreciate your contributions. Check the Open Issues at the end of this page to check where we need more help.<br />
<br />
If in doubt ask in the mailing list.<br />
<br />
== FAQ ==<br />
<br />
=== Why does Openmoko cares about sending code upstream instead of (insert your task here)? ===<br />
<br />
There are two very different approaches and both of them would be doomed if we stuck all our resources to only one of to them.<br />
<br />
The first approach is not to care about upstream kernel development efforts and stick to an old kernel while struggling to make it work, ignoring the fact that it is [http://www.kernel.org upstream] where the people who want to help us improve, maintain and support the code running in our devices hang out.<br />
<br />
The second is to care way '''too much''' about upstream to the point that we are not willing to ship a temporal dirty hack that make users happy and able to better use their phones. We cannot afford that kind of purity.<br />
<br />
As many things in engineering we have to find a point in the middle that works well -- we will try hard to do it.<br />
<br />
=== Who's Andy and why is he sticking his name in the kernel? ===<br />
<br />
He created the branch and maintained it for a while. It is an usual practice that in kernel development some branches are named after the person who is taking care of them<br />
<br />
Check [[Kernel_branches]] if you care about the details.<br />
<br />
=== Kernel developers are not polite! They do not even care to say &quot;Hello&quot; when they reply to my emails! ===<br />
<br />
The long version is here: [[Kernel-developers-are-not-polite]].<br />
<br />
To the point:<br />
<br />
All these opensource programmers are nicer in person (if you don't interrupt them while they are programming). On the internet they might appear to be very rude, but in person things are very different specially over lunch or when sharing a beer. <br />
<br />
They just tend to write very short text because they have to read and write a lot every day.<br />
<br />
== Known issues ==<br />
<br />
=== Sysfs paths ===<br />
<br />
Unfortunately we had to update many sysfs paths (see [[GTA02_sysfs]]) and since we did it the kernel stopped working properly with some distributions. Unless the distribution is abandoned it will likely catch up with the newest kernel soon.<br />
<br />
[[FSO]] developers realized that this problem could be prevented from from happening in the future and they decided to code a nice daemon called [http://www.freesmartphone.org/index.php/Implementations/OpenDeviceDaemon odeviced].<br />
<br />
== Open Tickets ==<br />
<br />
'''This<br />
[http://docs.openmoko.org/trac/query?status=in_testing&amp;status=reopened&amp;status=assigned&amp;status=new&amp;status=accepted&amp;group=status&amp;milestone=stable-kernel-2009.1 report] will show the bugs that are a priority for us now'''.<br />
<br />
<br />
'''Please read [https://docs.openmoko.org/trac/query?status=accepted&amp;status=assigned&amp;status=in_testing&amp;status=new&amp;status=reopened&amp;component=System+Software&amp;order=priority&amp;col=id&amp;col=summary&amp;col=status&amp;col=type&amp;col=priority&amp;col=milestone&amp;col=component this report]''' if you wish to know what the current issues are.<br />
<br />
If you can help us with one of those issues it would be a great way to help us move forward. If in doubt please write to the Openmoko Kernel Mailing List. Let us link some bugs here without overdoing it because trac is better than a normal wiki for this. If we have more than 10 bugs the following lists then we might be doing it wrong.<br />
<br />
=== Easy bugs ===<br />
<br />
Those are the bugs that active kernel developers believe can be fixed by new kernel programmers that might want to join us. Thus they are leaving them unfixed for some reasonable time while they work on the harder bugs.<br />
<br />
TODO: list of bugs linking to trac.<br />
<br />
=== Normal bugs ===<br />
<br />
Those are the bugs that we have not fixed because they might be hard and/or because we have not found the time to fix them. They might end up being Easy Bugs or Evil bugs. We will use trac for them.<br />
<br />
'''This is the complete [https://docs.openmoko.org/trac/query?status=accepted&amp;status=assigned&amp;status=in_testing&amp;status=new&amp;status=reopened&amp;component=System+Software&amp;order=priority&amp;col=id&amp;col=summary&amp;col=status&amp;col=type&amp;col=priority&amp;col=milestone&amp;col=component report]''' with all the bugs (some of them might be invalid).<br />
<br />
=== Hard bugs ===<br />
<br />
Those are the evil bugs that we haven't fixed either because:<br />
<br />
# We do not know how to do it in reasonable time<br />
# The hardware vendor does not want to release documentation or to fix firmware (some of them do that unfortunately / even breaking promises they made to Openmoko about making things easier for developers)<br />
# More testing is needed (perhaps a hard-to-reproduce bug)<br />
<br />
Here is the list:<br />
<br />
* [https://docs.openmoko.org/trac/ticket/2235 #2235 : Monochrome display on resume]<br />
<br />
{{Languages|Kernel}}<br />
<br />
[[Category:Kernel]]<br />
[[Category:System Developers]]<br />
[[Category:Application Developer]]</div>Myfanwyhttp://wiki.openmoko.org/wiki/KernelKernel2009-04-14T11:10:15Z<p>Myfanwy: /* Sister pages */</p>
<hr />
<div>{{Kernel}}<br />
<br />
<br />
== Things changed ==<br />
<br />
This page will be updated soon. Those are the current [[Kernel_Plans|Kernel plans]].<br />
<br />
== Is this page meant for you? ==<br />
<br />
This information is mostly useful for developers and power/curious users. If you are looking for a kernel to flash into your GTA01/GTA02 you might want to grab one from the daily builds (scroll down and you'll find it) or get one that ships with one of the [[Distributions]]. The good thing with daily builds is that the newest might be the better. The bad thing of daily builds might be that you can get a broken kernel. If you feel way too uncomfortable making decisions about which kernel to try first and you are not willing to spend the time finding out which one works for you, then this page is not meant for you and you should be looking for stable [[Distributions]] instead. The distributors make this easier for you. You might want to scroll down for the 'blessed' kernels in the daily builds.<br />
<br />
== Introduction ==<br />
<br />
Linux kernel developers from the community and [[Openmoko]] Linux kernel developers maintain a working kernel for the [[Freerunner]] (Also known as GTA02) and also for the [[Neo1973]] (Aka GTA01).<br />
<br />
Right now there is an ongoing effort to reduce the difference between current Linux 2.6 (mainline) and the kernel in the Openmoko repository and thanks to this work we can run the most recent released version of Linux 2.6.<br />
<br />
=== Sister pages ===<br />
<br />
# [[Kernel branches]].<br />
<br />
== Sources ==<br />
<br />
The sources of the Openmoko Linux kernel live in a GIT repository. With the WEB interface you can peek at the contents of the repository:<br />
<br />
http://git.openmoko.org/?p=kernel.git;a=summary<br />
<br />
[http://git-scm.com GIT] is a fast version control system suited for the workflow that many kernel developers use. It is specially useful when you need to send patches for a project (who might in turn might need to send them upstream). This is an over-simplification but it gives you the idea in case you did not know.<br />
<br />
GIT might seem complicated at first but once you learn to use it you will find many ways to increase your productivity by using it. For completeness in this page we include the GIT commands that you need in order to build a working kernel.<br />
<br />
If you are very new to GIT you might want to read [http://git.or.cz/course/ the good manuals that already available].<br />
<br />
If you would like to contribute code we also have a page with [[Hints_on_using_GIT_and_stgit]] where we all hope to share some cool tips and tricks that can help you. You do not need to learn stgit in order to send patches to the Kernel Mailing List but we have to tell you that once you know git, stgit will make you more productive when you need to send a few patch at once (patchsets).<br />
<br />
=== Branches ===<br />
<br />
GIT allow developers to use different [[branches that help speed up development (and even make it possible). You might have noticed we have a few branches if already you visited the WEB interface (http://git.openmoko.org/?p=kernel.git;a=summary).<br />
<br />
The ''andy-tracking'' branch is the one where most of the action takes place these days. <br />
<br />
We have [[Kernel_branches|branch policies]] that explain what each branch is for.<br />
<br />
=== Daily builds ===<br />
<br />
==== Automatic revisions ====<br />
<br />
Think of a robot that takes whatever kernels are the most recent in GIT, builds them for you and then makes them available here:<br />
<br />
http://downloads.openmoko.org/distro/experimental/<br />
<br />
==== Blessed revisions ====<br />
<br />
Another robot but this one only builds the versions picked by our friendly [[OpenEmbedded]] developers. Download from:<br />
<br />
http://downloads.openmoko.org/distro/unstable/<br />
<br />
If you understand OpenEmbedded you will get this: Those versions are tied to a specific GIT revision through conf/distro/include/sane-srcrevs.bb.<br />
<br />
=== Building the andy-tracking branch ===<br />
<br />
Those are the minimum survival commands:<br />
<br />
$ git clone git://git.openmoko.org/git/kernel.git linux-2.6<br />
$ cd linux-2.6<br />
$ git-checkout --track -b andy-tracking origin/andy-tracking<br />
$ mkdir GTA02 <br />
$ cp ./arch/arm/configs/gta02_moredrivers_defconfig GTA02/.config<br />
<br />
Before building this kernel you need install a [http://wiki.openmoko.org/wiki/Toolchain#Downloading_and_installing Toolchain].<br />
<br />
$ ./build GTA02<br />
<br />
Once the script finishes you will get two files. The first is ''uImage-GTA02.bin'' and a second file with a longer name but same contents, for instance ''uImage-moredrivers-GTA02_andy-tracking_c16287685cb59f91.bin''. Please use the second file if you publish your kernel in some server or if you talk about it in public (specially in bugs reports) because it will allow others to know what kernel you were trying (in case you don't have local changes).<br />
<br />
In order to build the modules you can:<br />
<br />
$ ./build GTA02 dummy<br />
<br />
This will create a file called modules-GTA02_andy-tracking-&lt;git hash&gt;.tar.gz. The contents of this file have to be copied to /lib/firmaware and /lib/modules and one way to do it is untarring the file on the root directory of the device.<br />
<br />
If you want to update the local copy of the repository so that you get the latest changes, you can type:<br />
<br />
$ git-pull<br />
<br />
Before reporting that the new kernel does not build please first check for changes in the configuration file provided by Openmoko.<br />
<br />
=== kernel building tips ===<br />
<br />
If you are modifying Linux kernel code and building it quite often you really want to be using [http://ccache.samba.org ccache]. It will save you a lot of time.<br />
<br />
TODO: submit a patch for the build script that makes ccache use easier. '''Note''': There is a [http://lists.openmoko.org/pipermail/openmoko-kernel/2009-March/009139.html patch being reviewed].<br />
<br />
== Contributing ==<br />
<br />
The development resources [[Openmoko]] offers are:<br />
<br />
* Git repository: http://git.openmoko.org/?p=kernel.git;a=summary<br />
* [http://lists.openmoko.org/mailman/listinfo/openmoko-kernel Mailing list] ([http://lists.openmoko.org/pipermail/openmoko-kernel/ Online Archive])<br />
<br />
We appreciate your contributions. Check the Open Issues at the end of this page to check where we need more help.<br />
<br />
If in doubt ask in the mailing list.<br />
<br />
== FAQ ==<br />
<br />
=== Why does Openmoko cares about sending code upstream instead of (insert your task here)? ===<br />
<br />
There are two very different approaches and both of them would be doomed if we stuck all our resources to only one of to them.<br />
<br />
The first approach is not to care about upstream kernel development efforts and stick to an old kernel while struggling to make it work, ignoring the fact that it is [http://www.kernel.org upstream] where the people who want to help us improve, maintain and support the code running in our devices hang out.<br />
<br />
The second is to care way '''too much''' about upstream to the point that we are not willing to ship a temporal dirty hack that make users happy and able to better use their phones. We cannot afford that kind of purity.<br />
<br />
As many things in engineering we have to find a point in the middle that works well -- we will try hard to do it.<br />
<br />
=== Who's Andy and why is he sticking his name in the kernel? ===<br />
<br />
He created the branch and maintained it for a while. It is an usual practice that in kernel development some branches are named after the person who is taking care of them<br />
<br />
Check [[Kernel_branches]] if you care about the details.<br />
<br />
=== Kernel developers are not polite! They do not even care to say &quot;Hello&quot; when they reply to my emails! ===<br />
<br />
The long version is here: [[Kernel-developers-are-not-polite]].<br />
<br />
To the point:<br />
<br />
All these opensource programmers are nicer in person (if you don't interrupt them while they are programming). On the internet they might appear to be very rude, but in person things are very different specially over lunch or when sharing a beer. <br />
<br />
They just tend to write very short text because they have to read and write a lot every day.<br />
<br />
== Known issues ==<br />
<br />
=== Sysfs paths ===<br />
<br />
Unfortunately we had to update many sysfs paths (see [[GTA02_sysfs]]) and since we did it the kernel stopped working properly with some distributions. Unless the distribution is abandoned it will likely catch up with the newest kernel soon.<br />
<br />
[[FSO]] developers realized that this problem could be prevented from from happening in the future and they decided to code a nice daemon called [http://www.freesmartphone.org/index.php/Implementations/OpenDeviceDaemon odeviced].<br />
<br />
== Open Tickets ==<br />
<br />
'''This<br />
[http://docs.openmoko.org/trac/query?status=in_testing&amp;status=reopened&amp;status=assigned&amp;status=new&amp;status=accepted&amp;group=status&amp;milestone=stable-kernel-2009.1 report] will show the bugs that are a priority for us now'''.<br />
<br />
<br />
'''Please read [https://docs.openmoko.org/trac/query?status=accepted&amp;status=assigned&amp;status=in_testing&amp;status=new&amp;status=reopened&amp;component=System+Software&amp;order=priority&amp;col=id&amp;col=summary&amp;col=status&amp;col=type&amp;col=priority&amp;col=milestone&amp;col=component this report]''' if you wish to know what the current issues are.<br />
<br />
If you can help us with one of those issues it would be a great way to help us move forward. If in doubt please write to the Openmoko Kernel Mailing List. Let us link some bugs here without overdoing it because trac is better than a normal wiki for this. If we have more than 10 bugs the following lists then we might be doing it wrong.<br />
<br />
=== Easy bugs ===<br />
<br />
Those are the bugs that active kernel developers believe can be fixed by new kernel programmers that might want to join us. Thus they are leaving them unfixed for some reasonable time while they work on the harder bugs.<br />
<br />
TODO: list of bugs linking to trac.<br />
<br />
=== Normal bugs ===<br />
<br />
Those are the bugs that we have not fixed because they might be hard and/or because we have not found the time to fix them. They might end up being Easy Bugs or Evil bugs. We will use trac for them.<br />
<br />
'''This is the complete [https://docs.openmoko.org/trac/query?status=accepted&amp;status=assigned&amp;status=in_testing&amp;status=new&amp;status=reopened&amp;component=System+Software&amp;order=priority&amp;col=id&amp;col=summary&amp;col=status&amp;col=type&amp;col=priority&amp;col=milestone&amp;col=component report]''' with all the bugs (some of them might be invalid).<br />
<br />
=== Hard bugs ===<br />
<br />
Those are the evil bugs that we haven't fixed either because:<br />
<br />
# We do not know how to do it in reasonable time<br />
# The hardware vendor does not want to release documentation or to fix firmware (some of them do that unfortunately / even breaking promises they made to Openmoko about making things easier for developers)<br />
# More testing is needed (perhaps a hard-to-reproduce bug)<br />
<br />
Here is the list:<br />
<br />
* [https://docs.openmoko.org/trac/ticket/2235 #2235 : Monochrome display on resume]<br />
<br />
{{Languages|Kernel}}<br />
<br />
[[Category:Kernel]]<br />
[[Category:System Developers]]<br />
[[Category:Application Developer]]</div>Myfanwyhttp://wiki.openmoko.org/wiki/KernelKernel2009-04-14T11:09:41Z<p>Myfanwy: /* Is this page meant for you? */</p>
<hr />
<div>{{Kernel}}<br />
<br />
<br />
== Things changed ==<br />
<br />
This page will be updated soon. Those are the current [[Kernel_Plans|Kernel plans]].<br />
<br />
== Is this page meant for you? ==<br />
<br />
This information is mostly useful for developers and power/curious users. If you are looking for a kernel to flash into your GTA01/GTA02 you might want to grab one from the daily builds (scroll down and you'll find it) or get one that ships with one of the [[Distributions]]. The good thing with daily builds is that the newest might be the better. The bad thing of daily builds might be that you can get a broken kernel. If you feel way too uncomfortable making decisions about which kernel to try first and you are not willing to spend the time finding out which one works for you, then this page is not meant for you and you should be looking for stable [[Distributions]] instead. The distributors make this easier for you. You might want to scroll down for the 'blessed' kernels in the daily builds.<br />
<br />
== Introduction ==<br />
<br />
Linux kernel developers from the community and [[Openmoko]] Linux kernel developers maintain a working kernel for the [[Freerunner]] (Also known as GTA02) and also for the [[Neo1973]] (Aka GTA01).<br />
<br />
Right now there is an ongoing effort to reduce the difference between current Linux 2.6 (mainline) and the kernel in the Openmoko repository and thanks to this work we can run the most recent released version of Linux 2.6.<br />
<br />
=== Sister pages ===<br />
<br />
# [[Kernel_branches]].<br />
<br />
== Sources ==<br />
<br />
The sources of the Openmoko Linux kernel live in a GIT repository. With the WEB interface you can peek at the contents of the repository:<br />
<br />
http://git.openmoko.org/?p=kernel.git;a=summary<br />
<br />
[http://git-scm.com GIT] is a fast version control system suited for the workflow that many kernel developers use. It is specially useful when you need to send patches for a project (who might in turn might need to send them upstream). This is an over-simplification but it gives you the idea in case you did not know.<br />
<br />
GIT might seem complicated at first but once you learn to use it you will find many ways to increase your productivity by using it. For completeness in this page we include the GIT commands that you need in order to build a working kernel.<br />
<br />
If you are very new to GIT you might want to read [http://git.or.cz/course/ the good manuals that already available].<br />
<br />
If you would like to contribute code we also have a page with [[Hints_on_using_GIT_and_stgit]] where we all hope to share some cool tips and tricks that can help you. You do not need to learn stgit in order to send patches to the Kernel Mailing List but we have to tell you that once you know git, stgit will make you more productive when you need to send a few patch at once (patchsets).<br />
<br />
=== Branches ===<br />
<br />
GIT allow developers to use different [[branches that help speed up development (and even make it possible). You might have noticed we have a few branches if already you visited the WEB interface (http://git.openmoko.org/?p=kernel.git;a=summary).<br />
<br />
The ''andy-tracking'' branch is the one where most of the action takes place these days. <br />
<br />
We have [[Kernel_branches|branch policies]] that explain what each branch is for.<br />
<br />
=== Daily builds ===<br />
<br />
==== Automatic revisions ====<br />
<br />
Think of a robot that takes whatever kernels are the most recent in GIT, builds them for you and then makes them available here:<br />
<br />
http://downloads.openmoko.org/distro/experimental/<br />
<br />
==== Blessed revisions ====<br />
<br />
Another robot but this one only builds the versions picked by our friendly [[OpenEmbedded]] developers. Download from:<br />
<br />
http://downloads.openmoko.org/distro/unstable/<br />
<br />
If you understand OpenEmbedded you will get this: Those versions are tied to a specific GIT revision through conf/distro/include/sane-srcrevs.bb.<br />
<br />
=== Building the andy-tracking branch ===<br />
<br />
Those are the minimum survival commands:<br />
<br />
$ git clone git://git.openmoko.org/git/kernel.git linux-2.6<br />
$ cd linux-2.6<br />
$ git-checkout --track -b andy-tracking origin/andy-tracking<br />
$ mkdir GTA02 <br />
$ cp ./arch/arm/configs/gta02_moredrivers_defconfig GTA02/.config<br />
<br />
Before building this kernel you need install a [http://wiki.openmoko.org/wiki/Toolchain#Downloading_and_installing Toolchain].<br />
<br />
$ ./build GTA02<br />
<br />
Once the script finishes you will get two files. The first is ''uImage-GTA02.bin'' and a second file with a longer name but same contents, for instance ''uImage-moredrivers-GTA02_andy-tracking_c16287685cb59f91.bin''. Please use the second file if you publish your kernel in some server or if you talk about it in public (specially in bugs reports) because it will allow others to know what kernel you were trying (in case you don't have local changes).<br />
<br />
In order to build the modules you can:<br />
<br />
$ ./build GTA02 dummy<br />
<br />
This will create a file called modules-GTA02_andy-tracking-&lt;git hash&gt;.tar.gz. The contents of this file have to be copied to /lib/firmaware and /lib/modules and one way to do it is untarring the file on the root directory of the device.<br />
<br />
If you want to update the local copy of the repository so that you get the latest changes, you can type:<br />
<br />
$ git-pull<br />
<br />
Before reporting that the new kernel does not build please first check for changes in the configuration file provided by Openmoko.<br />
<br />
=== kernel building tips ===<br />
<br />
If you are modifying Linux kernel code and building it quite often you really want to be using [http://ccache.samba.org ccache]. It will save you a lot of time.<br />
<br />
TODO: submit a patch for the build script that makes ccache use easier. '''Note''': There is a [http://lists.openmoko.org/pipermail/openmoko-kernel/2009-March/009139.html patch being reviewed].<br />
<br />
== Contributing ==<br />
<br />
The development resources [[Openmoko]] offers are:<br />
<br />
* Git repository: http://git.openmoko.org/?p=kernel.git;a=summary<br />
* [http://lists.openmoko.org/mailman/listinfo/openmoko-kernel Mailing list] ([http://lists.openmoko.org/pipermail/openmoko-kernel/ Online Archive])<br />
<br />
We appreciate your contributions. Check the Open Issues at the end of this page to check where we need more help.<br />
<br />
If in doubt ask in the mailing list.<br />
<br />
== FAQ ==<br />
<br />
=== Why does Openmoko cares about sending code upstream instead of (insert your task here)? ===<br />
<br />
There are two very different approaches and both of them would be doomed if we stuck all our resources to only one of to them.<br />
<br />
The first approach is not to care about upstream kernel development efforts and stick to an old kernel while struggling to make it work, ignoring the fact that it is [http://www.kernel.org upstream] where the people who want to help us improve, maintain and support the code running in our devices hang out.<br />
<br />
The second is to care way '''too much''' about upstream to the point that we are not willing to ship a temporal dirty hack that make users happy and able to better use their phones. We cannot afford that kind of purity.<br />
<br />
As many things in engineering we have to find a point in the middle that works well -- we will try hard to do it.<br />
<br />
=== Who's Andy and why is he sticking his name in the kernel? ===<br />
<br />
He created the branch and maintained it for a while. It is an usual practice that in kernel development some branches are named after the person who is taking care of them<br />
<br />
Check [[Kernel_branches]] if you care about the details.<br />
<br />
=== Kernel developers are not polite! They do not even care to say &quot;Hello&quot; when they reply to my emails! ===<br />
<br />
The long version is here: [[Kernel-developers-are-not-polite]].<br />
<br />
To the point:<br />
<br />
All these opensource programmers are nicer in person (if you don't interrupt them while they are programming). On the internet they might appear to be very rude, but in person things are very different specially over lunch or when sharing a beer. <br />
<br />
They just tend to write very short text because they have to read and write a lot every day.<br />
<br />
== Known issues ==<br />
<br />
=== Sysfs paths ===<br />
<br />
Unfortunately we had to update many sysfs paths (see [[GTA02_sysfs]]) and since we did it the kernel stopped working properly with some distributions. Unless the distribution is abandoned it will likely catch up with the newest kernel soon.<br />
<br />
[[FSO]] developers realized that this problem could be prevented from from happening in the future and they decided to code a nice daemon called [http://www.freesmartphone.org/index.php/Implementations/OpenDeviceDaemon odeviced].<br />
<br />
== Open Tickets ==<br />
<br />
'''This<br />
[http://docs.openmoko.org/trac/query?status=in_testing&amp;status=reopened&amp;status=assigned&amp;status=new&amp;status=accepted&amp;group=status&amp;milestone=stable-kernel-2009.1 report] will show the bugs that are a priority for us now'''.<br />
<br />
<br />
'''Please read [https://docs.openmoko.org/trac/query?status=accepted&amp;status=assigned&amp;status=in_testing&amp;status=new&amp;status=reopened&amp;component=System+Software&amp;order=priority&amp;col=id&amp;col=summary&amp;col=status&amp;col=type&amp;col=priority&amp;col=milestone&amp;col=component this report]''' if you wish to know what the current issues are.<br />
<br />
If you can help us with one of those issues it would be a great way to help us move forward. If in doubt please write to the Openmoko Kernel Mailing List. Let us link some bugs here without overdoing it because trac is better than a normal wiki for this. If we have more than 10 bugs the following lists then we might be doing it wrong.<br />
<br />
=== Easy bugs ===<br />
<br />
Those are the bugs that active kernel developers believe can be fixed by new kernel programmers that might want to join us. Thus they are leaving them unfixed for some reasonable time while they work on the harder bugs.<br />
<br />
TODO: list of bugs linking to trac.<br />
<br />
=== Normal bugs ===<br />
<br />
Those are the bugs that we have not fixed because they might be hard and/or because we have not found the time to fix them. They might end up being Easy Bugs or Evil bugs. We will use trac for them.<br />
<br />
'''This is the complete [https://docs.openmoko.org/trac/query?status=accepted&amp;status=assigned&amp;status=in_testing&amp;status=new&amp;status=reopened&amp;component=System+Software&amp;order=priority&amp;col=id&amp;col=summary&amp;col=status&amp;col=type&amp;col=priority&amp;col=milestone&amp;col=component report]''' with all the bugs (some of them might be invalid).<br />
<br />
=== Hard bugs ===<br />
<br />
Those are the evil bugs that we haven't fixed either because:<br />
<br />
# We do not know how to do it in reasonable time<br />
# The hardware vendor does not want to release documentation or to fix firmware (some of them do that unfortunately / even breaking promises they made to Openmoko about making things easier for developers)<br />
# More testing is needed (perhaps a hard-to-reproduce bug)<br />
<br />
Here is the list:<br />
<br />
* [https://docs.openmoko.org/trac/ticket/2235 #2235 : Monochrome display on resume]<br />
<br />
{{Languages|Kernel}}<br />
<br />
[[Category:Kernel]]<br />
[[Category:System Developers]]<br />
[[Category:Application Developer]]</div>Myfanwyhttp://wiki.openmoko.org/wiki/KernelKernel2009-04-14T11:09:17Z<p>Myfanwy: /* Is this page meant for you? */</p>
<hr />
<div>{{Kernel}}<br />
<br />
<br />
== Things changed ==<br />
<br />
This page will be updated soon. Those are the current [[Kernel_Plans|Kernel plans]].<br />
<br />
== Is this page meant for you? ==<br />
<br />
This information is mostly useful for developers and power/curious users. If you are looking for a kernel to flash into your GTA01/GTA02 you might want to grab one from the daily builds (scroll down and you'll find it) or get one that ships with one of the [[Distributions]]. The good thing with daily builds is that the newest might be the better. The bad thing of daily builds might be that you can get a broken kernel. If you feel way too uncomfortable making decisions about which kernel to try first and you are not willing to spend the time finding out which one works for you, then this page is not meant for you and you should be looking for stable [[Distributions]] instead. The distributors make this easier for you. You might want to scroll down for the for the blessed kernels in the daily builds.<br />
<br />
== Introduction ==<br />
<br />
Linux kernel developers from the community and [[Openmoko]] Linux kernel developers maintain a working kernel for the [[Freerunner]] (Also known as GTA02) and also for the [[Neo1973]] (Aka GTA01).<br />
<br />
Right now there is an ongoing effort to reduce the difference between current Linux 2.6 (mainline) and the kernel in the Openmoko repository and thanks to this work we can run the most recent released version of Linux 2.6.<br />
<br />
=== Sister pages ===<br />
<br />
# [[Kernel_branches]].<br />
<br />
== Sources ==<br />
<br />
The sources of the Openmoko Linux kernel live in a GIT repository. With the WEB interface you can peek at the contents of the repository:<br />
<br />
http://git.openmoko.org/?p=kernel.git;a=summary<br />
<br />
[http://git-scm.com GIT] is a fast version control system suited for the workflow that many kernel developers use. It is specially useful when you need to send patches for a project (who might in turn might need to send them upstream). This is an over-simplification but it gives you the idea in case you did not know.<br />
<br />
GIT might seem complicated at first but once you learn to use it you will find many ways to increase your productivity by using it. For completeness in this page we include the GIT commands that you need in order to build a working kernel.<br />
<br />
If you are very new to GIT you might want to read [http://git.or.cz/course/ the good manuals that already available].<br />
<br />
If you would like to contribute code we also have a page with [[Hints_on_using_GIT_and_stgit]] where we all hope to share some cool tips and tricks that can help you. You do not need to learn stgit in order to send patches to the Kernel Mailing List but we have to tell you that once you know git, stgit will make you more productive when you need to send a few patch at once (patchsets).<br />
<br />
=== Branches ===<br />
<br />
GIT allow developers to use different [[branches that help speed up development (and even make it possible). You might have noticed we have a few branches if already you visited the WEB interface (http://git.openmoko.org/?p=kernel.git;a=summary).<br />
<br />
The ''andy-tracking'' branch is the one where most of the action takes place these days. <br />
<br />
We have [[Kernel_branches|branch policies]] that explain what each branch is for.<br />
<br />
=== Daily builds ===<br />
<br />
==== Automatic revisions ====<br />
<br />
Think of a robot that takes whatever kernels are the most recent in GIT, builds them for you and then makes them available here:<br />
<br />
http://downloads.openmoko.org/distro/experimental/<br />
<br />
==== Blessed revisions ====<br />
<br />
Another robot but this one only builds the versions picked by our friendly [[OpenEmbedded]] developers. Download from:<br />
<br />
http://downloads.openmoko.org/distro/unstable/<br />
<br />
If you understand OpenEmbedded you will get this: Those versions are tied to a specific GIT revision through conf/distro/include/sane-srcrevs.bb.<br />
<br />
=== Building the andy-tracking branch ===<br />
<br />
Those are the minimum survival commands:<br />
<br />
$ git clone git://git.openmoko.org/git/kernel.git linux-2.6<br />
$ cd linux-2.6<br />
$ git-checkout --track -b andy-tracking origin/andy-tracking<br />
$ mkdir GTA02 <br />
$ cp ./arch/arm/configs/gta02_moredrivers_defconfig GTA02/.config<br />
<br />
Before building this kernel you need install a [http://wiki.openmoko.org/wiki/Toolchain#Downloading_and_installing Toolchain].<br />
<br />
$ ./build GTA02<br />
<br />
Once the script finishes you will get two files. The first is ''uImage-GTA02.bin'' and a second file with a longer name but same contents, for instance ''uImage-moredrivers-GTA02_andy-tracking_c16287685cb59f91.bin''. Please use the second file if you publish your kernel in some server or if you talk about it in public (specially in bugs reports) because it will allow others to know what kernel you were trying (in case you don't have local changes).<br />
<br />
In order to build the modules you can:<br />
<br />
$ ./build GTA02 dummy<br />
<br />
This will create a file called modules-GTA02_andy-tracking-&lt;git hash&gt;.tar.gz. The contents of this file have to be copied to /lib/firmaware and /lib/modules and one way to do it is untarring the file on the root directory of the device.<br />
<br />
If you want to update the local copy of the repository so that you get the latest changes, you can type:<br />
<br />
$ git-pull<br />
<br />
Before reporting that the new kernel does not build please first check for changes in the configuration file provided by Openmoko.<br />
<br />
=== kernel building tips ===<br />
<br />
If you are modifying Linux kernel code and building it quite often you really want to be using [http://ccache.samba.org ccache]. It will save you a lot of time.<br />
<br />
TODO: submit a patch for the build script that makes ccache use easier. '''Note''': There is a [http://lists.openmoko.org/pipermail/openmoko-kernel/2009-March/009139.html patch being reviewed].<br />
<br />
== Contributing ==<br />
<br />
The development resources [[Openmoko]] offers are:<br />
<br />
* Git repository: http://git.openmoko.org/?p=kernel.git;a=summary<br />
* [http://lists.openmoko.org/mailman/listinfo/openmoko-kernel Mailing list] ([http://lists.openmoko.org/pipermail/openmoko-kernel/ Online Archive])<br />
<br />
We appreciate your contributions. Check the Open Issues at the end of this page to check where we need more help.<br />
<br />
If in doubt ask in the mailing list.<br />
<br />
== FAQ ==<br />
<br />
=== Why does Openmoko cares about sending code upstream instead of (insert your task here)? ===<br />
<br />
There are two very different approaches and both of them would be doomed if we stuck all our resources to only one of to them.<br />
<br />
The first approach is not to care about upstream kernel development efforts and stick to an old kernel while struggling to make it work, ignoring the fact that it is [http://www.kernel.org upstream] where the people who want to help us improve, maintain and support the code running in our devices hang out.<br />
<br />
The second is to care way '''too much''' about upstream to the point that we are not willing to ship a temporal dirty hack that make users happy and able to better use their phones. We cannot afford that kind of purity.<br />
<br />
As many things in engineering we have to find a point in the middle that works well -- we will try hard to do it.<br />
<br />
=== Who's Andy and why is he sticking his name in the kernel? ===<br />
<br />
He created the branch and maintained it for a while. It is an usual practice that in kernel development some branches are named after the person who is taking care of them<br />
<br />
Check [[Kernel_branches]] if you care about the details.<br />
<br />
=== Kernel developers are not polite! They do not even care to say &quot;Hello&quot; when they reply to my emails! ===<br />
<br />
The long version is here: [[Kernel-developers-are-not-polite]].<br />
<br />
To the point:<br />
<br />
All these opensource programmers are nicer in person (if you don't interrupt them while they are programming). On the internet they might appear to be very rude, but in person things are very different specially over lunch or when sharing a beer. <br />
<br />
They just tend to write very short text because they have to read and write a lot every day.<br />
<br />
== Known issues ==<br />
<br />
=== Sysfs paths ===<br />
<br />
Unfortunately we had to update many sysfs paths (see [[GTA02_sysfs]]) and since we did it the kernel stopped working properly with some distributions. Unless the distribution is abandoned it will likely catch up with the newest kernel soon.<br />
<br />
[[FSO]] developers realized that this problem could be prevented from from happening in the future and they decided to code a nice daemon called [http://www.freesmartphone.org/index.php/Implementations/OpenDeviceDaemon odeviced].<br />
<br />
== Open Tickets ==<br />
<br />
'''This<br />
[http://docs.openmoko.org/trac/query?status=in_testing&amp;status=reopened&amp;status=assigned&amp;status=new&amp;status=accepted&amp;group=status&amp;milestone=stable-kernel-2009.1 report] will show the bugs that are a priority for us now'''.<br />
<br />
<br />
'''Please read [https://docs.openmoko.org/trac/query?status=accepted&amp;status=assigned&amp;status=in_testing&amp;status=new&amp;status=reopened&amp;component=System+Software&amp;order=priority&amp;col=id&amp;col=summary&amp;col=status&amp;col=type&amp;col=priority&amp;col=milestone&amp;col=component this report]''' if you wish to know what the current issues are.<br />
<br />
If you can help us with one of those issues it would be a great way to help us move forward. If in doubt please write to the Openmoko Kernel Mailing List. Let us link some bugs here without overdoing it because trac is better than a normal wiki for this. If we have more than 10 bugs the following lists then we might be doing it wrong.<br />
<br />
=== Easy bugs ===<br />
<br />
Those are the bugs that active kernel developers believe can be fixed by new kernel programmers that might want to join us. Thus they are leaving them unfixed for some reasonable time while they work on the harder bugs.<br />
<br />
TODO: list of bugs linking to trac.<br />
<br />
=== Normal bugs ===<br />
<br />
Those are the bugs that we have not fixed because they might be hard and/or because we have not found the time to fix them. They might end up being Easy Bugs or Evil bugs. We will use trac for them.<br />
<br />
'''This is the complete [https://docs.openmoko.org/trac/query?status=accepted&amp;status=assigned&amp;status=in_testing&amp;status=new&amp;status=reopened&amp;component=System+Software&amp;order=priority&amp;col=id&amp;col=summary&amp;col=status&amp;col=type&amp;col=priority&amp;col=milestone&amp;col=component report]''' with all the bugs (some of them might be invalid).<br />
<br />
=== Hard bugs ===<br />
<br />
Those are the evil bugs that we haven't fixed either because:<br />
<br />
# We do not know how to do it in reasonable time<br />
# The hardware vendor does not want to release documentation or to fix firmware (some of them do that unfortunately / even breaking promises they made to Openmoko about making things easier for developers)<br />
# More testing is needed (perhaps a hard-to-reproduce bug)<br />
<br />
Here is the list:<br />
<br />
* [https://docs.openmoko.org/trac/ticket/2235 #2235 : Monochrome display on resume]<br />
<br />
{{Languages|Kernel}}<br />
<br />
[[Category:Kernel]]<br />
[[Category:System Developers]]<br />
[[Category:Application Developer]]</div>Myfanwyhttp://wiki.openmoko.org/wiki/Om_2009Om 20092009-04-14T10:37:01Z<p>Myfanwy: wikify paroli link</p>
<hr />
<div>'''Om2009''' is the next version of the official Openmoko distribution. It is currently under development and should be released in June 2009 to replace [[Om2008]]. It will be based on [[FSO|freesmartphone.org]] milestone 5.5 framework.<br />
<br />
== Flashing ==<br />
<br />
The latest images are under [http://downloads.openmoko.org/distro/testing/ testing]. <br />
<br />
Updating to the latest uboot or qi is also recommended.<br />
<br />
===Fullscreen===<br />
<br />
Download &lt;b&gt;fso-paroli-image&lt;/b&gt; from [http://downloads.openmoko.org/distro/testing/NeoFreerunner/fso-paroli-image-om-gta02.jffs2 fso-paroli-image].&lt;br&gt;<br />
Download &lt;b&gt;uImage.bin&lt;/b&gt; from [http://downloads.openmoko.org/distro/testing/NeoFreerunner/uImage-2.6.28-stable+gitr0+f19f259d3c1afde8eae53983fd19f61831927413-r2-om-gta02.bin uImage.bin].&lt;br&gt;<br />
Download &lt;b&gt;qi.udfu&lt;/b&gt; from [http://downloads.openmoko.org/distro/testing/NeoFreerunner/qi-s3c2442-1.0.2+gitr3b8513d8b3d9615ebda605de4bda18371aa3f359.udfu qi.udfu].&lt;br&gt;<br />
<br />
Detailed instructions for [[Flashing_the_Neo_Freerunner|flashing]].<br />
<br />
The image will boot fullscreen into [[Paroli]] and all of the features below will be available&lt;br&gt;<br />
<br />
== Development ==<br />
<br />
Currently Om2009 is starting it's beta phase. Testing builds will be generated into the [http://downloads.openmoko.org/distro/testing/ testing] disto.&lt;br&gt;<br />
<br />
The progress of FSO development is documented regularly in the Status updates at [[OpenmokoFramework]]. For the Om2009 release plan see [http://n2.nabble.com/Om2009-release-plan-tp2410042p2410042.html]. <br />
<br />
This page will be updated to reflect the status of Om2009&lt;br&gt;<br />
<br />
== Features Status ==<br />
<br />
Below is the feature list for Om2009. It's broken down into features that have been implemented and need testing, and features that still need to be finished<br />
<br />
=== Implemented ===<br />
<br />
phone calls incoming and outgoing&lt;br&gt;<br />
sms incoming and outgoing&lt;br&gt;<br />
simple phone book (no images)&lt;br&gt;<br />
call log&lt;br&gt;<br />
charging&lt;br&gt;<br />
suspend and resume&lt;br&gt;<br />
alarm clock&lt;br&gt;<br />
resume speed &lt; 2 seconds - this is close but waiting on a kernel bug&lt;br&gt;<br />
battery indicator - works for gta02 battery&lt;br&gt;<br />
gsm indicator&lt;br&gt;<br />
switch to elementary&lt;br&gt;<br />
scrolling in UI - fixed by migrating from etk to elementary&lt;br&gt;<br />
switching profiles&lt;br&gt;<br />
in-call volume adjustment&lt;br&gt;<br />
<br />
=== Not Yet Implemented or Broken ===<br />
<br />
boot time &lt; 2 minutes - currently examining ways to speed this up&lt;br&gt;<br />
screen lock&lt;br&gt;<br />
battery indicator - doesn't work for gta01 battery&lt;br&gt;<br />
gprs &amp; edge - works from the command line&lt;br&gt;<br />
user changeable ring tones - works via command line&lt;br&gt;<br />
bluetooth - support in FSO milestone 5.5, needs GUI&lt;br&gt;<br />
wifi - works from the command line, kernels bugs still present&lt;br&gt;<br />
led indication for missed calls or sms&lt;br&gt;<br />
settings tool (feature phone settings as well as advanced functions)&lt;br&gt;<br />
<br />
=== Bug List and Known Issues ===<br />
<br />
Power button does not shutdown device - quick fix copy /etc/freesmartphone/oevents/paroli_rules.yaml to /etc/freesmartphone/oevents/rules.yaml&lt;br&gt;<br />
otimed sets timezone incorrectly in large countries [http://trac.freesmartphone.org/ticket/389 FSO 389]&lt;br&gt;<br />
Power status events ignored [http://trac.freesmartphone.org/ticket/381 FSO 381]&lt;br&gt;<br />
gsm0710muxd: &quot;Modem does not respond to AT commands&quot; [http://docs.openmoko.org/trac/ticket/2257 OM 2257]<br />
feeds are incorrectly set to unstable&lt;br&gt;<br />
<br />
<br />
[[Category:Om2009]]</div>Myfanwyhttp://wiki.openmoko.org/wiki/ParoliParoli2009-04-14T10:14:03Z<p>Myfanwy: /* Only the package */</p>
<hr />
<div>In a few words one could say: paroli is a new approach to application development on the Openmoko phones.<br />
Paroli is based on top of the [[OpenmokoFramework|FSO framework]] and enables the use of it via a core and several services.<br />
<br />
For more information please visit [http://www.paroli-project.org/ Paroli website]<br />
<br />
== Getting the sources ==<br />
<br />
git clone http://git.paroli-project.org/paroli.git/<br />
<br />
==biggest changes:==<br />
- a launcher was introduced allowing the launching of paroli-applications from within paroli itself.<br />
- the dbus interface is optional and both modes should work.<br />
<br />
- closing application windows from within the window-manager does not kill the process anymore<br />
<br />
- introduction of a preliminary audio service allowing to mute calls (a test service for non-fso environments was also added).<br />
<br />
- a reworked version of the dialer was added<br />
<br />
- works on an error-message service have begun<br />
<br />
- works on a service checking for changes in the fso have begun and many small fixes in the code<br />
<br />
===[paroli] weekly update week 10 of 2009===<br />
here an overview if the highlights of the things the paroli team has been working on in week 9 and the first part of week 10:<br />
<br />
-the msgs application is in and being shipped in every build<br />
you can view, send, receive, answer to and forward messages<br />
also it will offer you to save any unknown number to your phonebook<br />
<br />
-the people application is in and also being shipped every day<br />
you can view, edit and directly call a contact<br />
<br />
- the call logs i.e. the i/o application is also being shipped<br />
you can view your call logs and directly return the call<br />
also it will offer you to save any unknown number to your phonebook<br />
<br />
- dtmf in tele<br />
<br />
- ussd in tele<br />
you can receive and send simple ussd messages. NOTE: a very ugly window <br />
will open with the message written in very small letters, but it works. <br />
We will have a look into this a bit later.<br />
<br />
- small reworks on the lists we use<br />
<br />
- gsm and battery icons<br />
<br />
- muting ringtone when incoming call<br />
<br />
- muting call (mutes microphone)<br />
<br />
- Charlie did a complete rework of the service class so that there <br />
should not be any errors due to services not waiting for one another anymore<br />
<br />
and lots of other small things that would make this an endless list :) <br />
<br />
what will we do next:<br />
we will focus on some details that had been neglected so far such as<br />
- finally getting some scrolling or paging to work in our lists<br />
- getting some secondary actions associated with our list items<br />
- look at how we can go about a settings application as discussed on <br />
this list earlier<br />
- make certain internal adjustments to classes and applications to allow <br />
more flexibility<br />
- getting an image that works out of the box again<br />
<br />
===7 days update Feb 13 ~ Feb 20===<br />
<br />
<br />
- gotten daily build unstable images which by now boot directly into paroli<br />
<br />
http://downloads.openmoko.org/distro/unstable/NeoFreerunner/fso-paroli-image-om-gta02.jffs2<br />
<br />
http://downloads.openmoko.org/distro/unstable/NeoFreerunner/uImage-2.6.28-oe1+gitr34240a1c06ae36180dee695aa25bbae869b2aa26-r3-om-gta02.bin<br />
<br />
They do come with bugs and issues sometimes critical like today when paroli hangs because a resource in the framework is not available at paroli launch. This will be gone tomorrow.<br />
<br />
- Fixed lots of bugs and issues such as:<br />
-- unicode in message reading<br />
-- loading messages from the SIM and saving incoming messages in the <br />
phone automatically<br />
-- made all our lists automatically react to changes in items etc<br />
-- gui issues such as the PIN dialog<br />
-- got rid of the green topbar ;) <br />
-- muting ringtone on incoming call<br />
-- muting call in call (also as of tomorrow again)<br />
<br />
- moved most of the Milestone two tickets[1] to testing<br />
<br />
and<br />
<br />
- were feverishly working on the stuff for the next milestone[2]<br />
<br />
What are we planning to do next?<br />
<br />
- keep on fixing issues in MS2<br />
- continue working towards MS3<br />
- get the kbd to match paroli on the image<br />
- get messaging and contacts up and running as soon as possible to allow <br />
brave testers to use paroli daily ... any volnteers ? ;) <br />
<br />
--if anyone is interested in helping out with paroli, contribute code or test or or or ... Let us know! [mailto:mirko@openmoko.com|Mirko]]<br />
<br />
==Installation==<br />
<br />
on its own image (FSO MS 5 based):<br />
<br />
kernel:<br />
[http://downloads.openmoko.org/distro/unstable/NeoFreerunner/uImage-2.6.28-oe1+gitr34240a1c06ae36180dee695aa25bbae869b2aa26-r3-om-gta02.bin kernel]<br />
<br />
image:<br />
[http://downloads.openmoko.org/distro/unstable/NeoFreerunner/fso-paroli-image-om-gta02.jffs2 paroli-image]<br />
<br />
===Only the package===<br />
In order to get the package from unstable you'll need to adjust the configuration of opkg:<br />
<br />
&lt;nowiki&gt;echo src/gz openmoko-unstable-armv4t http://downloads.openmoko.org/repository/unstable/armv4t &gt; /etc/opkg/om-unstable.conf&lt;/nowiki&gt;<br />
<br />
Then do an opkg-update and opkg install paroli.<br />
<br />
This should get you the newest version.<br />
<br />
==Downloads==<br />
<br />
You can downloads paroli from :<br />
[http://downloads.freesmartphone.org/fso-milestone5/feeds//armv4t/paroli_0.2.1+gitr7a2fdc16174258e9276e7c2d80f500b4dd624442-r0_armv4t.ipk http://downloads.freesmartphone.org/fso-milestone5/feeds//armv4t/paroli_0.2.1+gitr7a2...442-r0_armv4t.ipk]<br />
<br />
or from:<br />
<br />
http://downloads.openmoko.org/distro/experimental/ <br />
<br />
<br />
[[Category:FSO]]</div>Myfanwyhttp://wiki.openmoko.org/wiki/ApplicationsApplications2009-04-13T05:50:57Z<p>Myfanwy: /* Internet */</p>
<hr />
<div>{{Languages|Applications}}<br />
This is the wiki's master application list for the Openmoko smartphones. <br />
<br />
== How to register new applications ?==<br />
<br />
This list can not be exhaustive, as new things are showing up every week. This page is here to help spreading awareness about applications. Here are instructions on how to add a specific application to this list. There are many ways to go<br />
<br />
Method 1 (preferred):<br />
* Register your application at http://opkg.org. You will get a package number there, for example 33.<br />
* Notify the community mailing list.<br />
* Come back here, click on &quot;edit&quot; next to the appropriate section title, then add a line like:<br />
&lt;pre&gt;* {{opkg.org|33|Application name}} A short description&lt;/pre&gt;<br />
<br />
Method 2: Just link to wherever the application is hosted.<br />
* Click on &quot;edit&quot; next to the appropriate section title, add a line like:<br />
&lt;pre&gt;* [http://your.host.domain/the/path/to/app/page.html Application name] A short description&lt;/pre&gt;<br />
<br />
Method 3: Create a new page in this wiki.<br />
* Click on &quot;edit&quot; next to the appropriate section title, then add a line like:<br />
&lt;pre&gt;* [[Application name]] A short description&lt;/pre&gt;<br />
* The application name will appear in red, click on it to create and edit the new page.<br />
<br />
== Audio ==<br />
<br />
* [[Openmoko-mediaplayer2]] - Play music and video (mp3...)<br />
* [[Openmokast]] - Play audio stream and slideshow stream<br />
* [[Pythm]] - Audio player GUI using mplayer and mpd as backend.<br />
* [[Mokoko]]-Play music.<br />
* [[Satan]] - Create your own music!<br />
* [[Fourier]]- Realtime frequency analysis of sound data.<br />
* [[Neoqplayer]] - Renamed as GorshPlayer : a multimedia player written in Qt4 : play and retreive podcasts feeds, more reactive interface, now able to play videos ( in svn ), check the official website for more informations<br />
* {{opkg.org|55|ePiano}} - epiano is going to be a virtual piano<br />
* [http://www.faltantornillos.net/proyectos/gnu/brightPlayer/brightPlayerOM2008v0.1.tar.gz Bright Player] - Fast, lightweight and easy random music player.<br />
* [http://fisoft.eu/standa/openmoko/omshuffle_0.1_arm.ipk omShuffle] - Inspired by Bright Player with volume control. Needs mplayer to work.<br />
* [[GTick]] - GTick is a metronome application written for GNU/Linux<br />
* [[Guitartune]] - Tune musical Instruments.<br />
* [[Voicenote]]-Voicenote is a script which allows to record any sound from the microphone into a wav file. It can play the created files too. It is intended to be an easy and quick way to do so.<br />
* {{opkg.org|151|MokoPod}} - Retrieve and listen to podcasts <br />
----<br />
<br />
== Games ==<br />
<br />
* [[Games/Om 2007.2]] - Many small games on Om 2007.2<br />
* [[Om 2008.8 Sudoku]] - Number placement based puzzle game<br />
* [[Moko-sudoku]] - Another sudoku puzzle game.<br />
* {{opkg.org|60|ScummVM}} ([[Scummvm|Wiki]]) Virtual Machine for several classic graphical point-and-click adventure games<br />
* [[Kobodeluxe]] - A top-view space shooter, available from 2008.8 repositories.<br />
* [[Pingus]] - Pingus is a lemmings clone with penguins.<br />
* [[Duke Nukem 3D]] - Legendary First Person Shooter.<br />
* [[Numptyphysics]] - A drawing puzzle game.<br />
* [[Gnuboy]] - An emulator for the handheld gaming all-time bestseller.<br />
* [[XBill]] - Little action game to stop Bill from installing Windows(tm) on computers.<br />
* [[Xlogical]]-A puzzle based game where you turn spinners to move balls around.<br />
* [[Liquid War]]-Liquid War is a truly original multiplayer wargame.<br />
* [http://unsyncopated.com/BrainSolvent/Doom%20Port DOOM]- Classic FPS. Freerunner/1973<br />
* [[MBAC]]- MBAC is &quot;Moko Bulls and Cows&quot;, a classic game for openmoko written in pygtk similar to mastermind.<br />
* [[OpenVibe]] - The first opensource vibrator.<br />
* [[OpenTTD]] - OpenTransportTycoonDeluxe, ported to openmoko, using only GPLed datafiles.<br />
* [http://scalde.free.fr/index.php?option=com_content&amp;view=article&amp;id=93:pong-pogresses&amp;catid=43:openmoko&amp;Itemid=66 Pong progresses]- This is a little pong game for the openmoko freerunner. The screen is devided in halves, so you can touch the right half to move the paddle right and the left half to move it left.<br />
* [[OpenMooCow]] - OpenMooCow reads information out of your accelerometers. Now, if you turn the phone upside down and back again, it &quot;moos&quot; like one of the little toys.<br />
* [[Freerunner LightSaber]]-Application as iphone LightSaber.<br />
* [[CellHunter]] - A game you earn points by collecting cells (in english now).<br />
* [[XSkat]] - XSkat lets you play the card game Skat defined by the official Skat Order.<br />
* {{opkg.org|136|OpenMiaoCat}} OpenMiaoCat, like OpenMooCow, makes your phone became a cat!<br />
* {{opkg.org|149|I'm Rich}} I'm Rich application<br />
* {{opkg.org|121|Mokomaze}} Ball-in-the-labyrinth game<br />
* [[Acceleroids]] Shoot-the-asteroids game<br />
* {{opkg.org|169|Black Sheep}} Fight insomnia!<br />
----<br />
<br />
== GPS ==<br />
<br />
* [[GPS Sight]] - Display GPS information, location, tracks, etc, without maps.<br />
* [[Gpsdrive]] - Car (bike, etc) navigation system<br />
* [[Om 2008.8 Locations]] - (aka Splinter) - Location sharing based on GPS and SMS<br />
* [[Navit]] - Car navigation system with routing engine<br />
* [[TangoGPS]] - Display map (OSM..), record GPS tracks...<br />
* [[Pyroute]] - Pyroute is a routing program written in Python. It features mobile phone GUI for maps, GPS, and routing.<br />
* [http://www.mumpot.org/ mumpot] - Display map (OSM), routing, OSM editing, a bit of live editing<br />
* [[QMapControl]] - Display maps (OSM..) and add points, lines...<br />
* [[Qpegps]] - Display map with current position<br />
* [[Idle Hands]] - Give a task to you based on your location<br />
* [[Gtkaddpoi]] - Utility for add a POI to TangoGPS using address or coordinates and export to Navit or to .kml file.<br />
* [[Gpsdcontrol]]-A simple python script for start or stop gpsd daemon with a button on the desktop.<br />
* [[OpenBmap]]-a free and open map of wireless communicating objects (e.g. cellular antenna, Wi-Fi, Bluetooth). It provides tools to mutualize data, create and access this map.<br />
* {{opkg.org|162|gvSIG Mobile}} - This is an unofficial port of gvSIG Mobile (http://www.gvsig.gva.es/) to the Openmoko platform. gvSIG Mobile for Openmoko is currently a GPS-enabled projection-aware map viewer. [http://gvsigmobileonopenmoko.wordpress.com/ Homepage].<br />
* {{opkg.org|175|BikeAtor}} - Like TangoGPS BikeAtor can display OSM Maps. The Speedometer displays the most interesting values of the trip.<br />
* {{opkg.org|178|bicirutas}} - This application looks for mtb routes in www.bicirutas.net (routes in Spain, Portugal, United Kingdom, France, Italy and Germany). It gets the current position from the gps system and downloads nearby routes. Then you can follow them with tangogps application.<br />
<br />
== Graphics ==<br />
<br />
* [[Orrery]] - Displays the night sky<br />
* [[OMView]] - Image viewer<br />
* [[PyPenNotes]] - Write notes using pen and touchscreen<br />
* [[Gpe-scap]] - Take screenshots<br />
* [[Flash|Gnash]]-Play flash file on Neo<br />
* [[Neon]] - Image viewer<br />
<br />
----<br />
<br />
== Internet ==<br />
<br />
* [[Twinkle]] - Voice over IP<br />
* [[Linphone]] - Voice over IP<br />
* [[Midori]] - Webkit based web browser<br />
* [[Minimo]] - Mozilla based web browser<br />
* [http://www.dillo.org/ Dillo] - Multiplatform fast and small web browser ([http://misc.andi.de1.cc/dillo/ .ipk]).<br />
* [[Mokopedia]] - Read small Wikipedia dumps offline<br />
* [[Offline Wikipedia reader]] - store the entire content of wikipedia (single-language, excluding images), on a single 8GB microSD card<br />
* [[Openmoko-browser2]] - The original Openmoko web browser<br />
* [[Openmokast]] - Play audio stream and slideshow stream<br />
* [[Openmoko Mail]] - E-mail client<br />
* [[Pidgin]] - Instant messaging client (ICQ, MSN, Jabber, Yahoo and more.)<br />
* [[CenterIM]] - Instant messaging client (terminal-based).<br />
* [[PyFeedRead]] - RSS feed reader<br />
* [[Qtmail]] - Default mail program on Om 2008.8<br />
* [[TwitterMoko]] - A Twitter client for Openmoko<br />
* [http://code.google.com/p/pyqt-browser/ pyqt-browser] - modified the sample code from python-pyqt4 and changed it to use webkit for web browsing. <br />
* [http://we.trekbeyond.org/~kd8ikt/moko/shr_pkgz/ ettercap-ng]<br />
* [http://www.netsurf-browser.org/ netsurf]-A new browser for Neo FreeRunner.<br />
<br />
== Office ==<br />
* [[Epdfview]] - PDF reader.<br />
* Evince - Document reader for PDF, PS, DJVU and more.<br />
* [[FBReader]] - E-book reader program (TXT, FB2, HTML and more)<br />
* [[Gutenflash]] - Fast text reader by scrolling text<br />
* [[OMoney]] - A bookkeeping application<br />
* {{opkg.org|191|PISI}} - PISI is synchronizing (PIM) information<br />
<br />
== Settings ==<br />
<br />
* [[Mofi]] - Wifi setup tool<br />
* [[Lint-wifi]] - Wifi setup tool<br />
* [[KnjMokoWifi]] - Wifi setup tool<br />
* [[KnjMokoOPKG]] - A graphical frontend to OPKG.<br />
* [[Om 2008.8 Installer]] - Graphical software installer<br />
* [[Opkg]] - Command line software installer<br />
* [[Sephora]] - Settings manager<br />
* [[SettingsGUI]] - Edit various settings<br />
* [[Wicd]] - Wifi setup tool<br />
* [[ZOMG!]] - A graphical package manager (opkg frontend -&gt; should work on any distro)<br />
* [[Timezone|tzdata]]- Customise your time zone setting.<br />
* [[momtools]] - an application to control Wifi, gprs and some other stuff<br />
* [[Wlan]] - Wlan is an application to manage wireless connection on the Freerunner<br />
<br />
== System ==<br />
* [[Aphasia]] - A system built on Erlang and a vertical application for people with apahasia.<br />
* [[Auxlaunch]] - Finger-friendly app launcher and window switcher<br />
* [[Display Locker]] - Screen lock<br />
* [[Gwaterpas]] - levelling tool using accelerometer<br />
* [[Gestures]] - Detect movement and display information, rotate screen<br />
* [[Keychain]] - SSH keys<br />
* [[MokoFEM]] - Monitors GSM information<br />
* [[Mokostat]] - Monitors battery<br />
* [[Openmoko Bluetooth remote controller|ReMoko]] - Control stuff via BlueTooth<br />
* [[Rotate]] - Rotate screen when phone is rotated<br />
* [[Vala-terminal]] - Command prompt with tabs<br />
* [[Ts calibrate]] - Calibrates touchscreen<br />
* [[Zedlock]] - Screen locker<br />
* [http://fso-control.projects.openmoko.org/ fso-control] - Popup Power menu to shutdown/suspend/reboot.<br />
* [[omkeys_functions]] - Remap AUX key bindings<br />
* [[Siglaunchd]] - A daemon that listens to dbus signals and launches appliactions upon arrival.<br />
* [[Pexpect]]-a pure Python module for spawning child applications; controlling them; and responding to expected patterns in their output. <br />
<br />
----<br />
<br />
== Telephony ==<br />
* [[Dialer/2007.2]] - The dialer application in Om 2007.2<br />
* [[Openmoko SMS Middleware]]- SMS middleware is a Openmoko middleware software for additional features related to SMS. Plugin architecture and Python based code gives this project lots of flexibility and enchancebility.<br />
* [[Paroli]] -Paroli is an integrated phone application based on Tichy (and so also written in python). <br />
<br />
----<br />
<br />
== Utility ==<br />
* [[Unison]] - Unison is a file-synchronization tool for Unix and Windows. It determines all differences between two directory trees and lets the user decide, how to proceed with every differing file. <br />
* [[HP48 Series RPN Calculator]] - Calculator with many functions<br />
* [[qwo]]- An alternative input method.<br />
* {{opkg.org|57|fido}} - [[fido]] is a todo list\note manager written with elementary<br />
* [http://meuk.spritesserver.nl/lightsaber-0.1.tgz The Lightsaber]. Pre-alpha starwaresque orphanware.<br />
* [[NeoTool]] NeoTool is a bash script for your desktop system to provide a friendly GUI frontend to some common management tasks.<br />
* [[NeoCon]] - neocon is a handy serial console utility (not only) for u-boot. The main feature of neocon is actually that you can give it a list of devices and it will pick one that works.<br />
* [http://techiem2.net/index.php?/archives/10-Freerunner-USB-Mode-Control-Program.html usbmode]-a quick pygtk program. <br />
* [[Enotes]] - Enotes is the implementation of a TODOlist manager written with elementary to appear better with distribution that use illume, like SHR.<br />
* [[LED clock]] - When an Openmoko is sitting unused at night, turn it into an alarm clock with large 7-segment digits on a black background in landscape mode. <br />
* [[MokoGeocaching]] - Utility for add a POI to TangoGPS using geocaching.com <br />
* [[Wrench]] - Modual used utility enlightenment_remote.<br />
* [[Yaouh!]] - Yet Another OSM Updater H.<br />
* [[ShortOm]] - Graphical launcher for shell or application, with editable config file, and log result page.<br />
* [[Pimlico]]-Pimlico is a suite of lightweight Personal Information Management (PIM) applications designed primarily for handheld and mobile devices<br />
* [http://projects.openmoko.org/projects/otp4neo/ OTP4Neo] One time password generator<br />
* [http://projects.openmoko.org/projects/ffalarms/ FFAlarm] is a program to set multiple alarms a day using a finger friendly user interface<br />
* [[OpenWrt]]-basic support for the Openmoko &quot;Freerunner&quot;! Kernel (2.6.28) is building and booting.<br />
* [[Enscribi]]-a handwriting recognition input method for Linux. It's mainly developed for the Openmoko Freerunner smartphone.<br />
* [[GridPad]]-GridPad is an alternative input method for entering text with your finger, a Simple Character Recognizer Software.<br />
* [[sortdesk]] sort your om-desktop in categories<br />
* [[Mokometeo]] is a widget which fetches the weather forecast from yahoo, for a list of cities<br />
* {{opkg.org|176|CoovaChilli}} - It turns your phone's WiFi network into an Ad-Hoc Hotspot!<br />
<br />
==Setting Application==<br />
* [[Wmiconfig]]- wmiconfig is a tool written by Atheros Communications Inc to configure the Ar6k WIFI chip used in the Neo Freerunner. This is a standalone C executable, released under GPL v2.<br />
* [[GTA02 sysfs]]- sysfs is a filesystem that is mounted on /sys which contains various fake &quot;files&quot; that are actually filled by a variety of drivers and other kernel subsystems. You can use it to change settings and behaviours of the kernel and drivers dynamically.<br />
<br />
== Video ==<br />
<br />
* [[Video Player]] - Using Mplayer on Openmoko smartphones.<br />
* [http://katastrophos.net/andre/blog/software/quasar-media-player/ Quasar] - a mplayer frontend for X11.<br />
<br />
<br />
<br />
<br />
----<br />
<br />
== daemon ==<br />
* [[PyPhonelog]] - daemon uses the framework to track and log all the calls made to and from the moko.<br />
* [[Lscd]] - LSC library/daemon on Linux System.<br />
<br />
== An automatic list of application-related wiki pages ==<br />
<br />
The pages linked above are all maintained manually. We also maintain an automatic categorization system by tagging wiki pages. Here is the list of application-related pages in this wiki. Normally, every page listed below should be also listed above in the same category. The converse is false: there are applications without a wiki page.<br />
<br />
&lt;div style=&quot;border: solid 1px black; padding: 1ex&quot;&gt;&lt;b&gt;Applications in this Wiki:&lt;/b&gt;<br />
&lt;categorytree mode=pages depth=2 hideroot=on&gt;Applications&lt;/categorytree&gt;<br />
&lt;/div&gt;<br />
<br />
<br />
== Where to find more applications? ==<br />
<br />
At [http://opkg.org opkg.org] !<br />
<br />
Not all Openmoko apps are listed on this wiki - there are much more [http://projects.openmoko.org/softwaremap/ projects at the Openmoko GForge] than the wiki can list, not to mention self-hosted applications on their own websites. Actually the phones can run most Linux based Free Software, using for example the [[Debian]] distribution. The [http://handhelds.freshmeat.net/browse/1038/ mobile phones section of Freshmeat] may be a interesting place to look.<br />
<br />
Note also that there are many packages in the repository that are not installed by default. If what you want is a classic, chances are that it is already packaged. Suppose you want to install Perl:<br />
opkg list|grep perl<br />
opkg install perl<br />
<br />
More application download related pages:<br />
<br />
* [[Community Repository]]<br />
* [[Users Repositories]]<br />
<br />
&lt;div style=&quot;clear:both&quot;&gt;&amp;nbsp;&lt;/div&gt;<br />
<br />
== Where to find full distributions ? ==<br />
<br />
* [[Download]]: for complete system downloads<br />
<br />
== The usual warnings ==<br />
&lt;small&gt;<br />
* Some of these software are developed by Openmoko Inc. and some are contributed by the community. Any problems with community contributed software should be reported to the individual software developer rather than the Openmoko core team.<br />
* Most programs listed here are not mature/stable, but only useable/beta.<br />
* Many programs listed here are not yet packaged for your distribution and integrated in its repositories. Whichever it is.<br />
* Installing experimental software from the internet is certain to break things. Running it as root is a very insecure thing to do. Kown that you will be burned, have backups, and be ready to apologize to everybody in your phone contact list in case they receive strange SMSs...<br />
&lt;/small&gt;<br />
<br />
<br />
[[Category:Applications|Applications]]<br />
[[Category:Basic End User]]</div>Myfanwyhttp://wiki.openmoko.org/wiki/KnjrepositoryKnjrepository2009-04-13T03:44:40Z<p>Myfanwy: /* How to use */</p>
<hr />
<div>== Packages for development ==<br />
<br />
The knjRepository includes the following interesting packages:<br />
<br />
# '''php526''' - [[PHP]] 5.2.6 CLI support, which enables you to write CLI-scripts for your OpenMoko. It also includes PDO (SQLite3) support.<br />
# '''php526-gtk2''' - [[PHP-GTK]] enables you to write GTK-applications in [[PHP]].<br />
# '''ruby1.8''' - Enables you to use Ruby scripts on your OpenMoko.<br />
# '''libgtk2-ruby1.8''' - Enables Ruby to use Gtk.<br />
# '''libsqlite3-ruby1.8''' - Enables you to use SQLite3-databases in Ruby.<br />
# '''libglade2-ruby1.8''' - Enables you to use Glade with Gtk-applications in Ruby.<br />
# '''ruby1.8-icalendar''' - A Ruby-lib for parsing iCal-files.<br />
# '''ruby1.8-googlecalendar''' - A Ruby-lib for working with a Google Calendar.<br />
<br />
<br />
(and a lot of other Ruby-extensions like SOAP and WSDL)<br />
<br />
A list of all the packages can be found [http://downloads.kaspernj.org/openmoko/repository/ here].<br />
<br />
== Application packages ==<br />
*'''[[KnjMokoWifi]]''' - An application for configuring the wireless interface in the OpenMoko-phone. It works with WPA, WEP and no-encryption. It supports profiles, so you dont have to remember passwords for each wireless access point used. It is written in PHP-GTK. Furthermore it can disable the routing-gateway on the USB-networking interface, making the default gateway WiFi. It can also start a DHCP-request to obtain an IP address and so on for the wireless interface.<br />
*'''[[KnjMokoOPKG]]''' - A graphical frontend for [[Opkg]].<br />
*'''[[knjMokoCalendar]]''' - An application for viewing your Google Calendar on your OpenMoko phone written in Ruby. This application is still kind of unstable, since there isn't implemented any error handling. It will also cache events for viewing where there is no network connection<br />
*'''[[knjMokoSettings]]''' - An application which allows a user to carry out various administrative tasks on their phone, such as restarting the X-server, rebooting the phone, turning off/on the Wifi and more, via a graphical interface.<br />
*'''[[knjMokoEmail]]''' - An application for reading email on openmoko phones<br />
<br />
== How to use ==<br />
<br />
You can configure your phone to use the repository by doing the following:<br />
<br />
wget &lt;nowiki&gt;http://downloads.kaspernj.org/openmoko/repository/knjrepository.conf&lt;/nowiki&gt; -O /etc/opkg/knjrepository.conf<br />
opkg update<br />
<br />
(ignore the signature errors)<br />
<br />
<br />
Then if you want to install [[PHP-GTK]], you can do this:<br />
opkg install php526 php526-gtk2<br />
<br />
<br />
Or if you want Ruby with Gtk-support:<br />
opkg install ruby1.8 libgtk2-ruby1.8 libglade2-ruby1.8 libsqlite3-ruby1.8<br />
<br />
== Made by ==<br />
<br />
The repository has been set up and is maintained by [mailto:k@spernj.org Kasper Johansen].<br />
<br />
The [[PHP]]-packages has been packaged by Derick Rethans.<br />
<br />
The Ruby-packages has been packaged by Kero van Gelder.<br />
[[Category:Guides]]<br />
[[Category:Applications]]</div>Myfanwyhttp://wiki.openmoko.org/wiki/KnjMokoCalendarKnjMokoCalendar2009-04-09T07:06:26Z<p>Myfanwy: /* About the application */</p>
<hr />
<div>{{ApplicationBox|<br />
Name=[[knjMokoCalendar]]|<br />
Description=Google calendar client originally written for Om 2008.12|<br />
Screenshot=No-screenshot.png|<br />
Homepage=http://wordpress.kaspernj.org/?cat=15|<br />
TestedOn=Om 2008.8|<br />
PackageName=knjmokocalendar<br />
}}<br />
<br />
== About the application ==<br />
<br />
knjMokoCalendar is an application for viewing and editing google calendar appointments<br />
<br />
At the moment, it can only be used for viewing data stored in the calendar, but it is planned to allow editing later.<br />
<br />
==Setup==<br />
*Run the application, and click on the properties button at the bottom of the screen.<br />
*Type your google calendar logon name and password in to the boxes provided.<br />
*In the third box, you will need to add the private url to your calendar feed - this can be found in the 'settings' section of google calendar. As this is a long url, it may be best to do it either through screen-sharing, or by pasting the address directly into the sqlite address found in /opt/knjmokocalendar/database/knjmokocalendar.sqlite3 , by using 'sqlite database browser' or similar, on your desktop machine<br />
<br />
<br />
==Suggestions==<br />
knjmokocalendar is under heavy development - please post any suggestions for improvements/bug-fixes here:</div>Myfanwyhttp://wiki.openmoko.org/wiki/KnjrepositoryKnjrepository2009-04-09T06:57:39Z<p>Myfanwy: /* Application packages */</p>
<hr />
<div>== Packages for development ==<br />
<br />
The knjRepository includes the following interesting packages:<br />
<br />
# '''php526''' - [[PHP]] 5.2.6 CLI support, which enables you to write CLI-scripts for your OpenMoko. It also includes PDO (SQLite3) support.<br />
# '''php526-gtk2''' - [[PHP-GTK]] enables you to write GTK-applications in [[PHP]].<br />
# '''ruby1.8''' - Enables you to use Ruby scripts on your OpenMoko.<br />
# '''libgtk2-ruby1.8''' - Enables Ruby to use Gtk.<br />
# '''libsqlite3-ruby1.8''' - Enables you to use SQLite3-databases in Ruby.<br />
# '''libglade2-ruby1.8''' - Enables you to use Glade with Gtk-applications in Ruby.<br />
# '''ruby1.8-icalendar''' - A Ruby-lib for parsing iCal-files.<br />
# '''ruby1.8-googlecalendar''' - A Ruby-lib for working with a Google Calendar.<br />
<br />
<br />
(and a lot of other Ruby-extensions like SOAP and WSDL)<br />
<br />
A list of all the packages can be found [http://downloads.kaspernj.org/openmoko/repository/ here].<br />
<br />
== Application packages ==<br />
*'''[[KnjMokoWifi]]''' - An application for configuring the wireless interface in the OpenMoko-phone. It works with WPA, WEP and no-encryption. It supports profiles, so you dont have to remember passwords for each wireless access point used. It is written in PHP-GTK. Furthermore it can disable the routing-gateway on the USB-networking interface, making the default gateway WiFi. It can also start a DHCP-request to obtain an IP address and so on for the wireless interface.<br />
*'''[[KnjMokoOPKG]]''' - A graphical frontend for [[Opkg]].<br />
*'''[[knjMokoCalendar]]''' - An application for viewing your Google Calendar on your OpenMoko phone written in Ruby. This application is still kind of unstable, since there isn't implemented any error handling. It will also cache events for viewing where there is no network connection<br />
*'''[[knjMokoSettings]]''' - An application which allows a user to carry out various administrative tasks on their phone, such as restarting the X-server, rebooting the phone, turning off/on the Wifi and more, via a graphical interface.<br />
*'''[[knjMokoEmail]]''' - An application for reading email on openmoko phones<br />
<br />
== How to use ==<br />
<br />
You can configure your phone to use the repository by doing the following:<br />
<br />
wget &lt;nowiki&gt;http://downloads.kaspernj.org/openmoko/repository/knjrepository.conf&lt;/nowiki&gt; -O /etc/opkg/knjrepository.conf<br />
opkg update<br />
<br />
(ignore the signature errors)<br />
<br />
<br />
Then if you want to install [[PHP-GTK]], you can do this:<br />
opkg install php526 php526-gtk2<br />
<br />
<br />
Or if you want Ruby with Gtk-support:<br />
opkg install ruby1.8 libgtk2-ruby1.8 libglade2-ruby1.8 libsqlite3-ruby<br />
<br />
== Made by ==<br />
<br />
The repository has been set up and is maintained by [mailto:k@spernj.org Kasper Johansen].<br />
<br />
The [[PHP]]-packages has been packaged by Derick Rethans.<br />
<br />
The Ruby-packages has been packaged by Kero van Gelder.<br />
[[Category:Guides]]<br />
[[Category:Applications]]</div>Myfanwyhttp://wiki.openmoko.org/wiki/USB_NetworkingUSB Networking2009-04-03T05:52:41Z<p>Myfanwy: /* Debian, Ubuntu and others */</p>
<hr />
<div>= Openmoko Networking Setup =<br />
<br />
In order to communicate via TCP/IP to your FreeRunner, a basic understanding of the networking expectations is required. Each end of the USB connection forms a LAN (local area network) segment, with the FreeRunner's USB networking device at one end (default 192.168.0.202) and your laptop or desktop at the other end (192.168.0.200 in this guide).<br />
<br />
Normally, your desktop machine will know how to reach the Internet, having had its gateway (the IP address of the machine or device which knows how to send packets to machines beyond your subnet) configured via DHCP or statically (probably via a router). For the FreeRunner to reach the Internet, your desktop will have to be configured to route and masquerade (NAT) packets from it.<br />
<br />
Normally, none of this is an issue, but problems can arise when the subnet between the FreeRunner and your desktop overlap with the desktop to the router (which forms a second LAN), since your desktop might not know how to route traffic properly.<br />
<br />
In other words: if your existing router and desktop have addresses 192.168.0.(something) changing them to e.g. 192.168.1.(something) might save you a lot of troubleshooting later. A discussion of this is [http://lists.openmoko.org/pipermail/support/2008-August/thread.html#1277 here].<br />
<br />
== Things to keep in mind ==<br />
<br />
* When the FreeRunner suspends it disables its USB networking interface. Therefore it is a good idea to turn off the FreeRunners suspend function when using USB networking. You can do this manually or automatically. [https://wiki.muc.ccc.de/openmoko This] site has two scripts ([https://wiki.muc.ccc.de/openmoko#disable_suspend_if_on_external_power one for Om 2007] and [https://wiki.muc.ccc.de/openmoko#disable_suspend_if_on_external_power1 one for Om 2008]) which disable suspend if the FreeRunner is on external power.<br />
<br />
Some scripts do a tail-grep on certain log file. If you have disabled syslog and/or klog, this might be a problem for detecting when the device is connected to your machine via USB.<br />
<br />
= Simple Manual Linux Configuration =<br />
Try this first (as root on your desktop, with FreeRunner attached via USB cable and booted properly, not at the Boot Menu). If it works, then you can add permanent configuration or use more sophisticated setups below.<br />
=== The shortest way ===<br />
This simple way has been tested with many Linux distributions (Fedora, SuSE, Red Hat, Debian and others) and network configurations. It was even successfully applied to connect another Linux based handhelds like TDS Nomad and surely can be recommended as the first attempt. The way assumes that you have the recent Linux distribution with USB networking enabled and also rather typical network setup. <br />
<br />
With the device connected configure usb0 interface (as root):<br />
&lt;pre&gt;<br />
sudo ip address add 192.168.0.200/24 dev usb0<br />
&lt;/pre&gt;<br />
or (deprecated)<br />
&lt;pre&gt;<br />
sudo ifconfig usb0 192.168.0.200 netmask 255.255.255.0<br />
&lt;/pre&gt;<br />
If your eth0 interface is also in the same 'range' (e.g. 192.168.0.105) then you can do the following:<br />
<br />
1. ping the Neo with<br />
# ping -I usb0 192.168.0.202<br />
2. log in to the Neo (you do not need to be a root on the desktop host just to log in).<br />
# ssh root@192.168.0.202<br />
The default password is blank.<br />
<br />
Do not forget to allow ssh (open the port 22) on your firewall so that you can connect to the device. If you suspect any firewall issues, the simplest way is to unplug the main Internet cable leaving only Neo connected and then temporary turn the firewall off.<br />
<br />
Also, some old or narrowly configured Linux distributions may not have USB networking support. For such cases the simple way might be just to upgrade.<br />
<br />
=== The more advanced way ===<br />
If the previously described simple approach does not work, you may try the more complex one.<br />
<br />
&lt;pre&gt;iptables -A POSTROUTING -t nat -j MASQUERADE -s 192.168.0.0/24<br />
sysctl -w net.ipv4.ip_forward=1<br />
ip addr add 192.168.0.200/24 dev usb0&lt;/pre&gt;<br />
<br />
If your Internet connection is also in the range 192.168.0.x then instead you might want to use only:<br />
<br />
&lt;pre&gt;ip addr add 192.168.0.200/28 dev usb0&lt;/pre&gt;<br />
<br />
(This will just map the net from 192.168.0.192 to 192.168.0.207 onto usb0. If you get the error 'Cannot find device &quot;usb0&quot;', double-check that your FreeRunner is turned on and connected by USB. If that doesn't work, try unplugging and replugging the USB cable.)<br />
<br />
And in this case you should enable ARP proxy on internet facing interface INSTEAD of using iptables:<br />
<br />
&lt;pre&gt;sysctl net.ipv4.conf.eth2.proxy_arp=1&lt;/pre&gt;<br />
<br />
This assuming that eth2 is connected to ISP.<br />
<br />
Then<br />
&lt;pre&gt;ip link set usb0 up&lt;/pre&gt;<br />
or (deprecated)<br />
&lt;pre&gt;ifconfig usb0 up&lt;/pre&gt;<br />
<br />
Then (ideally, not as root):<br />
<br />
&lt;pre&gt;ssh root@192.168.0.202&lt;/pre&gt;<br />
<br />
The default password is blank.<br />
<br />
Due to the fact that in most cases your Neo will use the same dns servers as your computer uses, you can automate the process of writing dns servers to your phone:<br />
<br />
&lt;pre&gt;#!/bin/sh<br />
/sbin/route add -host 192.168.0.202/32 dev usb0<br />
iptables -A POSTROUTING -t nat -j MASQUERADE -s 192.168.0.0/24<br />
iptables -P FORWARD ACCEPT<br />
sysctl -w net.ipv4.ip_forward=1<br />
su `whoami` -c &quot;scp /etc/resolv.conf root@192.168.0.202:/etc/resolv.conf&quot;&lt;/pre&gt;<br />
<br />
Again if your net already is 192.168.0.0, replace the POSTROUTING statement with<br />
&lt;pre&gt;iptables -A POSTROUTING -t nat -j MASQUERADE -s 192.168.0.0/28&lt;/pre&gt;<br />
<br />
This simple script will set up routing for your Freerunner and than copy resolv.conf with dns addresses straight to the phone.<br />
All you have to do is connect phone to the computer, run the script and enjoy internet connection from your phone.<br />
<br />
=== Changing the Neo IP address ===<br />
<br />
Like mentioned above, if the default Neo subnet 192.168.0.X is already used, it might be necessary to change the<br />
Neo [http://en.wikipedia.org/wiki/IP_address IP adress] and subnet.<br />
To achieve this, edit /etc/network/interfaces on the Neo (and reboot it).<br />
In the following example the Neo will use the IP address 192.168.100.1 (instead of the default 192.168.0.202)<br />
within the network 192.168.100.X (instead of 192.168.0.X),<br />
another [http://en.wikipedia.org/wiki/Private_network private] class C network.<br />
(The [http://en.wikipedia.org/wiki/Subnetwork#Binary_subnet_masks netmask] indicates that the first 3 bytes (all bits set) are used to determine the subnet<br />
and the last byte (no bits set) to determine the machine.)<br />
The gateway (the computer, the Neo is attached to) also has to be part of the subnet and is expected to be 192.168.100.254 (instead of 192.168.0.200) here.<br />
<br />
Modifications for /etc/network/interfaces:<br />
<br />
&lt;pre&gt;<br />
auto usb0<br />
iface usb0 inet static<br />
address 192.168.100.1<br />
netmask 255.255.255.0<br />
network 192.168.100.0<br />
gateway 192.168.100.254<br />
&lt;/pre&gt;<br />
<br />
(The network entry seems to be redundant information, since it can be derived from address and netmask?)<br />
Note that wiki articles usually expect default settings and you have to adjust the IP adress, gateway, etc entries according to your changes.<br />
<br />
= Linux Kernel Support =<br />
<br />
Your Linux desktop/laptop needs to have suitable support. In particular you will need to have enabled USB networking and masquerading support in the kernel. For default kernels in many Linux distributions this will already be the case.<br />
<br />
== USB Networking support ==<br />
<br />
The following options need to be enabled:<br />
<br />
* CONFIG_USB_USBNET (''Multi-purpose USB Networking Framework''. Module will be called &lt;tt&gt;usbnet&lt;/tt&gt;)<br />
* CONFIG_USB_NET_CDCETHER (''CDC Ethernet support''. Module will be called &lt;tt&gt;cdc_ether&lt;/tt&gt;)<br />
<br />
These options are available in ''Device Drivers -&gt; USB support -&gt; USB Network Adapters'' or ''Device Drivers -&gt; Network Device Support -&gt; USB Network Adapters.<br />
<br />
In order for USB networking to work you need to load the &lt;tt&gt;cdc_ether&lt;/tt&gt; module (when loading &lt;tt&gt;cdc_ether&lt;/tt&gt; the module &lt;tt&gt;usbnet&lt;/tt&gt; will be loaded automatically). For more info see the [http://www.linux-usb.org/usbnet/ usbnet driver homepage].<br />
<br />
== Masquerading support ==<br />
<br />
Masquerading options are found in ''Networking ---&gt; Networking options ---&gt;'' (tested on Linux 2.6.26.3).<br />
<br />
To enable the needed options you first have to enable:<br />
<br />
* CONFIG_NETFILTER (''Network packet filtering framework (Netfilter)'')<br />
<br />
Then, from<br />
<br />
''Networking ---&gt;<br />
Networking options ---&gt;<br />
[*] Network packet filtering framework (Netfilter) ---&gt;<br />
Core Netfilter Configuration ---&gt;''<br />
<br />
You need at least following options enabled as modules:<br />
<br />
* CONFIG_NF_CONNTRACK (''Netfilter connection tracking support'')<br />
* CONFIG_NF_CONNTRACK_FTP (''FTP protocol support'')<br />
* CONFIG_NETFILTER_XTABLES (''Netfilter Xtables support'')<br />
<br />
Rest of the needed options are found from<br />
<br />
''Networking ---&gt;<br />
Networking options ---&gt;<br />
[*] Network packet filtering framework (Netfilter) ---&gt;<br />
IP: Netfilter Configuration ---&gt;''<br />
<br />
You need to enable (again, as modules is fine):<br />
<br />
* CONFIG_NF_CONNTRACK_IPV4 (''IPv4 connection tracking support (required for NAT)'')<br />
* CONFIG_IP_NF_IPTABLES (''IP tables support (required for filtering/masq/NAT)'')<br />
* CONFIG_NF_NAT (''Full NAT'')<br />
* CONFIG_IP_NF_TARGET_MASQUERADE (''MASQUERADE target support'')<br />
<br />
= Firewall Issues =<br />
<br />
On some systems, you may have firewall rules which prevent this working - such as added by the iptables service on Fedora. You may care to stop these, and/or review any rules or policies you think might cause issues.<br />
<br />
The most relevant table is the nat table, which controls translation of addresses:<br />
<br />
iptables -L -t nat -v -n<br />
<br />
Unless you have a special setup, you'll want to see only the MASQUERADE rule that you apply below, and ACCEPT as the default policy. Also look at the filter table:<br />
<br />
iptables -L -t filter -v -n<br />
<br />
If this contains anything in the FORWARD chain, then this may prevent passing packets. It can be flushed with:<br />
<br />
iptables -t filter -F FORWARD<br />
<br />
= DNS =<br />
<br />
In addition to routing issues, to be practical, DNS will need to work. In some cases, you might already be running a DNS server on your desktop such as dnsmasq or bind9, which is the default assumption the FreeRunner makes. In other cases, you'll need to configure DNS to that of your router, or a DNS server further out on the internet such as that provided by your ISP.<br />
<br />
== Configure Default Neo DNS ==<br />
<br />
DNS is configured in /etc/resolv.conf on your FreeRunner.<br />
<br />
You should add the IP address of the DNS servers as provided by your ISP. Check your router's or PC's network status for the nameserver IP addresses.<br />
<br />
&lt;pre&gt;echo nameserver xxx.xxx.xxx.xxx &gt; /etc/resolv.conf&lt;/pre&gt;<br />
<br />
You can also add the public DNS server called openDNS:<br />
&lt;pre&gt;echo nameserver 208.67.222.222 &gt; /etc/resolv.conf<br />
echo nameserver 208.67.220.220 &gt;&gt; /etc/resolv.conf&lt;/pre&gt;<br />
<br />
These settings will be lost on reboot. You can set the DNS for the next connect, by adding the following to the end of the usb0 setting in /etc/network/interfaces, right above the bluetooth networking section:<br />
&lt;pre&gt;up echo nameserver 208.67.222.222 &gt; /etc/resolv.conf<br />
up echo nameserver 208.67.220.220 &gt;&gt; /etc/resolv.conf&lt;/pre&gt;<br />
<br />
== Proxying DNS from Desktop/Laptop ==<br />
<br />
If you move about, making assumptions about the network may not be convenient, and it is possible to proxy DNS requests via your host laptop (which you are also taking with you), without running or installing a DNS server. There are a number of ways to do this:<br />
<br />
=== Proxying with dnrd ===<br />
<br />
The script is designed to use [http://dnrd.sourceforge.net/ dnrd] as the DNS proxy. The [http://buildhost.automated.it/gta01 script] and a copy of [http://buildhost.automated.it/dnrd-2.20.3.tar.gz dnrd] are available. The script also performs the initial setup of the connection as per the [[USB_Networking#Manual_method]] above.<br />
<br />
=== Proxying with a UDP forwarder ===<br />
<br />
Another easy setup is using a UDP forwarder like the one from http://www.tapor.com/udpf/ - use it with the command&quot;<br />
<br />
&lt;pre&gt;udpf-elf -p=53-f=`awk '$1 == &quot;nameserver&quot;{print $2; exit(0);}' /etc/resolv.conf`:53&lt;/pre&gt;<br />
<br />
=== Proxying with iptables ===<br />
<br />
It is possible to forward DNS requests with iptables using the DNAT target:<br />
<br />
&lt;pre&gt;iptables -t nat -A PREROUTING -p tcp -s 192.168.0.202 -d 192.168.0.200 --dport domain -j DNAT --to-destination 192.168.0.1<br />
iptables -t nat -A PREROUTING -p udp -s 192.168.0.202 -d 192.168.0.200 --dport domain -j DNAT --to-destination 192.168.0.1&lt;/pre&gt;<br />
<br />
Where &lt;tt&gt;192.168.0.1&lt;/tt&gt; is the IP of your router.<br />
<br />
Test if it works:<br />
&lt;pre&gt;ping www.google.com&lt;/pre&gt;<br />
<br />
If so, then this is sufficient for most internet access. But manual changes to resolv.conf are usually lost later if for example one uses DHCP, especially for WiFi, and so may not be convenient to configure manually.<br />
<br />
= Testing Your Connection =<br />
You should be able to connect to your Neo! Make sure you can ping your Neo to be sure.<br />
ping 192.168.0.202<br />
<br />
Then log into your Neo using ssh:<br />
ssh root@192.168.0.202<br />
The default password is blank (press enter).<br />
<br />
You can also [[scp]] files back and forth. You can telnet, SSH, SMB or do whatever you want if you install software that enables you to set up TCP/IP network over your USB connection.<br />
<br />
Now, make sure you can ping back to your desktop<br />
ping 192.168.0.200<br />
(Note that some systems like Vista, don't respond to ICMP ping by default)<br />
<br />
Try pinging the outside world (a Google IP address)<br />
ping 74.125.19.147<br />
This demonstrates that masquerading is working - your desktop is sending/receiving packets to the wider internet.<br />
<br />
Lastly, verify that DNS is correctly configured between the Neo &amp; Network:<br />
ping www.google.com<br />
<br />
= OS or Distro Specific &amp; Automatic Configuration =<br />
<br />
Based on [http://blog.haerwu.biz/2007/03/22/hotpluging-usbnet/ Hotplugging usbnet] by Marcin 'Hrw' Juszkiewicz.<br />
These instructions should keep you from having to run the Simple Manual Linux Configuration every time you plug in and want to connect to an Openmoko device. One run and then you're done!<br />
<br />
If the Simple Manual Linux Configuration does not work for your OS or Distro (MacOS X, MS Windows, etc) there may be instructions here that work for you.<br />
<br />
== MacOS X ==<br />
See [[MacOS_X#USB_Networking|MacOS X USB Networking]].<br />
<br />
== Windows ==<br />
See [[Neo1973_and_Windows#USB_Ethernet_emulation|Windows USB Ethernet emulation for Neo1973]].<br />
<br />
There is also a very helpful tutorial for connecting with Vista at [http://sam.curren.ws/index.cfm/2008/7/14/Using-the-Neo-FreeRunner-with-Windows-XPVista].<br />
<br />
== FreeBSD ==<br />
You need to load the cdce kernel module (if it is not already linked into your kernel). As root do:<br />
<br />
# kldload cdce<br />
<br />
The Neo should then show up as cdce0 interface and you can handle the cdce0 interface just like the usb0 device under Linux. For more information see the cdce manpage. An easy way to assign the IP address to the cdce0 interface is using the devd(8) daemon. Create the following two files,<br />
<br />
&lt;tt&gt;/usr/local/etc/devd/cdce.conf&lt;/tt&gt; as:<br />
<br />
&lt;pre&gt;<br />
notify 1 {<br />
match &quot;system&quot; &quot;IFNET&quot;;<br />
match &quot;subsystem&quot; &quot;cdce0&quot;;<br />
match &quot;type&quot; &quot;ATTACH&quot;;<br />
action &quot;/usr/local/etc/devd/cdce.sh $subsystem $type&quot;;<br />
};<br />
&lt;/pre&gt;<br />
<br />
and &lt;tt&gt;/usr/local/etc/devd/cdce.sh&lt;/tt&gt; as:<br />
<br />
&lt;pre&gt;<br />
#!/bin/sh<br />
case $2 in<br />
'ATTACH')<br />
ifconfig cdce0 192.168.0.200 netmask 255.255.255.0<br />
exit 0 ;<br />
;;<br />
esac<br />
exit 0<br />
&lt;/pre&gt;<br />
<br />
Then restart the devd(8) daemon with:<br />
<br />
# /etc/rc.d/devd restart<br />
<br />
If you now plugin the FreeRunner into the USB port the cdce0 interface gets created and the IP addr will be assigned.<br />
<br />
== Debian, Ubuntu and others ==<br />
<br />
Edit /etc/network/interfaces and add:<br />
<br />
&lt;pre&gt;<br />
# freerunner<br />
allow-hotplug usb0<br />
iface usb0 inet static<br />
address 192.168.0.200<br />
netmask 255.255.255.0<br />
up iptables -A POSTROUTING -t nat -s 192.168.0.0/24 -j MASQUERADE<br />
up echo 1 &gt; /proc/sys/net/ipv4/ip_forward<br />
down iptables -D POSTROUTING -t nat -s 192.168.0.0/24 -j MASQUERADE<br />
&lt;/pre&gt;<br />
<br />
This is more sophisticated than the manual setup. The 'auto usb' stanza ties into the Linux hotplug system so that when the device appears and vanishes, as happens when the FreeRunner is connected via USB, this is run.<br />
<br />
In addition, the desktop-side netmask is limited to a much smaller range, so that overlapping subnets are less of a problem - Linux will use more specific routes first when deciding where to send packets.<br />
<br />
Another possible configuration that adds DNS forward and removes<br />
the iptables changes after unplugging:<br />
<br />
in /etc/network/interfaces add<br />
&lt;pre&gt;<br />
# freerunner<br />
allow-hotplug usb0<br />
iface usb0 inet static<br />
address 192.168.0.200<br />
netmask 255.255.255.192<br />
post-up /etc/network/freerunner start<br />
pre-down /etc/network/freerunner stop<br />
&lt;/pre&gt;<br />
<br />
create file /etc/network/freerunner<br />
&lt;pre&gt;<br />
#!/bin/sh<br />
#<br />
# configures the freerunner for internet<br />
#<br />
#<br />
<br />
DEVICE=usb0<br />
IPADDR=192.168.0.200<br />
REMOTE_IPADDR=192.168.0.202<br />
NETMASK=255.255.255.0<br />
<br />
# get first ip for dns<br />
DNSIP=$(awk '$1 == &quot;nameserver&quot;{print $2; exit(0);}' /etc/resolv.conf)<br />
<br />
case &quot;$1&quot; in<br />
start)<br />
iptables -A POSTROUTING -t nat -j MASQUERADE -s $REMOTE_IPADDR<br />
iptables -A PREROUTING -t nat -p tcp -s $REMOTE_IPADDR -d $IPADDR --dport domain -j DNAT --to-destination $DNSIP<br />
iptables -A PREROUTING -t nat -p udp -s $REMOTE_IPADDR -d $IPADDR --dport domain -j DNAT --to-destination $DNSIP<br />
<br />
if [ &quot;$(cat /proc/sys/net/ipv4/ip_forward)&quot; = &quot;0&quot; ]; then<br />
echo &quot;temoprarely allow ip_forward for openmoko&quot; &gt; /var/run/openmoko.ip_forward<br />
echo 1 &gt; /proc/sys/net/ipv4/ip_forward<br />
fi<br />
;;<br />
stop)<br />
iptables -D POSTROUTING -t nat -j MASQUERADE -s $REMOTE_IPADDR<br />
iptables -D PREROUTING -t nat -p tcp -s $REMOTE_IPADDR -d $IPADDR --dport domain -j DNAT --to-destination $DNSIP<br />
iptables -D PREROUTING -t nat -p udp -s $REMOTE_IPADDR -d $IPADDR --dport domain -j DNAT --to-destination $DNSIP<br />
<br />
if [ -f /var/run/openmoko.ip_forward ]; then<br />
rm /var/run/openmoko.ip_forward<br />
echo 0 &gt; /proc/sys/net/ipv4/ip_forward<br />
fi<br />
;;<br />
esac<br />
&lt;/pre&gt;<br />
<br />
Make /etc/network/freerunner executable with<br />
chmod +x /etc/network/freerunner<br />
<br />
It is possible to use network-manager to automatically connect to the Freerunner using udev. The process uses udev to run a script when the Freerunner is plugged in. The script uses the ip command to set the mac address of the usb network interface. To begin, create /etc/udev/rules.d/80-freerunner.rules :<br />
<br />
&lt;pre&gt;<br />
# This file causes programs to be run on device insertion.<br />
# See udev(7) for syntax.<br />
# rule to assign a fixed mac address specified in /<br />
KERNEL==&quot;usb[0-9]*&quot;, DRIVERS==&quot;cdc_ether&quot;, ACTION==&quot;add&quot;, RUN+=&quot;/usr/local/sbin/freerunner-usb-add.sh %k&quot;<br />
&lt;/pre&gt;<br />
<br />
Next, create the /usr/local/sbin/freerunner-usb-add.sh :<br />
<br />
&lt;pre&gt;<br />
#!/bin/sh<br />
(<br />
busNum=$( printf %.2d $( expr match &quot;$1&quot; &quot;usb\([0-9]*\)&quot;) )<br />
ip link set &quot;$1&quot; address 00:00:22:55:bb:$busNum &amp;&gt; /dev/null<br />
) &amp;<br />
exit 0<br />
&lt;/pre&gt;<br />
<br />
Finally run &quot;chmod +x /usr/local/sbin/freerunner-usb-add.sh&quot; to make it executable. Now you can use network-manager with mac-address specific settings and get it to automatically connect.<br />
<br />
=== Ubuntu 8.10 - Easy Way ===<br />
<br />
1. Connect Neo to PC and wait about a minute when NetworkManager stops scanning usb for dhcp (wait when icon in the tray switches to normal).<br />
<br />
2. Open &quot;nm-connection-editor&quot;, select &quot;Auto usb0&quot;, click &quot;Edit&quot;, then &quot;IPv4 Settings&quot;. Set &quot;Method&quot; - &quot;Manual&quot;, click &quot;Add&quot;. In the &quot;Address&quot; field write &quot;192.168.0.200&quot;, &quot;Netmask&quot; - &quot;255.255.255.0&quot;, leave &quot;Gateway&quot; field empty. Click &quot;OK&quot;, then &quot;Close&quot;.<br />
<br />
3. Now you can connect via ssh to 192.168.0.202<br />
<br />
Then, based on [http://sebastian-bergmann.de/index.php?url=archives/801-OpenMoko-Freerunner-and-Ubuntu.html#feedback these instructions], you should be able to setup masquerading by running the following commands on your Ubuntu PC: <br />
<br />
&lt;pre&gt;sudo iptables -I INPUT 1 -s 192.168.0.202 -j ACCEPT<br />
sudo iptables -I OUTPUT 1 -s 192.168.0.200 -j ACCEPT<br />
sudo iptables -A POSTROUTING -t nat -j MASQUERADE -s 192.168.0.0/24<br />
sudo bash -c 'echo 1 &gt; /proc/sys/net/ipv4/ip_forward'&lt;/pre&gt;<br />
<br />
=== Ubuntu Issues ===<br />
<br />
Ubuntu 8.10 doesn't work as expected if you used /etc/network/interfaces to automate the connection.&lt;br&gt;<br />
Network manager likes to latch onto the network device and add a default route through 192.168.0.202, breaking your network connection.<br />
Network manager also says you can't edit or remove this connection from its list. I'm going back to making the connection manually.&lt;br&gt;<br />
Using the /usr/local/sbin/freerunner-usb-add.sh script for some automatism can be a workaround:<br />
&lt;pre&gt;<br />
#!/bin/sh<br />
(<br />
ip address add 192.168.0.200/26 netmask dev usb0 &gt; /dev/null<br />
ip link set usb0 up &gt; /dev/null<br />
/etc/network/freerunner start<br />
) &amp;<br />
exit 0<br />
&lt;/pre&gt;<br />
<br />
Ubuntu Feisty, Gutsy and Hardy reportedly have a bug where ifdown is not run when the interface is unplugged, meaning this only works once after the system is booted. This is mentioned at https://bugs.launchpad.net/ubuntu/+source/ifupdown/+bug/130437<br />
<br />
One can patch /etc/udev/rules.d/85-ifupdown.rules. Moving the DRIVERS==&quot;*?&quot; out of the top GOTO, to ACTION==&quot;add&quot; line fixes the problem.<br />
<br />
&lt;pre&gt;<br />
SUBSYSTEM==&quot;net&quot;, GOTO=&quot;net_start&quot;<br />
GOTO=&quot;net_end&quot;<br />
<br />
LABEL=&quot;net_start&quot;<br />
<br />
# Bring devices up and down only if they're marked auto.<br />
# Use start-stop-daemon so we don't wait on dhcp<br />
ACTION==&quot;add&quot;, DRIVERS==&quot;?*&quot;, RUN+=&quot;/sbin/start-stop-daemon --start --background --pidfile /var/run/network/bogus --startas /sbin/ifup -- --allow auto $env{INTERFACE}&quot;<br />
ck<br />
ACTION==&quot;remove&quot;, RUN+=&quot;/sbin/start-stop-daemon --start --background --pidfile /var/run/network/bogus --startas /sbin/ifdown -- --allow auto $env{INTERFACE}&quot;<br />
<br />
LABEL=&quot;net_end&quot;<br />
&lt;/pre&gt;<br />
<br />
The bug is that the DRIVERS variable isn't set at all when the device is unplugged.<br />
<br />
This appears to be fixed in Ubuntu 8.04 [[User:Mattt|Mattt]] 11:38, 30 July 2008 (UTC)<br />
:Actually it appears that it's not fixed, but patching that file and disconnecting and reconnecting the phone works perfectly. --[[User:Johndoesacc|Johndoesacc]] 18:37, 20 August 2008 (UTC)<br />
:Well, yes, it must be fixed because it worked for me out-of-the-box without tweaking the udev rule on 8.04 --[[User:EtienneG|EtienneG]] November 26th, 2008<br />
:It wasn't solved in my case, as of 3. February 2009 in 8.04 (AMD64), the patch above solved my problem thou. --[[User:VilleWitt|VilleWitt]] February 3td, 2009.<br />
<br />
Iptables Configuration with GUI:<br />
<br />
Firestarter can be used to allow the freerunner to connect to the internet without manually running iptables commands. Firestarter is in the ubuntu repositories and can be installed with a <br />
&lt;pre&gt;sudo aptitude install firestarter&lt;/pre&gt;<br />
Once installed, the firestarter preferences dialog has a network section, under which a drop-down box appeasr which is labeled &quot;Local network connected device.&quot; Select the freerunner, generally &quot;Unknown device(usb0)&quot; and check the &quot;Enable internet connection sharing&quot; box. Uncheck local network DHCP and the freerunner should be able to access the internet.<br />
-Tested in ubuntu 8.10--[[User:makito|Makito]] February 26, 2009<br />
<br />
=== Ubuntu Workaround ===<br />
Use [http://wicd.sourceforge.net/ wicd] instead of networkmanager:<br />
It is much further in development than networkmanager yet and doesn't make any problems with USB networking. You can use the &quot;normal&quot; settings in /network/interfaces.<br />
;Note: Because of it's dependencies it deinstalls networkmanager.<br />
<br />
== Mandriva ==<br />
<br />
This first file configures the network system for the usb0 interface. Any time you plug in the FreeRunner the interface will be configured.<br />
<br />
&lt;tt&gt;/etc/sysconfig/network-scripts/ifcfg-usb0&lt;/tt&gt;:<br />
<br />
&lt;pre&gt;<br />
DEVICE=usb0<br />
BOOTPROTO=static<br />
IPADDR=192.168.0.200<br />
NETMASK=255.255.255.0<br />
NETWORK=192.168.0.0<br />
BROADCAST=192.168.0.255<br />
ONBOOT=yes<br />
METRIC=10<br />
MII_NOT_SUPPORTED=no<br />
USERCTL=yes<br />
&lt;/pre&gt;<br />
<br />
This next file configures the static routes that we need to communicate to the subnet. Since it has &quot;usb0&quot; in the name, the system will automatically apply these static routes any time that the usb0 interface is configured. (i.e. when you connect the FreeRunner)<br />
<br />
&lt;tt&gt;/etc/sysconfig/network-scripts/usb0-routes&lt;/tt&gt;:<br />
<br />
&lt;pre&gt;<br />
ADDRESS0=192.168.0.200<br />
NETMASK0=255.255.255.0<br />
&lt;/pre&gt;<br />
<br />
Now we need to restart the network system to pick up the changes.<br />
<br />
service network restart<br />
<br />
<br />
This didn't work for me (Mandriva 2008.1), giving errors from Shorewall. However, simply using MCC, Network-&gt;Sharing Internet Access worked fine. You need to connect Neo when starting it. --[[User:Alih|Alih]] 18:50, 22 September 2008 (UTC)<br />
<br />
== SuSE ==<br />
<br />
/etc/sysconfig/network/ifcfg-usb0:<br />
<br />
# USB configuration for PDAs (openmoko)<br />
IPADDR=192.168.0.200<br />
NETMASK=255.255.255.0<br />
STARTMODE=onboot<br />
<br />
For more information on getting USB networking up using YaST, see [[USB Networking with openSUSE]].<br />
<br />
== Fedora ==<br />
<br />
=== Option A - Tested with FC9, FC8 &amp; FC5 ===<br />
<br />
edit file &lt;tt&gt;/etc/sysconfig/network-scripts/ifcfg-usb0&lt;/tt&gt; to look like this:<br />
<br />
# USB configuration for PDAs (openmoko)<br />
# from &lt;nowiki&gt;http://www.handhelds.org/moin/moin.cgi/UsbNet&lt;/nowiki&gt;<br />
DEVICE=usb0<br />
BOOTPROTO=none<br />
IPADDR=192.168.0.200<br />
NETMASK=255.255.255.0<br />
ONBOOT=yes<br />
<br />
and restart networking service by typing:<br />
<br />
service network restart<br />
<br />
if your '''openmoko''' is connected when you restart network you should see system message:<br />
<br />
&lt;code&gt;Bringing up interface usb0 [OK]&lt;/code&gt;<br />
<br />
=== Option B ===<br />
<br />
This setup is probably over-complex:<br />
<br />
/etc/sysconfig/network-scripts/ifcfg-usb0:<br />
<br />
DEVICE=usb0<br />
IPADDR=192.168.0.200<br />
NETMASK=255.255.255.0<br />
<br />
/etc/sysconfig/network-scripts/ifup-usb:<br />
<br />
#!/bin/bash<br />
./etc/init.d/functions<br />
cd /etc/sysconfig/network-scripts<br />
../network-functions<br />
[ -f ../network ] &amp;&amp; . ../network<br />
CONFIG=${1}<br />
need_config ${CONFIG}<br />
source_config<br />
NETBITS=`ipcalc -p ${IPADDR} ${NETMASK} | awk -F'=' '{print $2;}'`<br />
/sbin/ip addr flush dev ${DEVICE} 2&gt;/dev/null<br />
/sbin/ip link set dev ${DEVICE} up<br />
/sbin/ip addr add dev ${DEVICE} ${IPADDR}/${NETBITS}<br />
/sbin/iptables -I POSTROUTING -t nat -j MASQUERADE -s ${IPADDR}/${NETBITS}<br />
/sbin/sysctl net.ipv4.ip_forward=1<br />
/sbin/iptables -I FORWARD -s ${IPADDR}/${NETBITS} -j ACCEPT<br />
/sbin/iptables -I FORWARD -d ${IPADDR}/${NETBITS} -j ACCEPT<br />
<br />
Set /etc/sysconfig/network-scripts/ifdown-usb:<br />
<br />
#!/bin/bash<br />
./etc/init.d/functions<br />
cd /etc/sysconfig/network-scripts<br />
../network-functions<br />
[ -f ../network ] &amp;&amp; . ../network<br />
CONFIG=${1}<br />
need_config ${CONFIG}<br />
source_config<br />
NETBITS=`ipcalc -p ${IPADDR} ${NETMASK} | awk -F'=' '{print $2;}'`<br />
/sbin/iptables -D FORWARD -d ${IPADDR}/${NETBITS} -j ACCEPT<br />
/sbin/iptables -D FORWARD -s ${IPADDR}/${NETBITS} -j ACCEPT<br />
/sbin/sysctl net.ipv4.ip_forward=0<br />
/sbin/iptables -D POSTROUTING -t nat -j MASQUERADE -s ${IPADDR}/${NETBITS}<br />
/sbin/ip link set dev ${DEVICE} down<br />
/sbin/ip addr flush dev ${DEVICE} 2&gt;/dev/null<br />
<br />
If you are using NetworkManager, restart it and enable the usb device from its menu, otherwise it will disable your connection shortly after you enable it.<br />
<br />
/sbin/service NetworkManager restart<br />
<br />
=== Option C - tested on FC8, FC9 and F10 ===<br />
<br />
Plug in the usb cable. NetworkManager should detect the phone automatically but you should ignore it.<br />
Open Network Configuration tool (System -&gt; Administration -&gt; Network) and perform following steps:<br />
# Click '''New''' button on top bar<br />
# Click '''Forward'''<br />
# Select OpenMoko from device list<br />
# Click '''Forward'''<br />
# Select 'Statically set IP address:' and enter address: 192.168.0.200, netmask 255.255.255.0 (or use 255.255.255.240 if you want only route ip range 192.168.0.192-192.168.0.207). Leave gateway empty.<br />
# Click '''Forward'''<br />
# Click '''Apply''' to close add dialog<br />
# Select newly added usb0 device from the device list.<br />
# Click '''Edit''' button on top bar<br />
# You might want to remove a tick from 'Activate device when computer starts' check box.<br />
# Click '''Ok''' to close window dialog.<br />
Save settings and close the window.<br />
<br />
Open Firewall Configuration (System -&gt; Administration -&gt; Firewall) and enable masquerading:<br />
# Select '''Masquerading''' from left panel<br />
# Check device(s) which you'd like to share internet connection. Typically eth0 or wlan0.<br />
# Click '''Apply''' and close application<br />
<br />
Open terminal and perform (as root user):<br />
# ifdown usb0<br />
# ifup usb0<br />
The first command will remove any existing settings given by the NetworkManager and second command brings the device up with appropriate settings.<br />
<br />
Now you should be able to ping e.g. 74.125.39.99 [www.google.com] from OpenMoko. Configure /etc/resolv.conf and you should have full a internet access.<br />
<br />
==== Troubleshooting ====<br />
If Network Configuration tool cannot see the the usb0 try to unplug the usb cable for a few seconds and wait until the NetworkManager finds it again.<br />
<br />
NetworkManager will assign a new ip address for the OpenMoko if link goes down for a while. You can fix this by issuing '''ifup usb0''' again.<br />
<br />
== Red Hat or Similar (tested with Workstation 5) ==<br />
<br />
Edit /etc/sysconfig/network-scripts/net.hotplug:<br />
<br />
After this command:<br />
<br />
&lt;pre&gt;<br />
case $INTERFACE in<br />
# interfaces that are registered after being &quot;up&quot; (?)<br />
&lt;/pre&gt;<br />
<br />
add<br />
<br />
&lt;pre&gt;<br />
usb0)<br />
ifconfig usb0 192.168.0.200 netmask 255.255.255.0<br />
route add 192.168.0.202 usb0<br />
iptables -I INPUT 1 -s 192.168.0.202 -j ACCEPT<br />
iptables -I OUTPUT 1 -s 192.168.0.200 -j ACCEPT<br />
iptables -A POSTROUTING -t nat -j MASQUERADE -s 192.168.0.0/24<br />
echo 1 &gt; /proc/sys/net/ipv4/ip_forward<br />
exit 0<br />
;;<br />
&lt;/pre&gt;<br />
<br />
== Gentoo ==<br />
<br />
Open /etc/conf.d/net and add:<br />
<br />
&lt;pre&gt;<br />
# Neo<br />
config_usb0=( &quot;192.168.0.200 netmask 255.255.255.0&quot; )<br />
routes_usb0=( &quot;192.168.0.202/32 via 192.168.0.200&quot; )<br />
&lt;/pre&gt;<br />
<br />
Create a new init script:<br />
<br />
&lt;pre&gt;<br />
cd /etc/init.d<br />
ln -s net.lo net.usb0<br />
&lt;/pre&gt;<br />
<br />
=== Manual Configuration ===<br />
<br />
Put iptables into use:<br />
<br />
&lt;pre&gt;<br />
iptables -I INPUT 1 -s 192.168.0.202 -j ACCEPT<br />
iptables -I OUTPUT 1 -s 192.168.0.200 -j ACCEPT<br />
iptables -A POSTROUTING -t nat -j MASQUERADE -s 192.168.0.0/24<br />
&lt;/pre&gt;<br />
<br />
Store them:<br />
<br />
/etc/init.d/iptables save<br />
<br />
If you want the routing by default:<br />
<br />
rc-update add iptables default<br />
<br />
You must also inform the kernel, to start forwarding.<br />
<br />
echo 1 &gt; /proc/sys/net/ipv4/ip_forward<br />
<br />
=== Automatic Configuration ===<br />
One way to automate all this is to create /etc/conf.d/net.usb0 as follows. It sets IP forwarding and the iptables rules all in one go. It removes the iptables rules and disables ip forwarding when the FreeRunner is unplugged.<br />
Therefore the net.usb0 service must be hotpluggable (/etc/rc.conf).<br />
<br />
&lt;pre&gt;<br />
preup() {<br />
echo 1 &gt; /proc/sys/net/ipv4/ip_forward<br />
iptables -I INPUT 1 -s 192.168.0.202 -j ACCEPT<br />
iptables -I OUTPUT 1 -s 192.168.0.200 -j ACCEPT<br />
iptables -A POSTROUTING -t nat -j MASQUERADE -s 192.168.0.0/24<br />
return 0<br />
}<br />
<br />
postdown() {<br />
echo 0 &gt; /proc/sys/net/ipv4/ip_forward<br />
iptables -D INPUT -s 192.168.0.202 -j ACCEPT<br />
iptables -D OUTPUT -s 192.168.0.200 -j ACCEPT<br />
iptables -D POSTROUTING -t nat -j MASQUERADE -s 192.168.0.0/24<br />
return 0<br />
}<br />
&lt;/pre&gt;<br />
<br />
== Slackware (tested with 12.1) ==<br />
<br />
Following is based on [http://www.enricozini.org/2008/tips/autodock-freerunner.html Enrico Zini's solution].<br />
<br />
Create a new udev rules file &lt;tt&gt;/etc/udev/rules.d/91-openmoko.rules&lt;/tt&gt;:<br />
<br />
&lt;pre&gt;<br />
SUBSYSTEM==&quot;net&quot;, ACTION==&quot;add&quot;, ATTRS{idVendor}==&quot;1457&quot;, ATTRS{idProduct}==&quot;5122&quot;, RUN+=&quot;/sbin/om-usb $env{INTERFACE} start&quot;<br />
SUBSYSTEM==&quot;net&quot;, ACTION==&quot;remove&quot;, ENV{INTERFACE}==&quot;usb[0-9]&quot;, RUN+=&quot;/sbin/om-usb $env{INTERFACE} stop&quot;<br />
&lt;/pre&gt;<br />
<br />
Then create the script &lt;tt&gt;/sbin/om-usb&lt;/tt&gt;:<br />
<br />
&lt;pre&gt;<br />
#!/bin/sh<br />
INTERFACE=$1<br />
ACTION=$2<br />
<br />
# udev fails silently when the script fails, e.g. due to commands not<br />
# being found<br />
PATH=/usr/sbin:/sbin:/usr/bin:/bin<br />
<br />
case $ACTION in<br />
'start')<br />
# Put all your setup here<br />
;;<br />
'stop')<br />
# Put all your tear down here<br />
;;<br />
*)<br />
echo &quot;Usage: $0 {start|stop}&quot;<br />
exit 1<br />
;;<br />
esac<br />
&lt;/pre&gt;<br />
<br />
The &lt;tt&gt;INTERFACE&lt;/tt&gt; will be &lt;tt&gt;usb0&lt;/tt&gt; in most cases.<br />
<br />
== Archlinux ==<br />
Following is based on [http://xenos.altervista.org/blogs/index.php?blog=3&amp;title=openmoko-usb-networking-su-archlinux furester's solution].<br />
<br />
Install package [http://aur.archlinux.org/packages.php?ID=20220 openmoko-usb-networking] from AUR:<br />
<br />
$ yaourt -S openmoko-usb-networking<br />
<br />
= SSH Extras =<br />
<br />
Reportedly, the ssh daemon (dropbear 0.49) on the FreeRunner appears to have a bug when sending the exit status back to the client. From time to time you receive an exit status of 255.<br />
<br />
To avoid ssh adding a new line for every ssh host-key to your known_hosts you can add the following to the phone section in ~/.ssh/config (or see the snippet at : [[USB Networking#Changing_host_keys]] bellow)<br />
<br />
UserKnownHostsFile /dev/null<br />
<br />
You might want to use keys to bypass the login prompt too.<br />
<br />
== SSH Keys ==<br />
<br />
== From desktop to FreeRunner ==<br />
<br />
To generate ssh keys for use as a login mechanism type:<br />
<br />
user@host$ ssh-keygen -t rsa<br />
<br />
When prompted for a password either hit enter for no password (''not really a good idea'') or enter a password for this key. ssh into the phone and create ~/.ssh:<br />
<br />
root@phone# mkdir ~/.ssh<br />
<br />
Then from your desktop copy the '''.pub''' file to the phone.<br />
<br />
user@host$ scp ~/.ssh/id_rsa.pub root@phone:~/.ssh/authorized_keys<br />
<br />
You should now be able to ssh directly into the phone without a password prompt using a command like 'ssh root@phone' from the account user@host because the public key in the file user@host:~/.ssh/id_rsa.pub is contained in the list of keys which have access in the file root@phone:~/.ssh/authorized_keys (since scp is used, only one key exists, but you can grant access to the phone from more than one account, for example user@host, user@laptop).<br />
<br />
To make ssh login as root by default, add the following lines to ~/.ssh/config:<br />
<br />
Host phone<br />
User root<br />
<br />
Replace ''phone'' with the hostname or ip of your phone. You should now be able to ssh into the phone without having to type ''root@'' every time.<br />
<br />
To disable password logins ('''after setting up key access''') edit /etc/init.d/dropbear and change the following line:<br />
<br />
DROPBEAR_EXTRA_ARGS=<br />
<br />
to<br />
<br />
DROPBEAR_EXTRA_ARGS=&quot;-s&quot;<br />
<br />
You will need to restart dropbear for this to take effect.<br />
<br />
=== From FreeRunner to Desktop ===<br />
<br />
Generate the key:<br />
<br />
dropbearkey -t rsa -f id_rsa<br />
<br />
The output will look something like this:<br />
<br />
Will output 1024 bit rsa secret key to 'id_rsa'<br />
Generating key, this may take a while...<br />
Public key portion is:<br />
ssh-rsa AAAAB3Nza[...]<br />
Fingerprint: md5 ca:e8:f0:b7:f6:7b:c2:b6:b9:71:e4:45:86:a9:ff:b8<br />
<br />
Copy and paste the one line (in this example, starting with 'ssh-rsa' onto the end of the host's authorized_keys file (often in ~/.ssh/).<br />
<br />
From the phone, ssh with -i:<br />
<br />
ssh -i id_rsa user@host<br />
<br />
=== Changing host keys ===<br />
<br />
If you reflash, your hosts keys will change. Try this ~/.ssh/config snippet:<br />
<br />
Host moko<br />
HostName 192.168.0.202<br />
StrictHostKeyChecking no<br />
UserKnownHostsFile /dev/null<br />
User root<br />
<br />
This is suggested because ssh on your desktop may complain if the key matching a certain IP changes (stored in .ssh/known_hosts). Now you have set this, you can issue the following command to connect to your moko :<br />
<br />
ssh root@moko<br />
<br />
== GUI on desktop through SSH ==<br />
<br />
To get the GUI on the FreeRunner onto the desktop via USB, you can use ssh as follows (execute on desktop):<br />
<br />
xhost +<br />
ssh -l root -X -v 192.168.0.202<br />
<br />
Using this, run openmoko-finger-demo for example, and it will open up on the desktop. To get landscape view, just resize the GUI window on the desktop.<br />
<br />
If you get an error like this:<br />
<br />
&lt;tt&gt;<br />
dbus.exceptions.DBusException: org.freedesktop.DBus.Error.Spawn.ExecFailed: dbus-launch failed to<br />
autolaunch D-Bus session: Autolaunch requested, but X11 support not compiled in.<br />
&lt;/tt&gt;<br />
<br />
you need to set the DBUS_SESSION_BUS_ADDRESS environment variable to the value on the FreeRunner before launching the process from your desktop. You can find the value of this variable by using a command such as<br />
<br />
ps auxwwwwe | grep -m 1 DBUS_SESSION_BUS_ADDRESS<br />
<br />
Note that you must run that command on the FreeRunner. Back on your desktop, run the process you want with the ''env'' command like this:<br />
<br />
env DBUS_SESSION_BUS_ADDRESS=''dbus_address'' ''process'' #(isn't the &quot;env&quot; redundant here?)<br />
<br />
==Display Remote Applications on FreeRunner==<br />
<br />
To get desktop apps to show up on your FreeRunner, first log in:<br />
<br />
ssh -l root 192.168.0.202<br />
<br />
Then run:<br />
<br />
DISPLAY=:0 xhost +192.168.0.200<br />
<br />
After this you can close the ssh session. Back on the desktop computer, run:<br />
<br />
DISPLAY=openmoko:0 xclock<br />
<br />
Note that the xhost command will allow remote applications on 192.168.0.200 to access the X server. It will allow anyone on the desktop machine to access the X server of the neo, including snooping anything you type on it. To disallow remote applications again, run this in the neo:<br />
<br />
DISPLAY=:0 xhost -192.168.0.200<br />
<br />
== sftp ==<br />
After you get the SSH connection working, it is possible to use Konqueror, Nautilus or another sftp - enabled tool to browse the phone filesystem and deploy the test applications. Just enter sftp://root@192.168.0.202 into address bar.<br />
<br />
== sshfs ==<br />
You can use sshfs to mount the phones filesystem into the hosts filesystem. Make sure that fuse-sshfs is installed and that you are allowed to use fuse. Now run:<br />
<br />
sshfs 192.168.0.202:REMOTE_PATH LOCAL_MOUNT_POINT<br />
<br />
REMOTE_PATH can now be accessed through LOCAL_PATH.<br />
<br />
==Automated setup network and mounting partitions==<br />
<br />
See [https://bugs.launchpad.net/ubuntu/+bug/289548 Ubuntu bug report in launchpad].<br />
<br />
&lt;span id=&quot;bottom&quot;&gt;&lt;/span&gt;<br />
{{Languages|USB Networking}}<br />
<br />
[[Category:USB]]<br />
[[Category:Implemented]]<br />
[[Category:Networking]]</div>Myfanwyhttp://wiki.openmoko.org/wiki/KustomizerKustomizer2009-03-25T05:33:17Z<p>Myfanwy: </p>
<hr />
<div>{{Languages|Kustomizer}}<br />
<br />
''If you want to use Freerunner with OM2008.12 as a usable phone and music player and internet device and gps device then there's so many things you have to install and configure before it's usable. It took me a lot of time to get everything installed and configured (and there's still some things to do). But now there's the Kustomizer, maybe this can make life a little easier.'' [http://lists.openmoko.org/pipermail/community/2009-February/041648.html M.K@community] <br />
<br />
<br />
* '''2009-03-15''' [http://kurppa.fi/freerunner/kustomizer_0.4 Kustomizer 0.4] released check [[Kustomizer#Changelog|Changelog]]<br />
* '''2009-03-11''' Mailing list launched. To subscribe send a mail to [mailto:kustomizer+subscribe@googlegroups.com]<br />
* '''2009-02-20''' [http://www.kurppa.fi/freerunner/kustomizer_0.35 0.35 released] &quot;I tried your version 0.35 and that is a lot better than 0.3&quot; ([http://risto.kurppa.fi/blog/kustomizer-03-for-openmoko-200812/comment-page-1/#comment-407 Lars])<br />
* '''2009-02-20''' [http://www.kurppa.fi/freerunner/kustomizer_0.35 0.35 pre-release] - give it a try, more packages should now install, the bug was finally found.. Let me know if it works for you!<br />
* '''2009-02-19''' [http://risto.kurppa.fi/blog/kustomizer-03-for-openmoko-200812/ version 0.3 released]. Again many fixes and new apps included, for example agps support.<br />
* '''2009-02-06''' [http://risto.kurppa.fi/blog/kustomizer-02-for-200812/ version 0.2 released]. GSM works again. Many fixes done - now Kustomizer can give you two different configurations, see [[Kustomizer#What_does_it_do.3F|here]]. [[Kustomizer#Changelog|Changelog]] and [http://kurppa.fi/freerunner/kustomizer_files/kustomizer_0.2_log_20090206.txt test run log]<br />
* '''2009-02-02''' [http://risto.kurppa.fi/blog/kustomizer-for-openmoko-200812/ First release]. In this release GSM didn't work :( <br />
<br />
<br />
=== Description ===<br />
[[Image:Kustomizer-home.png|thumb|Home view]]Kustomizer is a script that converts your clean OM 2008.12 installation on Openmoko Freerunner into a usable phone/pda/toy/something.<br />
<br />
The script is licensed with GPLv2 licence. The applications that it installs around the Net might have other licenses, check the original sites for more information.<br />
<br />
Originally it was written to make it easy to try some apps after a clean installation for opkg.org application tests ([http://risto.kurppa.fi/blog/opkgorg-software-test-part-i/ review part one], [http://risto.kurppa.fi/blog/opkgorg-software-review-part-2/ review part two]) and 'recover' easily after that but in the end it became a script that might be useful for others, too.<br />
<br />
Send questions and comments to [http://risto.kurppa.fi/blog Risto H. Kurppa] ( risto at kurppa dot fi ) or to the [[Development_resources#Mailing_Lists|Community mailing list]].<br />
<br />
=== Warnings ===<br />
[[Image:Kustomizer-install.png|thumb|Screenshot of the installation screen]]<br />
* Kustomizer will not fix your WSOD / BSOD / wlan connecting only once / etc issues<br />
* Flashing 2008.12 will wipe your rootfs<br />
* Backup all your important data - just to be sure!<br />
* Kustomizer is more or less under development<br />
<br />
=== What does it do? ===<br />
You can run Kustomizer once or twice. Here's an explanation what happens:<br />
<br />
==== First run ====<br />
The first time you run Kustomizer, it installes opkg.org repository, Illume-theme and terminal keyboard, files for better call audio quality, xterm. Also a CPU resource bug is fixed (qpe). A restart is required for this to take effect and Kustomizer will do this for you.<br />
<br />
* illume-theme<br />
* terminal keyboard<br />
* wrench &amp; qwerty buttons<br />
* opkg.org repository added<br />
* qpe eating CPU resources -bug fix<br />
* new gsmhandset.state for improved audio quality<br />
* Restart to apply the new settings<br />
<br />
==== Second run ====<br />
The second run will install the rest: applications, GPRS, link map direcories from µSD card, mokoservices and tap/untap etc. You don't have to make the second run if you don't want.<br />
<br />
* Navit repository added<br />
* Linking /home/root/Maps to /media/card/Maps<br />
* Loads of coolest applications &amp; libraries<br />
* GPRS settings<br />
* Freerunner-optimized Navit config XML. Preconfigured to use the map or Europe in /media/card/Maps/navit/europe.navit.bin<br />
* Your custom script from /media/card/customscript will be run, if found. See [http://kurppa.fi/freerunner/config_files/customscript example]<br />
* loads of various small fixes<br />
* Restart to apply the new settings<br />
<br />
After the second installation, about 150MB of the 256MB rootfs is used.<br />
<br />
==== Applications ====<br />
Here's a list of applications installed. All might not be included.<br />
<br />
Applications / Internet<br />
<br />
* Midori<br />
* Minimo<br />
* Dillo-ssl<br />
* CenterIM<br />
* Wireshark<br />
<br />
Applications / GPS<br />
<br />
* Navit<br />
* GPSsight<br />
* GPSdcontrol<br />
* Orrery<br />
* TangoGPS<br />
<br />
Applications / Config<br />
<br />
* Mokoservices<br />
* Modified .Tap/Untap<br />
* ShortOM<br />
* Battery<br />
* Sortdesk<br />
<br />
Applications / Games<br />
<br />
* OpenTTD<br />
* Duke3D<br />
* Numptyphysics<br />
* OpenMooCow<br />
* Pong<br />
* XScat<br />
* Liquidwar<br />
* Moko-eightball<br />
* Ko-Dice<br />
<br />
Applications / Misc<br />
<br />
* Tons of required libraries<br />
* MokoConv<br />
* Openmiaocat<br />
* Gwaterpas<br />
* Neon<br />
* Meooem<br />
* Mokox48 calculator<br />
* Ledclock<br />
* Qwo -keyboard<br />
* Mtpaint<br />
* Vala-terminal<br />
* Fbreader<br />
* Openmoko-mediaplayer<br />
* Ffalarms<br />
<br />
=== Running the script ===<br />
Script is available at http://www.kurppa.fi/freerunner/kustomizer<br />
<br />
Here's the instructions what to do on your desktop to flash to 2008.12 and then what to do on Freerunner (over SSH!) to run the script.<br />
<br />
## ON DESKTOP COMPUTER (written for Ubuntu 8.10 and newer)<br />
<br />
## Prepare your memory card<br />
Here are some things you can put on your µSD card that will be mounted to /media/card. If you don't have these, it's OK.<br />
* /m/c/customscript - your own script that will be run in the end. You can write here all your custom requirements, I added the Finnish keyboard and some handy scripts, see http://kurppa.fi/freerunner/config_files/customscript<br />
* /m/c/Maps will be symlinked from /home/root/Maps. You can put your Openstreetmap map tiles there: TangoGPS uses this<br />
* /m/c/Maps/navit/europe.navit.bin will be used by Navit, preconfigured to do so<br />
* /m/c/Maps/navit/bookmarks.txt and destinations.txt will be copied to /home/root/.navit. These are the bookmarks and destinations for Navit<br />
<br />
## REQUIRED PACKAGES<br />
# install required packages:<br />
# a) run: sudo apt-get install dfu-util bind9 <br />
# dfu-util is also available from http://downloads.openmoko.org/distro/releases/Om2008.9/dfu-util<br />
<br />
## FLASH<br />
# for more details, see http://wiki.openmoko.org/wiki/Flashing_the_Neo_Freerunner<br />
# download the required image files<br />
# b) run: wget http://downloads.openmoko.org/distro/releases/Om2008.12/Om2008.12-om-gta02.uImage.bin &amp; wget http://downloads.openmoko.org/distro/releases/Om2008.12/Om2008.12-om-gta02.rootfs.jffs2<br />
# c) Connect your freerunner to the computer with the USB cable<br />
# d) start your Freerunner holding the AUX button down to get to the NOR menu<br />
# e) run: sudo time dfu-util -a kernel -R -D Om2008.12-om-gta02.uImage.bin<br />
# f) run: sudo time dfu-util -a rootfs -R -D Om2008.12-om-gta02.rootfs.jffs2<br />
# g) Start &amp; restart Freerunner to be able to log in over USB ssh<br />
# h) Go to 'Settings' and change 'Suspend' to 'off' or Freerunner will suspend and the installation will fail.<br />
<br />
## CONNECT<br />
# Connect over usb-ssh with shared internet connection<br />
# Don't run the script on Freerunner's screen! It can be done but not recommended if you don't know what you're doing.<br />
# Download a script to help you &amp; change the permission<br />
# i) run: wget http://www.kurppa.fi/freerunner/fr_bind &amp;&amp; chmod 755 fr_bind<br />
# j) run: ./fr_bind<br />
# k) First it asks for your Ubuntu -password to restart the interface &amp; bind9 - type it in<br />
# l) After this it asks for Freerunner password - it's empty, just hit Enter <br />
# For more details check http://wiki.openmoko.org/wiki/Usb_networking#Ubuntu_8.10_-_Easy_Way <br />
<br />
## ON FREERUNNER<br />
<br />
# 1) Make sure you've turned 'Suspend' to 'off' in the Settings.<br />
# 2) Make sure you can SSH in over USB so that Freerunner has Internet connection (ping google.com?)<br />
# 3) run: wget http://www.kurppa.fi/freerunner/kustomizer_VERSION -O kustomizer &amp;&amp; chmod 755 kustomizer<br />
# 4) run: ./kustomizer<br />
# On the first run it will install some stuff and then restart (to stop the qpe-bug). Then you need to repeat 2) and 4) and it'll install the rest<br />
<br />
Let the [http://risto.kurppa.fi/blog author] ( risto at kurppa dot fi ) know how did it go! You might not receive any help but it helps to develop the script further. If possible, please attach the log.<br />
<br />
=== Good to know ===<br />
* Rerunning a newer version of Kustomizer will most likely break something -&gt; Don't try to update, only run on clean 2008.12<br />
* During the second run many packages will fail with segfault/md5sum mismatch/missing dependencies/package not found. No harm done but also no app installed. It's because of bad packaging and we just have to wait for someone to fix it.<br />
* Services -&gt; gprs usually says 'FAILED' when you try to start GPRS but when you restart the app, it says 'GPRS ON' and shows the traffic counter.<br />
* Enlightenment crashes sometimes, just click 'Recover' and you're fine again.<br />
* For instructions how to manage icon folders and icons of apps you install later, check http://www.opkg.org/package_95.html<br />
<br />
=== Development ===<br />
If you have some ideas of improvements please let the author know (see above). I'm not planning to create rootfs images or anything huge but there are some things that I'd like to see kustomizer do. Check the script for the current TODO.<br />
<br />
* Mailing list at http://groups.google.com/group/kustomizer<br />
* '''Development version''': http://kurppa.fi/freerunner/kustomizer_devel - please also test this and let me know what you think!!<br />
* Some log files: http://kurppa.fi/freerunner/kustomizer_files/<br />
* Also check the talk page: http://wiki.openmoko.org/wiki/Talk:Kustomizer<br />
<br />
If someone is interested and willing to work on this please contact [http://risto.kurppa.fi/blog Risto H. Kurppa] ( risto at kurppa dot fi ). Moving to projects.openmoko is possible.<br />
<br />
=== Changelog ===<br />
<br />
# Version 0.4 - 2009-03-15<br />
<br />
# (new) Kustomizer mailing list started: joing by mailing kustomizer+subscribe@googlegroups.com<br />
# (new) wlan<br />
# (new) install log stored to a file!<br />
# (new) enter key added to the default keyboard<br />
# (new) Finger keyboard http://lists.openmoko.org/nabble.html#nabble-td2217821<br />
# (new) browse keyboard http://www.opkg.org/package_144.html<br />
# (new) Voicenote http://www.opkg.org/package_140.html<br />
# (new) qtopia calendar<br />
# (new) Mokomodes http://users.jyu.fi/~hejajama/openmoko/mokomode_0.1_arm.ipk<br />
# (new) pipes http://www.opkg.org/package_155.html<br />
# (new) OMnewrotateMOD http://www.opkg.org/package_148.html<br />
# (new) leafpad http://www.opkg.org/package_152.html<br />
# (new) perpendicular http://www.opkg.org/package_150.html<br />
# (new) voicenote http://www.opkg.org/package_140.html<br />
# (new) acceleroids http://www.opkg.org/package_154.html<br />
# (new) qtopia notes/text edit<br />
# (new) findutils<br />
# (new) qtopia ringtone/profile settings tool (check wrench -&gt; profiles)<br />
# (new) netsurf - another not-working web-browser for you to play with (http://cc.oulu.fi/~rantalai/freerunner/netsurf/)<br />
# (new) openmoko-browser2<br />
# (fix) changed the following to point from repositories to original url: centerim, openttd, numpty, xlogical<br />
# (fix) Password now asked already in the first stage<br />
# (fix) ntpclient installed &amp; time updated in the first stage<br />
# (fix) gpsd doesn't ask for autostart anymore -&gt; one interaction less required during the installation<br />
# (fix) added libexif to make tangogps 0.9.6 work<br />
# (fix) sortdesk now installed from projects.openmoko.org to make sure it's installed<br />
# (fix) pythm-fix by yebo gogo (=some packages from SHR &amp; then custom pythm .tar.gz..)<br />
# (fix) typo when installing enca - but enca still fails in md5sum mismatch..<br />
# (fix) gwaterpas icon<br />
# (fix) Another try with dillo-ssl<br />
# (removed) tapuntap(aatap) - installed omnewrotatemod instead<br />
# (removed) openmoko-mediaplayer2 - pythm does ~the same<br />
# (removed) wireshark - not often needed..<br />
# (removed) tangogps sample config - new yaouh version has fixed this?<br />
# (removed) xmahjongg - it never installed..<br />
# (removed) gpssight - installation fails<br />
# (removed) liquidwar - package segfaults opkg..<br />
<br />
<br />
# Version 0.35 - 2009-02-20<br />
<br />
# (new) pymixer from http://wiki.openmoko.org/wiki/Neo_Freerunner_audio_subsystem#Alsamixer_channel_controls<br />
# (new) Bytestore settiong builder: http://lists.openmoko.org/nabble.html#nabble-td2353361<br />
# (new) - Dillo SSL works!<br />
# (new) - Not suspending when USB connected<br />
# (new) - Improved Mokoservices<br />
# (new) - Tangogps configuration file (for yaouh)<br />
# (new) yaouh map tile updater<br />
# (new) AppManager package installer GUI<br />
# (update) fbreader now installed from http://www.mikeasoft.com/~mike/openmoko/fbreader_0.8.2a-r7+elleopatches_om-gta02.ipk<br />
# (fix) often-not-available enca package doesn't prevent any more other libraries from being installed -&gt; more ok installs :)<br />
# (fix) pythm icon<br />
# (fix) more pythm fixes &amp; required packages..<br />
# (fix) openmoko-agps icon<br />
# (fix) navit icon<br />
# (removed) btgps (bluetooth-gps - not working, broken bluez-utils :(<br />
# (removed) xskat (card game)<br />
# (removed) moko-eightball (toy)<br />
<br />
<br />
# Version 0.3 - 2009-02-19<br />
<br />
# KNOWN ISSUES<br />
# Many opkg.org packages fail to install because of bad packaging. They're still in there in case the packages are fixed at some stage.<br />
# /dev/dsp is sometimes reserved (by speech-dispatcher?) so other apps can't use it<br />
# GSM registration takes a long time<br />
<br />
# CHANGELIST<br />
# (fix) all possible packages installed using default &amp; opkg.org &amp; navit repositories<br />
# (new) tried to fix speech-dispatcher -bug, see http://lists.openmoko.org/nabble.html#nabble-td2175057<br />
# (new) password required for the root user during installation<br />
# (new) ssh-over-wlan allowed<br />
# (new) navit repository added -&gt; updates from svn 1793 to 2051+ :)<br />
# (new) Backups copies of some changed files stored to /home/root/backup<br />
# (new) ntp to set clock in time<br />
# (new) Sortdesk icons (thanks Yoann - http://lists.openmoko.org/pipermail/community/2009-February/041915.html)<br />
# (new) opentts -&gt; navit speech guidance works more or less<br />
# (new) Sample book for fbreader included: http://www.gutenberg.org/etext/24948<br />
# (new) linball<br />
# (new) gtick http://wiki.openmoko.org/wiki/GTick<br />
# (new) guitartune http://www.opkg.org/package_115.html<br />
# (new) pythm http://www.opkg.org/package_1.html<br />
# (new) fourier - sounds work -&gt; returned<br />
# (new) pypennotes<br />
# (new) openmiaocat<br />
# (new) agps<br />
# (new) pythm &amp; a fix to make it work w. python 2.5.<br />
# (removed) mofi - doesn't work :(<br />
# (removed) pidgin - segfaults<br />
# (removed) scummvm - useless..<br />
# (removed) yaouh - doesn't co-operate with latest tangogps versions without some hacking :(<br />
<br />
<br />
# Version 0.2 - 2008-02-06<br />
# CHANGELOG IN THIS VERSION<br />
# (new) two run system:<br />
# 1st run: illume-theme, wrench, qwerty are installed, opkg.org, storage.conf/qpe-bug fixed. Then restarted<br />
# 2nd run: user needs to start Kustomizer again (and switch suspend/dim off!!) -&gt; the rest is installed<br />
# Rewriting the instructions<br />
# General cleaning<br />
# (new) ntpclient <br />
# (new) http://www.opkg.org/package_121.html - MokoMaze<br />
# (new) ttf-liberation-mono (vala-terminal uses this)<br />
# (new) battery http://wiki.openmoko.org/wiki/Forcing_fast_charge_mode<br />
# (new) runs /media/card/customscript - the user can add his own stuff there<br />
# (new) automatic prevention of suspend &amp; dimming<br />
# (update) yaouh - version update<br />
# (update) neon - version update<br />
# (remove) Finnish keyboard layout &amp; dictionary<br />
# (remove) custom scripts from card<br />
# (remove) cellhunter - on FSO-based only?<br />
# (remove) Guitartune - on FSO-based only and libfft fails to install<br />
# (remove) fourier - libfft fails to install<br />
# (remove) zomg and appmanager - less used..<br />
# (remove) pingus - doesn't install<br />
# (remove) mumpot - useless for most<br />
# (remove) usbmode - battery replaces most of this<br />
# (fix) watch checkrate changed from 1s to 2s<br />
# (fix) libglade-2.0 -&gt; libglade-2.0-0<br />
<br />
=== Roadmap ===<br />
* Try to abandon the Openmoko distributions and move to SHR/FSO/Debian...</div>Myfanwyhttp://wiki.openmoko.org/wiki/KnjrepositoryKnjrepository2009-03-24T07:52:45Z<p>Myfanwy: /* Application packages */</p>
<hr />
<div>== Packages for development ==<br />
<br />
The knjRepository includes the following interesting packages:<br />
<br />
# '''php526''' - PHP 5.2.6 CLI support, which enables you to write CLI-scripts for your OpenMoko. It also includes PDO (SQLite3) support.<br />
# '''php526-gtk2''' - [[PHP-GTK]] enables you to write GTK-applications in PHP.<br />
# '''ruby1.8''' - Enables you to use Ruby scripts on your OpenMoko.<br />
# '''libgtk2-ruby1.8''' - Enables Ruby to use Gtk.<br />
# '''libsqlite3-ruby1.8''' - Enables you to use SQLite3-databases in Ruby.<br />
# '''libglade2-ruby1.8''' - Enables you to use Glade with Gtk-applications in Ruby.<br />
# '''ruby1.8-icalendar''' - A Ruby-lib for parsing iCal-files.<br />
# '''ruby1.8-googlecalendar''' - A Ruby-lib for working with a Google Calendar.<br />
<br />
<br />
(and a lot of other Ruby-extensions like SOAP and WSDL)<br />
<br />
A list of all the packages can be found [http://downloads.kaspernj.org/openmoko/repository/ here].<br />
<br />
== Application packages ==<br />
*'''[[KnjMokoWifi]]''' - An application for configuring the wireless interface in the OpenMoko-phone. It works with WPA, WEP and no-encryption. It supports profiles, so you dont have to remember passwords for each wireless access point used. It is written in PHP-GTK. Furthermore it can disable the routing-gateway on the USB-networking interface, making the default gateway WiFi. It can also start a DHCP-request to obtain an IP address and so on for the wireless interface.<br />
*'''[[KnjMokoOPKG]]''' - A graphical frontend for OPKG.<br />
*'''[[knjMokoCalendar]]''' - An application for viewing your Google Calendar on your OpenMoko phone written in Ruby. This application is still kind of unstable, since there isn't implemented any error handling.<br />
*'''[[knjMokoSettings]]''' - An application which allows a user to carry out various administrative tasks on their phone, such as restarting the X-server, rebooting the phone, turning off/on the Wifi and more, via a graphical interface.<br />
*'''[[knjMokoEmail]]''' - An application for reading email on openmoko phones<br />
<br />
== How to use ==<br />
<br />
You can configure your phone to use the repository by doing the following:<br />
<br />
wget &lt;nowiki&gt;http://downloads.kaspernj.org/openmoko/repository/knjrepository.conf&lt;/nowiki&gt; -O /etc/opkg/knjrepository.conf<br />
opkg update<br />
<br />
(ignore the signature errors)<br />
<br />
<br />
Then if you want to install PHP-GTK, you can do this:<br />
opkg install php526 php526-gtk2<br />
<br />
<br />
Or if you want Ruby with Gtk-support:<br />
opkg install ruby1.8 libgtk2-ruby1.8 libglade2-ruby1.8 libsqlite3-ruby<br />
<br />
== Made by ==<br />
<br />
The repository has been set up and is maintained by [mailto:k@spernj.org Kasper Johansen].<br />
<br />
The PHP-packages has been packaged by Derick Rethans.<br />
<br />
The Ruby-packages has been packaged by Kero van Gelder.<br />
[[Category:Guides]]<br />
[[Category:Applications]]</div>Myfanwyhttp://wiki.openmoko.org/wiki/KnjMokoCalendarKnjMokoCalendar2009-03-23T03:04:19Z<p>Myfanwy: New page: {{ApplicationBox| Name=knjMokoCalendar| Description=Google calendar client originally written for Om 2008.12| Screenshot=No-screenshot.png| Homepage=http://wordpress.kaspernj.org/?cat=...</p>
<hr />
<div>{{ApplicationBox|<br />
Name=[[knjMokoCalendar]]|<br />
Description=Google calendar client originally written for Om 2008.12|<br />
Screenshot=No-screenshot.png|<br />
Homepage=http://wordpress.kaspernj.org/?cat=15|<br />
TestedOn=Om 2008.8|<br />
PackageName=knjmokocalendar<br />
}}<br />
<br />
== About the application ==<br />
<br />
knjMokoCalendar is an application for viewing and editing google calendar appointments<br />
<br />
At the moment, it can only be used for viewing data stored in the calendar, but it is planned to allow editing later.</div>Myfanwyhttp://wiki.openmoko.org/wiki/KnjMokoWifiKnjMokoWifi2009-03-23T03:02:11Z<p>Myfanwy: </p>
<hr />
<div>{{ApplicationBox|<br />
Name=[[knjMokoWifi]]|<br />
Description=Media player originally written for Om 2008.12|<br />
Screenshot=No-screenshot.png|<br />
Homepage=http://wordpress.kaspernj.org/?cat=15|<br />
TestedOn=Om 2008.8|<br />
PackageName=knjmokowifi<br />
}}<br />
<br />
== About the application ==<br />
<br />
knjMokoWifi is an application for managing the wireless interface in the OpenMoko. The first version of the application was released 2009 in february, but the development began in December 2008. It has been written by [[User:Kaspernj|Kaspernj]] and can be downloaded through the [[Knjrepository]].<br />
<br />
The newest version is stable and useable. It supports no-encryption, WEP Key, WEP String and WPA through wpa-supplicant. It works be generating working configs for wpa-supplicant and executing commands like udhcp (the DHCP-tool on the OpenMoko), iwconfig and such.<br />
<br />
Further more it supports profiles, where you can save essid's and key's, so you dont have to enter all that stuff over and over.<br />
<br />
The application is written in [http://www.php.net PHP] and uses the [http://gtk.php.net PHP-GTK] extension.<br />
<br />
<br />
== Screenshots ==<br />
<br />
[[Image:knjMokoWifi - Main Window.png]]<br />
<br />
<br />
<br />
[[Image:knjMokoWifi - Connecting to an AP.png]]<br />
<br />
<br />
<br />
[[Image:knjMokoWifi - Status Window.png]]</div>Myfanwyhttp://wiki.openmoko.org/wiki/KnjrepositoryKnjrepository2009-03-23T02:54:13Z<p>Myfanwy: /* Application packages */</p>
<hr />
<div>== Packages for development ==<br />
<br />
The knjRepository includes the following interesting packages:<br />
<br />
# '''php526''' - PHP 5.2.6 CLI support, which enables you to write CLI-scripts for your OpenMoko. It also includes PDO (SQLite3) support.<br />
# '''php526-gtk2''' - [[PHP-GTK]] enables you to write GTK-applications in PHP.<br />
# '''ruby1.8''' - Enables you to use Ruby scripts on your OpenMoko.<br />
# '''libgtk2-ruby1.8''' - Enables Ruby to use Gtk.<br />
# '''libsqlite3-ruby1.8''' - Enables you to use SQLite3-databases in Ruby.<br />
# '''libglade2-ruby1.8''' - Enables you to use Glade with Gtk-applications in Ruby.<br />
# '''ruby1.8-icalendar''' - A Ruby-lib for parsing iCal-files.<br />
# '''ruby1.8-googlecalendar''' - A Ruby-lib for working with a Google Calendar.<br />
<br />
<br />
(and a lot of other Ruby-extensions like SOAP and WSDL)<br />
<br />
A list of all the packages can be found [http://downloads.kaspernj.org/openmoko/repository/ here].<br />
<br />
== Application packages ==<br />
# '''[[KnjMokoWifi]]''' - An application for configuring the wireless interface in the OpenMoko-phone. It works with WPA, WEP and no-encryption. It supports profiles, so you dont have to remember passwords for each wireless access point used. It is written in PHP-GTK. Furthermore it can disable the routing-gateway on the USB-networking interface, making the default gateway WiFi. It can also start a DHCP-request to obtain an IP address and so on for the wireless interface.<br />
# '''[[KnjMokoOPKG]]''' - A graphical frontend for OPKG.<br />
# '''[[knjMokoCalendar]]''' - An application for viewing your Google Calendar on your OpenMoko phone written in Ruby. This application is still kind of unstable, since there isn't implemented any error handling.<br />
# '''[[knjMokoSettings]]''' - An application which allows a user to carry out various administrative tasks on their phone, such as restarting the X-server, rebooting the phone, turning off/on the Wifi and more, via a graphical interface.<br />
<br />
== How to use ==<br />
<br />
You can configure your phone to use the repository by doing the following:<br />
<br />
wget http://downloads.kaspernj.org/openmoko/repository/knjrepository.conf -O /etc/opkg/knjrepository.conf<br />
opkg update<br />
<br />
(ignore the signature errors)<br />
<br />
<br />
Then if you want to install PHP-GTK, you can do this:<br />
opkg install php526 php526-gtk2<br />
<br />
<br />
Or if you want Ruby with Gtk-support:<br />
opkg install ruby1.8 libgtk2-ruby1.8 libglade2-ruby1.8 libsqlite3-ruby<br />
<br />
== Made by ==<br />
<br />
The repository has been set up and is maintained by [mailto:k@spernj.org Kasper Johansen].<br />
<br />
The PHP-packages has been packaged by Derick Rethans.<br />
<br />
The Ruby-packages has been packaged by Kero van Gelder.<br />
[[Category:Guides]]<br />
[[Category:Applications]]</div>Myfanwyhttp://wiki.openmoko.org/wiki/Setting_Date_and_TimeSetting Date and Time2009-03-22T23:15:06Z<p>Myfanwy: /* Syncing the hardware clock */</p>
<hr />
<div>Linux systems (such as the FreeRunner) prefer that the system clock be set to universal time (UTC). Then, you will need to configure the timezone to display the time adjusted to local time.<br />
<br />
See [[Timezone]] for instructions on changing the time zone.<br />
<br />
For more information on Linux timekeeping, see [http://www.linuxsa.org.au/tips/time.html Linux, Clocks, and Time]. (But ignore mentions of ''/etc/sysconfig/clock''. That doesn't apply to the Openmoko environment.)<br />
<br />
== Setting the date/time using &quot;date&quot; ==<br />
<br />
To change the date on your FreeRunner, issue one of the following commands:<br />
<br />
date -s ''MMDDhhmm''<br />
date -s ''MMDDhhmmYYYY''<br />
date -s ''MMDDhhmmYYYY.ss''<br />
<br />
where ''MM'' is the month, 01-12; ''DD'' is the day, 01-31; ''hhmm'' is the time, 0000-2359; ''YYYY'' is the optional year, and ''.ss'' is the optional seconds.<br />
<br />
== Setting date/time from your linux box ==<br />
<br />
&lt;pre&gt;<br />
ssh root@openmoko &quot;date -u -s `date -u +%m%d%H%M%Y.%S`&quot;<br />
&lt;/pre&gt;<br />
<br />
To also copy your timezone file, add an echo command:<br />
ssh root@openmoko &quot;date -u -s `date -u +%m%d%H%M%Y.%S`; echo `cat /etc/timezone` &gt; /etc/timezone&quot;<br />
<br />
== Setting date/time with a python GUI ==<br />
<br />
Tested on Neo1973 (OM2007.2), the 'time-man' tool is at <br />
<br />
http://free-opensource.qvantel.net/mediawiki//index.php/Time-tool<br />
<br />
== Setting your local timezone ==<br />
<br />
To have your FreeRunner display time appropriate to your local timezone, update the /etc/localtime symlink to point to the file in /usr/share/zoneinfo that represents your timezone. For example, in an SSH session to the phone, or in a terminal running on the phone:<br />
<br />
# ls -l /etc/localtime<br />
lrwxrwxrwx 1 root root 27 Jul 10 23:05 /etc/localtime -&gt; /usr/share/zoneinfo/PST8PDT<br />
# ln -s /usr/share/zoneinfo/CST6CDT /etc/localtime<br />
<br />
(Based on [http://n2.nabble.com/Date-%2B-NTP-tp675145p675163.html this post on the support mailing list])<br />
<br />
You may want to try this if the above returns something like &quot;file exists&quot;.<br />
# ln -sf /usr/share/zoneinfo/CST6CDT /etc/localtime<br />
the -f (--force) removes existing destination files. (CQ).<br />
<br />
== Setting the date/time automatically with NTP ==<br />
<br />
If your FreeRunner is connected to the internet, you can instead set the time automatically:<br />
<br />
&lt;code&gt;<br />
opkg install ntpclient&lt;br/&gt;<br />
ntpclient -s -h pool.ntp.org<br />
&lt;/code&gt;<br />
<br />
If your FreeRunner is connecting to the internet through a USB host, make sure you allow UDP traffic to pass through on port 123 (NTP) on your host machine or you may get a &quot;no route to host&quot; error from ntpclient.<br />
<br />
Have a look over [https://wiki.muc.ccc.de/openmoko#freerunner1 over here] where this process is automated whilst udhcpc is started, which happens automatically for wifi connections initiated by Mofi and friends.<br />
<br />
== Syncing the hardware clock ==<br />
<br />
No matter which method you used above, sync the hardware clock with the system time to make your change persist over reboots:<br />
<br />
hwclock --systohc<br />
<br />
Note:<br />
If you run the [[ASU]] or [[Qtopia]] image, hwclock will not work. The missing /dev/misc/rtc could be establish with<br />
<br />
mkdir /dev/misc<br />
ln -s /dev/rtc /dev/misc/rtc<br />
<br />
but the device is usually busy due to the atd daemon.<br />
Instead you can use this command causing atd to write the current time into the rtc:<br />
<br />
echo -e &quot;W\n&quot; &gt; /var/spool/at/trigger<br />
<br />
Here is a link from the community mailing list for using hwclock with the [[ASU]] image:<br />
:http://lists.openmoko.org/nabble.html#nabble-td584362<br />
<br />
== Setting the date/time automatically with gps ==<br />
<br />
[http://projects.openmoko.org/projects/gpv/ GPS Sight] has a button to sync the hardware clock to the gps clock.<br />
<br />
First you have to make sure gps works on you neo. You can do that by following the steps in the [[Getting_Started_with_your_Neo_FreeRunner#Use_the_GPS]].<br />
<br />
The second step is to install GPS Sight:<br />
<br />
# opkg install http://projects.openmoko.org/frs/download.php/228/gpssight_0.8.4_armv4t.ipk<br />
<br />
The last step is the actual syncing of the clock. For this, simply run the GPS Sight program from the main menu, wait for it to find the gps time and click the button labeled &quot;Sync clock&quot;.<br />
<br />
== Future Work ==<br />
<br />
Presumably it might also be possible to use gpspipe (or something else) to set the date once you have a gps fix automatically? In addition, the phone stack should set the date, time, and timezone once connected to a network.<br />
<br />
[[Category:Settings]]<br />
[[Category:Advanced End User]]</div>Myfanwyhttp://wiki.openmoko.org/wiki/The_Bicycle_Motion_Information_DisplayerThe Bicycle Motion Information Displayer2009-03-15T04:53:08Z<p>Myfanwy: </p>
<hr />
<div>'''Project Title''': The Bicycle Motion Information Displayer<br />
<br />
'''Project team members''':<br />
*郭育廷<br />
*曾惠卉<br />
<br />
'''Contact email''': m9603034@isu.edu.tw<br />
<br />
'''University''': Dept. of CSIE, I-Shou University (義守大學資工系)<br />
<br />
'''Short description''':<br />
<br />
The purpose of this project is to allow the Freerunner user to display the information of bicycle motion.<br />
<br />
It can display the location of the cyclist and the distance travelled.<br />
<br />
This project can increase the added value of the mobile phone and make the bicycle journey more enjoyable.<br />
<br />
'''Links to project resources''': Not yet available<br />
<br />
[[Category:Applications]]</div>Myfanwyhttp://wiki.openmoko.org/wiki/ApplicationsApplications2009-03-15T04:51:31Z<p>Myfanwy: /* Utility */</p>
<hr />
<div>{{Languages|Applications}}<br />
This is the wiki's master application list for the Openmoko smartphones. <br />
<br />
== How to register new applications ?==<br />
<br />
This list can not be exhaustive, as new things are showing up every week. This page is here to help spreading awareness about applications. Here are instructions on how to add a specific application to this list. There are many ways to go<br />
<br />
Method 1 (preferred):<br />
* Register your application at http://opkg.org. You will get a package number there, for example 33.<br />
* Notify the community mailing list.<br />
* Come back here, click on &quot;edit&quot; next to the appropriate section title, then add a line like:<br />
&lt;pre&gt;* {{opkg.org|33|Application name}} A short description&lt;/pre&gt;<br />
<br />
Method 2: Just link to wherever the application is hosted.<br />
* Click on &quot;edit&quot; next to the appropriate section title, add a line like:<br />
&lt;pre&gt;* [http://your.host.domain/the/path/to/app/page.html Application name] A short description&lt;/pre&gt;<br />
<br />
Method 3: Create a new page in this wiki.<br />
* Click on &quot;edit&quot; next to the appropriate section title, then add a line like:<br />
&lt;pre&gt;* [[Application name]] A short description&lt;/pre&gt;<br />
* The application name will appear in red, click on it to create and edit the new page.<br />
<br />
== Audio ==<br />
<br />
* [[Openmoko-mediaplayer2]] - Play music and video (mp3...)<br />
* [[Openmokast]] - Play audio stream and slideshow stream<br />
* [[Pythm]] - Audio player GUI using mplayer and mpd as backend.<br />
* [[Mokoko]]-Play music.<br />
* [[Satan]] - Create your own music!<br />
* [[Fourier]]- Realtime frequency analysis of sound data.<br />
* [[Neoqplayer]] - a multimedia player written in Qt4 <br />
* {{opkg.org|55|ePiano}} - epiano is going to be a virtual piano<br />
* [http://www.faltantornillos.net/proyectos/gnu/brightPlayer/brightPlayerOM2008v0.1.tar.gz Bright Player] - Fast, lightweight and easy random music player.<br />
* [http://fisoft.eu/standa/openmoko/omshuffle_0.1_arm.ipk omShuffle] - Inspired by Bright Player with volume control.<br />
* [[GTick]] - GTick is a metronome application written for GNU/Linux<br />
* [[Guitartune]] - Tune musical Instruments.<br />
* [[Voicenote]]-Voicenote is a script which allows to record any sound from the microphone into a wav file. It can play the created files too. It is intended to be an easy and quick way to do so.<br />
* {{opkg.org|151|MokoPod}} - Retrieve and listen to podcasts<br />
----<br />
<br />
== Games ==<br />
<br />
* [[Games/Om 2007.2]] - Many small games on Om 2007.2<br />
* [[Om 2008.8 Sudoku]] - Number placement based puzzle game<br />
* [[Moko-sudoku]] - Another sudoku puzzle game.<br />
* {{opkg.org|60|ScummVM}} ([[Scummvm|Wiki]]) Virtual Machine for several classic graphical point-and-click adventure games<br />
* [[Kobodeluxe]] - A top-view space shooter, available from 2008.8 repositories.<br />
* [[Pingus]] - Pingus is a lemmings clone with penguins.<br />
* [[Duke Nukem 3D]] - Legendary First Person Shooter.<br />
* [[Numptyphysics]] - A drawing puzzle game.<br />
* [[Gnuboy]] - An emulator for the handheld gaming all-time bestseller.<br />
* [[XBill]] - Little action game to stop Bill from installing Windows(tm) on computers.<br />
* [[Xlogical]]-A puzzle based game where you turn spinners to move balls around.<br />
* [[Liquid War]]-Liquid War is a truly original multiplayer wargame.<br />
* [http://unsyncopated.com/BrainSolvent/Doom%20Port DOOM]- Classic FPS. Freerunner/1973<br />
* [[MBAC]]- MBAC is &quot;Moko Bulls and Cows&quot;, a classic game for openmoko written in pygtk similar to mastermind.<br />
* [[OpenVibe]] - The first opensource vibrator.<br />
* [[OpenTTD]] - OpenTransportTycoonDeluxe, ported to openmoko, using only GPLed datafiles.<br />
* [http://scalde.free.fr/index.php?option=com_content&amp;view=article&amp;id=93:pong-pogresses&amp;catid=43:openmoko&amp;Itemid=66 Pong progresses]- This is a little pong game for the openmoko freerunner. The screen is devided in halves, so you can touch the right half to move the paddle right and the left half to move it left.<br />
* [[OpenMooCow]] - OpenMooCow reads information out of your accelerometers. Now, if you turn the phone upside down and back again, it &quot;moos&quot; like one of the little toys.<br />
* [[Freerunner LightSaber]]-Application as iphone LightSaber.<br />
* [[CellHunter]] - A game you earn points by collecting cells (in english now).<br />
* [[XSkat]] - XSkat lets you play the card game Skat defined by the official Skat Order.<br />
* {{opkg.org|136|OpenMiaoCat}} OpenMiaoCat, like OpenMooCow, makes your phone became a cat!<br />
* {{opkg.org|149|I'm Rich}} I'm Rich application<br />
* {{opkg.org|121|Mokomaze}} Ball-in-the-labyrinth game<br />
* [[Acceleroids]] Shoot-the-asteroids game<br />
----<br />
<br />
== GPS ==<br />
<br />
* [[GPS Sight]] - Display GPS information, location, tracks, etc, without maps.<br />
* [[Gpsdrive]] - Car (bike, etc) navigation system<br />
* [[Om 2008.8 Locations]] - (aka Splinter) - Location sharing based on GPS and SMS<br />
* [[Navit]] - Car navigation system with routing engine<br />
* [[TangoGPS]] - Display map (OSM..), record GPS tracks...<br />
* [[Pyroute]] - Pyroute is a routing program written in Python. It features mobile phone GUI for maps, GPS, and routing.<br />
* [http://www.mumpot.org/ mumpot] - Display map (OSM), routing, OSM editing, a bit of live editing<br />
* [[QMapControl]] - Display maps (OSM..) and add points, lines...<br />
* [[Qpegps]] - Display map with current position<br />
* [[Idle Hands]] - Give a task to you based on your location<br />
* [[Gtkaddpoi]] - Utility for add a POI to TangoGPS using address or coordinates<br />
* [[Gpsdcontrol]]-A simple python script for start or stop gpsd daemon with a button on the desktop.<br />
* [[OpenBmap]]-a free and open map of wireless communicating objects (e.g. cellular antenna, Wi-Fi, Bluetooth). It provides tools to mutualize data, create and access this map.<br />
<br />
== Graphics ==<br />
<br />
* [[Orrery]] - Displays the night sky<br />
* [[OMView]] - Image viewer<br />
* [[PyPenNotes]] - Write notes using pen and touchscreen<br />
* [[Gpe-scap]] - Take screenshots<br />
* [[Flash|Gnash]]-Play flash file on Neo<br />
* [[Neon]] - Image viewer<br />
<br />
----<br />
<br />
== Internet ==<br />
<br />
* [[Twinkle]] - Voice over IP<br />
* [[Linphone]] - Voice over IP<br />
* [[Midori]] - Webkit based web browser<br />
* [[Minimo]] - Mozilla based web browser<br />
* [http://www.dillo.org/ Dillo] - Multiplatform fast and small web browser ([http://misc.andi.de1.cc/dillo/ .ipk]).<br />
* [[Mokopedia]] - Read small Wikipedia dumps offline<br />
* [[Offline Wikipedia reader]] - store the entire content of wikipedia (except iamges), on a single 8GB microSD card<br />
* [[Openmoko-browser2]] - The original Openmoko web browser<br />
* [[Openmokast]] - Play audio stream and slideshow stream<br />
* [[Openmoko Mail]] - E-mail client<br />
* [[Pidgin]] - Instant messaging client (ICQ, MSN, Jabber, Yahoo and more.)<br />
* [[CenterIM]] - Instant messaging client (terminal-based).<br />
* [[PyFeedRead]] - RSS feed reader<br />
* [[Qtmail]] - Default mail program on Om 2008.8<br />
* [[TwitterMoko]] - A Twitter client for Openmoko<br />
* [http://code.google.com/p/pyqt-browser/ pyqt-browser] - modified the sample code from python-pyqt4 and changed it to use webkit for web browsing. <br />
* [http://we.trekbeyond.org/~kd8ikt/moko/shr_pkgz/ ettercap-ng]<br />
* [http://www.netsurf-browser.org/ netsurf]-A new browser for Neo FreeRunner.<br />
<br />
== Office ==<br />
* [[Epdfview]] - PDF reader.<br />
* Evince - Document reader for PDF, PS, DJVU and more.<br />
* [[FBReader]] - E-book reader program (TXT, FB2, HTML and more)<br />
* [[Gutenflash]] - Fast text reader by scrolling text<br />
* [[OMoney]] - A bookkeeping application<br />
<br />
== Settings ==<br />
<br />
* [[Mofi]] - Wifi setup tool<br />
* [[Lint-wifi]] - Wifi setup tool<br />
* [[Om 2008.8 Installer]] - Graphical software installer<br />
* [[Opkg]] - Command line software installer<br />
* [[Sephora]] - Settings manager<br />
* [[SettingsGUI]] - Edit various settings<br />
* [[Wicd]] - Wifi setup tool<br />
* [[ZOMG!]] - A graphical package manager (opkg frontend -&gt; should work on any distro)<br />
* [[Timezone|tzdata]]- Customise your time zone setting.<br />
* [[momtools]] - an application to control Wifi, gprs and some other stuff<br />
* [[Wlan]] - Wlan is an application to manage wireless connection on the Freerunner<br />
<br />
== System ==<br />
* [[Aphasia]] - A system built on Erlang and a vertical application for people with apahasia.<br />
* [[Auxlaunch]] - Finger-friendly app launcher and window switcher<br />
* [[Display Locker]] - Screen lock<br />
* [[Gwaterpas]] - levelling tool using accelerometer<br />
* [[Gestures]] - Detect movement and display information, rotate screen<br />
* [[Keychain]] - SSH keys<br />
* [[MokoFEM]] - Monitors GSM information<br />
* [[Mokostat]] - Monitors battery<br />
* [[Openmoko Bluetooth remote controller|ReMoko]] - Control stuff via BlueTooth<br />
* [[Rotate]] - Rotate screen when phone is rotated<br />
* [[Vala-terminal]] - Command prompt with tabs<br />
* [[Ts calibrate]] - Calibrates touchscreen<br />
* [[Zedlock]] - Screen locker<br />
* [http://fso-control.projects.openmoko.org/ fso-control] - Popup Power menu to shutdown/suspend/reboot.<br />
* [[omkeys_functions]] - Remap AUX key bindings<br />
* [[Siglaunchd]] - A daemon that listens to dbus signals and launches appliactions upon arrival.<br />
* [[Pexpect]]-a pure Python module for spawning child applications; controlling them; and responding to expected patterns in their output. <br />
<br />
----<br />
<br />
== Telephony ==<br />
* [[Dialer/2007.2]] - The dialer application in Om 2007.2<br />
* [[Openmoko SMS Middleware]]- SMS middleware is a Openmoko middleware software for additional features related to SMS. Plugin architecture and Python based code gives this project lots of flexibility and enchancebility.<br />
* [[Paroli]] -Paroli is an integrated phone application based on Tichy (and so also written in python). <br />
<br />
----<br />
<br />
== Utility ==<br />
* [[Unison]] - Unison is a file-synchronization tool for Unix and Windows. It determines all differences between two directory trees and lets the user decide, how to proceed with every differing file. <br />
* [[HP48 Series RPN Calculator]] - Calculator with many functions<br />
* [[qwo]]- An alternative input method.<br />
* {{opkg.org|57|fido}} - [[fido]] is a todo list\note manager written with elementary<br />
* [http://meuk.spritesserver.nl/lightsaber-0.1.tgz The Lightsaber]. Pre-alpha starwaresque orphanware.<br />
* [[NeoTool]] NeoTool is a bash script for your desktop system to provide a friendly GUI frontend to some common management tasks.<br />
* [[NeoCon]] - neocon is a handy serial console utility (not only) for u-boot. The main feature of neocon is actually that you can give it a list of devices and it will pick one that works.<br />
* [http://techiem2.net/index.php?/archives/10-Freerunner-USB-Mode-Control-Program.html usbmode]-a quick pygtk program. <br />
* [[Enotes]] - Enotes is the implementation of a TODOlist manager written with elementary to appear better with distribution that use illume, like SHR.<br />
* [[LED clock]] - When an Openmoko is sitting unused at night, turn it into an alarm clock with large 7-segment digits on a black background in landscape mode. <br />
* [[MokoGeocaching]] - Utility for add a POI to TangoGPS using geocaching.com <br />
* [[Wrench]] - Modual used utility enlightenment_remote.<br />
* [[Yaouh!]] - Yet Another OSM Updater H.<br />
* [[ShortOm]] - Graphical launcher for shell or application, with editable config file, and log result page.<br />
* [[Pimlico]]-Pimlico is a suite of lightweight Personal Information Management (PIM) applications designed primarily for handheld and mobile devices<br />
* [http://projects.openmoko.org/projects/otp4neo/ OTP4Neo] One time password generator<br />
* [http://projects.openmoko.org/projects/ffalarms/ FFAlarm] is a program to set multiple alarms a day using a finger friendly user interface<br />
* [[OpenWrt]]-basic support for the Openmoko &quot;Freerunner&quot;! Kernel (2.6.28) is building and booting.<br />
* [[Enscribi]]-a handwriting recognition input method for Linux. It's mainly developed for the Openmoko Freerunner smartphone.<br />
* [[GridPad]]-GridPad is an alternative input method for entering text with your finger, a Simple Character Recognizer Software.<br />
* [http://sortdesk.projects.openmoko.org/ sortdesk] sort your om-desktop in categories<br />
* [[Mokometeo]] is a widget which fetches the weather forecast from yahoo, for a list of cities<br />
<br />
==Setting Application==<br />
* [[Wmiconfig]]- wmiconfig is a tool written by Atheros Communications Inc to configure the Ar6k WIFI chip used in the Neo Freerunner. This is a standalone C executable, released under GPL v2.<br />
* [[GTA02 sysfs]]- sysfs is a filesystem that is mounted on /sys which contains various fake &quot;files&quot; that are actually filled by a variety of drivers and other kernel subsystems. You can use it to change settings and behaviours of the kernel and drivers dynamically.<br />
<br />
== Video ==<br />
<br />
* [[Video Player]] - Using Mplayer on Openmoko smartphones.<br />
* [http://katastrophos.net/andre/blog/software/quasar-media-player/ Quasar] - a mplayer frontend for X11.<br />
<br />
<br />
<br />
<br />
----<br />
<br />
== daemon ==<br />
* [[PyPhonelog]] - daemon uses the framework to track and log all the calls made to and from the moko.<br />
* [[Lscd]] - LSC library/daemon on Linux System.<br />
<br />
== An automatic list of application-related wiki pages ==<br />
<br />
The pages linked above are all maintained manually. We also maintain an automatic categorization system by tagging wiki pages. Here is the list of application-related pages in this wiki. Normally, every page listed below should be also listed above in the same category. The converse is false: there are applications without a wiki page.<br />
<br />
&lt;div style=&quot;border: solid 1px black; padding: 1ex&quot;&gt;&lt;b&gt;Applications in this Wiki:&lt;/b&gt;<br />
&lt;categorytree mode=pages depth=2 hideroot=on&gt;Applications&lt;/categorytree&gt;<br />
&lt;/div&gt;<br />
<br />
<br />
== Where to find more applications? ==<br />
<br />
At [http://opkg.org opkg.org] !<br />
<br />
Not all Openmoko apps are listed on this wiki - there are much more [http://projects.openmoko.org/softwaremap/ projects at the Openmoko GForge] than the wiki can list, not to mention self-hosted applications on their own websites. Actually the phones can run most Linux based Free Software, using for example the [[Debian]] distribution. The [http://handhelds.freshmeat.net/browse/1038/ mobile phones section of Freshmeat] may be a interesting place to look.<br />
<br />
Note also that there are many packages in the repository that are not installed by default. If what you want is a classic, chances are that it is already packaged. Suppose you want to install Perl:<br />
opkg list|grep perl<br />
opkg install perl<br />
<br />
More application download related pages:<br />
<br />
* [[Community Repository]]<br />
* [[Users Repositories]]<br />
<br />
&lt;div style=&quot;clear:both&quot;&gt;&amp;nbsp;&lt;/div&gt;<br />
<br />
== Where to find full distributions ? ==<br />
<br />
* [[Download]]: for complete system downloads<br />
<br />
== The usual warnings ==<br />
&lt;small&gt;<br />
* Some of these software are developed by Openmoko Inc. and some are contributed by the community. Any problems with community contributed software should be reported to the individual software developer rather than the Openmoko core team.<br />
* Most programs listed here are not mature/stable, but only useable/beta.<br />
* Many programs listed here are not yet packaged for your distribution and integrated in its repositories. Whichever it is.<br />
* Installing experimental software from the internet is certain to break things. Running it as root is a very insecure thing to do. Kown that you will be burned, have backups, and be ready to apologize to everybody in your phone contact list in case they receive strange SMSs...<br />
&lt;/small&gt;<br />
<br />
<br />
[[Category:Applications|Applications]]<br />
[[Category:Basic End User]]</div>Myfanwyhttp://wiki.openmoko.org/wiki/ApplicationsApplications2009-03-15T04:50:17Z<p>Myfanwy: /* Settings */</p>
<hr />
<div>{{Languages|Applications}}<br />
This is the wiki's master application list for the Openmoko smartphones. <br />
<br />
== How to register new applications ?==<br />
<br />
This list can not be exhaustive, as new things are showing up every week. This page is here to help spreading awareness about applications. Here are instructions on how to add a specific application to this list. There are many ways to go<br />
<br />
Method 1 (preferred):<br />
* Register your application at http://opkg.org. You will get a package number there, for example 33.<br />
* Notify the community mailing list.<br />
* Come back here, click on &quot;edit&quot; next to the appropriate section title, then add a line like:<br />
&lt;pre&gt;* {{opkg.org|33|Application name}} A short description&lt;/pre&gt;<br />
<br />
Method 2: Just link to wherever the application is hosted.<br />
* Click on &quot;edit&quot; next to the appropriate section title, add a line like:<br />
&lt;pre&gt;* [http://your.host.domain/the/path/to/app/page.html Application name] A short description&lt;/pre&gt;<br />
<br />
Method 3: Create a new page in this wiki.<br />
* Click on &quot;edit&quot; next to the appropriate section title, then add a line like:<br />
&lt;pre&gt;* [[Application name]] A short description&lt;/pre&gt;<br />
* The application name will appear in red, click on it to create and edit the new page.<br />
<br />
== Audio ==<br />
<br />
* [[Openmoko-mediaplayer2]] - Play music and video (mp3...)<br />
* [[Openmokast]] - Play audio stream and slideshow stream<br />
* [[Pythm]] - Audio player GUI using mplayer and mpd as backend.<br />
* [[Mokoko]]-Play music.<br />
* [[Satan]] - Create your own music!<br />
* [[Fourier]]- Realtime frequency analysis of sound data.<br />
* [[Neoqplayer]] - a multimedia player written in Qt4 <br />
* {{opkg.org|55|ePiano}} - epiano is going to be a virtual piano<br />
* [http://www.faltantornillos.net/proyectos/gnu/brightPlayer/brightPlayerOM2008v0.1.tar.gz Bright Player] - Fast, lightweight and easy random music player.<br />
* [http://fisoft.eu/standa/openmoko/omshuffle_0.1_arm.ipk omShuffle] - Inspired by Bright Player with volume control.<br />
* [[GTick]] - GTick is a metronome application written for GNU/Linux<br />
* [[Guitartune]] - Tune musical Instruments.<br />
* [[Voicenote]]-Voicenote is a script which allows to record any sound from the microphone into a wav file. It can play the created files too. It is intended to be an easy and quick way to do so.<br />
* {{opkg.org|151|MokoPod}} - Retrieve and listen to podcasts<br />
----<br />
<br />
== Games ==<br />
<br />
* [[Games/Om 2007.2]] - Many small games on Om 2007.2<br />
* [[Om 2008.8 Sudoku]] - Number placement based puzzle game<br />
* [[Moko-sudoku]] - Another sudoku puzzle game.<br />
* {{opkg.org|60|ScummVM}} ([[Scummvm|Wiki]]) Virtual Machine for several classic graphical point-and-click adventure games<br />
* [[Kobodeluxe]] - A top-view space shooter, available from 2008.8 repositories.<br />
* [[Pingus]] - Pingus is a lemmings clone with penguins.<br />
* [[Duke Nukem 3D]] - Legendary First Person Shooter.<br />
* [[Numptyphysics]] - A drawing puzzle game.<br />
* [[Gnuboy]] - An emulator for the handheld gaming all-time bestseller.<br />
* [[XBill]] - Little action game to stop Bill from installing Windows(tm) on computers.<br />
* [[Xlogical]]-A puzzle based game where you turn spinners to move balls around.<br />
* [[Liquid War]]-Liquid War is a truly original multiplayer wargame.<br />
* [http://unsyncopated.com/BrainSolvent/Doom%20Port DOOM]- Classic FPS. Freerunner/1973<br />
* [[MBAC]]- MBAC is &quot;Moko Bulls and Cows&quot;, a classic game for openmoko written in pygtk similar to mastermind.<br />
* [[OpenVibe]] - The first opensource vibrator.<br />
* [[OpenTTD]] - OpenTransportTycoonDeluxe, ported to openmoko, using only GPLed datafiles.<br />
* [http://scalde.free.fr/index.php?option=com_content&amp;view=article&amp;id=93:pong-pogresses&amp;catid=43:openmoko&amp;Itemid=66 Pong progresses]- This is a little pong game for the openmoko freerunner. The screen is devided in halves, so you can touch the right half to move the paddle right and the left half to move it left.<br />
* [[OpenMooCow]] - OpenMooCow reads information out of your accelerometers. Now, if you turn the phone upside down and back again, it &quot;moos&quot; like one of the little toys.<br />
* [[Freerunner LightSaber]]-Application as iphone LightSaber.<br />
* [[CellHunter]] - A game you earn points by collecting cells (in english now).<br />
* [[XSkat]] - XSkat lets you play the card game Skat defined by the official Skat Order.<br />
* {{opkg.org|136|OpenMiaoCat}} OpenMiaoCat, like OpenMooCow, makes your phone became a cat!<br />
* {{opkg.org|149|I'm Rich}} I'm Rich application<br />
* {{opkg.org|121|Mokomaze}} Ball-in-the-labyrinth game<br />
* [[Acceleroids]] Shoot-the-asteroids game<br />
----<br />
<br />
== GPS ==<br />
<br />
* [[GPS Sight]] - Display GPS information, location, tracks, etc, without maps.<br />
* [[Gpsdrive]] - Car (bike, etc) navigation system<br />
* [[Om 2008.8 Locations]] - (aka Splinter) - Location sharing based on GPS and SMS<br />
* [[Navit]] - Car navigation system with routing engine<br />
* [[TangoGPS]] - Display map (OSM..), record GPS tracks...<br />
* [[Pyroute]] - Pyroute is a routing program written in Python. It features mobile phone GUI for maps, GPS, and routing.<br />
* [http://www.mumpot.org/ mumpot] - Display map (OSM), routing, OSM editing, a bit of live editing<br />
* [[QMapControl]] - Display maps (OSM..) and add points, lines...<br />
* [[Qpegps]] - Display map with current position<br />
* [[Idle Hands]] - Give a task to you based on your location<br />
* [[Gtkaddpoi]] - Utility for add a POI to TangoGPS using address or coordinates<br />
* [[Gpsdcontrol]]-A simple python script for start or stop gpsd daemon with a button on the desktop.<br />
* [[OpenBmap]]-a free and open map of wireless communicating objects (e.g. cellular antenna, Wi-Fi, Bluetooth). It provides tools to mutualize data, create and access this map.<br />
<br />
== Graphics ==<br />
<br />
* [[Orrery]] - Displays the night sky<br />
* [[OMView]] - Image viewer<br />
* [[PyPenNotes]] - Write notes using pen and touchscreen<br />
* [[Gpe-scap]] - Take screenshots<br />
* [[Flash|Gnash]]-Play flash file on Neo<br />
* [[Neon]] - Image viewer<br />
<br />
----<br />
<br />
== Internet ==<br />
<br />
* [[Twinkle]] - Voice over IP<br />
* [[Linphone]] - Voice over IP<br />
* [[Midori]] - Webkit based web browser<br />
* [[Minimo]] - Mozilla based web browser<br />
* [http://www.dillo.org/ Dillo] - Multiplatform fast and small web browser ([http://misc.andi.de1.cc/dillo/ .ipk]).<br />
* [[Mokopedia]] - Read small Wikipedia dumps offline<br />
* [[Offline Wikipedia reader]] - store the entire content of wikipedia (except iamges), on a single 8GB microSD card<br />
* [[Openmoko-browser2]] - The original Openmoko web browser<br />
* [[Openmokast]] - Play audio stream and slideshow stream<br />
* [[Openmoko Mail]] - E-mail client<br />
* [[Pidgin]] - Instant messaging client (ICQ, MSN, Jabber, Yahoo and more.)<br />
* [[CenterIM]] - Instant messaging client (terminal-based).<br />
* [[PyFeedRead]] - RSS feed reader<br />
* [[Qtmail]] - Default mail program on Om 2008.8<br />
* [[TwitterMoko]] - A Twitter client for Openmoko<br />
* [http://code.google.com/p/pyqt-browser/ pyqt-browser] - modified the sample code from python-pyqt4 and changed it to use webkit for web browsing. <br />
* [http://we.trekbeyond.org/~kd8ikt/moko/shr_pkgz/ ettercap-ng]<br />
* [http://www.netsurf-browser.org/ netsurf]-A new browser for Neo FreeRunner.<br />
<br />
== Office ==<br />
* [[Epdfview]] - PDF reader.<br />
* Evince - Document reader for PDF, PS, DJVU and more.<br />
* [[FBReader]] - E-book reader program (TXT, FB2, HTML and more)<br />
* [[Gutenflash]] - Fast text reader by scrolling text<br />
* [[OMoney]] - A bookkeeping application<br />
<br />
== Settings ==<br />
<br />
* [[Mofi]] - Wifi setup tool<br />
* [[Lint-wifi]] - Wifi setup tool<br />
* [[Om 2008.8 Installer]] - Graphical software installer<br />
* [[Opkg]] - Command line software installer<br />
* [[Sephora]] - Settings manager<br />
* [[SettingsGUI]] - Edit various settings<br />
* [[Wicd]] - Wifi setup tool<br />
* [[ZOMG!]] - A graphical package manager (opkg frontend -&gt; should work on any distro)<br />
* [[Timezone|tzdata]]- Customise your time zone setting.<br />
* [[momtools]] - an application to control Wifi, gprs and some other stuff<br />
* [[Wlan]] - Wlan is an application to manage wireless connection on the Freerunner<br />
<br />
== System ==<br />
* [[Aphasia]] - A system built on Erlang and a vertical application for people with apahasia.<br />
* [[Auxlaunch]] - Finger-friendly app launcher and window switcher<br />
* [[Display Locker]] - Screen lock<br />
* [[Gwaterpas]] - levelling tool using accelerometer<br />
* [[Gestures]] - Detect movement and display information, rotate screen<br />
* [[Keychain]] - SSH keys<br />
* [[MokoFEM]] - Monitors GSM information<br />
* [[Mokostat]] - Monitors battery<br />
* [[Openmoko Bluetooth remote controller|ReMoko]] - Control stuff via BlueTooth<br />
* [[Rotate]] - Rotate screen when phone is rotated<br />
* [[Vala-terminal]] - Command prompt with tabs<br />
* [[Ts calibrate]] - Calibrates touchscreen<br />
* [[Zedlock]] - Screen locker<br />
* [http://fso-control.projects.openmoko.org/ fso-control] - Popup Power menu to shutdown/suspend/reboot.<br />
* [[omkeys_functions]] - Remap AUX key bindings<br />
* [[Siglaunchd]] - A daemon that listens to dbus signals and launches appliactions upon arrival.<br />
* [[Pexpect]]-a pure Python module for spawning child applications; controlling them; and responding to expected patterns in their output. <br />
<br />
----<br />
<br />
== Telephony ==<br />
* [[Dialer/2007.2]] - The dialer application in Om 2007.2<br />
* [[Openmoko SMS Middleware]]- SMS middleware is a Openmoko middleware software for additional features related to SMS. Plugin architecture and Python based code gives this project lots of flexibility and enchancebility.<br />
* [[Paroli]] -Paroli is an integrated phone application based on Tichy (and so also written in python). <br />
<br />
----<br />
<br />
== Utility ==<br />
* [[Unison]] - Unison is a file-synchronization tool for Unix and Windows. It determines all differences between two directory trees and lets the user decide, how to proceed with every differing file. <br />
* [[HP48 Series RPN Calculator]] - Calculator with many functions<br />
* [[qwo]]- An alternative input method.<br />
* {{opkg.org|57|fido}} - [[fido]] is a todo list\note manager written with elementary<br />
* [http://meuk.spritesserver.nl/lightsaber-0.1.tgz The Lightsaber]. Pre-alpha starwaresque orphanware.<br />
* [[NeoTool]] NeoTool is a bash script for your desktop system to provide a friendly GUI frontend to some common management tasks.<br />
* [[NeoCon]] - neocon is a handy serial console utility (not only) for u-boot. The main feature of neocon is actually that you can give it a list of devices and it will pick one that works.<br />
* [http://techiem2.net/index.php?/archives/10-Freerunner-USB-Mode-Control-Program.html usbmode]-a quick pygtk program. <br />
* [[Enotes]] - Enotes is the implementation of a TODOlist manager written with elementary to appear better with distribution that use illume, like SHR.<br />
* [[LED clock]] - When an Openmoko is sitting unused at night, turn it into an alarm clock with large 7-segment digits on a black background in landscape mode. <br />
* [[MokoGeocaching]] - Utility for add a POI to TangoGPS using geocaching.com <br />
* [[Wrench]] - Modual used utility enlightenment_remote.<br />
* [[Yaouh!]] - Yet Another OSM Updater H.<br />
* [[ShortOm]] - Graphical launcher for shell or application, with editable config file, and log result page.<br />
* [[Pimlico]]-Pimlico is a suite of lightweight Personal Information Management (PIM) applications designed primarily for handheld and mobile devices<br />
* [http://projects.openmoko.org/projects/otp4neo/ OTP4Neo] One time password generator<br />
* [http://projects.openmoko.org/projects/ffalarms/ FFAlarm] is a program to set multiple alarms a day using a finger friendly user interface<br />
* [[OpenWrt]]-basic support for the Openmoko &quot;Freerunner&quot;! Kernel (2.6.28) is building and booting.<br />
* [[Enscribi]]-a handwriting recognition input method for Linux. It's mainly developed for the Openmoko Freerunner smartphone.<br />
* [[GridPad]]-GridPad is an alternative input method for entering text with your finger, a Simple Character Recognizer Software.<br />
* [http://sortdesk.projects.openmoko.org/ sortdesk] sort your om-desktop in categories<br />
* [[Mokometeo]] it is a wiget fetching the weather forecast from yahoo for a list of cities<br />
<br />
==Setting Application==<br />
* [[Wmiconfig]]- wmiconfig is a tool written by Atheros Communications Inc to configure the Ar6k WIFI chip used in the Neo Freerunner. This is a standalone C executable, released under GPL v2.<br />
* [[GTA02 sysfs]]- sysfs is a filesystem that is mounted on /sys which contains various fake &quot;files&quot; that are actually filled by a variety of drivers and other kernel subsystems. You can use it to change settings and behaviours of the kernel and drivers dynamically.<br />
<br />
== Video ==<br />
<br />
* [[Video Player]] - Using Mplayer on Openmoko smartphones.<br />
* [http://katastrophos.net/andre/blog/software/quasar-media-player/ Quasar] - a mplayer frontend for X11.<br />
<br />
<br />
<br />
<br />
----<br />
<br />
== daemon ==<br />
* [[PyPhonelog]] - daemon uses the framework to track and log all the calls made to and from the moko.<br />
* [[Lscd]] - LSC library/daemon on Linux System.<br />
<br />
== An automatic list of application-related wiki pages ==<br />
<br />
The pages linked above are all maintained manually. We also maintain an automatic categorization system by tagging wiki pages. Here is the list of application-related pages in this wiki. Normally, every page listed below should be also listed above in the same category. The converse is false: there are applications without a wiki page.<br />
<br />
&lt;div style=&quot;border: solid 1px black; padding: 1ex&quot;&gt;&lt;b&gt;Applications in this Wiki:&lt;/b&gt;<br />
&lt;categorytree mode=pages depth=2 hideroot=on&gt;Applications&lt;/categorytree&gt;<br />
&lt;/div&gt;<br />
<br />
<br />
== Where to find more applications? ==<br />
<br />
At [http://opkg.org opkg.org] !<br />
<br />
Not all Openmoko apps are listed on this wiki - there are much more [http://projects.openmoko.org/softwaremap/ projects at the Openmoko GForge] than the wiki can list, not to mention self-hosted applications on their own websites. Actually the phones can run most Linux based Free Software, using for example the [[Debian]] distribution. The [http://handhelds.freshmeat.net/browse/1038/ mobile phones section of Freshmeat] may be a interesting place to look.<br />
<br />
Note also that there are many packages in the repository that are not installed by default. If what you want is a classic, chances are that it is already packaged. Suppose you want to install Perl:<br />
opkg list|grep perl<br />
opkg install perl<br />
<br />
More application download related pages:<br />
<br />
* [[Community Repository]]<br />
* [[Users Repositories]]<br />
<br />
&lt;div style=&quot;clear:both&quot;&gt;&amp;nbsp;&lt;/div&gt;<br />
<br />
== Where to find full distributions ? ==<br />
<br />
* [[Download]]: for complete system downloads<br />
<br />
== The usual warnings ==<br />
&lt;small&gt;<br />
* Some of these software are developed by Openmoko Inc. and some are contributed by the community. Any problems with community contributed software should be reported to the individual software developer rather than the Openmoko core team.<br />
* Most programs listed here are not mature/stable, but only useable/beta.<br />
* Many programs listed here are not yet packaged for your distribution and integrated in its repositories. Whichever it is.<br />
* Installing experimental software from the internet is certain to break things. Running it as root is a very insecure thing to do. Kown that you will be burned, have backups, and be ready to apologize to everybody in your phone contact list in case they receive strange SMSs...<br />
&lt;/small&gt;<br />
<br />
<br />
[[Category:Applications|Applications]]<br />
[[Category:Basic End User]]</div>Myfanwy