http://openmoko.org/api.php?action=feedcontributions&user=Supercheetah&feedformat=atomOpenmoko - User contributions [en]2024-03-29T05:51:05ZUser contributionsMediaWiki 1.19.24http://openmoko.org/wiki/Manually_using_GPRSManually using GPRS2009-02-16T18:37:01Z<p>Supercheetah: /* Common part */ Clean up</p>
<hr />
<div>{{note| These instructions are for OM2008.8 . If you are using the FSO stack, see [[GPRS_FSO]].}}<br />
<br />
The GPRS connection is made using the PPP protocol to a server identified by an "APN" at the network operator. Once a GPRS connection is made, it is possible to [[#Sharing_the_GPRS_connection_with_a_computer|share that connection with a connected computer]], allowing that computer to access the internet through the phone!<br />
<br />
= Option 1: With GSM multiplexing and with a GUI =<br />
<br />
{{note|The following does not appear to work if you have a SIM PIN. The dialog to enter your SIM PIN never pops up and the GSM multiplexing daemon continuous loops and runs into a SIM PIN error.}}<br />
<br />
GSM multiplexing allows both a GPRS connection and a phone call to be handled at the same time. By default, [[Om 2008.8]] does not multiplex the GSM device. The [[FSO]] distribution, however, introduces GSM multiplexing with a new service and a DBus API to that service. The instructions to modify the OM2008.8 distribution to make use of GSM multiplexing and allow you to start GPRS from a GUI can be found here: http://freeyourphone.de/portal_v1/viewtopic.php?f=21&t=295 ('''Note:''' Script package seems to be no longer be available, but a later post in the thread links to a version at [http://fyp-archiv.relei.de/ http://fyp-archiv.relei.de/].)<br />
<br />
== gsm0710muxd ==<br />
<br />
There are two sources, where you can find gsm0710muxd.<br />
<br />
=== From OM2008.8 repositories ===<br />
<br />
Good news, working gsm0710muxd can be installed just by typing "opkg install gsm0710muxd"<br />
<br />
NOTE: ASU2008.12 boots in 45s and gsm0710muxd has probably not enough time to initialize GSM modem (gsm0710muxd is unable to provide working tty device to qtopia => qpe fails to open GSM modem and quits)<br />
==> Some kind of delay may be needed in /etc/X11/Xsession.d/89qtopia<br />
<br />
==> It has also been suggested on the mailing lists that an "update-rc.d gsm0710muxd defaults 11" be issued to get this to start earlier in the boot process to give the modem a chance to initialize before QPE starts.<br />
<br />
=== From Angstrom Repositories ===<br />
<br />
If the gsm0710muxd that is found in the OM2008.8 repository refuses to work, you can use the one from the Angstrom Repositories (see [[Repositories]]) instead.<br />
<br />
Alternatively, if you simply want to download all the packages, you can get them from here:<br />
<br />
http://www.angstrom-distribution.org/feeds/2008/ipk/glibc/armv4t/base/gsm0710muxd_0.9.1+r0-gitr3ff86b129640b647ccba3d86eb243d864671b039-r0_armv4t.ipk<br />
<br />
I don't know if the package got renamed but that one wasn't in there the one i downloaded was<br />
<br />
http://www.angstrom-distribution.org/feeds/2008/ipk/glibc/armv4t/base/gsm0710muxd_0.9.2+gitr79e10fe8ad0828e5be9a5c087ac9ee04956674c1-r0.1_armv4t.ipk<br />
<br />
haven't gotten past this step yet well see how / if it works. :)<br />
<br />
This link was working for me on 11.12.2008 (I've successfully muxed GSM device and sent command for echo reduction - http://lists.openmoko.org/pipermail/community/2008-August/028495.html)<br />
<br />
http://shr.bearstech.com/shr-testing/ipk/armv4t/gsm0710muxd-dbg_0.9.2+gitr12+d8b36b923ef69a64cb5a2d3bca799d772b9c73c3-r0.1_armv4t.ipk<br />
<br />
and the dependencies from here:<br />
<br />
http://www.angstrom-distribution.org/repo/?pkgname=gsm0710muxd<br />
<br />
Make sure that you install the armv4t versions of all packages.<br />
<br />
=== Common part ===<br />
<br />
The most important step after installing gsm0710muxd is to tell QPE to use the MUX instead of the device directly. If you follow the instructions in the link above, there is a step that replaces the 89qtopia init script with one from their script package. The key difference is the addition of the following lines that tells QPE to use the MUX:<br />
<br />
in /etc/X11/Xsession.d/89qtopia<br />
<br />
identvar=$(date +%s)<br/><br />
ptsvar=$(dbus-send --system --print-reply --type=method_call --dest=org.pyneo.muxer /org/pyneo/Muxer<br />
org.freesmartphone.GSM.MUX.AllocChannel string:$identvar | grep string | awk -F '"' '{ print $2 }')<br/><br />
export QTOPIA_PHONE_DEVICE=$ptsvar<br />
<br />
The [[#Some APN names for reference|APN Reference]] table may come in handy when you are looking for the required network specific information for the other scripts.<br />
<br />
Once you follow through with all the instructions, you will notice that the "Services" GUI will crash. This has to do with this bug: http://docs.openmoko.org/trac/ticket/1718<br />
<br />
The fix is to change the "init()" call on line 82 of /usr/lib/python2.5/site-packages/gtk-2.0/gtk/_init_.py to "_init()" (add an underscore).<br />
<br />
You may also have to modify your /etc/resolv.conf file and add the nameserver (DNS Server) of your service provider if you have DNS resolution problems.<br />
<br />
Then, hopefully, you should be up in running with GPRS and a GUI to turn it on and off. Note that you can use the command line scripts "gprson" and "gprsoff" in place of the GUI if you need to do some debugging.<br />
<br />
= Option 2: With GSM multiplexing and without a GUI =<br />
<br />
You will have to get gsm0710muxd the same way as detailed in Option 1.<br />
<br />
'''1) In /etc/rc5.d start gsm0710muxd before gsmd:'''<br />
* S34gsm0710muxd -> ../init.d/gsm0710muxd<br />
* S35gsmd -> ../init.d/gsmd<br />
<br />
'''2) Modify S35gsmd so it can start either with or without gsm0710muxd:'''<br />
<pre><br />
...<br />
case "$1" in<br />
start)<br />
if [ "$(pidof gsm0710muxd)" ] ; then<br />
id=$(date +%s)<br />
GSM_DEV=$(dbus-send --system --print-reply --type=method_call --dest=org.pyneo.muxer /org/pyneo/Muxer org.freesmartphone.GSM.MUX.AllocChannel string:$id | grep string | cut -d \" -f 2)<br />
else<br />
[ -n "$GSM_POW" ] && ( echo "0" >$GSM_POW; sleep 1 )<br />
[ -n "$GSM_POW" ] && ( echo "1" >$GSM_POW; sleep 1 )<br />
[ -n "$GSM_RES" ] && ( echo "1" >$GSM_RES; sleep 1 )<br />
[ -n "$GSM_RES" ] && ( echo "0" >$GSM_RES; sleep 2 )<br />
fi<br />
<br />
if [ ! "$GSM_DEV" ] ; then<br />
echo "GSM_DEV was not set"<br />
exit 1<br />
fi<br />
<br />
echo -n "Starting GSM daemon: "<br />
start-stop-daemon -S -x /usr/sbin/gsmd -- gsmd -p $GSM_DEV $GSMD_OPTS -d -l /var/log/gsmd<br />
<br />
if [ $? = 0 ]; then<br />
echo "gsmd."<br />
else<br />
echo "(failed.)"<br />
fi<br />
;;<br />
stop)<br />
if [ ! "$(pidof gsm0710muxd)" ] ; then<br />
[ -n "$GSM_POW" ] && echo "0" >$GSM_POW<br />
fi<br />
<br />
echo -n "Stopping GSM daemon: "<br />
...<br />
</pre><br />
<br />
'''3) Remove the tty from /etc/ppp/peers/simyo''' (replace simyo with your provider).<br />
<br />
'''4) Use a ppp start script like this:'''<br />
<pre><br />
$ cat /usr/local/bin/ppp-start<br />
#!/bin/sh<br />
<br />
id=$(date +%s)<br />
TTY=$(dbus-send --system --print-reply --type=method_call --dest=org.pyneo.muxer /org/pyneo/Muxer org.freesmartphone.GSM.MUX.AllocChannel string:$id | grep string | cut -d \" -f 2)<br />
logger -t ppp-start "using tty $TTY"<br />
pppd $TTY call simyo<br />
</pre><br />
<br />
'''5) Use "killall pppd" to terminate the PPP connection.'''<br />
<br />
<br />
[[:Image:Gsmmuxd.trace.txt|Here]] is some strace information from gsm0710muxd, showing how the daemon responds when receiving a call when GPRS is up.<br />
<br />
[http://www.teaparty.net/technotes/openmoko-2.html#GPRS Here] is Tom's documentation on how he got it working (under 2008.08), with config files and example output.<br />
<br />
= Option 3: Without GSM multiplexing and without a GUI =<br />
<br />
[Important Note: It has been pointed out that this is only for 2007.2 and not for the 2008.8 images. If someone can confirm this and update this comment with more detail it would help out this page. Thanks]<br />
<br />
The program that implements PPP on Linux is [[pppd]], which we need to configure and run to get a connection. When that is working, we can configure pppd to wait until it's needed before it connects, and to disconnect if the connection becomes idle. Further, we can start pppd in the background during the boot process.<br />
<br />
== Configuring pppd for manual connections ==<br />
<br />
You'll need /etc/ppp/peers/gprs:<br />
<pre><br />
# Uncomment the following if you want some debug.<br />
#debug<br />
#logfile /var/volatile/log/pppd.log<br />
lock<br />
/dev/ttySAC0 115200<br />
crtscts<br />
connect /etc/ppp/gprs-connect-chat<br />
disconnect /etc/ppp/gprs-disconnect-chat<br />
hide-password<br />
usepeerdns<br />
ipcp-accept-local<br />
noauth<br />
noipdefault<br />
novj<br />
novjccomp<br />
defaultroute<br />
replacedefaultroute<br />
# Reopen the connection if it fails, pausing for a while.<br />
persist<br />
holdoff 15<br />
# Check the line every 20 seconds and presume<br />
# the peer is gone if no replay for 4 times.<br />
lcp-echo-interval 20<br />
lcp-echo-failure 4<br />
</pre><br />
<br />
Comment by Vasco: I also had to include this in order to survive a "'''IPCP: timeout sending Config-Requests'''" sporadic error that dropped my connection right in the beginning:<br />
<pre><br />
ipcp-restart 10<br />
</pre><br />
<br />
<br />
Depending on the APN, you may need password authentication using CHAP or PAP. In /etc/ppp/pap-secrets you can add the following default line for "password-less" connections:<br />
<br />
<pre><br />
# client server secret IP addresses<br />
* * "" *<br />
</pre><br />
<br />
For CHAP, lines in /etc/ppp/chap-secrets are used. For PAP, the lines are in /etc/ppp/pap-secrets. The client should match the "user" option in pppd the config file (below). You can use * to mean any here, but the option user "" doesn't mean empty!<br />
<br />
For example:<br />
<br />
<pre><br />
# Secrets for authentication using CHAP<br />
# client server secret IP addresses<br />
"user" * "password" *<br />
</pre><br />
<br />
For this you need the following options in /etc/ppp/peers/gprs:<br />
<br />
<pre><br />
# username to use for authentication, should match "client" in /etc/ppp/{chap,pap}-secrets<br />
user "user"<br />
</pre><br />
<br />
== gprs-connect-chat, version 1 ==<br />
<br />
You'll also need /etc/ppp/gprs-connect-chat (needs "chmod +x"):<br />
<br />
<pre><br />
#!/bin/sh -e<br />
exec chat -v -S -s\<br />
TIMEOUT 15\<br />
"" "\K\K\K\d+++ATH"\<br />
OK-AT-OK ATZ\<br />
OK ATE1\<br />
ABORT BUSY\<br />
ABORT DELAYED\<br />
ABORT "NO ANSWER"\<br />
ABORT "NO DIALTONE"\<br />
ABORT VOICE\<br />
ABORT ERROR\<br />
ABORT RINGING\<br />
TIMEOUT 60\<br />
OK AT+CFUN=1\<br />
OK AT+COPS\<br />
OK AT+CGDCONT=1,\"IP\",\"internet\"\<br />
OK ATD*99#\<br />
CONNECT /n/d<br />
</pre><br />
<br />
<b>Note:</b> In the 3rd last line, replace the word <i>internet</i> by your provider's APN (listed below).<br />
<br />
<b>(08/18/08) Note:</b> I needed to add the command "AT+CMOD=2" (formatted as "OK AT+CMOD=2\" without the quotes) in order to get GPRS working with the above script (otherwise it would ERROR on the CFUN, COPS, or the ATD if the other two were removed). I have T-Mobile (US) with the $5.99 "tzones" addon, which works with Minimo as it supports HTTP proxy setups.<br />
<br />
Notes:<br />
AT+CMOD=?<br />
0 single mode<br />
1 alternating voice/fax (teleservice 61)<br />
2 alternating voice/data (bearer service 61)<br />
3 voice followed by data (bearer service 81)<br />
also all other values below 128 are reserved by this ETS<br />
<br><br />
AT+CFUN=?<br />
0 minimum functionality<br />
1 full functionality ("full functionality" is where the highest level of power is drawn)<br />
2 disable phone transmit RF circuits only<br />
3 disable phone receive RF circuits only<br />
4 disable phone both transmit and receive RF circuits<br />
5...127 reserved for manufacturers as intermediate states between full and minimum functionality<br />
<br><br />
<br />
== gprs-connect-chat, version 2 ==<br />
<br />
Update: On my freerunner the first AT+CFUN=1 always generated ERROR. I managed to get gprs work by using the following script from http://lists.openmoko.org/pipermail/community/2008-July/023246.html:<br />
<br />
<pre><br />
#!/bin/sh -e<br />
exec /usr/sbin/chat -v \<br />
TIMEOUT 10 \<br />
OK-AT-'' ''\<br />
ABORT BUSY\<br />
ABORT DELAYED\<br />
ABORT "NO ANSWER"\<br />
ABORT "NO DIALTONE"\<br />
ABORT VOICE\<br />
ABORT ERROR\<br />
ABORT RINGING\<br />
TIMEOUT 30 \<br />
'' ATZ\<br />
OK ATE1\<br />
OK AT+CFUN=1\<br />
ERROR AT+CPIN=\"XXXX\"\ << USE YOUR OWN<br />
OK AT+COPS\<br />
OK AT+CGDCONT=1,\"IP\",\"internet\"\<br />
OK 'ATDT*99***1#'\<br />
CONNECT ''<br />
</pre><br />
<br />
The error seems to vary a bit, sometimes it's before AT+COPS, sometimes as above. I have two versions of the gprs-connect-chat, which I vary between depending on which is needed. Or is there a way to specify two acceptable answers like {OK,ERROR}?<br />
<br />
You will need to adjust the APN name "internet" in at+cgdcont line and possibly the phone number in the ATD line to match what your network operator provides. See below in the table "Some APN names for reference" for the right settings for your operator.<br />
<br />
== gprs-disconnect-chat ==<br />
<br />
Also good to have is /etc/ppp/gprs-disconnect-chat (needs "chmod +x"):<br />
<br />
<pre><br />
#!/bin/sh -e<br />
/usr/sbin/chat -v\<br />
ABORT OK\<br />
ABORT BUSY\<br />
ABORT DELAYED\<br />
ABORT "NO ANSWER"\<br />
ABORT "NO CARRIER"\<br />
ABORT "NO DIALTONE"\<br />
ABORT VOICE\<br />
ABORT ERROR\<br />
ABORT RINGING\<br />
TIMEOUT 12\<br />
"" "\K\K\K\d+++ATH"\<br />
"NO CARRIER-AT-OK" "\c"<br />
</pre><br />
<br />
== Starting PPP connection ==<br />
<br />
The following script can be used to start the ppp connection. First it stops gsmd because gsmd may put the phone in a unknown state. It then turns on the power to the phone, modifies the ownership, and then creates a tty connection. Finally it starts [[pppd]] with the gprs settings.<br />
<br />
<pre><br />
/etc/init.d/gsmd stop<br />
echo "1" > /sys/bus/platform/devices/neo1973-pm-gsm.0/power_on<br />
chown uucp.uucp /dev/ttySAC0<br />
stty -F /dev/ttySAC0 crtscts<br />
pppd call gprs<br />
</pre><br />
<br />
If you are having problems connecting ensure you have a good GSM signal and replace the last line with the below line. This will allow you to see the details of the connection on the console.<br />
<br />
<pre><br />
pppd debug nodetach call gprs<br />
</pre><br />
<br />
The config above will establish a persistant link over gprs. The battery will run low in less than an hour. See an example for an on-demand config below.<br />
<br />
=== Resolve.conf issues ===<br />
<br />
The latest build seems to have solved the following issue, it should be automatically updated by pppd.<br />
<br />
If you expeience DNS issues after connecting to DNS you may need a proper /etc/resolv.conf:<br />
<br />
<pre><br />
ln -sf /var/run/resolv.conf /etc<br />
</pre><br />
<br />
If needed put your nameserver for usb-net into /var/run/resolv.conf, not in /etc.<br />
<br />
The image does not set a correct resolv.conf. i do so with an<br />
<br />
<pre><br />
echo nameserver 192.168.0.201 > /var/run/resolv.conf<br />
</pre><br />
<br />
in the right place. because a post-up in /etc/network/interfaces is not supported i do that in /etc/network/if-up.d/08setupdns<br />
<br />
another problem is pppd's /etc/ppp/ip-down.d/92removedns which does not properly remove the link when shuting down ppp. my fix is this script:<br />
<br />
<pre><br />
#!/bin/sh<br />
ACTUALCONF=/var/run/resolv.conf<br />
PPPCONF=/var/run/ppp/resolv.conf<br />
if [ -f $PPPCONF ] ; then<br />
if [ -f $ACTUALCONF ] ; then<br />
if [ ! -h $ACTUALCONF -o ! "`readlink $ACTUALCONF 2>&1`" = "$PPPCONF" ] ; then<br />
mv $ACTUALCONF $ACTUALCONF.ppporig<br />
fi<br />
fi<br />
<br />
ln -sf $PPPCONF $ACTUALCONF<br />
fi<br />
</pre><br />
<br />
<br />
<br />
=== Some APN names for reference ===<br />
<br />
{| border="1"<br />
! Country<br />
! Carrier<br />
! Plan<br />
! APN/Phone<br />
! user/password if required<br />
! Working pppd scripts<br />
|-<br />
| Australia || Telstra || Any || telstra.internet || || use CHAP auth with "" secret ||<br />
|-<br />
| Australia || Virgin || Any || VirginInternet || ||<br />
|-<br />
| Australia || Vodafone || Any || vfinternet.au || ||<br />
|-<br />
| Austria|| Orange/One|| Any || web.one.at || web/web || works with gsm0710d under om2008.9: [http://freeyourphone.de/portal_v1/viewtopic.php?f=21&t=295 howto] - complete /etc/ppp/ directory with settings can be found here: [http://www.true-binary.com/wp-content/uploads/2008/11/orange_ppp.tar.gz orange_ppp.tar.gz]<br />
|-<br />
| Canada || Fido || Any, behind NAT || internet.fido.ca || fido/fido || use pap authetication<br />
proxy address 205.151.011.011:8080<br />
<br />
mdbus -s org.freesmartphone.frameworkd /org/freesmartphone/GSM/Device<br />
org.freesmartphone.GSM.PDP.ActivateContext internet.fido.ca fido<br />
fido<br />
|-<br />
| Canada || Rogers || Any, behind NAT || internet.com || wapuser1/wap || nameserver 207.181.101.4<br />
|-<br />
| Canada || Rogers || $7 unlimited browsing || goam.com || wapuser1/wap || Must use a proxy server 10.128.1.69:80 (or 172.25.0.107:80 or 208.200.67.150:8080)<br />
|-<br />
| Czech Republic || Vodafone || any postpaid || internet || must be empty || [[GPRS_FSO|Works with FSO]] Behind NAT.<br />
|-<br />
| Czech Republic || Vodafone || prepaid || ointernet || must be empty || [[GPRS_FSO|Works with FSO]] Behind NAT.<br />
|-<br />
| Czech Republic || 02 || Unlimited data plan || internet || must be empty || [[http://wiki.openmoko.org/index.php?title=Manually_using_GPRS&action=submit#Option_3:_Without_GSM_multiplexing_and_without_a_GUI Works with OM2008.9]] and with [[GPRS_FSO|FSO]].<br />
|-<br />
<br />
| Denmark || Telmore || || wap || must be empty ||<br />
|-<br />
| Denmark || Unotel || || internet || must be empty || Note: APN not tested<br />
|-<br />
| Estonia || Elisa || Any, behind NAT || internet || ||<br />
|-<br />
| Estonia || EMT || Any, behind NAT || internet.emt.ee || ||<br />
|-<br />
| Fiji || Digicel || Any || wap.digicelpacific.com || || nameserver 10.150.123.41 10.150.102.240 Must use a proxy server 10.150.122.12:8080<br />
|-<br />
| Finland || Elisa || unknown || internet || ||<br />
|-<br />
| Finland || Saunalahti || Any || internet.saunalahti || ||<br />
|-<br />
| Finland || Sonera || Any, behind NAT || internet || ||<br />
|-<br />
| Finland || Sonera || Any, public IP || prointernet || ||<br />
|-<br />
| France || SFR || 10.x.x.x? || websfr || || under tests<br />
|-<br />
| France || SFR || 10.x.x.x? || wapsfr<sup>[1]</sup>|| || under tests<br />
|-<br />
| France || Orange || ??? || orange || orange orange|| Work under OM2008.9 FDOM with UI ( gsm0710muxd )<br />
|-<br />
| France || Bouyges Telecom || Web & Mail || mmsbouygtel.com || || Work great under FSO. Just follow instructions at http://wiki.openmoko.org/wiki/GPRS_FSO. Proxy: 62.201.129.225:8080. For emails, only ports 25 (smtp) and 110 (pop) are allowed. (They use a transparent proxy ...)<br />
|-<br />
| Germany || E-Plus || BASE (and others?) || internet.eplus.de || eplus gprs || [[Base pppd scripts]]<br />
|-<br />
| Germany || E-Plus || Simyo || internet.eplus.de || simyo simyo || [[simyo pppd scripts]]<br />
|-<br />
| Germany || T-Mobile || || internet.t-mobile || t-d1/gprs || nameserver 193.254.160.1<br />
|-<br />
| Germany || Vodafone || Any, behind NAT || web.vodafone.de || ||<br />
|-<br />
| Hungary || T-Mobile || Any || internet / *99***1# || must be empty || must disable chap auth: refuse-chap, refuse-mschap, refuse-mschap-v2<br />
|-<br />
| India || AirTel || MobileOffice || airtelgprs.com || ||<br />
|-<br />
| Ireland || Vodafone || || isp.vodafone.ie || vodafone/vodafone ||<br />
|-<br />
| Ireland || O2 || || open.internet || gprs/gprs ||<br />
|-<br />
| Italy || Wind || Superinternet, public IP || internet.wind / *99# || wind/wind (any string) || [[Wind pppd scripts]]<br />
|-<br />
| Netherlands || Telfort || Any || wap.telfort.nl / *99***1# || || [http://forum.pocketinfo.nl/f15/communicatie/f18/gprs-edge-umts-hsdpa/55220-telfort-gprs-instellen-op-ipaq-6340-a.html connection details]<br />
|-<br />
| Netherlands || Vodafone || Any || live.vodafone.com / *99***1# || || [[Vodafone pppd scripts]]<br />
|-<br />
| New Zealand || Vodafone || Any || live.vodafone.com / *99***2# || ||<br />
|-<br />
| Norway || Netcom || Any || internet.netcom.no || ||<br />
|-<br />
| Norway || Chess || Any || netcom || username="chess", password="chess" || [[GPRS FSO]]<br />
|-<br />
| Norway || OneCall || Any || internet || ||<br />
|-<br />
| Norway || Telenor || Any || telenor || ||<br />
|-<br />
| Russia || MTS || Any || internet.mts.ru / *99***1# || mts/mts ||<br />
|-<br />
| Russia || Megafon || Any || internet || ||<br />
|-<br />
| Spain || Masmovil || Any || internetmas || ||<br />
|-<br />
| Spain || Simyo || Any || gprs-service.com / *99# || ||<br />
|-<br />
| Spain || Yoigo || Any || internet / *99***1 || must be empty || [[Yoigo pppd scripts]]<br />
|-<br />
| Sweden || Parlino || || internet.parlino.se || || [[GPRS_FSO|Works with FSO]]<br />
|-<br />
| Sweden || Telia || || online.telia.se || || [[GPRS_FSO|Works with FSO]]<br />
|-<br />
| Switzerland || Sunrise || || internet || ||<br />
|-<br />
| Switzerland || Sunrise || MMS || mms.sunrise.ch || ||<br />
|-<br />
| Switzerland || Swisscom || e.g. Natel Basic Liberty, behind NAT || gprs.swisscom.ch || ||<br />
|-<br />
| UK || T-Mobile|| || general.t-mobile.uk || ||<br />
|-<br />
| UK || Virgin || || goto.virginmobile.uk || user ||<br />
|-<br />
| UK || [http://www.filesaveas.com/gprs.html other providers] || || || ||<br />
|-<br />
| USA || AT&T || Unlimited data plan (attached to pay-as-you-go voice plan) || wap.cingular / *99***1# || WAP@CINGULARGPRS.COM/CINGULAR1 ||<br />
|-<br />
| USA || Cincinnati Bell Wireless || || wap.gocbw.com || cbw ||<br />
|-<br />
| USA || Cingular (AT&T) || Less than full internet || wap.cingular / may require *99***1# || ||<br />
|-<br />
| USA || T-mobile || Anything less than full internet || wap.voicestream.com || || Need to set proxy to 216.155.165.50 T-Mobile docs say "216.155.165.050". 050 octal = 40 decimal and will *not* work. I think port is 8080 or 9100. No luck w/ pppd scripts. GPRS_FSO directions work under FSO though.<br />
|-<br />
| USA || T-mobile || Regular internet plan || internet2.voicestream.com || || [[T-Mobile pppd scripts]]<br />
|-<br />
| USA || T-mobile || "VPN" internet plan || internet3.voicestream.com || ||<br />
|-<br />
| Venezuela || Digitel || Pre- y post-pago || gprsweb.digitel.ve || ||<br />
|-<br />
|}<br />
<br />
[1] connected through a WAP proxy (slower, but the only way to access Vodafone live! and SFR portal)<br />
<br />
[2] Unless stated otherwise the phone number to call is "*99#"<br />
<br />
Also see Ross Barkman's page for a detailed list of more [http://www.taniwha.org.uk/gprs.html global GPRS providers APN details]<br />
<br />
== Starting pppd automatically ==<br />
<br />
Once you have finished debugging your gprs-connect-chat and gprs options files, you may wish to automatically connect whenever needed and hang up when finished. Make sure you understand the impact of this change to your carrier plan billing. This is not recommended unless you have a large-use or unlimited data plan. These scripts do NOT prompt you before connecting.<br />
<br />
=== On-demand connection settings ===<br />
<br />
Additional settings are needed if you want the actual connection to be up only while there is traffic. In the 'gprs' file above, insert the following, making sure 'nodetach' is commented out. If 'nodetach' is on, the boot process will stop when it starts pppd. Also remove the option 'persist' mentioned above.<br />
<br />
<pre><br />
<br />
# Wait until needed before connecting<br />
demand<br />
<br />
# Disconnect if idle for given amount of seconds<br />
idle 20<br />
<br />
</pre><br />
<br />
=== Start on boot (method 1) ===<br />
<br />
Add the following definition to /etc/network/interfaces:<br />
<pre><br />
auto ppp0<br />
iface ppp0 inet ppp<br />
provider gprs<br />
</pre><br />
<br />
That should be it. Now you can use 'ifup ppp0' and 'ifdown ppp0' manually too.<br />
<br />
=== Start on boot (method 2) ===<br />
<br />
Create the following file as /etc/ppp/ppp_on_boot (needs chmod +x). The /etc/init.d/ppp script will call it to set up the daemon.<br />
<pre><br />
#!/bin/sh<br />
#<br />
# Rename this file to ppp_on_boot and pppd will be fired up as<br />
# soon as the system comes up, connecting to `provider'.<br />
#<br />
# If you also make this file executable, and replace the first line<br />
# with just "#!/bin/sh", the commands below will be executed instead.<br />
#<br />
<br />
# The location of the ppp daemon itself (shouldn't need to be changed)<br />
PPPD=/usr/sbin/pppd<br />
<br />
# The default provider to connect to<br />
$PPPD call gprs<br />
<br />
# Additional connections, which would just use settings from<br />
# /etc/ppp/options.<tty><br />
#$PPPD ttyS0<br />
#$PPPD ttyS1<br />
#$PPPD ttyS2<br />
#$PPPD ttyS3<br />
</pre><br />
<br />
<br />
Finally, you need to add the /etc/init.d/ppp script to the init process by creating symbolic links from the appropriate directories. I chose the following:<br />
<br />
<pre><br />
/etc/rc0.d/K25ppp<br />
/etc/rc1.d/K45ppp<br />
/etc/rc2.d/S45ppp<br />
/etc/rc3.d/S45ppp<br />
/etc/rc4.d/S45ppp<br />
/etc/rc5.d/S45ppp<br />
/etc/rc6.d/K25ppp<br />
</pre><br />
<br />
= Qt Extended =<br />
If password/username is not mandotory for your provider, input anything e.g. x. Works fine with 4.4.2.<br />
<br />
= Sharing the GPRS connection with a computer =<br />
<br />
See [[Tethering]]<br />
<br />
== See also ==<br />
* [[pppd]]<br />
* [[Manually using GSM]]<br />
* [[Manually using Bluetooth]]<br />
* [[GPRS FSO]]<br />
{{Languages|Manually_using_GPRS}}<br />
<br />
[[Category:Application Developer]]<br />
[[Category:Networking]]<br />
[[Category:GSM]]</div>Supercheetahhttp://openmoko.org/wiki/NavitNavit2009-01-18T13:51:06Z<p>Supercheetah: /* Something about the Internal GUI */</p>
<hr />
<div>{{Application|Navit}}<br />
<br />
As described on the [http://navit.sourceforge.net/ Navit home page],<br />
<br />
"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."<br />
<br />
Some people say Navit is also a good choice for pedestrian and bicycle navigation.<br />
<br />
[[Image:Screenshot-3.png|thumb|Navit-0.0.4+cvs]]<br />
<br />
== Acknowledgment ==<br />
<br />
Thanks to [[User:Alessandro | Alessandro]], stefan_schmidt, cp15 and all Navit developers I have done a small ("not really working") 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 >/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 />
====Debian====<br />
Add this repository to '''/etc/apt/sources.list''':<br />
deb http://pini.free.fr/debian unstable main<br />
deb-src http://pini.free.fr/debian unstable main<br />
Then<br />
# apt-get update<br />
# apt-get install navit<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 />
<pre>wget -O germany.bin http://maps.navit-project.org/api/map/?bbox=5.185546875,46.845703125,15.46875,55.634765625</pre><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&lon=-122.20130713167327&zoom=9&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 />
<pre>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</pre><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 />
<pre>cat *.osm | osm2navit --dedupe-ways mymap.bin</pre><br />
<br />
===Copy the map to the NEO===<br />
To copy the map using scp (replace ''/directory'' as is appropriate in the following):<br />
<pre>scp mymap.bin root@neo:/directory</pre><br />
Once it's somewhere on the NEO, Navit needs to know that it's there.<br />
<pre>mkdir ~/.navit<br />
cp /usr/share/navit/navit.xml ~/.navit/navit.xml<br />
vi ~/.navit/navit.xml</pre><br />
In the navit.xml file, put the following into a new <mapset> section:<br />
<pre><map type="binfile" enabled="yes" data="/directory" /></pre><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 "always center on vehicle" option. <br />
<br />
To activate this add<br />
follow="3"<br />
to the vehicle tag in navit.xml. The "3" causes to give the gui time to do something between the repaints (drag the map or browse the menu). When its set to "1" navit does nothing more than repainting the map continuously.<br />
<br />
== News ==<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 > Destination ===<br />
The Route > 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 "export LANG=fr_FR.UTF-8" 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 "testing" repo does not require "dotconf"<br />
<br />
* change the speech tag in navit.xml:<br />
<speech type="cmdline" data="spd-say '%s'" /><br />
<br />
or "spd-say -l fr '%s'" for using the French voice for example.<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 <code>.navit.bin.zip</code> version of the map. You'll have to exatract the <code>.bin</code> file from the ZIP archive before using it with Navit.<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 <minimum latitude> <maximum latitude> <minimum longitude> <maximum longitude><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 />
<pre><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 < maxLat:<br />
nextLat = min(currLat + 0.1, maxLat)<br />
<br />
currLon = minLon<br />
while currLon < 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 />
</pre><br />
<br />
<onlyinclude><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 />
</onlyinclude><br />
<br />
[[Category:GPS Applications]]</div>Supercheetahhttp://openmoko.org/wiki/NavitNavit2009-01-18T13:49:45Z<p>Supercheetah: /* Copy the map to the NEO */</p>
<hr />
<div>{{Application|Navit}}<br />
<br />
As described on the [http://navit.sourceforge.net/ Navit home page],<br />
<br />
"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."<br />
<br />
Some people say Navit is also a good choice for pedestrian and bicycle navigation.<br />
<br />
[[Image:Screenshot-3.png|thumb|Navit-0.0.4+cvs]]<br />
<br />
== Acknowledgment ==<br />
<br />
Thanks to [[User:Alessandro | Alessandro]], stefan_schmidt, cp15 and all Navit developers I have done a small ("not really working") 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 >/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 />
====Debian====<br />
Add this repository to '''/etc/apt/sources.list''':<br />
deb http://pini.free.fr/debian unstable main<br />
deb-src http://pini.free.fr/debian unstable main<br />
Then<br />
# apt-get update<br />
# apt-get install navit<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 />
<pre>wget -O germany.bin http://maps.navit-project.org/api/map/?bbox=5.185546875,46.845703125,15.46875,55.634765625</pre><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&lon=-122.20130713167327&zoom=9&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 />
<pre>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</pre><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 />
<pre>cat *.osm | osm2navit --dedupe-ways mymap.bin</pre><br />
<br />
===Copy the map to the NEO===<br />
To copy the map using scp (replace ''/directory'' as is appropriate in the following):<br />
<pre>scp mymap.bin root@neo:/directory</pre><br />
Once it's somewhere on the NEO, Navit needs to know that it's there.<br />
<pre>mkdir ~/.navit<br />
cp /usr/share/navit/navit.xml ~/.navit/navit.xml<br />
vi ~/.navit/navit.xml</pre><br />
In the navit.xml file, put the following into a new <mapset> section:<br />
<pre><map type="binfile" enabled="yes" data="/directory" /></pre><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 />
===Something about the Internal GUI===<br />
Navit supports a "always center on vehicle" option. <br />
<br />
To activate this add<br />
follow="3"<br />
to the vehicle tag in navit.xml. The "3" causes to give the gui time to do something between the repaints (drag the map or browse the menu). When its set to "1" navit does nothing more than repainting the map continuously.<br />
<br />
== News ==<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 > Destination ===<br />
The Route > 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 "export LANG=fr_FR.UTF-8" 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 "testing" repo does not require "dotconf"<br />
<br />
* change the speech tag in navit.xml:<br />
<speech type="cmdline" data="spd-say '%s'" /><br />
<br />
or "spd-say -l fr '%s'" for using the French voice for example.<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 <code>.navit.bin.zip</code> version of the map. You'll have to exatract the <code>.bin</code> file from the ZIP archive before using it with Navit.<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 <minimum latitude> <maximum latitude> <minimum longitude> <maximum longitude><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 />
<pre><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 < maxLat:<br />
nextLat = min(currLat + 0.1, maxLat)<br />
<br />
currLon = minLon<br />
while currLon < 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 />
</pre><br />
<br />
<onlyinclude><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 />
</onlyinclude><br />
<br />
[[Category:GPS Applications]]</div>Supercheetahhttp://openmoko.org/wiki/NavitNavit2009-01-18T13:47:12Z<p>Supercheetah: /* From the command line */ capitalization</p>
<hr />
<div>{{Application|Navit}}<br />
<br />
As described on the [http://navit.sourceforge.net/ Navit home page],<br />
<br />
"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."<br />
<br />
Some people say Navit is also a good choice for pedestrian and bicycle navigation.<br />
<br />
[[Image:Screenshot-3.png|thumb|Navit-0.0.4+cvs]]<br />
<br />
== Acknowledgment ==<br />
<br />
Thanks to [[User:Alessandro | Alessandro]], stefan_schmidt, cp15 and all Navit developers I have done a small ("not really working") 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 >/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 />
====Debian====<br />
Add this repository to '''/etc/apt/sources.list''':<br />
deb http://pini.free.fr/debian unstable main<br />
deb-src http://pini.free.fr/debian unstable main<br />
Then<br />
# apt-get update<br />
# apt-get install navit<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 />
<pre>wget -O germany.bin http://maps.navit-project.org/api/map/?bbox=5.185546875,46.845703125,15.46875,55.634765625</pre><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&lon=-122.20130713167327&zoom=9&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 />
<pre>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</pre><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 />
<pre>cat *.osm | osm2navit --dedupe-ways mymap.bin</pre><br />
<br />
===Copy the map to the NEO===<br />
To copy the map using scp (replace location as is appropriate in the following):<br />
<pre>scp mymap.bin root@neo:<location></pre><br />
Once it's somewhere on the NEO, Navit needs to know that it's there.<br />
<pre>mkdir ~/.navit<br />
cp /usr/share/navit/navit.xml ~/.navit/navit.xml<br />
vi ~/.navit/navit.xml</pre><br />
In the navit.xml file, put the following into a new mapset section:<br />
<pre><map type="binfile" enabled="yes" data="/home/root/card/map/mymap.bin" /></pre><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 />
===Something about the Internal GUI===<br />
Navit supports a "always center on vehicle" option. <br />
<br />
To activate this add<br />
follow="3"<br />
to the vehicle tag in navit.xml. The "3" causes to give the gui time to do something between the repaints (drag the map or browse the menu). When its set to "1" navit does nothing more than repainting the map continuously.<br />
<br />
== News ==<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 > Destination ===<br />
The Route > 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 "export LANG=fr_FR.UTF-8" 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 "testing" repo does not require "dotconf"<br />
<br />
* change the speech tag in navit.xml:<br />
<speech type="cmdline" data="spd-say '%s'" /><br />
<br />
or "spd-say -l fr '%s'" for using the French voice for example.<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 <code>.navit.bin.zip</code> version of the map. You'll have to exatract the <code>.bin</code> file from the ZIP archive before using it with Navit.<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 <minimum latitude> <maximum latitude> <minimum longitude> <maximum longitude><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 />
<pre><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 < maxLat:<br />
nextLat = min(currLat + 0.1, maxLat)<br />
<br />
currLon = minLon<br />
while currLon < 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 />
</pre><br />
<br />
<onlyinclude><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 />
</onlyinclude><br />
<br />
[[Category:GPS Applications]]</div>Supercheetahhttp://openmoko.org/wiki/NavitNavit2009-01-18T13:46:38Z<p>Supercheetah: /* From the command line */</p>
<hr />
<div>{{Application|Navit}}<br />
<br />
As described on the [http://navit.sourceforge.net/ Navit home page],<br />
<br />
"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."<br />
<br />
Some people say Navit is also a good choice for pedestrian and bicycle navigation.<br />
<br />
[[Image:Screenshot-3.png|thumb|Navit-0.0.4+cvs]]<br />
<br />
== Acknowledgment ==<br />
<br />
Thanks to [[User:Alessandro | Alessandro]], stefan_schmidt, cp15 and all Navit developers I have done a small ("not really working") 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 >/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 />
====Debian====<br />
Add this repository to '''/etc/apt/sources.list''':<br />
deb http://pini.free.fr/debian unstable main<br />
deb-src http://pini.free.fr/debian unstable main<br />
Then<br />
# apt-get update<br />
# apt-get install navit<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 />
<pre>wget -O germany.bin http://maps.navit-project.org/api/map/?bbox=5.185546875,46.845703125,15.46875,55.634765625</pre><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&lon=-122.20130713167327&zoom=9&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 />
<pre>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</pre><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 />
<pre>cat *.osm | osm2navit --dedupe-ways mymap.bin</pre><br />
<br />
===Copy the map to the NEO===<br />
To copy the map using scp (replace location as is appropriate in the following):<br />
<pre>scp mymap.bin root@neo:<location></pre><br />
Once it's somewhere on the NEO, Navit needs to know that it's there.<br />
<pre>mkdir ~/.navit<br />
cp /usr/share/navit/navit.xml ~/.navit/navit.xml<br />
vi ~/.navit/navit.xml</pre><br />
In the navit.xml file, put the following into a new mapset section:<br />
<pre><map type="binfile" enabled="yes" data="/home/root/card/map/mymap.bin" /></pre><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 />
===Something about the Internal GUI===<br />
Navit supports a "always center on vehicle" option. <br />
<br />
To activate this add<br />
follow="3"<br />
to the vehicle tag in navit.xml. The "3" causes to give the gui time to do something between the repaints (drag the map or browse the menu). When its set to "1" navit does nothing more than repainting the map continuously.<br />
<br />
== News ==<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 > Destination ===<br />
The Route > 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 "export LANG=fr_FR.UTF-8" 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 "testing" repo does not require "dotconf"<br />
<br />
* change the speech tag in navit.xml:<br />
<speech type="cmdline" data="spd-say '%s'" /><br />
<br />
or "spd-say -l fr '%s'" for using the French voice for example.<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 <code>.navit.bin.zip</code> version of the map. You'll have to exatract the <code>.bin</code> file from the ZIP archive before using it with Navit.<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 <minimum latitude> <maximum latitude> <minimum longitude> <maximum longitude><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 />
<pre><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 < maxLat:<br />
nextLat = min(currLat + 0.1, maxLat)<br />
<br />
currLon = minLon<br />
while currLon < 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 />
</pre><br />
<br />
<onlyinclude><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 />
</onlyinclude><br />
<br />
[[Category:GPS Applications]]</div>Supercheetahhttp://openmoko.org/wiki/NavitNavit2009-01-18T13:39:49Z<p>Supercheetah: /* Copy the map to the NEO */</p>
<hr />
<div>{{Application|Navit}}<br />
<br />
As described on the [http://navit.sourceforge.net/ Navit home page],<br />
<br />
"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."<br />
<br />
Some people say Navit is also a good choice for pedestrian and bicycle navigation.<br />
<br />
[[Image:Screenshot-3.png|thumb|Navit-0.0.4+cvs]]<br />
<br />
== Acknowledgment ==<br />
<br />
Thanks to [[User:Alessandro | Alessandro]], stefan_schmidt, cp15 and all Navit developers I have done a small ("not really working") 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 >/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 />
====Debian====<br />
Add this repository to '''/etc/apt/sources.list''':<br />
deb http://pini.free.fr/debian unstable main<br />
deb-src http://pini.free.fr/debian unstable main<br />
Then<br />
# apt-get update<br />
# apt-get install navit<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 up-to-date maps already prepared, e.g.:<br />
<br />
<pre>wget -O germany.bin http://maps.navit-project.org/api/map/?bbox=5.185546875,46.845703125,15.46875,55.634765625</pre><br />
<br />
** Here's an example of what I did to get the maps for the area around Seattle, Wa where I live:<br />
*** figured out map coordinates using http://informationfreeway.org/?lat=47.520270037501454&lon=-122.20130713167327&zoom=9&layers=B000F000<br />
*** Downloaded 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 />
<pre>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</pre><br />
<br />
*** Made a navit binary map file using the osm2navit binary that comes with the navit package on my linux box (it is also installing to the target from the .ipk)<br />
<br />
<pre>cat *.osm | osm2navit --dedupe-ways mymap.bin</pre><br />
<br />
===Copy the map to the NEO===<br />
To copy the map using scp (replace location as is appropriate in the following):<br />
<pre>scp mymap.bin root@neo:<location></pre><br />
Once it's somewhere on the NEO, Navit needs to know that it's there.<br />
<pre>mkdir ~/.navit<br />
cp /usr/share/navit/navit.xml ~/.navit/navit.xml<br />
vi ~/.navit/navit.xml</pre><br />
In the navit.xml file, put the following into a new mapset section:<br />
<pre><map type="binfile" enabled="yes" data="/home/root/card/map/mymap.bin" /></pre><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 />
===Something about the Internal GUI===<br />
Navit supports a "always center on vehicle" option. <br />
<br />
To activate this add<br />
follow="3"<br />
to the vehicle tag in navit.xml. The "3" causes to give the gui time to do something between the repaints (drag the map or browse the menu). When its set to "1" navit does nothing more than repainting the map continuously.<br />
<br />
== News ==<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 > Destination ===<br />
The Route > 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 "export LANG=fr_FR.UTF-8" 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 "testing" repo does not require "dotconf"<br />
<br />
* change the speech tag in navit.xml:<br />
<speech type="cmdline" data="spd-say '%s'" /><br />
<br />
or "spd-say -l fr '%s'" for using the French voice for example.<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 <code>.navit.bin.zip</code> version of the map. You'll have to exatract the <code>.bin</code> file from the ZIP archive before using it with Navit.<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 <minimum latitude> <maximum latitude> <minimum longitude> <maximum longitude><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 />
<pre><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 < maxLat:<br />
nextLat = min(currLat + 0.1, maxLat)<br />
<br />
currLon = minLon<br />
while currLon < 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 />
</pre><br />
<br />
<onlyinclude><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 />
</onlyinclude><br />
<br />
[[Category:GPS Applications]]</div>Supercheetahhttp://openmoko.org/wiki/DistributionsDistributions2008-12-19T08:52:17Z<p>Supercheetah: /* Others / unreleased */ grammar</p>
<hr />
<div>{{Languages|Distributions}}<br />
<br />
{|align=right<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 with more or less user applications. You can install any of them on your phone or even have a multiboot system with two distributions installed.<br />
<br />
While the Openmoko distributions will run on [[Supported devices|other mobile devices]] too, some other software distributions will also run on the Openmoko Inc. phones (see below).<br />
<br />
For downloads see [[Download]], for installation instructions see [[Flashing the Neo FreeRunner]].<br />
<br />
=== Which distribution should I use ?===<br />
* Most new users find [[FDOM]] the most comprehensive and functional distribution.<br />
* If you want "just a phone", try [[Qtopia]].<br />
* 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).<br />
* [[SHR]], [[Debian]], [[Gentoo]] and [[Android]] are for people who do not need to ask which distribution they should use.<br />
* Tracking the "base image" by updating daily from testing/unstable is a different game either.<br />
<br />
===Status as of November 9th, 2008 ===<br />
* The phones ship with [[Om 2007.2]]. It is not supported by Openmoko Inc. anymore. But community developpers continue to work on its phone stack in the [[SHR]] project.<br />
* The branch currently supported by Openmoko Inc. is [[Om 2008.9 Update]], which is a minor upgrade of [[Om 2008.8]] (formerly named ASU). Based on that, the community made the [[FDOM]] distribution by adding lots of fixes and applications to it.<br />
* The trunk tip is a "base image" on which the next major release should be based. This next release can be previewed by installing milestones of the [[FSO]] - Free Smartphone.Org project. The [[Debian]] packaging team also track that branch.<br />
* The FreeRunner is a reference platform for TrollTech's Qt Extended (formerly [[Qtopia]]) distribution.<br />
* The Android port is work-in-progress.<br />
<br />
{| class="wikitable" style="float:right;width:200px;background-color:#FF6600;text-align:center;border-collapse:collapse;font-weight:bold"<br />
|<font color=white>Distributions</font><br />
|-<br />
! style='background-color:#333333;color:#FFFFFF'|<br />
<div align=left><br />
* <font color='#BBBBBB'>Openmoko (official)</font><br />
** [[Om 2008.9 Update]]<br />
** [[Om 2008.8]]<br />
** [[Om 2007.2]]<br />
** [[OpenmokoFramework|FSO]]<br />
* <font color='#BBBBBB'>Community</font><br />
** [[SHR]]<br />
** [[FDOM]]<br />
* <font color='#BBBBBB'>Other</font><br />
** [[Qtopia]]<br />
** [[Debian]]<br />
** [[Gentoo]]<br />
** [[Android]]<br />
** [[Hackable:1]]<br />
</div><br />
|-<br />
|}<br />
<br />
=== Warnings ===<br />
<br />
* Stable in the FreeRunner world does not mean the same thing as stable in 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 />
= Openmoko Inc. driven release targets =<br />
<br />
These different 'release targets' are built out of different branches of the [[OpenEmbedded]] metadistribution source tree.<br />
<br />
=== Om 2008.9 ===<br />
<br />
The 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 ===<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. 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 ===<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 Milestone IV ===<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. Openmoko Framework Image milestone IV was released on November 11th, 2008 and named 'Homework'. People report that despite its infancy, the phone server part in FSO is already more solid than anywhere else. The kernel under it is a Linux 2.6.24 with modules packaged separately. 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).<br />
<br />
{{Main|FSO}}<br />
<br />
= Openmoko Community driven release targets =<br />
<br />
=== SHR - Stable Hybrid Release ===<br />
<br />
SHR is a community driven distribution. It contains some basic GTK+ based applications which make use of the FSO. There currently is a EFL (with elementary) dialer, messages and contacts application programmed in C. As of November 9th, 2008, 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 />
The Qt Extended distribution was formerly known as Qtopia up to version 4.3.x included. It comes from [http://www.trolltech.com Trolltech], a Nokia company, the makers of the Qt cross-platform application framework. This distribution aims to provide a ready-to-use image for Openmoko devices. It features a noticeably robust telephony stack. Recent release 4.4.2 also sports a webkit-based web browser and Gtalk support.<br />
<br />
{{Main|Qtopia / Qt Extended on FreeRunner}}<br />
<br />
=== Debian ===<br />
<br />
Debian is "the universal operating system". It comes with thousands and thousands of packages (most of them designed for desktops or servers so far). So in the words of Joachim "nomeata" 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 />
<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 />
Android is a mobile phone platform by Google, and later the Open Handset Alliance (OHA). Openmoko is fully supporting Android running on the Freerunner. Details along with images are being constructed at the moment. Visit the user web page for [http://wiki.openmoko.org/wiki/User:Seanmcneil3 Sean McNeil] for further details. And you can download kernel and image [http://people.openmoko.org/sean_mcneil/ here].<br />
<br />
{{Main|Android}}<br />
<br />
<br />
=== Hackable:1===<br />
Hackable1 is a community distribution for hackable devices like the Neo Freerunner. It is based on Debian and implements the GNOME mobile platform. <br />
{{Main|Hackable:1}}<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 "Nightly Build" 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. Mickey Lauer used most of the technics & architecture, library & language choices of pyneo in fso. ''Status: still active, ask around on #neo1973-germany ''<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 "Foundation" & "AppKit". 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="wikitable" border="1" cellpadding="5" cellspacing="0" width=100%<br />
! width=10%| !! width=9%|Om 2008.9 !! width=9%|Om 2008.8 !! width=9%|Om 2007.2 !! width=9%|FSO !! width=9%|SHR !! width=9%|FDOM !! width=9%|Qt Extended !! width=9%|Debian !! width=9%|Gentoo !! width=9%|Android<br />
|-<br />
| GTA01 || {{No}} || ?? || ?? || ?? || {{Yes}} || ?? || {{Yes}} || {{Yes}} || ?? || ??<br />
|-<br />
| GTA02 || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}}<br />
|-<br />
|}<br />
<br />
=== Connectivity ===<br />
{|class="wikitable" border="1" cellpadding="5" cellspacing="0" width=100%<br />
! width=10%| !! width=9%|Om 2008.9 !! width=9%|Om 2008.8 !! width=9%|Om 2007.2 !! width=9%|FSO !! width=9%|SHR !! width=9%|FDOM !! width=9%|Qt Extended !! width=9%|Debian !! width=9%|Gentoo !! width=9%|Android<br />
|-<br />
| Telephony || {{Yes}} || {{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 || Not through UI || {{Yes}} || {{Yes}} || {{Yes}} (1) || ?? || {{Yes}}<br />
|-<br />
| [[WiFi]] || {{Yes}} || {{Yes}} (*) || {{Yes}} || Not through UI || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || ?? || {{Yes}}<br />
|-<br />
| VoIP || ?? || ?? || ?? || ?? || ?? || {{Yes}} || {{Yes}} (1) || {{Yes}} || ?? || {{no}}<br />
|-<br />
| Bluetooth || ?? || {{Yes}} || {{Yes}} || {{No}} || ?? || {{Yes}} || {{Yes}} || {{Yes}} || ?? || {{Yes}}<br />
|-<br />
| GPS (1) || ?? || {{Yes}} (1) || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} (1) || ?? || {{Yes}}<br />
|-<br />
|}<br />
<br />
=== Power ===<br />
{|class="wikitable" border="1" cellpadding="5" cellspacing="0" width=100%<br />
! width=10%| !! width=9%|Om 2008.9 !! width=9%|Om 2008.8 !! width=9%|Om 2007.2 !! width=9%|FSO !! width=9%|SHR !! width=9%|FDOM !! width=9%|Qt Extended !! width=9%|Debian !! width=9%|Gentoo !! width=9%|Android<br />
|-<br />
| Suspend || ?? || ?? || ?? || ?? || {{Yes}} || {{Yes}} || {{Yes}} || ?? || ?? || ??<br />
|-<br />
| Resumes on Event || ?? || ?? || ?? || ?? || ?? || {{Yes}} || {{No}} || ?? || ?? || ??<br />
|-<br />
| Functions after Resume || ?? || ?? || ?? || ?? || {{Yes}} || {{No}} || {{No}} ||?? || ?? || ??<br />
|-<br />
|}<br />
<br />
=== User Interaction ===<br />
{|class="wikitable" border="1" cellpadding="5" cellspacing="0" width=100%<br />
! width=10%| !! width=9%|Om 2008.9 !! width=9%|Om2008.8 !! width=9%|2007.2 !! width=9%|FSO !! width=9%|SHR !! width=9%|FDOM !! width=9%|Qt Extended !! width=9%|Debian !! width=9%|Gentoo !! width=9%|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}}<br />
|-<br />
| Accelerometer || {{Yes}} [[Rotate|(1)]][[Gestures|(1)]] || {{Yes}} [[Gestures|(1)]] || {{No}} || {{No}} || {{No}} || {{Yes}} || {{No}} || {{Yes}} || ?? || {{Yes}}<br />
|-<br />
|}<br />
<br />
=== Applications ===<br />
{|class="wikitable" border="1" cellpadding="5" cellspacing="0" width=100%<br />
! width=10%| !! width=9%|Om 2008.9 !! width=9%|Om2008.8 !! width=9%|2007.2 !! width=9%|FSO !! width=9%|SHR !! width=9%|FDOM !! width=9%|Qt Extended !! width=9%|Debian !! width=9%|Gentoo !! width=9%|Android<br />
|-<br />
| Terminal || ?? || {{Yes}} (1) || Basic (2) || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{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}} (1) || || ??<br />
|-<br />
| Media Player || ?? || {{Yes}} (1) || {{Yes}} || ? || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} (1) || ?? || {{Yes}}<br />
|-<br />
|}<br />
<br />
=== Toolkits / Runtimes ===<br />
{|class="wikitable" border="1" cellpadding="5" cellspacing="0"<br />
! width=10%| !! width=9%|Om 2008.9 !! width=9%|Om2008.8 !! width=9%|2007.2 !! width=9%|FSO !! width=9%|SHR !! width=9%|FDOM !! width=9%|Qt Extended !! width=9%|Debian !! width=9%|Gentoo !! width=9%|Android<br />
|-<br />
| GTK+ || ?? || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{No}} || {{Yes}} || ?? || ??<br />
|-<br />
| Qt/Qt Extended || ?? || {{Yes}} || {{No}} || {{Yes}} ? || {{Yes}}? || {{Yes}} || {{Yes}} || {{Yes}} || ?? || ??<br />
|-<br />
| Middleware || ?? || qtopia-x11 || gsmd/neod || FSO || FSO || qtopia-x11 || Qt Extended || 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}} || ?? || ??<br />
|-<br />
| [[Mono]] || ?? || {{Yes}} (1) || {{Yes}} (1) || ?? || {{no}} || ?? || ?? || {{Yes}} (1) || ?? || ??<br />
|}<br />
<br />
=== Images ===<br />
Latest and stable combinations for Neo FreeRunner gta02<br />
{|class="wikitable" border="1" cellpadding="5" cellspacing="0"<br />
| || OM || FDOM || Qt Extended || Android<br />
|-<br />
| current bootloader || [[U-boot|U-Boot]] from [http://downloads.openmoko.org/daily/ 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/daily/ 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/daily/ 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]] 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]] from [http://wiki.openmoko.org/wiki/User:Seanmcneil3 McNiel] version [http://people.openmoko.org/sean_mcneil/uImage-android 2.6.26-android]<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] || [[Qtopia_/_Qt_Extended_on_FreeRunner|QtExtended]] from [http://qtextended.org/modules/mydownloads/viewcat.php?cid=6 TrollTech] latest qtextended-gta02-flash.tgz or from [http://other.lastnetwork.net/OpenMoko/ Hypnotize] latest qtextended-gta02-rootfs-release-working.jffs2 || [[Android]] from [http://wiki.openmoko.org/wiki/User:Seanmcneil3 McNiel] version [http://people.openmoko.org/sean_mcneil/androidfs.jffs2 android]<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 "[http://www.vanille-media.de/site/index.php/2008/06/28/gtk-asu-fso-tmtla/ GTK, ASU, FSO, TMTLA!]" describes the differences between distributions 2007.2, ASU and FSO.<br />
<br />
[[Category:Distributions|*]]</div>Supercheetahhttp://openmoko.org/wiki/NavitNavit2008-10-29T17:57:30Z<p>Supercheetah: /* Install Navit */</p>
<hr />
<div>{{Application|Navit}}<br />
<br />
As described on the [http://navit.sourceforge.net/ Navit home page],<br />
<br />
"Navit is a car navigation system with routing engine.<br />
<br />
It's 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."<br />
<br />
Some people say Navit is also a good choice for pedestrian and bicycle navigation.<br />
<br />
[[Image:Screenshot-3.png|thumb|Navit-0.0.4+cvs]]<br />
<br />
== Acknowledgment ==<br />
<br />
Thanks to [[User:Alessandro | Alessandro]], stefan_schmidt, cp15 and all Navit developers I have done a small ("not really working") 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 />
I got navit set up and configured to the point where it follows me on the map. It doesn't have street names or any other information, just the map and the cursor showing the location and direction. Here's what I did:<br />
* Install navit ipkg on NEO (because of a bug in opkg it's necessary to wget then install, instead of pointing opkg at the URL):<br />
<pre>wget http://www.acoveo.org/navit_0.1.0+svnrev1255-r0_armv4t.ipk<br />
opkg install --force-depends navit_0.1.0+svnrev1255-r0_armv4t.ipk</pre><br />
This package includes a patch to navit which improves map panning speeds.<br />
* Or roll your own from svn using the toolchain (having checked out trunk in the navit directory, and assuming you have written navit_control):<br />
<pre>. /usr/local/openmoko/arm/setup-env<br />
om-conf navit --disable-samplemap<br />
om-make-ipkg navit navit_control</pre><br />
You may want to apply the map panning patch from acoveo: http://www.acoveo.org/openmoko/font_scaling_patch.diff<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.6 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 up-to-date maps already prepared, e.g.:<br />
<br />
<pre>wget -O germany.bin http://maps.navit-project.org/api/map/?bbox=5.185546875,46.845703125,15.46875,55.634765625</pre><br />
<br />
** Here's an example of what I did to get the maps for the area around Seattle, Wa where I live:<br />
*** figured out map coordinates using http://informationfreeway.org/?lat=47.520270037501454&lon=-122.20130713167327&zoom=9&layers=B000F000<br />
*** Downloaded 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 />
<pre>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</pre><br />
<br />
*** Made a navit binary map file using the osm2navit binary that comes with the navit package on my linux box (it is also installing to the target from the .ipk)<br />
<br />
<pre>cat *.osm | osm2navit --dedupe-ways mymap.bin</pre><br />
<br />
===Copy the map to the NEO===<br />
scp mymap.bin root@neo:/home/root/card/map<br />
*** Change the navit.xml file on the NEO to use the new map<br />
<br />
<pre>cp /usr/share/navit/navit.xml ~/.navit/navit.xml<br />
vi ~/.navit/navit.xml<br />
<map type="binfile" enabled="yes" data="/home/root/card/map/mymap.bin" /></pre><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 />
== News ==<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 > Destination ===<br />
The Route > 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 "export LANG=fr_FR.UTF-8" 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 "testing" repo does not require "dotconf"<br />
<br />
* change the speech tag in navit.xml:<br />
<speech type="cmdline" data="spd-say '%s'" /><br />
<br />
or "spd-say -l fr '%s'" for using the French voice for example.<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 <code>.navit.bin.zip</code> version of the map. You'll have to exatract the <code>.bin</code> file from the ZIP archive before using it with Navit.<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 <minimum latitude> <maximum latitude> <minimum longitude> <maximum longitude><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 />
<pre><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 < maxLat:<br />
nextLat = min(currLat + 0.1, maxLat)<br />
<br />
currLon = minLon<br />
while currLon < 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 />
</pre><br />
<br />
<onlyinclude><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 />
</onlyinclude><br />
<br />
[[Category:GPS Applications]]</div>Supercheetahhttp://openmoko.org/wiki/NavitNavit2008-10-29T17:56:20Z<p>Supercheetah: /* Copy the map to the NEO */</p>
<hr />
<div>{{Application|Navit}}<br />
<br />
As described on the [http://navit.sourceforge.net/ Navit home page],<br />
<br />
"Navit is a car navigation system with routing engine.<br />
<br />
It's 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."<br />
<br />
Some people say Navit is also a good choice for pedestrian and bicycle navigation.<br />
<br />
[[Image:Screenshot-3.png|thumb|Navit-0.0.4+cvs]]<br />
<br />
== Acknowledgment ==<br />
<br />
Thanks to [[User:Alessandro | Alessandro]], stefan_schmidt, cp15 and all Navit developers I have done a small ("not really working") 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 />
I got navit set up and configured to the point where it follows me on the map. It doesn't have street names or any other information, just the map and the cursor showing the location and direction. Here's what I did:<br />
* Install navit ipkg on NEO (because of a bug in opkg it's necessary to wget then install, instead of pointing opkg at the URL):<br />
wget http://www.acoveo.org/navit_0.1.0+svnrev1255-r0_armv4t.ipk<br />
opkg install --force-depends navit_0.1.0+svnrev1255-r0_armv4t.ipk<br />
This package includes a patch to navit which improves map panning speeds.<br />
* Or roll your own from svn using the toolchain (having checked out trunk in the navit directory, and assuming you have written navit_control):<br />
. /usr/local/openmoko/arm/setup-env<br />
om-conf navit --disable-samplemap<br />
om-make-ipkg navit navit_control<br />
You may want to apply the map panning patch from acoveo: http://www.acoveo.org/openmoko/font_scaling_patch.diff<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.6 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 up-to-date maps already prepared, e.g.:<br />
<br />
<pre>wget -O germany.bin http://maps.navit-project.org/api/map/?bbox=5.185546875,46.845703125,15.46875,55.634765625</pre><br />
<br />
** Here's an example of what I did to get the maps for the area around Seattle, Wa where I live:<br />
*** figured out map coordinates using http://informationfreeway.org/?lat=47.520270037501454&lon=-122.20130713167327&zoom=9&layers=B000F000<br />
*** Downloaded 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 />
<pre>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</pre><br />
<br />
*** Made a navit binary map file using the osm2navit binary that comes with the navit package on my linux box (it is also installing to the target from the .ipk)<br />
<br />
<pre>cat *.osm | osm2navit --dedupe-ways mymap.bin</pre><br />
<br />
===Copy the map to the NEO===<br />
scp mymap.bin root@neo:/home/root/card/map<br />
*** Change the navit.xml file on the NEO to use the new map<br />
<br />
<pre>cp /usr/share/navit/navit.xml ~/.navit/navit.xml<br />
vi ~/.navit/navit.xml<br />
<map type="binfile" enabled="yes" data="/home/root/card/map/mymap.bin" /></pre><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 />
== News ==<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 > Destination ===<br />
The Route > 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 "export LANG=fr_FR.UTF-8" 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 "testing" repo does not require "dotconf"<br />
<br />
* change the speech tag in navit.xml:<br />
<speech type="cmdline" data="spd-say '%s'" /><br />
<br />
or "spd-say -l fr '%s'" for using the French voice for example.<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 <code>.navit.bin.zip</code> version of the map. You'll have to exatract the <code>.bin</code> file from the ZIP archive before using it with Navit.<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 <minimum latitude> <maximum latitude> <minimum longitude> <maximum longitude><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 />
<pre><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 < maxLat:<br />
nextLat = min(currLat + 0.1, maxLat)<br />
<br />
currLon = minLon<br />
while currLon < 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 />
</pre><br />
<br />
<onlyinclude><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 />
</onlyinclude><br />
<br />
[[Category:GPS Applications]]</div>Supercheetahhttp://openmoko.org/wiki/NavitNavit2008-10-29T17:55:42Z<p>Supercheetah: /* From the command line */</p>
<hr />
<div>{{Application|Navit}}<br />
<br />
As described on the [http://navit.sourceforge.net/ Navit home page],<br />
<br />
"Navit is a car navigation system with routing engine.<br />
<br />
It's 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."<br />
<br />
Some people say Navit is also a good choice for pedestrian and bicycle navigation.<br />
<br />
[[Image:Screenshot-3.png|thumb|Navit-0.0.4+cvs]]<br />
<br />
== Acknowledgment ==<br />
<br />
Thanks to [[User:Alessandro | Alessandro]], stefan_schmidt, cp15 and all Navit developers I have done a small ("not really working") 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 />
I got navit set up and configured to the point where it follows me on the map. It doesn't have street names or any other information, just the map and the cursor showing the location and direction. Here's what I did:<br />
* Install navit ipkg on NEO (because of a bug in opkg it's necessary to wget then install, instead of pointing opkg at the URL):<br />
wget http://www.acoveo.org/navit_0.1.0+svnrev1255-r0_armv4t.ipk<br />
opkg install --force-depends navit_0.1.0+svnrev1255-r0_armv4t.ipk<br />
This package includes a patch to navit which improves map panning speeds.<br />
* Or roll your own from svn using the toolchain (having checked out trunk in the navit directory, and assuming you have written navit_control):<br />
. /usr/local/openmoko/arm/setup-env<br />
om-conf navit --disable-samplemap<br />
om-make-ipkg navit navit_control<br />
You may want to apply the map panning patch from acoveo: http://www.acoveo.org/openmoko/font_scaling_patch.diff<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.6 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 up-to-date maps already prepared, e.g.:<br />
<br />
<pre>wget -O germany.bin http://maps.navit-project.org/api/map/?bbox=5.185546875,46.845703125,15.46875,55.634765625</pre><br />
<br />
** Here's an example of what I did to get the maps for the area around Seattle, Wa where I live:<br />
*** figured out map coordinates using http://informationfreeway.org/?lat=47.520270037501454&lon=-122.20130713167327&zoom=9&layers=B000F000<br />
*** Downloaded 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 />
<pre>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</pre><br />
<br />
*** Made a navit binary map file using the osm2navit binary that comes with the navit package on my linux box (it is also installing to the target from the .ipk)<br />
<br />
<pre>cat *.osm | osm2navit --dedupe-ways mymap.bin</pre><br />
<br />
===Copy the map to the NEO===<br />
scp mymap.bin root@neo:/home/root/card/map<br />
*** Change the navit.xml file on the NEO to use the new map<br />
cp /usr/share/navit/navit.xml ~/.navit/navit.xml<br />
vi ~/.navit/navit.xml<br />
<map type="binfile" enabled="yes" data="/home/root/card/map/mymap.bin" /><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 />
== News ==<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 > Destination ===<br />
The Route > 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 "export LANG=fr_FR.UTF-8" 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 "testing" repo does not require "dotconf"<br />
<br />
* change the speech tag in navit.xml:<br />
<speech type="cmdline" data="spd-say '%s'" /><br />
<br />
or "spd-say -l fr '%s'" for using the French voice for example.<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 <code>.navit.bin.zip</code> version of the map. You'll have to exatract the <code>.bin</code> file from the ZIP archive before using it with Navit.<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 <minimum latitude> <maximum latitude> <minimum longitude> <maximum longitude><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 />
<pre><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 < maxLat:<br />
nextLat = min(currLat + 0.1, maxLat)<br />
<br />
currLon = minLon<br />
while currLon < 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 />
</pre><br />
<br />
<onlyinclude><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 />
</onlyinclude><br />
<br />
[[Category:GPS Applications]]</div>Supercheetahhttp://openmoko.org/wiki/NavitNavit2008-10-28T09:43:23Z<p>Supercheetah: /* Copied the map to the NEO */</p>
<hr />
<div>{{Application|Navit}}<br />
<br />
As described on the [http://navit.sourceforge.net/ Navit home page],<br />
<br />
"Navit is a car navigation system with routing engine.<br />
<br />
It's 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."<br />
<br />
Some people say Navit is also a good choice for pedestrian and bicycle navigation.<br />
<br />
[[Image:Screenshot-3.png|thumb|Navit-0.0.4+cvs]]<br />
<br />
== Acknowledgment ==<br />
<br />
Thanks to [[User:Alessandro | Alessandro]], stefan_schmidt, cp15 and all Navit developers I have done a small ("not really working") 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 />
I got navit set up and configured to the point where it follows me on the map. It doesn't have street names or any other information, just the map and the cursor showing the location and direction. Here's what I did:<br />
* Install navit ipkg on NEO (because of a bug in opkg it's necessary to wget then install, instead of pointing opkg at the URL):<br />
wget http://www.acoveo.org/navit_0.1.0+svnrev1255-r0_armv4t.ipk<br />
opkg install --force-depends navit_0.1.0+svnrev1255-r0_armv4t.ipk<br />
This package includes a patch to navit which improves map panning speeds.<br />
* Or roll your own from svn using the toolchain (having checked out trunk in the navit directory, and assuming you have written navit_control):<br />
. /usr/local/openmoko/arm/setup-env<br />
om-conf navit --disable-samplemap<br />
om-make-ipkg navit navit_control<br />
You may want to apply the map panning patch from acoveo: http://www.acoveo.org/openmoko/font_scaling_patch.diff<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.6 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 up-to-date maps already prepared, e.g.:<br />
wget -O germany.bin http://maps.navit-project.org/api/map/?bbox=5.185546875,46.845703125,15.46875,55.634765625<br />
** Here's an example of what I did to get the maps for the area around Seattle, Wa where I live:<br />
*** figured out map coordinates using http://informationfreeway.org/?lat=47.520270037501454&lon=-122.20130713167327&zoom=9&layers=B000F000<br />
*** Downloaded 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 />
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<br />
*** Made a navit binary map file using the osm2navit binary that comes with the navit package on my linux box (it is also installing to the target from the .ipk)<br />
cat *.osm | osm2navit --dedupe-ways mymap.bin<br />
<br />
===Copy the map to the NEO===<br />
scp mymap.bin root@neo:/home/root/card/map<br />
*** Change the navit.xml file on the NEO to use the new map<br />
cp /usr/share/navit/navit.xml ~/.navit/navit.xml<br />
vi ~/.navit/navit.xml<br />
<map type="binfile" enabled="yes" data="/home/root/card/map/mymap.bin" /><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 />
== News ==<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 > Destination ===<br />
The Route > 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 "export LANG=fr_FR.UTF-8" 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 "testing" repo does not require "dotconf"<br />
<br />
* change the speech tag in navit.xml:<br />
<speech type="cmdline" data="spd-say '%s'" /><br />
<br />
or "spd-say -l fr '%s'" for using the French voice for example.<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 <code>.navit.bin.zip</code> version of the map. You'll have to exatract the <code>.bin</code> file from the ZIP archive before using it with Navit.<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 <minimum latitude> <maximum latitude> <minimum longitude> <maximum longitude><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 />
<pre><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 < maxLat:<br />
nextLat = min(currLat + 0.1, maxLat)<br />
<br />
currLon = minLon<br />
while currLon < 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 />
</pre><br />
<br />
<onlyinclude><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 />
</onlyinclude><br />
<br />
[[Category:GPS Applications]]</div>Supercheetahhttp://openmoko.org/wiki/NavitNavit2008-10-28T09:42:33Z<p>Supercheetah: </p>
<hr />
<div>{{Application|Navit}}<br />
<br />
As described on the [http://navit.sourceforge.net/ Navit home page],<br />
<br />
"Navit is a car navigation system with routing engine.<br />
<br />
It's 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."<br />
<br />
Some people say Navit is also a good choice for pedestrian and bicycle navigation.<br />
<br />
[[Image:Screenshot-3.png|thumb|Navit-0.0.4+cvs]]<br />
<br />
== Acknowledgment ==<br />
<br />
Thanks to [[User:Alessandro | Alessandro]], stefan_schmidt, cp15 and all Navit developers I have done a small ("not really working") 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 />
I got navit set up and configured to the point where it follows me on the map. It doesn't have street names or any other information, just the map and the cursor showing the location and direction. Here's what I did:<br />
* Install navit ipkg on NEO (because of a bug in opkg it's necessary to wget then install, instead of pointing opkg at the URL):<br />
wget http://www.acoveo.org/navit_0.1.0+svnrev1255-r0_armv4t.ipk<br />
opkg install --force-depends navit_0.1.0+svnrev1255-r0_armv4t.ipk<br />
This package includes a patch to navit which improves map panning speeds.<br />
* Or roll your own from svn using the toolchain (having checked out trunk in the navit directory, and assuming you have written navit_control):<br />
. /usr/local/openmoko/arm/setup-env<br />
om-conf navit --disable-samplemap<br />
om-make-ipkg navit navit_control<br />
You may want to apply the map panning patch from acoveo: http://www.acoveo.org/openmoko/font_scaling_patch.diff<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.6 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 up-to-date maps already prepared, e.g.:<br />
wget -O germany.bin http://maps.navit-project.org/api/map/?bbox=5.185546875,46.845703125,15.46875,55.634765625<br />
** Here's an example of what I did to get the maps for the area around Seattle, Wa where I live:<br />
*** figured out map coordinates using http://informationfreeway.org/?lat=47.520270037501454&lon=-122.20130713167327&zoom=9&layers=B000F000<br />
*** Downloaded 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 />
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<br />
*** Made a navit binary map file using the osm2navit binary that comes with the navit package on my linux box (it is also installing to the target from the .ipk)<br />
cat *.osm | osm2navit --dedupe-ways mymap.bin<br />
<br />
===Copied the map to the NEO===<br />
scp mymap.bin root@neo:/home/root/card/map<br />
*** Change the navit.xml file on the NEO to use the new map<br />
cp /usr/share/navit/navit.xml ~/.navit/navit.xml<br />
vi ~/.navit/navit.xml<br />
<map type="binfile" enabled="yes" data="/home/root/card/map/mymap.bin" /><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 />
== News ==<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 > Destination ===<br />
The Route > 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 "export LANG=fr_FR.UTF-8" 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 "testing" repo does not require "dotconf"<br />
<br />
* change the speech tag in navit.xml:<br />
<speech type="cmdline" data="spd-say '%s'" /><br />
<br />
or "spd-say -l fr '%s'" for using the French voice for example.<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 <code>.navit.bin.zip</code> version of the map. You'll have to exatract the <code>.bin</code> file from the ZIP archive before using it with Navit.<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 <minimum latitude> <maximum latitude> <minimum longitude> <maximum longitude><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 />
<pre><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 < maxLat:<br />
nextLat = min(currLat + 0.1, maxLat)<br />
<br />
currLon = minLon<br />
while currLon < 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 />
</pre><br />
<br />
<onlyinclude><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 />
</onlyinclude><br />
<br />
[[Category:GPS Applications]]</div>Supercheetahhttp://openmoko.org/wiki/AndroidAndroid2008-10-23T07:33:39Z<p>Supercheetah: /* Communities */ URL typo</p>
<hr />
<div>= Introduction =<br />
This page is dedicated to porting the [http://www.android.com Android OS] to the [[Neo 1973]] and [[Neo FreeRunner]] handsets. Since the Android OS was [http://source.android.com/posts/opensource publically released] on 20081021, [http://benno.id.au/blog/2007/11/21/android-neo1973 work] [http://perpetual-notion.blogspot.com/search/label/android is] [http://groups.google.com/group/android-porting currently underway] to port Android to the [[Neo1973 Hardware|Neo 1973]] and [[Neo_FreeRunner_GTA02_Hardware|FreeRunner]] handsets.<br />
<br />
== Goals ==<br />
# Systematically introduce patches for ARMv4T in the Android codebase<br />
# Provide Neo1973 and Neo FreeRunner hardware-dependent patches in the Android codebase, leveraging the work already done by the Openmoko developers, without forcing Android-specific changes upstream<br />
# Provide a useable Android filesystem and kernel on the [[Distributions]] page that conform to current Openmoko installation routines<br />
<br />
== Early Attempts ==<br />
As [http://benno.id.au Ben Leslie] had pointed out on his [http://benno.id.au/blog/2007/11/21/android-neo1973 blog] far before the source code was released, [http://www.android.com Android] was originally designed to work with the ARMv5TE [http://en.wikipedia.org/wiki/Instruction_set_architecture instruction set architecture] (ISA), which allows for [http://en.wikipedia.org/wiki/ARM_architecture#DSP_Enhancement_Instructions DSP enhanced instructions]. Contrary to the ARMv5TE ISA, the Neo1973 and FreeRunner handsets both feature an arm920t core, which comply to the ARMv4T ISA.<br />
<br />
Before the source code was released, kernel trap handlers were implemented to 'emulate' the ARMv5TE ISA. Although the results worked in many cases, trapping is costly and performance suffered as a result. Moreover, without explicitly knowing which conditions were set by various instructions, such as Thumb Mode execution, the result became nondeterministic.<br />
<br />
== Current State ==<br />
<br />
With the release of the Android [http://source.android.com source code], the Open Source community is no longer limited to dealing with a binary-only product. The Open Handset Alliance (OHA) has let their source code become their product for everyone enrich and benefit from.<br />
<br />
Currently, porting efforts are underway in many circles. Patches should be submitted via the [http://source.android.com/submit-patches official Android channels].<br />
<br />
= How to Help =<br />
<br />
== Getting Started ==<br />
<br />
You can start by following the instructions to download and build the Android source from scratch. Please see [http://source.android.com/download http://source.android.com/download] and follow the instructions for your architecture.<br />
<br />
== Publicize Your Efforts ==<br />
<br />
It's generally a good idea to make your efforts known via wiki systems, public mailing lists, forums, and publically open version control systems. <br />
<br />
Always take credit for your work but please don't do it in the form of comments. Some code is already hard enough to read without comments polluting the text. The best thing to do is to create a patch and put a header with your information at the top. Collaboration systems such as git might already do this for you (??).<br />
<br />
If you create something new and have the ability to designate the license for it, please consider license compatibility issues.<br />
<br />
== Porting Strategy ==<br />
<br />
* Analysis and leverage of the existing build system<br />
** buid/core/combo/arm-linux.mk<br />
*** -D__ARCH_ARM_4__ -D__ARCH_ARM_4T__<br />
*** -march=armv4t -mcpu=arm920t<br />
** fix various static references to 'armv5'<br />
* Isolating ARMv5TE ISA dependent code<br />
** e.g. grep -n -R -i "${armv5te_isa_pattern}" ~/android<br />
* Abstracting<br />
** ( C/C++ ) Use inlined functions / #ifdef statments to implement functions in a portable manner<br />
** ( ASM ) #ifdef statements ?<br />
<br />
For each ARMv5TE instruction, one could potentially<br />
* Implement the instruction using general registers instead of DSP calls (i.e. eabi / softfloat)<br />
* If that is a) nondeterministic, or b) slow, then sections of code need to be analyzed and hand-optimized for the ARMv4T isa<br />
<br />
== Updates ==<br />
<br />
Feel free to post a link to any of your work in the list below<br />
<br />
* 20081021 [[User:Cfriedt]] Android -> FreeRunner updates on my [http://perpetual-notion.blogspot.com/search/label/android blog]<br />
* 20081022 [[User:Cfriedt]] I was able to 'trivially' compile all of the Android source code without error for the ARMv4T architecture by removing v5TE instructions. Although it will definitely not run anything predictably, at least now that I know the build system will work with a few simple substitutions in build/core/combo/arm-linux.mk. At this point I am able to go ahead and re-implement v5TE instructions as v4T instruction sequences instead (or re-implement entire sections of assembly with hand-optimized v4T instructions).<br />
<br />
= Important Links =<br />
(Please Update Me)<br />
<br />
== Documentation ==<br />
* [http://source.android.com/documentation Android Documentation]<br />
* [http://www.arm.com/products/CPUs/cpu-arch-DSP.html DSP Enhanced Instruction Set],[http://www.arm.com/pdfs/ARM-DSP.pdf White Paper]<br />
* [http://www.arm.com/documentation/ ARM Documentation], (keywords: armv4t, armv5t, armv5te)<br />
<br />
== Hardware Reference ==<br />
<br />
* [[Neo1973 Hardware]]<br />
* [[Neo FreeRunner GTA02 Hardware]]<br />
<br />
== Communities ==<br />
* [http://source.android.com/discuss Android Public Mailing Lists]<br />
* [http://forum.koolu.org/viewforum.php?f=10 Android on FreeRunner] at KoolU.com<br />
* [[Openmoko Local Groups]]<br />
* [[Openmoko:Community_Portal]]<br />
<br />
== Buy a Handset and Debug Board ==<br />
<br />
* [http://www.openmoko.com/distributors.html OpenMoko Store] - Worldwide distributors for FIC / OpenMoko handets<br />
* [http://www.koolu.com Koolu.com] - North American distributor of the OpenMoko, backed by [http://koolu.com/component/option,com_mojo/Itemid,225/ Jon "maddog" Hall], announced a port to be released in November 2008.<br />
* [http://us.direct.openmoko.com/collections/frontpage OpenMoko Direct] - [[Debug Board v3]]<br />
<br />
= References =<br />
<br />
= External Links =<br />
<br />
[[Category:Distributions]]</div>Supercheetahhttp://openmoko.org/wiki/Template_talk:YesTemplate talk:Yes2008-10-23T07:29:38Z<p>Supercheetah: New page: Sorry for the constant fixes. I couldn't figure out why it wasn't rendering properly. And then it hit me that I should probably use the onlyinclude tag. ~~~~</p>
<hr />
<div>Sorry for the constant fixes. I couldn't figure out why it wasn't rendering properly. And then it hit me that I should probably use the onlyinclude tag. [[User:Supercheetah|Supercheetah]] 07:29, 23 October 2008 (UTC)</div>Supercheetahhttp://openmoko.org/wiki/Template:NoTemplate:No2008-10-23T07:27:32Z<p>Supercheetah: </p>
<hr />
<div><onlyinclude>style="background:#FF7777;"|no</onlyinclude><br />
<br />
[[Category:Templates]]</div>Supercheetahhttp://openmoko.org/wiki/Template:YesTemplate:Yes2008-10-23T07:26:35Z<p>Supercheetah: </p>
<hr />
<div><onlyinclude>style="background:#77FF77;"|yes</onlyinclude><br />
<br />
[[Category:Templates]]</div>Supercheetahhttp://openmoko.org/wiki/Template:YesTemplate:Yes2008-10-23T07:25:09Z<p>Supercheetah: </p>
<hr />
<div><onlyinclude>style="background:#77FF77;"|yes</onlyinclude><br />
<noinclude><br />
[[Category:Templates]]<br />
</noinclude><br />
<br />
[[Category:Templates]]</div>Supercheetahhttp://openmoko.org/wiki/Template:YesTemplate:Yes2008-10-23T07:23:48Z<p>Supercheetah: </p>
<hr />
<div><onlyinclude>style="background:#77FF77;"|yes</onlyinclude><br />
<br />
[[Category:Templates]]</div>Supercheetahhttp://openmoko.org/wiki/Template:YesTemplate:Yes2008-10-23T07:21:10Z<p>Supercheetah: </p>
<hr />
<div><includeonly>style="background:#77FF77;"|yes</includeonly><br />
<br />
[[Category:Templates]]</div>Supercheetahhttp://openmoko.org/wiki/Template:YesTemplate:Yes2008-10-23T07:16:32Z<p>Supercheetah: </p>
<hr />
<div>style="background:#77FF77;"|yes<br />
<br />
[[Category:Templates]]</div>Supercheetahhttp://openmoko.org/wiki/Template:YesTemplate:Yes2008-10-23T07:15:18Z<p>Supercheetah: </p>
<hr />
<div>style="background:#77FF77;"|yes<br />
<br />
<noinclude><br />
Here sits the hidden<br />
<br />
<nowiki>[[Category:Templates]]</nowiki> link: ""<br />
</noinclude><br />
<br />
[[Category:Templates]]</div>Supercheetahhttp://openmoko.org/wiki/Template:YesTemplate:Yes2008-10-23T07:10:59Z<p>Supercheetah: </p>
<hr />
<div>style="background:#77FF77;"|yes<br />
<noinclude><br />
Here sits the hidden<br />
<br />
<nowiki>[[Category:Templates]]</nowiki> link: ""<br />
</noinclude><br />
<br />
[[Category:Templates]]</div>Supercheetahhttp://openmoko.org/wiki/Template:YesTemplate:Yes2008-10-23T07:07:08Z<p>Supercheetah: Trying to fix the styling issue still...</p>
<hr />
<div>style="background:#77FF77;"|yes<br />
<br />
[[Category:Templates]]</div>Supercheetahhttp://openmoko.org/wiki/Template:YesTemplate:Yes2008-10-23T07:03:48Z<p>Supercheetah: </p>
<hr />
<div><br />
style="background:#77FF77;"|yes<br />
<br />
<noinclude><br />
Here sits the hidden<br />
<br />
<br />
<br />
<nowiki>[[Category:Templates]]</nowiki> link: ""<br />
</noinclude><br />
<br />
[[Category:Templates]]</div>Supercheetahhttp://openmoko.org/wiki/Template:YesTemplate:Yes2008-10-23T07:02:39Z<p>Supercheetah: </p>
<hr />
<div>style="background:#77FF77;"|yes<br />
<br />
<noinclude><br />
Here sits the hidden<br />
<br />
<br />
<nowiki>[[Category:Templates]]</nowiki> link: ""<br />
</noinclude><br />
<br />
[[Category:Templates]]</div>Supercheetahhttp://openmoko.org/wiki/Template:YesTemplate:Yes2008-10-23T07:01:38Z<p>Supercheetah: Reversion to what it was before</p>
<hr />
<div>style="background:#77FF77;"|yes <br />
<br />
<noinclude><br />
Here sits the hidden<br />
<br />
<br />
<br />
<br />
<nowiki>[[Category:Templates]]</nowiki> link: ""<br />
</noinclude><br />
<br />
[[Category:Templates]]</div>Supercheetahhttp://openmoko.org/wiki/Template:YesTemplate:Yes2008-10-23T07:00:15Z<p>Supercheetah: Will this fix the rendering issues?</p>
<hr />
<div>style="background:#77FF77;"|yes<br />
<noinclude><br />
Here sits the hidden<br />
<br />
<br />
<br />
<br />
<nowiki>[[Category:Templates]]</nowiki> link: ""<br />
</noinclude><br />
<br />
[[Category:Templates]]</div>Supercheetahhttp://openmoko.org/wiki/Template:YesTemplate:Yes2008-10-23T06:59:39Z<p>Supercheetah: Undo revision 58061 by Supercheetah (Talk)</p>
<hr />
<div>style="background:#77FF77;"|yes<br />
<br />
<noinclude><br />
Here sits the hidden<br />
<br />
<br />
<br />
<nowiki>[[Category:Templates]]</nowiki> link: ""<br />
</noinclude><br />
<br />
[[Category:Templates]]</div>Supercheetahhttp://openmoko.org/wiki/Template:YesTemplate:Yes2008-10-23T06:59:09Z<p>Supercheetah: </p>
<hr />
<div>tyle="background:#77FF77;"|yes<br />
<noinclude><br />
Here sits the hidden<br />
<br />
<br />
<br />
<nowiki>[[Category:Templates]]</nowiki> link: ""<br />
</noinclude><br />
<br />
[[Category:Templates]]</div>Supercheetahhttp://openmoko.org/wiki/Template:YesTemplate:Yes2008-10-23T06:58:36Z<p>Supercheetah: Undo revision 58059 by Supercheetah (Talk)</p>
<hr />
<div>style="background:#77FF77;"|yes<br />
<br />
<noinclude><br />
Here sits the hidden<br />
<br />
<br />
<nowiki>[[Category:Templates]]</nowiki> link: ""<br />
</noinclude><br />
<br />
[[Category:Templates]]</div>Supercheetahhttp://openmoko.org/wiki/Template:YesTemplate:Yes2008-10-23T06:57:39Z<p>Supercheetah: Hopefully this will fix some of the rendering issues.</p>
<hr />
<div>style="background:#77FF77;"|yes<noinclude><br />
<br />
Here sits the hidden<br />
<br />
<br />
<nowiki>[[Category:Templates]]</nowiki> link: ""<br />
</noinclude><br />
<br />
[[Category:Templates]]</div>Supercheetahhttp://openmoko.org/wiki/Booting_the_Neo_FreeRunner_from_SD_via_U-BootBooting the Neo FreeRunner from SD via U-Boot2008-07-26T03:28:03Z<p>Supercheetah: Undo revision 42513 by Supercheetah (Talk) It needs further work.</p>
<hr />
<div>Here are the steps described to boot your system from an SD card. The SD card shares a bus with the GPU, so it may not perform as well, but it is another option.<br />
<br />
{| cellspacing="5" cellpadding="0" style="padding: 2%; margin:0em 0em 1em 0em; border:1px solid #F9D163; background:#FCE9B4; width:100%" <br />
| <br />
Some versions of u-boot (including the one shipped on the first batch of Freerunners) may not work properly for booting from SD card. Daily images on [http://buildhost.openmoko.org/daily/freerunner/ buildhost] with a timestamp of "20080723" or newer should be OK.<br />
<br />
Be careful when flashing a new u-boot to a Neo1973 as there is a risk of bricking your device. This is not a concern for a Freerunner as it contains a backup copy of u-boot in NOR Flash.<br />
|}<br />
<br />
<br />
== Change your kernel settings ==<br />
<br />
'''''Note:''''' Since [http://git.openmoko.org/?p=kernel.git;a=commit;h=642cbda5f3b7e7a61512426e1d30a41ab4691123| 2008-07-17] the kernel includes support for ext3 '''and ext2''' filesystems. ext2 is recommended because of the finite write life of flash storage. Prior to 2008-07-17, the kernel only came configured with support for ext3. You can check the available filesystems with <br />
<br />
less /proc/filesystems<br />
<br />
<br />
Kernel building is supposed to be done through OpenEmbedded. If you use the MokoMakefile open up $OMDIR/openmoko/trunk/oe/packages/linux/linux-gta01/defconfig-2.6.21.6-fic-gta01. If you are building OM-2007.2 open $OEDIR/openembedded/packages/linux/linux-openmoko/defconfig-2.6.22.5-fic-gta01.<br />
<br />
'''''Note:''''' That kernel version may change in future releases.<br />
<br />
Now find the line saying:<br />
<br />
CONFIG_MMC_S3C=m<br />
<br />
and change it to:<br />
<br />
CONFIG_MMC_S3C=y<br />
<br />
If you want to use an ext2 file system on the SD, also find the line saying:<br />
<br />
CONFIG_EXT2_FS=m<br />
<br />
and change it to:<br />
<br />
CONFIG_EXT2_FS=y<br />
<br />
If you're using MokoMakfile, you can clean out your last kernel build (forcing a new build) by running:<br />
<br />
make clean-package-linux-openmoko<br />
<br />
== Acquiring a tarfile rootfs ==<br />
<br />
There are two ways of acquiring an rootfs image as a tar archive. You can either build it on your own using the OpenEmbedded Distribution. Or download it from the openmoko buildhost.<br />
<br />
<br />
=== Possibility 1: Downloading the rootfs/kernel tar from the Openmoko buildhost ===<br />
<br />
Choose and find the rootfs/kernel combo you would like to install at [[Latest Images]].<br />
<br />
=== Possibility 2: Building a tarfile distribution using OpenEmbedded ===<br />
<br />
Another possibility to get a tar archive of your rootfs is to build it on your own with the OpenEmbedded environment.<br />
<br />
To build OM-2007.2 you need to add "tar" to the image types in your ''local.conf'':<br />
<br />
IMAGE_FSTYPES = "jffs2 tar"<br />
<br />
After that build a new image by issuing:<br />
<br />
bitbake openmoko-devel-image<br />
<br />
or if you are using the MokoMakefile: <br />
<br />
make openmoko-devel-image<br />
<br />
After the process finished there will be a ''OpenMoko-....tar'' in the deploy directory, which is your newly created rootfs archive<br />
<br />
<br />
== Prepare the SD card ==<br />
<br />
=== Partioning the SD card ===<br />
<br />
Unfortunately the uboot loader can only read from FAT partitions. Therefore the kernel needs to be stored in a partition with this filesystem.<br />
Nevertheless we want to store our rootfs in an ext3 (or ext2) filesystem. To acomplish this the sd-card needs to be partitioned into to different parts. <br />
This example shows how to do this using the fdisk utility. Feel free to use the partitioning utility of your liking for this task.<br />
<br />
fdisk /dev/mmcblk0<br />
<br />
'''''Note:''''' The device file might differ on your system. If you are not sure about it, you may check your kernel message log by calling ''dmesg'' to find the correct device.<br />
<br />
We will now create a 8 mb partition for our kernel and another one for the rootfs which will take up all the remaining space.<br />
<br />
Command (m for help): d<br />
Selected partition 1<br />
Command (m for help): n<br />
Command action<br />
e extended<br />
p primary partition (1-4)<br />
p<br />
Partition number (1-4): 1<br />
First cylinder (1-983, default 1):<br />
Using default value 1<br />
Last cylinder or +size or +sizeM or +sizeK (1-983, default 983): +8M<br />
Command (m for help): n<br />
Command action<br />
e extended<br />
p primary partition (1-4)<br />
p<br />
Partition number (1-4): 2<br />
First cylinder (18-983, default 18):<br />
Using default value 18<br />
Last cylinder or +size or +sizeM or +sizeK (18-983, default 983):<br />
Using default value 983<br />
Command (m for help): w<br />
The partition table has been altered!<br />
Calling ioctl() to re-read partition table.<br />
Syncing disks.<br />
<br />
=== Formatting the SD card ===<br />
<br />
As already mentioned we need the first partition to be formatted with the FAT filesystem. Just issue the following command to create this fs:<br />
<br />
mkfs.vfat /dev/mmcblk0p1<br />
<br />
Note: if you do not have mkfs.vfat get it at http://buildhost.openmoko.org/daily-feed/armv4t/ncurses_5.4-r15_armv4t.ipk and opg install it.<br />
<br />
<br />
The second partition is about to be formatted with ext3 (For ext2 to work you need to make sure you compiled the kernel with the correct configuration):<br />
<br />
mkfs.ext3 /dev/mmcblk0p2<br />
<br />
== Populate SD card ==<br />
<br />
Your sd card is now ready to be filled up with the rootfs and the needed kernel to boot.<br />
<br />
Mount the second partition of your SD card somewhere and put the image on it:<br />
<br />
mount /dev/mmcblk0p2 /mnt/moko<br />
tar -C /mnt/moko/ -xzvf openmoko-devel-image-fic-gta01-20070313022035.rootfs.tar.gz<br />
<br />
'''''Note:''''' As always in this guide the device name as well as the rootfs name needs to be adjusted to your device and filename structure<br />
<br />
The next step is to mount the first partition of the sd card and install the kernel on it.<br />
<br />
mount /dev/mmcblk0p1 /mnt/mokokernel<br />
cp uImage-fic-gta01-latest.bin /mnt/mokokernel/uImage.bin<br />
<br />
Make sure your kernel is called ''uImage.bin'' after copying it to the card.<br />
<br />
Unmount both the rootfs partition and the kernel partition and make sure all remaining buffers are written to it:<br />
<br />
umount /mnt/moko<br />
umount /mnt/mokokernel<br />
sync<br />
<br />
== Add uboot boot entry ==<br />
<br />
Note: I did not have to do the things stated below when uImage was on FAT and the filesystem on ext2. (date: 22 jul 2008)<br />
<br />
Dependent on the revision of the phone and the partition type (ext2/ext3) you are using it might be necessary to add an entry to the bootmenu, to be able to boot the system of your sd card.<br />
If you are using a Freerunner and have created an ext2 partition you should be able to boot from the card right out of the box, because a boot menu entry for this should already exist in the NAND boot menu.<br />
In any other case you should at least make sure the needed entry exists in your menu before proceeding.<br />
You will need to enter the uboot shell of the NAND boot menu for this. A description on how to connect to the uboot loader shell can be found in this article: [[Uboot#Bootloader_prompt]]. Details on howto get into the NAND boot menu can be found [[Booting#Log_into_U-Boot_in_the_NAND_Flash|here]].<br />
<br />
After you read these two references you should be connected to your NAND uboot shell right now. The first thing to do is to set the boot menu timeout to a really high value. Unfortunately if you don't do this, the boot loader will continue booting after the default timeout (60 seconds) even if you are connected to the uboot shell. Just enter the following command to the menu prompt:<br />
<br />
setenv boot_menu_timeout 99999<br />
<br />
This will set the timeout to 99999 seconds which should definitely enough time for us finish whatever work we want accomplish in the boot loader shell.<br />
<br />
Now we will make sure a appropriate menu item for booting from sd exists, or create it otherwise. You can print the defined boot loader environment by issuing the command: <br />
<br />
printenv<br />
<br />
If it shows a line beginning with ''menu_'' followed by the commands which are just to follow in this guide, you do not need to create a new menu entry. In any other case please proceed with the following.<br />
<br />
It is important to distinguish between ext2 and ext3 root partitions at this point. Please make sure you are using the correct configuration based on the decisions you made earlier.<br />
<br />
<br />
'''Boot entry for ext3 partitions:'''<br />
<br />
setenv menu_9 Boot from microSD (FAT+ext3): setenv bootargs \${bootargs_base} rootfstype=ext3 root=/dev/mmcblk0p2 rootdelay=5 \${mtdparts} ro\; mmcinit\; fatload mmc 1 0x32000000 \${sd_image_name}\; bootm 0x32000000<br />
<br />
'''Boot entry for ext2 partitions:'''<br />
<br />
setenv menu_9 Boot from microSD (FAT+ext2): setenv bootargs \${bootargs_base} rootfstype=ext2 root=/dev/mmcblk0p2 rootdelay=5 \${mtdparts} ro\; mmcinit\; fatload mmc 1 0x32000000 \${sd_image_name}\; bootm 0x32000000<br />
<br />
'''''Note:''''' The backslashes (\) are important for uboot to set the command as new environment variable (menu_9) instead of just executing them as soon as enter is pressed<br />
<br />
'''''Note:''''' Copy and paste may not work. At least it did not work for me as I tried. You will have to type in the commandline manually.<br />
<br />
You are nearly done. Just issue a<br />
<br />
printenv<br />
<br />
and verify that your newly created entry is correctly displayed (This time the backslashes are not displayed anyone).<br />
<br />
If everything looks fine enter<br />
<br />
saveenv<br />
<br />
into the prompt and press enter. The new configuration should now be saved to the NAND.<br />
<br />
Shutdown your neo with the following command:<br />
<br />
neo1973 power-off<br />
<br />
After you restarted the Neo and got back to the NAND boot menu you should be able to select your newly created menu entry and successfully boot into the rootfs from your sd card.<br />
<br />
== Appendix ==<br />
<br />
=== Boot from SDHC ===<br />
<br />
NOTE: the following text was written for the Neo1973. SDHC and SD should both work in a Freerunner.<br />
<br />
As SDHC is currently not supported in u-boot you can't use the Booting from SD guide.<br />
But there's a kind of workaround that is a good option to have at least your rootfs on the microSDHC:<br />
<br />
First you can follow Step 1 to get an kernel-image with mmc- and ext2-support. But instead of copying the image to the rootfs you will have to flash it to the Neo's internal NAND-Flash (using [[Dfu-util]]).<br />
Now you can continue with Step 2 (like mentioned before you do not have to copy your uImage to the rootfs) and follow the instructions to Step 3.<br />
Instead of the setenv commands in Step 3 you have to enter the following:<br />
<br />
GTA01Bv4 # setenv menu_5 Boot from SDHC: setenv bootargs root=/dev/mmcblk0p1 console=tty0 rootdelay=5 neo1973-nand:0x00040000(u-boot),0x00004000(u-boot_env),0x00200000(kernel),0x000a0000(splash)\; nand read.e 0x32000000 kernel\; bootm 0x32000000<br />
GTA01Bv4 # saveenv<br />
<br />
And that's it!<br />
Now you can use the newly created menu option "Boot from SDHC" to boot the internal kernel, using the root-filesystem on the microSDHC.<br />
<br />
<br />
=== Autoboot from SDHC ===<br />
<br />
Maybe you want to Boot automatically from SDHC: <br />
Set a new Bootmenu Entry for booting from NAND first<br />
<br />
GTA01Bv4 # setenv menu_6 Boot from NAND: setenv bootargs \${bootargs_base} \${mtdparts}\; nand read.e 0x32000000 kernel\; bootm 0x32000000<br />
GTA01Bv4 # saveenv<br />
<br />
then Power-off, and enter the Bootmenu to test the new Entry.If you can boot from NAND, shutdown, enter Boot menu, connect to bootloader and set the (auto)bootcmd for boot from SDHC:<br />
<br />
GTA01Bv4 # setenv bootcmd setenv bootargs root=/dev/mmcblk0p1 rootdelay=10 console=tty0 neo1973-nand:0x00040000(u-boot),0x00004000(u-boot_env),0x00200000(kernel),0x000a0000(splash)\; nand read.e 0x32000000 kernel\; bootm 0x32000000 <br />
GTA01Bv4 # saveenv<br />
<br />
Now you boot from SDHC everytime you press the Power-Button or reboot and if you like to boot from NAND -just use the bootmenu.<br />
<br />
<br />
=== Fixing udev automount ===<br />
<br />
Udev automatically mounts the SD Card in /media/mmcblk0p1/ you can disable this with<br />
<br />
echo /dev/mmcblk >> /etc/udev/mount.blacklist<br />
<br />
=== Remarks on Kernel Parameters ===<br />
<br />
==== loglevel ====<br />
<br />
Some people suggested adding:<br />
<br />
loglevel=8<br />
<br />
to the kernel command line. This makes the boot process extremely slow because <br />
the framebuffer (the neo display in text mode) has to print out tons of lines of<br />
debug messages like:<br />
<br />
s3c2410-sdi s3c2410-sdi: ......<br />
mmc0: ....<br />
<br />
{{Languages|Booting_from_SD}}<br />
<br />
[[Category:System Developers]]<br />
[[Category:Guides]]</div>Supercheetahhttp://openmoko.org/wiki/Booting_the_Neo_FreeRunner_from_SD_via_U-BootBooting the Neo FreeRunner from SD via U-Boot2008-07-26T03:11:16Z<p>Supercheetah: /* Prepare the SD card */ Updated the instructions for the current version of uBoot.</p>
<hr />
<div>Here are the steps described to boot your system from an SD card. The SD card shares a bus with the GPU, so it may not perform as well, but it is another option.<br />
<br />
{| cellspacing="5" cellpadding="0" style="padding: 2%; margin:0em 0em 1em 0em; border:1px solid #F9D163; background:#FCE9B4; width:100%" <br />
| <br />
Some versions of u-boot (including the one shipped on the first batch of Freerunners) may not work properly for booting from SD card. Daily images on [http://buildhost.openmoko.org/daily/freerunner/ buildhost] with a timestamp of "20080723" or newer should be OK.<br />
<br />
Be careful when flashing a new u-boot to a Neo1973 as there is a risk of bricking your device. This is not a concern for a Freerunner as it contains a backup copy of u-boot in NOR Flash.<br />
|}<br />
<br />
<br />
== Change your kernel settings ==<br />
<br />
'''''Note:''''' Since [http://git.openmoko.org/?p=kernel.git;a=commit;h=642cbda5f3b7e7a61512426e1d30a41ab4691123| 2008-07-17] the kernel includes support for ext3 '''and ext2''' filesystems. ext2 is recommended because of the finite write life of flash storage. Prior to 2008-07-17, the kernel only came configured with support for ext3. You can check the available filesystems with <br />
<br />
less /proc/filesystems<br />
<br />
<br />
Kernel building is supposed to be done through OpenEmbedded. If you use the MokoMakefile open up $OMDIR/openmoko/trunk/oe/packages/linux/linux-gta01/defconfig-2.6.21.6-fic-gta01. If you are building OM-2007.2 open $OEDIR/openembedded/packages/linux/linux-openmoko/defconfig-2.6.22.5-fic-gta01.<br />
<br />
'''''Note:''''' That kernel version may change in future releases.<br />
<br />
Now find the line saying:<br />
<br />
CONFIG_MMC_S3C=m<br />
<br />
and change it to:<br />
<br />
CONFIG_MMC_S3C=y<br />
<br />
If you want to use an ext2 file system on the SD, also find the line saying:<br />
<br />
CONFIG_EXT2_FS=m<br />
<br />
and change it to:<br />
<br />
CONFIG_EXT2_FS=y<br />
<br />
If you're using MokoMakfile, you can clean out your last kernel build (forcing a new build) by running:<br />
<br />
make clean-package-linux-openmoko<br />
<br />
== Acquiring a tarfile rootfs ==<br />
<br />
There are two ways of acquiring an rootfs image as a tar archive. You can either build it on your own using the OpenEmbedded Distribution. Or download it from the openmoko buildhost.<br />
<br />
<br />
=== Possibility 1: Downloading the rootfs/kernel tar from the Openmoko buildhost ===<br />
<br />
Choose and find the rootfs/kernel combo you would like to install at [[Latest Images]].<br />
<br />
=== Possibility 2: Building a tarfile distribution using OpenEmbedded ===<br />
<br />
Another possibility to get a tar archive of your rootfs is to build it on your own with the OpenEmbedded environment.<br />
<br />
To build OM-2007.2 you need to add "tar" to the image types in your ''local.conf'':<br />
<br />
IMAGE_FSTYPES = "jffs2 tar"<br />
<br />
After that build a new image by issuing:<br />
<br />
bitbake openmoko-devel-image<br />
<br />
or if you are using the MokoMakefile: <br />
<br />
make openmoko-devel-image<br />
<br />
After the process finished there will be a ''OpenMoko-....tar'' in the deploy directory, which is your newly created rootfs archive<br />
<br />
<br />
== Prepare the SD card ==<br />
<br />
=== Partioning the SD card ===<br />
<br />
There needs to be at least one partition for our file system, whether that be ext2 or ext3.<br />
This example shows how to create one using the fdisk utility. Feel free to use the partitioning utility of your liking for this task.<br />
<br />
fdisk /dev/mmcblk0<br />
<br />
'''''Note:''''' The device file might differ on your system. If you are not sure about it, you may check your kernel message log by calling ''dmesg'' to find the correct device.<br />
<br />
The following is an example session from the previous command.<br />
<br />
Command (m for help): d<br />
Selected partition 1<br />
Command (m for help): n<br />
Command action<br />
e extended<br />
p primary partition (1-4)<br />
p<br />
Partition number (1-4): 1<br />
First cylinder (1-983, default 1):<br />
Using default value 1<br />
Last cylinder or +size or +sizeM or +sizeK (1-983, default 983):<br />
Using default value 983<br />
Command (m for help): w<br />
The partition table has been altered!<br />
Calling ioctl() to re-read partition table.<br />
Syncing disks.<br />
<br />
=== Formatting the SD card ===<br />
<br />
The following is the command for formatting a partition to ext3.<br />
<br />
mkfs.ext3 /dev/mmcblk0p1<br />
<br />
== Populate SD card ==<br />
<br />
Your sd card is now ready to be filled up with the rootfs and the needed kernel to boot.<br />
<br />
Mount the second partition of your SD card somewhere and put the image on it:<br />
<br />
mount /dev/mmcblk0p2 /mnt/moko<br />
tar -C /mnt/moko/ -xzvf openmoko-devel-image-fic-gta01-20070313022035.rootfs.tar.gz<br />
<br />
'''''Note:''''' As always in this guide the device name as well as the rootfs name needs to be adjusted to your device and filename structure<br />
<br />
The next step is to mount the first partition of the sd card and install the kernel on it.<br />
<br />
mount /dev/mmcblk0p1 /mnt/mokokernel<br />
cp uImage-fic-gta01-latest.bin /mnt/mokokernel/uImage.bin<br />
<br />
Make sure your kernel is called ''uImage.bin'' after copying it to the card.<br />
<br />
Unmount both the rootfs partition and the kernel partition and make sure all remaining buffers are written to it:<br />
<br />
umount /mnt/moko<br />
umount /mnt/mokokernel<br />
sync<br />
<br />
== Add uboot boot entry ==<br />
<br />
Note: I did not have to do the things stated below when uImage was on FAT and the filesystem on ext2. (date: 22 jul 2008)<br />
<br />
Dependent on the revision of the phone and the partition type (ext2/ext3) you are using it might be necessary to add an entry to the bootmenu, to be able to boot the system of your sd card.<br />
If you are using a Freerunner and have created an ext2 partition you should be able to boot from the card right out of the box, because a boot menu entry for this should already exist in the NAND boot menu.<br />
In any other case you should at least make sure the needed entry exists in your menu before proceeding.<br />
You will need to enter the uboot shell of the NAND boot menu for this. A description on how to connect to the uboot loader shell can be found in this article: [[Uboot#Bootloader_prompt]]. Details on howto get into the NAND boot menu can be found [[Booting#Log_into_U-Boot_in_the_NAND_Flash|here]].<br />
<br />
After you read these two references you should be connected to your NAND uboot shell right now. The first thing to do is to set the boot menu timeout to a really high value. Unfortunately if you don't do this, the boot loader will continue booting after the default timeout (60 seconds) even if you are connected to the uboot shell. Just enter the following command to the menu prompt:<br />
<br />
setenv boot_menu_timeout 99999<br />
<br />
This will set the timeout to 99999 seconds which should definitely enough time for us finish whatever work we want accomplish in the boot loader shell.<br />
<br />
Now we will make sure a appropriate menu item for booting from sd exists, or create it otherwise. You can print the defined boot loader environment by issuing the command: <br />
<br />
printenv<br />
<br />
If it shows a line beginning with ''menu_'' followed by the commands which are just to follow in this guide, you do not need to create a new menu entry. In any other case please proceed with the following.<br />
<br />
It is important to distinguish between ext2 and ext3 root partitions at this point. Please make sure you are using the correct configuration based on the decisions you made earlier.<br />
<br />
<br />
'''Boot entry for ext3 partitions:'''<br />
<br />
setenv menu_9 Boot from microSD (FAT+ext3): setenv bootargs \${bootargs_base} rootfstype=ext3 root=/dev/mmcblk0p2 rootdelay=5 \${mtdparts} ro\; mmcinit\; fatload mmc 1 0x32000000 \${sd_image_name}\; bootm 0x32000000<br />
<br />
'''Boot entry for ext2 partitions:'''<br />
<br />
setenv menu_9 Boot from microSD (FAT+ext2): setenv bootargs \${bootargs_base} rootfstype=ext2 root=/dev/mmcblk0p2 rootdelay=5 \${mtdparts} ro\; mmcinit\; fatload mmc 1 0x32000000 \${sd_image_name}\; bootm 0x32000000<br />
<br />
'''''Note:''''' The backslashes (\) are important for uboot to set the command as new environment variable (menu_9) instead of just executing them as soon as enter is pressed<br />
<br />
'''''Note:''''' Copy and paste may not work. At least it did not work for me as I tried. You will have to type in the commandline manually.<br />
<br />
You are nearly done. Just issue a<br />
<br />
printenv<br />
<br />
and verify that your newly created entry is correctly displayed (This time the backslashes are not displayed anyone).<br />
<br />
If everything looks fine enter<br />
<br />
saveenv<br />
<br />
into the prompt and press enter. The new configuration should now be saved to the NAND.<br />
<br />
Shutdown your neo with the following command:<br />
<br />
neo1973 power-off<br />
<br />
After you restarted the Neo and got back to the NAND boot menu you should be able to select your newly created menu entry and successfully boot into the rootfs from your sd card.<br />
<br />
== Appendix ==<br />
<br />
=== Boot from SDHC ===<br />
<br />
NOTE: the following text was written for the Neo1973. SDHC and SD should both work in a Freerunner.<br />
<br />
As SDHC is currently not supported in u-boot you can't use the Booting from SD guide.<br />
But there's a kind of workaround that is a good option to have at least your rootfs on the microSDHC:<br />
<br />
First you can follow Step 1 to get an kernel-image with mmc- and ext2-support. But instead of copying the image to the rootfs you will have to flash it to the Neo's internal NAND-Flash (using [[Dfu-util]]).<br />
Now you can continue with Step 2 (like mentioned before you do not have to copy your uImage to the rootfs) and follow the instructions to Step 3.<br />
Instead of the setenv commands in Step 3 you have to enter the following:<br />
<br />
GTA01Bv4 # setenv menu_5 Boot from SDHC: setenv bootargs root=/dev/mmcblk0p1 console=tty0 rootdelay=5 neo1973-nand:0x00040000(u-boot),0x00004000(u-boot_env),0x00200000(kernel),0x000a0000(splash)\; nand read.e 0x32000000 kernel\; bootm 0x32000000<br />
GTA01Bv4 # saveenv<br />
<br />
And that's it!<br />
Now you can use the newly created menu option "Boot from SDHC" to boot the internal kernel, using the root-filesystem on the microSDHC.<br />
<br />
<br />
=== Autoboot from SDHC ===<br />
<br />
Maybe you want to Boot automatically from SDHC: <br />
Set a new Bootmenu Entry for booting from NAND first<br />
<br />
GTA01Bv4 # setenv menu_6 Boot from NAND: setenv bootargs \${bootargs_base} \${mtdparts}\; nand read.e 0x32000000 kernel\; bootm 0x32000000<br />
GTA01Bv4 # saveenv<br />
<br />
then Power-off, and enter the Bootmenu to test the new Entry.If you can boot from NAND, shutdown, enter Boot menu, connect to bootloader and set the (auto)bootcmd for boot from SDHC:<br />
<br />
GTA01Bv4 # setenv bootcmd setenv bootargs root=/dev/mmcblk0p1 rootdelay=10 console=tty0 neo1973-nand:0x00040000(u-boot),0x00004000(u-boot_env),0x00200000(kernel),0x000a0000(splash)\; nand read.e 0x32000000 kernel\; bootm 0x32000000 <br />
GTA01Bv4 # saveenv<br />
<br />
Now you boot from SDHC everytime you press the Power-Button or reboot and if you like to boot from NAND -just use the bootmenu.<br />
<br />
<br />
=== Fixing udev automount ===<br />
<br />
Udev automatically mounts the SD Card in /media/mmcblk0p1/ you can disable this with<br />
<br />
echo /dev/mmcblk >> /etc/udev/mount.blacklist<br />
<br />
=== Remarks on Kernel Parameters ===<br />
<br />
==== loglevel ====<br />
<br />
Some people suggested adding:<br />
<br />
loglevel=8<br />
<br />
to the kernel command line. This makes the boot process extremely slow because <br />
the framebuffer (the neo display in text mode) has to print out tons of lines of<br />
debug messages like:<br />
<br />
s3c2410-sdi s3c2410-sdi: ......<br />
mmc0: ....<br />
<br />
{{Languages|Booting_from_SD}}<br />
<br />
[[Category:System Developers]]<br />
[[Category:Guides]]</div>Supercheetahhttp://openmoko.org/wiki/Talk:Booting_the_Neo_FreeRunner_from_SD_via_U-BootTalk:Booting the Neo FreeRunner from SD via U-Boot2008-07-26T02:58:42Z<p>Supercheetah: /* Formatting for VFAT--uBoot now supports ext2 */ new section</p>
<hr />
<div>== Booting the Freerunner from a SD card ==<br />
My Freerunner came with a "boot from SD card" option already installed in uBoot. I just needed a SD (Not HDMC) card with the following layout:<br />
* Partition 1 is a primary partition with a FAT filesystem containing the uImage - which has to be named uImage.bin<br />
* Partiton 2 is a Filesystem containing the root partition. According to the uBoot environment it should be an ext2 partiton, - but it seems like the standrd kernels from the buildhost don't support this. Will try to change the uBoot environemt variable so I can boot from ext3 - which should be supported by the kernel one day. <br />
My hardware setup is:<br />
* Latest uBoot (July 12, 2008)<br />
* Freerunner (GTA02V5, 1st batch that could be regularily ordered from the openmoko online shop.)<br />
The uBoot environment variable that should allow booting from my card reads:<br />
menu_1=Boot from microSD (FAT+ext2): setenv bootargs ${bootargs_base} rootfstype=ext2 root=/dev/mmcblk0p2 rootdelay=5 ${mtdparts} ro; mmcinit; fatload mmc 1 0x32000000 ${sd_image_name}; bootm 0x32000000<br />
As far as I know it should be changed after logging into uBoot by <br />
setenv menu_1 Boot from microSD (FAT+ext3): setenv bootargs ${bootargs_base} root=/dev/mmcblk0p2 rootdelay=5 ${mtdparts}ro\; mmcinit\; fatload mmc 1 0x32000000 ${sd_image_name}\; bootm 0x32000000<br />
if we want to boot a stock kernel from sd card.<br />
<br />
But I have not been able to test it until now, though.<br />
<br />
== Formatting for VFAT--uBoot now supports ext2 ==<br />
<br />
All the stuff that was put in there to work around uBoot's limitation of not supporting ext2fs, and instead, using VFAT should be changed. I'm still playing around with this stuff, so I wasn't sure that what I'd put in there would be accurate. [[User:Supercheetah|Supercheetah]] 02:58, 26 July 2008 (UTC)</div>Supercheetah