<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://wiki.openmoko.org/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://wiki.openmoko.org/api.php?action=feedcontributions&amp;user=Niebert&amp;feedformat=atom</id>
		<title>Openmoko - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="http://wiki.openmoko.org/api.php?action=feedcontributions&amp;user=Niebert&amp;feedformat=atom"/>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Special:Contributions/Niebert"/>
		<updated>2013-05-22T17:06:45Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.19.6</generator>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Google_Voice_Recognition</id>
		<title>Google Voice Recognition</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Google_Voice_Recognition"/>
				<updated>2011-12-09T08:24:00Z</updated>
		
		<summary type="html">&lt;p&gt;Niebert: /* Future Development */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Convert an Audio-File into text file via voice recognition. &lt;br /&gt;
&lt;br /&gt;
{{Note|The shell script mentioned below can be used on any Linux-Operating System with some software requirements, because the speech recognition is not performed on the local machine.}}&lt;br /&gt;
&lt;br /&gt;
Because the performance of your Freerunner is too poor for voice recognition, the Google Voice API can be used to convert a [http://wiki.openmoko.org/wiki/Applications#Audio recorded Audio file] into a text file. Be aware that the audio file will be transmitted to Google and the recognition is not performed on your FR. This implies, that you need to have Internet access on your freerunner FR to submit the audio file. &lt;br /&gt;
&lt;br /&gt;
{{Note|You must be aware of the fact, that the follow script is running on your freerunner but it is not a standalone voice recognition software and so you might not want to use this tool for private audio files.}}&lt;br /&gt;
&lt;br /&gt;
==Google Voice API==&lt;br /&gt;
For using the Google Voice API and the script you need to have the following package installed on your freerunner:&lt;br /&gt;
* '''SoX''' [http://sox.sourceforge.net http://sox.sourceforge.net]for converting WAV into FLAC files&lt;br /&gt;
* '''WGET''' [http://www.gnu.org/s/wget/ http://www.gnu.org/s/wget/] for submitting the FLAC file to the Google Voice API&lt;br /&gt;
* '''SED''' [http://sed.sourceforge.net/ http://sed.sourceforge.net/] for extracting the recognized text in the returned string of the Google Voice API&lt;br /&gt;
Install the packages from the repositories of the freerunner [[Distributions]].&lt;br /&gt;
&lt;br /&gt;
==Script Usage==&lt;br /&gt;
* The script &amp;lt;tt&amp;gt;googlevoice.sh&amp;lt;/tt&amp;gt; uses a the audio file &amp;lt;tt&amp;gt;message.wav&amp;lt;/tt&amp;gt; in the directory of the script. All files are stored in the same directory, so you need write permissions for that directory.&lt;br /&gt;
* SoX converts &amp;lt;tt&amp;gt;message.wav&amp;lt;/tt&amp;gt;  into &amp;lt;tt&amp;gt;message.flac&amp;lt;/tt&amp;gt; &lt;br /&gt;
* wget submits the file &amp;lt;tt&amp;gt;message.flac&amp;lt;/tt&amp;gt; to the Google Voice API and writes the return message to &amp;lt;tt&amp;gt;message.ret&amp;lt;/tt&amp;gt;. The language variable in the script is set to German by  &amp;lt;tt&amp;gt;lang=de-de&amp;lt;/tt&amp;gt;. If you want to submit a recorded file in US-English use &amp;lt;tt&amp;gt;lang=en-us&amp;lt;/tt&amp;gt; instead.&lt;br /&gt;
* SED extracts the recognized text &amp;lt;tt&amp;gt;message.ret&amp;lt;/tt&amp;gt; by regular expressions and writes the text into &amp;lt;tt&amp;gt;message.txt&amp;lt;/tt&amp;gt;.&lt;br /&gt;
* Temporary files &amp;lt;tt&amp;gt;message.flac&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;message.ret&amp;lt;/tt&amp;gt; will be deleted after the process.&lt;br /&gt;
&lt;br /&gt;
{{Note|The return code of German audio files needs capitalization of nouns, because all words are return in small caps. A &amp;lt;tt&amp;gt;ispell&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;aspell&amp;lt;/tt&amp;gt; correction of the &amp;lt;tt&amp;gt;message.txt&amp;lt;/tt&amp;gt; might improve the recognized text.}}&lt;br /&gt;
&lt;br /&gt;
==Basic Script Code==&lt;br /&gt;
The script code &amp;lt;tt&amp;gt;googlevoice.sh&amp;lt;/tt&amp;gt; can be tested on any Linux machine with SoX, SED, WGET installed. Modifiy the script according to your demands and storage of your audio files&lt;br /&gt;
&lt;br /&gt;
  #!/bin/sh&lt;br /&gt;
  echo &amp;quot;1 SoX Sound Exchange - Convert WAV to FLAC with 16000&amp;quot; &lt;br /&gt;
  sox message.wav message.flac rate 16k&lt;br /&gt;
  echo &amp;quot;2 Submit to Google Voice Recognition&amp;quot;&lt;br /&gt;
  wget -q -U &amp;quot;Mozilla/5.0&amp;quot; --post-file message.flac --header=&amp;quot;Content-Type: audio/x-flac; rate=16000&amp;quot; -O - &amp;quot;http://www.google.com/speech-api/v1/recognize?lang=de-de&amp;amp;client=chromium&amp;quot; &amp;gt; message.ret&lt;br /&gt;
  echo &amp;quot;3 SED Extract recognized text&amp;quot; &lt;br /&gt;
  cat message.ret | sed 's/.*utterance&amp;quot;:&amp;quot;//' | sed 's/&amp;quot;,&amp;quot;confidence.*//' &amp;gt; message.txt&lt;br /&gt;
  echo &amp;quot;4 Remove Temporary Files&amp;quot;&lt;br /&gt;
  rm message.flac&lt;br /&gt;
  rm message.ret&lt;br /&gt;
  echo &amp;quot;5 Show Text &amp;quot;&lt;br /&gt;
  cat message.txt&lt;br /&gt;
&lt;br /&gt;
The parameter &amp;lt;tt&amp;gt;lang=de-de&amp;lt;/tt&amp;gt; is indicating, that the Google Voice API is expecting a German language audio file. Replace &amp;lt;tt&amp;gt;lang=de-de&amp;lt;/tt&amp;gt; by &amp;lt;tt&amp;gt;lang=en-us&amp;lt;/tt&amp;gt; to submit an audio file in US-English.&lt;br /&gt;
&lt;br /&gt;
== Script with Language Setting and Command Line Parameter ==&lt;br /&gt;
The script &amp;lt;tt&amp;gt;googlevoicepar.sh&amp;lt;/tt&amp;gt; with a command line parameter can be used if you want to use multiple input files for batch file recognition. You will call this script with the basename e.g. &amp;lt;tt&amp;gt;message0, message1,...&amp;lt;/tt&amp;gt; by &lt;br /&gt;
* &amp;lt;tt&amp;gt;googlevoicepar.sh message0&amp;lt;/tt&amp;gt; converts &amp;lt;tt&amp;gt;message0.wav&amp;lt;/tt&amp;gt; into &amp;lt;tt&amp;gt;message0.txt&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;googlevoicepar.sh message1&amp;lt;/tt&amp;gt; converts &amp;lt;tt&amp;gt;message1.wav&amp;lt;/tt&amp;gt; into &amp;lt;tt&amp;gt;message1.txt&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;googlevoicepar.sh message2&amp;lt;/tt&amp;gt; converts &amp;lt;tt&amp;gt;message2.wav&amp;lt;/tt&amp;gt; into &amp;lt;tt&amp;gt;message2.txt&amp;lt;/tt&amp;gt;&lt;br /&gt;
* ....&lt;br /&gt;
&lt;br /&gt;
  #!/bin/sh&lt;br /&gt;
  LANGUAGE=&amp;quot;de-de&amp;quot;&lt;br /&gt;
  echo &amp;quot;1 SoX Sound Exchange - Convert $1.wav to $1.flacC with 16000&amp;quot; &lt;br /&gt;
  sox $1.wav $1.flac rate 16k&lt;br /&gt;
  echo &amp;quot;2 Submit to Google Voice Recognition $1.flac&amp;quot;&lt;br /&gt;
  wget -q -U &amp;quot;Mozilla/5.0&amp;quot; --post-file $1.flac --header=&amp;quot;Content-Type: audio/x-flac; rate=16000&amp;quot; -O - &amp;quot;http://www.google.com/speech-api/v1/recognize?lang=${LANGUAGE}&amp;amp;client=chromium&amp;quot; &amp;gt; $1.ret&lt;br /&gt;
  echo &amp;quot;3 SED Extract recognized text&amp;quot; &lt;br /&gt;
  cat $1.ret | sed 's/.*utterance&amp;quot;:&amp;quot;//' | sed 's/&amp;quot;,&amp;quot;confidence.*//' &amp;gt; $1.txt&lt;br /&gt;
  echo &amp;quot;4 Remove Temporary Files&amp;quot;&lt;br /&gt;
  rm $1.flac&lt;br /&gt;
  rm $1.ret&lt;br /&gt;
  echo &amp;quot;5 Show Text &amp;quot;&lt;br /&gt;
  cat $1.txt&lt;br /&gt;
&lt;br /&gt;
== Compare Performance and Results of Google Voice API with Standalone Speech Recognition on Linux ==&lt;br /&gt;
&lt;br /&gt;
As mentioned above is speech recognition will not be performed on your Freerunner, the audio file will be submitted to a remote server and the the remote server will return an XML-File with info on accuracy and the recognized text. To compare the performance with a standalone speech recognition software, you have to test that on a Linux Box (e.g. Ubuntu)&lt;br /&gt;
* as a text environment of a Large Vocabulary Speech Recognition [https://launchpad.net/ubuntu/maverick/+package/julius Julius] was used with the Julius-VoxForge Accoutic Model for English from the repository on Ubuntu 10.10.&lt;br /&gt;
* Install the PPA for Ubuntu 10.10 by&lt;br /&gt;
  sudo add-apt-repository ppa:grasch-simon-listens/simon&lt;br /&gt;
* Update repository data&lt;br /&gt;
  sudo apt-get update&lt;br /&gt;
* Install OpenSource Speech Recognition Software  [http://sourceforge.net/projects/speech2text/ Simon] via Ubuntu Software-Center and configure Simon (see [http://simon.gibolles.com/doc/0.3/simon/en/index.pdf PDF-Simon-Tutorial]).&lt;br /&gt;
  sudo apt-get install simon&lt;br /&gt;
* Start Simon from Commandline and test a few words with your mic and record it to an audio file.&lt;br /&gt;
  simon&lt;br /&gt;
* Compare results with same audio file by Google Voice API and Simon. &lt;br /&gt;
&lt;br /&gt;
{{Note|These test might help to create a remote Speech Recognition Solution based on Julius and Simon for usage on a Freerunnner. Simon can run as server. Tests can be used to connect your freerunner to Simon.}}&lt;br /&gt;
&lt;br /&gt;
==Future Development==&lt;br /&gt;
Google API will always need internet access like other speech recognition application for smart phones.&lt;br /&gt;
&lt;br /&gt;
{{Note|Also other Speech recognition apps on Android (FlexT9) or on the iPhone (Dragon Natural Speaking for iPhone) are performing the transcription of an audio sample on the server and returning the transcript to the client mobile phone. That has to be done because of the limitations of the hardware on a mobile phone. This will improve in the future.}}&lt;br /&gt;
&lt;br /&gt;
In analogy to the commercial apps for the development of [http://en.wikipedia.org/wiki/Speech_recognition_in_Linux OpenSource standalone Software on Linux] it might be good to have an OpenSource-Webinterface or an Android app to collect Audio Samples for improving the user independent Speech Recognition Profiles HMM for Speech Recognition of large vocabulary and different languages. &lt;br /&gt;
* Users will get the speech recognition result on the freerunner or any other linux box,&lt;br /&gt;
* The can correct the speech recognition result (transcript) and submit the correction back to the server&lt;br /&gt;
* By the Audio-File-Submit and Text-File-Return of a server based speech recognition the Open Source Speech Recognition on Linux can be improved.&lt;br /&gt;
* Most advanced candidate seems to [http://www.simon-listens.org Simon Listens] with server based backend (Tested on Ubuntu).&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
* The WGET code was extended from the article on [http://www.commandlinefu.com/commands/view/8043/google-voice-recognition-api http://www.commandlinefu.com].&lt;br /&gt;
* With your [[Android]] phone 2.2 the Google Voice API can be used by installation with Android Market.&lt;br /&gt;
* with the [http://www.google.com/chrome Chrome Browser] on a Linux Box you can test the Google Voice API [http://slides.html5rocks.com/#speech-input http://slides.html5rocks.com/#speech-input] via a Web-Interface.&lt;br /&gt;
* For standalone speech recognition on Linux Systems see [http://en.wikipedia.org/wiki/Speech_recognition_in_Linux Wikipedia-Article].&lt;br /&gt;
&lt;br /&gt;
[[Category:Audio Applications]]&lt;/div&gt;</summary>
		<author><name>Niebert</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Google_Voice_Recognition</id>
		<title>Google Voice Recognition</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Google_Voice_Recognition"/>
				<updated>2011-11-14T15:40:56Z</updated>
		
		<summary type="html">&lt;p&gt;Niebert: /* Compare Performance and Results of Google Voice API with Standalone Speech Recognition on Linux */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Convert an Audio-File into text file via voice recognition. &lt;br /&gt;
&lt;br /&gt;
{{Note|The shell script mentioned below can be used on any Linux-Operating System with some software requirements, because the speech recognition is not performed on the local machine.}}&lt;br /&gt;
&lt;br /&gt;
Because the performance of your Freerunner is too poor for voice recognition, the Google Voice API can be used to convert a [http://wiki.openmoko.org/wiki/Applications#Audio recorded Audio file] into a text file. Be aware that the audio file will be transmitted to Google and the recognition is not performed on your FR. This implies, that you need to have Internet access on your freerunner FR to submit the audio file. &lt;br /&gt;
&lt;br /&gt;
{{Note|You must be aware of the fact, that the follow script is running on your freerunner but it is not a standalone voice recognition software and so you might not want to use this tool for private audio files.}}&lt;br /&gt;
&lt;br /&gt;
==Google Voice API==&lt;br /&gt;
For using the Google Voice API and the script you need to have the following package installed on your freerunner:&lt;br /&gt;
* '''SoX''' [http://sox.sourceforge.net http://sox.sourceforge.net]for converting WAV into FLAC files&lt;br /&gt;
* '''WGET''' [http://www.gnu.org/s/wget/ http://www.gnu.org/s/wget/] for submitting the FLAC file to the Google Voice API&lt;br /&gt;
* '''SED''' [http://sed.sourceforge.net/ http://sed.sourceforge.net/] for extracting the recognized text in the returned string of the Google Voice API&lt;br /&gt;
Install the packages from the repositories of the freerunner [[Distributions]].&lt;br /&gt;
&lt;br /&gt;
==Script Usage==&lt;br /&gt;
* The script &amp;lt;tt&amp;gt;googlevoice.sh&amp;lt;/tt&amp;gt; uses a the audio file &amp;lt;tt&amp;gt;message.wav&amp;lt;/tt&amp;gt; in the directory of the script. All files are stored in the same directory, so you need write permissions for that directory.&lt;br /&gt;
* SoX converts &amp;lt;tt&amp;gt;message.wav&amp;lt;/tt&amp;gt;  into &amp;lt;tt&amp;gt;message.flac&amp;lt;/tt&amp;gt; &lt;br /&gt;
* wget submits the file &amp;lt;tt&amp;gt;message.flac&amp;lt;/tt&amp;gt; to the Google Voice API and writes the return message to &amp;lt;tt&amp;gt;message.ret&amp;lt;/tt&amp;gt;. The language variable in the script is set to German by  &amp;lt;tt&amp;gt;lang=de-de&amp;lt;/tt&amp;gt;. If you want to submit a recorded file in US-English use &amp;lt;tt&amp;gt;lang=en-us&amp;lt;/tt&amp;gt; instead.&lt;br /&gt;
* SED extracts the recognized text &amp;lt;tt&amp;gt;message.ret&amp;lt;/tt&amp;gt; by regular expressions and writes the text into &amp;lt;tt&amp;gt;message.txt&amp;lt;/tt&amp;gt;.&lt;br /&gt;
* Temporary files &amp;lt;tt&amp;gt;message.flac&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;message.ret&amp;lt;/tt&amp;gt; will be deleted after the process.&lt;br /&gt;
&lt;br /&gt;
{{Note|The return code of German audio files needs capitalization of nouns, because all words are return in small caps. A &amp;lt;tt&amp;gt;ispell&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;aspell&amp;lt;/tt&amp;gt; correction of the &amp;lt;tt&amp;gt;message.txt&amp;lt;/tt&amp;gt; might improve the recognized text.}}&lt;br /&gt;
&lt;br /&gt;
==Basic Script Code==&lt;br /&gt;
The script code &amp;lt;tt&amp;gt;googlevoice.sh&amp;lt;/tt&amp;gt; can be tested on any Linux machine with SoX, SED, WGET installed. Modifiy the script according to your demands and storage of your audio files&lt;br /&gt;
&lt;br /&gt;
  #!/bin/sh&lt;br /&gt;
  echo &amp;quot;1 SoX Sound Exchange - Convert WAV to FLAC with 16000&amp;quot; &lt;br /&gt;
  sox message.wav message.flac rate 16k&lt;br /&gt;
  echo &amp;quot;2 Submit to Google Voice Recognition&amp;quot;&lt;br /&gt;
  wget -q -U &amp;quot;Mozilla/5.0&amp;quot; --post-file message.flac --header=&amp;quot;Content-Type: audio/x-flac; rate=16000&amp;quot; -O - &amp;quot;http://www.google.com/speech-api/v1/recognize?lang=de-de&amp;amp;client=chromium&amp;quot; &amp;gt; message.ret&lt;br /&gt;
  echo &amp;quot;3 SED Extract recognized text&amp;quot; &lt;br /&gt;
  cat message.ret | sed 's/.*utterance&amp;quot;:&amp;quot;//' | sed 's/&amp;quot;,&amp;quot;confidence.*//' &amp;gt; message.txt&lt;br /&gt;
  echo &amp;quot;4 Remove Temporary Files&amp;quot;&lt;br /&gt;
  rm message.flac&lt;br /&gt;
  rm message.ret&lt;br /&gt;
  echo &amp;quot;5 Show Text &amp;quot;&lt;br /&gt;
  cat message.txt&lt;br /&gt;
&lt;br /&gt;
The parameter &amp;lt;tt&amp;gt;lang=de-de&amp;lt;/tt&amp;gt; is indicating, that the Google Voice API is expecting a German language audio file. Replace &amp;lt;tt&amp;gt;lang=de-de&amp;lt;/tt&amp;gt; by &amp;lt;tt&amp;gt;lang=en-us&amp;lt;/tt&amp;gt; to submit an audio file in US-English.&lt;br /&gt;
&lt;br /&gt;
== Script with Language Setting and Command Line Parameter ==&lt;br /&gt;
The script &amp;lt;tt&amp;gt;googlevoicepar.sh&amp;lt;/tt&amp;gt; with a command line parameter can be used if you want to use multiple input files for batch file recognition. You will call this script with the basename e.g. &amp;lt;tt&amp;gt;message0, message1,...&amp;lt;/tt&amp;gt; by &lt;br /&gt;
* &amp;lt;tt&amp;gt;googlevoicepar.sh message0&amp;lt;/tt&amp;gt; converts &amp;lt;tt&amp;gt;message0.wav&amp;lt;/tt&amp;gt; into &amp;lt;tt&amp;gt;message0.txt&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;googlevoicepar.sh message1&amp;lt;/tt&amp;gt; converts &amp;lt;tt&amp;gt;message1.wav&amp;lt;/tt&amp;gt; into &amp;lt;tt&amp;gt;message1.txt&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;googlevoicepar.sh message2&amp;lt;/tt&amp;gt; converts &amp;lt;tt&amp;gt;message2.wav&amp;lt;/tt&amp;gt; into &amp;lt;tt&amp;gt;message2.txt&amp;lt;/tt&amp;gt;&lt;br /&gt;
* ....&lt;br /&gt;
&lt;br /&gt;
  #!/bin/sh&lt;br /&gt;
  LANGUAGE=&amp;quot;de-de&amp;quot;&lt;br /&gt;
  echo &amp;quot;1 SoX Sound Exchange - Convert $1.wav to $1.flacC with 16000&amp;quot; &lt;br /&gt;
  sox $1.wav $1.flac rate 16k&lt;br /&gt;
  echo &amp;quot;2 Submit to Google Voice Recognition $1.flac&amp;quot;&lt;br /&gt;
  wget -q -U &amp;quot;Mozilla/5.0&amp;quot; --post-file $1.flac --header=&amp;quot;Content-Type: audio/x-flac; rate=16000&amp;quot; -O - &amp;quot;http://www.google.com/speech-api/v1/recognize?lang=${LANGUAGE}&amp;amp;client=chromium&amp;quot; &amp;gt; $1.ret&lt;br /&gt;
  echo &amp;quot;3 SED Extract recognized text&amp;quot; &lt;br /&gt;
  cat $1.ret | sed 's/.*utterance&amp;quot;:&amp;quot;//' | sed 's/&amp;quot;,&amp;quot;confidence.*//' &amp;gt; $1.txt&lt;br /&gt;
  echo &amp;quot;4 Remove Temporary Files&amp;quot;&lt;br /&gt;
  rm $1.flac&lt;br /&gt;
  rm $1.ret&lt;br /&gt;
  echo &amp;quot;5 Show Text &amp;quot;&lt;br /&gt;
  cat $1.txt&lt;br /&gt;
&lt;br /&gt;
== Compare Performance and Results of Google Voice API with Standalone Speech Recognition on Linux ==&lt;br /&gt;
&lt;br /&gt;
As mentioned above is speech recognition will not be performed on your Freerunner, the audio file will be submitted to a remote server and the the remote server will return an XML-File with info on accuracy and the recognized text. To compare the performance with a standalone speech recognition software, you have to test that on a Linux Box (e.g. Ubuntu)&lt;br /&gt;
* as a text environment of a Large Vocabulary Speech Recognition [https://launchpad.net/ubuntu/maverick/+package/julius Julius] was used with the Julius-VoxForge Accoutic Model for English from the repository on Ubuntu 10.10.&lt;br /&gt;
* Install the PPA for Ubuntu 10.10 by&lt;br /&gt;
  sudo add-apt-repository ppa:grasch-simon-listens/simon&lt;br /&gt;
* Update repository data&lt;br /&gt;
  sudo apt-get update&lt;br /&gt;
* Install OpenSource Speech Recognition Software  [http://sourceforge.net/projects/speech2text/ Simon] via Ubuntu Software-Center and configure Simon (see [http://simon.gibolles.com/doc/0.3/simon/en/index.pdf PDF-Simon-Tutorial]).&lt;br /&gt;
  sudo apt-get install simon&lt;br /&gt;
* Start Simon from Commandline and test a few words with your mic and record it to an audio file.&lt;br /&gt;
  simon&lt;br /&gt;
* Compare results with same audio file by Google Voice API and Simon. &lt;br /&gt;
&lt;br /&gt;
{{Note|These test might help to create a remote Speech Recognition Solution based on Julius and Simon for usage on a Freerunnner. Simon can run as server. Tests can be used to connect your freerunner to Simon.}}&lt;br /&gt;
&lt;br /&gt;
==Future Development==&lt;br /&gt;
Google API will always need internet access like other speech recognition application for smart phones.&lt;br /&gt;
&lt;br /&gt;
{{Note|Also other Speech recognition apps on Android (FlexT9) or on the iPhone (Dragon Natural Speaking for iPhone) are performing the transcription of an audio sample on the server and returning the transcript to the client mobile phone. That has to be done because of the limitations of the hardware on a mobile phone. This will improve in the future.}}&lt;br /&gt;
&lt;br /&gt;
In analogy to the commercial apps for the development of [http://en.wikipedia.org/wiki/Speech_recognition_in_Linux OpenSource standalone Software on Linux] it might be good to have an OpenSource-Webinterface or an Android app to collect Audio Samples for improving the user independent Speech Recognition Profiles HMM for Speech Recognition of large vocabulary and different languages. &lt;br /&gt;
* Users will get the speech recognition result on the freerunner or any other linux box,&lt;br /&gt;
* The can correct the speech recognition result (transcript) and submit the correction back to the server&lt;br /&gt;
* By the Audio-File-Submit and Text-File-Return of a server based speech recognition the Open Source Speech Recognition on Linux can be improved.&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
* The WGET code was extended from the article on [http://www.commandlinefu.com/commands/view/8043/google-voice-recognition-api http://www.commandlinefu.com].&lt;br /&gt;
* With your [[Android]] phone 2.2 the Google Voice API can be used by installation with Android Market.&lt;br /&gt;
* with the [http://www.google.com/chrome Chrome Browser] on a Linux Box you can test the Google Voice API [http://slides.html5rocks.com/#speech-input http://slides.html5rocks.com/#speech-input] via a Web-Interface.&lt;br /&gt;
* For standalone speech recognition on Linux Systems see [http://en.wikipedia.org/wiki/Speech_recognition_in_Linux Wikipedia-Article].&lt;/div&gt;</summary>
		<author><name>Niebert</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Google_Voice_Recognition</id>
		<title>Google Voice Recognition</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Google_Voice_Recognition"/>
				<updated>2011-11-14T15:39:47Z</updated>
		
		<summary type="html">&lt;p&gt;Niebert: /* Compare Performance and Results of Google Voice API with Standalone Speech Recognition on Linux */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Convert an Audio-File into text file via voice recognition. &lt;br /&gt;
&lt;br /&gt;
{{Note|The shell script mentioned below can be used on any Linux-Operating System with some software requirements, because the speech recognition is not performed on the local machine.}}&lt;br /&gt;
&lt;br /&gt;
Because the performance of your Freerunner is too poor for voice recognition, the Google Voice API can be used to convert a [http://wiki.openmoko.org/wiki/Applications#Audio recorded Audio file] into a text file. Be aware that the audio file will be transmitted to Google and the recognition is not performed on your FR. This implies, that you need to have Internet access on your freerunner FR to submit the audio file. &lt;br /&gt;
&lt;br /&gt;
{{Note|You must be aware of the fact, that the follow script is running on your freerunner but it is not a standalone voice recognition software and so you might not want to use this tool for private audio files.}}&lt;br /&gt;
&lt;br /&gt;
==Google Voice API==&lt;br /&gt;
For using the Google Voice API and the script you need to have the following package installed on your freerunner:&lt;br /&gt;
* '''SoX''' [http://sox.sourceforge.net http://sox.sourceforge.net]for converting WAV into FLAC files&lt;br /&gt;
* '''WGET''' [http://www.gnu.org/s/wget/ http://www.gnu.org/s/wget/] for submitting the FLAC file to the Google Voice API&lt;br /&gt;
* '''SED''' [http://sed.sourceforge.net/ http://sed.sourceforge.net/] for extracting the recognized text in the returned string of the Google Voice API&lt;br /&gt;
Install the packages from the repositories of the freerunner [[Distributions]].&lt;br /&gt;
&lt;br /&gt;
==Script Usage==&lt;br /&gt;
* The script &amp;lt;tt&amp;gt;googlevoice.sh&amp;lt;/tt&amp;gt; uses a the audio file &amp;lt;tt&amp;gt;message.wav&amp;lt;/tt&amp;gt; in the directory of the script. All files are stored in the same directory, so you need write permissions for that directory.&lt;br /&gt;
* SoX converts &amp;lt;tt&amp;gt;message.wav&amp;lt;/tt&amp;gt;  into &amp;lt;tt&amp;gt;message.flac&amp;lt;/tt&amp;gt; &lt;br /&gt;
* wget submits the file &amp;lt;tt&amp;gt;message.flac&amp;lt;/tt&amp;gt; to the Google Voice API and writes the return message to &amp;lt;tt&amp;gt;message.ret&amp;lt;/tt&amp;gt;. The language variable in the script is set to German by  &amp;lt;tt&amp;gt;lang=de-de&amp;lt;/tt&amp;gt;. If you want to submit a recorded file in US-English use &amp;lt;tt&amp;gt;lang=en-us&amp;lt;/tt&amp;gt; instead.&lt;br /&gt;
* SED extracts the recognized text &amp;lt;tt&amp;gt;message.ret&amp;lt;/tt&amp;gt; by regular expressions and writes the text into &amp;lt;tt&amp;gt;message.txt&amp;lt;/tt&amp;gt;.&lt;br /&gt;
* Temporary files &amp;lt;tt&amp;gt;message.flac&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;message.ret&amp;lt;/tt&amp;gt; will be deleted after the process.&lt;br /&gt;
&lt;br /&gt;
{{Note|The return code of German audio files needs capitalization of nouns, because all words are return in small caps. A &amp;lt;tt&amp;gt;ispell&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;aspell&amp;lt;/tt&amp;gt; correction of the &amp;lt;tt&amp;gt;message.txt&amp;lt;/tt&amp;gt; might improve the recognized text.}}&lt;br /&gt;
&lt;br /&gt;
==Basic Script Code==&lt;br /&gt;
The script code &amp;lt;tt&amp;gt;googlevoice.sh&amp;lt;/tt&amp;gt; can be tested on any Linux machine with SoX, SED, WGET installed. Modifiy the script according to your demands and storage of your audio files&lt;br /&gt;
&lt;br /&gt;
  #!/bin/sh&lt;br /&gt;
  echo &amp;quot;1 SoX Sound Exchange - Convert WAV to FLAC with 16000&amp;quot; &lt;br /&gt;
  sox message.wav message.flac rate 16k&lt;br /&gt;
  echo &amp;quot;2 Submit to Google Voice Recognition&amp;quot;&lt;br /&gt;
  wget -q -U &amp;quot;Mozilla/5.0&amp;quot; --post-file message.flac --header=&amp;quot;Content-Type: audio/x-flac; rate=16000&amp;quot; -O - &amp;quot;http://www.google.com/speech-api/v1/recognize?lang=de-de&amp;amp;client=chromium&amp;quot; &amp;gt; message.ret&lt;br /&gt;
  echo &amp;quot;3 SED Extract recognized text&amp;quot; &lt;br /&gt;
  cat message.ret | sed 's/.*utterance&amp;quot;:&amp;quot;//' | sed 's/&amp;quot;,&amp;quot;confidence.*//' &amp;gt; message.txt&lt;br /&gt;
  echo &amp;quot;4 Remove Temporary Files&amp;quot;&lt;br /&gt;
  rm message.flac&lt;br /&gt;
  rm message.ret&lt;br /&gt;
  echo &amp;quot;5 Show Text &amp;quot;&lt;br /&gt;
  cat message.txt&lt;br /&gt;
&lt;br /&gt;
The parameter &amp;lt;tt&amp;gt;lang=de-de&amp;lt;/tt&amp;gt; is indicating, that the Google Voice API is expecting a German language audio file. Replace &amp;lt;tt&amp;gt;lang=de-de&amp;lt;/tt&amp;gt; by &amp;lt;tt&amp;gt;lang=en-us&amp;lt;/tt&amp;gt; to submit an audio file in US-English.&lt;br /&gt;
&lt;br /&gt;
== Script with Language Setting and Command Line Parameter ==&lt;br /&gt;
The script &amp;lt;tt&amp;gt;googlevoicepar.sh&amp;lt;/tt&amp;gt; with a command line parameter can be used if you want to use multiple input files for batch file recognition. You will call this script with the basename e.g. &amp;lt;tt&amp;gt;message0, message1,...&amp;lt;/tt&amp;gt; by &lt;br /&gt;
* &amp;lt;tt&amp;gt;googlevoicepar.sh message0&amp;lt;/tt&amp;gt; converts &amp;lt;tt&amp;gt;message0.wav&amp;lt;/tt&amp;gt; into &amp;lt;tt&amp;gt;message0.txt&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;googlevoicepar.sh message1&amp;lt;/tt&amp;gt; converts &amp;lt;tt&amp;gt;message1.wav&amp;lt;/tt&amp;gt; into &amp;lt;tt&amp;gt;message1.txt&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;googlevoicepar.sh message2&amp;lt;/tt&amp;gt; converts &amp;lt;tt&amp;gt;message2.wav&amp;lt;/tt&amp;gt; into &amp;lt;tt&amp;gt;message2.txt&amp;lt;/tt&amp;gt;&lt;br /&gt;
* ....&lt;br /&gt;
&lt;br /&gt;
  #!/bin/sh&lt;br /&gt;
  LANGUAGE=&amp;quot;de-de&amp;quot;&lt;br /&gt;
  echo &amp;quot;1 SoX Sound Exchange - Convert $1.wav to $1.flacC with 16000&amp;quot; &lt;br /&gt;
  sox $1.wav $1.flac rate 16k&lt;br /&gt;
  echo &amp;quot;2 Submit to Google Voice Recognition $1.flac&amp;quot;&lt;br /&gt;
  wget -q -U &amp;quot;Mozilla/5.0&amp;quot; --post-file $1.flac --header=&amp;quot;Content-Type: audio/x-flac; rate=16000&amp;quot; -O - &amp;quot;http://www.google.com/speech-api/v1/recognize?lang=${LANGUAGE}&amp;amp;client=chromium&amp;quot; &amp;gt; $1.ret&lt;br /&gt;
  echo &amp;quot;3 SED Extract recognized text&amp;quot; &lt;br /&gt;
  cat $1.ret | sed 's/.*utterance&amp;quot;:&amp;quot;//' | sed 's/&amp;quot;,&amp;quot;confidence.*//' &amp;gt; $1.txt&lt;br /&gt;
  echo &amp;quot;4 Remove Temporary Files&amp;quot;&lt;br /&gt;
  rm $1.flac&lt;br /&gt;
  rm $1.ret&lt;br /&gt;
  echo &amp;quot;5 Show Text &amp;quot;&lt;br /&gt;
  cat $1.txt&lt;br /&gt;
&lt;br /&gt;
== Compare Performance and Results of Google Voice API with Standalone Speech Recognition on Linux ==&lt;br /&gt;
&lt;br /&gt;
As mentioned above is speech recognition will not be performed on your Freerunner, the audio file will be submitted to a remote server and the the remote server will return an XML-File with info on accuracy and the recognized text. To compare the performance with a standalone speech recognition software, you have to test that on a Linux Box (e.g. Ubuntu)&lt;br /&gt;
* as a text environment of a Large Vocabulary Speech Recognition [https://launchpad.net/ubuntu/maverick/+package/julius Julius] was used with the Julius-VoxForge Accoutic Model for English from the repository on Ubuntu 10.10.&lt;br /&gt;
* Install the PPA for Ubuntu 10.10 by&lt;br /&gt;
  sudo add-apt-repository ppa:grasch-simon-listens/simon&lt;br /&gt;
* Update repository data&lt;br /&gt;
  sudo apt-get update&lt;br /&gt;
* Install OpenSource Speech Recognition Software  [http://sourceforge.net/projects/speech2text/ Simon] via Ubuntu Software-Center and configure Simon (see [http://simon.gibolles.com/doc/0.3/simon/en/index.pdf PDF-Simon-Tutorial]).&lt;br /&gt;
  sudo apt-get install simon&lt;br /&gt;
* Start Simon from Commandline and test a few words with your mic and record it to an audio file.&lt;br /&gt;
  simon&lt;br /&gt;
* Compare results with same audio file by Google Voice API and Simon. &lt;br /&gt;
&lt;br /&gt;
{{Note|These test might help to create a remote Speech Recognition Solution based on Julius and Simon for usage on a Freerunnner.}}&lt;br /&gt;
&lt;br /&gt;
==Future Development==&lt;br /&gt;
Google API will always need internet access like other speech recognition application for smart phones.&lt;br /&gt;
&lt;br /&gt;
{{Note|Also other Speech recognition apps on Android (FlexT9) or on the iPhone (Dragon Natural Speaking for iPhone) are performing the transcription of an audio sample on the server and returning the transcript to the client mobile phone. That has to be done because of the limitations of the hardware on a mobile phone. This will improve in the future.}}&lt;br /&gt;
&lt;br /&gt;
In analogy to the commercial apps for the development of [http://en.wikipedia.org/wiki/Speech_recognition_in_Linux OpenSource standalone Software on Linux] it might be good to have an OpenSource-Webinterface or an Android app to collect Audio Samples for improving the user independent Speech Recognition Profiles HMM for Speech Recognition of large vocabulary and different languages. &lt;br /&gt;
* Users will get the speech recognition result on the freerunner or any other linux box,&lt;br /&gt;
* The can correct the speech recognition result (transcript) and submit the correction back to the server&lt;br /&gt;
* By the Audio-File-Submit and Text-File-Return of a server based speech recognition the Open Source Speech Recognition on Linux can be improved.&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
* The WGET code was extended from the article on [http://www.commandlinefu.com/commands/view/8043/google-voice-recognition-api http://www.commandlinefu.com].&lt;br /&gt;
* With your [[Android]] phone 2.2 the Google Voice API can be used by installation with Android Market.&lt;br /&gt;
* with the [http://www.google.com/chrome Chrome Browser] on a Linux Box you can test the Google Voice API [http://slides.html5rocks.com/#speech-input http://slides.html5rocks.com/#speech-input] via a Web-Interface.&lt;br /&gt;
* For standalone speech recognition on Linux Systems see [http://en.wikipedia.org/wiki/Speech_recognition_in_Linux Wikipedia-Article].&lt;/div&gt;</summary>
		<author><name>Niebert</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Google_Voice_Recognition</id>
		<title>Google Voice Recognition</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Google_Voice_Recognition"/>
				<updated>2011-11-14T14:28:15Z</updated>
		
		<summary type="html">&lt;p&gt;Niebert: /* Google Voice API */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Convert an Audio-File into text file via voice recognition. &lt;br /&gt;
&lt;br /&gt;
{{Note|The shell script mentioned below can be used on any Linux-Operating System with some software requirements, because the speech recognition is not performed on the local machine.}}&lt;br /&gt;
&lt;br /&gt;
Because the performance of your Freerunner is too poor for voice recognition, the Google Voice API can be used to convert a [http://wiki.openmoko.org/wiki/Applications#Audio recorded Audio file] into a text file. Be aware that the audio file will be transmitted to Google and the recognition is not performed on your FR. This implies, that you need to have Internet access on your freerunner FR to submit the audio file. &lt;br /&gt;
&lt;br /&gt;
{{Note|You must be aware of the fact, that the follow script is running on your freerunner but it is not a standalone voice recognition software and so you might not want to use this tool for private audio files.}}&lt;br /&gt;
&lt;br /&gt;
==Google Voice API==&lt;br /&gt;
For using the Google Voice API and the script you need to have the following package installed on your freerunner:&lt;br /&gt;
* '''SoX''' [http://sox.sourceforge.net http://sox.sourceforge.net]for converting WAV into FLAC files&lt;br /&gt;
* '''WGET''' [http://www.gnu.org/s/wget/ http://www.gnu.org/s/wget/] for submitting the FLAC file to the Google Voice API&lt;br /&gt;
* '''SED''' [http://sed.sourceforge.net/ http://sed.sourceforge.net/] for extracting the recognized text in the returned string of the Google Voice API&lt;br /&gt;
Install the packages from the repositories of the freerunner [[Distributions]].&lt;br /&gt;
&lt;br /&gt;
==Script Usage==&lt;br /&gt;
* The script &amp;lt;tt&amp;gt;googlevoice.sh&amp;lt;/tt&amp;gt; uses a the audio file &amp;lt;tt&amp;gt;message.wav&amp;lt;/tt&amp;gt; in the directory of the script. All files are stored in the same directory, so you need write permissions for that directory.&lt;br /&gt;
* SoX converts &amp;lt;tt&amp;gt;message.wav&amp;lt;/tt&amp;gt;  into &amp;lt;tt&amp;gt;message.flac&amp;lt;/tt&amp;gt; &lt;br /&gt;
* wget submits the file &amp;lt;tt&amp;gt;message.flac&amp;lt;/tt&amp;gt; to the Google Voice API and writes the return message to &amp;lt;tt&amp;gt;message.ret&amp;lt;/tt&amp;gt;. The language variable in the script is set to German by  &amp;lt;tt&amp;gt;lang=de-de&amp;lt;/tt&amp;gt;. If you want to submit a recorded file in US-English use &amp;lt;tt&amp;gt;lang=en-us&amp;lt;/tt&amp;gt; instead.&lt;br /&gt;
* SED extracts the recognized text &amp;lt;tt&amp;gt;message.ret&amp;lt;/tt&amp;gt; by regular expressions and writes the text into &amp;lt;tt&amp;gt;message.txt&amp;lt;/tt&amp;gt;.&lt;br /&gt;
* Temporary files &amp;lt;tt&amp;gt;message.flac&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;message.ret&amp;lt;/tt&amp;gt; will be deleted after the process.&lt;br /&gt;
&lt;br /&gt;
{{Note|The return code of German audio files needs capitalization of nouns, because all words are return in small caps. A &amp;lt;tt&amp;gt;ispell&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;aspell&amp;lt;/tt&amp;gt; correction of the &amp;lt;tt&amp;gt;message.txt&amp;lt;/tt&amp;gt; might improve the recognized text.}}&lt;br /&gt;
&lt;br /&gt;
==Basic Script Code==&lt;br /&gt;
The script code &amp;lt;tt&amp;gt;googlevoice.sh&amp;lt;/tt&amp;gt; can be tested on any Linux machine with SoX, SED, WGET installed. Modifiy the script according to your demands and storage of your audio files&lt;br /&gt;
&lt;br /&gt;
  #!/bin/sh&lt;br /&gt;
  echo &amp;quot;1 SoX Sound Exchange - Convert WAV to FLAC with 16000&amp;quot; &lt;br /&gt;
  sox message.wav message.flac rate 16k&lt;br /&gt;
  echo &amp;quot;2 Submit to Google Voice Recognition&amp;quot;&lt;br /&gt;
  wget -q -U &amp;quot;Mozilla/5.0&amp;quot; --post-file message.flac --header=&amp;quot;Content-Type: audio/x-flac; rate=16000&amp;quot; -O - &amp;quot;http://www.google.com/speech-api/v1/recognize?lang=de-de&amp;amp;client=chromium&amp;quot; &amp;gt; message.ret&lt;br /&gt;
  echo &amp;quot;3 SED Extract recognized text&amp;quot; &lt;br /&gt;
  cat message.ret | sed 's/.*utterance&amp;quot;:&amp;quot;//' | sed 's/&amp;quot;,&amp;quot;confidence.*//' &amp;gt; message.txt&lt;br /&gt;
  echo &amp;quot;4 Remove Temporary Files&amp;quot;&lt;br /&gt;
  rm message.flac&lt;br /&gt;
  rm message.ret&lt;br /&gt;
  echo &amp;quot;5 Show Text &amp;quot;&lt;br /&gt;
  cat message.txt&lt;br /&gt;
&lt;br /&gt;
The parameter &amp;lt;tt&amp;gt;lang=de-de&amp;lt;/tt&amp;gt; is indicating, that the Google Voice API is expecting a German language audio file. Replace &amp;lt;tt&amp;gt;lang=de-de&amp;lt;/tt&amp;gt; by &amp;lt;tt&amp;gt;lang=en-us&amp;lt;/tt&amp;gt; to submit an audio file in US-English.&lt;br /&gt;
&lt;br /&gt;
== Script with Language Setting and Command Line Parameter ==&lt;br /&gt;
The script &amp;lt;tt&amp;gt;googlevoicepar.sh&amp;lt;/tt&amp;gt; with a command line parameter can be used if you want to use multiple input files for batch file recognition. You will call this script with the basename e.g. &amp;lt;tt&amp;gt;message0, message1,...&amp;lt;/tt&amp;gt; by &lt;br /&gt;
* &amp;lt;tt&amp;gt;googlevoicepar.sh message0&amp;lt;/tt&amp;gt; converts &amp;lt;tt&amp;gt;message0.wav&amp;lt;/tt&amp;gt; into &amp;lt;tt&amp;gt;message0.txt&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;googlevoicepar.sh message1&amp;lt;/tt&amp;gt; converts &amp;lt;tt&amp;gt;message1.wav&amp;lt;/tt&amp;gt; into &amp;lt;tt&amp;gt;message1.txt&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;googlevoicepar.sh message2&amp;lt;/tt&amp;gt; converts &amp;lt;tt&amp;gt;message2.wav&amp;lt;/tt&amp;gt; into &amp;lt;tt&amp;gt;message2.txt&amp;lt;/tt&amp;gt;&lt;br /&gt;
* ....&lt;br /&gt;
&lt;br /&gt;
  #!/bin/sh&lt;br /&gt;
  LANGUAGE=&amp;quot;de-de&amp;quot;&lt;br /&gt;
  echo &amp;quot;1 SoX Sound Exchange - Convert $1.wav to $1.flacC with 16000&amp;quot; &lt;br /&gt;
  sox $1.wav $1.flac rate 16k&lt;br /&gt;
  echo &amp;quot;2 Submit to Google Voice Recognition $1.flac&amp;quot;&lt;br /&gt;
  wget -q -U &amp;quot;Mozilla/5.0&amp;quot; --post-file $1.flac --header=&amp;quot;Content-Type: audio/x-flac; rate=16000&amp;quot; -O - &amp;quot;http://www.google.com/speech-api/v1/recognize?lang=${LANGUAGE}&amp;amp;client=chromium&amp;quot; &amp;gt; $1.ret&lt;br /&gt;
  echo &amp;quot;3 SED Extract recognized text&amp;quot; &lt;br /&gt;
  cat $1.ret | sed 's/.*utterance&amp;quot;:&amp;quot;//' | sed 's/&amp;quot;,&amp;quot;confidence.*//' &amp;gt; $1.txt&lt;br /&gt;
  echo &amp;quot;4 Remove Temporary Files&amp;quot;&lt;br /&gt;
  rm $1.flac&lt;br /&gt;
  rm $1.ret&lt;br /&gt;
  echo &amp;quot;5 Show Text &amp;quot;&lt;br /&gt;
  cat $1.txt&lt;br /&gt;
&lt;br /&gt;
== Compare Performance and Results of Google Voice API with Standalone Speech Recognition on Linux ==&lt;br /&gt;
&lt;br /&gt;
As mentioned above is speech recognition will not be performed on your Freerunner, the audio file will be submitted to a remote server and the the remote server will return an XML-File with info on accuracy and the recognized text. To compare the performance with a standalone speech recognition software, you have to test that on a Linux Box (e.g. Ubuntu)&lt;br /&gt;
* as a text environment of a Large Vocabulary Speech Recognition [https://launchpad.net/ubuntu/maverick/+package/julius Julius] was used with the Julius-VoxForge Accoutic Model for English from the repository on Ubuntu 10.10.&lt;br /&gt;
* Install the PPA for Ubuntu 10.10 by&lt;br /&gt;
  sudo add-apt-repository ppa:grasch-simon-listens/simon&lt;br /&gt;
* Install OpenSource Speech Recognition Software  [http://sourceforge.net/projects/speech2text/ Simon] via Ubuntu Software-Center and configure Simon (see [http://simon.gibolles.com/doc/0.3/simon/en/index.pdf PDF-Simon-Tutorial]).&lt;br /&gt;
* Start Simon from Commandline and test a few words with your mic and record it to an audio file.&lt;br /&gt;
* Compare results with same audio file by Google Voice API and Simon. &lt;br /&gt;
&lt;br /&gt;
{{Note|These test might help to create a remote Speech Recognition Solution based on Julius and Simon for usage on a Freerunnner.}}&lt;br /&gt;
&lt;br /&gt;
==Future Development==&lt;br /&gt;
Google API will always need internet access like other speech recognition application for smart phones.&lt;br /&gt;
&lt;br /&gt;
{{Note|Also other Speech recognition apps on Android (FlexT9) or on the iPhone (Dragon Natural Speaking for iPhone) are performing the transcription of an audio sample on the server and returning the transcript to the client mobile phone. That has to be done because of the limitations of the hardware on a mobile phone. This will improve in the future.}}&lt;br /&gt;
&lt;br /&gt;
In analogy to the commercial apps for the development of [http://en.wikipedia.org/wiki/Speech_recognition_in_Linux OpenSource standalone Software on Linux] it might be good to have an OpenSource-Webinterface or an Android app to collect Audio Samples for improving the user independent Speech Recognition Profiles HMM for Speech Recognition of large vocabulary and different languages. &lt;br /&gt;
* Users will get the speech recognition result on the freerunner or any other linux box,&lt;br /&gt;
* The can correct the speech recognition result (transcript) and submit the correction back to the server&lt;br /&gt;
* By the Audio-File-Submit and Text-File-Return of a server based speech recognition the Open Source Speech Recognition on Linux can be improved.&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
* The WGET code was extended from the article on [http://www.commandlinefu.com/commands/view/8043/google-voice-recognition-api http://www.commandlinefu.com].&lt;br /&gt;
* With your [[Android]] phone 2.2 the Google Voice API can be used by installation with Android Market.&lt;br /&gt;
* with the [http://www.google.com/chrome Chrome Browser] on a Linux Box you can test the Google Voice API [http://slides.html5rocks.com/#speech-input http://slides.html5rocks.com/#speech-input] via a Web-Interface.&lt;br /&gt;
* For standalone speech recognition on Linux Systems see [http://en.wikipedia.org/wiki/Speech_recognition_in_Linux Wikipedia-Article].&lt;/div&gt;</summary>
		<author><name>Niebert</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Google_Voice_Recognition</id>
		<title>Google Voice Recognition</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Google_Voice_Recognition"/>
				<updated>2011-11-14T14:27:41Z</updated>
		
		<summary type="html">&lt;p&gt;Niebert: /* Compare Performance and Results of Google Voice API with Standalone Speech Recognition on Linux */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Convert an Audio-File into text file via voice recognition. &lt;br /&gt;
&lt;br /&gt;
{{Note|The shell script mentioned below can be used on any Linux-Operating System with some software requirements, because the speech recognition is not performed on the local machine.}}&lt;br /&gt;
&lt;br /&gt;
Because the performance of your Freerunner is too poor for voice recognition, the Google Voice API can be used to convert a [http://wiki.openmoko.org/wiki/Applications#Audio recorded Audio file] into a text file. Be aware that the audio file will be transmitted to Google and the recognition is not performed on your FR. This implies, that you need to have Internet access on your freerunner FR to submit the audio file. &lt;br /&gt;
&lt;br /&gt;
{{Note|You must be aware of the fact, that the follow script is running on your freerunner but it is not a standalone voice recognition software and so you might not want to use this tool for private audio files.}}&lt;br /&gt;
&lt;br /&gt;
==Google Voice API==&lt;br /&gt;
For using the Google Voice API and the script you need to have the following package installed on your freerunner:&lt;br /&gt;
* SoX [http://sox.sourceforge.net http://sox.sourceforge.net]for converting WAV into FLAC files&lt;br /&gt;
* WGET [http://www.gnu.org/s/wget/ http://www.gnu.org/s/wget/] for submitting the FLAC file to the Google Voice API&lt;br /&gt;
* SED [http://sed.sourceforge.net/ http://sed.sourceforge.net/] for extracting the recognized text in the returned string of the Google Voice API&lt;br /&gt;
Install the packages from the repositories of the freerunner [[Distributions]].&lt;br /&gt;
&lt;br /&gt;
==Script Usage==&lt;br /&gt;
* The script &amp;lt;tt&amp;gt;googlevoice.sh&amp;lt;/tt&amp;gt; uses a the audio file &amp;lt;tt&amp;gt;message.wav&amp;lt;/tt&amp;gt; in the directory of the script. All files are stored in the same directory, so you need write permissions for that directory.&lt;br /&gt;
* SoX converts &amp;lt;tt&amp;gt;message.wav&amp;lt;/tt&amp;gt;  into &amp;lt;tt&amp;gt;message.flac&amp;lt;/tt&amp;gt; &lt;br /&gt;
* wget submits the file &amp;lt;tt&amp;gt;message.flac&amp;lt;/tt&amp;gt; to the Google Voice API and writes the return message to &amp;lt;tt&amp;gt;message.ret&amp;lt;/tt&amp;gt;. The language variable in the script is set to German by  &amp;lt;tt&amp;gt;lang=de-de&amp;lt;/tt&amp;gt;. If you want to submit a recorded file in US-English use &amp;lt;tt&amp;gt;lang=en-us&amp;lt;/tt&amp;gt; instead.&lt;br /&gt;
* SED extracts the recognized text &amp;lt;tt&amp;gt;message.ret&amp;lt;/tt&amp;gt; by regular expressions and writes the text into &amp;lt;tt&amp;gt;message.txt&amp;lt;/tt&amp;gt;.&lt;br /&gt;
* Temporary files &amp;lt;tt&amp;gt;message.flac&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;message.ret&amp;lt;/tt&amp;gt; will be deleted after the process.&lt;br /&gt;
&lt;br /&gt;
{{Note|The return code of German audio files needs capitalization of nouns, because all words are return in small caps. A &amp;lt;tt&amp;gt;ispell&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;aspell&amp;lt;/tt&amp;gt; correction of the &amp;lt;tt&amp;gt;message.txt&amp;lt;/tt&amp;gt; might improve the recognized text.}}&lt;br /&gt;
&lt;br /&gt;
==Basic Script Code==&lt;br /&gt;
The script code &amp;lt;tt&amp;gt;googlevoice.sh&amp;lt;/tt&amp;gt; can be tested on any Linux machine with SoX, SED, WGET installed. Modifiy the script according to your demands and storage of your audio files&lt;br /&gt;
&lt;br /&gt;
  #!/bin/sh&lt;br /&gt;
  echo &amp;quot;1 SoX Sound Exchange - Convert WAV to FLAC with 16000&amp;quot; &lt;br /&gt;
  sox message.wav message.flac rate 16k&lt;br /&gt;
  echo &amp;quot;2 Submit to Google Voice Recognition&amp;quot;&lt;br /&gt;
  wget -q -U &amp;quot;Mozilla/5.0&amp;quot; --post-file message.flac --header=&amp;quot;Content-Type: audio/x-flac; rate=16000&amp;quot; -O - &amp;quot;http://www.google.com/speech-api/v1/recognize?lang=de-de&amp;amp;client=chromium&amp;quot; &amp;gt; message.ret&lt;br /&gt;
  echo &amp;quot;3 SED Extract recognized text&amp;quot; &lt;br /&gt;
  cat message.ret | sed 's/.*utterance&amp;quot;:&amp;quot;//' | sed 's/&amp;quot;,&amp;quot;confidence.*//' &amp;gt; message.txt&lt;br /&gt;
  echo &amp;quot;4 Remove Temporary Files&amp;quot;&lt;br /&gt;
  rm message.flac&lt;br /&gt;
  rm message.ret&lt;br /&gt;
  echo &amp;quot;5 Show Text &amp;quot;&lt;br /&gt;
  cat message.txt&lt;br /&gt;
&lt;br /&gt;
The parameter &amp;lt;tt&amp;gt;lang=de-de&amp;lt;/tt&amp;gt; is indicating, that the Google Voice API is expecting a German language audio file. Replace &amp;lt;tt&amp;gt;lang=de-de&amp;lt;/tt&amp;gt; by &amp;lt;tt&amp;gt;lang=en-us&amp;lt;/tt&amp;gt; to submit an audio file in US-English.&lt;br /&gt;
&lt;br /&gt;
== Script with Language Setting and Command Line Parameter ==&lt;br /&gt;
The script &amp;lt;tt&amp;gt;googlevoicepar.sh&amp;lt;/tt&amp;gt; with a command line parameter can be used if you want to use multiple input files for batch file recognition. You will call this script with the basename e.g. &amp;lt;tt&amp;gt;message0, message1,...&amp;lt;/tt&amp;gt; by &lt;br /&gt;
* &amp;lt;tt&amp;gt;googlevoicepar.sh message0&amp;lt;/tt&amp;gt; converts &amp;lt;tt&amp;gt;message0.wav&amp;lt;/tt&amp;gt; into &amp;lt;tt&amp;gt;message0.txt&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;googlevoicepar.sh message1&amp;lt;/tt&amp;gt; converts &amp;lt;tt&amp;gt;message1.wav&amp;lt;/tt&amp;gt; into &amp;lt;tt&amp;gt;message1.txt&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;googlevoicepar.sh message2&amp;lt;/tt&amp;gt; converts &amp;lt;tt&amp;gt;message2.wav&amp;lt;/tt&amp;gt; into &amp;lt;tt&amp;gt;message2.txt&amp;lt;/tt&amp;gt;&lt;br /&gt;
* ....&lt;br /&gt;
&lt;br /&gt;
  #!/bin/sh&lt;br /&gt;
  LANGUAGE=&amp;quot;de-de&amp;quot;&lt;br /&gt;
  echo &amp;quot;1 SoX Sound Exchange - Convert $1.wav to $1.flacC with 16000&amp;quot; &lt;br /&gt;
  sox $1.wav $1.flac rate 16k&lt;br /&gt;
  echo &amp;quot;2 Submit to Google Voice Recognition $1.flac&amp;quot;&lt;br /&gt;
  wget -q -U &amp;quot;Mozilla/5.0&amp;quot; --post-file $1.flac --header=&amp;quot;Content-Type: audio/x-flac; rate=16000&amp;quot; -O - &amp;quot;http://www.google.com/speech-api/v1/recognize?lang=${LANGUAGE}&amp;amp;client=chromium&amp;quot; &amp;gt; $1.ret&lt;br /&gt;
  echo &amp;quot;3 SED Extract recognized text&amp;quot; &lt;br /&gt;
  cat $1.ret | sed 's/.*utterance&amp;quot;:&amp;quot;//' | sed 's/&amp;quot;,&amp;quot;confidence.*//' &amp;gt; $1.txt&lt;br /&gt;
  echo &amp;quot;4 Remove Temporary Files&amp;quot;&lt;br /&gt;
  rm $1.flac&lt;br /&gt;
  rm $1.ret&lt;br /&gt;
  echo &amp;quot;5 Show Text &amp;quot;&lt;br /&gt;
  cat $1.txt&lt;br /&gt;
&lt;br /&gt;
== Compare Performance and Results of Google Voice API with Standalone Speech Recognition on Linux ==&lt;br /&gt;
&lt;br /&gt;
As mentioned above is speech recognition will not be performed on your Freerunner, the audio file will be submitted to a remote server and the the remote server will return an XML-File with info on accuracy and the recognized text. To compare the performance with a standalone speech recognition software, you have to test that on a Linux Box (e.g. Ubuntu)&lt;br /&gt;
* as a text environment of a Large Vocabulary Speech Recognition [https://launchpad.net/ubuntu/maverick/+package/julius Julius] was used with the Julius-VoxForge Accoutic Model for English from the repository on Ubuntu 10.10.&lt;br /&gt;
* Install the PPA for Ubuntu 10.10 by&lt;br /&gt;
  sudo add-apt-repository ppa:grasch-simon-listens/simon&lt;br /&gt;
* Install OpenSource Speech Recognition Software  [http://sourceforge.net/projects/speech2text/ Simon] via Ubuntu Software-Center and configure Simon (see [http://simon.gibolles.com/doc/0.3/simon/en/index.pdf PDF-Simon-Tutorial]).&lt;br /&gt;
* Start Simon from Commandline and test a few words with your mic and record it to an audio file.&lt;br /&gt;
* Compare results with same audio file by Google Voice API and Simon. &lt;br /&gt;
&lt;br /&gt;
{{Note|These test might help to create a remote Speech Recognition Solution based on Julius and Simon for usage on a Freerunnner.}}&lt;br /&gt;
&lt;br /&gt;
==Future Development==&lt;br /&gt;
Google API will always need internet access like other speech recognition application for smart phones.&lt;br /&gt;
&lt;br /&gt;
{{Note|Also other Speech recognition apps on Android (FlexT9) or on the iPhone (Dragon Natural Speaking for iPhone) are performing the transcription of an audio sample on the server and returning the transcript to the client mobile phone. That has to be done because of the limitations of the hardware on a mobile phone. This will improve in the future.}}&lt;br /&gt;
&lt;br /&gt;
In analogy to the commercial apps for the development of [http://en.wikipedia.org/wiki/Speech_recognition_in_Linux OpenSource standalone Software on Linux] it might be good to have an OpenSource-Webinterface or an Android app to collect Audio Samples for improving the user independent Speech Recognition Profiles HMM for Speech Recognition of large vocabulary and different languages. &lt;br /&gt;
* Users will get the speech recognition result on the freerunner or any other linux box,&lt;br /&gt;
* The can correct the speech recognition result (transcript) and submit the correction back to the server&lt;br /&gt;
* By the Audio-File-Submit and Text-File-Return of a server based speech recognition the Open Source Speech Recognition on Linux can be improved.&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
* The WGET code was extended from the article on [http://www.commandlinefu.com/commands/view/8043/google-voice-recognition-api http://www.commandlinefu.com].&lt;br /&gt;
* With your [[Android]] phone 2.2 the Google Voice API can be used by installation with Android Market.&lt;br /&gt;
* with the [http://www.google.com/chrome Chrome Browser] on a Linux Box you can test the Google Voice API [http://slides.html5rocks.com/#speech-input http://slides.html5rocks.com/#speech-input] via a Web-Interface.&lt;br /&gt;
* For standalone speech recognition on Linux Systems see [http://en.wikipedia.org/wiki/Speech_recognition_in_Linux Wikipedia-Article].&lt;/div&gt;</summary>
		<author><name>Niebert</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Google_Voice_Recognition</id>
		<title>Google Voice Recognition</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Google_Voice_Recognition"/>
				<updated>2011-11-14T14:26:46Z</updated>
		
		<summary type="html">&lt;p&gt;Niebert: /* Compare Performance and Results of Google Voice API with Standalone Speech Recognition on Linux */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Convert an Audio-File into text file via voice recognition. &lt;br /&gt;
&lt;br /&gt;
{{Note|The shell script mentioned below can be used on any Linux-Operating System with some software requirements, because the speech recognition is not performed on the local machine.}}&lt;br /&gt;
&lt;br /&gt;
Because the performance of your Freerunner is too poor for voice recognition, the Google Voice API can be used to convert a [http://wiki.openmoko.org/wiki/Applications#Audio recorded Audio file] into a text file. Be aware that the audio file will be transmitted to Google and the recognition is not performed on your FR. This implies, that you need to have Internet access on your freerunner FR to submit the audio file. &lt;br /&gt;
&lt;br /&gt;
{{Note|You must be aware of the fact, that the follow script is running on your freerunner but it is not a standalone voice recognition software and so you might not want to use this tool for private audio files.}}&lt;br /&gt;
&lt;br /&gt;
==Google Voice API==&lt;br /&gt;
For using the Google Voice API and the script you need to have the following package installed on your freerunner:&lt;br /&gt;
* SoX [http://sox.sourceforge.net http://sox.sourceforge.net]for converting WAV into FLAC files&lt;br /&gt;
* WGET [http://www.gnu.org/s/wget/ http://www.gnu.org/s/wget/] for submitting the FLAC file to the Google Voice API&lt;br /&gt;
* SED [http://sed.sourceforge.net/ http://sed.sourceforge.net/] for extracting the recognized text in the returned string of the Google Voice API&lt;br /&gt;
Install the packages from the repositories of the freerunner [[Distributions]].&lt;br /&gt;
&lt;br /&gt;
==Script Usage==&lt;br /&gt;
* The script &amp;lt;tt&amp;gt;googlevoice.sh&amp;lt;/tt&amp;gt; uses a the audio file &amp;lt;tt&amp;gt;message.wav&amp;lt;/tt&amp;gt; in the directory of the script. All files are stored in the same directory, so you need write permissions for that directory.&lt;br /&gt;
* SoX converts &amp;lt;tt&amp;gt;message.wav&amp;lt;/tt&amp;gt;  into &amp;lt;tt&amp;gt;message.flac&amp;lt;/tt&amp;gt; &lt;br /&gt;
* wget submits the file &amp;lt;tt&amp;gt;message.flac&amp;lt;/tt&amp;gt; to the Google Voice API and writes the return message to &amp;lt;tt&amp;gt;message.ret&amp;lt;/tt&amp;gt;. The language variable in the script is set to German by  &amp;lt;tt&amp;gt;lang=de-de&amp;lt;/tt&amp;gt;. If you want to submit a recorded file in US-English use &amp;lt;tt&amp;gt;lang=en-us&amp;lt;/tt&amp;gt; instead.&lt;br /&gt;
* SED extracts the recognized text &amp;lt;tt&amp;gt;message.ret&amp;lt;/tt&amp;gt; by regular expressions and writes the text into &amp;lt;tt&amp;gt;message.txt&amp;lt;/tt&amp;gt;.&lt;br /&gt;
* Temporary files &amp;lt;tt&amp;gt;message.flac&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;message.ret&amp;lt;/tt&amp;gt; will be deleted after the process.&lt;br /&gt;
&lt;br /&gt;
{{Note|The return code of German audio files needs capitalization of nouns, because all words are return in small caps. A &amp;lt;tt&amp;gt;ispell&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;aspell&amp;lt;/tt&amp;gt; correction of the &amp;lt;tt&amp;gt;message.txt&amp;lt;/tt&amp;gt; might improve the recognized text.}}&lt;br /&gt;
&lt;br /&gt;
==Basic Script Code==&lt;br /&gt;
The script code &amp;lt;tt&amp;gt;googlevoice.sh&amp;lt;/tt&amp;gt; can be tested on any Linux machine with SoX, SED, WGET installed. Modifiy the script according to your demands and storage of your audio files&lt;br /&gt;
&lt;br /&gt;
  #!/bin/sh&lt;br /&gt;
  echo &amp;quot;1 SoX Sound Exchange - Convert WAV to FLAC with 16000&amp;quot; &lt;br /&gt;
  sox message.wav message.flac rate 16k&lt;br /&gt;
  echo &amp;quot;2 Submit to Google Voice Recognition&amp;quot;&lt;br /&gt;
  wget -q -U &amp;quot;Mozilla/5.0&amp;quot; --post-file message.flac --header=&amp;quot;Content-Type: audio/x-flac; rate=16000&amp;quot; -O - &amp;quot;http://www.google.com/speech-api/v1/recognize?lang=de-de&amp;amp;client=chromium&amp;quot; &amp;gt; message.ret&lt;br /&gt;
  echo &amp;quot;3 SED Extract recognized text&amp;quot; &lt;br /&gt;
  cat message.ret | sed 's/.*utterance&amp;quot;:&amp;quot;//' | sed 's/&amp;quot;,&amp;quot;confidence.*//' &amp;gt; message.txt&lt;br /&gt;
  echo &amp;quot;4 Remove Temporary Files&amp;quot;&lt;br /&gt;
  rm message.flac&lt;br /&gt;
  rm message.ret&lt;br /&gt;
  echo &amp;quot;5 Show Text &amp;quot;&lt;br /&gt;
  cat message.txt&lt;br /&gt;
&lt;br /&gt;
The parameter &amp;lt;tt&amp;gt;lang=de-de&amp;lt;/tt&amp;gt; is indicating, that the Google Voice API is expecting a German language audio file. Replace &amp;lt;tt&amp;gt;lang=de-de&amp;lt;/tt&amp;gt; by &amp;lt;tt&amp;gt;lang=en-us&amp;lt;/tt&amp;gt; to submit an audio file in US-English.&lt;br /&gt;
&lt;br /&gt;
== Script with Language Setting and Command Line Parameter ==&lt;br /&gt;
The script &amp;lt;tt&amp;gt;googlevoicepar.sh&amp;lt;/tt&amp;gt; with a command line parameter can be used if you want to use multiple input files for batch file recognition. You will call this script with the basename e.g. &amp;lt;tt&amp;gt;message0, message1,...&amp;lt;/tt&amp;gt; by &lt;br /&gt;
* &amp;lt;tt&amp;gt;googlevoicepar.sh message0&amp;lt;/tt&amp;gt; converts &amp;lt;tt&amp;gt;message0.wav&amp;lt;/tt&amp;gt; into &amp;lt;tt&amp;gt;message0.txt&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;googlevoicepar.sh message1&amp;lt;/tt&amp;gt; converts &amp;lt;tt&amp;gt;message1.wav&amp;lt;/tt&amp;gt; into &amp;lt;tt&amp;gt;message1.txt&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;googlevoicepar.sh message2&amp;lt;/tt&amp;gt; converts &amp;lt;tt&amp;gt;message2.wav&amp;lt;/tt&amp;gt; into &amp;lt;tt&amp;gt;message2.txt&amp;lt;/tt&amp;gt;&lt;br /&gt;
* ....&lt;br /&gt;
&lt;br /&gt;
  #!/bin/sh&lt;br /&gt;
  LANGUAGE=&amp;quot;de-de&amp;quot;&lt;br /&gt;
  echo &amp;quot;1 SoX Sound Exchange - Convert $1.wav to $1.flacC with 16000&amp;quot; &lt;br /&gt;
  sox $1.wav $1.flac rate 16k&lt;br /&gt;
  echo &amp;quot;2 Submit to Google Voice Recognition $1.flac&amp;quot;&lt;br /&gt;
  wget -q -U &amp;quot;Mozilla/5.0&amp;quot; --post-file $1.flac --header=&amp;quot;Content-Type: audio/x-flac; rate=16000&amp;quot; -O - &amp;quot;http://www.google.com/speech-api/v1/recognize?lang=${LANGUAGE}&amp;amp;client=chromium&amp;quot; &amp;gt; $1.ret&lt;br /&gt;
  echo &amp;quot;3 SED Extract recognized text&amp;quot; &lt;br /&gt;
  cat $1.ret | sed 's/.*utterance&amp;quot;:&amp;quot;//' | sed 's/&amp;quot;,&amp;quot;confidence.*//' &amp;gt; $1.txt&lt;br /&gt;
  echo &amp;quot;4 Remove Temporary Files&amp;quot;&lt;br /&gt;
  rm $1.flac&lt;br /&gt;
  rm $1.ret&lt;br /&gt;
  echo &amp;quot;5 Show Text &amp;quot;&lt;br /&gt;
  cat $1.txt&lt;br /&gt;
&lt;br /&gt;
== Compare Performance and Results of Google Voice API with Standalone Speech Recognition on Linux ==&lt;br /&gt;
&lt;br /&gt;
As mentioned above is speech recognition will not be performed on your Freerunner, the audio file will be submitted to a remote server and the the remote server will return an XML-File with info on accuracy and the recognized text. To compare the performance with a standalone speech recognition software, you have to test that on a Linux Box (e.g. Ubuntu)&lt;br /&gt;
* as a text environment of a Large Vocabulary Speech Recognition [https://launchpad.net/ubuntu/maverick/+package/julius Julius] was used with the Julius-VoxForge Accoutic Model for English from the repository on Ubuntu 10.10.&lt;br /&gt;
* Install the PPA for Ubuntu 10.10 by&lt;br /&gt;
  sudo add-apt-repository ppa:grasch-simon-listens/simon&lt;br /&gt;
* Install OpenSource Speech Recognition Software  [http://sourceforge.net/projects/speech2text/ Simon] (see [http://simon.gibolles.com/doc/0.3/simon/en/index.pdf PDF-Simon-Tutorial]).&lt;br /&gt;
* Start Simon from Commandline and test a few words with your mic and record it to an audio file.&lt;br /&gt;
* Compare results with same audio file by Google Voice API and Simon. &lt;br /&gt;
&lt;br /&gt;
{{Note|These test might help to create a remote Speech Recognition Solution based on Julius and Simon for usage on a Freerunnner.}}&lt;br /&gt;
&lt;br /&gt;
==Future Development==&lt;br /&gt;
Google API will always need internet access like other speech recognition application for smart phones.&lt;br /&gt;
&lt;br /&gt;
{{Note|Also other Speech recognition apps on Android (FlexT9) or on the iPhone (Dragon Natural Speaking for iPhone) are performing the transcription of an audio sample on the server and returning the transcript to the client mobile phone. That has to be done because of the limitations of the hardware on a mobile phone. This will improve in the future.}}&lt;br /&gt;
&lt;br /&gt;
In analogy to the commercial apps for the development of [http://en.wikipedia.org/wiki/Speech_recognition_in_Linux OpenSource standalone Software on Linux] it might be good to have an OpenSource-Webinterface or an Android app to collect Audio Samples for improving the user independent Speech Recognition Profiles HMM for Speech Recognition of large vocabulary and different languages. &lt;br /&gt;
* Users will get the speech recognition result on the freerunner or any other linux box,&lt;br /&gt;
* The can correct the speech recognition result (transcript) and submit the correction back to the server&lt;br /&gt;
* By the Audio-File-Submit and Text-File-Return of a server based speech recognition the Open Source Speech Recognition on Linux can be improved.&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
* The WGET code was extended from the article on [http://www.commandlinefu.com/commands/view/8043/google-voice-recognition-api http://www.commandlinefu.com].&lt;br /&gt;
* With your [[Android]] phone 2.2 the Google Voice API can be used by installation with Android Market.&lt;br /&gt;
* with the [http://www.google.com/chrome Chrome Browser] on a Linux Box you can test the Google Voice API [http://slides.html5rocks.com/#speech-input http://slides.html5rocks.com/#speech-input] via a Web-Interface.&lt;br /&gt;
* For standalone speech recognition on Linux Systems see [http://en.wikipedia.org/wiki/Speech_recognition_in_Linux Wikipedia-Article].&lt;/div&gt;</summary>
		<author><name>Niebert</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Google_Voice_Recognition</id>
		<title>Google Voice Recognition</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Google_Voice_Recognition"/>
				<updated>2011-11-14T14:26:28Z</updated>
		
		<summary type="html">&lt;p&gt;Niebert: /* Compare Performance and Results of Google Voice API with Standalone Speech Recognition on Linux */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Convert an Audio-File into text file via voice recognition. &lt;br /&gt;
&lt;br /&gt;
{{Note|The shell script mentioned below can be used on any Linux-Operating System with some software requirements, because the speech recognition is not performed on the local machine.}}&lt;br /&gt;
&lt;br /&gt;
Because the performance of your Freerunner is too poor for voice recognition, the Google Voice API can be used to convert a [http://wiki.openmoko.org/wiki/Applications#Audio recorded Audio file] into a text file. Be aware that the audio file will be transmitted to Google and the recognition is not performed on your FR. This implies, that you need to have Internet access on your freerunner FR to submit the audio file. &lt;br /&gt;
&lt;br /&gt;
{{Note|You must be aware of the fact, that the follow script is running on your freerunner but it is not a standalone voice recognition software and so you might not want to use this tool for private audio files.}}&lt;br /&gt;
&lt;br /&gt;
==Google Voice API==&lt;br /&gt;
For using the Google Voice API and the script you need to have the following package installed on your freerunner:&lt;br /&gt;
* SoX [http://sox.sourceforge.net http://sox.sourceforge.net]for converting WAV into FLAC files&lt;br /&gt;
* WGET [http://www.gnu.org/s/wget/ http://www.gnu.org/s/wget/] for submitting the FLAC file to the Google Voice API&lt;br /&gt;
* SED [http://sed.sourceforge.net/ http://sed.sourceforge.net/] for extracting the recognized text in the returned string of the Google Voice API&lt;br /&gt;
Install the packages from the repositories of the freerunner [[Distributions]].&lt;br /&gt;
&lt;br /&gt;
==Script Usage==&lt;br /&gt;
* The script &amp;lt;tt&amp;gt;googlevoice.sh&amp;lt;/tt&amp;gt; uses a the audio file &amp;lt;tt&amp;gt;message.wav&amp;lt;/tt&amp;gt; in the directory of the script. All files are stored in the same directory, so you need write permissions for that directory.&lt;br /&gt;
* SoX converts &amp;lt;tt&amp;gt;message.wav&amp;lt;/tt&amp;gt;  into &amp;lt;tt&amp;gt;message.flac&amp;lt;/tt&amp;gt; &lt;br /&gt;
* wget submits the file &amp;lt;tt&amp;gt;message.flac&amp;lt;/tt&amp;gt; to the Google Voice API and writes the return message to &amp;lt;tt&amp;gt;message.ret&amp;lt;/tt&amp;gt;. The language variable in the script is set to German by  &amp;lt;tt&amp;gt;lang=de-de&amp;lt;/tt&amp;gt;. If you want to submit a recorded file in US-English use &amp;lt;tt&amp;gt;lang=en-us&amp;lt;/tt&amp;gt; instead.&lt;br /&gt;
* SED extracts the recognized text &amp;lt;tt&amp;gt;message.ret&amp;lt;/tt&amp;gt; by regular expressions and writes the text into &amp;lt;tt&amp;gt;message.txt&amp;lt;/tt&amp;gt;.&lt;br /&gt;
* Temporary files &amp;lt;tt&amp;gt;message.flac&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;message.ret&amp;lt;/tt&amp;gt; will be deleted after the process.&lt;br /&gt;
&lt;br /&gt;
{{Note|The return code of German audio files needs capitalization of nouns, because all words are return in small caps. A &amp;lt;tt&amp;gt;ispell&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;aspell&amp;lt;/tt&amp;gt; correction of the &amp;lt;tt&amp;gt;message.txt&amp;lt;/tt&amp;gt; might improve the recognized text.}}&lt;br /&gt;
&lt;br /&gt;
==Basic Script Code==&lt;br /&gt;
The script code &amp;lt;tt&amp;gt;googlevoice.sh&amp;lt;/tt&amp;gt; can be tested on any Linux machine with SoX, SED, WGET installed. Modifiy the script according to your demands and storage of your audio files&lt;br /&gt;
&lt;br /&gt;
  #!/bin/sh&lt;br /&gt;
  echo &amp;quot;1 SoX Sound Exchange - Convert WAV to FLAC with 16000&amp;quot; &lt;br /&gt;
  sox message.wav message.flac rate 16k&lt;br /&gt;
  echo &amp;quot;2 Submit to Google Voice Recognition&amp;quot;&lt;br /&gt;
  wget -q -U &amp;quot;Mozilla/5.0&amp;quot; --post-file message.flac --header=&amp;quot;Content-Type: audio/x-flac; rate=16000&amp;quot; -O - &amp;quot;http://www.google.com/speech-api/v1/recognize?lang=de-de&amp;amp;client=chromium&amp;quot; &amp;gt; message.ret&lt;br /&gt;
  echo &amp;quot;3 SED Extract recognized text&amp;quot; &lt;br /&gt;
  cat message.ret | sed 's/.*utterance&amp;quot;:&amp;quot;//' | sed 's/&amp;quot;,&amp;quot;confidence.*//' &amp;gt; message.txt&lt;br /&gt;
  echo &amp;quot;4 Remove Temporary Files&amp;quot;&lt;br /&gt;
  rm message.flac&lt;br /&gt;
  rm message.ret&lt;br /&gt;
  echo &amp;quot;5 Show Text &amp;quot;&lt;br /&gt;
  cat message.txt&lt;br /&gt;
&lt;br /&gt;
The parameter &amp;lt;tt&amp;gt;lang=de-de&amp;lt;/tt&amp;gt; is indicating, that the Google Voice API is expecting a German language audio file. Replace &amp;lt;tt&amp;gt;lang=de-de&amp;lt;/tt&amp;gt; by &amp;lt;tt&amp;gt;lang=en-us&amp;lt;/tt&amp;gt; to submit an audio file in US-English.&lt;br /&gt;
&lt;br /&gt;
== Script with Language Setting and Command Line Parameter ==&lt;br /&gt;
The script &amp;lt;tt&amp;gt;googlevoicepar.sh&amp;lt;/tt&amp;gt; with a command line parameter can be used if you want to use multiple input files for batch file recognition. You will call this script with the basename e.g. &amp;lt;tt&amp;gt;message0, message1,...&amp;lt;/tt&amp;gt; by &lt;br /&gt;
* &amp;lt;tt&amp;gt;googlevoicepar.sh message0&amp;lt;/tt&amp;gt; converts &amp;lt;tt&amp;gt;message0.wav&amp;lt;/tt&amp;gt; into &amp;lt;tt&amp;gt;message0.txt&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;googlevoicepar.sh message1&amp;lt;/tt&amp;gt; converts &amp;lt;tt&amp;gt;message1.wav&amp;lt;/tt&amp;gt; into &amp;lt;tt&amp;gt;message1.txt&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;googlevoicepar.sh message2&amp;lt;/tt&amp;gt; converts &amp;lt;tt&amp;gt;message2.wav&amp;lt;/tt&amp;gt; into &amp;lt;tt&amp;gt;message2.txt&amp;lt;/tt&amp;gt;&lt;br /&gt;
* ....&lt;br /&gt;
&lt;br /&gt;
  #!/bin/sh&lt;br /&gt;
  LANGUAGE=&amp;quot;de-de&amp;quot;&lt;br /&gt;
  echo &amp;quot;1 SoX Sound Exchange - Convert $1.wav to $1.flacC with 16000&amp;quot; &lt;br /&gt;
  sox $1.wav $1.flac rate 16k&lt;br /&gt;
  echo &amp;quot;2 Submit to Google Voice Recognition $1.flac&amp;quot;&lt;br /&gt;
  wget -q -U &amp;quot;Mozilla/5.0&amp;quot; --post-file $1.flac --header=&amp;quot;Content-Type: audio/x-flac; rate=16000&amp;quot; -O - &amp;quot;http://www.google.com/speech-api/v1/recognize?lang=${LANGUAGE}&amp;amp;client=chromium&amp;quot; &amp;gt; $1.ret&lt;br /&gt;
  echo &amp;quot;3 SED Extract recognized text&amp;quot; &lt;br /&gt;
  cat $1.ret | sed 's/.*utterance&amp;quot;:&amp;quot;//' | sed 's/&amp;quot;,&amp;quot;confidence.*//' &amp;gt; $1.txt&lt;br /&gt;
  echo &amp;quot;4 Remove Temporary Files&amp;quot;&lt;br /&gt;
  rm $1.flac&lt;br /&gt;
  rm $1.ret&lt;br /&gt;
  echo &amp;quot;5 Show Text &amp;quot;&lt;br /&gt;
  cat $1.txt&lt;br /&gt;
&lt;br /&gt;
== Compare Performance and Results of Google Voice API with Standalone Speech Recognition on Linux ==&lt;br /&gt;
&lt;br /&gt;
As mentioned above is speech recognition will not be performed on your Freerunner, the audio file will be submitted to a remote server and the the remote server will return an XML-File with info on accuracy and the recognized text. To compare the performance with a standalone speech recognition software, you have to test that on a Linux Box (e.g. Ubuntu)&lt;br /&gt;
* as a text environment of a Large Vocabulary Speech Recognition [https://launchpad.net/ubuntu/maverick/+package/julius Julius] was used with the Julius-VoxForge Accoutic Model for English from the repository on Ubuntu 10.10.&lt;br /&gt;
* Install the PPA for Ubuntu 10.10 by&lt;br /&gt;
  sudo add-apt-repository ppa:grasch-simon-listens/simon&lt;br /&gt;
* Install OpenSource Speech Recognition Software  [http://sourceforge.net/projects/speech2text/ Simon] (see [http://simon.gibolles.com/doc/0.3/simon/en/index.pdf PDF-Simon-Tutorial]&lt;br /&gt;
* Start Simon from Commandline and test a few words with your mic and record it to an audio file.&lt;br /&gt;
* Compare results with same audio file by Google Voice API and Simon. &lt;br /&gt;
&lt;br /&gt;
{{Note|These test might help to create a remote Speech Recognition Solution based on Julius and Simon for usage on a Freerunnner.}}&lt;br /&gt;
&lt;br /&gt;
==Future Development==&lt;br /&gt;
Google API will always need internet access like other speech recognition application for smart phones.&lt;br /&gt;
&lt;br /&gt;
{{Note|Also other Speech recognition apps on Android (FlexT9) or on the iPhone (Dragon Natural Speaking for iPhone) are performing the transcription of an audio sample on the server and returning the transcript to the client mobile phone. That has to be done because of the limitations of the hardware on a mobile phone. This will improve in the future.}}&lt;br /&gt;
&lt;br /&gt;
In analogy to the commercial apps for the development of [http://en.wikipedia.org/wiki/Speech_recognition_in_Linux OpenSource standalone Software on Linux] it might be good to have an OpenSource-Webinterface or an Android app to collect Audio Samples for improving the user independent Speech Recognition Profiles HMM for Speech Recognition of large vocabulary and different languages. &lt;br /&gt;
* Users will get the speech recognition result on the freerunner or any other linux box,&lt;br /&gt;
* The can correct the speech recognition result (transcript) and submit the correction back to the server&lt;br /&gt;
* By the Audio-File-Submit and Text-File-Return of a server based speech recognition the Open Source Speech Recognition on Linux can be improved.&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
* The WGET code was extended from the article on [http://www.commandlinefu.com/commands/view/8043/google-voice-recognition-api http://www.commandlinefu.com].&lt;br /&gt;
* With your [[Android]] phone 2.2 the Google Voice API can be used by installation with Android Market.&lt;br /&gt;
* with the [http://www.google.com/chrome Chrome Browser] on a Linux Box you can test the Google Voice API [http://slides.html5rocks.com/#speech-input http://slides.html5rocks.com/#speech-input] via a Web-Interface.&lt;br /&gt;
* For standalone speech recognition on Linux Systems see [http://en.wikipedia.org/wiki/Speech_recognition_in_Linux Wikipedia-Article].&lt;/div&gt;</summary>
		<author><name>Niebert</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Google_Voice_Recognition</id>
		<title>Google Voice Recognition</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Google_Voice_Recognition"/>
				<updated>2011-11-14T14:26:10Z</updated>
		
		<summary type="html">&lt;p&gt;Niebert: /* Script with Language Setting and Command Line Parameter */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Convert an Audio-File into text file via voice recognition. &lt;br /&gt;
&lt;br /&gt;
{{Note|The shell script mentioned below can be used on any Linux-Operating System with some software requirements, because the speech recognition is not performed on the local machine.}}&lt;br /&gt;
&lt;br /&gt;
Because the performance of your Freerunner is too poor for voice recognition, the Google Voice API can be used to convert a [http://wiki.openmoko.org/wiki/Applications#Audio recorded Audio file] into a text file. Be aware that the audio file will be transmitted to Google and the recognition is not performed on your FR. This implies, that you need to have Internet access on your freerunner FR to submit the audio file. &lt;br /&gt;
&lt;br /&gt;
{{Note|You must be aware of the fact, that the follow script is running on your freerunner but it is not a standalone voice recognition software and so you might not want to use this tool for private audio files.}}&lt;br /&gt;
&lt;br /&gt;
==Google Voice API==&lt;br /&gt;
For using the Google Voice API and the script you need to have the following package installed on your freerunner:&lt;br /&gt;
* SoX [http://sox.sourceforge.net http://sox.sourceforge.net]for converting WAV into FLAC files&lt;br /&gt;
* WGET [http://www.gnu.org/s/wget/ http://www.gnu.org/s/wget/] for submitting the FLAC file to the Google Voice API&lt;br /&gt;
* SED [http://sed.sourceforge.net/ http://sed.sourceforge.net/] for extracting the recognized text in the returned string of the Google Voice API&lt;br /&gt;
Install the packages from the repositories of the freerunner [[Distributions]].&lt;br /&gt;
&lt;br /&gt;
==Script Usage==&lt;br /&gt;
* The script &amp;lt;tt&amp;gt;googlevoice.sh&amp;lt;/tt&amp;gt; uses a the audio file &amp;lt;tt&amp;gt;message.wav&amp;lt;/tt&amp;gt; in the directory of the script. All files are stored in the same directory, so you need write permissions for that directory.&lt;br /&gt;
* SoX converts &amp;lt;tt&amp;gt;message.wav&amp;lt;/tt&amp;gt;  into &amp;lt;tt&amp;gt;message.flac&amp;lt;/tt&amp;gt; &lt;br /&gt;
* wget submits the file &amp;lt;tt&amp;gt;message.flac&amp;lt;/tt&amp;gt; to the Google Voice API and writes the return message to &amp;lt;tt&amp;gt;message.ret&amp;lt;/tt&amp;gt;. The language variable in the script is set to German by  &amp;lt;tt&amp;gt;lang=de-de&amp;lt;/tt&amp;gt;. If you want to submit a recorded file in US-English use &amp;lt;tt&amp;gt;lang=en-us&amp;lt;/tt&amp;gt; instead.&lt;br /&gt;
* SED extracts the recognized text &amp;lt;tt&amp;gt;message.ret&amp;lt;/tt&amp;gt; by regular expressions and writes the text into &amp;lt;tt&amp;gt;message.txt&amp;lt;/tt&amp;gt;.&lt;br /&gt;
* Temporary files &amp;lt;tt&amp;gt;message.flac&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;message.ret&amp;lt;/tt&amp;gt; will be deleted after the process.&lt;br /&gt;
&lt;br /&gt;
{{Note|The return code of German audio files needs capitalization of nouns, because all words are return in small caps. A &amp;lt;tt&amp;gt;ispell&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;aspell&amp;lt;/tt&amp;gt; correction of the &amp;lt;tt&amp;gt;message.txt&amp;lt;/tt&amp;gt; might improve the recognized text.}}&lt;br /&gt;
&lt;br /&gt;
==Basic Script Code==&lt;br /&gt;
The script code &amp;lt;tt&amp;gt;googlevoice.sh&amp;lt;/tt&amp;gt; can be tested on any Linux machine with SoX, SED, WGET installed. Modifiy the script according to your demands and storage of your audio files&lt;br /&gt;
&lt;br /&gt;
  #!/bin/sh&lt;br /&gt;
  echo &amp;quot;1 SoX Sound Exchange - Convert WAV to FLAC with 16000&amp;quot; &lt;br /&gt;
  sox message.wav message.flac rate 16k&lt;br /&gt;
  echo &amp;quot;2 Submit to Google Voice Recognition&amp;quot;&lt;br /&gt;
  wget -q -U &amp;quot;Mozilla/5.0&amp;quot; --post-file message.flac --header=&amp;quot;Content-Type: audio/x-flac; rate=16000&amp;quot; -O - &amp;quot;http://www.google.com/speech-api/v1/recognize?lang=de-de&amp;amp;client=chromium&amp;quot; &amp;gt; message.ret&lt;br /&gt;
  echo &amp;quot;3 SED Extract recognized text&amp;quot; &lt;br /&gt;
  cat message.ret | sed 's/.*utterance&amp;quot;:&amp;quot;//' | sed 's/&amp;quot;,&amp;quot;confidence.*//' &amp;gt; message.txt&lt;br /&gt;
  echo &amp;quot;4 Remove Temporary Files&amp;quot;&lt;br /&gt;
  rm message.flac&lt;br /&gt;
  rm message.ret&lt;br /&gt;
  echo &amp;quot;5 Show Text &amp;quot;&lt;br /&gt;
  cat message.txt&lt;br /&gt;
&lt;br /&gt;
The parameter &amp;lt;tt&amp;gt;lang=de-de&amp;lt;/tt&amp;gt; is indicating, that the Google Voice API is expecting a German language audio file. Replace &amp;lt;tt&amp;gt;lang=de-de&amp;lt;/tt&amp;gt; by &amp;lt;tt&amp;gt;lang=en-us&amp;lt;/tt&amp;gt; to submit an audio file in US-English.&lt;br /&gt;
&lt;br /&gt;
== Script with Language Setting and Command Line Parameter ==&lt;br /&gt;
The script &amp;lt;tt&amp;gt;googlevoicepar.sh&amp;lt;/tt&amp;gt; with a command line parameter can be used if you want to use multiple input files for batch file recognition. You will call this script with the basename e.g. &amp;lt;tt&amp;gt;message0, message1,...&amp;lt;/tt&amp;gt; by &lt;br /&gt;
* &amp;lt;tt&amp;gt;googlevoicepar.sh message0&amp;lt;/tt&amp;gt; converts &amp;lt;tt&amp;gt;message0.wav&amp;lt;/tt&amp;gt; into &amp;lt;tt&amp;gt;message0.txt&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;googlevoicepar.sh message1&amp;lt;/tt&amp;gt; converts &amp;lt;tt&amp;gt;message1.wav&amp;lt;/tt&amp;gt; into &amp;lt;tt&amp;gt;message1.txt&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;googlevoicepar.sh message2&amp;lt;/tt&amp;gt; converts &amp;lt;tt&amp;gt;message2.wav&amp;lt;/tt&amp;gt; into &amp;lt;tt&amp;gt;message2.txt&amp;lt;/tt&amp;gt;&lt;br /&gt;
* ....&lt;br /&gt;
&lt;br /&gt;
  #!/bin/sh&lt;br /&gt;
  LANGUAGE=&amp;quot;de-de&amp;quot;&lt;br /&gt;
  echo &amp;quot;1 SoX Sound Exchange - Convert $1.wav to $1.flacC with 16000&amp;quot; &lt;br /&gt;
  sox $1.wav $1.flac rate 16k&lt;br /&gt;
  echo &amp;quot;2 Submit to Google Voice Recognition $1.flac&amp;quot;&lt;br /&gt;
  wget -q -U &amp;quot;Mozilla/5.0&amp;quot; --post-file $1.flac --header=&amp;quot;Content-Type: audio/x-flac; rate=16000&amp;quot; -O - &amp;quot;http://www.google.com/speech-api/v1/recognize?lang=${LANGUAGE}&amp;amp;client=chromium&amp;quot; &amp;gt; $1.ret&lt;br /&gt;
  echo &amp;quot;3 SED Extract recognized text&amp;quot; &lt;br /&gt;
  cat $1.ret | sed 's/.*utterance&amp;quot;:&amp;quot;//' | sed 's/&amp;quot;,&amp;quot;confidence.*//' &amp;gt; $1.txt&lt;br /&gt;
  echo &amp;quot;4 Remove Temporary Files&amp;quot;&lt;br /&gt;
  rm $1.flac&lt;br /&gt;
  rm $1.ret&lt;br /&gt;
  echo &amp;quot;5 Show Text &amp;quot;&lt;br /&gt;
  cat $1.txt&lt;br /&gt;
&lt;br /&gt;
== Compare Performance and Results of Google Voice API with Standalone Speech Recognition on Linux ==&lt;br /&gt;
&lt;br /&gt;
As mentioned above is speech recognition will not be performed on your Freerunner, the audio file will be submitted to a remote server and the the remote server will return an XML-File with info on accuracy and the recognized text. To compare the performance with a standalone speech recognition software, you have to test that on a Linux Box (e.g. Ubuntu)&lt;br /&gt;
* as a text environment of a Large Vocabulary Speech Recognition [https://launchpad.net/ubuntu/maverick/+package/julius Julius] was used with the Julius-VoxForge Accoutic Model for English from the repository on Ubuntu 10.10.&lt;br /&gt;
* Install the PPA for Ubuntu 10.10 by&lt;br /&gt;
  sudo add-apt-repository ppa:grasch-simon-listens/simon&lt;br /&gt;
* Install OpenSource Speech Recognition Software  [http://sourceforge.net/projects/speech2text/ Simon] (see [http://simon.gibolles.com/doc/0.3/simon/en/index.pdf PDF-Simon-Tutorial]&lt;br /&gt;
* Start Simon from Commandline and test a few words with your mic and record it to an audio file.&lt;br /&gt;
* Compare results with same audio file by Google Voice API and Simon. &lt;br /&gt;
&lt;br /&gt;
{{Note||These test might help to create a remote Speech Recognition Solution based on Julius and Simon for usage on a Freerunnner.}}&lt;br /&gt;
&lt;br /&gt;
==Future Development==&lt;br /&gt;
Google API will always need internet access like other speech recognition application for smart phones.&lt;br /&gt;
&lt;br /&gt;
{{Note|Also other Speech recognition apps on Android (FlexT9) or on the iPhone (Dragon Natural Speaking for iPhone) are performing the transcription of an audio sample on the server and returning the transcript to the client mobile phone. That has to be done because of the limitations of the hardware on a mobile phone. This will improve in the future.}}&lt;br /&gt;
&lt;br /&gt;
In analogy to the commercial apps for the development of [http://en.wikipedia.org/wiki/Speech_recognition_in_Linux OpenSource standalone Software on Linux] it might be good to have an OpenSource-Webinterface or an Android app to collect Audio Samples for improving the user independent Speech Recognition Profiles HMM for Speech Recognition of large vocabulary and different languages. &lt;br /&gt;
* Users will get the speech recognition result on the freerunner or any other linux box,&lt;br /&gt;
* The can correct the speech recognition result (transcript) and submit the correction back to the server&lt;br /&gt;
* By the Audio-File-Submit and Text-File-Return of a server based speech recognition the Open Source Speech Recognition on Linux can be improved.&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
* The WGET code was extended from the article on [http://www.commandlinefu.com/commands/view/8043/google-voice-recognition-api http://www.commandlinefu.com].&lt;br /&gt;
* With your [[Android]] phone 2.2 the Google Voice API can be used by installation with Android Market.&lt;br /&gt;
* with the [http://www.google.com/chrome Chrome Browser] on a Linux Box you can test the Google Voice API [http://slides.html5rocks.com/#speech-input http://slides.html5rocks.com/#speech-input] via a Web-Interface.&lt;br /&gt;
* For standalone speech recognition on Linux Systems see [http://en.wikipedia.org/wiki/Speech_recognition_in_Linux Wikipedia-Article].&lt;/div&gt;</summary>
		<author><name>Niebert</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Google_Voice_Recognition</id>
		<title>Google Voice Recognition</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Google_Voice_Recognition"/>
				<updated>2011-11-14T11:34:30Z</updated>
		
		<summary type="html">&lt;p&gt;Niebert: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Convert an Audio-File into text file via voice recognition. &lt;br /&gt;
&lt;br /&gt;
{{Note|The shell script mentioned below can be used on any Linux-Operating System with some software requirements, because the speech recognition is not performed on the local machine.}}&lt;br /&gt;
&lt;br /&gt;
Because the performance of your Freerunner is too poor for voice recognition, the Google Voice API can be used to convert a [http://wiki.openmoko.org/wiki/Applications#Audio recorded Audio file] into a text file. Be aware that the audio file will be transmitted to Google and the recognition is not performed on your FR. This implies, that you need to have Internet access on your freerunner FR to submit the audio file. &lt;br /&gt;
&lt;br /&gt;
{{Note|You must be aware of the fact, that the follow script is running on your freerunner but it is not a standalone voice recognition software and so you might not want to use this tool for private audio files.}}&lt;br /&gt;
&lt;br /&gt;
==Google Voice API==&lt;br /&gt;
For using the Google Voice API and the script you need to have the following package installed on your freerunner:&lt;br /&gt;
* SoX [http://sox.sourceforge.net http://sox.sourceforge.net]for converting WAV into FLAC files&lt;br /&gt;
* WGET [http://www.gnu.org/s/wget/ http://www.gnu.org/s/wget/] for submitting the FLAC file to the Google Voice API&lt;br /&gt;
* SED [http://sed.sourceforge.net/ http://sed.sourceforge.net/] for extracting the recognized text in the returned string of the Google Voice API&lt;br /&gt;
Install the packages from the repositories of the freerunner [[Distributions]].&lt;br /&gt;
&lt;br /&gt;
==Script Usage==&lt;br /&gt;
* The script &amp;lt;tt&amp;gt;googlevoice.sh&amp;lt;/tt&amp;gt; uses a the audio file &amp;lt;tt&amp;gt;message.wav&amp;lt;/tt&amp;gt; in the directory of the script. All files are stored in the same directory, so you need write permissions for that directory.&lt;br /&gt;
* SoX converts &amp;lt;tt&amp;gt;message.wav&amp;lt;/tt&amp;gt;  into &amp;lt;tt&amp;gt;message.flac&amp;lt;/tt&amp;gt; &lt;br /&gt;
* wget submits the file &amp;lt;tt&amp;gt;message.flac&amp;lt;/tt&amp;gt; to the Google Voice API and writes the return message to &amp;lt;tt&amp;gt;message.ret&amp;lt;/tt&amp;gt;. The language variable in the script is set to German by  &amp;lt;tt&amp;gt;lang=de-de&amp;lt;/tt&amp;gt;. If you want to submit a recorded file in US-English use &amp;lt;tt&amp;gt;lang=en-us&amp;lt;/tt&amp;gt; instead.&lt;br /&gt;
* SED extracts the recognized text &amp;lt;tt&amp;gt;message.ret&amp;lt;/tt&amp;gt; by regular expressions and writes the text into &amp;lt;tt&amp;gt;message.txt&amp;lt;/tt&amp;gt;.&lt;br /&gt;
* Temporary files &amp;lt;tt&amp;gt;message.flac&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;message.ret&amp;lt;/tt&amp;gt; will be deleted after the process.&lt;br /&gt;
&lt;br /&gt;
{{Note|The return code of German audio files needs capitalization of nouns, because all words are return in small caps. A &amp;lt;tt&amp;gt;ispell&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;aspell&amp;lt;/tt&amp;gt; correction of the &amp;lt;tt&amp;gt;message.txt&amp;lt;/tt&amp;gt; might improve the recognized text.}}&lt;br /&gt;
&lt;br /&gt;
==Basic Script Code==&lt;br /&gt;
The script code &amp;lt;tt&amp;gt;googlevoice.sh&amp;lt;/tt&amp;gt; can be tested on any Linux machine with SoX, SED, WGET installed. Modifiy the script according to your demands and storage of your audio files&lt;br /&gt;
&lt;br /&gt;
  #!/bin/sh&lt;br /&gt;
  echo &amp;quot;1 SoX Sound Exchange - Convert WAV to FLAC with 16000&amp;quot; &lt;br /&gt;
  sox message.wav message.flac rate 16k&lt;br /&gt;
  echo &amp;quot;2 Submit to Google Voice Recognition&amp;quot;&lt;br /&gt;
  wget -q -U &amp;quot;Mozilla/5.0&amp;quot; --post-file message.flac --header=&amp;quot;Content-Type: audio/x-flac; rate=16000&amp;quot; -O - &amp;quot;http://www.google.com/speech-api/v1/recognize?lang=de-de&amp;amp;client=chromium&amp;quot; &amp;gt; message.ret&lt;br /&gt;
  echo &amp;quot;3 SED Extract recognized text&amp;quot; &lt;br /&gt;
  cat message.ret | sed 's/.*utterance&amp;quot;:&amp;quot;//' | sed 's/&amp;quot;,&amp;quot;confidence.*//' &amp;gt; message.txt&lt;br /&gt;
  echo &amp;quot;4 Remove Temporary Files&amp;quot;&lt;br /&gt;
  rm message.flac&lt;br /&gt;
  rm message.ret&lt;br /&gt;
  echo &amp;quot;5 Show Text &amp;quot;&lt;br /&gt;
  cat message.txt&lt;br /&gt;
&lt;br /&gt;
The parameter &amp;lt;tt&amp;gt;lang=de-de&amp;lt;/tt&amp;gt; is indicating, that the Google Voice API is expecting a German language audio file. Replace &amp;lt;tt&amp;gt;lang=de-de&amp;lt;/tt&amp;gt; by &amp;lt;tt&amp;gt;lang=en-us&amp;lt;/tt&amp;gt; to submit an audio file in US-English.&lt;br /&gt;
&lt;br /&gt;
== Script with Language Setting and Command Line Parameter ==&lt;br /&gt;
The script &amp;lt;tt&amp;gt;googlevoicepar.sh&amp;lt;/tt&amp;gt; with a command line parameter can be used if you want to use multiple input files for batch file recognition. You will call this script with the basename e.g. &amp;lt;tt&amp;gt;message0, message1,...&amp;lt;/tt&amp;gt; by &lt;br /&gt;
* &amp;lt;tt&amp;gt;googlevoicepar.sh message0&amp;lt;/tt&amp;gt; converts &amp;lt;tt&amp;gt;message0.wav&amp;lt;/tt&amp;gt; into &amp;lt;tt&amp;gt;message0.txt&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;googlevoicepar.sh message1&amp;lt;/tt&amp;gt; converts &amp;lt;tt&amp;gt;message1.wav&amp;lt;/tt&amp;gt; into &amp;lt;tt&amp;gt;message1.txt&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;googlevoicepar.sh message2&amp;lt;/tt&amp;gt; converts &amp;lt;tt&amp;gt;message2.wav&amp;lt;/tt&amp;gt; into &amp;lt;tt&amp;gt;message2.txt&amp;lt;/tt&amp;gt;&lt;br /&gt;
* ....&lt;br /&gt;
&lt;br /&gt;
  #!/bin/sh&lt;br /&gt;
  LANGUAGE=&amp;quot;de-de&amp;quot;&lt;br /&gt;
  echo &amp;quot;1 SoX Sound Exchange - Convert $1.wav to $1.flacC with 16000&amp;quot; &lt;br /&gt;
  sox $1.wav $1.flac rate 16k&lt;br /&gt;
  echo &amp;quot;2 Submit to Google Voice Recognition $1.flac&amp;quot;&lt;br /&gt;
  wget -q -U &amp;quot;Mozilla/5.0&amp;quot; --post-file $1.flac --header=&amp;quot;Content-Type: audio/x-flac; rate=16000&amp;quot; -O - &amp;quot;http://www.google.com/speech-api/v1/recognize?lang=${LANGUAGE}&amp;amp;client=chromium&amp;quot; &amp;gt; $1.ret&lt;br /&gt;
  echo &amp;quot;3 SED Extract recognized text&amp;quot; &lt;br /&gt;
  cat $1.ret | sed 's/.*utterance&amp;quot;:&amp;quot;//' | sed 's/&amp;quot;,&amp;quot;confidence.*//' &amp;gt; $1.txt&lt;br /&gt;
  echo &amp;quot;4 Remove Temporary Files&amp;quot;&lt;br /&gt;
  rm $1.flac&lt;br /&gt;
  rm $1.ret&lt;br /&gt;
  echo &amp;quot;5 Show Text &amp;quot;&lt;br /&gt;
  cat $1.txt&lt;br /&gt;
&lt;br /&gt;
==Future Development==&lt;br /&gt;
Google API will always need internet access like other speech recognition application for smart phones.&lt;br /&gt;
&lt;br /&gt;
{{Note|Also other Speech recognition apps on Android (FlexT9) or on the iPhone (Dragon Natural Speaking for iPhone) are performing the transcription of an audio sample on the server and returning the transcript to the client mobile phone. That has to be done because of the limitations of the hardware on a mobile phone. This will improve in the future.}}&lt;br /&gt;
&lt;br /&gt;
In analogy to the commercial apps for the development of [http://en.wikipedia.org/wiki/Speech_recognition_in_Linux OpenSource standalone Software on Linux] it might be good to have an OpenSource-Webinterface or an Android app to collect Audio Samples for improving the user independent Speech Recognition Profiles HMM for Speech Recognition of large vocabulary and different languages. &lt;br /&gt;
* Users will get the speech recognition result on the freerunner or any other linux box,&lt;br /&gt;
* The can correct the speech recognition result (transcript) and submit the correction back to the server&lt;br /&gt;
* By the Audio-File-Submit and Text-File-Return of a server based speech recognition the Open Source Speech Recognition on Linux can be improved.&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
* The WGET code was extended from the article on [http://www.commandlinefu.com/commands/view/8043/google-voice-recognition-api http://www.commandlinefu.com].&lt;br /&gt;
* With your [[Android]] phone 2.2 the Google Voice API can be used by installation with Android Market.&lt;br /&gt;
* with the [http://www.google.com/chrome Chrome Browser] on a Linux Box you can test the Google Voice API [http://slides.html5rocks.com/#speech-input http://slides.html5rocks.com/#speech-input] via a Web-Interface.&lt;br /&gt;
* For standalone speech recognition on Linux Systems see [http://en.wikipedia.org/wiki/Speech_recognition_in_Linux Wikipedia-Article].&lt;/div&gt;</summary>
		<author><name>Niebert</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Google_Voice_Recognition</id>
		<title>Google Voice Recognition</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Google_Voice_Recognition"/>
				<updated>2011-11-14T11:33:46Z</updated>
		
		<summary type="html">&lt;p&gt;Niebert: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Convert an Audio-File into text file via voice recognition. &lt;br /&gt;
&lt;br /&gt;
{{Note|The shell script mentioned below can be used on any Linux-Operating System with some software requirements, because the speech recognition is not performed on the local machine.}}&lt;br /&gt;
&lt;br /&gt;
Because the performance of your Freerunner is too poor for voice recognition, the Google Voice API can be used to convert a [http://wiki.openmoko.org/wiki/Applications#Audio recorded Audio file] into a text file. Be aware that the audio file will be transmitted to Google and the recognition is not performed on FR. This implies, that you need to have Internet access on your freerunner FR to submit the audio file. &lt;br /&gt;
&lt;br /&gt;
{{Note|You must be aware of the fact, that the follow script is running on your freerunner but it is not a standalone voice recognition software and so you might not want to use this tool for private audio files.}}&lt;br /&gt;
&lt;br /&gt;
==Google Voice API==&lt;br /&gt;
For using the Google Voice API and the script you need to have the following package installed on your freerunner:&lt;br /&gt;
* SoX [http://sox.sourceforge.net http://sox.sourceforge.net]for converting WAV into FLAC files&lt;br /&gt;
* WGET [http://www.gnu.org/s/wget/ http://www.gnu.org/s/wget/] for submitting the FLAC file to the Google Voice API&lt;br /&gt;
* SED [http://sed.sourceforge.net/ http://sed.sourceforge.net/] for extracting the recognized text in the returned string of the Google Voice API&lt;br /&gt;
Install the packages from the repositories of the freerunner [[Distributions]].&lt;br /&gt;
&lt;br /&gt;
==Script Usage==&lt;br /&gt;
* The script &amp;lt;tt&amp;gt;googlevoice.sh&amp;lt;/tt&amp;gt; uses a the audio file &amp;lt;tt&amp;gt;message.wav&amp;lt;/tt&amp;gt; in the directory of the script. All files are stored in the same directory, so you need write permissions for that directory.&lt;br /&gt;
* SoX converts &amp;lt;tt&amp;gt;message.wav&amp;lt;/tt&amp;gt;  into &amp;lt;tt&amp;gt;message.flac&amp;lt;/tt&amp;gt; &lt;br /&gt;
* wget submits the file &amp;lt;tt&amp;gt;message.flac&amp;lt;/tt&amp;gt; to the Google Voice API and writes the return message to &amp;lt;tt&amp;gt;message.ret&amp;lt;/tt&amp;gt;. The language variable in the script is set to German by  &amp;lt;tt&amp;gt;lang=de-de&amp;lt;/tt&amp;gt;. If you want to submit a recorded file in US-English use &amp;lt;tt&amp;gt;lang=en-us&amp;lt;/tt&amp;gt; instead.&lt;br /&gt;
* SED extracts the recognized text &amp;lt;tt&amp;gt;message.ret&amp;lt;/tt&amp;gt; by regular expressions and writes the text into &amp;lt;tt&amp;gt;message.txt&amp;lt;/tt&amp;gt;.&lt;br /&gt;
* Temporary files &amp;lt;tt&amp;gt;message.flac&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;message.ret&amp;lt;/tt&amp;gt; will be deleted after the process.&lt;br /&gt;
&lt;br /&gt;
{{Note|The return code of German audio files needs capitalization of nouns, because all words are return in small caps. A &amp;lt;tt&amp;gt;ispell&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;aspell&amp;lt;/tt&amp;gt; correction of the &amp;lt;tt&amp;gt;message.txt&amp;lt;/tt&amp;gt; might improve the recognized text.}}&lt;br /&gt;
&lt;br /&gt;
==Basic Script Code==&lt;br /&gt;
The script code &amp;lt;tt&amp;gt;googlevoice.sh&amp;lt;/tt&amp;gt; can be tested on any Linux machine with SoX, SED, WGET installed. Modifiy the script according to your demands and storage of your audio files&lt;br /&gt;
&lt;br /&gt;
  #!/bin/sh&lt;br /&gt;
  echo &amp;quot;1 SoX Sound Exchange - Convert WAV to FLAC with 16000&amp;quot; &lt;br /&gt;
  sox message.wav message.flac rate 16k&lt;br /&gt;
  echo &amp;quot;2 Submit to Google Voice Recognition&amp;quot;&lt;br /&gt;
  wget -q -U &amp;quot;Mozilla/5.0&amp;quot; --post-file message.flac --header=&amp;quot;Content-Type: audio/x-flac; rate=16000&amp;quot; -O - &amp;quot;http://www.google.com/speech-api/v1/recognize?lang=de-de&amp;amp;client=chromium&amp;quot; &amp;gt; message.ret&lt;br /&gt;
  echo &amp;quot;3 SED Extract recognized text&amp;quot; &lt;br /&gt;
  cat message.ret | sed 's/.*utterance&amp;quot;:&amp;quot;//' | sed 's/&amp;quot;,&amp;quot;confidence.*//' &amp;gt; message.txt&lt;br /&gt;
  echo &amp;quot;4 Remove Temporary Files&amp;quot;&lt;br /&gt;
  rm message.flac&lt;br /&gt;
  rm message.ret&lt;br /&gt;
  echo &amp;quot;5 Show Text &amp;quot;&lt;br /&gt;
  cat message.txt&lt;br /&gt;
&lt;br /&gt;
The parameter &amp;lt;tt&amp;gt;lang=de-de&amp;lt;/tt&amp;gt; is indicating, that the Google Voice API is expecting a German language audio file. Replace &amp;lt;tt&amp;gt;lang=de-de&amp;lt;/tt&amp;gt; by &amp;lt;tt&amp;gt;lang=en-us&amp;lt;/tt&amp;gt; to submit an audio file in US-English.&lt;br /&gt;
&lt;br /&gt;
== Script with Language Setting and Command Line Parameter ==&lt;br /&gt;
The script &amp;lt;tt&amp;gt;googlevoicepar.sh&amp;lt;/tt&amp;gt; with a command line parameter can be used if you want to use multiple input files for batch file recognition. You will call this script with the basename e.g. &amp;lt;tt&amp;gt;message0, message1,...&amp;lt;/tt&amp;gt; by &lt;br /&gt;
* &amp;lt;tt&amp;gt;googlevoicepar.sh message0&amp;lt;/tt&amp;gt; converts &amp;lt;tt&amp;gt;message0.wav&amp;lt;/tt&amp;gt; into &amp;lt;tt&amp;gt;message0.txt&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;googlevoicepar.sh message1&amp;lt;/tt&amp;gt; converts &amp;lt;tt&amp;gt;message1.wav&amp;lt;/tt&amp;gt; into &amp;lt;tt&amp;gt;message1.txt&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;googlevoicepar.sh message2&amp;lt;/tt&amp;gt; converts &amp;lt;tt&amp;gt;message2.wav&amp;lt;/tt&amp;gt; into &amp;lt;tt&amp;gt;message2.txt&amp;lt;/tt&amp;gt;&lt;br /&gt;
* ....&lt;br /&gt;
&lt;br /&gt;
  #!/bin/sh&lt;br /&gt;
  LANGUAGE=&amp;quot;de-de&amp;quot;&lt;br /&gt;
  echo &amp;quot;1 SoX Sound Exchange - Convert $1.wav to $1.flacC with 16000&amp;quot; &lt;br /&gt;
  sox $1.wav $1.flac rate 16k&lt;br /&gt;
  echo &amp;quot;2 Submit to Google Voice Recognition $1.flac&amp;quot;&lt;br /&gt;
  wget -q -U &amp;quot;Mozilla/5.0&amp;quot; --post-file $1.flac --header=&amp;quot;Content-Type: audio/x-flac; rate=16000&amp;quot; -O - &amp;quot;http://www.google.com/speech-api/v1/recognize?lang=${LANGUAGE}&amp;amp;client=chromium&amp;quot; &amp;gt; $1.ret&lt;br /&gt;
  echo &amp;quot;3 SED Extract recognized text&amp;quot; &lt;br /&gt;
  cat $1.ret | sed 's/.*utterance&amp;quot;:&amp;quot;//' | sed 's/&amp;quot;,&amp;quot;confidence.*//' &amp;gt; $1.txt&lt;br /&gt;
  echo &amp;quot;4 Remove Temporary Files&amp;quot;&lt;br /&gt;
  rm $1.flac&lt;br /&gt;
  rm $1.ret&lt;br /&gt;
  echo &amp;quot;5 Show Text &amp;quot;&lt;br /&gt;
  cat $1.txt&lt;br /&gt;
&lt;br /&gt;
==Future Development==&lt;br /&gt;
Google API will always need internet access like other speech recognition application for smart phones.&lt;br /&gt;
&lt;br /&gt;
{{Note|Also other Speech recognition apps on Android (FlexT9) or on the iPhone (Dragon Natural Speaking for iPhone) are performing the transcription of an audio sample on the server and returning the transcript to the client mobile phone. That has to be done because of the limitations of the hardware on a mobile phone. This will improve in the future.}}&lt;br /&gt;
&lt;br /&gt;
In analogy to the commercial apps for the development of [http://en.wikipedia.org/wiki/Speech_recognition_in_Linux OpenSource standalone Software on Linux] it might be good to have an OpenSource-Webinterface or an Android app to collect Audio Samples for improving the user independent Speech Recognition Profiles HMM for Speech Recognition of large vocabulary and different languages. &lt;br /&gt;
* Users will get the speech recognition result on the freerunner or any other linux box,&lt;br /&gt;
* The can correct the speech recognition result (transcript) and submit the correction back to the server&lt;br /&gt;
* By the Audio-File-Submit and Text-File-Return of a server based speech recognition the Open Source Speech Recognition on Linux can be improved.&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
* The WGET code was extended from the article on [http://www.commandlinefu.com/commands/view/8043/google-voice-recognition-api http://www.commandlinefu.com].&lt;br /&gt;
* With your [[Android]] phone 2.2 the Google Voice API can be used by installation with Android Market.&lt;br /&gt;
* with the [http://www.google.com/chrome Chrome Browser] on a Linux Box you can test the Google Voice API [http://slides.html5rocks.com/#speech-input http://slides.html5rocks.com/#speech-input] via a Web-Interface.&lt;br /&gt;
* For standalone speech recognition on Linux Systems see [http://en.wikipedia.org/wiki/Speech_recognition_in_Linux Wikipedia-Article].&lt;/div&gt;</summary>
		<author><name>Niebert</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Google_Voice_Recognition</id>
		<title>Google Voice Recognition</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Google_Voice_Recognition"/>
				<updated>2011-11-07T20:54:02Z</updated>
		
		<summary type="html">&lt;p&gt;Niebert: /* Future Development */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Convert an Audio-File into text file via voice recognition. &lt;br /&gt;
&lt;br /&gt;
{{Note|The shell script mentioned below can be used on any Linux-Operating System with some software requirements, because the speech recognition is not performed on the local machine.}}&lt;br /&gt;
&lt;br /&gt;
Because the performance of your Freerunner is too poor for voice recognition, the Google Voice API can be used to convert an [http://wiki.openmoko.org/wiki/Applications#Audio recorded Audio file] into a text file. Be aware that the audio file will be transmitted to Google and the recognition is not performed on FR. This implies, that you need to have Internet access on your freerunner FR to submit the audio file. &lt;br /&gt;
&lt;br /&gt;
{{Note|You must be aware of the fact, that the follow script is running on your freerunner but it is not a standalone voice recognition software and so you might not want to use this tool for private audio files.}}&lt;br /&gt;
&lt;br /&gt;
==Google Voice API==&lt;br /&gt;
For using the Google Voice API and the script you need to have the following package installed on your freerunner:&lt;br /&gt;
* SoX [http://sox.sourceforge.net http://sox.sourceforge.net]for converting WAV into FLAC files&lt;br /&gt;
* WGET [http://www.gnu.org/s/wget/ http://www.gnu.org/s/wget/] for submitting the FLAC file to the Google Voice API&lt;br /&gt;
* SED [http://sed.sourceforge.net/ http://sed.sourceforge.net/] for extracting the recognized text in the returned string of the Google Voice API&lt;br /&gt;
Install the packages from the repositories of the freerunner [[Distributions]].&lt;br /&gt;
&lt;br /&gt;
==Script Usage==&lt;br /&gt;
* The script &amp;lt;tt&amp;gt;googlevoice.sh&amp;lt;/tt&amp;gt; uses a the audio file &amp;lt;tt&amp;gt;message.wav&amp;lt;/tt&amp;gt; in the directory of the script. All files are stored in the same directory, so you need write permissions for that directory.&lt;br /&gt;
* SoX converts &amp;lt;tt&amp;gt;message.wav&amp;lt;/tt&amp;gt;  into &amp;lt;tt&amp;gt;message.flac&amp;lt;/tt&amp;gt; &lt;br /&gt;
* wget submits the file &amp;lt;tt&amp;gt;message.flac&amp;lt;/tt&amp;gt; to the Google Voice API and writes the return message to &amp;lt;tt&amp;gt;message.ret&amp;lt;/tt&amp;gt;. The language variable in the script is set to German by  &amp;lt;tt&amp;gt;lang=de-de&amp;lt;/tt&amp;gt;. If you want to submit a recorded file in US-English use &amp;lt;tt&amp;gt;lang=en-us&amp;lt;/tt&amp;gt; instead.&lt;br /&gt;
* SED extracts the recognized text &amp;lt;tt&amp;gt;message.ret&amp;lt;/tt&amp;gt; by regular expressions and writes the text into &amp;lt;tt&amp;gt;message.txt&amp;lt;/tt&amp;gt;.&lt;br /&gt;
* Temporary files &amp;lt;tt&amp;gt;message.flac&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;message.ret&amp;lt;/tt&amp;gt; will be deleted after the process.&lt;br /&gt;
&lt;br /&gt;
{{Note|The return code of German audio files needs capitalization of nouns, because all words are return in small caps. A &amp;lt;tt&amp;gt;ispell&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;aspell&amp;lt;/tt&amp;gt; correction of the &amp;lt;tt&amp;gt;message.txt&amp;lt;/tt&amp;gt; might improve the recognized text.}}&lt;br /&gt;
&lt;br /&gt;
==Basic Script Code==&lt;br /&gt;
The script code &amp;lt;tt&amp;gt;googlevoice.sh&amp;lt;/tt&amp;gt; can be tested on any Linux machine with SoX, SED, WGET installed. Modifiy the script according to your demands and storage of your audio files&lt;br /&gt;
&lt;br /&gt;
  #!/bin/sh&lt;br /&gt;
  echo &amp;quot;1 SoX Sound Exchange - Convert WAV to FLAC with 16000&amp;quot; &lt;br /&gt;
  sox message.wav message.flac rate 16k&lt;br /&gt;
  echo &amp;quot;2 Submit to Google Voice Recognition&amp;quot;&lt;br /&gt;
  wget -q -U &amp;quot;Mozilla/5.0&amp;quot; --post-file message.flac --header=&amp;quot;Content-Type: audio/x-flac; rate=16000&amp;quot; -O - &amp;quot;http://www.google.com/speech-api/v1/recognize?lang=de-de&amp;amp;client=chromium&amp;quot; &amp;gt; message.ret&lt;br /&gt;
  echo &amp;quot;3 SED Extract recognized text&amp;quot; &lt;br /&gt;
  cat message.ret | sed 's/.*utterance&amp;quot;:&amp;quot;//' | sed 's/&amp;quot;,&amp;quot;confidence.*//' &amp;gt; message.txt&lt;br /&gt;
  echo &amp;quot;4 Remove Temporary Files&amp;quot;&lt;br /&gt;
  rm message.flac&lt;br /&gt;
  rm message.ret&lt;br /&gt;
  echo &amp;quot;5 Show Text &amp;quot;&lt;br /&gt;
  cat message.txt&lt;br /&gt;
&lt;br /&gt;
The parameter &amp;lt;tt&amp;gt;lang=de-de&amp;lt;/tt&amp;gt; is indicating, that the Google Voice API is expecting a German language audio file. Replace &amp;lt;tt&amp;gt;lang=de-de&amp;lt;/tt&amp;gt; by &amp;lt;tt&amp;gt;lang=en-us&amp;lt;/tt&amp;gt; to submit an audio file in US-English.&lt;br /&gt;
&lt;br /&gt;
== Script with Language Setting and Command Line Parameter ==&lt;br /&gt;
The script &amp;lt;tt&amp;gt;googlevoicepar.sh&amp;lt;/tt&amp;gt; with a command line parameter can be used if you want to use multiple input files for batch file recognition. You will call this script with the basename e.g. &amp;lt;tt&amp;gt;message0, message1,...&amp;lt;/tt&amp;gt; by &lt;br /&gt;
* &amp;lt;tt&amp;gt;googlevoicepar.sh message0&amp;lt;/tt&amp;gt; converts &amp;lt;tt&amp;gt;message0.wav&amp;lt;/tt&amp;gt; into &amp;lt;tt&amp;gt;message0.txt&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;googlevoicepar.sh message1&amp;lt;/tt&amp;gt; converts &amp;lt;tt&amp;gt;message1.wav&amp;lt;/tt&amp;gt; into &amp;lt;tt&amp;gt;message1.txt&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;googlevoicepar.sh message2&amp;lt;/tt&amp;gt; converts &amp;lt;tt&amp;gt;message2.wav&amp;lt;/tt&amp;gt; into &amp;lt;tt&amp;gt;message2.txt&amp;lt;/tt&amp;gt;&lt;br /&gt;
* ....&lt;br /&gt;
&lt;br /&gt;
  #!/bin/sh&lt;br /&gt;
  LANGUAGE=&amp;quot;de-de&amp;quot;&lt;br /&gt;
  echo &amp;quot;1 SoX Sound Exchange - Convert $1.wav to $1.flacC with 16000&amp;quot; &lt;br /&gt;
  sox $1.wav $1.flac rate 16k&lt;br /&gt;
  echo &amp;quot;2 Submit to Google Voice Recognition $1.flac&amp;quot;&lt;br /&gt;
  wget -q -U &amp;quot;Mozilla/5.0&amp;quot; --post-file $1.flac --header=&amp;quot;Content-Type: audio/x-flac; rate=16000&amp;quot; -O - &amp;quot;http://www.google.com/speech-api/v1/recognize?lang=${LANGUAGE}&amp;amp;client=chromium&amp;quot; &amp;gt; $1.ret&lt;br /&gt;
  echo &amp;quot;3 SED Extract recognized text&amp;quot; &lt;br /&gt;
  cat $1.ret | sed 's/.*utterance&amp;quot;:&amp;quot;//' | sed 's/&amp;quot;,&amp;quot;confidence.*//' &amp;gt; $1.txt&lt;br /&gt;
  echo &amp;quot;4 Remove Temporary Files&amp;quot;&lt;br /&gt;
  rm $1.flac&lt;br /&gt;
  rm $1.ret&lt;br /&gt;
  echo &amp;quot;5 Show Text &amp;quot;&lt;br /&gt;
  cat $1.txt&lt;br /&gt;
&lt;br /&gt;
==Future Development==&lt;br /&gt;
Google API will always need internet access like other speech recognition application for smart phones.&lt;br /&gt;
&lt;br /&gt;
{{Note|Also other Speech recognition apps on Android (FlexT9) or on the iPhone (Dragon Natural Speaking for iPhone) are performing the transcription of an audio sample on the server and returning the transcript to the client mobile phone. That has to be done because of the limitations of the hardware on a mobile phone. This will improve in the future.}}&lt;br /&gt;
&lt;br /&gt;
In analogy to the commercial apps for the development of [http://en.wikipedia.org/wiki/Speech_recognition_in_Linux OpenSource standalone Software on Linux] it might be good to have an OpenSource-Webinterface or an Android app to collect Audio Samples for improving the user independent Speech Recognition Profiles HMM for Speech Recognition of large vocabulary and different languages. &lt;br /&gt;
* Users will get the speech recognition result on the freerunner or any other linux box,&lt;br /&gt;
* The can correct the speech recognition result (transcript) and submit the correction back to the server&lt;br /&gt;
* By the Audio-File-Submit and Text-File-Return of a server based speech recognition the Open Source Speech Recognition on Linux can be improved.&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
* The WGET code was extended from the article on [http://www.commandlinefu.com/commands/view/8043/google-voice-recognition-api http://www.commandlinefu.com].&lt;br /&gt;
* With your [[Android]] phone 2.2 the Google Voice API can be used by installation with Android Market.&lt;br /&gt;
* with the [http://www.google.com/chrome Chrome Browser] on a Linux Box you can test the Google Voice API [http://slides.html5rocks.com/#speech-input http://slides.html5rocks.com/#speech-input] via a Web-Interface.&lt;br /&gt;
* For standalone speech recognition on Linux Systems see [http://en.wikipedia.org/wiki/Speech_recognition_in_Linux Wikipedia-Article].&lt;/div&gt;</summary>
		<author><name>Niebert</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Google_Voice_Recognition</id>
		<title>Google Voice Recognition</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Google_Voice_Recognition"/>
				<updated>2011-11-07T20:46:26Z</updated>
		
		<summary type="html">&lt;p&gt;Niebert: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Convert an Audio-File into text file via voice recognition. &lt;br /&gt;
&lt;br /&gt;
{{Note|The shell script mentioned below can be used on any Linux-Operating System with some software requirements, because the speech recognition is not performed on the local machine.}}&lt;br /&gt;
&lt;br /&gt;
Because the performance of your Freerunner is too poor for voice recognition, the Google Voice API can be used to convert an [http://wiki.openmoko.org/wiki/Applications#Audio recorded Audio file] into a text file. Be aware that the audio file will be transmitted to Google and the recognition is not performed on FR. This implies, that you need to have Internet access on your freerunner FR to submit the audio file. &lt;br /&gt;
&lt;br /&gt;
{{Note|You must be aware of the fact, that the follow script is running on your freerunner but it is not a standalone voice recognition software and so you might not want to use this tool for private audio files.}}&lt;br /&gt;
&lt;br /&gt;
==Google Voice API==&lt;br /&gt;
For using the Google Voice API and the script you need to have the following package installed on your freerunner:&lt;br /&gt;
* SoX [http://sox.sourceforge.net http://sox.sourceforge.net]for converting WAV into FLAC files&lt;br /&gt;
* WGET [http://www.gnu.org/s/wget/ http://www.gnu.org/s/wget/] for submitting the FLAC file to the Google Voice API&lt;br /&gt;
* SED [http://sed.sourceforge.net/ http://sed.sourceforge.net/] for extracting the recognized text in the returned string of the Google Voice API&lt;br /&gt;
Install the packages from the repositories of the freerunner [[Distributions]].&lt;br /&gt;
&lt;br /&gt;
==Script Usage==&lt;br /&gt;
* The script &amp;lt;tt&amp;gt;googlevoice.sh&amp;lt;/tt&amp;gt; uses a the audio file &amp;lt;tt&amp;gt;message.wav&amp;lt;/tt&amp;gt; in the directory of the script. All files are stored in the same directory, so you need write permissions for that directory.&lt;br /&gt;
* SoX converts &amp;lt;tt&amp;gt;message.wav&amp;lt;/tt&amp;gt;  into &amp;lt;tt&amp;gt;message.flac&amp;lt;/tt&amp;gt; &lt;br /&gt;
* wget submits the file &amp;lt;tt&amp;gt;message.flac&amp;lt;/tt&amp;gt; to the Google Voice API and writes the return message to &amp;lt;tt&amp;gt;message.ret&amp;lt;/tt&amp;gt;. The language variable in the script is set to German by  &amp;lt;tt&amp;gt;lang=de-de&amp;lt;/tt&amp;gt;. If you want to submit a recorded file in US-English use &amp;lt;tt&amp;gt;lang=en-us&amp;lt;/tt&amp;gt; instead.&lt;br /&gt;
* SED extracts the recognized text &amp;lt;tt&amp;gt;message.ret&amp;lt;/tt&amp;gt; by regular expressions and writes the text into &amp;lt;tt&amp;gt;message.txt&amp;lt;/tt&amp;gt;.&lt;br /&gt;
* Temporary files &amp;lt;tt&amp;gt;message.flac&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;message.ret&amp;lt;/tt&amp;gt; will be deleted after the process.&lt;br /&gt;
&lt;br /&gt;
{{Note|The return code of German audio files needs capitalization of nouns, because all words are return in small caps. A &amp;lt;tt&amp;gt;ispell&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;aspell&amp;lt;/tt&amp;gt; correction of the &amp;lt;tt&amp;gt;message.txt&amp;lt;/tt&amp;gt; might improve the recognized text.}}&lt;br /&gt;
&lt;br /&gt;
==Basic Script Code==&lt;br /&gt;
The script code &amp;lt;tt&amp;gt;googlevoice.sh&amp;lt;/tt&amp;gt; can be tested on any Linux machine with SoX, SED, WGET installed. Modifiy the script according to your demands and storage of your audio files&lt;br /&gt;
&lt;br /&gt;
  #!/bin/sh&lt;br /&gt;
  echo &amp;quot;1 SoX Sound Exchange - Convert WAV to FLAC with 16000&amp;quot; &lt;br /&gt;
  sox message.wav message.flac rate 16k&lt;br /&gt;
  echo &amp;quot;2 Submit to Google Voice Recognition&amp;quot;&lt;br /&gt;
  wget -q -U &amp;quot;Mozilla/5.0&amp;quot; --post-file message.flac --header=&amp;quot;Content-Type: audio/x-flac; rate=16000&amp;quot; -O - &amp;quot;http://www.google.com/speech-api/v1/recognize?lang=de-de&amp;amp;client=chromium&amp;quot; &amp;gt; message.ret&lt;br /&gt;
  echo &amp;quot;3 SED Extract recognized text&amp;quot; &lt;br /&gt;
  cat message.ret | sed 's/.*utterance&amp;quot;:&amp;quot;//' | sed 's/&amp;quot;,&amp;quot;confidence.*//' &amp;gt; message.txt&lt;br /&gt;
  echo &amp;quot;4 Remove Temporary Files&amp;quot;&lt;br /&gt;
  rm message.flac&lt;br /&gt;
  rm message.ret&lt;br /&gt;
  echo &amp;quot;5 Show Text &amp;quot;&lt;br /&gt;
  cat message.txt&lt;br /&gt;
&lt;br /&gt;
The parameter &amp;lt;tt&amp;gt;lang=de-de&amp;lt;/tt&amp;gt; is indicating, that the Google Voice API is expecting a German language audio file. Replace &amp;lt;tt&amp;gt;lang=de-de&amp;lt;/tt&amp;gt; by &amp;lt;tt&amp;gt;lang=en-us&amp;lt;/tt&amp;gt; to submit an audio file in US-English.&lt;br /&gt;
&lt;br /&gt;
== Script with Language Setting and Command Line Parameter ==&lt;br /&gt;
The script &amp;lt;tt&amp;gt;googlevoicepar.sh&amp;lt;/tt&amp;gt; with a command line parameter can be used if you want to use multiple input files for batch file recognition. You will call this script with the basename e.g. &amp;lt;tt&amp;gt;message0, message1,...&amp;lt;/tt&amp;gt; by &lt;br /&gt;
* &amp;lt;tt&amp;gt;googlevoicepar.sh message0&amp;lt;/tt&amp;gt; converts &amp;lt;tt&amp;gt;message0.wav&amp;lt;/tt&amp;gt; into &amp;lt;tt&amp;gt;message0.txt&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;googlevoicepar.sh message1&amp;lt;/tt&amp;gt; converts &amp;lt;tt&amp;gt;message1.wav&amp;lt;/tt&amp;gt; into &amp;lt;tt&amp;gt;message1.txt&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;googlevoicepar.sh message2&amp;lt;/tt&amp;gt; converts &amp;lt;tt&amp;gt;message2.wav&amp;lt;/tt&amp;gt; into &amp;lt;tt&amp;gt;message2.txt&amp;lt;/tt&amp;gt;&lt;br /&gt;
* ....&lt;br /&gt;
&lt;br /&gt;
  #!/bin/sh&lt;br /&gt;
  LANGUAGE=&amp;quot;de-de&amp;quot;&lt;br /&gt;
  echo &amp;quot;1 SoX Sound Exchange - Convert $1.wav to $1.flacC with 16000&amp;quot; &lt;br /&gt;
  sox $1.wav $1.flac rate 16k&lt;br /&gt;
  echo &amp;quot;2 Submit to Google Voice Recognition $1.flac&amp;quot;&lt;br /&gt;
  wget -q -U &amp;quot;Mozilla/5.0&amp;quot; --post-file $1.flac --header=&amp;quot;Content-Type: audio/x-flac; rate=16000&amp;quot; -O - &amp;quot;http://www.google.com/speech-api/v1/recognize?lang=${LANGUAGE}&amp;amp;client=chromium&amp;quot; &amp;gt; $1.ret&lt;br /&gt;
  echo &amp;quot;3 SED Extract recognized text&amp;quot; &lt;br /&gt;
  cat $1.ret | sed 's/.*utterance&amp;quot;:&amp;quot;//' | sed 's/&amp;quot;,&amp;quot;confidence.*//' &amp;gt; $1.txt&lt;br /&gt;
  echo &amp;quot;4 Remove Temporary Files&amp;quot;&lt;br /&gt;
  rm $1.flac&lt;br /&gt;
  rm $1.ret&lt;br /&gt;
  echo &amp;quot;5 Show Text &amp;quot;&lt;br /&gt;
  cat $1.txt&lt;br /&gt;
&lt;br /&gt;
==Future Development==&lt;br /&gt;
Google API will always need internet access like other speech recognition application for smart phones.&lt;br /&gt;
&lt;br /&gt;
{{Note|Also other Speech recognition apps on Android (FlexT9) or on the iPhone (Dragon Natural Speaking for iPhone) are performing the transcription of an audio sample on the server and returning the transcipt to the client mobile phone.}}&lt;br /&gt;
&lt;br /&gt;
In analogy to the commercial apps for the development of [http://en.wikipedia.org/wiki/Speech_recognition_in_Linux OpenSource standalone Software on Linux] it might be good to have an OpenSource-Webinterface or an Android app to collect Audio Samples for improving the user independent Speech Recognition Profiles HMM for Speech Recognition of large vocabulary and different languages. &lt;br /&gt;
* Users will get the speech recognition result on the freerunner or any other linux box,&lt;br /&gt;
* The can correct the speech recognition result (transcript) and submit the correction back to the server&lt;br /&gt;
* By the Audio-File-Submit and Text-File-Return of a server based speech recognition the Open Source Speech Recognition on Linux can be improved.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
* The WGET code was extended from the article on [http://www.commandlinefu.com/commands/view/8043/google-voice-recognition-api http://www.commandlinefu.com].&lt;br /&gt;
* With your [[Android]] phone 2.2 the Google Voice API can be used by installation with Android Market.&lt;br /&gt;
* with the [http://www.google.com/chrome Chrome Browser] on a Linux Box you can test the Google Voice API [http://slides.html5rocks.com/#speech-input http://slides.html5rocks.com/#speech-input] via a Web-Interface.&lt;br /&gt;
* For standalone speech recognition on Linux Systems see [http://en.wikipedia.org/wiki/Speech_recognition_in_Linux Wikipedia-Article].&lt;/div&gt;</summary>
		<author><name>Niebert</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Google_Voice_Recognition</id>
		<title>Google Voice Recognition</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Google_Voice_Recognition"/>
				<updated>2011-10-04T11:57:57Z</updated>
		
		<summary type="html">&lt;p&gt;Niebert: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Convert an Audio-File into text file via voice recognition. &lt;br /&gt;
&lt;br /&gt;
{{Note|The shell script mentioned below can be used on any Linux-Operating System with some software requirements, because the speech recognition is not performed on the local machine.}}&lt;br /&gt;
&lt;br /&gt;
Because the performance of your Freerunner is too poor for voice recognition, the Google Voice API can be used to convert an [http://wiki.openmoko.org/wiki/Applications#Audio recorded Audio file] into a text file. Be aware that the audio file will be transmitted to Google and the recognition is not performed on FR. This implies, that you need to have Internet access on your freerunner FR to submit the audio file. &lt;br /&gt;
&lt;br /&gt;
{{Note|You must be aware of the fact, that the follow script is running on your freerunner but it is not a standalone voice recognition software and so you might not want to use this tool for private audio files.}}&lt;br /&gt;
&lt;br /&gt;
==Google Voice API==&lt;br /&gt;
For using the Google Voice API and the script you need to have the following package installed on your freerunner:&lt;br /&gt;
* SoX [http://sox.sourceforge.net http://sox.sourceforge.net]for converting WAV into FLAC files&lt;br /&gt;
* WGET [http://www.gnu.org/s/wget/ http://www.gnu.org/s/wget/] for submitting the FLAC file to the Google Voice API&lt;br /&gt;
* SED [http://sed.sourceforge.net/ http://sed.sourceforge.net/] for extracting the recognized text in the returned string of the Google Voice API&lt;br /&gt;
Install the packages from the repositories of the freerunner [[Distributions]].&lt;br /&gt;
&lt;br /&gt;
==Script Usage==&lt;br /&gt;
* The script &amp;lt;tt&amp;gt;googlevoice.sh&amp;lt;/tt&amp;gt; uses a the audio file &amp;lt;tt&amp;gt;message.wav&amp;lt;/tt&amp;gt; in the directory of the script. All files are stored in the same directory, so you need write permissions for that directory.&lt;br /&gt;
* SoX converts &amp;lt;tt&amp;gt;message.wav&amp;lt;/tt&amp;gt;  into &amp;lt;tt&amp;gt;message.flac&amp;lt;/tt&amp;gt; &lt;br /&gt;
* wget submits the file &amp;lt;tt&amp;gt;message.flac&amp;lt;/tt&amp;gt; to the Google Voice API and writes the return message to &amp;lt;tt&amp;gt;message.ret&amp;lt;/tt&amp;gt;. The language variable in the script is set to German by  &amp;lt;tt&amp;gt;lang=de-de&amp;lt;/tt&amp;gt;. If you want to submit a recorded file in US-English use &amp;lt;tt&amp;gt;lang=en-us&amp;lt;/tt&amp;gt; instead.&lt;br /&gt;
* SED extracts the recognized text &amp;lt;tt&amp;gt;message.ret&amp;lt;/tt&amp;gt; by regular expressions and writes the text into &amp;lt;tt&amp;gt;message.txt&amp;lt;/tt&amp;gt;.&lt;br /&gt;
* Temporary files &amp;lt;tt&amp;gt;message.flac&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;message.ret&amp;lt;/tt&amp;gt; will be deleted after the process.&lt;br /&gt;
&lt;br /&gt;
{{Note|The return code of German audio files needs capitalization of nouns, because all words are return in small caps. A &amp;lt;tt&amp;gt;ispell&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;aspell&amp;lt;/tt&amp;gt; correction of the &amp;lt;tt&amp;gt;message.txt&amp;lt;/tt&amp;gt; might improve the recognized text.}}&lt;br /&gt;
&lt;br /&gt;
==Basic Script Code==&lt;br /&gt;
The script code &amp;lt;tt&amp;gt;googlevoice.sh&amp;lt;/tt&amp;gt; can be tested on any Linux machine with SoX, SED, WGET installed. Modifiy the script according to your demands and storage of your audio files&lt;br /&gt;
&lt;br /&gt;
  #!/bin/sh&lt;br /&gt;
  echo &amp;quot;1 SoX Sound Exchange - Convert WAV to FLAC with 16000&amp;quot; &lt;br /&gt;
  sox message.wav message.flac rate 16k&lt;br /&gt;
  echo &amp;quot;2 Submit to Google Voice Recognition&amp;quot;&lt;br /&gt;
  wget -q -U &amp;quot;Mozilla/5.0&amp;quot; --post-file message.flac --header=&amp;quot;Content-Type: audio/x-flac; rate=16000&amp;quot; -O - &amp;quot;http://www.google.com/speech-api/v1/recognize?lang=de-de&amp;amp;client=chromium&amp;quot; &amp;gt; message.ret&lt;br /&gt;
  echo &amp;quot;3 SED Extract recognized text&amp;quot; &lt;br /&gt;
  cat message.ret | sed 's/.*utterance&amp;quot;:&amp;quot;//' | sed 's/&amp;quot;,&amp;quot;confidence.*//' &amp;gt; message.txt&lt;br /&gt;
  echo &amp;quot;4 Remove Temporary Files&amp;quot;&lt;br /&gt;
  rm message.flac&lt;br /&gt;
  rm message.ret&lt;br /&gt;
  echo &amp;quot;5 Show Text &amp;quot;&lt;br /&gt;
  cat message.txt&lt;br /&gt;
&lt;br /&gt;
The parameter &amp;lt;tt&amp;gt;lang=de-de&amp;lt;/tt&amp;gt; is indicating, that the Google Voice API is expecting a German language audio file. Replace &amp;lt;tt&amp;gt;lang=de-de&amp;lt;/tt&amp;gt; by &amp;lt;tt&amp;gt;lang=en-us&amp;lt;/tt&amp;gt; to submit an audio file in US-English.&lt;br /&gt;
&lt;br /&gt;
== Script with Language Setting and Command Line Parameter ==&lt;br /&gt;
The script &amp;lt;tt&amp;gt;googlevoicepar.sh&amp;lt;/tt&amp;gt; with a command line parameter can be used if you want to use multiple input files for batch file recognition. You will call this script with the basename e.g. &amp;lt;tt&amp;gt;message0, message1,...&amp;lt;/tt&amp;gt; by &lt;br /&gt;
* &amp;lt;tt&amp;gt;googlevoicepar.sh message0&amp;lt;/tt&amp;gt; converts &amp;lt;tt&amp;gt;message0.wav&amp;lt;/tt&amp;gt; into &amp;lt;tt&amp;gt;message0.txt&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;googlevoicepar.sh message1&amp;lt;/tt&amp;gt; converts &amp;lt;tt&amp;gt;message1.wav&amp;lt;/tt&amp;gt; into &amp;lt;tt&amp;gt;message1.txt&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;googlevoicepar.sh message2&amp;lt;/tt&amp;gt; converts &amp;lt;tt&amp;gt;message2.wav&amp;lt;/tt&amp;gt; into &amp;lt;tt&amp;gt;message2.txt&amp;lt;/tt&amp;gt;&lt;br /&gt;
* ....&lt;br /&gt;
&lt;br /&gt;
  #!/bin/sh&lt;br /&gt;
  LANGUAGE=&amp;quot;de-de&amp;quot;&lt;br /&gt;
  echo &amp;quot;1 SoX Sound Exchange - Convert $1.wav to $1.flacC with 16000&amp;quot; &lt;br /&gt;
  sox $1.wav $1.flac rate 16k&lt;br /&gt;
  echo &amp;quot;2 Submit to Google Voice Recognition $1.flac&amp;quot;&lt;br /&gt;
  wget -q -U &amp;quot;Mozilla/5.0&amp;quot; --post-file $1.flac --header=&amp;quot;Content-Type: audio/x-flac; rate=16000&amp;quot; -O - &amp;quot;http://www.google.com/speech-api/v1/recognize?lang=${LANGUAGE}&amp;amp;client=chromium&amp;quot; &amp;gt; $1.ret&lt;br /&gt;
  echo &amp;quot;3 SED Extract recognized text&amp;quot; &lt;br /&gt;
  cat $1.ret | sed 's/.*utterance&amp;quot;:&amp;quot;//' | sed 's/&amp;quot;,&amp;quot;confidence.*//' &amp;gt; $1.txt&lt;br /&gt;
  echo &amp;quot;4 Remove Temporary Files&amp;quot;&lt;br /&gt;
  rm $1.flac&lt;br /&gt;
  rm $1.ret&lt;br /&gt;
  echo &amp;quot;5 Show Text &amp;quot;&lt;br /&gt;
  cat $1.txt&lt;br /&gt;
&lt;br /&gt;
==Future Development==&lt;br /&gt;
Google API will always need a internet access. For the development of [http://en.wikipedia.org/wiki/Speech_recognition_in_Linux OpenSource standalone Software on Linux] it might be good to have an OpenSource-Webinterface to collect Audio Samples for improving the user independent Speech Recognition Profiles HMM for Speech Recognition of large vocabulary and different languages. &lt;br /&gt;
* Users will get the speech recognition result on the freerunner or any other linux box,&lt;br /&gt;
* The can correct the speech recognition result and submit the correction back to the server&lt;br /&gt;
* By the Audio-File-Submit and Text-File-Return of a server based speech recognition the Open Source Speech Recognition on Linux can be improved.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
* The WGET code was extended from the article on [http://www.commandlinefu.com/commands/view/8043/google-voice-recognition-api http://www.commandlinefu.com].&lt;br /&gt;
* With your [[Android]] phone 2.2 the Google Voice API can be used by installation with Android Market.&lt;br /&gt;
* with the [http://www.google.com/chrome Chrome Browser] on a Linux Box you can test the Google Voice API [http://slides.html5rocks.com/#speech-input http://slides.html5rocks.com/#speech-input] via a Web-Interface.&lt;br /&gt;
* For standalone speech recognition on Linux Systems see [http://en.wikipedia.org/wiki/Speech_recognition_in_Linux Wikipedia-Article].&lt;/div&gt;</summary>
		<author><name>Niebert</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Google_Voice_Recognition</id>
		<title>Google Voice Recognition</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Google_Voice_Recognition"/>
				<updated>2011-10-03T15:17:43Z</updated>
		
		<summary type="html">&lt;p&gt;Niebert: /* Script with Language Setting and Command Line Parameter */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Because the performance of your Freerunner is too poor for voice recognition, the Google Voice API can be used to convert an recorded Audio file into a text string. Be aware that the audio file will be transmitted to Google, so  need to have Internet access on your freerunner FR to submit the audio file. &lt;br /&gt;
&lt;br /&gt;
{{Note|You must be aware of the fact, that the follow script is running on your freerunner but it is not a standalone voice recognition software and so you might not want to use this tool for private audio files.}}&lt;br /&gt;
&lt;br /&gt;
==Google Voice API==&lt;br /&gt;
For using the Google Voice API and the script you need to have the following package installed on your freerunner:&lt;br /&gt;
* SoX [http://sox.sourceforge.net http://sox.sourceforge.net]for converting WAV into FLAC files&lt;br /&gt;
* WGET [http://www.gnu.org/s/wget/ http://www.gnu.org/s/wget/] for submitting the FLAC file to the Google Voice API&lt;br /&gt;
* SED [http://sed.sourceforge.net/ http://sed.sourceforge.net/] for extracting the recognized text in the returned string of the Google Voice API&lt;br /&gt;
Install the packages from the repositories of the freerunner [[Distributions]].&lt;br /&gt;
&lt;br /&gt;
==Script Usage==&lt;br /&gt;
* The script &amp;lt;tt&amp;gt;googlevoice.sh&amp;lt;/tt&amp;gt; uses a the audio file &amp;lt;tt&amp;gt;message.wav&amp;lt;/tt&amp;gt; in the directory of the script. All files are stored in the same directory, so you need write permissions for that directory.&lt;br /&gt;
* SoX converts &amp;lt;tt&amp;gt;message.wav&amp;lt;/tt&amp;gt;  into &amp;lt;tt&amp;gt;message.flac&amp;lt;/tt&amp;gt; &lt;br /&gt;
* wget submits the file &amp;lt;tt&amp;gt;message.flac&amp;lt;/tt&amp;gt; to the Google Voice API and writes the return message to &amp;lt;tt&amp;gt;message.ret&amp;lt;/tt&amp;gt;. The language variable in the script is set to German by  &amp;lt;tt&amp;gt;lang=de-de&amp;lt;/tt&amp;gt;. If you want to submit a recorded file in US-English use &amp;lt;tt&amp;gt;lang=en-us&amp;lt;/tt&amp;gt; instead.&lt;br /&gt;
* SED extracts the recognized text &amp;lt;tt&amp;gt;message.ret&amp;lt;/tt&amp;gt; by regular expressions and writes the text into &amp;lt;tt&amp;gt;message.txt&amp;lt;/tt&amp;gt;.&lt;br /&gt;
* Temporary files &amp;lt;tt&amp;gt;message.flac&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;message.ret&amp;lt;/tt&amp;gt; will be deleted after the process.&lt;br /&gt;
&lt;br /&gt;
{{Note|The return code of German audio files needs capitalization of nouns, because all words are return in small caps. A &amp;lt;tt&amp;gt;ispell&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;aspell&amp;lt;/tt&amp;gt; correction of the &amp;lt;tt&amp;gt;message.txt&amp;lt;/tt&amp;gt; might improve the recognized text.}}&lt;br /&gt;
&lt;br /&gt;
==Basic Script Code==&lt;br /&gt;
The script code &amp;lt;tt&amp;gt;googlevoice.sh&amp;lt;/tt&amp;gt; can be tested on any Linux machine with SoX, SED, WGET installed. Modifiy the script according to your demands and storage of your audio files&lt;br /&gt;
&lt;br /&gt;
  #!/bin/sh&lt;br /&gt;
  echo &amp;quot;1 SoX Sound Exchange - Convert WAV to FLAC with 16000&amp;quot; &lt;br /&gt;
  sox message.wav message.flac rate 16k&lt;br /&gt;
  echo &amp;quot;2 Submit to Google Voice Recognition&amp;quot;&lt;br /&gt;
  wget -q -U &amp;quot;Mozilla/5.0&amp;quot; --post-file message.flac --header=&amp;quot;Content-Type: audio/x-flac; rate=16000&amp;quot; -O - &amp;quot;http://www.google.com/speech-api/v1/recognize?lang=de-de&amp;amp;client=chromium&amp;quot; &amp;gt; message.ret&lt;br /&gt;
  echo &amp;quot;3 SED Extract recognized text&amp;quot; &lt;br /&gt;
  cat message.ret | sed 's/.*utterance&amp;quot;:&amp;quot;//' | sed 's/&amp;quot;,&amp;quot;confidence.*//' &amp;gt; message.txt&lt;br /&gt;
  echo &amp;quot;4 Remove Temporary Files&amp;quot;&lt;br /&gt;
  rm message.flac&lt;br /&gt;
  rm message.ret&lt;br /&gt;
  echo &amp;quot;5 Show Text &amp;quot;&lt;br /&gt;
  cat message.txt&lt;br /&gt;
&lt;br /&gt;
The parameter &amp;lt;tt&amp;gt;lang=de-de&amp;lt;/tt&amp;gt; is indicating, that the Google Voice API is expecting a German language audio file. Replace &amp;lt;tt&amp;gt;lang=de-de&amp;lt;/tt&amp;gt; by &amp;lt;tt&amp;gt;lang=en-us&amp;lt;/tt&amp;gt; to submit an audio file in US-English.&lt;br /&gt;
&lt;br /&gt;
== Script with Language Setting and Command Line Parameter ==&lt;br /&gt;
The script &amp;lt;tt&amp;gt;googlevoicepar.sh&amp;lt;/tt&amp;gt; with a command line parameter can be used if you want to use multiple input files for batch file recognition. You will call this script with the basename e.g. &amp;lt;tt&amp;gt;message0, message1,...&amp;lt;/tt&amp;gt; by &lt;br /&gt;
* &amp;lt;tt&amp;gt;googlevoicepar.sh message0&amp;lt;/tt&amp;gt; converts &amp;lt;tt&amp;gt;message0.wav&amp;lt;/tt&amp;gt; into &amp;lt;tt&amp;gt;message0.txt&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;googlevoicepar.sh message1&amp;lt;/tt&amp;gt; converts &amp;lt;tt&amp;gt;message1.wav&amp;lt;/tt&amp;gt; into &amp;lt;tt&amp;gt;message1.txt&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;googlevoicepar.sh message2&amp;lt;/tt&amp;gt; converts &amp;lt;tt&amp;gt;message2.wav&amp;lt;/tt&amp;gt; into &amp;lt;tt&amp;gt;message2.txt&amp;lt;/tt&amp;gt;&lt;br /&gt;
* ....&lt;br /&gt;
&lt;br /&gt;
  #!/bin/sh&lt;br /&gt;
  LANGUAGE=&amp;quot;de-de&amp;quot;&lt;br /&gt;
  echo &amp;quot;1 SoX Sound Exchange - Convert $1.wav to $1.flacC with 16000&amp;quot; &lt;br /&gt;
  sox $1.wav $1.flac rate 16k&lt;br /&gt;
  echo &amp;quot;2 Submit to Google Voice Recognition $1.flac&amp;quot;&lt;br /&gt;
  wget -q -U &amp;quot;Mozilla/5.0&amp;quot; --post-file $1.flac --header=&amp;quot;Content-Type: audio/x-flac; rate=16000&amp;quot; -O - &amp;quot;http://www.google.com/speech-api/v1/recognize?lang=${LANGUAGE}&amp;amp;client=chromium&amp;quot; &amp;gt; $1.ret&lt;br /&gt;
  echo &amp;quot;3 SED Extract recognized text&amp;quot; &lt;br /&gt;
  cat $1.ret | sed 's/.*utterance&amp;quot;:&amp;quot;//' | sed 's/&amp;quot;,&amp;quot;confidence.*//' &amp;gt; $1.txt&lt;br /&gt;
  echo &amp;quot;4 Remove Temporary Files&amp;quot;&lt;br /&gt;
  rm $1.flac&lt;br /&gt;
  rm $1.ret&lt;br /&gt;
  echo &amp;quot;5 Show Text &amp;quot;&lt;br /&gt;
  cat $1.txt&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
* The WGET code was extended from the article on [http://www.commandlinefu.com/commands/view/8043/google-voice-recognition-api http://www.commandlinefu.com].&lt;br /&gt;
* With your [[Android]] phone 2.2 the Google Voice API can be used by installation with Android Market.&lt;br /&gt;
* with the [http://www.google.com/chrome Chrome Browser] on a Linux Box you can test the Google Voice API [http://slides.html5rocks.com/#speech-input http://slides.html5rocks.com/#speech-input] via a Web-Interface.&lt;/div&gt;</summary>
		<author><name>Niebert</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Google_Voice_Recognition</id>
		<title>Google Voice Recognition</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Google_Voice_Recognition"/>
				<updated>2011-10-03T15:16:50Z</updated>
		
		<summary type="html">&lt;p&gt;Niebert: /* Script Usage */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Because the performance of your Freerunner is too poor for voice recognition, the Google Voice API can be used to convert an recorded Audio file into a text string. Be aware that the audio file will be transmitted to Google, so  need to have Internet access on your freerunner FR to submit the audio file. &lt;br /&gt;
&lt;br /&gt;
{{Note|You must be aware of the fact, that the follow script is running on your freerunner but it is not a standalone voice recognition software and so you might not want to use this tool for private audio files.}}&lt;br /&gt;
&lt;br /&gt;
==Google Voice API==&lt;br /&gt;
For using the Google Voice API and the script you need to have the following package installed on your freerunner:&lt;br /&gt;
* SoX [http://sox.sourceforge.net http://sox.sourceforge.net]for converting WAV into FLAC files&lt;br /&gt;
* WGET [http://www.gnu.org/s/wget/ http://www.gnu.org/s/wget/] for submitting the FLAC file to the Google Voice API&lt;br /&gt;
* SED [http://sed.sourceforge.net/ http://sed.sourceforge.net/] for extracting the recognized text in the returned string of the Google Voice API&lt;br /&gt;
Install the packages from the repositories of the freerunner [[Distributions]].&lt;br /&gt;
&lt;br /&gt;
==Script Usage==&lt;br /&gt;
* The script &amp;lt;tt&amp;gt;googlevoice.sh&amp;lt;/tt&amp;gt; uses a the audio file &amp;lt;tt&amp;gt;message.wav&amp;lt;/tt&amp;gt; in the directory of the script. All files are stored in the same directory, so you need write permissions for that directory.&lt;br /&gt;
* SoX converts &amp;lt;tt&amp;gt;message.wav&amp;lt;/tt&amp;gt;  into &amp;lt;tt&amp;gt;message.flac&amp;lt;/tt&amp;gt; &lt;br /&gt;
* wget submits the file &amp;lt;tt&amp;gt;message.flac&amp;lt;/tt&amp;gt; to the Google Voice API and writes the return message to &amp;lt;tt&amp;gt;message.ret&amp;lt;/tt&amp;gt;. The language variable in the script is set to German by  &amp;lt;tt&amp;gt;lang=de-de&amp;lt;/tt&amp;gt;. If you want to submit a recorded file in US-English use &amp;lt;tt&amp;gt;lang=en-us&amp;lt;/tt&amp;gt; instead.&lt;br /&gt;
* SED extracts the recognized text &amp;lt;tt&amp;gt;message.ret&amp;lt;/tt&amp;gt; by regular expressions and writes the text into &amp;lt;tt&amp;gt;message.txt&amp;lt;/tt&amp;gt;.&lt;br /&gt;
* Temporary files &amp;lt;tt&amp;gt;message.flac&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;message.ret&amp;lt;/tt&amp;gt; will be deleted after the process.&lt;br /&gt;
&lt;br /&gt;
{{Note|The return code of German audio files needs capitalization of nouns, because all words are return in small caps. A &amp;lt;tt&amp;gt;ispell&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;aspell&amp;lt;/tt&amp;gt; correction of the &amp;lt;tt&amp;gt;message.txt&amp;lt;/tt&amp;gt; might improve the recognized text.}}&lt;br /&gt;
&lt;br /&gt;
==Basic Script Code==&lt;br /&gt;
The script code &amp;lt;tt&amp;gt;googlevoice.sh&amp;lt;/tt&amp;gt; can be tested on any Linux machine with SoX, SED, WGET installed. Modifiy the script according to your demands and storage of your audio files&lt;br /&gt;
&lt;br /&gt;
  #!/bin/sh&lt;br /&gt;
  echo &amp;quot;1 SoX Sound Exchange - Convert WAV to FLAC with 16000&amp;quot; &lt;br /&gt;
  sox message.wav message.flac rate 16k&lt;br /&gt;
  echo &amp;quot;2 Submit to Google Voice Recognition&amp;quot;&lt;br /&gt;
  wget -q -U &amp;quot;Mozilla/5.0&amp;quot; --post-file message.flac --header=&amp;quot;Content-Type: audio/x-flac; rate=16000&amp;quot; -O - &amp;quot;http://www.google.com/speech-api/v1/recognize?lang=de-de&amp;amp;client=chromium&amp;quot; &amp;gt; message.ret&lt;br /&gt;
  echo &amp;quot;3 SED Extract recognized text&amp;quot; &lt;br /&gt;
  cat message.ret | sed 's/.*utterance&amp;quot;:&amp;quot;//' | sed 's/&amp;quot;,&amp;quot;confidence.*//' &amp;gt; message.txt&lt;br /&gt;
  echo &amp;quot;4 Remove Temporary Files&amp;quot;&lt;br /&gt;
  rm message.flac&lt;br /&gt;
  rm message.ret&lt;br /&gt;
  echo &amp;quot;5 Show Text &amp;quot;&lt;br /&gt;
  cat message.txt&lt;br /&gt;
&lt;br /&gt;
The parameter &amp;lt;tt&amp;gt;lang=de-de&amp;lt;/tt&amp;gt; is indicating, that the Google Voice API is expecting a German language audio file. Replace &amp;lt;tt&amp;gt;lang=de-de&amp;lt;/tt&amp;gt; by &amp;lt;tt&amp;gt;lang=en-us&amp;lt;/tt&amp;gt; to submit an audio file in US-English.&lt;br /&gt;
&lt;br /&gt;
== Script with Language Setting and Command Line Parameter ==&lt;br /&gt;
The script &amp;lt;tt&amp;gt;googlevoicepar.sh&amp;lt;/tt&amp;gt; with a command line parameter can be used if you want to use multiple input files for batch file recognition. You will call this script with the basename e.g. &amp;lt;tt&amp;gt;message0, message1,...&amp;lt;/tt&amp;gt; by &lt;br /&gt;
* &amp;lt;tt&amp;gt;googlevoicepar.sh message0&amp;lt;/tt&amp;gt; converts &amp;lt;tt&amp;gt;message0.wav&amp;lt;/tt&amp;gt; into &amp;lt;tt&amp;gt;message0.txt&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;googlevoicepar.sh message1&amp;lt;/tt&amp;gt; converts &amp;lt;tt&amp;gt;message1.wav&amp;lt;/tt&amp;gt; into &amp;lt;tt&amp;gt;message1.txt&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;googlevoicepar.sh message2&amp;lt;/tt&amp;gt; converts &amp;lt;tt&amp;gt;message2.wav&amp;lt;/tt&amp;gt; into &amp;lt;tt&amp;gt;message2.txt&amp;lt;/tt&amp;gt;&lt;br /&gt;
* ....&lt;br /&gt;
&lt;br /&gt;
  #!/bin/sh&lt;br /&gt;
  LANGUAGE=&amp;quot;de-de&amp;quot;&lt;br /&gt;
  echo &amp;quot;1 SoX Sound Exchange - Convert $1.wav to $1.flacC with 16000&amp;quot; &lt;br /&gt;
  sox $1.wav $1.flac rate 16k&lt;br /&gt;
  echo &amp;quot;2 Submit to Google Voice Recognition $1.flac&amp;quot;&lt;br /&gt;
  wget -q -U &amp;quot;Mozilla/5.0&amp;quot; --post-file message.flac --header=&amp;quot;Content-Type: audio/x-flac; rate=16000&amp;quot; -O - &amp;quot;http://www.google.com/speech-api/v1/recognize?lang=${LANGUAGE}&amp;amp;client=chromium&amp;quot; &amp;gt; $1.ret&lt;br /&gt;
  echo &amp;quot;3 SED Extract recognized text&amp;quot; &lt;br /&gt;
  cat $1.ret | sed 's/.*utterance&amp;quot;:&amp;quot;//' | sed 's/&amp;quot;,&amp;quot;confidence.*//' &amp;gt; $1.txt&lt;br /&gt;
  echo &amp;quot;4 Remove Temporary Files&amp;quot;&lt;br /&gt;
  rm $1.flac&lt;br /&gt;
  rm $1.ret&lt;br /&gt;
  echo &amp;quot;5 Show Text &amp;quot;&lt;br /&gt;
  cat $1.txt&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
* The WGET code was extended from the article on [http://www.commandlinefu.com/commands/view/8043/google-voice-recognition-api http://www.commandlinefu.com].&lt;br /&gt;
* With your [[Android]] phone 2.2 the Google Voice API can be used by installation with Android Market.&lt;br /&gt;
* with the [http://www.google.com/chrome Chrome Browser] on a Linux Box you can test the Google Voice API [http://slides.html5rocks.com/#speech-input http://slides.html5rocks.com/#speech-input] via a Web-Interface.&lt;/div&gt;</summary>
		<author><name>Niebert</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Google_Voice_Recognition</id>
		<title>Google Voice Recognition</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Google_Voice_Recognition"/>
				<updated>2011-10-03T15:15:46Z</updated>
		
		<summary type="html">&lt;p&gt;Niebert: /* Script Usage */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Because the performance of your Freerunner is too poor for voice recognition, the Google Voice API can be used to convert an recorded Audio file into a text string. Be aware that the audio file will be transmitted to Google, so  need to have Internet access on your freerunner FR to submit the audio file. &lt;br /&gt;
&lt;br /&gt;
{{Note|You must be aware of the fact, that the follow script is running on your freerunner but it is not a standalone voice recognition software and so you might not want to use this tool for private audio files.}}&lt;br /&gt;
&lt;br /&gt;
==Google Voice API==&lt;br /&gt;
For using the Google Voice API and the script you need to have the following package installed on your freerunner:&lt;br /&gt;
* SoX [http://sox.sourceforge.net http://sox.sourceforge.net]for converting WAV into FLAC files&lt;br /&gt;
* WGET [http://www.gnu.org/s/wget/ http://www.gnu.org/s/wget/] for submitting the FLAC file to the Google Voice API&lt;br /&gt;
* SED [http://sed.sourceforge.net/ http://sed.sourceforge.net/] for extracting the recognized text in the returned string of the Google Voice API&lt;br /&gt;
Install the packages from the repositories of the freerunner [[Distributions]].&lt;br /&gt;
&lt;br /&gt;
==Script Usage==&lt;br /&gt;
* The script &amp;lt;tt&amp;gt;googlevoice.sh&amp;lt;/tt&amp;gt; uses a the audio file &amp;lt;tt&amp;gt;message.wav&amp;lt;/tt&amp;gt; in the directory of the script. All files are stored in the same directory, so you need write permissions for that directory.&lt;br /&gt;
* SoX converts &amp;lt;tt&amp;gt;message.wav&amp;lt;/tt&amp;gt;  into &amp;lt;tt&amp;gt;message.flac&amp;lt;/tt&amp;gt; &lt;br /&gt;
* wget submits the file &amp;lt;tt&amp;gt;message.flac&amp;lt;/tt&amp;gt; to the Google Voice API and writes the return message to &amp;lt;tt&amp;gt;message.ret&amp;lt;/tt&amp;gt;. The language variable in the script is set to German by  &amp;lt;tt&amp;gt;lang=de-de&amp;lt;/tt&amp;gt;. If you want to submit a recorded file in US-English use &amp;lt;tt&amp;gt;lang=en-us&amp;lt;/tt&amp;gt; instead.&lt;br /&gt;
* SED extracts the recognized text &amp;lt;tt&amp;gt;message.ret&amp;lt;/tt&amp;gt; by regular expressions and writes the text into &amp;lt;tt&amp;gt;message.txt&amp;lt;/tt&amp;gt;.&lt;br /&gt;
* Temporary files &amp;lt;tt&amp;gt;message.flac&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;message.ret&amp;lt;/tt&amp;gt; will be deleted after the process.&lt;br /&gt;
&lt;br /&gt;
{{Note|The return code of German audio files needs capitalization of nouns, because all words are return in small caps. A &amp;lt;tt&amp;gt;ispell&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;aspell&amp;lt;/tt&amp;gt; correction of the &amp;lt;tt&amp;gt;message.txt&amp;lt;/tt&amp;gt; could handle the problem.}}&lt;br /&gt;
&lt;br /&gt;
==Basic Script Code==&lt;br /&gt;
The script code &amp;lt;tt&amp;gt;googlevoice.sh&amp;lt;/tt&amp;gt; can be tested on any Linux machine with SoX, SED, WGET installed. Modifiy the script according to your demands and storage of your audio files&lt;br /&gt;
&lt;br /&gt;
  #!/bin/sh&lt;br /&gt;
  echo &amp;quot;1 SoX Sound Exchange - Convert WAV to FLAC with 16000&amp;quot; &lt;br /&gt;
  sox message.wav message.flac rate 16k&lt;br /&gt;
  echo &amp;quot;2 Submit to Google Voice Recognition&amp;quot;&lt;br /&gt;
  wget -q -U &amp;quot;Mozilla/5.0&amp;quot; --post-file message.flac --header=&amp;quot;Content-Type: audio/x-flac; rate=16000&amp;quot; -O - &amp;quot;http://www.google.com/speech-api/v1/recognize?lang=de-de&amp;amp;client=chromium&amp;quot; &amp;gt; message.ret&lt;br /&gt;
  echo &amp;quot;3 SED Extract recognized text&amp;quot; &lt;br /&gt;
  cat message.ret | sed 's/.*utterance&amp;quot;:&amp;quot;//' | sed 's/&amp;quot;,&amp;quot;confidence.*//' &amp;gt; message.txt&lt;br /&gt;
  echo &amp;quot;4 Remove Temporary Files&amp;quot;&lt;br /&gt;
  rm message.flac&lt;br /&gt;
  rm message.ret&lt;br /&gt;
  echo &amp;quot;5 Show Text &amp;quot;&lt;br /&gt;
  cat message.txt&lt;br /&gt;
&lt;br /&gt;
The parameter &amp;lt;tt&amp;gt;lang=de-de&amp;lt;/tt&amp;gt; is indicating, that the Google Voice API is expecting a German language audio file. Replace &amp;lt;tt&amp;gt;lang=de-de&amp;lt;/tt&amp;gt; by &amp;lt;tt&amp;gt;lang=en-us&amp;lt;/tt&amp;gt; to submit an audio file in US-English.&lt;br /&gt;
&lt;br /&gt;
== Script with Language Setting and Command Line Parameter ==&lt;br /&gt;
The script &amp;lt;tt&amp;gt;googlevoicepar.sh&amp;lt;/tt&amp;gt; with a command line parameter can be used if you want to use multiple input files for batch file recognition. You will call this script with the basename e.g. &amp;lt;tt&amp;gt;message0, message1,...&amp;lt;/tt&amp;gt; by &lt;br /&gt;
* &amp;lt;tt&amp;gt;googlevoicepar.sh message0&amp;lt;/tt&amp;gt; converts &amp;lt;tt&amp;gt;message0.wav&amp;lt;/tt&amp;gt; into &amp;lt;tt&amp;gt;message0.txt&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;googlevoicepar.sh message1&amp;lt;/tt&amp;gt; converts &amp;lt;tt&amp;gt;message1.wav&amp;lt;/tt&amp;gt; into &amp;lt;tt&amp;gt;message1.txt&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;googlevoicepar.sh message2&amp;lt;/tt&amp;gt; converts &amp;lt;tt&amp;gt;message2.wav&amp;lt;/tt&amp;gt; into &amp;lt;tt&amp;gt;message2.txt&amp;lt;/tt&amp;gt;&lt;br /&gt;
* ....&lt;br /&gt;
&lt;br /&gt;
  #!/bin/sh&lt;br /&gt;
  LANGUAGE=&amp;quot;de-de&amp;quot;&lt;br /&gt;
  echo &amp;quot;1 SoX Sound Exchange - Convert $1.wav to $1.flacC with 16000&amp;quot; &lt;br /&gt;
  sox $1.wav $1.flac rate 16k&lt;br /&gt;
  echo &amp;quot;2 Submit to Google Voice Recognition $1.flac&amp;quot;&lt;br /&gt;
  wget -q -U &amp;quot;Mozilla/5.0&amp;quot; --post-file message.flac --header=&amp;quot;Content-Type: audio/x-flac; rate=16000&amp;quot; -O - &amp;quot;http://www.google.com/speech-api/v1/recognize?lang=${LANGUAGE}&amp;amp;client=chromium&amp;quot; &amp;gt; $1.ret&lt;br /&gt;
  echo &amp;quot;3 SED Extract recognized text&amp;quot; &lt;br /&gt;
  cat $1.ret | sed 's/.*utterance&amp;quot;:&amp;quot;//' | sed 's/&amp;quot;,&amp;quot;confidence.*//' &amp;gt; $1.txt&lt;br /&gt;
  echo &amp;quot;4 Remove Temporary Files&amp;quot;&lt;br /&gt;
  rm $1.flac&lt;br /&gt;
  rm $1.ret&lt;br /&gt;
  echo &amp;quot;5 Show Text &amp;quot;&lt;br /&gt;
  cat $1.txt&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
* The WGET code was extended from the article on [http://www.commandlinefu.com/commands/view/8043/google-voice-recognition-api http://www.commandlinefu.com].&lt;br /&gt;
* With your [[Android]] phone 2.2 the Google Voice API can be used by installation with Android Market.&lt;br /&gt;
* with the [http://www.google.com/chrome Chrome Browser] on a Linux Box you can test the Google Voice API [http://slides.html5rocks.com/#speech-input http://slides.html5rocks.com/#speech-input] via a Web-Interface.&lt;/div&gt;</summary>
		<author><name>Niebert</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Google_Voice_Recognition</id>
		<title>Google Voice Recognition</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Google_Voice_Recognition"/>
				<updated>2011-10-03T15:11:44Z</updated>
		
		<summary type="html">&lt;p&gt;Niebert: /* Google Voice API */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Because the performance of your Freerunner is too poor for voice recognition, the Google Voice API can be used to convert an recorded Audio file into a text string. Be aware that the audio file will be transmitted to Google, so  need to have Internet access on your freerunner FR to submit the audio file. &lt;br /&gt;
&lt;br /&gt;
{{Note|You must be aware of the fact, that the follow script is running on your freerunner but it is not a standalone voice recognition software and so you might not want to use this tool for private audio files.}}&lt;br /&gt;
&lt;br /&gt;
==Google Voice API==&lt;br /&gt;
For using the Google Voice API and the script you need to have the following package installed on your freerunner:&lt;br /&gt;
* SoX [http://sox.sourceforge.net http://sox.sourceforge.net]for converting WAV into FLAC files&lt;br /&gt;
* WGET [http://www.gnu.org/s/wget/ http://www.gnu.org/s/wget/] for submitting the FLAC file to the Google Voice API&lt;br /&gt;
* SED [http://sed.sourceforge.net/ http://sed.sourceforge.net/] for extracting the recognized text in the returned string of the Google Voice API&lt;br /&gt;
Install the packages from the repositories of the freerunner [[Distributions]].&lt;br /&gt;
&lt;br /&gt;
==Script Usage==&lt;br /&gt;
* The script &amp;lt;tt&amp;gt;googlevoice.sh&amp;lt;/tt&amp;gt; uses a the audio file &amp;lt;tt&amp;gt;message.wav&amp;lt;/tt&amp;gt; in the directory of the script. All files are stored in the same directory, so you need write permissions for that directory.&lt;br /&gt;
* SoX converts &amp;lt;tt&amp;gt;message.wav&amp;lt;/tt&amp;gt;  into &amp;lt;tt&amp;gt;message.flac&amp;lt;/tt&amp;gt; &lt;br /&gt;
* wget submits the file &amp;lt;tt&amp;gt;message.flac&amp;lt;/tt&amp;gt; to the Google Voice API and writes the return message to &amp;lt;tt&amp;gt;message.ret&amp;lt;/tt&amp;gt;. The language variable in the script is set to German by  &amp;lt;tt&amp;gt;lang=de-de&amp;lt;/tt&amp;gt;. If you want to submit a recorded file in US-English use &amp;lt;tt&amp;gt;lang=en-us&amp;lt;/tt&amp;gt; instead.&lt;br /&gt;
* SED extracts the recognized text &amp;lt;tt&amp;gt;message.ret&amp;lt;/tt&amp;gt; by regular expressions and writes the text into &amp;lt;tt&amp;gt;message.txt&amp;lt;/tt&amp;gt;.&lt;br /&gt;
* Temporary files &amp;lt;tt&amp;gt;message.flac&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;message.ret&amp;lt;/tt&amp;gt; will be deleted after the process.&lt;br /&gt;
&lt;br /&gt;
==Basic Script Code==&lt;br /&gt;
The script code &amp;lt;tt&amp;gt;googlevoice.sh&amp;lt;/tt&amp;gt; can be tested on any Linux machine with SoX, SED, WGET installed. Modifiy the script according to your demands and storage of your audio files&lt;br /&gt;
&lt;br /&gt;
  #!/bin/sh&lt;br /&gt;
  echo &amp;quot;1 SoX Sound Exchange - Convert WAV to FLAC with 16000&amp;quot; &lt;br /&gt;
  sox message.wav message.flac rate 16k&lt;br /&gt;
  echo &amp;quot;2 Submit to Google Voice Recognition&amp;quot;&lt;br /&gt;
  wget -q -U &amp;quot;Mozilla/5.0&amp;quot; --post-file message.flac --header=&amp;quot;Content-Type: audio/x-flac; rate=16000&amp;quot; -O - &amp;quot;http://www.google.com/speech-api/v1/recognize?lang=de-de&amp;amp;client=chromium&amp;quot; &amp;gt; message.ret&lt;br /&gt;
  echo &amp;quot;3 SED Extract recognized text&amp;quot; &lt;br /&gt;
  cat message.ret | sed 's/.*utterance&amp;quot;:&amp;quot;//' | sed 's/&amp;quot;,&amp;quot;confidence.*//' &amp;gt; message.txt&lt;br /&gt;
  echo &amp;quot;4 Remove Temporary Files&amp;quot;&lt;br /&gt;
  rm message.flac&lt;br /&gt;
  rm message.ret&lt;br /&gt;
  echo &amp;quot;5 Show Text &amp;quot;&lt;br /&gt;
  cat message.txt&lt;br /&gt;
&lt;br /&gt;
The parameter &amp;lt;tt&amp;gt;lang=de-de&amp;lt;/tt&amp;gt; is indicating, that the Google Voice API is expecting a German language audio file. Replace &amp;lt;tt&amp;gt;lang=de-de&amp;lt;/tt&amp;gt; by &amp;lt;tt&amp;gt;lang=en-us&amp;lt;/tt&amp;gt; to submit an audio file in US-English.&lt;br /&gt;
&lt;br /&gt;
== Script with Language Setting and Command Line Parameter ==&lt;br /&gt;
The script &amp;lt;tt&amp;gt;googlevoicepar.sh&amp;lt;/tt&amp;gt; with a command line parameter can be used if you want to use multiple input files for batch file recognition. You will call this script with the basename e.g. &amp;lt;tt&amp;gt;message0, message1,...&amp;lt;/tt&amp;gt; by &lt;br /&gt;
* &amp;lt;tt&amp;gt;googlevoicepar.sh message0&amp;lt;/tt&amp;gt; converts &amp;lt;tt&amp;gt;message0.wav&amp;lt;/tt&amp;gt; into &amp;lt;tt&amp;gt;message0.txt&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;googlevoicepar.sh message1&amp;lt;/tt&amp;gt; converts &amp;lt;tt&amp;gt;message1.wav&amp;lt;/tt&amp;gt; into &amp;lt;tt&amp;gt;message1.txt&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;googlevoicepar.sh message2&amp;lt;/tt&amp;gt; converts &amp;lt;tt&amp;gt;message2.wav&amp;lt;/tt&amp;gt; into &amp;lt;tt&amp;gt;message2.txt&amp;lt;/tt&amp;gt;&lt;br /&gt;
* ....&lt;br /&gt;
&lt;br /&gt;
  #!/bin/sh&lt;br /&gt;
  LANGUAGE=&amp;quot;de-de&amp;quot;&lt;br /&gt;
  echo &amp;quot;1 SoX Sound Exchange - Convert $1.wav to $1.flacC with 16000&amp;quot; &lt;br /&gt;
  sox $1.wav $1.flac rate 16k&lt;br /&gt;
  echo &amp;quot;2 Submit to Google Voice Recognition $1.flac&amp;quot;&lt;br /&gt;
  wget -q -U &amp;quot;Mozilla/5.0&amp;quot; --post-file message.flac --header=&amp;quot;Content-Type: audio/x-flac; rate=16000&amp;quot; -O - &amp;quot;http://www.google.com/speech-api/v1/recognize?lang=${LANGUAGE}&amp;amp;client=chromium&amp;quot; &amp;gt; $1.ret&lt;br /&gt;
  echo &amp;quot;3 SED Extract recognized text&amp;quot; &lt;br /&gt;
  cat $1.ret | sed 's/.*utterance&amp;quot;:&amp;quot;//' | sed 's/&amp;quot;,&amp;quot;confidence.*//' &amp;gt; $1.txt&lt;br /&gt;
  echo &amp;quot;4 Remove Temporary Files&amp;quot;&lt;br /&gt;
  rm $1.flac&lt;br /&gt;
  rm $1.ret&lt;br /&gt;
  echo &amp;quot;5 Show Text &amp;quot;&lt;br /&gt;
  cat $1.txt&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
* The WGET code was extended from the article on [http://www.commandlinefu.com/commands/view/8043/google-voice-recognition-api http://www.commandlinefu.com].&lt;br /&gt;
* With your [[Android]] phone 2.2 the Google Voice API can be used by installation with Android Market.&lt;br /&gt;
* with the [http://www.google.com/chrome Chrome Browser] on a Linux Box you can test the Google Voice API [http://slides.html5rocks.com/#speech-input http://slides.html5rocks.com/#speech-input] via a Web-Interface.&lt;/div&gt;</summary>
		<author><name>Niebert</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Google_Voice_Recognition</id>
		<title>Google Voice Recognition</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Google_Voice_Recognition"/>
				<updated>2011-10-03T15:10:00Z</updated>
		
		<summary type="html">&lt;p&gt;Niebert: /* Links */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Because the performance of your Freerunner is too poor for voice recognition, the Google Voice API can be used to convert an recorded Audio file into a text string. Be aware that the audio file will be transmitted to Google, so  need to have Internet access on your freerunner FR to submit the audio file. &lt;br /&gt;
&lt;br /&gt;
{{Note|You must be aware of the fact, that the follow script is running on your freerunner but it is not a standalone voice recognition software and so you might not want to use this tool for private audio files.}}&lt;br /&gt;
&lt;br /&gt;
==Google Voice API==&lt;br /&gt;
For using the Google Voice API and the script you need to have the following package installed on your freerunner:&lt;br /&gt;
* SoX [http://sox.sourceforge.net http://sox.sourceforge.net]for converting WAV into FLAC files&lt;br /&gt;
* WGET [http://www.gnu.org/s/wget/ http://www.gnu.org/s/wget/] for submitting the FLAC file to the Google Voice API&lt;br /&gt;
* SED [http://sed.sourceforge.net/ http://sed.sourceforge.net/] for extracting the recognized text in the returned string of the Google Voice API&lt;br /&gt;
&lt;br /&gt;
==Script Usage==&lt;br /&gt;
* The script &amp;lt;tt&amp;gt;googlevoice.sh&amp;lt;/tt&amp;gt; uses a the audio file &amp;lt;tt&amp;gt;message.wav&amp;lt;/tt&amp;gt; in the directory of the script. All files are stored in the same directory, so you need write permissions for that directory.&lt;br /&gt;
* SoX converts &amp;lt;tt&amp;gt;message.wav&amp;lt;/tt&amp;gt;  into &amp;lt;tt&amp;gt;message.flac&amp;lt;/tt&amp;gt; &lt;br /&gt;
* wget submits the file &amp;lt;tt&amp;gt;message.flac&amp;lt;/tt&amp;gt; to the Google Voice API and writes the return message to &amp;lt;tt&amp;gt;message.ret&amp;lt;/tt&amp;gt;. The language variable in the script is set to German by  &amp;lt;tt&amp;gt;lang=de-de&amp;lt;/tt&amp;gt;. If you want to submit a recorded file in US-English use &amp;lt;tt&amp;gt;lang=en-us&amp;lt;/tt&amp;gt; instead.&lt;br /&gt;
* SED extracts the recognized text &amp;lt;tt&amp;gt;message.ret&amp;lt;/tt&amp;gt; by regular expressions and writes the text into &amp;lt;tt&amp;gt;message.txt&amp;lt;/tt&amp;gt;.&lt;br /&gt;
* Temporary files &amp;lt;tt&amp;gt;message.flac&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;message.ret&amp;lt;/tt&amp;gt; will be deleted after the process.&lt;br /&gt;
&lt;br /&gt;
==Basic Script Code==&lt;br /&gt;
The script code &amp;lt;tt&amp;gt;googlevoice.sh&amp;lt;/tt&amp;gt; can be tested on any Linux machine with SoX, SED, WGET installed. Modifiy the script according to your demands and storage of your audio files&lt;br /&gt;
&lt;br /&gt;
  #!/bin/sh&lt;br /&gt;
  echo &amp;quot;1 SoX Sound Exchange - Convert WAV to FLAC with 16000&amp;quot; &lt;br /&gt;
  sox message.wav message.flac rate 16k&lt;br /&gt;
  echo &amp;quot;2 Submit to Google Voice Recognition&amp;quot;&lt;br /&gt;
  wget -q -U &amp;quot;Mozilla/5.0&amp;quot; --post-file message.flac --header=&amp;quot;Content-Type: audio/x-flac; rate=16000&amp;quot; -O - &amp;quot;http://www.google.com/speech-api/v1/recognize?lang=de-de&amp;amp;client=chromium&amp;quot; &amp;gt; message.ret&lt;br /&gt;
  echo &amp;quot;3 SED Extract recognized text&amp;quot; &lt;br /&gt;
  cat message.ret | sed 's/.*utterance&amp;quot;:&amp;quot;//' | sed 's/&amp;quot;,&amp;quot;confidence.*//' &amp;gt; message.txt&lt;br /&gt;
  echo &amp;quot;4 Remove Temporary Files&amp;quot;&lt;br /&gt;
  rm message.flac&lt;br /&gt;
  rm message.ret&lt;br /&gt;
  echo &amp;quot;5 Show Text &amp;quot;&lt;br /&gt;
  cat message.txt&lt;br /&gt;
&lt;br /&gt;
The parameter &amp;lt;tt&amp;gt;lang=de-de&amp;lt;/tt&amp;gt; is indicating, that the Google Voice API is expecting a German language audio file. Replace &amp;lt;tt&amp;gt;lang=de-de&amp;lt;/tt&amp;gt; by &amp;lt;tt&amp;gt;lang=en-us&amp;lt;/tt&amp;gt; to submit an audio file in US-English.&lt;br /&gt;
&lt;br /&gt;
== Script with Language Setting and Command Line Parameter ==&lt;br /&gt;
The script &amp;lt;tt&amp;gt;googlevoicepar.sh&amp;lt;/tt&amp;gt; with a command line parameter can be used if you want to use multiple input files for batch file recognition. You will call this script with the basename e.g. &amp;lt;tt&amp;gt;message0, message1,...&amp;lt;/tt&amp;gt; by &lt;br /&gt;
* &amp;lt;tt&amp;gt;googlevoicepar.sh message0&amp;lt;/tt&amp;gt; converts &amp;lt;tt&amp;gt;message0.wav&amp;lt;/tt&amp;gt; into &amp;lt;tt&amp;gt;message0.txt&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;googlevoicepar.sh message1&amp;lt;/tt&amp;gt; converts &amp;lt;tt&amp;gt;message1.wav&amp;lt;/tt&amp;gt; into &amp;lt;tt&amp;gt;message1.txt&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;googlevoicepar.sh message2&amp;lt;/tt&amp;gt; converts &amp;lt;tt&amp;gt;message2.wav&amp;lt;/tt&amp;gt; into &amp;lt;tt&amp;gt;message2.txt&amp;lt;/tt&amp;gt;&lt;br /&gt;
* ....&lt;br /&gt;
&lt;br /&gt;
  #!/bin/sh&lt;br /&gt;
  LANGUAGE=&amp;quot;de-de&amp;quot;&lt;br /&gt;
  echo &amp;quot;1 SoX Sound Exchange - Convert $1.wav to $1.flacC with 16000&amp;quot; &lt;br /&gt;
  sox $1.wav $1.flac rate 16k&lt;br /&gt;
  echo &amp;quot;2 Submit to Google Voice Recognition $1.flac&amp;quot;&lt;br /&gt;
  wget -q -U &amp;quot;Mozilla/5.0&amp;quot; --post-file message.flac --header=&amp;quot;Content-Type: audio/x-flac; rate=16000&amp;quot; -O - &amp;quot;http://www.google.com/speech-api/v1/recognize?lang=${LANGUAGE}&amp;amp;client=chromium&amp;quot; &amp;gt; $1.ret&lt;br /&gt;
  echo &amp;quot;3 SED Extract recognized text&amp;quot; &lt;br /&gt;
  cat $1.ret | sed 's/.*utterance&amp;quot;:&amp;quot;//' | sed 's/&amp;quot;,&amp;quot;confidence.*//' &amp;gt; $1.txt&lt;br /&gt;
  echo &amp;quot;4 Remove Temporary Files&amp;quot;&lt;br /&gt;
  rm $1.flac&lt;br /&gt;
  rm $1.ret&lt;br /&gt;
  echo &amp;quot;5 Show Text &amp;quot;&lt;br /&gt;
  cat $1.txt&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
* The WGET code was extended from the article on [http://www.commandlinefu.com/commands/view/8043/google-voice-recognition-api http://www.commandlinefu.com].&lt;br /&gt;
* With your [[Android]] phone 2.2 the Google Voice API can be used by installation with Android Market.&lt;br /&gt;
* with the [http://www.google.com/chrome Chrome Browser] on a Linux Box you can test the Google Voice API [http://slides.html5rocks.com/#speech-input http://slides.html5rocks.com/#speech-input] via a Web-Interface.&lt;/div&gt;</summary>
		<author><name>Niebert</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Google_Voice_Recognition</id>
		<title>Google Voice Recognition</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Google_Voice_Recognition"/>
				<updated>2011-10-03T15:08:57Z</updated>
		
		<summary type="html">&lt;p&gt;Niebert: /* Script Code */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Because the performance of your Freerunner is too poor for voice recognition, the Google Voice API can be used to convert an recorded Audio file into a text string. Be aware that the audio file will be transmitted to Google, so  need to have Internet access on your freerunner FR to submit the audio file. &lt;br /&gt;
&lt;br /&gt;
{{Note|You must be aware of the fact, that the follow script is running on your freerunner but it is not a standalone voice recognition software and so you might not want to use this tool for private audio files.}}&lt;br /&gt;
&lt;br /&gt;
==Google Voice API==&lt;br /&gt;
For using the Google Voice API and the script you need to have the following package installed on your freerunner:&lt;br /&gt;
* SoX [http://sox.sourceforge.net http://sox.sourceforge.net]for converting WAV into FLAC files&lt;br /&gt;
* WGET [http://www.gnu.org/s/wget/ http://www.gnu.org/s/wget/] for submitting the FLAC file to the Google Voice API&lt;br /&gt;
* SED [http://sed.sourceforge.net/ http://sed.sourceforge.net/] for extracting the recognized text in the returned string of the Google Voice API&lt;br /&gt;
&lt;br /&gt;
==Script Usage==&lt;br /&gt;
* The script &amp;lt;tt&amp;gt;googlevoice.sh&amp;lt;/tt&amp;gt; uses a the audio file &amp;lt;tt&amp;gt;message.wav&amp;lt;/tt&amp;gt; in the directory of the script. All files are stored in the same directory, so you need write permissions for that directory.&lt;br /&gt;
* SoX converts &amp;lt;tt&amp;gt;message.wav&amp;lt;/tt&amp;gt;  into &amp;lt;tt&amp;gt;message.flac&amp;lt;/tt&amp;gt; &lt;br /&gt;
* wget submits the file &amp;lt;tt&amp;gt;message.flac&amp;lt;/tt&amp;gt; to the Google Voice API and writes the return message to &amp;lt;tt&amp;gt;message.ret&amp;lt;/tt&amp;gt;. The language variable in the script is set to German by  &amp;lt;tt&amp;gt;lang=de-de&amp;lt;/tt&amp;gt;. If you want to submit a recorded file in US-English use &amp;lt;tt&amp;gt;lang=en-us&amp;lt;/tt&amp;gt; instead.&lt;br /&gt;
* SED extracts the recognized text &amp;lt;tt&amp;gt;message.ret&amp;lt;/tt&amp;gt; by regular expressions and writes the text into &amp;lt;tt&amp;gt;message.txt&amp;lt;/tt&amp;gt;.&lt;br /&gt;
* Temporary files &amp;lt;tt&amp;gt;message.flac&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;message.ret&amp;lt;/tt&amp;gt; will be deleted after the process.&lt;br /&gt;
&lt;br /&gt;
==Basic Script Code==&lt;br /&gt;
The script code &amp;lt;tt&amp;gt;googlevoice.sh&amp;lt;/tt&amp;gt; can be tested on any Linux machine with SoX, SED, WGET installed. Modifiy the script according to your demands and storage of your audio files&lt;br /&gt;
&lt;br /&gt;
  #!/bin/sh&lt;br /&gt;
  echo &amp;quot;1 SoX Sound Exchange - Convert WAV to FLAC with 16000&amp;quot; &lt;br /&gt;
  sox message.wav message.flac rate 16k&lt;br /&gt;
  echo &amp;quot;2 Submit to Google Voice Recognition&amp;quot;&lt;br /&gt;
  wget -q -U &amp;quot;Mozilla/5.0&amp;quot; --post-file message.flac --header=&amp;quot;Content-Type: audio/x-flac; rate=16000&amp;quot; -O - &amp;quot;http://www.google.com/speech-api/v1/recognize?lang=de-de&amp;amp;client=chromium&amp;quot; &amp;gt; message.ret&lt;br /&gt;
  echo &amp;quot;3 SED Extract recognized text&amp;quot; &lt;br /&gt;
  cat message.ret | sed 's/.*utterance&amp;quot;:&amp;quot;//' | sed 's/&amp;quot;,&amp;quot;confidence.*//' &amp;gt; message.txt&lt;br /&gt;
  echo &amp;quot;4 Remove Temporary Files&amp;quot;&lt;br /&gt;
  rm message.flac&lt;br /&gt;
  rm message.ret&lt;br /&gt;
  echo &amp;quot;5 Show Text &amp;quot;&lt;br /&gt;
  cat message.txt&lt;br /&gt;
&lt;br /&gt;
The parameter &amp;lt;tt&amp;gt;lang=de-de&amp;lt;/tt&amp;gt; is indicating, that the Google Voice API is expecting a German language audio file. Replace &amp;lt;tt&amp;gt;lang=de-de&amp;lt;/tt&amp;gt; by &amp;lt;tt&amp;gt;lang=en-us&amp;lt;/tt&amp;gt; to submit an audio file in US-English.&lt;br /&gt;
&lt;br /&gt;
== Script with Language Setting and Command Line Parameter ==&lt;br /&gt;
The script &amp;lt;tt&amp;gt;googlevoicepar.sh&amp;lt;/tt&amp;gt; with a command line parameter can be used if you want to use multiple input files for batch file recognition. You will call this script with the basename e.g. &amp;lt;tt&amp;gt;message0, message1,...&amp;lt;/tt&amp;gt; by &lt;br /&gt;
* &amp;lt;tt&amp;gt;googlevoicepar.sh message0&amp;lt;/tt&amp;gt; converts &amp;lt;tt&amp;gt;message0.wav&amp;lt;/tt&amp;gt; into &amp;lt;tt&amp;gt;message0.txt&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;googlevoicepar.sh message1&amp;lt;/tt&amp;gt; converts &amp;lt;tt&amp;gt;message1.wav&amp;lt;/tt&amp;gt; into &amp;lt;tt&amp;gt;message1.txt&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;googlevoicepar.sh message2&amp;lt;/tt&amp;gt; converts &amp;lt;tt&amp;gt;message2.wav&amp;lt;/tt&amp;gt; into &amp;lt;tt&amp;gt;message2.txt&amp;lt;/tt&amp;gt;&lt;br /&gt;
* ....&lt;br /&gt;
&lt;br /&gt;
  #!/bin/sh&lt;br /&gt;
  LANGUAGE=&amp;quot;de-de&amp;quot;&lt;br /&gt;
  echo &amp;quot;1 SoX Sound Exchange - Convert $1.wav to $1.flacC with 16000&amp;quot; &lt;br /&gt;
  sox $1.wav $1.flac rate 16k&lt;br /&gt;
  echo &amp;quot;2 Submit to Google Voice Recognition $1.flac&amp;quot;&lt;br /&gt;
  wget -q -U &amp;quot;Mozilla/5.0&amp;quot; --post-file message.flac --header=&amp;quot;Content-Type: audio/x-flac; rate=16000&amp;quot; -O - &amp;quot;http://www.google.com/speech-api/v1/recognize?lang=${LANGUAGE}&amp;amp;client=chromium&amp;quot; &amp;gt; $1.ret&lt;br /&gt;
  echo &amp;quot;3 SED Extract recognized text&amp;quot; &lt;br /&gt;
  cat $1.ret | sed 's/.*utterance&amp;quot;:&amp;quot;//' | sed 's/&amp;quot;,&amp;quot;confidence.*//' &amp;gt; $1.txt&lt;br /&gt;
  echo &amp;quot;4 Remove Temporary Files&amp;quot;&lt;br /&gt;
  rm $1.flac&lt;br /&gt;
  rm $1.ret&lt;br /&gt;
  echo &amp;quot;5 Show Text &amp;quot;&lt;br /&gt;
  cat $1.txt&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
* The WGET code was extended from the article on [http://www.commandlinefu.com/commands/view/8043/google-voice-recognition-api http://www.commandlinefu.com].&lt;br /&gt;
* With your [[Android]] phone 2.2 the Google Voice API can be used.&lt;br /&gt;
* with the [http://www.google.com/chrome Chrome Browser] on a Linux Box you can test the Google Voice API [http://slides.html5rocks.com/#speech-input http://slides.html5rocks.com/#speech-input] via a Web-Interface.&lt;/div&gt;</summary>
		<author><name>Niebert</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Google_Voice_Recognition</id>
		<title>Google Voice Recognition</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Google_Voice_Recognition"/>
				<updated>2011-10-03T15:00:44Z</updated>
		
		<summary type="html">&lt;p&gt;Niebert: /* Script Usage */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Because the performance of your Freerunner is too poor for voice recognition, the Google Voice API can be used to convert an recorded Audio file into a text string. Be aware that the audio file will be transmitted to Google, so  need to have Internet access on your freerunner FR to submit the audio file. &lt;br /&gt;
&lt;br /&gt;
{{Note|You must be aware of the fact, that the follow script is running on your freerunner but it is not a standalone voice recognition software and so you might not want to use this tool for private audio files.}}&lt;br /&gt;
&lt;br /&gt;
==Google Voice API==&lt;br /&gt;
For using the Google Voice API and the script you need to have the following package installed on your freerunner:&lt;br /&gt;
* SoX [http://sox.sourceforge.net http://sox.sourceforge.net]for converting WAV into FLAC files&lt;br /&gt;
* WGET [http://www.gnu.org/s/wget/ http://www.gnu.org/s/wget/] for submitting the FLAC file to the Google Voice API&lt;br /&gt;
* SED [http://sed.sourceforge.net/ http://sed.sourceforge.net/] for extracting the recognized text in the returned string of the Google Voice API&lt;br /&gt;
&lt;br /&gt;
==Script Usage==&lt;br /&gt;
* The script &amp;lt;tt&amp;gt;googlevoice.sh&amp;lt;/tt&amp;gt; uses a the audio file &amp;lt;tt&amp;gt;message.wav&amp;lt;/tt&amp;gt; in the directory of the script. All files are stored in the same directory, so you need write permissions for that directory.&lt;br /&gt;
* SoX converts &amp;lt;tt&amp;gt;message.wav&amp;lt;/tt&amp;gt;  into &amp;lt;tt&amp;gt;message.flac&amp;lt;/tt&amp;gt; &lt;br /&gt;
* wget submits the file &amp;lt;tt&amp;gt;message.flac&amp;lt;/tt&amp;gt; to the Google Voice API and writes the return message to &amp;lt;tt&amp;gt;message.ret&amp;lt;/tt&amp;gt;. The language variable in the script is set to German by  &amp;lt;tt&amp;gt;lang=de-de&amp;lt;/tt&amp;gt;. If you want to submit a recorded file in US-English use &amp;lt;tt&amp;gt;lang=en-us&amp;lt;/tt&amp;gt; instead.&lt;br /&gt;
* SED extracts the recognized text &amp;lt;tt&amp;gt;message.ret&amp;lt;/tt&amp;gt; by regular expressions and writes the text into &amp;lt;tt&amp;gt;message.txt&amp;lt;/tt&amp;gt;.&lt;br /&gt;
* Temporary files &amp;lt;tt&amp;gt;message.flac&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;message.ret&amp;lt;/tt&amp;gt; will be deleted after the process.&lt;br /&gt;
&lt;br /&gt;
==Script Code==&lt;br /&gt;
The script code can be tested on any Linux machine with SoX, SED, WGET installed. Modifiy the script according to your demands and storage of your audio files&lt;br /&gt;
&lt;br /&gt;
  #!/bin/sh&lt;br /&gt;
  echo &amp;quot;1 SoX Sound Exchange - Convert WAV to FLAC with 16000&amp;quot; &lt;br /&gt;
  sox message.wav message.flac rate 16k&lt;br /&gt;
  echo &amp;quot;2 Submit to Google Voice Recognition&amp;quot;&lt;br /&gt;
  wget -q -U &amp;quot;Mozilla/5.0&amp;quot; --post-file message.flac --header=&amp;quot;Content-Type: audio/x-flac; rate=16000&amp;quot; -O - &amp;quot;http://www.google.com/speech-api/v1/recognize?lang=de-de&amp;amp;client=chromium&amp;quot; &amp;gt; message.ret&lt;br /&gt;
  echo &amp;quot;3 SED Extract recognized text&amp;quot; &lt;br /&gt;
  cat message.ret | sed 's/.*utterance&amp;quot;:&amp;quot;//' | sed 's/&amp;quot;,&amp;quot;confidence.*//' &amp;gt; message.txt&lt;br /&gt;
  echo &amp;quot;4 Remove Temporary Files&amp;quot;&lt;br /&gt;
  rm message.flac&lt;br /&gt;
  rm message.ret&lt;br /&gt;
  echo &amp;quot;5 Show Text &amp;quot;&lt;br /&gt;
  cat message.txt&lt;br /&gt;
&lt;br /&gt;
The parameter &amp;lt;tt&amp;gt;lang=de-de&amp;lt;/tt&amp;gt; is indicating, that the Google Voice API is expecting a German language audio file. Replace &amp;lt;tt&amp;gt;lang=de-de&amp;lt;/tt&amp;gt; by &amp;lt;tt&amp;gt;lang=en-us&amp;lt;/tt&amp;gt; to submit an audio file in US-English.&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
* The WGET code was extended from the article on [http://www.commandlinefu.com/commands/view/8043/google-voice-recognition-api http://www.commandlinefu.com].&lt;br /&gt;
* With your [[Android]] phone 2.2 the Google Voice API can be used.&lt;br /&gt;
* with the [http://www.google.com/chrome Chrome Browser] on a Linux Box you can test the Google Voice API [http://slides.html5rocks.com/#speech-input http://slides.html5rocks.com/#speech-input] via a Web-Interface.&lt;/div&gt;</summary>
		<author><name>Niebert</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Google_Voice_Recognition</id>
		<title>Google Voice Recognition</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Google_Voice_Recognition"/>
				<updated>2011-10-03T13:51:25Z</updated>
		
		<summary type="html">&lt;p&gt;Niebert: /* Links */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Because the performance of your Freerunner is too poor for voice recognition, the Google Voice API can be used to convert an recorded Audio file into a text string. Be aware that the audio file will be transmitted to Google, so  need to have Internet access on your freerunner FR to submit the audio file. &lt;br /&gt;
&lt;br /&gt;
{{Note|You must be aware of the fact, that the follow script is running on your freerunner but it is not a standalone voice recognition software and so you might not want to use this tool for private audio files.}}&lt;br /&gt;
&lt;br /&gt;
==Google Voice API==&lt;br /&gt;
For using the Google Voice API and the script you need to have the following package installed on your freerunner:&lt;br /&gt;
* SoX [http://sox.sourceforge.net http://sox.sourceforge.net]for converting WAV into FLAC files&lt;br /&gt;
* WGET [http://www.gnu.org/s/wget/ http://www.gnu.org/s/wget/] for submitting the FLAC file to the Google Voice API&lt;br /&gt;
* SED [http://sed.sourceforge.net/ http://sed.sourceforge.net/] for extracting the recognized text in the returned string of the Google Voice API&lt;br /&gt;
&lt;br /&gt;
==Script Usage==&lt;br /&gt;
* The script &amp;lt;tt&amp;gt;googlevoice.sh&amp;lt;/tt&amp;gt; uses a audio file &amp;lt;tt&amp;gt;message.wav&amp;lt;/tt&amp;gt; in the directory of the script. All files are stored in the same directory, so you need write permissions for the directory.&lt;br /&gt;
* SoX converts &amp;lt;tt&amp;gt;message.wav&amp;lt;/tt&amp;gt;  into &amp;lt;tt&amp;gt;message.flac&amp;lt;/tt&amp;gt; &lt;br /&gt;
* wget submits the file &amp;lt;tt&amp;gt;message.flac&amp;lt;/tt&amp;gt; to the Google Voice API and writes the return message to &amp;lt;tt&amp;gt;message.ret&amp;lt;/tt&amp;gt;. The language variable in the script is set to German by  &amp;lt;tt&amp;gt;lang=de-de&amp;lt;/tt&amp;gt;. If you want to submit a recorded file in US-English use &amp;lt;tt&amp;gt;lang=en-us&amp;lt;/tt&amp;gt; instead.&lt;br /&gt;
* SED extracts the recognized text &amp;lt;tt&amp;gt;message.ret&amp;lt;/tt&amp;gt; by regular expressions and writes the text into &amp;lt;tt&amp;gt;message.txt&amp;lt;/tt&amp;gt;.&lt;br /&gt;
* Temporary files &amp;lt;tt&amp;gt;message.flac&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;message.ret&amp;lt;/tt&amp;gt; will be deleted after the process.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Script Code==&lt;br /&gt;
The script code can be tested on any Linux machine with SoX, SED, WGET installed. Modifiy the script according to your demands and storage of your audio files&lt;br /&gt;
&lt;br /&gt;
  #!/bin/sh&lt;br /&gt;
  echo &amp;quot;1 SoX Sound Exchange - Convert WAV to FLAC with 16000&amp;quot; &lt;br /&gt;
  sox message.wav message.flac rate 16k&lt;br /&gt;
  echo &amp;quot;2 Submit to Google Voice Recognition&amp;quot;&lt;br /&gt;
  wget -q -U &amp;quot;Mozilla/5.0&amp;quot; --post-file message.flac --header=&amp;quot;Content-Type: audio/x-flac; rate=16000&amp;quot; -O - &amp;quot;http://www.google.com/speech-api/v1/recognize?lang=de-de&amp;amp;client=chromium&amp;quot; &amp;gt; message.ret&lt;br /&gt;
  echo &amp;quot;3 SED Extract recognized text&amp;quot; &lt;br /&gt;
  cat message.ret | sed 's/.*utterance&amp;quot;:&amp;quot;//' | sed 's/&amp;quot;,&amp;quot;confidence.*//' &amp;gt; message.txt&lt;br /&gt;
  echo &amp;quot;4 Remove Temporary Files&amp;quot;&lt;br /&gt;
  rm message.flac&lt;br /&gt;
  rm message.ret&lt;br /&gt;
  echo &amp;quot;5 Show Text &amp;quot;&lt;br /&gt;
  cat message.txt&lt;br /&gt;
&lt;br /&gt;
The parameter &amp;lt;tt&amp;gt;lang=de-de&amp;lt;/tt&amp;gt; is indicating, that the Google Voice API is expecting a German language audio file. Replace &amp;lt;tt&amp;gt;lang=de-de&amp;lt;/tt&amp;gt; by &amp;lt;tt&amp;gt;lang=en-us&amp;lt;/tt&amp;gt; to submit an audio file in US-English.&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
* The WGET code was extended from the article on [http://www.commandlinefu.com/commands/view/8043/google-voice-recognition-api http://www.commandlinefu.com].&lt;br /&gt;
* With your [[Android]] phone 2.2 the Google Voice API can be used.&lt;br /&gt;
* with the [http://www.google.com/chrome Chrome Browser] on a Linux Box you can test the Google Voice API [http://slides.html5rocks.com/#speech-input http://slides.html5rocks.com/#speech-input] via a Web-Interface.&lt;/div&gt;</summary>
		<author><name>Niebert</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Google_Voice_Recognition</id>
		<title>Google Voice Recognition</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Google_Voice_Recognition"/>
				<updated>2011-10-03T13:48:04Z</updated>
		
		<summary type="html">&lt;p&gt;Niebert: /* Script Code */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Because the performance of your Freerunner is too poor for voice recognition, the Google Voice API can be used to convert an recorded Audio file into a text string. Be aware that the audio file will be transmitted to Google, so  need to have Internet access on your freerunner FR to submit the audio file. &lt;br /&gt;
&lt;br /&gt;
{{Note|You must be aware of the fact, that the follow script is running on your freerunner but it is not a standalone voice recognition software and so you might not want to use this tool for private audio files.}}&lt;br /&gt;
&lt;br /&gt;
==Google Voice API==&lt;br /&gt;
For using the Google Voice API and the script you need to have the following package installed on your freerunner:&lt;br /&gt;
* SoX [http://sox.sourceforge.net http://sox.sourceforge.net]for converting WAV into FLAC files&lt;br /&gt;
* WGET [http://www.gnu.org/s/wget/ http://www.gnu.org/s/wget/] for submitting the FLAC file to the Google Voice API&lt;br /&gt;
* SED [http://sed.sourceforge.net/ http://sed.sourceforge.net/] for extracting the recognized text in the returned string of the Google Voice API&lt;br /&gt;
&lt;br /&gt;
==Script Usage==&lt;br /&gt;
* The script &amp;lt;tt&amp;gt;googlevoice.sh&amp;lt;/tt&amp;gt; uses a audio file &amp;lt;tt&amp;gt;message.wav&amp;lt;/tt&amp;gt; in the directory of the script. All files are stored in the same directory, so you need write permissions for the directory.&lt;br /&gt;
* SoX converts &amp;lt;tt&amp;gt;message.wav&amp;lt;/tt&amp;gt;  into &amp;lt;tt&amp;gt;message.flac&amp;lt;/tt&amp;gt; &lt;br /&gt;
* wget submits the file &amp;lt;tt&amp;gt;message.flac&amp;lt;/tt&amp;gt; to the Google Voice API and writes the return message to &amp;lt;tt&amp;gt;message.ret&amp;lt;/tt&amp;gt;. The language variable in the script is set to German by  &amp;lt;tt&amp;gt;lang=de-de&amp;lt;/tt&amp;gt;. If you want to submit a recorded file in US-English use &amp;lt;tt&amp;gt;lang=en-us&amp;lt;/tt&amp;gt; instead.&lt;br /&gt;
* SED extracts the recognized text &amp;lt;tt&amp;gt;message.ret&amp;lt;/tt&amp;gt; by regular expressions and writes the text into &amp;lt;tt&amp;gt;message.txt&amp;lt;/tt&amp;gt;.&lt;br /&gt;
* Temporary files &amp;lt;tt&amp;gt;message.flac&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;message.ret&amp;lt;/tt&amp;gt; will be deleted after the process.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Script Code==&lt;br /&gt;
The script code can be tested on any Linux machine with SoX, SED, WGET installed. Modifiy the script according to your demands and storage of your audio files&lt;br /&gt;
&lt;br /&gt;
  #!/bin/sh&lt;br /&gt;
  echo &amp;quot;1 SoX Sound Exchange - Convert WAV to FLAC with 16000&amp;quot; &lt;br /&gt;
  sox message.wav message.flac rate 16k&lt;br /&gt;
  echo &amp;quot;2 Submit to Google Voice Recognition&amp;quot;&lt;br /&gt;
  wget -q -U &amp;quot;Mozilla/5.0&amp;quot; --post-file message.flac --header=&amp;quot;Content-Type: audio/x-flac; rate=16000&amp;quot; -O - &amp;quot;http://www.google.com/speech-api/v1/recognize?lang=de-de&amp;amp;client=chromium&amp;quot; &amp;gt; message.ret&lt;br /&gt;
  echo &amp;quot;3 SED Extract recognized text&amp;quot; &lt;br /&gt;
  cat message.ret | sed 's/.*utterance&amp;quot;:&amp;quot;//' | sed 's/&amp;quot;,&amp;quot;confidence.*//' &amp;gt; message.txt&lt;br /&gt;
  echo &amp;quot;4 Remove Temporary Files&amp;quot;&lt;br /&gt;
  rm message.flac&lt;br /&gt;
  rm message.ret&lt;br /&gt;
  echo &amp;quot;5 Show Text &amp;quot;&lt;br /&gt;
  cat message.txt&lt;br /&gt;
&lt;br /&gt;
The parameter &amp;lt;tt&amp;gt;lang=de-de&amp;lt;/tt&amp;gt; is indicating, that the Google Voice API is expecting a German language audio file. Replace &amp;lt;tt&amp;gt;lang=de-de&amp;lt;/tt&amp;gt; by &amp;lt;tt&amp;gt;lang=en-us&amp;lt;/tt&amp;gt; to submit an audio file in US-English.&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
The WGET code was extended from the article on [http://www.commandlinefu.com/commands/view/8043/google-voice-recognition-api http://www.commandlinefu.com].&lt;/div&gt;</summary>
		<author><name>Niebert</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Google_Voice_Recognition</id>
		<title>Google Voice Recognition</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Google_Voice_Recognition"/>
				<updated>2011-10-03T13:40:18Z</updated>
		
		<summary type="html">&lt;p&gt;Niebert: /* Links */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Because the performance of your Freerunner is too poor for voice recognition, the Google Voice API can be used to convert an recorded Audio file into a text string. Be aware that the audio file will be transmitted to Google, so  need to have Internet access on your freerunner FR to submit the audio file. &lt;br /&gt;
&lt;br /&gt;
{{Note|You must be aware of the fact, that the follow script is running on your freerunner but it is not a standalone voice recognition software and so you might not want to use this tool for private audio files.}}&lt;br /&gt;
&lt;br /&gt;
==Google Voice API==&lt;br /&gt;
For using the Google Voice API and the script you need to have the following package installed on your freerunner:&lt;br /&gt;
* SoX [http://sox.sourceforge.net http://sox.sourceforge.net]for converting WAV into FLAC files&lt;br /&gt;
* WGET [http://www.gnu.org/s/wget/ http://www.gnu.org/s/wget/] for submitting the FLAC file to the Google Voice API&lt;br /&gt;
* SED [http://sed.sourceforge.net/ http://sed.sourceforge.net/] for extracting the recognized text in the returned string of the Google Voice API&lt;br /&gt;
&lt;br /&gt;
==Script Usage==&lt;br /&gt;
* The script &amp;lt;tt&amp;gt;googlevoice.sh&amp;lt;/tt&amp;gt; uses a audio file &amp;lt;tt&amp;gt;message.wav&amp;lt;/tt&amp;gt; in the directory of the script. All files are stored in the same directory, so you need write permissions for the directory.&lt;br /&gt;
* SoX converts &amp;lt;tt&amp;gt;message.wav&amp;lt;/tt&amp;gt;  into &amp;lt;tt&amp;gt;message.flac&amp;lt;/tt&amp;gt; &lt;br /&gt;
* wget submits the file &amp;lt;tt&amp;gt;message.flac&amp;lt;/tt&amp;gt; to the Google Voice API and writes the return message to &amp;lt;tt&amp;gt;message.ret&amp;lt;/tt&amp;gt;. The language variable in the script is set to German by  &amp;lt;tt&amp;gt;lang=de-de&amp;lt;/tt&amp;gt;. If you want to submit a recorded file in US-English use &amp;lt;tt&amp;gt;lang=en-us&amp;lt;/tt&amp;gt; instead.&lt;br /&gt;
* SED extracts the recognized text &amp;lt;tt&amp;gt;message.ret&amp;lt;/tt&amp;gt; by regular expressions and writes the text into &amp;lt;tt&amp;gt;message.txt&amp;lt;/tt&amp;gt;.&lt;br /&gt;
* Temporary files &amp;lt;tt&amp;gt;message.flac&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;message.ret&amp;lt;/tt&amp;gt; will be deleted after the process.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Script Code==&lt;br /&gt;
The script code can be tested on any Linux machine with SoX, SED, WGET installed. Modifiy the script according to your demands and storage of your audio files&lt;br /&gt;
&lt;br /&gt;
  #!/bin/sh&lt;br /&gt;
  echo &amp;quot;1 SoX Sound Exchange - Convert WAV to FLAC with 16000&amp;quot; &lt;br /&gt;
  sox message.wav message.flac rate 16k&lt;br /&gt;
  echo &amp;quot;2 Submit to Google Voice Recognition&amp;quot;&lt;br /&gt;
  wget -q -U &amp;quot;Mozilla/5.0&amp;quot; --post-file message.flac --header=&amp;quot;Content-Type: audio/x-flac; rate=16000&amp;quot; -O - &amp;quot;http://www.google.com/speech-api/v1/recognize?lang=de-de&amp;amp;client=chromium&amp;quot; &amp;gt; message.ret&lt;br /&gt;
  echo &amp;quot;3 SED Extract recognized text&amp;quot; &lt;br /&gt;
  cat message.ret | sed 's/.*utterance&amp;quot;:&amp;quot;//' | sed 's/&amp;quot;,&amp;quot;confidence.*//' &amp;gt; message.txt&lt;br /&gt;
  echo &amp;quot;4 Remove Temporary Files&amp;quot;&lt;br /&gt;
  rm message.flac&lt;br /&gt;
  rm message.ret&lt;br /&gt;
  echo &amp;quot;5 Show Text &amp;quot;&lt;br /&gt;
  cat message.txt&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
The WGET code was extended from the article on [http://www.commandlinefu.com/commands/view/8043/google-voice-recognition-api http://www.commandlinefu.com].&lt;/div&gt;</summary>
		<author><name>Niebert</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Google_Voice_Recognition</id>
		<title>Google Voice Recognition</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Google_Voice_Recognition"/>
				<updated>2011-10-03T13:39:26Z</updated>
		
		<summary type="html">&lt;p&gt;Niebert: /* Links */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Because the performance of your Freerunner is too poor for voice recognition, the Google Voice API can be used to convert an recorded Audio file into a text string. Be aware that the audio file will be transmitted to Google, so  need to have Internet access on your freerunner FR to submit the audio file. &lt;br /&gt;
&lt;br /&gt;
{{Note|You must be aware of the fact, that the follow script is running on your freerunner but it is not a standalone voice recognition software and so you might not want to use this tool for private audio files.}}&lt;br /&gt;
&lt;br /&gt;
==Google Voice API==&lt;br /&gt;
For using the Google Voice API and the script you need to have the following package installed on your freerunner:&lt;br /&gt;
* SoX [http://sox.sourceforge.net http://sox.sourceforge.net]for converting WAV into FLAC files&lt;br /&gt;
* WGET [http://www.gnu.org/s/wget/ http://www.gnu.org/s/wget/] for submitting the FLAC file to the Google Voice API&lt;br /&gt;
* SED [http://sed.sourceforge.net/ http://sed.sourceforge.net/] for extracting the recognized text in the returned string of the Google Voice API&lt;br /&gt;
&lt;br /&gt;
==Script Usage==&lt;br /&gt;
* The script &amp;lt;tt&amp;gt;googlevoice.sh&amp;lt;/tt&amp;gt; uses a audio file &amp;lt;tt&amp;gt;message.wav&amp;lt;/tt&amp;gt; in the directory of the script. All files are stored in the same directory, so you need write permissions for the directory.&lt;br /&gt;
* SoX converts &amp;lt;tt&amp;gt;message.wav&amp;lt;/tt&amp;gt;  into &amp;lt;tt&amp;gt;message.flac&amp;lt;/tt&amp;gt; &lt;br /&gt;
* wget submits the file &amp;lt;tt&amp;gt;message.flac&amp;lt;/tt&amp;gt; to the Google Voice API and writes the return message to &amp;lt;tt&amp;gt;message.ret&amp;lt;/tt&amp;gt;. The language variable in the script is set to German by  &amp;lt;tt&amp;gt;lang=de-de&amp;lt;/tt&amp;gt;. If you want to submit a recorded file in US-English use &amp;lt;tt&amp;gt;lang=en-us&amp;lt;/tt&amp;gt; instead.&lt;br /&gt;
* SED extracts the recognized text &amp;lt;tt&amp;gt;message.ret&amp;lt;/tt&amp;gt; by regular expressions and writes the text into &amp;lt;tt&amp;gt;message.txt&amp;lt;/tt&amp;gt;.&lt;br /&gt;
* Temporary files &amp;lt;tt&amp;gt;message.flac&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;message.ret&amp;lt;/tt&amp;gt; will be deleted after the process.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Script Code==&lt;br /&gt;
The script code can be tested on any Linux machine with SoX, SED, WGET installed. Modifiy the script according to your demands and storage of your audio files&lt;br /&gt;
&lt;br /&gt;
  #!/bin/sh&lt;br /&gt;
  echo &amp;quot;1 SoX Sound Exchange - Convert WAV to FLAC with 16000&amp;quot; &lt;br /&gt;
  sox message.wav message.flac rate 16k&lt;br /&gt;
  echo &amp;quot;2 Submit to Google Voice Recognition&amp;quot;&lt;br /&gt;
  wget -q -U &amp;quot;Mozilla/5.0&amp;quot; --post-file message.flac --header=&amp;quot;Content-Type: audio/x-flac; rate=16000&amp;quot; -O - &amp;quot;http://www.google.com/speech-api/v1/recognize?lang=de-de&amp;amp;client=chromium&amp;quot; &amp;gt; message.ret&lt;br /&gt;
  echo &amp;quot;3 SED Extract recognized text&amp;quot; &lt;br /&gt;
  cat message.ret | sed 's/.*utterance&amp;quot;:&amp;quot;//' | sed 's/&amp;quot;,&amp;quot;confidence.*//' &amp;gt; message.txt&lt;br /&gt;
  echo &amp;quot;4 Remove Temporary Files&amp;quot;&lt;br /&gt;
  rm message.flac&lt;br /&gt;
  rm message.ret&lt;br /&gt;
  echo &amp;quot;5 Show Text &amp;quot;&lt;br /&gt;
  cat message.txt&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
The WGET code was derived from [http://www.commandlinefu.com http://www.commandlinefu.com/commands/view/8043/google-voice-recognition-api]&lt;/div&gt;</summary>
		<author><name>Niebert</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Google_Voice_Recognition</id>
		<title>Google Voice Recognition</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Google_Voice_Recognition"/>
				<updated>2011-10-03T13:39:02Z</updated>
		
		<summary type="html">&lt;p&gt;Niebert: /* Google Voice API */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Because the performance of your Freerunner is too poor for voice recognition, the Google Voice API can be used to convert an recorded Audio file into a text string. Be aware that the audio file will be transmitted to Google, so  need to have Internet access on your freerunner FR to submit the audio file. &lt;br /&gt;
&lt;br /&gt;
{{Note|You must be aware of the fact, that the follow script is running on your freerunner but it is not a standalone voice recognition software and so you might not want to use this tool for private audio files.}}&lt;br /&gt;
&lt;br /&gt;
==Google Voice API==&lt;br /&gt;
For using the Google Voice API and the script you need to have the following package installed on your freerunner:&lt;br /&gt;
* SoX [http://sox.sourceforge.net http://sox.sourceforge.net]for converting WAV into FLAC files&lt;br /&gt;
* WGET [http://www.gnu.org/s/wget/ http://www.gnu.org/s/wget/] for submitting the FLAC file to the Google Voice API&lt;br /&gt;
* SED [http://sed.sourceforge.net/ http://sed.sourceforge.net/] for extracting the recognized text in the returned string of the Google Voice API&lt;br /&gt;
&lt;br /&gt;
==Script Usage==&lt;br /&gt;
* The script &amp;lt;tt&amp;gt;googlevoice.sh&amp;lt;/tt&amp;gt; uses a audio file &amp;lt;tt&amp;gt;message.wav&amp;lt;/tt&amp;gt; in the directory of the script. All files are stored in the same directory, so you need write permissions for the directory.&lt;br /&gt;
* SoX converts &amp;lt;tt&amp;gt;message.wav&amp;lt;/tt&amp;gt;  into &amp;lt;tt&amp;gt;message.flac&amp;lt;/tt&amp;gt; &lt;br /&gt;
* wget submits the file &amp;lt;tt&amp;gt;message.flac&amp;lt;/tt&amp;gt; to the Google Voice API and writes the return message to &amp;lt;tt&amp;gt;message.ret&amp;lt;/tt&amp;gt;. The language variable in the script is set to German by  &amp;lt;tt&amp;gt;lang=de-de&amp;lt;/tt&amp;gt;. If you want to submit a recorded file in US-English use &amp;lt;tt&amp;gt;lang=en-us&amp;lt;/tt&amp;gt; instead.&lt;br /&gt;
* SED extracts the recognized text &amp;lt;tt&amp;gt;message.ret&amp;lt;/tt&amp;gt; by regular expressions and writes the text into &amp;lt;tt&amp;gt;message.txt&amp;lt;/tt&amp;gt;.&lt;br /&gt;
* Temporary files &amp;lt;tt&amp;gt;message.flac&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;message.ret&amp;lt;/tt&amp;gt; will be deleted after the process.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Script Code==&lt;br /&gt;
The script code can be tested on any Linux machine with SoX, SED, WGET installed. Modifiy the script according to your demands and storage of your audio files&lt;br /&gt;
&lt;br /&gt;
  #!/bin/sh&lt;br /&gt;
  echo &amp;quot;1 SoX Sound Exchange - Convert WAV to FLAC with 16000&amp;quot; &lt;br /&gt;
  sox message.wav message.flac rate 16k&lt;br /&gt;
  echo &amp;quot;2 Submit to Google Voice Recognition&amp;quot;&lt;br /&gt;
  wget -q -U &amp;quot;Mozilla/5.0&amp;quot; --post-file message.flac --header=&amp;quot;Content-Type: audio/x-flac; rate=16000&amp;quot; -O - &amp;quot;http://www.google.com/speech-api/v1/recognize?lang=de-de&amp;amp;client=chromium&amp;quot; &amp;gt; message.ret&lt;br /&gt;
  echo &amp;quot;3 SED Extract recognized text&amp;quot; &lt;br /&gt;
  cat message.ret | sed 's/.*utterance&amp;quot;:&amp;quot;//' | sed 's/&amp;quot;,&amp;quot;confidence.*//' &amp;gt; message.txt&lt;br /&gt;
  echo &amp;quot;4 Remove Temporary Files&amp;quot;&lt;br /&gt;
  rm message.flac&lt;br /&gt;
  rm message.ret&lt;br /&gt;
  echo &amp;quot;5 Show Text &amp;quot;&lt;br /&gt;
  cat message.txt&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
The WGET code was derived from [http://www.commandlinefu.com/commands/view/8043/google-voice-recognition-api]&lt;/div&gt;</summary>
		<author><name>Niebert</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Google_Voice_Recognition</id>
		<title>Google Voice Recognition</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Google_Voice_Recognition"/>
				<updated>2011-10-03T13:38:31Z</updated>
		
		<summary type="html">&lt;p&gt;Niebert: /* Google Voice API */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Because the performance of your Freerunner is too poor for voice recognition, the Google Voice API can be used to convert an recorded Audio file into a text string. Be aware that the audio file will be transmitted to Google, so  need to have Internet access on your freerunner FR to submit the audio file. &lt;br /&gt;
&lt;br /&gt;
{{Note|You must be aware of the fact, that the follow script is running on your freerunner but it is not a standalone voice recognition software and so you might not want to use this tool for private audio files.}}&lt;br /&gt;
&lt;br /&gt;
==Google Voice API==&lt;br /&gt;
For using the Google Voice API and the script you need to have the following package installed on your freerunner:&lt;br /&gt;
* SoX [[http://sox.sourceforge.net|http://sox.sourceforge.net]] for converting WAV into FLAC files&lt;br /&gt;
* WGET [[http://www.gnu.org/s/wget/|http://www.gnu.org/s/wget/]] for submitting the FLAC file to the Google Voice API&lt;br /&gt;
* SED [[http://sed.sourceforge.net/|http://sed.sourceforge.net/]] for extracting the recognized text in the returned string of the Google Voice API&lt;br /&gt;
&lt;br /&gt;
==Script Usage==&lt;br /&gt;
* The script &amp;lt;tt&amp;gt;googlevoice.sh&amp;lt;/tt&amp;gt; uses a audio file &amp;lt;tt&amp;gt;message.wav&amp;lt;/tt&amp;gt; in the directory of the script. All files are stored in the same directory, so you need write permissions for the directory.&lt;br /&gt;
* SoX converts &amp;lt;tt&amp;gt;message.wav&amp;lt;/tt&amp;gt;  into &amp;lt;tt&amp;gt;message.flac&amp;lt;/tt&amp;gt; &lt;br /&gt;
* wget submits the file &amp;lt;tt&amp;gt;message.flac&amp;lt;/tt&amp;gt; to the Google Voice API and writes the return message to &amp;lt;tt&amp;gt;message.ret&amp;lt;/tt&amp;gt;. The language variable in the script is set to German by  &amp;lt;tt&amp;gt;lang=de-de&amp;lt;/tt&amp;gt;. If you want to submit a recorded file in US-English use &amp;lt;tt&amp;gt;lang=en-us&amp;lt;/tt&amp;gt; instead.&lt;br /&gt;
* SED extracts the recognized text &amp;lt;tt&amp;gt;message.ret&amp;lt;/tt&amp;gt; by regular expressions and writes the text into &amp;lt;tt&amp;gt;message.txt&amp;lt;/tt&amp;gt;.&lt;br /&gt;
* Temporary files &amp;lt;tt&amp;gt;message.flac&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;message.ret&amp;lt;/tt&amp;gt; will be deleted after the process.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Script Code==&lt;br /&gt;
The script code can be tested on any Linux machine with SoX, SED, WGET installed. Modifiy the script according to your demands and storage of your audio files&lt;br /&gt;
&lt;br /&gt;
  #!/bin/sh&lt;br /&gt;
  echo &amp;quot;1 SoX Sound Exchange - Convert WAV to FLAC with 16000&amp;quot; &lt;br /&gt;
  sox message.wav message.flac rate 16k&lt;br /&gt;
  echo &amp;quot;2 Submit to Google Voice Recognition&amp;quot;&lt;br /&gt;
  wget -q -U &amp;quot;Mozilla/5.0&amp;quot; --post-file message.flac --header=&amp;quot;Content-Type: audio/x-flac; rate=16000&amp;quot; -O - &amp;quot;http://www.google.com/speech-api/v1/recognize?lang=de-de&amp;amp;client=chromium&amp;quot; &amp;gt; message.ret&lt;br /&gt;
  echo &amp;quot;3 SED Extract recognized text&amp;quot; &lt;br /&gt;
  cat message.ret | sed 's/.*utterance&amp;quot;:&amp;quot;//' | sed 's/&amp;quot;,&amp;quot;confidence.*//' &amp;gt; message.txt&lt;br /&gt;
  echo &amp;quot;4 Remove Temporary Files&amp;quot;&lt;br /&gt;
  rm message.flac&lt;br /&gt;
  rm message.ret&lt;br /&gt;
  echo &amp;quot;5 Show Text &amp;quot;&lt;br /&gt;
  cat message.txt&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
The WGET code was derived from [http://www.commandlinefu.com/commands/view/8043/google-voice-recognition-api]&lt;/div&gt;</summary>
		<author><name>Niebert</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Google_Voice_Recognition</id>
		<title>Google Voice Recognition</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Google_Voice_Recognition"/>
				<updated>2011-10-03T13:37:27Z</updated>
		
		<summary type="html">&lt;p&gt;Niebert: /* Script Code */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Because the performance of your Freerunner is too poor for voice recognition, the Google Voice API can be used to convert an recorded Audio file into a text string. Be aware that the audio file will be transmitted to Google, so  need to have Internet access on your freerunner FR to submit the audio file. &lt;br /&gt;
&lt;br /&gt;
{{Note|You must be aware of the fact, that the follow script is running on your freerunner but it is not a standalone voice recognition software and so you might not want to use this tool for private audio files.}}&lt;br /&gt;
&lt;br /&gt;
==Google Voice API==&lt;br /&gt;
For using the Google Voice API and the script you need to have the following package installed on your freerunner:&lt;br /&gt;
* SoX [[http://sox.sourceforge.net]] for converting WAV into FLAC files&lt;br /&gt;
* WGET [[http://www.gnu.org/s/wget/]] for submitting the FLAC file to the Google Voice API&lt;br /&gt;
* SED [[http://sed.sourceforge.net/]] for extracting the recognized text in the returned string of the Google Voice API&lt;br /&gt;
&lt;br /&gt;
==Script Usage==&lt;br /&gt;
* The script &amp;lt;tt&amp;gt;googlevoice.sh&amp;lt;/tt&amp;gt; uses a audio file &amp;lt;tt&amp;gt;message.wav&amp;lt;/tt&amp;gt; in the directory of the script. All files are stored in the same directory, so you need write permissions for the directory.&lt;br /&gt;
* SoX converts &amp;lt;tt&amp;gt;message.wav&amp;lt;/tt&amp;gt;  into &amp;lt;tt&amp;gt;message.flac&amp;lt;/tt&amp;gt; &lt;br /&gt;
* wget submits the file &amp;lt;tt&amp;gt;message.flac&amp;lt;/tt&amp;gt; to the Google Voice API and writes the return message to &amp;lt;tt&amp;gt;message.ret&amp;lt;/tt&amp;gt;. The language variable in the script is set to German by  &amp;lt;tt&amp;gt;lang=de-de&amp;lt;/tt&amp;gt;. If you want to submit a recorded file in US-English use &amp;lt;tt&amp;gt;lang=en-us&amp;lt;/tt&amp;gt; instead.&lt;br /&gt;
* SED extracts the recognized text &amp;lt;tt&amp;gt;message.ret&amp;lt;/tt&amp;gt; by regular expressions and writes the text into &amp;lt;tt&amp;gt;message.txt&amp;lt;/tt&amp;gt;.&lt;br /&gt;
* Temporary files &amp;lt;tt&amp;gt;message.flac&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;message.ret&amp;lt;/tt&amp;gt; will be deleted after the process.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Script Code==&lt;br /&gt;
The script code can be tested on any Linux machine with SoX, SED, WGET installed. Modifiy the script according to your demands and storage of your audio files&lt;br /&gt;
&lt;br /&gt;
  #!/bin/sh&lt;br /&gt;
  echo &amp;quot;1 SoX Sound Exchange - Convert WAV to FLAC with 16000&amp;quot; &lt;br /&gt;
  sox message.wav message.flac rate 16k&lt;br /&gt;
  echo &amp;quot;2 Submit to Google Voice Recognition&amp;quot;&lt;br /&gt;
  wget -q -U &amp;quot;Mozilla/5.0&amp;quot; --post-file message.flac --header=&amp;quot;Content-Type: audio/x-flac; rate=16000&amp;quot; -O - &amp;quot;http://www.google.com/speech-api/v1/recognize?lang=de-de&amp;amp;client=chromium&amp;quot; &amp;gt; message.ret&lt;br /&gt;
  echo &amp;quot;3 SED Extract recognized text&amp;quot; &lt;br /&gt;
  cat message.ret | sed 's/.*utterance&amp;quot;:&amp;quot;//' | sed 's/&amp;quot;,&amp;quot;confidence.*//' &amp;gt; message.txt&lt;br /&gt;
  echo &amp;quot;4 Remove Temporary Files&amp;quot;&lt;br /&gt;
  rm message.flac&lt;br /&gt;
  rm message.ret&lt;br /&gt;
  echo &amp;quot;5 Show Text &amp;quot;&lt;br /&gt;
  cat message.txt&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
The WGET code was derived from [http://www.commandlinefu.com/commands/view/8043/google-voice-recognition-api]&lt;/div&gt;</summary>
		<author><name>Niebert</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Google_Voice_Recognition</id>
		<title>Google Voice Recognition</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Google_Voice_Recognition"/>
				<updated>2011-10-03T13:36:48Z</updated>
		
		<summary type="html">&lt;p&gt;Niebert: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Because the performance of your Freerunner is too poor for voice recognition, the Google Voice API can be used to convert an recorded Audio file into a text string. Be aware that the audio file will be transmitted to Google, so  need to have Internet access on your freerunner FR to submit the audio file. &lt;br /&gt;
&lt;br /&gt;
{{Note|You must be aware of the fact, that the follow script is running on your freerunner but it is not a standalone voice recognition software and so you might not want to use this tool for private audio files.}}&lt;br /&gt;
&lt;br /&gt;
==Google Voice API==&lt;br /&gt;
For using the Google Voice API and the script you need to have the following package installed on your freerunner:&lt;br /&gt;
* SoX [[http://sox.sourceforge.net]] for converting WAV into FLAC files&lt;br /&gt;
* WGET [[http://www.gnu.org/s/wget/]] for submitting the FLAC file to the Google Voice API&lt;br /&gt;
* SED [[http://sed.sourceforge.net/]] for extracting the recognized text in the returned string of the Google Voice API&lt;br /&gt;
&lt;br /&gt;
==Script Usage==&lt;br /&gt;
* The script &amp;lt;tt&amp;gt;googlevoice.sh&amp;lt;/tt&amp;gt; uses a audio file &amp;lt;tt&amp;gt;message.wav&amp;lt;/tt&amp;gt; in the directory of the script. All files are stored in the same directory, so you need write permissions for the directory.&lt;br /&gt;
* SoX converts &amp;lt;tt&amp;gt;message.wav&amp;lt;/tt&amp;gt;  into &amp;lt;tt&amp;gt;message.flac&amp;lt;/tt&amp;gt; &lt;br /&gt;
* wget submits the file &amp;lt;tt&amp;gt;message.flac&amp;lt;/tt&amp;gt; to the Google Voice API and writes the return message to &amp;lt;tt&amp;gt;message.ret&amp;lt;/tt&amp;gt;. The language variable in the script is set to German by  &amp;lt;tt&amp;gt;lang=de-de&amp;lt;/tt&amp;gt;. If you want to submit a recorded file in US-English use &amp;lt;tt&amp;gt;lang=en-us&amp;lt;/tt&amp;gt; instead.&lt;br /&gt;
* SED extracts the recognized text &amp;lt;tt&amp;gt;message.ret&amp;lt;/tt&amp;gt; by regular expressions and writes the text into &amp;lt;tt&amp;gt;message.txt&amp;lt;/tt&amp;gt;.&lt;br /&gt;
* Temporary files &amp;lt;tt&amp;gt;message.flac&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;message.ret&amp;lt;/tt&amp;gt; will be deleted after the process.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Script Code==&lt;br /&gt;
The script code can be tested on any Linux machine with SoX, SED, WGET installed. Modifiy the script according to your demands and storage of your audio files&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
The WGET code was derived from [http://www.commandlinefu.com/commands/view/8043/google-voice-recognition-api]&lt;/div&gt;</summary>
		<author><name>Niebert</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Google_Voice_Recognition</id>
		<title>Google Voice Recognition</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Google_Voice_Recognition"/>
				<updated>2011-10-03T13:18:13Z</updated>
		
		<summary type="html">&lt;p&gt;Niebert: New page:  Because the performance of your Freerunner is too poor for voice recognition, the Google Voice API can be used to convert an recorded Audio file into a text string. Be aware that the audi...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
Because the performance of your Freerunner is too poor for voice recognition, the Google Voice API can be used to convert an recorded Audio file into a text string. Be aware that the audio file will be transmitted to Google, so  need to have Internet access on your freerunner FR to submit the audio file. You must be aware of the fact, that the follow script is running on your freerunner but it is not a standalone voice recognition software and so you might not want to use this tool for personal audio files&lt;br /&gt;
&lt;br /&gt;
==Google Voice API==&lt;/div&gt;</summary>
		<author><name>Niebert</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Applications</id>
		<title>Applications</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Applications"/>
				<updated>2011-10-03T13:08:53Z</updated>
		
		<summary type="html">&lt;p&gt;Niebert: /* System */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|Applications}}&lt;br /&gt;
This is the wiki's master application list for the Openmoko smartphones. &lt;br /&gt;
&lt;br /&gt;
== How to register new applications ?==&lt;br /&gt;
&lt;br /&gt;
This list can not be exhaustive, as new things are showing up every week. This page is here to help spreading awareness about applications. Here are instructions on how to add a specific application to this list. There are many ways to go&lt;br /&gt;
&lt;br /&gt;
Method 1 (preferred):&lt;br /&gt;
* Register your application at ''url removed, not the real content''&lt;br /&gt;
* Notify the community mailing list.&lt;br /&gt;
* Come back here, click on &amp;quot;edit&amp;quot; next to the appropriate section title, then add a line like:&lt;br /&gt;
&amp;lt;pre&amp;gt;* {{opkg.org|33|Application name}} A short description&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Method 2: Just link to wherever the application is hosted.&lt;br /&gt;
* Click on &amp;quot;edit&amp;quot; next to the appropriate section title, add a line like:&lt;br /&gt;
&amp;lt;pre&amp;gt;* [http://your.host.domain/the/path/to/app/page.html Application name] A short description&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Method 3: Create a new page in this wiki.&lt;br /&gt;
* Click on &amp;quot;edit&amp;quot; next to the appropriate section title, then add a line like:&lt;br /&gt;
&amp;lt;pre&amp;gt;* [[Application name]] A short description&amp;lt;/pre&amp;gt;&lt;br /&gt;
* The application name will appear in red, click on it to create and edit the new page.&lt;br /&gt;
&lt;br /&gt;
== Audio ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.opkg.org/package_334.html Bright Player] - Fast, lightweight and easy random music player.&lt;br /&gt;
* [http://rzr.online.fr/q/esd boxar] - Touchscreen as a finger friendly piano -- [[User:RzR]]&lt;br /&gt;
* [[Dictator]] - Record mic, incoming GSM-sound, or a whole Phonecall&lt;br /&gt;
* {{opkg.org|55|ePiano}} - epiano is going to be a virtual piano&lt;br /&gt;
* [[Fingertier]] - minimal and finger friendly music player&lt;br /&gt;
* [[Fourier]]- Realtime frequency analysis of sound data.&lt;br /&gt;
* [[Guitartune]] - Tune musical Instruments.&lt;br /&gt;
* [[GTick]] - GTick is a metronome application written for GNU/Linux&lt;br /&gt;
* [[Intone]] - Elementary based mplayer frontend (for audio files).&lt;br /&gt;
* {{opkg.org|271|JaMoko}} Jamoko is a Jamendo player for OpenMoko.&lt;br /&gt;
* [[Mokoko]]- Play music.&lt;br /&gt;
* {{opkg.org|151|MokoPod}} - Retrieve and listen to podcasts &lt;br /&gt;
* [[PodPooch]] - Retrieve and listen to podcasts - fork of MokoPod&lt;br /&gt;
* [[Neoqplayer]] - Renamed as GorshPlayer: a multimedia player written in Qt4: play and retreive podcasts feeds, more reactive interface, now able to play videos ( in svn ).&lt;br /&gt;
* [http://fisoft.eu/standa/openmoko/omshuffle_0.1_arm.ipk omShuffle] - Inspired by Bright Player with volume control. Needs mplayer to work.&lt;br /&gt;
* [[Openmoko-mediaplayer2]] - Play music and video (mp3...)&lt;br /&gt;
* [[Openmokast]] - Play audio stream and slideshow stream&lt;br /&gt;
* [[Podboy]] - A Podcast player (Python/Elementary/Gstreamer/SQLite)&lt;br /&gt;
* {{opkg.org|265|PyRadio}} TUI program in python for receiver stream of internet radio.&lt;br /&gt;
* [[Pythm]] - Audio player GUI using mplayer and mpd as backend.&lt;br /&gt;
* [[PyRok]] - Audio player which uses Gstreamer for playback and Pygame for GUI.&lt;br /&gt;
* [[Satan]] - Create your own music!&lt;br /&gt;
* [[Streamtuner]] - Listen to Internet Radio Stations&lt;br /&gt;
* [[Streamripper]] - Record from Internet Radio Stations&lt;br /&gt;
* {{opkg.org|297|quickplay}} A light weight mp3 player/frontend for Ampache [http://ampache.org/ ampache.org]&lt;br /&gt;
* [[Voicenote]] - Voicenote is a script which allows to record any sound from the microphone into a wav file. It can play the created files too. It is intended to be an easy and quick way to do so.&lt;br /&gt;
&lt;br /&gt;
== BlueTooth ==&lt;br /&gt;
* [[Coypu]] - Utility for send file via BlueTooth&lt;br /&gt;
* [[Emtooth]] - Bluetooth manager&lt;br /&gt;
&lt;br /&gt;
== Games ==&lt;br /&gt;
&lt;br /&gt;
* [[Acceleroids]] Shoot-the-asteroids game&lt;br /&gt;
* {{opkg.org|169|Black Sheep}} Fight insomnia!&lt;br /&gt;
* [[CellHunter]] - A game you earn points by collecting cells (in english now).&lt;br /&gt;
* [http://unsyncopated.com/BrainSolvent/Doom%20Port DOOM]- Classic FPS. Freerunner/1973&lt;br /&gt;
* [[Duke Nukem 3D]] - Legendary First Person Shooter.&lt;br /&gt;
* [[Freerunner LightSaber]]-Application as iphone LightSaber.&lt;br /&gt;
* [[Games/Om 2007.2]] - Many small games on Om 2007.2&lt;br /&gt;
* [[Gnuboy]] - An emulator for the handheld gaming all-time bestseller.&lt;br /&gt;
* {{opkg.org|149|I'm Rich}} I'm Rich application&lt;br /&gt;
* [[Kobodeluxe]] - A top-view space shooter, available from 2008.8 repositories.&lt;br /&gt;
* [[Liquid War]]-Liquid War is a truly original multiplayer wargame.&lt;br /&gt;
* [[MBAC]]- MBAC is &amp;quot;Moko Bulls and Cows&amp;quot;, a classic game for openmoko written in pygtk similar to mastermind.&lt;br /&gt;
* [[Minneo]] - A classic Memory game.&lt;br /&gt;
* [[Moko-sudoku]] - Another sudoku puzzle game.&lt;br /&gt;
* [[Neomis]] - A computer version of the well-known electronic game named Simon. &lt;br /&gt;
* [[NumberX]] - A mathematical puzzle game that will challenge your mental math abilities!&lt;br /&gt;
* [[oFart]] - purile amusement&lt;br /&gt;
* {{opkg.org|121|Mokomaze}} Ball-in-the-labyrinth game&lt;br /&gt;
* [[Numptyphysics]] - A drawing puzzle game.&lt;br /&gt;
* [[Om 2008.8 Sudoku]] - Number placement based puzzle game&lt;br /&gt;
* {{opkg.org|136|OpenMiaoCat}} OpenMiaoCat, like OpenMooCow, makes your phone became a cat!&lt;br /&gt;
* [[openmokontrol]] Program to control a TCP/IP connected X11 server with the accelerometers, especially games.&lt;br /&gt;
* [[OpenMooCow]] - OpenMooCow reads information out of your accelerometers. Now, if you turn the phone upside down and back again, it &amp;quot;moos&amp;quot; like one of the little toys.&lt;br /&gt;
* [[OpenTTD]] - OpenTransportTycoonDeluxe, ported to openmoko, using only GPLed datafiles.&lt;br /&gt;
* [[OpenVibe]] - The first opensource vibrator.&lt;br /&gt;
* [[Pingus]] - Pingus is a lemmings clone with penguins.&lt;br /&gt;
* [http://scalde.free.fr/index.php?option=com_content&amp;amp;view=article&amp;amp;id=93:pong-pogresses&amp;amp;catid=43:openmoko&amp;amp;Itemid=66 Pong progresses]- This is a little pong game for the openmoko freerunner. The screen is devided in halves, so you can touch the right half to move the paddle right and the left half to move it left.&lt;br /&gt;
* {{opkg.org|60|ScummVM}} ([[Scummvm|Wiki]]) Virtual Machine for several classic graphical point-and-click adventure games&lt;br /&gt;
* supertux-qvga - supertux,qvga version for htcdream (now in SHR feeds)&lt;br /&gt;
* wesnoth - Battle for wesnoth (now in SHR feeds)&lt;br /&gt;
* [[XBill]] - Little action game to stop Bill from installing Windows(tm) on computers.&lt;br /&gt;
* [[Xlogical]]-A puzzle based game where you turn spinners to move balls around.&lt;br /&gt;
* [[XSkat]] - XSkat lets you play the card game Skat defined by the official Skat Order.&lt;br /&gt;
* {{opkg.org|341|Rock Paper Scissors}} A little Rock Paper Scissors game that is fun to play!&lt;br /&gt;
&lt;br /&gt;
== GPS ==&lt;br /&gt;
* [[a-gps GUI]] - Graphical User Interface for [http://en.wikipedia.org/wiki/Assisted_GPS assisted GPS]. GSM-network cell locations are provided by [[Cellhunter]] and this data can be used to locate you. It uses u-blox a-gps to initialize your GPS chip.&lt;br /&gt;
* {{opkg.org|268|Advanced Geocaching Tool for Linux}} - &amp;quot;Towards paperless geocaching&amp;quot; - [[Advanced Geocaching Tool for Linux|User Manual]]&lt;br /&gt;
* [[bicirutas]] - This application looks for mtb routes in www.bicirutas.net (routes in Spain, Portugal, United Kingdom, France, Italy and Germany). It gets the current position from the gps system and downloads nearby routes. Then you can follow them with tangogps application.&lt;br /&gt;
* {{opkg.org|175|BikeAtor}} - Like TangoGPS BikeAtor can display OSM Maps. The Speedometer displays the most interesting values of the trip.&lt;br /&gt;
* [[FoxtrotGPS]] - ”The friendly FOSS GPS”. GPS location, OSM (and other) maps, record route, add POIs etc. Extendable.&lt;br /&gt;
* [[GPS Sight]] - Display GPS information, location, tracks, etc, without maps.&lt;br /&gt;
* [[Gpsdcontrol]]-A simple python script for start or stop gpsd daemon with a button on the desktop.&lt;br /&gt;
* [[Gpsdrive]] - Car (bike, etc) navigation system&lt;br /&gt;
* [[Gtkaddpoi]] - Utility for add a POI to TangoGPS using address or coordinates and export to Navit or to .kml file.&lt;br /&gt;
* {{opkg.org|162|gvSIG Mobile}} - This is an unofficial port of gvSIG Mobile (http://www.gvsig.gva.es/) to the Openmoko platform. Supports: GPS, WMS, ArcIMS, tiles (OSM etc) and Shapefiles, all in a variety of projections. Version 0.1.5 includes a great feature to perform synchronization with a remote PostGIS database. [http://gvsigmobileonopenmoko.wordpress.com/ Homepage].&lt;br /&gt;
* [[Idle Hands]] - Give a task to you based on your location&lt;br /&gt;
* [[MCNavi]] - Car and outdoor navigation with vector maps, routing, navigation, track logs, chronometer, satellites display&lt;br /&gt;
* [http://www.mumpot.org/ mumpot] - Display map (OSM), routing, OSM editing, a bit of live editing&lt;br /&gt;
* [[Navit]] - Car navigation system with routing engine&lt;br /&gt;
* [[Om 2008.8 Locations]] - (aka Splinter) - Location sharing based on GPS and SMS&lt;br /&gt;
* [http://code.google.com/p/omgps omgps] - High performance, UBX binary or ogpsd as GPS data provider, layered maps, AGPS online, track replay, scratch on map, ruler and lat/lon grid, basic sounding. etc.&lt;br /&gt;
* [[OpenBmap]]-a free and open map of wireless communicating objects (e.g. cellular antenna, Wi-Fi, Bluetooth). It provides tools to mutualize data, create and access this map.&lt;br /&gt;
* [[openBmap-locator]] - Estimate your location based on the GSM signals, uses openBmap data for its geolocation&lt;br /&gt;
* [[Pyroute]] - Pyroute is a routing program written in Python. It features mobile phone GUI for maps, GPS, and routing.&lt;br /&gt;
* [[QMapControl]] - Display maps (OSM..) and add points, lines...&lt;br /&gt;
* [[QNavitCtl]] - send coordinates to Navit via dbus (position, destination, map center)&lt;br /&gt;
* [[Qpegps]] - Display map with current position&lt;br /&gt;
* [[SGTL|Simple Geocaching Tool for Linux]] - A geocaching application which shows you the direction.&lt;br /&gt;
* [[sms-sentry]] - locate a lost or stolen phone&lt;br /&gt;
* [[TangoGPS]] - Display map (OSM..), record GPS tracks...&lt;br /&gt;
* [[Travel Diary]] - a simple application to save little diary entries to a csv file and send this to a server (that can generate a .kml file or show a map or do whatever...)&lt;br /&gt;
&lt;br /&gt;
== Graphics ==&lt;br /&gt;
&lt;br /&gt;
* [[Flash|Gnash]]-Play flash file on Neo&lt;br /&gt;
* [[Gpe-scap]] - Take screenshots&lt;br /&gt;
* [[Neon]] - Image viewer&lt;br /&gt;
* [[OMView]] - Image viewer&lt;br /&gt;
* [[Orrery]] - Displays the night sky&lt;br /&gt;
* [[PyPenNotes]] - Write notes using pen and touchscreen&lt;br /&gt;
&lt;br /&gt;
== Internet ==&lt;br /&gt;
===Web browsers===&lt;br /&gt;
* [http://www.dillo.org/ Dillo] - Multiplatform fast and small web browser ([http://misc.andi.de1.cc/dillo/ .ipk]).&lt;br /&gt;
* fennec&lt;br /&gt;
* [[Midori]] - Webkit based web browser&lt;br /&gt;
* [[Minimo]] - Mozilla based web browser&lt;br /&gt;
* [http://www.netsurf-browser.org/ netsurf]-A new browser for Neo FreeRunner.&lt;br /&gt;
* [[Openmoko-browser2]] - The original Openmoko web browser&lt;br /&gt;
* [http://code.google.com/p/pyqt-browser/ pyqt-browser] - modified the sample code from python-pyqt4 and changed it to use webkit for web browsing. &lt;br /&gt;
* woosh&lt;br /&gt;
* [[Ventura]]&lt;br /&gt;
* eve&lt;br /&gt;
&lt;br /&gt;
===VOIP===&lt;br /&gt;
Use voice communication over existing IP network connection (data flat rate or WiFi). With a SIP-Account registered on your freerunner you can make free SIP phone calls. If you VoIP provider enables forwarding a landline phone number to your SIP-account, you can receive your incoming  national calls from all over the world, as long as you have an internet connection. With SIP-Accounts you call to other SIP-Accounts (mostly of same provider) free of charge. Some providers offer these landline number services free of charge (i.e. Germany sipgate).&lt;br /&gt;
&lt;br /&gt;
* [[Linphone]] - Voice over IP&lt;br /&gt;
* [[Twinkle]] - Voice over IP&lt;br /&gt;
* [[SipDroid]] - Voice over IP (for Android)&lt;br /&gt;
&lt;br /&gt;
===Email clients===&lt;br /&gt;
* [http://www.claws-mail.org/ claws-mail] email client available in shr-unstable&lt;br /&gt;
* [[Openmoko Mail]] - E-mail client&lt;br /&gt;
* [[Qtmail]] - Default mail program on Om 2008.8&lt;br /&gt;
&lt;br /&gt;
===Offline wikipedia===&lt;br /&gt;
* {{opkg.org|128|Evopedia}} - a powerful Wikipedia reader (download dumps in [http://www.reitwiessner.de/openmoko/evopedia.html its official site])&lt;br /&gt;
* [[Mokopedia]] - Read small Wikipedia dumps offline&lt;br /&gt;
* [[Offline Wikipedia reader]] - store the entire content of wikipedia (single-language, excluding images), on a single 8GB microSD card&lt;br /&gt;
&lt;br /&gt;
===IM===&lt;br /&gt;
* [[CenterIM]] - Instant messaging client (terminal-based).&lt;br /&gt;
* [[Pidgin]] - Instant messaging client (ICQ, MSN, Jabber, Yahoo and more.)&lt;br /&gt;
&lt;br /&gt;
===other===&lt;br /&gt;
* [http://opkg.networld.to/networld-ported/ettercap-ng_0.7.3-r3_armv4t.opk ettercap-ng] MITM (fixed link)&lt;br /&gt;
* {{opkg.org|205|GPRSModem}} - Converts your neo in a GPRS modem.&lt;br /&gt;
* [[Openmokast]] - Play audio stream and slideshow stream&lt;br /&gt;
* [[PyFeedRead]] - RSS feed reader&lt;br /&gt;
* [[TwitterMoko]] - A Twitter client for Openmoko&lt;br /&gt;
* [http://webfrd.bialive.it/ webfrd] A little http server create to use my FreeRunner from my pc.&lt;br /&gt;
&lt;br /&gt;
== Office ==&lt;br /&gt;
* dates - a simple calendar&lt;br /&gt;
* [[e-tasks]] - An elementary task manager&lt;br /&gt;
* [[Epdfview]] - PDF reader.&lt;br /&gt;
* Evince - Document reader for PDF, PS, DJVU and more.&lt;br /&gt;
* [[FBReader]] - E-book reader program (TXT, FB2, HTML and more)&lt;br /&gt;
* [[GPE contacts]]&lt;br /&gt;
* [[Gutenflash]] - Fast text reader by scrolling text&lt;br /&gt;
* [[OMoney]] - A bookkeeping application&lt;br /&gt;
* [[Pisi]] - PIM synchronization&lt;br /&gt;
* [[rtmom]] - Remember the Milk for Openmoko&lt;br /&gt;
&lt;br /&gt;
== Settings ==&lt;br /&gt;
&lt;br /&gt;
* [[eneoset]] - Setup utility to control backlight and turn on/off devices with battery and system info.&lt;br /&gt;
* [[KnjMokoOPKG]] - A graphical frontend to OPKG.&lt;br /&gt;
* [[KnjMokoWifi]] - Wifi setup tool&lt;br /&gt;
* [[Lint-wifi]] - Wifi setup tool&lt;br /&gt;
* [[Mofi]] - Wifi setup tool&lt;br /&gt;
* [[Mokonnect]] - Connection manager&lt;br /&gt;
* [[momtools]] - an application to control Wifi, gprs and some other stuff&lt;br /&gt;
* [[Om 2008.8 Installer]] - Graphical software installer&lt;br /&gt;
* [[Opkg]] - Command line software installer&lt;br /&gt;
* {{opkg.org|285|opkg.py}} - Command line software installer for www.opkg.org packages&lt;br /&gt;
* [[Sephora]] - Settings manager&lt;br /&gt;
* [[SettingsGUI]] - Edit various settings&lt;br /&gt;
* [[Timezone|tzdata]]- Customise your time zone setting.&lt;br /&gt;
* [[Wicd]] - Wifi setup tool&lt;br /&gt;
* [[Wlan]] - Wlan is an application to manage wireless connection on the Freerunner&lt;br /&gt;
* [[ZOMG!]] - A graphical package manager (opkg frontend -&amp;gt; should work on any distro)&lt;br /&gt;
&lt;br /&gt;
== Speech Recognition ==&lt;br /&gt;
* [[Google Voice Recognition]] - A command line SH-script converting a WAV file into TXT file by using the Google Voice API&lt;br /&gt;
== System ==&lt;br /&gt;
* [[Aphasia]] - A system built on Erlang and a vertical application for people with apahasia.&lt;br /&gt;
* [http://www.pierrox.net/auimd/ AUIMD] - AUIMD is a PyQt graphical user interface for mobile devices.&lt;br /&gt;
* [[Auxlaunch]] - Finger-friendly app launcher and window switcher&lt;br /&gt;
* [[Display Locker]] - Screen lock&lt;br /&gt;
* [http://fso-control.projects.openmoko.org/ fso-control] - Popup Power menu to shutdown/suspend/reboot.&lt;br /&gt;
* [[Gwaterpas]] - levelling tool using accelerometer&lt;br /&gt;
* [[Gestures]] - Detect movement and display information, rotate screen&lt;br /&gt;
* [[Keychain]] - SSH keys&lt;br /&gt;
* {{opkg.org|253|libaxel}} - Library for easy use accelerometer.&lt;br /&gt;
* [[MokoFEM]] - Monitors GSM information&lt;br /&gt;
* [[Mokostat]] - Monitors battery&lt;br /&gt;
* [[omkeys_functions]] - Remap AUX key bindings&lt;br /&gt;
* [[Openmoko Bluetooth remote controller|ReMoko]] - Control stuff via BlueTooth&lt;br /&gt;
* [[Pexpect]]-a pure Python module for spawning child applications; controlling them; and responding to expected patterns in their output. &lt;br /&gt;
* [[Rotate]] - Rotate screen when phone is rotated&lt;br /&gt;
* [[Siglaunchd]] - A daemon that listens to dbus signals and launches appliactions upon arrival.&lt;br /&gt;
* [[Ts calibrate]] - Calibrates touchscreen&lt;br /&gt;
* [[Vala-terminal]] - Command prompt with tabs&lt;br /&gt;
* [[Web-Manager]] - Control your phone by a web interface from your PC&lt;br /&gt;
* [http://wiki.openmoko.org/wiki/Minimoko xminimokostatus] Battery- / GSM-Status Display on Root Window (Part of Minimoko)&lt;br /&gt;
* [[Zedlock]] - Screen locker&lt;br /&gt;
&lt;br /&gt;
== Telephony ==&lt;br /&gt;
* [[Dialer/2007.2]] - The dialer application in Om 2007.2&lt;br /&gt;
* Launcher&lt;br /&gt;
* [[Litephone]] Easy to use, single window phone application written in Qt.&lt;br /&gt;
* [[Openmoko SMS Middleware]]- SMS middleware is a Openmoko middleware software for additional features related to SMS. Plugin architecture and Python based code gives this project lots of flexibility and enchancebility.&lt;br /&gt;
* [[Paroli]] -Paroli is an integrated phone application based on Tichy (and so also written in python). &lt;br /&gt;
&lt;br /&gt;
== Utility ==&lt;br /&gt;
&lt;br /&gt;
* [[Chroneo]] - Stopwatch and Timer&lt;br /&gt;
* {{opkg.org|176|CoovaChilli}} - It turns your phone's WiFi network into an Ad-Hoc Hotspot!&lt;br /&gt;
* [http://openmoko.huber-computer.de/ DWDWetter] Fetches weather information from dwd (First Register at dwd!)&lt;br /&gt;
* [[Enotes]] - Enotes is the implementation of a TODOlist manager written with elementary to appear better with distribution that use illume, like SHR.&lt;br /&gt;
* [[Enscribi]]-a handwriting recognition input method for Linux. It's mainly developed for the Openmoko Freerunner smartphone.&lt;br /&gt;
* [http://projects.openmoko.org/projects/ffalarms/ FFAlarm] is a program to set multiple alarms a day using a finger friendly user interface&lt;br /&gt;
* {{opkg.org|57|fido}} - [[fido]] is a todo list\note manager written with elementary&lt;br /&gt;
* [[GridPad]]-GridPad is an alternative input method for entering text with your finger, a Simple Character Recognizer Software.&lt;br /&gt;
* [[HP48 Series RPN Calculator]] - Calculator with many functions&lt;br /&gt;
* [[LED clock]] - When an Openmoko is sitting unused at night, turn it into an alarm clock with large 7-segment digits on a black background in landscape mode. &lt;br /&gt;
* [http://meuk.spritesserver.nl/lightsaber-0.1.tgz The Lightsaber]. Pre-alpha starwaresque orphanware.&lt;br /&gt;
* [[Literki]] - alternative keyboard&lt;br /&gt;
* [[MokoGeocaching]] - Utility for add a POI to TangoGPS using geocaching.com &lt;br /&gt;
* [[Mokometeo]] is a widget which fetches the weather forecast from yahoo, for a list of cities&lt;br /&gt;
* [[NeoCon]] - neocon is a handy serial console utility (not only) for u-boot.  The main feature of neocon is actually that you can give it a list of devices and it will pick one that works.&lt;br /&gt;
* [[NeoLight]] - NeoLight turns your phone into a flashlight.&lt;br /&gt;
* [[NeoTool]] NeoTool is a bash script for your desktop system to provide a friendly GUI frontend to some common management tasks.&lt;br /&gt;
* [[OpenWrt]]-basic support for the Openmoko &amp;quot;Freerunner&amp;quot;! Kernel (2.6.28) is building and booting.&lt;br /&gt;
* [http://projects.openmoko.org/projects/otp4neo/ OTP4Neo] One time password generator&lt;br /&gt;
* [[Pimlico]]-Pimlico is a suite of lightweight Personal Information Management (PIM) applications designed primarily for handheld and mobile devices&lt;br /&gt;
* [[QSuunto-Lite]] display dive log information from Suunto Dive computers (that work with divetools-ab)&lt;br /&gt;
* [[qwo]]- An alternative input method.&lt;br /&gt;
* [[ShortOm]] - Graphical launcher for shell or application, with editable config file, and log result page.&lt;br /&gt;
* {{opkg.org|263|spoje}} Program for searching a transport link.(mainly is used for Czech transport)&lt;br /&gt;
* [[sortdesk]] sort your om-desktop in categories&lt;br /&gt;
* [[Unison]] - Unison is a file-synchronization tool for Unix and Windows. It determines all differences between two directory trees and lets the user decide, how to proceed with every differing file. &lt;br /&gt;
* [http://techiem2.net/index.php?/archives/10-Freerunner-USB-Mode-Control-Program.html usbmode]-a quick pygtk program. &lt;br /&gt;
* [[Wrench]] - Modual used utility enlightenment_remote.&lt;br /&gt;
* [[Yaouh!]] - Yet Another OSM Updater H.&lt;br /&gt;
* [[Auto Home]] - Home automation using the Free runner (Openmoko)&lt;br /&gt;
* {{opkg.org|279|Babiloo}} - Dictionary utility with voice capability&lt;br /&gt;
* {{opkg.org|284|Fltk World Clock}} - Displays the time in different timezones (needs fltk)&lt;br /&gt;
* {{opkg.org|298|Fltk Hacker's Diet}} - Helps you maintain, decrease or increase your weight (needs fltk)&lt;br /&gt;
* {{opkg.org|306|Fltk Cocktail Bar}} - a Cocktail Bar application&lt;br /&gt;
* {{opkg.org|309|Fltk WW Point Cal}} - Calculate the Weight Watches Points of a given food&lt;br /&gt;
&lt;br /&gt;
==Setting Application==&lt;br /&gt;
* [[GTA02 sysfs]]- sysfs is a filesystem that is mounted on /sys which contains various fake &amp;quot;files&amp;quot; that are actually filled by a variety of drivers and other kernel subsystems.  You can use it to change settings and behaviours of the kernel and drivers dynamically.&lt;br /&gt;
* [[Wmiconfig]]- wmiconfig is a tool written by Atheros Communications Inc to configure the Ar6k WIFI chip used in the Neo Freerunner. This is a standalone C executable, released under GPL v2.&lt;br /&gt;
&lt;br /&gt;
== Video ==&lt;br /&gt;
* [[intone-video]] - an mplayer video frontend&lt;br /&gt;
* [http://katastrophos.net/andre/blog/software/quasar-media-player/ Quasar] - a mplayer frontend for X11.&lt;br /&gt;
* [[Video Player]] - Using Mplayer on Openmoko smartphones.&lt;br /&gt;
&lt;br /&gt;
== daemon ==&lt;br /&gt;
* [[Lscd]] - LSC library/daemon on Linux System.&lt;br /&gt;
* [[PyPhonelog]] - daemon uses the framework to track and log all the calls made to and from the moko.&lt;br /&gt;
&lt;br /&gt;
== An automatic list of application-related wiki pages ==&lt;br /&gt;
&lt;br /&gt;
The pages linked above are all maintained manually. We also maintain an automatic categorization system by tagging wiki pages. Here is the list of application-related pages in this wiki. Normally, every page listed below should be also listed above in the same category. The converse is false: there are applications without a wiki page.&lt;br /&gt;
&lt;br /&gt;
=== Applications in this Wiki: ===&lt;br /&gt;
&amp;lt;categorytree mode=pages depth=2 hideroot=on&amp;gt;Applications&amp;lt;/categorytree&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Where to find more applications? ==&lt;br /&gt;
&lt;br /&gt;
At [http://opkg.org opkg.org] !&lt;br /&gt;
&lt;br /&gt;
Not all Openmoko apps are listed on this wiki - there are much more [http://projects.openmoko.org/softwaremap/ projects at the Openmoko GForge] than the wiki can list, not to mention self-hosted applications on their own websites. Actually the phones can run most Linux based Free Software, using for example the [[Debian]] distribution. The [http://handhelds.freshmeat.net/browse/1038/ mobile phones section of Freshmeat] may be a interesting place to look.&lt;br /&gt;
&lt;br /&gt;
Note also that there are many packages in the repository that are not installed by default. If what you want is a classic, chances are that it is already packaged. Suppose you want to install Perl:&lt;br /&gt;
 opkg list|grep perl&lt;br /&gt;
 opkg install perl&lt;br /&gt;
&lt;br /&gt;
More application download related pages:&lt;br /&gt;
&lt;br /&gt;
* [[Community Repository]]&lt;br /&gt;
* [[Users Repositories]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Where to find full distributions ? ==&lt;br /&gt;
&lt;br /&gt;
* [[Download]]: for complete system downloads&lt;br /&gt;
&lt;br /&gt;
== The usual warnings ==&lt;br /&gt;
&amp;lt;small&amp;gt;&lt;br /&gt;
* Some of these software are developed by Openmoko Inc. and some are contributed by the community. Any problems with community contributed software should be reported to the individual software developer rather than the Openmoko core team.&lt;br /&gt;
* Most programs listed here are not mature/stable, but only useable/beta.&lt;br /&gt;
* Many programs listed here are not yet packaged for your distribution and integrated in its repositories. Whichever it is.&lt;br /&gt;
* Installing experimental software from the internet is certain to break things. Running it as root is a very insecure thing to do. Kown that you will be burned, have backups, and be ready to apologize to everybody in your phone contact list in case they receive strange SMSs...&lt;br /&gt;
&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
* [[Hall of Fame]] - showcase of established high quality applications&lt;br /&gt;
* [[PopularityContest]] - help collect statistics on installed applications&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
* [http://code.google.com Google code projects] tagged with:&lt;br /&gt;
** [http://code.google.com/hosting/search?q=label%3Afreerunner&amp;amp;filter=0&amp;amp;start=0 Tag FreeRunner]&lt;br /&gt;
** [http://code.google.com/hosting/search?q=label%3Afreerunner&amp;amp;filter=0&amp;amp;start=0 Tag Openmoko]&lt;br /&gt;
* [http://www.opkg.org opkg.org] - A software directory for Openmoko phones&lt;br /&gt;
&lt;br /&gt;
[[Category:Applications| ]]&lt;br /&gt;
[[Category:Basic End User]]&lt;/div&gt;</summary>
		<author><name>Niebert</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/QtMoko</id>
		<title>QtMoko</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/QtMoko"/>
				<updated>2010-12-29T06:50:52Z</updated>
		
		<summary type="html">&lt;p&gt;Niebert: /* Directory of MP3-Files */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages}}&lt;br /&gt;
QtMoko is a [[Debian]] based distribution for the [[Neo FreeRunner]]. The phone and user interface are based on [[Qt Extended Improved]] formerly known as [[Qtopia / Qt Extended on FreeRunner|Qtopia]]. The QtMoko wiki can be found [http://qtmoko.org/ here].&lt;br /&gt;
&lt;br /&gt;
===Download===&lt;br /&gt;
Further information on QtMoko and the current state of development can be found on [http://www.qtmoko.org http://www.qtmoko.org].&lt;br /&gt;
==== Sourceforge Download ====&lt;br /&gt;
Download the following files from [https://sourceforge.net/projects/qtmoko/files/ radekp download] to you desktop computer:&lt;br /&gt;
* latest&lt;br /&gt;
** https://sourceforge.net/projects/qtmoko/files/&lt;br /&gt;
==== OpenMobile.nl Download ====&lt;br /&gt;
This downloadable QtMoko-Image does not need the installation procedure of the following sections:&lt;br /&gt;
* OpenMobile Installer is a zip-file that contains images.&lt;br /&gt;
* The installation processes flashes Qi and other images&lt;br /&gt;
* you have to create to partitions 1=FAT 2=SWAP on your SD-Card (e.g. 2GB SD, Partition 1: FAT16, Partition 2: 128MB as swap - [[fdisk]] type 82)&lt;br /&gt;
* download [http://www.openmobile.nl/modules/download_gallery/dlc.php?file=54 qtm-installer-v26.zip] and unpack the file on the FAT-partition of your Mirco-SD card.&lt;br /&gt;
* Insert Mirco-SD in your freerunner and boot from SD-Card (press Power &amp;amp; AUX-Button together to get boot menue)&lt;br /&gt;
* Select boot from Mirco-SD and after 3 automatic reboots and flashing the QtMoko is installed including Navit.&lt;br /&gt;
&lt;br /&gt;
===Installation===&lt;br /&gt;
If you flash the FreeRunner with a kernel image from QtMoko, then you must install the kernel and the root file system with [http://wiki.openmoko.org/wiki/Dfu-util#Binaries_dfu-util dfu-util]. &lt;br /&gt;
{{Note|You need a fully charged Freerunner for installation.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Installation on SD card with Qi ====&lt;br /&gt;
Installing QtMoko on your microSD Card depends on the Bootloader you are using, ''uBoot'' or ''Qi''.&lt;br /&gt;
&lt;br /&gt;
If you have [[Qi]] installed then you can install QtMoko on the SD card. This seems to be useful if you want to work with different distribution and you can change the distribution just by changing the Mirco SD card in your FreeRunner. &lt;br /&gt;
{{Note|Installation in NAND-Memory with Qi is possible without errors, but with an installed bootloader [[Qi]] the boot process will terminate (with Qi installed by Android, which is modified). Install a non-Android Qi version or u-Boot instead!}}&lt;br /&gt;
&lt;br /&gt;
If you use ''Qi'', you only need an ext2 partition into your µSD Card where you uncompress the root filesystem image file [http://sourceforge.net/projects/qtmoko/files/ qtmoko-debian-v26.tar.gz]. In this case Qi Bootloader is going to look for the kernel image into the &amp;lt;tt&amp;gt;/boot&amp;lt;/tt&amp;gt; directory for file named &amp;lt;tt&amp;gt;uImage-GTA02.bin&amp;lt;/tt&amp;gt; .&lt;br /&gt;
&lt;br /&gt;
==== Installation in NAND Memory with u-Boot ====&lt;br /&gt;
If you have [[Qi]] or [http://wiki.openmoko.org/wiki/Manuals/Android Android] (with a modified Qi) installed on your Freerunner then install u-boot again as a [[bootloader]] by downloading a u-boot-binary on http://downloads.openmoko.org/distro/unstable/daily/ otherwise the boot process will terminate and you have to install u-Boot.&lt;br /&gt;
&lt;br /&gt;
All versions of the GTA02 (Neo FreeRunner) that have been sold to the public are version 5 hardware, so look for a file with &amp;quot;gta02&amp;quot; and &amp;quot;v5&amp;quot; in the name, for example:&lt;br /&gt;
[http://downloads.openmoko.org/distro/unstable/daily/om-gta02/20100131/u-boot-gta02v5-1.3.1+gitr650149a53dbdd48bf6dfef90930c8ab182adb512-r1.bin u-boot-gta02v5-1.3.1.bin] (linked U-Boot-Version from 31.Jan 2010):&lt;br /&gt;
&lt;br /&gt;
  sudo dfu-util -a u-boot -R -D u-boot-gta02v5-1.3.1.bin&lt;br /&gt;
&lt;br /&gt;
==== Installation of Kernel and Root-FS NAND-Memory ====&lt;br /&gt;
Switch off your FreeRunner and press the AUX and Power-On button at the same time. Your FreeRunner is showing the following U-Boot Menu:&lt;br /&gt;
&lt;br /&gt;
   *** BOOT MENU (NOR) ***&lt;br /&gt;
&lt;br /&gt;
   Boot&lt;br /&gt;
   Boot from Mirco SD (FAT/ext2)&lt;br /&gt;
   Set Console to USB&lt;br /&gt;
   Set Console to Serial&lt;br /&gt;
   Reboot&lt;br /&gt;
   Power Off  &lt;br /&gt;
&lt;br /&gt;
The FreeRunner will stay in this mode for only 30 sec. Within this time you have to start &amp;lt;tt&amp;gt;dfu-util&amp;lt;/tt&amp;gt;. If you want to flash the kernel image (you will need to be root on your PC) then you have to start the following command in the 30sec your see the BOOT MENU (use kernel and rootfs from [http://sourceforge.net/projects/qtmoko/files/ http://sourceforge.net/projects/qtmoko/files/]):&lt;br /&gt;
&lt;br /&gt;
 # for the Neo FreeRunner:&lt;br /&gt;
 dfu-util -d [[USB Product IDs|0x1d50:0x5119]] -a kernel -R -D  uImage-v24.bin&lt;br /&gt;
&lt;br /&gt;
and finally the root fs with this one:&lt;br /&gt;
&lt;br /&gt;
 # for the Neo FreeRunner:&lt;br /&gt;
 dfu-util -d [[USB Product IDs|0x1d50:0x5119]] -a rootfs -R -D qtmoko-debian-v24.jffs2&lt;br /&gt;
&lt;br /&gt;
====Preparations on the Connected PC/Laptop====&lt;br /&gt;
* To enable connections just by using the hostname &amp;lt;tt&amp;gt;openmoko&amp;lt;/tt&amp;gt; edit the &amp;lt;tt&amp;gt;/etc/hosts&amp;lt;/tt&amp;gt; and add line  &lt;br /&gt;
  192.168.0.202   openmoko&lt;br /&gt;
* Enable internet connection via [[USB Networking]] so that the installation of packages will be possible.&lt;br /&gt;
&lt;br /&gt;
==== First Boot ====&lt;br /&gt;
After finishing the installation without errors you have to start the FreeRunner and calibrate the  touch screen. Then you see the installed ''QtMoko'' on your device. &lt;br /&gt;
[[Image:qtmokomain.png|200px|thumb|QtMoko after first boot]]&lt;br /&gt;
&lt;br /&gt;
====First Login====&lt;br /&gt;
If you want to login to your FreeRunner set up a network connection (see [[USB Networking]]) with USB cable and start:&lt;br /&gt;
   desktop# ssh -X -l root 192.168.0.202&lt;br /&gt;
&lt;br /&gt;
The root password is empty so set it for security reason especially when you open the ssh-daemon on the WLAN network interface. Define root password as usual on a linux box with&lt;br /&gt;
   neo# passwd&lt;br /&gt;
If you have established the internet connection via USB cable then update the repository data:&lt;br /&gt;
   neo# apt-get update &lt;br /&gt;
If you want to check if the internet connection is available on your freerunner ping the OpenMoko web server with:&lt;br /&gt;
   neo# ping 88.198.93.221&lt;br /&gt;
   neo# ping wiki.openmoko.org&lt;br /&gt;
If the first ping works and the second doesn't then check the DNS server settings (see [[USB Networking]]).&lt;br /&gt;
&lt;br /&gt;
==== Setting Time and Date ====&lt;br /&gt;
Set the time and date on from your linux box with&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh root@openmoko &amp;quot;date -us @`date -u +%s`&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
sync the hardware clock with the system time to make your change persist over reboots:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# hwclock --systohc  &lt;br /&gt;
   DOES NOT WORK - no access to Hardware Clock&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
If you want to set the time with a NTP Client install the following package, if you have a network connection available (see [[USB Networking]])&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# apt-get install ntpdate&lt;br /&gt;
# ntpdate-debian&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
For further detail see [[Setting Date and Time]].&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
=== Size Root File System ===&lt;br /&gt;
If you want to install e.g. [[Twinkle]] and [[Navit]] on QtMoko the size of internal NAND memory is not sufficient (Twinkle need &amp;gt; 100MB). By creating symbolic links some memory problems can be avoided. &lt;br /&gt;
{{Note|'''(Size Root Filesystem)''' Create symbolic links from root file system to SD-card to save internal memory.If some folders are symb-linked to SD-Card (with e.g. ext2 partition), e.g.&lt;br /&gt;
  # mkdir /media/card/share&lt;br /&gt;
  # mkdir /media/card/share/navit&lt;br /&gt;
  # ln -s /media/card/share/navit /usr/share/navit &lt;br /&gt;
It recommended to use an ext2-partition. After creating symb-links install software.}}&lt;br /&gt;
&lt;br /&gt;
Consider installing QtMoko on MircroSD instead with [[Qi]], if you want to make use of debian applications that exceed NAND memory capacity.&lt;br /&gt;
&lt;br /&gt;
=== Login ===&lt;br /&gt;
If you want to login to your FreeRunner set up a network connection (see [[USB Networking]]) with USB cable and start:&lt;br /&gt;
   desktop# ssh -X -l root 192.168.0.202&lt;br /&gt;
or if hostname is defined in &amp;lt;tt&amp;gt;/etc/hosts&amp;lt;/tt&amp;gt;&lt;br /&gt;
   desktop# ssh -X -l root openmoko&lt;br /&gt;
=== Installation of Applications ===&lt;br /&gt;
If you want to install applications (e.g. &amp;lt;tt&amp;gt;myapplication&amp;lt;/tt&amp;gt;) login on your freerunner &lt;br /&gt;
  # apt-get install myapplication&lt;br /&gt;
Replace &amp;lt;tt&amp;gt;myapplication&amp;lt;/tt&amp;gt; by the package name of application name you want to start, e.g. if you want to install the command line editor &amp;lt;tt&amp;gt;vim&amp;lt;/tt&amp;gt;.&lt;br /&gt;
  # apt-get install vim&lt;br /&gt;
==== Navit ====&lt;br /&gt;
Navit installation uses Festival Lite for Speech synthesis look for the following string in navit.xml:&lt;br /&gt;
  flite -t &amp;quot;%s&amp;quot;&lt;br /&gt;
===== Navit Installation =====&lt;br /&gt;
If you want to install e.g. the application [[Navit]], you have to install the following packages. Navit needs and X-Server and it will run under [[QX]].&lt;br /&gt;
  # apt-get install flite&lt;br /&gt;
  # apt-get install unzip&lt;br /&gt;
The zip-package is necessary to unzip the [http://www.openmobile.nl/media/download_gallery/navit-qtm.zip navit-qtm.zip] package.  &lt;br /&gt;
  # cd /media/card&lt;br /&gt;
  # mkdir download&lt;br /&gt;
  # cd download&lt;br /&gt;
  # wget http://www.openmobile.nl/media/download_gallery/navit-qtm.zip&lt;br /&gt;
  # cd /&lt;br /&gt;
During &amp;lt;tt&amp;gt;unzip&amp;lt;/tt&amp;gt; you will be asked to replace &amp;lt;tt&amp;gt;/opt/qtmoko/bin/ppp-network&amp;lt;/tt&amp;gt;. This has to be done to solve problems with DNS over GPRS. Backup  &amp;lt;tt&amp;gt;ppp-network&amp;lt;/tt&amp;gt; file before unzipping &amp;lt;tt&amp;gt;navit-qtm.zip&amp;lt;/tt&amp;gt;. &lt;br /&gt;
  # cp /opt/qtmoko/bin/ppp-network /opt/qtmoko/bin/ppp-network.bak&lt;br /&gt;
  # unzip /media/card/download/navit-qtm.zip&lt;br /&gt;
  # rm /media/card/download/navit-qtm.zip&lt;br /&gt;
Unzipping the file will overwrite the following files too:&lt;br /&gt;
  /opt/qtmoko/etc/qx/favourites.conf&lt;br /&gt;
  /opt/qtmoko/etc/qx/profiles.conf&lt;br /&gt;
{{Note|Unzip extracts and overwrites the network settings files mentioned above. Due to this fact the usb0 MAC address changes for the USB connection to your freerunner. E.g. under Ubuntu 10.04 the new network interface for usb0 has to configure again}}&lt;br /&gt;
&lt;br /&gt;
Now you have to restart your Freerunner, but you can also try from the commandline of your neo:&lt;br /&gt;
  # echo 1 &amp;gt; /proc/sys/vm/overcommit_memory&lt;br /&gt;
After restart you can start [[Navit]] under [[QX]].&lt;br /&gt;
[[Image:QX_Navit1.png|150px|thumb|Navit in QX Main Menu]]&lt;br /&gt;
&lt;br /&gt;
===== Download Maps =====&lt;br /&gt;
Create a folder &amp;lt;tt&amp;gt;MapsNavit&amp;lt;/tt&amp;gt; on your SD card&lt;br /&gt;
  # mkdir /media/card/MapsNavit&lt;br /&gt;
The navit QT package [http://www.openmobile.nl/media/download_gallery/navit-qtm.zip navit-qtm.zip] from http://www.openmobile.nl the &amp;lt;tt&amp;gt;navit.xml&amp;lt;/tt&amp;gt; is predefined for benelux maps and will try to load &amp;lt;tt&amp;gt;osm_benelux.bin&amp;lt;/tt&amp;gt; that should be store at&lt;br /&gt;
  /media/card/MapsNavit/osm_benelux.bin&lt;br /&gt;
If you want to use map for another country you can just store a downloaded [[Navit]]-Map in that folder and rename it &amp;lt;tt&amp;gt;osm_benelux.bin&amp;lt;/tt&amp;gt;. If the map name should make sense, then you have to edit the &amp;lt;tt&amp;gt;navit.xml&amp;lt;/tt&amp;gt;. See [[Navit]]-manual for details. You can find the &amp;lt;tt&amp;gt;navit.xml&amp;lt;/tt&amp;gt; at:&lt;br /&gt;
  # /usr/share/navit/navit.xml&lt;br /&gt;
Create the folder &amp;lt;tt&amp;gt;.navit&amp;lt;/tt&amp;gt; in the home directory on your FR and copy &amp;lt;tt&amp;gt;navit.xml&amp;lt;/tt&amp;gt; to directory:&lt;br /&gt;
  # cd ~&lt;br /&gt;
  # mkdir .navit&lt;br /&gt;
  # cp /usr/share/navit/navit.xml .navit/navit.xml &lt;br /&gt;
If you have the editor &amp;lt;tt&amp;gt;vim&amp;lt;/tt&amp;gt; installed then edit the file at line 376 approx.:&lt;br /&gt;
  # vim ~/.navit/navit.xml&lt;br /&gt;
If you have downloaded the file &amp;lt;tt&amp;gt;germany.bin&amp;lt;/tt&amp;gt; your mapset-tags should look like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 &amp;lt;!-- Mapset template for openstreetmaps --&amp;gt;&lt;br /&gt;
 &amp;lt;mapset enabled=&amp;quot;yes&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;map type=&amp;quot;binfile&amp;quot; enabled=&amp;quot;yes&amp;quot; data=&amp;quot;/media/card/MapsNavit/germany.bin&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;/mapset&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
{{Note|Both MAPSET and MAP have to be  enabled to work with the OSM-map in Navit.}}&lt;br /&gt;
&lt;br /&gt;
===== Starting Navit =====&lt;br /&gt;
[[Image:QX_Navit_Launch.png|150px|thumb|Launch Navit in QX]]&lt;br /&gt;
* Open Main Menu by clicking on the green Q-Topia &amp;quot;Q&amp;quot;-Box.&lt;br /&gt;
* Open Applications (4 Boxes, red, yellow, green, blue)&lt;br /&gt;
* Scroll down and open [[QX]]&lt;br /&gt;
* Select Navit&lt;br /&gt;
* Click on the white Paper Icon on the bottom left to open the context menu of the [[QX]] application.&lt;br /&gt;
* Select Launch to start Navit.&lt;br /&gt;
* Exit with AUX-Button without stopping navit&lt;br /&gt;
&lt;br /&gt;
=== VoIP ===&lt;br /&gt;
==== Integrated VoIP-Client ====&lt;br /&gt;
QtMoko has an integrated [[VoIP]]-Client, which would be perfect to use a SIP-Account to do free of charge mobile communication world wide. But at the moment the integrated VoIP-Client does not work, due to some strange problems in Version v24 (see [http://qtmoko.org/wiki/Main_Page QtMoko-Wiki] for current status of development).&lt;br /&gt;
&lt;br /&gt;
[http://wiki.openmoko.org/wiki/Android_usage Android on Freerunner] has an integrated SIP-Client [[SipDroid]] that has strange audio problems as well (see http://sipdroid.org ). Maybe there is an underlying problem the&lt;br /&gt;
* the integrated VoIP-Client of QtMoko and&lt;br /&gt;
* [http://www.google.de/search?q=Sipdroid+Audio+Problem SIPdroid Audio] on [[Android]]&lt;br /&gt;
have in common.&lt;br /&gt;
&lt;br /&gt;
==== Twinkle/Linphone ====&lt;br /&gt;
See [[Twinkle]] for further details or the official Website [http://www.twinklephone.com/ http://www.twinklephone.com/] &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  apt-get install twinkle&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
For installation of Twinkle your need 105MB. It would be necessary to install QtMoko on MircoSD.&lt;br /&gt;
{{Error| Installation of Twinkle with apt-get stops with errors (Test: 19.11.2010)}}&lt;br /&gt;
You can use [[Linphone]] ([http://www.linphone.org http://www.linphone.org]) instead, which will use 83MB.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  apt-get install linphone&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
See additional information on the OpenMoko-[[Linphone]] page.&lt;br /&gt;
&lt;br /&gt;
== PIM Storage and Import ==&lt;br /&gt;
As visible on [http://qtmoko.org/wiki/Main_Page QtMoko-Wiki] Syncing Calendar data is not working at the moment. Some work has be done (Thanks to [http://mossroy.free.fr/ics2qtcal/ mossroy]), so that iCal-Files (ics) can be imported to your QtMoko calendar via a perlscript [http://wiki.openmoko.org/wiki/PIM_Storage#Import.2FExport_of_Calendar_Data_for_PIM-Storage ics2qtcal.pl]. Choose the current version from [http://mossroy.free.fr/ics2qtcal/ http://mossroy.free.fr/ics2qtcal/]. &lt;br /&gt;
&lt;br /&gt;
The main job of the scripts are:&lt;br /&gt;
# deleting old appointments in Qt-Calendar&lt;br /&gt;
# importing the an ics-file into the Qt-Calendar. The ics-File can be an exported  calendar in an iCal File (e.g. &amp;lt;tt&amp;gt;mycalendar.ics&amp;lt;/tt&amp;gt;) which is transfered to your Neo.&lt;br /&gt;
# import &amp;lt;tt&amp;gt;mycalendar.ics&amp;lt;/tt&amp;gt; with scripts into your SQLite Database.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Install Script===&lt;br /&gt;
The following installation script &lt;br /&gt;
* downloads the scripts and stores them into the directory &amp;lt;tt&amp;gt;/usr/local/bin/&amp;lt;/tt&amp;gt;,&lt;br /&gt;
* makes them executable,&lt;br /&gt;
* creates a file &amp;lt;tt&amp;gt;/usr/share/applications/syncal.desktop&amp;lt;/tt&amp;gt; for [[QX]] and&lt;br /&gt;
* creates a file &amp;lt;tt&amp;gt;/usr/local/bin/syncal&amp;lt;/tt&amp;gt; for starting the synchronisation. The &amp;lt;tt&amp;gt;syncal&amp;lt;/tt&amp;gt; will look like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
vUser=&amp;quot;myusername&amp;quot;&lt;br /&gt;
vPWD=&amp;quot;mypassword&amp;quot;&lt;br /&gt;
vICS1=&amp;quot;https://www.example.org/caldav/calendar1.ics&amp;quot;&lt;br /&gt;
vICS2=&amp;quot;https://www.example.org/caldav/calendar2.ics&amp;quot;&lt;br /&gt;
remotesync4ics2openmoko.sh -u $vUser -p $vPWD $vICSl $vICS2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Please edit the file &amp;lt;tt&amp;gt;syncal&amp;lt;/tt&amp;gt; and modify the username and password for accessing ics-file on a remote groupware server, where your iCal-file is stored.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
# INSTALL SCRIPT FOR ICS2QTCAL&lt;br /&gt;
# ----------------------------&lt;br /&gt;
# Edit the following variable for a new versions&lt;br /&gt;
vURL=&amp;quot;http://mossroy.free.fr/ics2qtcal/v0.4&amp;quot;&lt;br /&gt;
cd /usr/local/bin&lt;br /&gt;
wget &amp;quot;$vURL/ics2qtcal.pl&amp;quot;&lt;br /&gt;
wget &amp;quot;$vURL/ics2qtcal.sh&amp;quot;&lt;br /&gt;
wget &amp;quot;$vURL/deleteqtcalappointments.pl&amp;quot;&lt;br /&gt;
wget &amp;quot;$vURL/install_dependencies.sh&amp;quot;&lt;br /&gt;
wget &amp;quot;$vURL/remotesync4ics2openmoko.sh&amp;quot;&lt;br /&gt;
wget &amp;quot;$vURL/sync4ics2openmoko.sh&amp;quot;&lt;br /&gt;
sh ./install_dependencies.sh&lt;br /&gt;
rm ./install_dependencies.sh&lt;br /&gt;
chmod u+x *.sh&lt;br /&gt;
# insert synccal in QX-favourites and make backup of old favourites.conf&lt;br /&gt;
cd /opt/qtmoko/etc/qx/&lt;br /&gt;
cp ./favourites.conf ./favourites.conf.$$&lt;br /&gt;
cat ./favourites.conf.$$ | sed 's/list=/list=synccal, /g' | favourites.conf&lt;br /&gt;
echo &amp;quot;generate synccal.desktop&amp;quot;&lt;br /&gt;
vSyncCal=&amp;quot;/usr/share/applications/synccal.desktop&amp;quot;&lt;br /&gt;
echo &amp;quot;[Desktop Entry]&amp;quot; &amp;gt; $vSyncCal&lt;br /&gt;
echo &amp;quot;Version=1.0&amp;quot; &amp;gt;&amp;gt; $vSyncCal&lt;br /&gt;
echo &amp;quot;Name=SyncCal&amp;quot; &amp;gt;&amp;gt; $vSyncCal&lt;br /&gt;
echo &amp;quot;Name[de]=SyncCal&amp;quot; &amp;gt;&amp;gt; $vSyncCal&lt;br /&gt;
echo &amp;quot;Name[fr]=SyncCal&amp;quot; &amp;gt;&amp;gt; $vSyncCal&lt;br /&gt;
echo &amp;quot;Comment=Syncing remote and local ics-file into Qt-Calendar.&amp;quot; &amp;gt;&amp;gt; $vSyncCal&lt;br /&gt;
echo &amp;quot;Comment[de]=Script fuer den Import von ics-Dateien&amp;quot; &amp;gt;&amp;gt; $vSyncCal&lt;br /&gt;
echo &amp;quot;Exec=synccal&amp;quot; &amp;gt;&amp;gt; $vSyncCal&lt;br /&gt;
echo &amp;quot;Icon=synccal&amp;quot; &amp;gt;&amp;gt; $vSyncCal&lt;br /&gt;
echo &amp;quot;StartupNotify=true&amp;quot; &amp;gt;&amp;gt; $vSyncCal&lt;br /&gt;
echo &amp;quot;Terminal=false&amp;quot; &amp;gt;&amp;gt; $vSyncCal&lt;br /&gt;
echo &amp;quot;Type=Application&amp;quot; &amp;gt;&amp;gt; $vSyncCal&lt;br /&gt;
echo &amp;quot;Categories=GTK;Utility;Dialog;&amp;quot; &amp;gt;&amp;gt; $vSyncCal&lt;br /&gt;
echo &amp;quot;GenericName=SyncCal&amp;quot; &amp;gt;&amp;gt; $vSyncCal&lt;br /&gt;
echo &amp;quot;GenericName[de]=SyncCal&amp;quot; &amp;gt;&amp;gt; $vSyncCal&lt;br /&gt;
# Done synccal.desktop ----------&lt;br /&gt;
echo &amp;quot;Generate syncal&amp;quot;&lt;br /&gt;
vSyncCal=&amp;quot;/usr/local/bin/syncal&amp;quot;&lt;br /&gt;
echo &amp;quot;#!/bin/sh&amp;quot; &amp;gt; $vSyncCal&lt;br /&gt;
echo &amp;quot;vUser=\&amp;quot;myusername\&amp;quot;&amp;quot; &amp;gt;&amp;gt; $vSyncCal&lt;br /&gt;
echo &amp;quot;vPWD=\&amp;quot;mypassword\&amp;quot;&amp;quot; &amp;gt;&amp;gt; $vSyncCal&lt;br /&gt;
echo &amp;quot;vICS1=\&amp;quot;https://www.example.org/caldav/calendar1.ics\&amp;quot;&amp;quot; &amp;gt;&amp;gt; $vSyncCal&lt;br /&gt;
echo &amp;quot;vICS2=\&amp;quot;https://www.example.org/caldav/calendar2.ics\&amp;quot;&amp;quot; &amp;gt;&amp;gt; $vSyncCal&lt;br /&gt;
echo &amp;quot;remotesync4ics2openmoko.sh -u $vUser -p $vPWD $vICSl $vICS2&amp;quot; &amp;gt;&amp;gt; $vSyncCal&lt;br /&gt;
chmod u+x $vSyncCal&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The script adds a syncal to [[QX]]-favourites and creates a desktop-definition file  &lt;br /&gt;
  /usr/share/applications/syncal.desktop  &lt;br /&gt;
because without the desktop-definition file an application will not be visible in [[QX]]-favourites.&lt;br /&gt;
====Settings for Remote ICS-files====&lt;br /&gt;
After installation you have to edit the file &lt;br /&gt;
  /usr/local/bin/synccal&lt;br /&gt;
with your confidential username, password and file URL for the remote ics files. You can import more than one remote ICS-files, so 2 variables for file URLs are defined. Change that to your appropriate number of remote ICS-files. See &amp;lt;tt&amp;gt;remotesync4ics2openmoko.sh&amp;lt;/tt&amp;gt; for further details. If you do not want to store the password in the script for security reasons you can use [http://xdialog.free.fr xdialog] for entering the &amp;lt;tt&amp;gt;vPWD&amp;lt;/tt&amp;gt; via user interface (e.g. [http://xdialog.free.fr/inputbox.gif input box]).&lt;br /&gt;
===Setting up a Groupware Server for testing===&lt;br /&gt;
If you want to setup your own groupware server for testing on your own Linux Box, you can try [http://www.citadel.org CitaDel]. Accessing the remote ics-file are explained on the homepage of [http://www.citadel.org/doku.php/faq:favoriteclient:what_url_s_do_i_use?s=sunbird http://www.citadel.org].&lt;br /&gt;
&lt;br /&gt;
===Use Evolution iCal-file via SSHFS===&lt;br /&gt;
[http://projects.gnome.org/evolution/ Evolution] stores the calendar data in the iCal-file &amp;lt;tt&amp;gt;calendar.ics&amp;lt;/tt&amp;gt;. So you might to use the files directly.&lt;br /&gt;
&lt;br /&gt;
If you running [http://projects.gnome.org/evolution/ Evolution] on you Linux-Box you can use [http://en.wikipedia.org/wiki/SSHFS SSHFS] to mount the directory of Evolution in homedirectory e.g. in&lt;br /&gt;
  /home/username/.evolution/calendar/local/system&lt;br /&gt;
You can use the iCal-file directly by mounting the directory mentioned above on the Freerunner. Now you can used the &amp;lt;tt&amp;gt;calendar.ics&amp;lt;/tt&amp;gt; from the Linux-Box, if you mount the directory in (replace &amp;lt;tt&amp;gt;username&amp;lt;/tt&amp;gt; by your account on your Linux-Box):&lt;br /&gt;
  /mnt/remoteics&lt;br /&gt;
on your Freerunner.&lt;br /&gt;
  # mkdir /mnt/remoteics&lt;br /&gt;
  # sshfs username@example.com:/home/username/.evolution/calendar/local/system /mnt/remoteics&lt;br /&gt;
Now you can use the file &amp;lt;tt&amp;gt;calendar.ics&amp;lt;/tt&amp;gt; directly:&lt;br /&gt;
  /mnt/remoteics/calendar.ics&lt;br /&gt;
The scripts of [http://mossroy.free.fr/ics2qtcal/ Mossroy] must be modified for this, because the scripts use [http://www.gnu.org/software/wget/ wget] to download the ics-files.&lt;br /&gt;
&lt;br /&gt;
==Favorites==&lt;br /&gt;
[[Image:deletefavorites.png|200px|thumb|Delete Icons from Favorites in Task Manager]]&lt;br /&gt;
&lt;br /&gt;
===QtMoko Favorites===&lt;br /&gt;
====Add to Favorites====&lt;br /&gt;
You might prefer some applications and you use them more frequent. Then you might want them to add to your '''favorites'''. &lt;br /&gt;
* Go the application list and select (highlight, but do not start) application. &lt;br /&gt;
* click on the paper icon on bottom left and select ''Add to Favorite''. &lt;br /&gt;
Then you will have this Icon in the favorites menu (yellow star in main menu) too.&lt;br /&gt;
&lt;br /&gt;
====Delete from Favorites====&lt;br /&gt;
A bit more difficult (i.e. more hidden in QtMoko) is to delete icons from the favorites menu.&lt;br /&gt;
* start '''Task Manager''' in main menu by pressing the AUX-Button on you freerunner.&lt;br /&gt;
* You will see the list of favorites&lt;br /&gt;
* Select the application your want to remove from favorites (keep pressed for a few seconds on the application until the context menu appear. The icon you want to delete should not be selected before.&lt;br /&gt;
* select '''delete''' from context menu and the icon disappears from favorites.&lt;br /&gt;
&lt;br /&gt;
=== Adding QX Favourites ===&lt;br /&gt;
For adding Favourites in the X-Server environment see [[QX]].&lt;br /&gt;
&lt;br /&gt;
== MP3 Audio ==&lt;br /&gt;
[[Image:mediaplayer.png|200px|thumb|Media Player]]&lt;br /&gt;
=== Directory of MP3-Files ===&lt;br /&gt;
The Media-Player will expect audio MP3-file in the directory:&lt;br /&gt;
   /home/root/Documents/audio/mpeg&lt;br /&gt;
If want to store several MP3-file on your freerunner create a symbolic link of audio to your SD-card:&lt;br /&gt;
   neo# mkdir /media/card/audio&lt;br /&gt;
   neo# mkdir /media/card/audio/mpeg&lt;br /&gt;
   ln -s /media/card/audio /home/root/Documents/audio&lt;br /&gt;
Store MP3-files in &amp;lt;tt&amp;gt;/media/card/audio/mpeg&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== MP3-codec install ===&lt;br /&gt;
* Install &amp;lt;tt&amp;gt;codec-installer&amp;lt;/tt&amp;gt; from repository&lt;br /&gt;
* Start codec-installer&lt;br /&gt;
* Install MP3-codec&lt;br /&gt;
* reboot you freerunner&lt;br /&gt;
&lt;br /&gt;
== Error Handling and Workarounds ==&lt;br /&gt;
During the installations above, the following problem occured:&lt;br /&gt;
=== Xdialog Problem with Gdk-WARNING===&lt;br /&gt;
When encouter a GdK-Warning using Xdialog in scripts you can remove the warning with [http://www.linuxhowtos.org/System/sed_tutorial.htm sed].&lt;br /&gt;
&lt;br /&gt;
  sed 's/Gdk-WARNING ... locale not supported by C library//g&lt;br /&gt;
&lt;br /&gt;
This warning is part of the return string of an inputbox in xdialog.&lt;br /&gt;
{{Note|This application sed is a workaround. The best solution is a modifacition that removes the GdK-warning itself.}}&lt;br /&gt;
Embedded in a script [http://www.grymoire.com/Unix/Sed.html sed] will remove the warning from the input string. A example script (modified from [http://xdialog.free.fr http://xdialog.free.fr]) will work like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  #!/bin/sh&lt;br /&gt;
 &lt;br /&gt;
  Xdialog --title &amp;quot;INPUT BOX&amp;quot; \&lt;br /&gt;
     --inputbox &amp;quot;Enter URL:&amp;quot; 18 45 \&lt;br /&gt;
     &amp;quot;http://www123.Example-Test.com&amp;quot; 2&amp;gt; /tmp/inputbox.tmp.$$&lt;br /&gt;
  &lt;br /&gt;
  retval=$?&lt;br /&gt;
  input=`cat /tmp/inputbox.tmp.$$`&lt;br /&gt;
  rm -f /tmp/inputbox.tmp.$$&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  input=`echo $input | sed 's/Gdk-WARNING ... locale not supported by C library//g'`&lt;br /&gt;
  # remove invalid character from URL&lt;br /&gt;
  input=`echo $input | sed 's/[^a-zA-Z1-9\/:\. \-]//g'`&lt;br /&gt;
  &lt;br /&gt;
  case $retval in&lt;br /&gt;
    0)&lt;br /&gt;
      echo &amp;quot;Input string is '$input'&amp;quot;;;&lt;br /&gt;
    1)&lt;br /&gt;
      echo &amp;quot;Cancel pressed.&amp;quot;;;&lt;br /&gt;
    255)&lt;br /&gt;
      echo &amp;quot;Box closed.&amp;quot;;;&lt;br /&gt;
  esac&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
To test this script on your freerunner, you have to start it from the terminal in [[QX]]. Source of the xdialog script is used from [http://xdialog.free.fr http://xdialog.free.fr].&lt;br /&gt;
&lt;br /&gt;
=== Apt-Get Problem jffs2 ===&lt;br /&gt;
'''[Apt-Get] (jffs2)  Couldn't make mmap ...:''' (solved with the following [http://lists.laiskiainen.org/pipermail/apt-rpm-laiskiainen.org/2008-November/000884.html workaround])&lt;br /&gt;
If that happens regularly, create two scripts &amp;lt;tt&amp;gt;apt-start&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;apt-stop&amp;lt;/tt&amp;gt;. These scripts are used before and after &amp;lt;tt&amp;gt;apt-get&amp;lt;/tt&amp;gt; use. &lt;br /&gt;
==== Create an APT-START Script ====&lt;br /&gt;
* start &amp;lt;tt&amp;gt;vi&amp;lt;/tt&amp;gt; for the script &amp;lt;tt&amp;gt;apt-start&amp;lt;/tt&amp;gt;&lt;br /&gt;
  # vi /bin/apt-start &lt;br /&gt;
* press &amp;quot;I&amp;quot; for insert and enter the following code:&lt;br /&gt;
  #!/bin/sh&lt;br /&gt;
  mount -t tmpfs none /var/cache/apt&lt;br /&gt;
  mkdir -p /var/cache/apt/archives/partial&lt;br /&gt;
  apt-get update&lt;br /&gt;
  echo &amp;quot;apt-get can now be used&amp;quot;&lt;br /&gt;
  echo &amp;quot;stop with apt-stop&amp;quot;&lt;br /&gt;
* press ESC and then '''&amp;quot;:w&amp;quot;'''&lt;br /&gt;
* press '''&amp;quot;:q&amp;quot;''' for quit.&lt;br /&gt;
* make the script executable with chmod:&lt;br /&gt;
   chmod u+x /bin/apt-start&lt;br /&gt;
&lt;br /&gt;
==== Create an APT-STOP Script ====&lt;br /&gt;
* start &amp;lt;tt&amp;gt;vi&amp;lt;/tt&amp;gt; for the script &amp;lt;tt&amp;gt;apt-stop&amp;lt;/tt&amp;gt;.&lt;br /&gt;
  # vi /bin/apt-start &lt;br /&gt;
* press &amp;quot;I&amp;quot; for insert and enter the following code:&lt;br /&gt;
  #!/bin/sh&lt;br /&gt;
  umount /var/cache/apt&lt;br /&gt;
  echo &amp;quot;Now old settings for apt-get are restored&amp;quot;&lt;br /&gt;
* press ESC and then '''&amp;quot;:w&amp;quot;'''&lt;br /&gt;
* press &amp;quot;:q&amp;quot; for quit.&lt;br /&gt;
* make the script executable with chmod:&lt;br /&gt;
   chmod u+x /bin/apt-stop&lt;br /&gt;
&lt;br /&gt;
==== Usage of Scripts ====&lt;br /&gt;
If you to install software use the scripts before and after apt-get call:&lt;br /&gt;
  apt-start&lt;br /&gt;
  apt-get install mysoftware&lt;br /&gt;
  apt-stop&lt;br /&gt;
Replace &amp;lt;tt&amp;gt;mysoftware&amp;lt;/tt&amp;gt; with the package you want to install e.g. &amp;lt;tt&amp;gt;linphone&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* [http://qtmoko.org/wiki/Main_Page QtMoko Wiki]&lt;br /&gt;
* [http://sourceforge.net/projects/qtmoko/files/ QtMoko Download]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Qt Moko| ]]&lt;/div&gt;</summary>
		<author><name>Niebert</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/File:Mediaplayer.png</id>
		<title>File:Mediaplayer.png</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/File:Mediaplayer.png"/>
				<updated>2010-12-29T06:49:55Z</updated>
		
		<summary type="html">&lt;p&gt;Niebert: Mediaplayer in QtMoko&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Mediaplayer in QtMoko&lt;/div&gt;</summary>
		<author><name>Niebert</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/QtMoko</id>
		<title>QtMoko</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/QtMoko"/>
				<updated>2010-12-29T06:41:58Z</updated>
		
		<summary type="html">&lt;p&gt;Niebert: /* MP3 Audio */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages}}&lt;br /&gt;
QtMoko is a [[Debian]] based distribution for the [[Neo FreeRunner]]. The phone and user interface are based on [[Qt Extended Improved]] formerly known as [[Qtopia / Qt Extended on FreeRunner|Qtopia]]. The QtMoko wiki can be found [http://qtmoko.org/ here].&lt;br /&gt;
&lt;br /&gt;
===Download===&lt;br /&gt;
Further information on QtMoko and the current state of development can be found on [http://www.qtmoko.org http://www.qtmoko.org].&lt;br /&gt;
==== Sourceforge Download ====&lt;br /&gt;
Download the following files from [https://sourceforge.net/projects/qtmoko/files/ radekp download] to you desktop computer:&lt;br /&gt;
* latest&lt;br /&gt;
** https://sourceforge.net/projects/qtmoko/files/&lt;br /&gt;
==== OpenMobile.nl Download ====&lt;br /&gt;
This downloadable QtMoko-Image does not need the installation procedure of the following sections:&lt;br /&gt;
* OpenMobile Installer is a zip-file that contains images.&lt;br /&gt;
* The installation processes flashes Qi and other images&lt;br /&gt;
* you have to create to partitions 1=FAT 2=SWAP on your SD-Card (e.g. 2GB SD, Partition 1: FAT16, Partition 2: 128MB as swap - [[fdisk]] type 82)&lt;br /&gt;
* download [http://www.openmobile.nl/modules/download_gallery/dlc.php?file=54 qtm-installer-v26.zip] and unpack the file on the FAT-partition of your Mirco-SD card.&lt;br /&gt;
* Insert Mirco-SD in your freerunner and boot from SD-Card (press Power &amp;amp; AUX-Button together to get boot menue)&lt;br /&gt;
* Select boot from Mirco-SD and after 3 automatic reboots and flashing the QtMoko is installed including Navit.&lt;br /&gt;
&lt;br /&gt;
===Installation===&lt;br /&gt;
If you flash the FreeRunner with a kernel image from QtMoko, then you must install the kernel and the root file system with [http://wiki.openmoko.org/wiki/Dfu-util#Binaries_dfu-util dfu-util]. &lt;br /&gt;
{{Note|You need a fully charged Freerunner for installation.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Installation on SD card with Qi ====&lt;br /&gt;
Installing QtMoko on your microSD Card depends on the Bootloader you are using, ''uBoot'' or ''Qi''.&lt;br /&gt;
&lt;br /&gt;
If you have [[Qi]] installed then you can install QtMoko on the SD card. This seems to be useful if you want to work with different distribution and you can change the distribution just by changing the Mirco SD card in your FreeRunner. &lt;br /&gt;
{{Note|Installation in NAND-Memory with Qi is possible without errors, but with an installed bootloader [[Qi]] the boot process will terminate (with Qi installed by Android, which is modified). Install a non-Android Qi version or u-Boot instead!}}&lt;br /&gt;
&lt;br /&gt;
If you use ''Qi'', you only need an ext2 partition into your µSD Card where you uncompress the root filesystem image file [http://sourceforge.net/projects/qtmoko/files/ qtmoko-debian-v26.tar.gz]. In this case Qi Bootloader is going to look for the kernel image into the &amp;lt;tt&amp;gt;/boot&amp;lt;/tt&amp;gt; directory for file named &amp;lt;tt&amp;gt;uImage-GTA02.bin&amp;lt;/tt&amp;gt; .&lt;br /&gt;
&lt;br /&gt;
==== Installation in NAND Memory with u-Boot ====&lt;br /&gt;
If you have [[Qi]] or [http://wiki.openmoko.org/wiki/Manuals/Android Android] (with a modified Qi) installed on your Freerunner then install u-boot again as a [[bootloader]] by downloading a u-boot-binary on http://downloads.openmoko.org/distro/unstable/daily/ otherwise the boot process will terminate and you have to install u-Boot.&lt;br /&gt;
&lt;br /&gt;
All versions of the GTA02 (Neo FreeRunner) that have been sold to the public are version 5 hardware, so look for a file with &amp;quot;gta02&amp;quot; and &amp;quot;v5&amp;quot; in the name, for example:&lt;br /&gt;
[http://downloads.openmoko.org/distro/unstable/daily/om-gta02/20100131/u-boot-gta02v5-1.3.1+gitr650149a53dbdd48bf6dfef90930c8ab182adb512-r1.bin u-boot-gta02v5-1.3.1.bin] (linked U-Boot-Version from 31.Jan 2010):&lt;br /&gt;
&lt;br /&gt;
  sudo dfu-util -a u-boot -R -D u-boot-gta02v5-1.3.1.bin&lt;br /&gt;
&lt;br /&gt;
==== Installation of Kernel and Root-FS NAND-Memory ====&lt;br /&gt;
Switch off your FreeRunner and press the AUX and Power-On button at the same time. Your FreeRunner is showing the following U-Boot Menu:&lt;br /&gt;
&lt;br /&gt;
   *** BOOT MENU (NOR) ***&lt;br /&gt;
&lt;br /&gt;
   Boot&lt;br /&gt;
   Boot from Mirco SD (FAT/ext2)&lt;br /&gt;
   Set Console to USB&lt;br /&gt;
   Set Console to Serial&lt;br /&gt;
   Reboot&lt;br /&gt;
   Power Off  &lt;br /&gt;
&lt;br /&gt;
The FreeRunner will stay in this mode for only 30 sec. Within this time you have to start &amp;lt;tt&amp;gt;dfu-util&amp;lt;/tt&amp;gt;. If you want to flash the kernel image (you will need to be root on your PC) then you have to start the following command in the 30sec your see the BOOT MENU (use kernel and rootfs from [http://sourceforge.net/projects/qtmoko/files/ http://sourceforge.net/projects/qtmoko/files/]):&lt;br /&gt;
&lt;br /&gt;
 # for the Neo FreeRunner:&lt;br /&gt;
 dfu-util -d [[USB Product IDs|0x1d50:0x5119]] -a kernel -R -D  uImage-v24.bin&lt;br /&gt;
&lt;br /&gt;
and finally the root fs with this one:&lt;br /&gt;
&lt;br /&gt;
 # for the Neo FreeRunner:&lt;br /&gt;
 dfu-util -d [[USB Product IDs|0x1d50:0x5119]] -a rootfs -R -D qtmoko-debian-v24.jffs2&lt;br /&gt;
&lt;br /&gt;
====Preparations on the Connected PC/Laptop====&lt;br /&gt;
* To enable connections just by using the hostname &amp;lt;tt&amp;gt;openmoko&amp;lt;/tt&amp;gt; edit the &amp;lt;tt&amp;gt;/etc/hosts&amp;lt;/tt&amp;gt; and add line  &lt;br /&gt;
  192.168.0.202   openmoko&lt;br /&gt;
* Enable internet connection via [[USB Networking]] so that the installation of packages will be possible.&lt;br /&gt;
&lt;br /&gt;
==== First Boot ====&lt;br /&gt;
After finishing the installation without errors you have to start the FreeRunner and calibrate the  touch screen. Then you see the installed ''QtMoko'' on your device. &lt;br /&gt;
[[Image:qtmokomain.png|200px|thumb|QtMoko after first boot]]&lt;br /&gt;
&lt;br /&gt;
====First Login====&lt;br /&gt;
If you want to login to your FreeRunner set up a network connection (see [[USB Networking]]) with USB cable and start:&lt;br /&gt;
   desktop# ssh -X -l root 192.168.0.202&lt;br /&gt;
&lt;br /&gt;
The root password is empty so set it for security reason especially when you open the ssh-daemon on the WLAN network interface. Define root password as usual on a linux box with&lt;br /&gt;
   neo# passwd&lt;br /&gt;
If you have established the internet connection via USB cable then update the repository data:&lt;br /&gt;
   neo# apt-get update &lt;br /&gt;
If you want to check if the internet connection is available on your freerunner ping the OpenMoko web server with:&lt;br /&gt;
   neo# ping 88.198.93.221&lt;br /&gt;
   neo# ping wiki.openmoko.org&lt;br /&gt;
If the first ping works and the second doesn't then check the DNS server settings (see [[USB Networking]]).&lt;br /&gt;
&lt;br /&gt;
==== Setting Time and Date ====&lt;br /&gt;
Set the time and date on from your linux box with&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh root@openmoko &amp;quot;date -us @`date -u +%s`&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
sync the hardware clock with the system time to make your change persist over reboots:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# hwclock --systohc  &lt;br /&gt;
   DOES NOT WORK - no access to Hardware Clock&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
If you want to set the time with a NTP Client install the following package, if you have a network connection available (see [[USB Networking]])&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# apt-get install ntpdate&lt;br /&gt;
# ntpdate-debian&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
For further detail see [[Setting Date and Time]].&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
=== Size Root File System ===&lt;br /&gt;
If you want to install e.g. [[Twinkle]] and [[Navit]] on QtMoko the size of internal NAND memory is not sufficient (Twinkle need &amp;gt; 100MB). By creating symbolic links some memory problems can be avoided. &lt;br /&gt;
{{Note|'''(Size Root Filesystem)''' Create symbolic links from root file system to SD-card to save internal memory.If some folders are symb-linked to SD-Card (with e.g. ext2 partition), e.g.&lt;br /&gt;
  # mkdir /media/card/share&lt;br /&gt;
  # mkdir /media/card/share/navit&lt;br /&gt;
  # ln -s /media/card/share/navit /usr/share/navit &lt;br /&gt;
It recommended to use an ext2-partition. After creating symb-links install software.}}&lt;br /&gt;
&lt;br /&gt;
Consider installing QtMoko on MircroSD instead with [[Qi]], if you want to make use of debian applications that exceed NAND memory capacity.&lt;br /&gt;
&lt;br /&gt;
=== Login ===&lt;br /&gt;
If you want to login to your FreeRunner set up a network connection (see [[USB Networking]]) with USB cable and start:&lt;br /&gt;
   desktop# ssh -X -l root 192.168.0.202&lt;br /&gt;
or if hostname is defined in &amp;lt;tt&amp;gt;/etc/hosts&amp;lt;/tt&amp;gt;&lt;br /&gt;
   desktop# ssh -X -l root openmoko&lt;br /&gt;
=== Installation of Applications ===&lt;br /&gt;
If you want to install applications (e.g. &amp;lt;tt&amp;gt;myapplication&amp;lt;/tt&amp;gt;) login on your freerunner &lt;br /&gt;
  # apt-get install myapplication&lt;br /&gt;
Replace &amp;lt;tt&amp;gt;myapplication&amp;lt;/tt&amp;gt; by the package name of application name you want to start, e.g. if you want to install the command line editor &amp;lt;tt&amp;gt;vim&amp;lt;/tt&amp;gt;.&lt;br /&gt;
  # apt-get install vim&lt;br /&gt;
==== Navit ====&lt;br /&gt;
Navit installation uses Festival Lite for Speech synthesis look for the following string in navit.xml:&lt;br /&gt;
  flite -t &amp;quot;%s&amp;quot;&lt;br /&gt;
===== Navit Installation =====&lt;br /&gt;
If you want to install e.g. the application [[Navit]], you have to install the following packages. Navit needs and X-Server and it will run under [[QX]].&lt;br /&gt;
  # apt-get install flite&lt;br /&gt;
  # apt-get install unzip&lt;br /&gt;
The zip-package is necessary to unzip the [http://www.openmobile.nl/media/download_gallery/navit-qtm.zip navit-qtm.zip] package.  &lt;br /&gt;
  # cd /media/card&lt;br /&gt;
  # mkdir download&lt;br /&gt;
  # cd download&lt;br /&gt;
  # wget http://www.openmobile.nl/media/download_gallery/navit-qtm.zip&lt;br /&gt;
  # cd /&lt;br /&gt;
During &amp;lt;tt&amp;gt;unzip&amp;lt;/tt&amp;gt; you will be asked to replace &amp;lt;tt&amp;gt;/opt/qtmoko/bin/ppp-network&amp;lt;/tt&amp;gt;. This has to be done to solve problems with DNS over GPRS. Backup  &amp;lt;tt&amp;gt;ppp-network&amp;lt;/tt&amp;gt; file before unzipping &amp;lt;tt&amp;gt;navit-qtm.zip&amp;lt;/tt&amp;gt;. &lt;br /&gt;
  # cp /opt/qtmoko/bin/ppp-network /opt/qtmoko/bin/ppp-network.bak&lt;br /&gt;
  # unzip /media/card/download/navit-qtm.zip&lt;br /&gt;
  # rm /media/card/download/navit-qtm.zip&lt;br /&gt;
Unzipping the file will overwrite the following files too:&lt;br /&gt;
  /opt/qtmoko/etc/qx/favourites.conf&lt;br /&gt;
  /opt/qtmoko/etc/qx/profiles.conf&lt;br /&gt;
{{Note|Unzip extracts and overwrites the network settings files mentioned above. Due to this fact the usb0 MAC address changes for the USB connection to your freerunner. E.g. under Ubuntu 10.04 the new network interface for usb0 has to configure again}}&lt;br /&gt;
&lt;br /&gt;
Now you have to restart your Freerunner, but you can also try from the commandline of your neo:&lt;br /&gt;
  # echo 1 &amp;gt; /proc/sys/vm/overcommit_memory&lt;br /&gt;
After restart you can start [[Navit]] under [[QX]].&lt;br /&gt;
[[Image:QX_Navit1.png|150px|thumb|Navit in QX Main Menu]]&lt;br /&gt;
&lt;br /&gt;
===== Download Maps =====&lt;br /&gt;
Create a folder &amp;lt;tt&amp;gt;MapsNavit&amp;lt;/tt&amp;gt; on your SD card&lt;br /&gt;
  # mkdir /media/card/MapsNavit&lt;br /&gt;
The navit QT package [http://www.openmobile.nl/media/download_gallery/navit-qtm.zip navit-qtm.zip] from http://www.openmobile.nl the &amp;lt;tt&amp;gt;navit.xml&amp;lt;/tt&amp;gt; is predefined for benelux maps and will try to load &amp;lt;tt&amp;gt;osm_benelux.bin&amp;lt;/tt&amp;gt; that should be store at&lt;br /&gt;
  /media/card/MapsNavit/osm_benelux.bin&lt;br /&gt;
If you want to use map for another country you can just store a downloaded [[Navit]]-Map in that folder and rename it &amp;lt;tt&amp;gt;osm_benelux.bin&amp;lt;/tt&amp;gt;. If the map name should make sense, then you have to edit the &amp;lt;tt&amp;gt;navit.xml&amp;lt;/tt&amp;gt;. See [[Navit]]-manual for details. You can find the &amp;lt;tt&amp;gt;navit.xml&amp;lt;/tt&amp;gt; at:&lt;br /&gt;
  # /usr/share/navit/navit.xml&lt;br /&gt;
Create the folder &amp;lt;tt&amp;gt;.navit&amp;lt;/tt&amp;gt; in the home directory on your FR and copy &amp;lt;tt&amp;gt;navit.xml&amp;lt;/tt&amp;gt; to directory:&lt;br /&gt;
  # cd ~&lt;br /&gt;
  # mkdir .navit&lt;br /&gt;
  # cp /usr/share/navit/navit.xml .navit/navit.xml &lt;br /&gt;
If you have the editor &amp;lt;tt&amp;gt;vim&amp;lt;/tt&amp;gt; installed then edit the file at line 376 approx.:&lt;br /&gt;
  # vim ~/.navit/navit.xml&lt;br /&gt;
If you have downloaded the file &amp;lt;tt&amp;gt;germany.bin&amp;lt;/tt&amp;gt; your mapset-tags should look like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 &amp;lt;!-- Mapset template for openstreetmaps --&amp;gt;&lt;br /&gt;
 &amp;lt;mapset enabled=&amp;quot;yes&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;map type=&amp;quot;binfile&amp;quot; enabled=&amp;quot;yes&amp;quot; data=&amp;quot;/media/card/MapsNavit/germany.bin&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;/mapset&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
{{Note|Both MAPSET and MAP have to be  enabled to work with the OSM-map in Navit.}}&lt;br /&gt;
&lt;br /&gt;
===== Starting Navit =====&lt;br /&gt;
[[Image:QX_Navit_Launch.png|150px|thumb|Launch Navit in QX]]&lt;br /&gt;
* Open Main Menu by clicking on the green Q-Topia &amp;quot;Q&amp;quot;-Box.&lt;br /&gt;
* Open Applications (4 Boxes, red, yellow, green, blue)&lt;br /&gt;
* Scroll down and open [[QX]]&lt;br /&gt;
* Select Navit&lt;br /&gt;
* Click on the white Paper Icon on the bottom left to open the context menu of the [[QX]] application.&lt;br /&gt;
* Select Launch to start Navit.&lt;br /&gt;
* Exit with AUX-Button without stopping navit&lt;br /&gt;
&lt;br /&gt;
=== VoIP ===&lt;br /&gt;
==== Integrated VoIP-Client ====&lt;br /&gt;
QtMoko has an integrated [[VoIP]]-Client, which would be perfect to use a SIP-Account to do free of charge mobile communication world wide. But at the moment the integrated VoIP-Client does not work, due to some strange problems in Version v24 (see [http://qtmoko.org/wiki/Main_Page QtMoko-Wiki] for current status of development).&lt;br /&gt;
&lt;br /&gt;
[http://wiki.openmoko.org/wiki/Android_usage Android on Freerunner] has an integrated SIP-Client [[SipDroid]] that has strange audio problems as well (see http://sipdroid.org ). Maybe there is an underlying problem the&lt;br /&gt;
* the integrated VoIP-Client of QtMoko and&lt;br /&gt;
* [http://www.google.de/search?q=Sipdroid+Audio+Problem SIPdroid Audio] on [[Android]]&lt;br /&gt;
have in common.&lt;br /&gt;
&lt;br /&gt;
==== Twinkle/Linphone ====&lt;br /&gt;
See [[Twinkle]] for further details or the official Website [http://www.twinklephone.com/ http://www.twinklephone.com/] &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  apt-get install twinkle&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
For installation of Twinkle your need 105MB. It would be necessary to install QtMoko on MircoSD.&lt;br /&gt;
{{Error| Installation of Twinkle with apt-get stops with errors (Test: 19.11.2010)}}&lt;br /&gt;
You can use [[Linphone]] ([http://www.linphone.org http://www.linphone.org]) instead, which will use 83MB.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  apt-get install linphone&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
See additional information on the OpenMoko-[[Linphone]] page.&lt;br /&gt;
&lt;br /&gt;
== PIM Storage and Import ==&lt;br /&gt;
As visible on [http://qtmoko.org/wiki/Main_Page QtMoko-Wiki] Syncing Calendar data is not working at the moment. Some work has be done (Thanks to [http://mossroy.free.fr/ics2qtcal/ mossroy]), so that iCal-Files (ics) can be imported to your QtMoko calendar via a perlscript [http://wiki.openmoko.org/wiki/PIM_Storage#Import.2FExport_of_Calendar_Data_for_PIM-Storage ics2qtcal.pl]. Choose the current version from [http://mossroy.free.fr/ics2qtcal/ http://mossroy.free.fr/ics2qtcal/]. &lt;br /&gt;
&lt;br /&gt;
The main job of the scripts are:&lt;br /&gt;
# deleting old appointments in Qt-Calendar&lt;br /&gt;
# importing the an ics-file into the Qt-Calendar. The ics-File can be an exported  calendar in an iCal File (e.g. &amp;lt;tt&amp;gt;mycalendar.ics&amp;lt;/tt&amp;gt;) which is transfered to your Neo.&lt;br /&gt;
# import &amp;lt;tt&amp;gt;mycalendar.ics&amp;lt;/tt&amp;gt; with scripts into your SQLite Database.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Install Script===&lt;br /&gt;
The following installation script &lt;br /&gt;
* downloads the scripts and stores them into the directory &amp;lt;tt&amp;gt;/usr/local/bin/&amp;lt;/tt&amp;gt;,&lt;br /&gt;
* makes them executable,&lt;br /&gt;
* creates a file &amp;lt;tt&amp;gt;/usr/share/applications/syncal.desktop&amp;lt;/tt&amp;gt; for [[QX]] and&lt;br /&gt;
* creates a file &amp;lt;tt&amp;gt;/usr/local/bin/syncal&amp;lt;/tt&amp;gt; for starting the synchronisation. The &amp;lt;tt&amp;gt;syncal&amp;lt;/tt&amp;gt; will look like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
vUser=&amp;quot;myusername&amp;quot;&lt;br /&gt;
vPWD=&amp;quot;mypassword&amp;quot;&lt;br /&gt;
vICS1=&amp;quot;https://www.example.org/caldav/calendar1.ics&amp;quot;&lt;br /&gt;
vICS2=&amp;quot;https://www.example.org/caldav/calendar2.ics&amp;quot;&lt;br /&gt;
remotesync4ics2openmoko.sh -u $vUser -p $vPWD $vICSl $vICS2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Please edit the file &amp;lt;tt&amp;gt;syncal&amp;lt;/tt&amp;gt; and modify the username and password for accessing ics-file on a remote groupware server, where your iCal-file is stored.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
# INSTALL SCRIPT FOR ICS2QTCAL&lt;br /&gt;
# ----------------------------&lt;br /&gt;
# Edit the following variable for a new versions&lt;br /&gt;
vURL=&amp;quot;http://mossroy.free.fr/ics2qtcal/v0.4&amp;quot;&lt;br /&gt;
cd /usr/local/bin&lt;br /&gt;
wget &amp;quot;$vURL/ics2qtcal.pl&amp;quot;&lt;br /&gt;
wget &amp;quot;$vURL/ics2qtcal.sh&amp;quot;&lt;br /&gt;
wget &amp;quot;$vURL/deleteqtcalappointments.pl&amp;quot;&lt;br /&gt;
wget &amp;quot;$vURL/install_dependencies.sh&amp;quot;&lt;br /&gt;
wget &amp;quot;$vURL/remotesync4ics2openmoko.sh&amp;quot;&lt;br /&gt;
wget &amp;quot;$vURL/sync4ics2openmoko.sh&amp;quot;&lt;br /&gt;
sh ./install_dependencies.sh&lt;br /&gt;
rm ./install_dependencies.sh&lt;br /&gt;
chmod u+x *.sh&lt;br /&gt;
# insert synccal in QX-favourites and make backup of old favourites.conf&lt;br /&gt;
cd /opt/qtmoko/etc/qx/&lt;br /&gt;
cp ./favourites.conf ./favourites.conf.$$&lt;br /&gt;
cat ./favourites.conf.$$ | sed 's/list=/list=synccal, /g' | favourites.conf&lt;br /&gt;
echo &amp;quot;generate synccal.desktop&amp;quot;&lt;br /&gt;
vSyncCal=&amp;quot;/usr/share/applications/synccal.desktop&amp;quot;&lt;br /&gt;
echo &amp;quot;[Desktop Entry]&amp;quot; &amp;gt; $vSyncCal&lt;br /&gt;
echo &amp;quot;Version=1.0&amp;quot; &amp;gt;&amp;gt; $vSyncCal&lt;br /&gt;
echo &amp;quot;Name=SyncCal&amp;quot; &amp;gt;&amp;gt; $vSyncCal&lt;br /&gt;
echo &amp;quot;Name[de]=SyncCal&amp;quot; &amp;gt;&amp;gt; $vSyncCal&lt;br /&gt;
echo &amp;quot;Name[fr]=SyncCal&amp;quot; &amp;gt;&amp;gt; $vSyncCal&lt;br /&gt;
echo &amp;quot;Comment=Syncing remote and local ics-file into Qt-Calendar.&amp;quot; &amp;gt;&amp;gt; $vSyncCal&lt;br /&gt;
echo &amp;quot;Comment[de]=Script fuer den Import von ics-Dateien&amp;quot; &amp;gt;&amp;gt; $vSyncCal&lt;br /&gt;
echo &amp;quot;Exec=synccal&amp;quot; &amp;gt;&amp;gt; $vSyncCal&lt;br /&gt;
echo &amp;quot;Icon=synccal&amp;quot; &amp;gt;&amp;gt; $vSyncCal&lt;br /&gt;
echo &amp;quot;StartupNotify=true&amp;quot; &amp;gt;&amp;gt; $vSyncCal&lt;br /&gt;
echo &amp;quot;Terminal=false&amp;quot; &amp;gt;&amp;gt; $vSyncCal&lt;br /&gt;
echo &amp;quot;Type=Application&amp;quot; &amp;gt;&amp;gt; $vSyncCal&lt;br /&gt;
echo &amp;quot;Categories=GTK;Utility;Dialog;&amp;quot; &amp;gt;&amp;gt; $vSyncCal&lt;br /&gt;
echo &amp;quot;GenericName=SyncCal&amp;quot; &amp;gt;&amp;gt; $vSyncCal&lt;br /&gt;
echo &amp;quot;GenericName[de]=SyncCal&amp;quot; &amp;gt;&amp;gt; $vSyncCal&lt;br /&gt;
# Done synccal.desktop ----------&lt;br /&gt;
echo &amp;quot;Generate syncal&amp;quot;&lt;br /&gt;
vSyncCal=&amp;quot;/usr/local/bin/syncal&amp;quot;&lt;br /&gt;
echo &amp;quot;#!/bin/sh&amp;quot; &amp;gt; $vSyncCal&lt;br /&gt;
echo &amp;quot;vUser=\&amp;quot;myusername\&amp;quot;&amp;quot; &amp;gt;&amp;gt; $vSyncCal&lt;br /&gt;
echo &amp;quot;vPWD=\&amp;quot;mypassword\&amp;quot;&amp;quot; &amp;gt;&amp;gt; $vSyncCal&lt;br /&gt;
echo &amp;quot;vICS1=\&amp;quot;https://www.example.org/caldav/calendar1.ics\&amp;quot;&amp;quot; &amp;gt;&amp;gt; $vSyncCal&lt;br /&gt;
echo &amp;quot;vICS2=\&amp;quot;https://www.example.org/caldav/calendar2.ics\&amp;quot;&amp;quot; &amp;gt;&amp;gt; $vSyncCal&lt;br /&gt;
echo &amp;quot;remotesync4ics2openmoko.sh -u $vUser -p $vPWD $vICSl $vICS2&amp;quot; &amp;gt;&amp;gt; $vSyncCal&lt;br /&gt;
chmod u+x $vSyncCal&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The script adds a syncal to [[QX]]-favourites and creates a desktop-definition file  &lt;br /&gt;
  /usr/share/applications/syncal.desktop  &lt;br /&gt;
because without the desktop-definition file an application will not be visible in [[QX]]-favourites.&lt;br /&gt;
====Settings for Remote ICS-files====&lt;br /&gt;
After installation you have to edit the file &lt;br /&gt;
  /usr/local/bin/synccal&lt;br /&gt;
with your confidential username, password and file URL for the remote ics files. You can import more than one remote ICS-files, so 2 variables for file URLs are defined. Change that to your appropriate number of remote ICS-files. See &amp;lt;tt&amp;gt;remotesync4ics2openmoko.sh&amp;lt;/tt&amp;gt; for further details. If you do not want to store the password in the script for security reasons you can use [http://xdialog.free.fr xdialog] for entering the &amp;lt;tt&amp;gt;vPWD&amp;lt;/tt&amp;gt; via user interface (e.g. [http://xdialog.free.fr/inputbox.gif input box]).&lt;br /&gt;
===Setting up a Groupware Server for testing===&lt;br /&gt;
If you want to setup your own groupware server for testing on your own Linux Box, you can try [http://www.citadel.org CitaDel]. Accessing the remote ics-file are explained on the homepage of [http://www.citadel.org/doku.php/faq:favoriteclient:what_url_s_do_i_use?s=sunbird http://www.citadel.org].&lt;br /&gt;
&lt;br /&gt;
===Use Evolution iCal-file via SSHFS===&lt;br /&gt;
[http://projects.gnome.org/evolution/ Evolution] stores the calendar data in the iCal-file &amp;lt;tt&amp;gt;calendar.ics&amp;lt;/tt&amp;gt;. So you might to use the files directly.&lt;br /&gt;
&lt;br /&gt;
If you running [http://projects.gnome.org/evolution/ Evolution] on you Linux-Box you can use [http://en.wikipedia.org/wiki/SSHFS SSHFS] to mount the directory of Evolution in homedirectory e.g. in&lt;br /&gt;
  /home/username/.evolution/calendar/local/system&lt;br /&gt;
You can use the iCal-file directly by mounting the directory mentioned above on the Freerunner. Now you can used the &amp;lt;tt&amp;gt;calendar.ics&amp;lt;/tt&amp;gt; from the Linux-Box, if you mount the directory in (replace &amp;lt;tt&amp;gt;username&amp;lt;/tt&amp;gt; by your account on your Linux-Box):&lt;br /&gt;
  /mnt/remoteics&lt;br /&gt;
on your Freerunner.&lt;br /&gt;
  # mkdir /mnt/remoteics&lt;br /&gt;
  # sshfs username@example.com:/home/username/.evolution/calendar/local/system /mnt/remoteics&lt;br /&gt;
Now you can use the file &amp;lt;tt&amp;gt;calendar.ics&amp;lt;/tt&amp;gt; directly:&lt;br /&gt;
  /mnt/remoteics/calendar.ics&lt;br /&gt;
The scripts of [http://mossroy.free.fr/ics2qtcal/ Mossroy] must be modified for this, because the scripts use [http://www.gnu.org/software/wget/ wget] to download the ics-files.&lt;br /&gt;
&lt;br /&gt;
==Favorites==&lt;br /&gt;
[[Image:deletefavorites.png|200px|thumb|Delete Icons from Favorites in Task Manager]]&lt;br /&gt;
&lt;br /&gt;
===QtMoko Favorites===&lt;br /&gt;
====Add to Favorites====&lt;br /&gt;
You might prefer some applications and you use them more frequent. Then you might want them to add to your '''favorites'''. &lt;br /&gt;
* Go the application list and select (highlight, but do not start) application. &lt;br /&gt;
* click on the paper icon on bottom left and select ''Add to Favorite''. &lt;br /&gt;
Then you will have this Icon in the favorites menu (yellow star in main menu) too.&lt;br /&gt;
&lt;br /&gt;
====Delete from Favorites====&lt;br /&gt;
A bit more difficult (i.e. more hidden in QtMoko) is to delete icons from the favorites menu.&lt;br /&gt;
* start '''Task Manager''' in main menu by pressing the AUX-Button on you freerunner.&lt;br /&gt;
* You will see the list of favorites&lt;br /&gt;
* Select the application your want to remove from favorites (keep pressed for a few seconds on the application until the context menu appear. The icon you want to delete should not be selected before.&lt;br /&gt;
* select '''delete''' from context menu and the icon disappears from favorites.&lt;br /&gt;
&lt;br /&gt;
=== Adding QX Favourites ===&lt;br /&gt;
For adding Favourites in the X-Server environment see [[QX]].&lt;br /&gt;
&lt;br /&gt;
== MP3 Audio ==&lt;br /&gt;
[[Image:mediaplayer.png|200px|thumb|Media Player]]&lt;br /&gt;
=== Directory of MP3-Files ===&lt;br /&gt;
The Media-Player will expect audio MP3-file in the directory:&lt;br /&gt;
   /home/root/Documents/audio/mpeg&lt;br /&gt;
If want to store several MP3-file on your freerunner create a symbolic link of audio to your SD-card:&lt;br /&gt;
   neo# mkdir /media/card/audio&lt;br /&gt;
   neo# mkdir /media/card/audio/mpeg&lt;br /&gt;
   ln -s /media/card/audio /home/root/Documents/audio&lt;br /&gt;
Store MP3-files in /media/card/audio/mpeg&lt;br /&gt;
=== MP3-codec install ===&lt;br /&gt;
* Install &amp;lt;tt&amp;gt;codec-installer&amp;lt;/tt&amp;gt; from repository&lt;br /&gt;
* Start codec-installer&lt;br /&gt;
* Install MP3-codec&lt;br /&gt;
* reboot you freerunner&lt;br /&gt;
&lt;br /&gt;
== Error Handling and Workarounds ==&lt;br /&gt;
During the installations above, the following problem occured:&lt;br /&gt;
=== Xdialog Problem with Gdk-WARNING===&lt;br /&gt;
When encouter a GdK-Warning using Xdialog in scripts you can remove the warning with [http://www.linuxhowtos.org/System/sed_tutorial.htm sed].&lt;br /&gt;
&lt;br /&gt;
  sed 's/Gdk-WARNING ... locale not supported by C library//g&lt;br /&gt;
&lt;br /&gt;
This warning is part of the return string of an inputbox in xdialog.&lt;br /&gt;
{{Note|This application sed is a workaround. The best solution is a modifacition that removes the GdK-warning itself.}}&lt;br /&gt;
Embedded in a script [http://www.grymoire.com/Unix/Sed.html sed] will remove the warning from the input string. A example script (modified from [http://xdialog.free.fr http://xdialog.free.fr]) will work like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  #!/bin/sh&lt;br /&gt;
 &lt;br /&gt;
  Xdialog --title &amp;quot;INPUT BOX&amp;quot; \&lt;br /&gt;
     --inputbox &amp;quot;Enter URL:&amp;quot; 18 45 \&lt;br /&gt;
     &amp;quot;http://www123.Example-Test.com&amp;quot; 2&amp;gt; /tmp/inputbox.tmp.$$&lt;br /&gt;
  &lt;br /&gt;
  retval=$?&lt;br /&gt;
  input=`cat /tmp/inputbox.tmp.$$`&lt;br /&gt;
  rm -f /tmp/inputbox.tmp.$$&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  input=`echo $input | sed 's/Gdk-WARNING ... locale not supported by C library//g'`&lt;br /&gt;
  # remove invalid character from URL&lt;br /&gt;
  input=`echo $input | sed 's/[^a-zA-Z1-9\/:\. \-]//g'`&lt;br /&gt;
  &lt;br /&gt;
  case $retval in&lt;br /&gt;
    0)&lt;br /&gt;
      echo &amp;quot;Input string is '$input'&amp;quot;;;&lt;br /&gt;
    1)&lt;br /&gt;
      echo &amp;quot;Cancel pressed.&amp;quot;;;&lt;br /&gt;
    255)&lt;br /&gt;
      echo &amp;quot;Box closed.&amp;quot;;;&lt;br /&gt;
  esac&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
To test this script on your freerunner, you have to start it from the terminal in [[QX]]. Source of the xdialog script is used from [http://xdialog.free.fr http://xdialog.free.fr].&lt;br /&gt;
&lt;br /&gt;
=== Apt-Get Problem jffs2 ===&lt;br /&gt;
'''[Apt-Get] (jffs2)  Couldn't make mmap ...:''' (solved with the following [http://lists.laiskiainen.org/pipermail/apt-rpm-laiskiainen.org/2008-November/000884.html workaround])&lt;br /&gt;
If that happens regularly, create two scripts &amp;lt;tt&amp;gt;apt-start&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;apt-stop&amp;lt;/tt&amp;gt;. These scripts are used before and after &amp;lt;tt&amp;gt;apt-get&amp;lt;/tt&amp;gt; use. &lt;br /&gt;
==== Create an APT-START Script ====&lt;br /&gt;
* start &amp;lt;tt&amp;gt;vi&amp;lt;/tt&amp;gt; for the script &amp;lt;tt&amp;gt;apt-start&amp;lt;/tt&amp;gt;&lt;br /&gt;
  # vi /bin/apt-start &lt;br /&gt;
* press &amp;quot;I&amp;quot; for insert and enter the following code:&lt;br /&gt;
  #!/bin/sh&lt;br /&gt;
  mount -t tmpfs none /var/cache/apt&lt;br /&gt;
  mkdir -p /var/cache/apt/archives/partial&lt;br /&gt;
  apt-get update&lt;br /&gt;
  echo &amp;quot;apt-get can now be used&amp;quot;&lt;br /&gt;
  echo &amp;quot;stop with apt-stop&amp;quot;&lt;br /&gt;
* press ESC and then '''&amp;quot;:w&amp;quot;'''&lt;br /&gt;
* press '''&amp;quot;:q&amp;quot;''' for quit.&lt;br /&gt;
* make the script executable with chmod:&lt;br /&gt;
   chmod u+x /bin/apt-start&lt;br /&gt;
&lt;br /&gt;
==== Create an APT-STOP Script ====&lt;br /&gt;
* start &amp;lt;tt&amp;gt;vi&amp;lt;/tt&amp;gt; for the script &amp;lt;tt&amp;gt;apt-stop&amp;lt;/tt&amp;gt;.&lt;br /&gt;
  # vi /bin/apt-start &lt;br /&gt;
* press &amp;quot;I&amp;quot; for insert and enter the following code:&lt;br /&gt;
  #!/bin/sh&lt;br /&gt;
  umount /var/cache/apt&lt;br /&gt;
  echo &amp;quot;Now old settings for apt-get are restored&amp;quot;&lt;br /&gt;
* press ESC and then '''&amp;quot;:w&amp;quot;'''&lt;br /&gt;
* press &amp;quot;:q&amp;quot; for quit.&lt;br /&gt;
* make the script executable with chmod:&lt;br /&gt;
   chmod u+x /bin/apt-stop&lt;br /&gt;
&lt;br /&gt;
==== Usage of Scripts ====&lt;br /&gt;
If you to install software use the scripts before and after apt-get call:&lt;br /&gt;
  apt-start&lt;br /&gt;
  apt-get install mysoftware&lt;br /&gt;
  apt-stop&lt;br /&gt;
Replace &amp;lt;tt&amp;gt;mysoftware&amp;lt;/tt&amp;gt; with the package you want to install e.g. &amp;lt;tt&amp;gt;linphone&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* [http://qtmoko.org/wiki/Main_Page QtMoko Wiki]&lt;br /&gt;
* [http://sourceforge.net/projects/qtmoko/files/ QtMoko Download]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Qt Moko| ]]&lt;/div&gt;</summary>
		<author><name>Niebert</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/QtMoko</id>
		<title>QtMoko</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/QtMoko"/>
				<updated>2010-12-29T06:38:41Z</updated>
		
		<summary type="html">&lt;p&gt;Niebert: /* MP3 Audio */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages}}&lt;br /&gt;
QtMoko is a [[Debian]] based distribution for the [[Neo FreeRunner]]. The phone and user interface are based on [[Qt Extended Improved]] formerly known as [[Qtopia / Qt Extended on FreeRunner|Qtopia]]. The QtMoko wiki can be found [http://qtmoko.org/ here].&lt;br /&gt;
&lt;br /&gt;
===Download===&lt;br /&gt;
Further information on QtMoko and the current state of development can be found on [http://www.qtmoko.org http://www.qtmoko.org].&lt;br /&gt;
==== Sourceforge Download ====&lt;br /&gt;
Download the following files from [https://sourceforge.net/projects/qtmoko/files/ radekp download] to you desktop computer:&lt;br /&gt;
* latest&lt;br /&gt;
** https://sourceforge.net/projects/qtmoko/files/&lt;br /&gt;
==== OpenMobile.nl Download ====&lt;br /&gt;
This downloadable QtMoko-Image does not need the installation procedure of the following sections:&lt;br /&gt;
* OpenMobile Installer is a zip-file that contains images.&lt;br /&gt;
* The installation processes flashes Qi and other images&lt;br /&gt;
* you have to create to partitions 1=FAT 2=SWAP on your SD-Card (e.g. 2GB SD, Partition 1: FAT16, Partition 2: 128MB as swap - [[fdisk]] type 82)&lt;br /&gt;
* download [http://www.openmobile.nl/modules/download_gallery/dlc.php?file=54 qtm-installer-v26.zip] and unpack the file on the FAT-partition of your Mirco-SD card.&lt;br /&gt;
* Insert Mirco-SD in your freerunner and boot from SD-Card (press Power &amp;amp; AUX-Button together to get boot menue)&lt;br /&gt;
* Select boot from Mirco-SD and after 3 automatic reboots and flashing the QtMoko is installed including Navit.&lt;br /&gt;
&lt;br /&gt;
===Installation===&lt;br /&gt;
If you flash the FreeRunner with a kernel image from QtMoko, then you must install the kernel and the root file system with [http://wiki.openmoko.org/wiki/Dfu-util#Binaries_dfu-util dfu-util]. &lt;br /&gt;
{{Note|You need a fully charged Freerunner for installation.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Installation on SD card with Qi ====&lt;br /&gt;
Installing QtMoko on your microSD Card depends on the Bootloader you are using, ''uBoot'' or ''Qi''.&lt;br /&gt;
&lt;br /&gt;
If you have [[Qi]] installed then you can install QtMoko on the SD card. This seems to be useful if you want to work with different distribution and you can change the distribution just by changing the Mirco SD card in your FreeRunner. &lt;br /&gt;
{{Note|Installation in NAND-Memory with Qi is possible without errors, but with an installed bootloader [[Qi]] the boot process will terminate (with Qi installed by Android, which is modified). Install a non-Android Qi version or u-Boot instead!}}&lt;br /&gt;
&lt;br /&gt;
If you use ''Qi'', you only need an ext2 partition into your µSD Card where you uncompress the root filesystem image file [http://sourceforge.net/projects/qtmoko/files/ qtmoko-debian-v26.tar.gz]. In this case Qi Bootloader is going to look for the kernel image into the &amp;lt;tt&amp;gt;/boot&amp;lt;/tt&amp;gt; directory for file named &amp;lt;tt&amp;gt;uImage-GTA02.bin&amp;lt;/tt&amp;gt; .&lt;br /&gt;
&lt;br /&gt;
==== Installation in NAND Memory with u-Boot ====&lt;br /&gt;
If you have [[Qi]] or [http://wiki.openmoko.org/wiki/Manuals/Android Android] (with a modified Qi) installed on your Freerunner then install u-boot again as a [[bootloader]] by downloading a u-boot-binary on http://downloads.openmoko.org/distro/unstable/daily/ otherwise the boot process will terminate and you have to install u-Boot.&lt;br /&gt;
&lt;br /&gt;
All versions of the GTA02 (Neo FreeRunner) that have been sold to the public are version 5 hardware, so look for a file with &amp;quot;gta02&amp;quot; and &amp;quot;v5&amp;quot; in the name, for example:&lt;br /&gt;
[http://downloads.openmoko.org/distro/unstable/daily/om-gta02/20100131/u-boot-gta02v5-1.3.1+gitr650149a53dbdd48bf6dfef90930c8ab182adb512-r1.bin u-boot-gta02v5-1.3.1.bin] (linked U-Boot-Version from 31.Jan 2010):&lt;br /&gt;
&lt;br /&gt;
  sudo dfu-util -a u-boot -R -D u-boot-gta02v5-1.3.1.bin&lt;br /&gt;
&lt;br /&gt;
==== Installation of Kernel and Root-FS NAND-Memory ====&lt;br /&gt;
Switch off your FreeRunner and press the AUX and Power-On button at the same time. Your FreeRunner is showing the following U-Boot Menu:&lt;br /&gt;
&lt;br /&gt;
   *** BOOT MENU (NOR) ***&lt;br /&gt;
&lt;br /&gt;
   Boot&lt;br /&gt;
   Boot from Mirco SD (FAT/ext2)&lt;br /&gt;
   Set Console to USB&lt;br /&gt;
   Set Console to Serial&lt;br /&gt;
   Reboot&lt;br /&gt;
   Power Off  &lt;br /&gt;
&lt;br /&gt;
The FreeRunner will stay in this mode for only 30 sec. Within this time you have to start &amp;lt;tt&amp;gt;dfu-util&amp;lt;/tt&amp;gt;. If you want to flash the kernel image (you will need to be root on your PC) then you have to start the following command in the 30sec your see the BOOT MENU (use kernel and rootfs from [http://sourceforge.net/projects/qtmoko/files/ http://sourceforge.net/projects/qtmoko/files/]):&lt;br /&gt;
&lt;br /&gt;
 # for the Neo FreeRunner:&lt;br /&gt;
 dfu-util -d [[USB Product IDs|0x1d50:0x5119]] -a kernel -R -D  uImage-v24.bin&lt;br /&gt;
&lt;br /&gt;
and finally the root fs with this one:&lt;br /&gt;
&lt;br /&gt;
 # for the Neo FreeRunner:&lt;br /&gt;
 dfu-util -d [[USB Product IDs|0x1d50:0x5119]] -a rootfs -R -D qtmoko-debian-v24.jffs2&lt;br /&gt;
&lt;br /&gt;
====Preparations on the Connected PC/Laptop====&lt;br /&gt;
* To enable connections just by using the hostname &amp;lt;tt&amp;gt;openmoko&amp;lt;/tt&amp;gt; edit the &amp;lt;tt&amp;gt;/etc/hosts&amp;lt;/tt&amp;gt; and add line  &lt;br /&gt;
  192.168.0.202   openmoko&lt;br /&gt;
* Enable internet connection via [[USB Networking]] so that the installation of packages will be possible.&lt;br /&gt;
&lt;br /&gt;
==== First Boot ====&lt;br /&gt;
After finishing the installation without errors you have to start the FreeRunner and calibrate the  touch screen. Then you see the installed ''QtMoko'' on your device. &lt;br /&gt;
[[Image:qtmokomain.png|200px|thumb|QtMoko after first boot]]&lt;br /&gt;
&lt;br /&gt;
====First Login====&lt;br /&gt;
If you want to login to your FreeRunner set up a network connection (see [[USB Networking]]) with USB cable and start:&lt;br /&gt;
   desktop# ssh -X -l root 192.168.0.202&lt;br /&gt;
&lt;br /&gt;
The root password is empty so set it for security reason especially when you open the ssh-daemon on the WLAN network interface. Define root password as usual on a linux box with&lt;br /&gt;
   neo# passwd&lt;br /&gt;
If you have established the internet connection via USB cable then update the repository data:&lt;br /&gt;
   neo# apt-get update &lt;br /&gt;
If you want to check if the internet connection is available on your freerunner ping the OpenMoko web server with:&lt;br /&gt;
   neo# ping 88.198.93.221&lt;br /&gt;
   neo# ping wiki.openmoko.org&lt;br /&gt;
If the first ping works and the second doesn't then check the DNS server settings (see [[USB Networking]]).&lt;br /&gt;
&lt;br /&gt;
==== Setting Time and Date ====&lt;br /&gt;
Set the time and date on from your linux box with&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh root@openmoko &amp;quot;date -us @`date -u +%s`&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
sync the hardware clock with the system time to make your change persist over reboots:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# hwclock --systohc  &lt;br /&gt;
   DOES NOT WORK - no access to Hardware Clock&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
If you want to set the time with a NTP Client install the following package, if you have a network connection available (see [[USB Networking]])&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# apt-get install ntpdate&lt;br /&gt;
# ntpdate-debian&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
For further detail see [[Setting Date and Time]].&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
=== Size Root File System ===&lt;br /&gt;
If you want to install e.g. [[Twinkle]] and [[Navit]] on QtMoko the size of internal NAND memory is not sufficient (Twinkle need &amp;gt; 100MB). By creating symbolic links some memory problems can be avoided. &lt;br /&gt;
{{Note|'''(Size Root Filesystem)''' Create symbolic links from root file system to SD-card to save internal memory.If some folders are symb-linked to SD-Card (with e.g. ext2 partition), e.g.&lt;br /&gt;
  # mkdir /media/card/share&lt;br /&gt;
  # mkdir /media/card/share/navit&lt;br /&gt;
  # ln -s /media/card/share/navit /usr/share/navit &lt;br /&gt;
It recommended to use an ext2-partition. After creating symb-links install software.}}&lt;br /&gt;
&lt;br /&gt;
Consider installing QtMoko on MircroSD instead with [[Qi]], if you want to make use of debian applications that exceed NAND memory capacity.&lt;br /&gt;
&lt;br /&gt;
=== Login ===&lt;br /&gt;
If you want to login to your FreeRunner set up a network connection (see [[USB Networking]]) with USB cable and start:&lt;br /&gt;
   desktop# ssh -X -l root 192.168.0.202&lt;br /&gt;
or if hostname is defined in &amp;lt;tt&amp;gt;/etc/hosts&amp;lt;/tt&amp;gt;&lt;br /&gt;
   desktop# ssh -X -l root openmoko&lt;br /&gt;
=== Installation of Applications ===&lt;br /&gt;
If you want to install applications (e.g. &amp;lt;tt&amp;gt;myapplication&amp;lt;/tt&amp;gt;) login on your freerunner &lt;br /&gt;
  # apt-get install myapplication&lt;br /&gt;
Replace &amp;lt;tt&amp;gt;myapplication&amp;lt;/tt&amp;gt; by the package name of application name you want to start, e.g. if you want to install the command line editor &amp;lt;tt&amp;gt;vim&amp;lt;/tt&amp;gt;.&lt;br /&gt;
  # apt-get install vim&lt;br /&gt;
==== Navit ====&lt;br /&gt;
Navit installation uses Festival Lite for Speech synthesis look for the following string in navit.xml:&lt;br /&gt;
  flite -t &amp;quot;%s&amp;quot;&lt;br /&gt;
===== Navit Installation =====&lt;br /&gt;
If you want to install e.g. the application [[Navit]], you have to install the following packages. Navit needs and X-Server and it will run under [[QX]].&lt;br /&gt;
  # apt-get install flite&lt;br /&gt;
  # apt-get install unzip&lt;br /&gt;
The zip-package is necessary to unzip the [http://www.openmobile.nl/media/download_gallery/navit-qtm.zip navit-qtm.zip] package.  &lt;br /&gt;
  # cd /media/card&lt;br /&gt;
  # mkdir download&lt;br /&gt;
  # cd download&lt;br /&gt;
  # wget http://www.openmobile.nl/media/download_gallery/navit-qtm.zip&lt;br /&gt;
  # cd /&lt;br /&gt;
During &amp;lt;tt&amp;gt;unzip&amp;lt;/tt&amp;gt; you will be asked to replace &amp;lt;tt&amp;gt;/opt/qtmoko/bin/ppp-network&amp;lt;/tt&amp;gt;. This has to be done to solve problems with DNS over GPRS. Backup  &amp;lt;tt&amp;gt;ppp-network&amp;lt;/tt&amp;gt; file before unzipping &amp;lt;tt&amp;gt;navit-qtm.zip&amp;lt;/tt&amp;gt;. &lt;br /&gt;
  # cp /opt/qtmoko/bin/ppp-network /opt/qtmoko/bin/ppp-network.bak&lt;br /&gt;
  # unzip /media/card/download/navit-qtm.zip&lt;br /&gt;
  # rm /media/card/download/navit-qtm.zip&lt;br /&gt;
Unzipping the file will overwrite the following files too:&lt;br /&gt;
  /opt/qtmoko/etc/qx/favourites.conf&lt;br /&gt;
  /opt/qtmoko/etc/qx/profiles.conf&lt;br /&gt;
{{Note|Unzip extracts and overwrites the network settings files mentioned above. Due to this fact the usb0 MAC address changes for the USB connection to your freerunner. E.g. under Ubuntu 10.04 the new network interface for usb0 has to configure again}}&lt;br /&gt;
&lt;br /&gt;
Now you have to restart your Freerunner, but you can also try from the commandline of your neo:&lt;br /&gt;
  # echo 1 &amp;gt; /proc/sys/vm/overcommit_memory&lt;br /&gt;
After restart you can start [[Navit]] under [[QX]].&lt;br /&gt;
[[Image:QX_Navit1.png|150px|thumb|Navit in QX Main Menu]]&lt;br /&gt;
&lt;br /&gt;
===== Download Maps =====&lt;br /&gt;
Create a folder &amp;lt;tt&amp;gt;MapsNavit&amp;lt;/tt&amp;gt; on your SD card&lt;br /&gt;
  # mkdir /media/card/MapsNavit&lt;br /&gt;
The navit QT package [http://www.openmobile.nl/media/download_gallery/navit-qtm.zip navit-qtm.zip] from http://www.openmobile.nl the &amp;lt;tt&amp;gt;navit.xml&amp;lt;/tt&amp;gt; is predefined for benelux maps and will try to load &amp;lt;tt&amp;gt;osm_benelux.bin&amp;lt;/tt&amp;gt; that should be store at&lt;br /&gt;
  /media/card/MapsNavit/osm_benelux.bin&lt;br /&gt;
If you want to use map for another country you can just store a downloaded [[Navit]]-Map in that folder and rename it &amp;lt;tt&amp;gt;osm_benelux.bin&amp;lt;/tt&amp;gt;. If the map name should make sense, then you have to edit the &amp;lt;tt&amp;gt;navit.xml&amp;lt;/tt&amp;gt;. See [[Navit]]-manual for details. You can find the &amp;lt;tt&amp;gt;navit.xml&amp;lt;/tt&amp;gt; at:&lt;br /&gt;
  # /usr/share/navit/navit.xml&lt;br /&gt;
Create the folder &amp;lt;tt&amp;gt;.navit&amp;lt;/tt&amp;gt; in the home directory on your FR and copy &amp;lt;tt&amp;gt;navit.xml&amp;lt;/tt&amp;gt; to directory:&lt;br /&gt;
  # cd ~&lt;br /&gt;
  # mkdir .navit&lt;br /&gt;
  # cp /usr/share/navit/navit.xml .navit/navit.xml &lt;br /&gt;
If you have the editor &amp;lt;tt&amp;gt;vim&amp;lt;/tt&amp;gt; installed then edit the file at line 376 approx.:&lt;br /&gt;
  # vim ~/.navit/navit.xml&lt;br /&gt;
If you have downloaded the file &amp;lt;tt&amp;gt;germany.bin&amp;lt;/tt&amp;gt; your mapset-tags should look like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 &amp;lt;!-- Mapset template for openstreetmaps --&amp;gt;&lt;br /&gt;
 &amp;lt;mapset enabled=&amp;quot;yes&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;map type=&amp;quot;binfile&amp;quot; enabled=&amp;quot;yes&amp;quot; data=&amp;quot;/media/card/MapsNavit/germany.bin&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;/mapset&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
{{Note|Both MAPSET and MAP have to be  enabled to work with the OSM-map in Navit.}}&lt;br /&gt;
&lt;br /&gt;
===== Starting Navit =====&lt;br /&gt;
[[Image:QX_Navit_Launch.png|150px|thumb|Launch Navit in QX]]&lt;br /&gt;
* Open Main Menu by clicking on the green Q-Topia &amp;quot;Q&amp;quot;-Box.&lt;br /&gt;
* Open Applications (4 Boxes, red, yellow, green, blue)&lt;br /&gt;
* Scroll down and open [[QX]]&lt;br /&gt;
* Select Navit&lt;br /&gt;
* Click on the white Paper Icon on the bottom left to open the context menu of the [[QX]] application.&lt;br /&gt;
* Select Launch to start Navit.&lt;br /&gt;
* Exit with AUX-Button without stopping navit&lt;br /&gt;
&lt;br /&gt;
=== VoIP ===&lt;br /&gt;
==== Integrated VoIP-Client ====&lt;br /&gt;
QtMoko has an integrated [[VoIP]]-Client, which would be perfect to use a SIP-Account to do free of charge mobile communication world wide. But at the moment the integrated VoIP-Client does not work, due to some strange problems in Version v24 (see [http://qtmoko.org/wiki/Main_Page QtMoko-Wiki] for current status of development).&lt;br /&gt;
&lt;br /&gt;
[http://wiki.openmoko.org/wiki/Android_usage Android on Freerunner] has an integrated SIP-Client [[SipDroid]] that has strange audio problems as well (see http://sipdroid.org ). Maybe there is an underlying problem the&lt;br /&gt;
* the integrated VoIP-Client of QtMoko and&lt;br /&gt;
* [http://www.google.de/search?q=Sipdroid+Audio+Problem SIPdroid Audio] on [[Android]]&lt;br /&gt;
have in common.&lt;br /&gt;
&lt;br /&gt;
==== Twinkle/Linphone ====&lt;br /&gt;
See [[Twinkle]] for further details or the official Website [http://www.twinklephone.com/ http://www.twinklephone.com/] &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  apt-get install twinkle&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
For installation of Twinkle your need 105MB. It would be necessary to install QtMoko on MircoSD.&lt;br /&gt;
{{Error| Installation of Twinkle with apt-get stops with errors (Test: 19.11.2010)}}&lt;br /&gt;
You can use [[Linphone]] ([http://www.linphone.org http://www.linphone.org]) instead, which will use 83MB.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  apt-get install linphone&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
See additional information on the OpenMoko-[[Linphone]] page.&lt;br /&gt;
&lt;br /&gt;
== PIM Storage and Import ==&lt;br /&gt;
As visible on [http://qtmoko.org/wiki/Main_Page QtMoko-Wiki] Syncing Calendar data is not working at the moment. Some work has be done (Thanks to [http://mossroy.free.fr/ics2qtcal/ mossroy]), so that iCal-Files (ics) can be imported to your QtMoko calendar via a perlscript [http://wiki.openmoko.org/wiki/PIM_Storage#Import.2FExport_of_Calendar_Data_for_PIM-Storage ics2qtcal.pl]. Choose the current version from [http://mossroy.free.fr/ics2qtcal/ http://mossroy.free.fr/ics2qtcal/]. &lt;br /&gt;
&lt;br /&gt;
The main job of the scripts are:&lt;br /&gt;
# deleting old appointments in Qt-Calendar&lt;br /&gt;
# importing the an ics-file into the Qt-Calendar. The ics-File can be an exported  calendar in an iCal File (e.g. &amp;lt;tt&amp;gt;mycalendar.ics&amp;lt;/tt&amp;gt;) which is transfered to your Neo.&lt;br /&gt;
# import &amp;lt;tt&amp;gt;mycalendar.ics&amp;lt;/tt&amp;gt; with scripts into your SQLite Database.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Install Script===&lt;br /&gt;
The following installation script &lt;br /&gt;
* downloads the scripts and stores them into the directory &amp;lt;tt&amp;gt;/usr/local/bin/&amp;lt;/tt&amp;gt;,&lt;br /&gt;
* makes them executable,&lt;br /&gt;
* creates a file &amp;lt;tt&amp;gt;/usr/share/applications/syncal.desktop&amp;lt;/tt&amp;gt; for [[QX]] and&lt;br /&gt;
* creates a file &amp;lt;tt&amp;gt;/usr/local/bin/syncal&amp;lt;/tt&amp;gt; for starting the synchronisation. The &amp;lt;tt&amp;gt;syncal&amp;lt;/tt&amp;gt; will look like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
vUser=&amp;quot;myusername&amp;quot;&lt;br /&gt;
vPWD=&amp;quot;mypassword&amp;quot;&lt;br /&gt;
vICS1=&amp;quot;https://www.example.org/caldav/calendar1.ics&amp;quot;&lt;br /&gt;
vICS2=&amp;quot;https://www.example.org/caldav/calendar2.ics&amp;quot;&lt;br /&gt;
remotesync4ics2openmoko.sh -u $vUser -p $vPWD $vICSl $vICS2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Please edit the file &amp;lt;tt&amp;gt;syncal&amp;lt;/tt&amp;gt; and modify the username and password for accessing ics-file on a remote groupware server, where your iCal-file is stored.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
# INSTALL SCRIPT FOR ICS2QTCAL&lt;br /&gt;
# ----------------------------&lt;br /&gt;
# Edit the following variable for a new versions&lt;br /&gt;
vURL=&amp;quot;http://mossroy.free.fr/ics2qtcal/v0.4&amp;quot;&lt;br /&gt;
cd /usr/local/bin&lt;br /&gt;
wget &amp;quot;$vURL/ics2qtcal.pl&amp;quot;&lt;br /&gt;
wget &amp;quot;$vURL/ics2qtcal.sh&amp;quot;&lt;br /&gt;
wget &amp;quot;$vURL/deleteqtcalappointments.pl&amp;quot;&lt;br /&gt;
wget &amp;quot;$vURL/install_dependencies.sh&amp;quot;&lt;br /&gt;
wget &amp;quot;$vURL/remotesync4ics2openmoko.sh&amp;quot;&lt;br /&gt;
wget &amp;quot;$vURL/sync4ics2openmoko.sh&amp;quot;&lt;br /&gt;
sh ./install_dependencies.sh&lt;br /&gt;
rm ./install_dependencies.sh&lt;br /&gt;
chmod u+x *.sh&lt;br /&gt;
# insert synccal in QX-favourites and make backup of old favourites.conf&lt;br /&gt;
cd /opt/qtmoko/etc/qx/&lt;br /&gt;
cp ./favourites.conf ./favourites.conf.$$&lt;br /&gt;
cat ./favourites.conf.$$ | sed 's/list=/list=synccal, /g' | favourites.conf&lt;br /&gt;
echo &amp;quot;generate synccal.desktop&amp;quot;&lt;br /&gt;
vSyncCal=&amp;quot;/usr/share/applications/synccal.desktop&amp;quot;&lt;br /&gt;
echo &amp;quot;[Desktop Entry]&amp;quot; &amp;gt; $vSyncCal&lt;br /&gt;
echo &amp;quot;Version=1.0&amp;quot; &amp;gt;&amp;gt; $vSyncCal&lt;br /&gt;
echo &amp;quot;Name=SyncCal&amp;quot; &amp;gt;&amp;gt; $vSyncCal&lt;br /&gt;
echo &amp;quot;Name[de]=SyncCal&amp;quot; &amp;gt;&amp;gt; $vSyncCal&lt;br /&gt;
echo &amp;quot;Name[fr]=SyncCal&amp;quot; &amp;gt;&amp;gt; $vSyncCal&lt;br /&gt;
echo &amp;quot;Comment=Syncing remote and local ics-file into Qt-Calendar.&amp;quot; &amp;gt;&amp;gt; $vSyncCal&lt;br /&gt;
echo &amp;quot;Comment[de]=Script fuer den Import von ics-Dateien&amp;quot; &amp;gt;&amp;gt; $vSyncCal&lt;br /&gt;
echo &amp;quot;Exec=synccal&amp;quot; &amp;gt;&amp;gt; $vSyncCal&lt;br /&gt;
echo &amp;quot;Icon=synccal&amp;quot; &amp;gt;&amp;gt; $vSyncCal&lt;br /&gt;
echo &amp;quot;StartupNotify=true&amp;quot; &amp;gt;&amp;gt; $vSyncCal&lt;br /&gt;
echo &amp;quot;Terminal=false&amp;quot; &amp;gt;&amp;gt; $vSyncCal&lt;br /&gt;
echo &amp;quot;Type=Application&amp;quot; &amp;gt;&amp;gt; $vSyncCal&lt;br /&gt;
echo &amp;quot;Categories=GTK;Utility;Dialog;&amp;quot; &amp;gt;&amp;gt; $vSyncCal&lt;br /&gt;
echo &amp;quot;GenericName=SyncCal&amp;quot; &amp;gt;&amp;gt; $vSyncCal&lt;br /&gt;
echo &amp;quot;GenericName[de]=SyncCal&amp;quot; &amp;gt;&amp;gt; $vSyncCal&lt;br /&gt;
# Done synccal.desktop ----------&lt;br /&gt;
echo &amp;quot;Generate syncal&amp;quot;&lt;br /&gt;
vSyncCal=&amp;quot;/usr/local/bin/syncal&amp;quot;&lt;br /&gt;
echo &amp;quot;#!/bin/sh&amp;quot; &amp;gt; $vSyncCal&lt;br /&gt;
echo &amp;quot;vUser=\&amp;quot;myusername\&amp;quot;&amp;quot; &amp;gt;&amp;gt; $vSyncCal&lt;br /&gt;
echo &amp;quot;vPWD=\&amp;quot;mypassword\&amp;quot;&amp;quot; &amp;gt;&amp;gt; $vSyncCal&lt;br /&gt;
echo &amp;quot;vICS1=\&amp;quot;https://www.example.org/caldav/calendar1.ics\&amp;quot;&amp;quot; &amp;gt;&amp;gt; $vSyncCal&lt;br /&gt;
echo &amp;quot;vICS2=\&amp;quot;https://www.example.org/caldav/calendar2.ics\&amp;quot;&amp;quot; &amp;gt;&amp;gt; $vSyncCal&lt;br /&gt;
echo &amp;quot;remotesync4ics2openmoko.sh -u $vUser -p $vPWD $vICSl $vICS2&amp;quot; &amp;gt;&amp;gt; $vSyncCal&lt;br /&gt;
chmod u+x $vSyncCal&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The script adds a syncal to [[QX]]-favourites and creates a desktop-definition file  &lt;br /&gt;
  /usr/share/applications/syncal.desktop  &lt;br /&gt;
because without the desktop-definition file an application will not be visible in [[QX]]-favourites.&lt;br /&gt;
====Settings for Remote ICS-files====&lt;br /&gt;
After installation you have to edit the file &lt;br /&gt;
  /usr/local/bin/synccal&lt;br /&gt;
with your confidential username, password and file URL for the remote ics files. You can import more than one remote ICS-files, so 2 variables for file URLs are defined. Change that to your appropriate number of remote ICS-files. See &amp;lt;tt&amp;gt;remotesync4ics2openmoko.sh&amp;lt;/tt&amp;gt; for further details. If you do not want to store the password in the script for security reasons you can use [http://xdialog.free.fr xdialog] for entering the &amp;lt;tt&amp;gt;vPWD&amp;lt;/tt&amp;gt; via user interface (e.g. [http://xdialog.free.fr/inputbox.gif input box]).&lt;br /&gt;
===Setting up a Groupware Server for testing===&lt;br /&gt;
If you want to setup your own groupware server for testing on your own Linux Box, you can try [http://www.citadel.org CitaDel]. Accessing the remote ics-file are explained on the homepage of [http://www.citadel.org/doku.php/faq:favoriteclient:what_url_s_do_i_use?s=sunbird http://www.citadel.org].&lt;br /&gt;
&lt;br /&gt;
===Use Evolution iCal-file via SSHFS===&lt;br /&gt;
[http://projects.gnome.org/evolution/ Evolution] stores the calendar data in the iCal-file &amp;lt;tt&amp;gt;calendar.ics&amp;lt;/tt&amp;gt;. So you might to use the files directly.&lt;br /&gt;
&lt;br /&gt;
If you running [http://projects.gnome.org/evolution/ Evolution] on you Linux-Box you can use [http://en.wikipedia.org/wiki/SSHFS SSHFS] to mount the directory of Evolution in homedirectory e.g. in&lt;br /&gt;
  /home/username/.evolution/calendar/local/system&lt;br /&gt;
You can use the iCal-file directly by mounting the directory mentioned above on the Freerunner. Now you can used the &amp;lt;tt&amp;gt;calendar.ics&amp;lt;/tt&amp;gt; from the Linux-Box, if you mount the directory in (replace &amp;lt;tt&amp;gt;username&amp;lt;/tt&amp;gt; by your account on your Linux-Box):&lt;br /&gt;
  /mnt/remoteics&lt;br /&gt;
on your Freerunner.&lt;br /&gt;
  # mkdir /mnt/remoteics&lt;br /&gt;
  # sshfs username@example.com:/home/username/.evolution/calendar/local/system /mnt/remoteics&lt;br /&gt;
Now you can use the file &amp;lt;tt&amp;gt;calendar.ics&amp;lt;/tt&amp;gt; directly:&lt;br /&gt;
  /mnt/remoteics/calendar.ics&lt;br /&gt;
The scripts of [http://mossroy.free.fr/ics2qtcal/ Mossroy] must be modified for this, because the scripts use [http://www.gnu.org/software/wget/ wget] to download the ics-files.&lt;br /&gt;
&lt;br /&gt;
==Favorites==&lt;br /&gt;
[[Image:deletefavorites.png|200px|thumb|Delete Icons from Favorites in Task Manager]]&lt;br /&gt;
&lt;br /&gt;
===QtMoko Favorites===&lt;br /&gt;
====Add to Favorites====&lt;br /&gt;
You might prefer some applications and you use them more frequent. Then you might want them to add to your '''favorites'''. &lt;br /&gt;
* Go the application list and select (highlight, but do not start) application. &lt;br /&gt;
* click on the paper icon on bottom left and select ''Add to Favorite''. &lt;br /&gt;
Then you will have this Icon in the favorites menu (yellow star in main menu) too.&lt;br /&gt;
&lt;br /&gt;
====Delete from Favorites====&lt;br /&gt;
A bit more difficult (i.e. more hidden in QtMoko) is to delete icons from the favorites menu.&lt;br /&gt;
* start '''Task Manager''' in main menu by pressing the AUX-Button on you freerunner.&lt;br /&gt;
* You will see the list of favorites&lt;br /&gt;
* Select the application your want to remove from favorites (keep pressed for a few seconds on the application until the context menu appear. The icon you want to delete should not be selected before.&lt;br /&gt;
* select '''delete''' from context menu and the icon disappears from favorites.&lt;br /&gt;
&lt;br /&gt;
=== Adding QX Favourites ===&lt;br /&gt;
For adding Favourites in the X-Server environment see [[QX]].&lt;br /&gt;
&lt;br /&gt;
== MP3 Audio ==&lt;br /&gt;
=== Directory of MP3-Files ===&lt;br /&gt;
The Media-Player will expect audio MP3-file in the directory:&lt;br /&gt;
   /home/root/Documents/audio/mpeg&lt;br /&gt;
If want to store several MP3-file on your freerunner create a symbolic link of audio to your SD-card:&lt;br /&gt;
   neo# mkdir /media/card/audio&lt;br /&gt;
   neo# mkdir /media/card/audio/mpeg&lt;br /&gt;
   ln -s /media/card/audio /home/root/Documents/audio&lt;br /&gt;
Store MP3-files in /media/card/audio/mpeg&lt;br /&gt;
=== MP3-codec install ===&lt;br /&gt;
* Install &amp;lt;tt&amp;gt;codec-installer&amp;lt;/tt&amp;gt; from repository&lt;br /&gt;
* Start codec-installer&lt;br /&gt;
* Install MP3-codec&lt;br /&gt;
* reboot you freerunner&lt;br /&gt;
&lt;br /&gt;
== Error Handling and Workarounds ==&lt;br /&gt;
During the installations above, the following problem occured:&lt;br /&gt;
=== Xdialog Problem with Gdk-WARNING===&lt;br /&gt;
When encouter a GdK-Warning using Xdialog in scripts you can remove the warning with [http://www.linuxhowtos.org/System/sed_tutorial.htm sed].&lt;br /&gt;
&lt;br /&gt;
  sed 's/Gdk-WARNING ... locale not supported by C library//g&lt;br /&gt;
&lt;br /&gt;
This warning is part of the return string of an inputbox in xdialog.&lt;br /&gt;
{{Note|This application sed is a workaround. The best solution is a modifacition that removes the GdK-warning itself.}}&lt;br /&gt;
Embedded in a script [http://www.grymoire.com/Unix/Sed.html sed] will remove the warning from the input string. A example script (modified from [http://xdialog.free.fr http://xdialog.free.fr]) will work like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  #!/bin/sh&lt;br /&gt;
 &lt;br /&gt;
  Xdialog --title &amp;quot;INPUT BOX&amp;quot; \&lt;br /&gt;
     --inputbox &amp;quot;Enter URL:&amp;quot; 18 45 \&lt;br /&gt;
     &amp;quot;http://www123.Example-Test.com&amp;quot; 2&amp;gt; /tmp/inputbox.tmp.$$&lt;br /&gt;
  &lt;br /&gt;
  retval=$?&lt;br /&gt;
  input=`cat /tmp/inputbox.tmp.$$`&lt;br /&gt;
  rm -f /tmp/inputbox.tmp.$$&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  input=`echo $input | sed 's/Gdk-WARNING ... locale not supported by C library//g'`&lt;br /&gt;
  # remove invalid character from URL&lt;br /&gt;
  input=`echo $input | sed 's/[^a-zA-Z1-9\/:\. \-]//g'`&lt;br /&gt;
  &lt;br /&gt;
  case $retval in&lt;br /&gt;
    0)&lt;br /&gt;
      echo &amp;quot;Input string is '$input'&amp;quot;;;&lt;br /&gt;
    1)&lt;br /&gt;
      echo &amp;quot;Cancel pressed.&amp;quot;;;&lt;br /&gt;
    255)&lt;br /&gt;
      echo &amp;quot;Box closed.&amp;quot;;;&lt;br /&gt;
  esac&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
To test this script on your freerunner, you have to start it from the terminal in [[QX]]. Source of the xdialog script is used from [http://xdialog.free.fr http://xdialog.free.fr].&lt;br /&gt;
&lt;br /&gt;
=== Apt-Get Problem jffs2 ===&lt;br /&gt;
'''[Apt-Get] (jffs2)  Couldn't make mmap ...:''' (solved with the following [http://lists.laiskiainen.org/pipermail/apt-rpm-laiskiainen.org/2008-November/000884.html workaround])&lt;br /&gt;
If that happens regularly, create two scripts &amp;lt;tt&amp;gt;apt-start&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;apt-stop&amp;lt;/tt&amp;gt;. These scripts are used before and after &amp;lt;tt&amp;gt;apt-get&amp;lt;/tt&amp;gt; use. &lt;br /&gt;
==== Create an APT-START Script ====&lt;br /&gt;
* start &amp;lt;tt&amp;gt;vi&amp;lt;/tt&amp;gt; for the script &amp;lt;tt&amp;gt;apt-start&amp;lt;/tt&amp;gt;&lt;br /&gt;
  # vi /bin/apt-start &lt;br /&gt;
* press &amp;quot;I&amp;quot; for insert and enter the following code:&lt;br /&gt;
  #!/bin/sh&lt;br /&gt;
  mount -t tmpfs none /var/cache/apt&lt;br /&gt;
  mkdir -p /var/cache/apt/archives/partial&lt;br /&gt;
  apt-get update&lt;br /&gt;
  echo &amp;quot;apt-get can now be used&amp;quot;&lt;br /&gt;
  echo &amp;quot;stop with apt-stop&amp;quot;&lt;br /&gt;
* press ESC and then '''&amp;quot;:w&amp;quot;'''&lt;br /&gt;
* press '''&amp;quot;:q&amp;quot;''' for quit.&lt;br /&gt;
* make the script executable with chmod:&lt;br /&gt;
   chmod u+x /bin/apt-start&lt;br /&gt;
&lt;br /&gt;
==== Create an APT-STOP Script ====&lt;br /&gt;
* start &amp;lt;tt&amp;gt;vi&amp;lt;/tt&amp;gt; for the script &amp;lt;tt&amp;gt;apt-stop&amp;lt;/tt&amp;gt;.&lt;br /&gt;
  # vi /bin/apt-start &lt;br /&gt;
* press &amp;quot;I&amp;quot; for insert and enter the following code:&lt;br /&gt;
  #!/bin/sh&lt;br /&gt;
  umount /var/cache/apt&lt;br /&gt;
  echo &amp;quot;Now old settings for apt-get are restored&amp;quot;&lt;br /&gt;
* press ESC and then '''&amp;quot;:w&amp;quot;'''&lt;br /&gt;
* press &amp;quot;:q&amp;quot; for quit.&lt;br /&gt;
* make the script executable with chmod:&lt;br /&gt;
   chmod u+x /bin/apt-stop&lt;br /&gt;
&lt;br /&gt;
==== Usage of Scripts ====&lt;br /&gt;
If you to install software use the scripts before and after apt-get call:&lt;br /&gt;
  apt-start&lt;br /&gt;
  apt-get install mysoftware&lt;br /&gt;
  apt-stop&lt;br /&gt;
Replace &amp;lt;tt&amp;gt;mysoftware&amp;lt;/tt&amp;gt; with the package you want to install e.g. &amp;lt;tt&amp;gt;linphone&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* [http://qtmoko.org/wiki/Main_Page QtMoko Wiki]&lt;br /&gt;
* [http://sourceforge.net/projects/qtmoko/files/ QtMoko Download]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Qt Moko| ]]&lt;/div&gt;</summary>
		<author><name>Niebert</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/QtMoko</id>
		<title>QtMoko</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/QtMoko"/>
				<updated>2010-12-29T06:38:25Z</updated>
		
		<summary type="html">&lt;p&gt;Niebert: /* Error Handling and Workarounds */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages}}&lt;br /&gt;
QtMoko is a [[Debian]] based distribution for the [[Neo FreeRunner]]. The phone and user interface are based on [[Qt Extended Improved]] formerly known as [[Qtopia / Qt Extended on FreeRunner|Qtopia]]. The QtMoko wiki can be found [http://qtmoko.org/ here].&lt;br /&gt;
&lt;br /&gt;
===Download===&lt;br /&gt;
Further information on QtMoko and the current state of development can be found on [http://www.qtmoko.org http://www.qtmoko.org].&lt;br /&gt;
==== Sourceforge Download ====&lt;br /&gt;
Download the following files from [https://sourceforge.net/projects/qtmoko/files/ radekp download] to you desktop computer:&lt;br /&gt;
* latest&lt;br /&gt;
** https://sourceforge.net/projects/qtmoko/files/&lt;br /&gt;
==== OpenMobile.nl Download ====&lt;br /&gt;
This downloadable QtMoko-Image does not need the installation procedure of the following sections:&lt;br /&gt;
* OpenMobile Installer is a zip-file that contains images.&lt;br /&gt;
* The installation processes flashes Qi and other images&lt;br /&gt;
* you have to create to partitions 1=FAT 2=SWAP on your SD-Card (e.g. 2GB SD, Partition 1: FAT16, Partition 2: 128MB as swap - [[fdisk]] type 82)&lt;br /&gt;
* download [http://www.openmobile.nl/modules/download_gallery/dlc.php?file=54 qtm-installer-v26.zip] and unpack the file on the FAT-partition of your Mirco-SD card.&lt;br /&gt;
* Insert Mirco-SD in your freerunner and boot from SD-Card (press Power &amp;amp; AUX-Button together to get boot menue)&lt;br /&gt;
* Select boot from Mirco-SD and after 3 automatic reboots and flashing the QtMoko is installed including Navit.&lt;br /&gt;
&lt;br /&gt;
===Installation===&lt;br /&gt;
If you flash the FreeRunner with a kernel image from QtMoko, then you must install the kernel and the root file system with [http://wiki.openmoko.org/wiki/Dfu-util#Binaries_dfu-util dfu-util]. &lt;br /&gt;
{{Note|You need a fully charged Freerunner for installation.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Installation on SD card with Qi ====&lt;br /&gt;
Installing QtMoko on your microSD Card depends on the Bootloader you are using, ''uBoot'' or ''Qi''.&lt;br /&gt;
&lt;br /&gt;
If you have [[Qi]] installed then you can install QtMoko on the SD card. This seems to be useful if you want to work with different distribution and you can change the distribution just by changing the Mirco SD card in your FreeRunner. &lt;br /&gt;
{{Note|Installation in NAND-Memory with Qi is possible without errors, but with an installed bootloader [[Qi]] the boot process will terminate (with Qi installed by Android, which is modified). Install a non-Android Qi version or u-Boot instead!}}&lt;br /&gt;
&lt;br /&gt;
If you use ''Qi'', you only need an ext2 partition into your µSD Card where you uncompress the root filesystem image file [http://sourceforge.net/projects/qtmoko/files/ qtmoko-debian-v26.tar.gz]. In this case Qi Bootloader is going to look for the kernel image into the &amp;lt;tt&amp;gt;/boot&amp;lt;/tt&amp;gt; directory for file named &amp;lt;tt&amp;gt;uImage-GTA02.bin&amp;lt;/tt&amp;gt; .&lt;br /&gt;
&lt;br /&gt;
==== Installation in NAND Memory with u-Boot ====&lt;br /&gt;
If you have [[Qi]] or [http://wiki.openmoko.org/wiki/Manuals/Android Android] (with a modified Qi) installed on your Freerunner then install u-boot again as a [[bootloader]] by downloading a u-boot-binary on http://downloads.openmoko.org/distro/unstable/daily/ otherwise the boot process will terminate and you have to install u-Boot.&lt;br /&gt;
&lt;br /&gt;
All versions of the GTA02 (Neo FreeRunner) that have been sold to the public are version 5 hardware, so look for a file with &amp;quot;gta02&amp;quot; and &amp;quot;v5&amp;quot; in the name, for example:&lt;br /&gt;
[http://downloads.openmoko.org/distro/unstable/daily/om-gta02/20100131/u-boot-gta02v5-1.3.1+gitr650149a53dbdd48bf6dfef90930c8ab182adb512-r1.bin u-boot-gta02v5-1.3.1.bin] (linked U-Boot-Version from 31.Jan 2010):&lt;br /&gt;
&lt;br /&gt;
  sudo dfu-util -a u-boot -R -D u-boot-gta02v5-1.3.1.bin&lt;br /&gt;
&lt;br /&gt;
==== Installation of Kernel and Root-FS NAND-Memory ====&lt;br /&gt;
Switch off your FreeRunner and press the AUX and Power-On button at the same time. Your FreeRunner is showing the following U-Boot Menu:&lt;br /&gt;
&lt;br /&gt;
   *** BOOT MENU (NOR) ***&lt;br /&gt;
&lt;br /&gt;
   Boot&lt;br /&gt;
   Boot from Mirco SD (FAT/ext2)&lt;br /&gt;
   Set Console to USB&lt;br /&gt;
   Set Console to Serial&lt;br /&gt;
   Reboot&lt;br /&gt;
   Power Off  &lt;br /&gt;
&lt;br /&gt;
The FreeRunner will stay in this mode for only 30 sec. Within this time you have to start &amp;lt;tt&amp;gt;dfu-util&amp;lt;/tt&amp;gt;. If you want to flash the kernel image (you will need to be root on your PC) then you have to start the following command in the 30sec your see the BOOT MENU (use kernel and rootfs from [http://sourceforge.net/projects/qtmoko/files/ http://sourceforge.net/projects/qtmoko/files/]):&lt;br /&gt;
&lt;br /&gt;
 # for the Neo FreeRunner:&lt;br /&gt;
 dfu-util -d [[USB Product IDs|0x1d50:0x5119]] -a kernel -R -D  uImage-v24.bin&lt;br /&gt;
&lt;br /&gt;
and finally the root fs with this one:&lt;br /&gt;
&lt;br /&gt;
 # for the Neo FreeRunner:&lt;br /&gt;
 dfu-util -d [[USB Product IDs|0x1d50:0x5119]] -a rootfs -R -D qtmoko-debian-v24.jffs2&lt;br /&gt;
&lt;br /&gt;
====Preparations on the Connected PC/Laptop====&lt;br /&gt;
* To enable connections just by using the hostname &amp;lt;tt&amp;gt;openmoko&amp;lt;/tt&amp;gt; edit the &amp;lt;tt&amp;gt;/etc/hosts&amp;lt;/tt&amp;gt; and add line  &lt;br /&gt;
  192.168.0.202   openmoko&lt;br /&gt;
* Enable internet connection via [[USB Networking]] so that the installation of packages will be possible.&lt;br /&gt;
&lt;br /&gt;
==== First Boot ====&lt;br /&gt;
After finishing the installation without errors you have to start the FreeRunner and calibrate the  touch screen. Then you see the installed ''QtMoko'' on your device. &lt;br /&gt;
[[Image:qtmokomain.png|200px|thumb|QtMoko after first boot]]&lt;br /&gt;
&lt;br /&gt;
====First Login====&lt;br /&gt;
If you want to login to your FreeRunner set up a network connection (see [[USB Networking]]) with USB cable and start:&lt;br /&gt;
   desktop# ssh -X -l root 192.168.0.202&lt;br /&gt;
&lt;br /&gt;
The root password is empty so set it for security reason especially when you open the ssh-daemon on the WLAN network interface. Define root password as usual on a linux box with&lt;br /&gt;
   neo# passwd&lt;br /&gt;
If you have established the internet connection via USB cable then update the repository data:&lt;br /&gt;
   neo# apt-get update &lt;br /&gt;
If you want to check if the internet connection is available on your freerunner ping the OpenMoko web server with:&lt;br /&gt;
   neo# ping 88.198.93.221&lt;br /&gt;
   neo# ping wiki.openmoko.org&lt;br /&gt;
If the first ping works and the second doesn't then check the DNS server settings (see [[USB Networking]]).&lt;br /&gt;
&lt;br /&gt;
==== Setting Time and Date ====&lt;br /&gt;
Set the time and date on from your linux box with&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh root@openmoko &amp;quot;date -us @`date -u +%s`&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
sync the hardware clock with the system time to make your change persist over reboots:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# hwclock --systohc  &lt;br /&gt;
   DOES NOT WORK - no access to Hardware Clock&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
If you want to set the time with a NTP Client install the following package, if you have a network connection available (see [[USB Networking]])&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# apt-get install ntpdate&lt;br /&gt;
# ntpdate-debian&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
For further detail see [[Setting Date and Time]].&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
=== Size Root File System ===&lt;br /&gt;
If you want to install e.g. [[Twinkle]] and [[Navit]] on QtMoko the size of internal NAND memory is not sufficient (Twinkle need &amp;gt; 100MB). By creating symbolic links some memory problems can be avoided. &lt;br /&gt;
{{Note|'''(Size Root Filesystem)''' Create symbolic links from root file system to SD-card to save internal memory.If some folders are symb-linked to SD-Card (with e.g. ext2 partition), e.g.&lt;br /&gt;
  # mkdir /media/card/share&lt;br /&gt;
  # mkdir /media/card/share/navit&lt;br /&gt;
  # ln -s /media/card/share/navit /usr/share/navit &lt;br /&gt;
It recommended to use an ext2-partition. After creating symb-links install software.}}&lt;br /&gt;
&lt;br /&gt;
Consider installing QtMoko on MircroSD instead with [[Qi]], if you want to make use of debian applications that exceed NAND memory capacity.&lt;br /&gt;
&lt;br /&gt;
=== Login ===&lt;br /&gt;
If you want to login to your FreeRunner set up a network connection (see [[USB Networking]]) with USB cable and start:&lt;br /&gt;
   desktop# ssh -X -l root 192.168.0.202&lt;br /&gt;
or if hostname is defined in &amp;lt;tt&amp;gt;/etc/hosts&amp;lt;/tt&amp;gt;&lt;br /&gt;
   desktop# ssh -X -l root openmoko&lt;br /&gt;
=== Installation of Applications ===&lt;br /&gt;
If you want to install applications (e.g. &amp;lt;tt&amp;gt;myapplication&amp;lt;/tt&amp;gt;) login on your freerunner &lt;br /&gt;
  # apt-get install myapplication&lt;br /&gt;
Replace &amp;lt;tt&amp;gt;myapplication&amp;lt;/tt&amp;gt; by the package name of application name you want to start, e.g. if you want to install the command line editor &amp;lt;tt&amp;gt;vim&amp;lt;/tt&amp;gt;.&lt;br /&gt;
  # apt-get install vim&lt;br /&gt;
==== Navit ====&lt;br /&gt;
Navit installation uses Festival Lite for Speech synthesis look for the following string in navit.xml:&lt;br /&gt;
  flite -t &amp;quot;%s&amp;quot;&lt;br /&gt;
===== Navit Installation =====&lt;br /&gt;
If you want to install e.g. the application [[Navit]], you have to install the following packages. Navit needs and X-Server and it will run under [[QX]].&lt;br /&gt;
  # apt-get install flite&lt;br /&gt;
  # apt-get install unzip&lt;br /&gt;
The zip-package is necessary to unzip the [http://www.openmobile.nl/media/download_gallery/navit-qtm.zip navit-qtm.zip] package.  &lt;br /&gt;
  # cd /media/card&lt;br /&gt;
  # mkdir download&lt;br /&gt;
  # cd download&lt;br /&gt;
  # wget http://www.openmobile.nl/media/download_gallery/navit-qtm.zip&lt;br /&gt;
  # cd /&lt;br /&gt;
During &amp;lt;tt&amp;gt;unzip&amp;lt;/tt&amp;gt; you will be asked to replace &amp;lt;tt&amp;gt;/opt/qtmoko/bin/ppp-network&amp;lt;/tt&amp;gt;. This has to be done to solve problems with DNS over GPRS. Backup  &amp;lt;tt&amp;gt;ppp-network&amp;lt;/tt&amp;gt; file before unzipping &amp;lt;tt&amp;gt;navit-qtm.zip&amp;lt;/tt&amp;gt;. &lt;br /&gt;
  # cp /opt/qtmoko/bin/ppp-network /opt/qtmoko/bin/ppp-network.bak&lt;br /&gt;
  # unzip /media/card/download/navit-qtm.zip&lt;br /&gt;
  # rm /media/card/download/navit-qtm.zip&lt;br /&gt;
Unzipping the file will overwrite the following files too:&lt;br /&gt;
  /opt/qtmoko/etc/qx/favourites.conf&lt;br /&gt;
  /opt/qtmoko/etc/qx/profiles.conf&lt;br /&gt;
{{Note|Unzip extracts and overwrites the network settings files mentioned above. Due to this fact the usb0 MAC address changes for the USB connection to your freerunner. E.g. under Ubuntu 10.04 the new network interface for usb0 has to configure again}}&lt;br /&gt;
&lt;br /&gt;
Now you have to restart your Freerunner, but you can also try from the commandline of your neo:&lt;br /&gt;
  # echo 1 &amp;gt; /proc/sys/vm/overcommit_memory&lt;br /&gt;
After restart you can start [[Navit]] under [[QX]].&lt;br /&gt;
[[Image:QX_Navit1.png|150px|thumb|Navit in QX Main Menu]]&lt;br /&gt;
&lt;br /&gt;
===== Download Maps =====&lt;br /&gt;
Create a folder &amp;lt;tt&amp;gt;MapsNavit&amp;lt;/tt&amp;gt; on your SD card&lt;br /&gt;
  # mkdir /media/card/MapsNavit&lt;br /&gt;
The navit QT package [http://www.openmobile.nl/media/download_gallery/navit-qtm.zip navit-qtm.zip] from http://www.openmobile.nl the &amp;lt;tt&amp;gt;navit.xml&amp;lt;/tt&amp;gt; is predefined for benelux maps and will try to load &amp;lt;tt&amp;gt;osm_benelux.bin&amp;lt;/tt&amp;gt; that should be store at&lt;br /&gt;
  /media/card/MapsNavit/osm_benelux.bin&lt;br /&gt;
If you want to use map for another country you can just store a downloaded [[Navit]]-Map in that folder and rename it &amp;lt;tt&amp;gt;osm_benelux.bin&amp;lt;/tt&amp;gt;. If the map name should make sense, then you have to edit the &amp;lt;tt&amp;gt;navit.xml&amp;lt;/tt&amp;gt;. See [[Navit]]-manual for details. You can find the &amp;lt;tt&amp;gt;navit.xml&amp;lt;/tt&amp;gt; at:&lt;br /&gt;
  # /usr/share/navit/navit.xml&lt;br /&gt;
Create the folder &amp;lt;tt&amp;gt;.navit&amp;lt;/tt&amp;gt; in the home directory on your FR and copy &amp;lt;tt&amp;gt;navit.xml&amp;lt;/tt&amp;gt; to directory:&lt;br /&gt;
  # cd ~&lt;br /&gt;
  # mkdir .navit&lt;br /&gt;
  # cp /usr/share/navit/navit.xml .navit/navit.xml &lt;br /&gt;
If you have the editor &amp;lt;tt&amp;gt;vim&amp;lt;/tt&amp;gt; installed then edit the file at line 376 approx.:&lt;br /&gt;
  # vim ~/.navit/navit.xml&lt;br /&gt;
If you have downloaded the file &amp;lt;tt&amp;gt;germany.bin&amp;lt;/tt&amp;gt; your mapset-tags should look like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 &amp;lt;!-- Mapset template for openstreetmaps --&amp;gt;&lt;br /&gt;
 &amp;lt;mapset enabled=&amp;quot;yes&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;map type=&amp;quot;binfile&amp;quot; enabled=&amp;quot;yes&amp;quot; data=&amp;quot;/media/card/MapsNavit/germany.bin&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;/mapset&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
{{Note|Both MAPSET and MAP have to be  enabled to work with the OSM-map in Navit.}}&lt;br /&gt;
&lt;br /&gt;
===== Starting Navit =====&lt;br /&gt;
[[Image:QX_Navit_Launch.png|150px|thumb|Launch Navit in QX]]&lt;br /&gt;
* Open Main Menu by clicking on the green Q-Topia &amp;quot;Q&amp;quot;-Box.&lt;br /&gt;
* Open Applications (4 Boxes, red, yellow, green, blue)&lt;br /&gt;
* Scroll down and open [[QX]]&lt;br /&gt;
* Select Navit&lt;br /&gt;
* Click on the white Paper Icon on the bottom left to open the context menu of the [[QX]] application.&lt;br /&gt;
* Select Launch to start Navit.&lt;br /&gt;
* Exit with AUX-Button without stopping navit&lt;br /&gt;
&lt;br /&gt;
=== VoIP ===&lt;br /&gt;
==== Integrated VoIP-Client ====&lt;br /&gt;
QtMoko has an integrated [[VoIP]]-Client, which would be perfect to use a SIP-Account to do free of charge mobile communication world wide. But at the moment the integrated VoIP-Client does not work, due to some strange problems in Version v24 (see [http://qtmoko.org/wiki/Main_Page QtMoko-Wiki] for current status of development).&lt;br /&gt;
&lt;br /&gt;
[http://wiki.openmoko.org/wiki/Android_usage Android on Freerunner] has an integrated SIP-Client [[SipDroid]] that has strange audio problems as well (see http://sipdroid.org ). Maybe there is an underlying problem the&lt;br /&gt;
* the integrated VoIP-Client of QtMoko and&lt;br /&gt;
* [http://www.google.de/search?q=Sipdroid+Audio+Problem SIPdroid Audio] on [[Android]]&lt;br /&gt;
have in common.&lt;br /&gt;
&lt;br /&gt;
==== Twinkle/Linphone ====&lt;br /&gt;
See [[Twinkle]] for further details or the official Website [http://www.twinklephone.com/ http://www.twinklephone.com/] &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  apt-get install twinkle&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
For installation of Twinkle your need 105MB. It would be necessary to install QtMoko on MircoSD.&lt;br /&gt;
{{Error| Installation of Twinkle with apt-get stops with errors (Test: 19.11.2010)}}&lt;br /&gt;
You can use [[Linphone]] ([http://www.linphone.org http://www.linphone.org]) instead, which will use 83MB.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  apt-get install linphone&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
See additional information on the OpenMoko-[[Linphone]] page.&lt;br /&gt;
&lt;br /&gt;
== PIM Storage and Import ==&lt;br /&gt;
As visible on [http://qtmoko.org/wiki/Main_Page QtMoko-Wiki] Syncing Calendar data is not working at the moment. Some work has be done (Thanks to [http://mossroy.free.fr/ics2qtcal/ mossroy]), so that iCal-Files (ics) can be imported to your QtMoko calendar via a perlscript [http://wiki.openmoko.org/wiki/PIM_Storage#Import.2FExport_of_Calendar_Data_for_PIM-Storage ics2qtcal.pl]. Choose the current version from [http://mossroy.free.fr/ics2qtcal/ http://mossroy.free.fr/ics2qtcal/]. &lt;br /&gt;
&lt;br /&gt;
The main job of the scripts are:&lt;br /&gt;
# deleting old appointments in Qt-Calendar&lt;br /&gt;
# importing the an ics-file into the Qt-Calendar. The ics-File can be an exported  calendar in an iCal File (e.g. &amp;lt;tt&amp;gt;mycalendar.ics&amp;lt;/tt&amp;gt;) which is transfered to your Neo.&lt;br /&gt;
# import &amp;lt;tt&amp;gt;mycalendar.ics&amp;lt;/tt&amp;gt; with scripts into your SQLite Database.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Install Script===&lt;br /&gt;
The following installation script &lt;br /&gt;
* downloads the scripts and stores them into the directory &amp;lt;tt&amp;gt;/usr/local/bin/&amp;lt;/tt&amp;gt;,&lt;br /&gt;
* makes them executable,&lt;br /&gt;
* creates a file &amp;lt;tt&amp;gt;/usr/share/applications/syncal.desktop&amp;lt;/tt&amp;gt; for [[QX]] and&lt;br /&gt;
* creates a file &amp;lt;tt&amp;gt;/usr/local/bin/syncal&amp;lt;/tt&amp;gt; for starting the synchronisation. The &amp;lt;tt&amp;gt;syncal&amp;lt;/tt&amp;gt; will look like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
vUser=&amp;quot;myusername&amp;quot;&lt;br /&gt;
vPWD=&amp;quot;mypassword&amp;quot;&lt;br /&gt;
vICS1=&amp;quot;https://www.example.org/caldav/calendar1.ics&amp;quot;&lt;br /&gt;
vICS2=&amp;quot;https://www.example.org/caldav/calendar2.ics&amp;quot;&lt;br /&gt;
remotesync4ics2openmoko.sh -u $vUser -p $vPWD $vICSl $vICS2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Please edit the file &amp;lt;tt&amp;gt;syncal&amp;lt;/tt&amp;gt; and modify the username and password for accessing ics-file on a remote groupware server, where your iCal-file is stored.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
# INSTALL SCRIPT FOR ICS2QTCAL&lt;br /&gt;
# ----------------------------&lt;br /&gt;
# Edit the following variable for a new versions&lt;br /&gt;
vURL=&amp;quot;http://mossroy.free.fr/ics2qtcal/v0.4&amp;quot;&lt;br /&gt;
cd /usr/local/bin&lt;br /&gt;
wget &amp;quot;$vURL/ics2qtcal.pl&amp;quot;&lt;br /&gt;
wget &amp;quot;$vURL/ics2qtcal.sh&amp;quot;&lt;br /&gt;
wget &amp;quot;$vURL/deleteqtcalappointments.pl&amp;quot;&lt;br /&gt;
wget &amp;quot;$vURL/install_dependencies.sh&amp;quot;&lt;br /&gt;
wget &amp;quot;$vURL/remotesync4ics2openmoko.sh&amp;quot;&lt;br /&gt;
wget &amp;quot;$vURL/sync4ics2openmoko.sh&amp;quot;&lt;br /&gt;
sh ./install_dependencies.sh&lt;br /&gt;
rm ./install_dependencies.sh&lt;br /&gt;
chmod u+x *.sh&lt;br /&gt;
# insert synccal in QX-favourites and make backup of old favourites.conf&lt;br /&gt;
cd /opt/qtmoko/etc/qx/&lt;br /&gt;
cp ./favourites.conf ./favourites.conf.$$&lt;br /&gt;
cat ./favourites.conf.$$ | sed 's/list=/list=synccal, /g' | favourites.conf&lt;br /&gt;
echo &amp;quot;generate synccal.desktop&amp;quot;&lt;br /&gt;
vSyncCal=&amp;quot;/usr/share/applications/synccal.desktop&amp;quot;&lt;br /&gt;
echo &amp;quot;[Desktop Entry]&amp;quot; &amp;gt; $vSyncCal&lt;br /&gt;
echo &amp;quot;Version=1.0&amp;quot; &amp;gt;&amp;gt; $vSyncCal&lt;br /&gt;
echo &amp;quot;Name=SyncCal&amp;quot; &amp;gt;&amp;gt; $vSyncCal&lt;br /&gt;
echo &amp;quot;Name[de]=SyncCal&amp;quot; &amp;gt;&amp;gt; $vSyncCal&lt;br /&gt;
echo &amp;quot;Name[fr]=SyncCal&amp;quot; &amp;gt;&amp;gt; $vSyncCal&lt;br /&gt;
echo &amp;quot;Comment=Syncing remote and local ics-file into Qt-Calendar.&amp;quot; &amp;gt;&amp;gt; $vSyncCal&lt;br /&gt;
echo &amp;quot;Comment[de]=Script fuer den Import von ics-Dateien&amp;quot; &amp;gt;&amp;gt; $vSyncCal&lt;br /&gt;
echo &amp;quot;Exec=synccal&amp;quot; &amp;gt;&amp;gt; $vSyncCal&lt;br /&gt;
echo &amp;quot;Icon=synccal&amp;quot; &amp;gt;&amp;gt; $vSyncCal&lt;br /&gt;
echo &amp;quot;StartupNotify=true&amp;quot; &amp;gt;&amp;gt; $vSyncCal&lt;br /&gt;
echo &amp;quot;Terminal=false&amp;quot; &amp;gt;&amp;gt; $vSyncCal&lt;br /&gt;
echo &amp;quot;Type=Application&amp;quot; &amp;gt;&amp;gt; $vSyncCal&lt;br /&gt;
echo &amp;quot;Categories=GTK;Utility;Dialog;&amp;quot; &amp;gt;&amp;gt; $vSyncCal&lt;br /&gt;
echo &amp;quot;GenericName=SyncCal&amp;quot; &amp;gt;&amp;gt; $vSyncCal&lt;br /&gt;
echo &amp;quot;GenericName[de]=SyncCal&amp;quot; &amp;gt;&amp;gt; $vSyncCal&lt;br /&gt;
# Done synccal.desktop ----------&lt;br /&gt;
echo &amp;quot;Generate syncal&amp;quot;&lt;br /&gt;
vSyncCal=&amp;quot;/usr/local/bin/syncal&amp;quot;&lt;br /&gt;
echo &amp;quot;#!/bin/sh&amp;quot; &amp;gt; $vSyncCal&lt;br /&gt;
echo &amp;quot;vUser=\&amp;quot;myusername\&amp;quot;&amp;quot; &amp;gt;&amp;gt; $vSyncCal&lt;br /&gt;
echo &amp;quot;vPWD=\&amp;quot;mypassword\&amp;quot;&amp;quot; &amp;gt;&amp;gt; $vSyncCal&lt;br /&gt;
echo &amp;quot;vICS1=\&amp;quot;https://www.example.org/caldav/calendar1.ics\&amp;quot;&amp;quot; &amp;gt;&amp;gt; $vSyncCal&lt;br /&gt;
echo &amp;quot;vICS2=\&amp;quot;https://www.example.org/caldav/calendar2.ics\&amp;quot;&amp;quot; &amp;gt;&amp;gt; $vSyncCal&lt;br /&gt;
echo &amp;quot;remotesync4ics2openmoko.sh -u $vUser -p $vPWD $vICSl $vICS2&amp;quot; &amp;gt;&amp;gt; $vSyncCal&lt;br /&gt;
chmod u+x $vSyncCal&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The script adds a syncal to [[QX]]-favourites and creates a desktop-definition file  &lt;br /&gt;
  /usr/share/applications/syncal.desktop  &lt;br /&gt;
because without the desktop-definition file an application will not be visible in [[QX]]-favourites.&lt;br /&gt;
====Settings for Remote ICS-files====&lt;br /&gt;
After installation you have to edit the file &lt;br /&gt;
  /usr/local/bin/synccal&lt;br /&gt;
with your confidential username, password and file URL for the remote ics files. You can import more than one remote ICS-files, so 2 variables for file URLs are defined. Change that to your appropriate number of remote ICS-files. See &amp;lt;tt&amp;gt;remotesync4ics2openmoko.sh&amp;lt;/tt&amp;gt; for further details. If you do not want to store the password in the script for security reasons you can use [http://xdialog.free.fr xdialog] for entering the &amp;lt;tt&amp;gt;vPWD&amp;lt;/tt&amp;gt; via user interface (e.g. [http://xdialog.free.fr/inputbox.gif input box]).&lt;br /&gt;
===Setting up a Groupware Server for testing===&lt;br /&gt;
If you want to setup your own groupware server for testing on your own Linux Box, you can try [http://www.citadel.org CitaDel]. Accessing the remote ics-file are explained on the homepage of [http://www.citadel.org/doku.php/faq:favoriteclient:what_url_s_do_i_use?s=sunbird http://www.citadel.org].&lt;br /&gt;
&lt;br /&gt;
===Use Evolution iCal-file via SSHFS===&lt;br /&gt;
[http://projects.gnome.org/evolution/ Evolution] stores the calendar data in the iCal-file &amp;lt;tt&amp;gt;calendar.ics&amp;lt;/tt&amp;gt;. So you might to use the files directly.&lt;br /&gt;
&lt;br /&gt;
If you running [http://projects.gnome.org/evolution/ Evolution] on you Linux-Box you can use [http://en.wikipedia.org/wiki/SSHFS SSHFS] to mount the directory of Evolution in homedirectory e.g. in&lt;br /&gt;
  /home/username/.evolution/calendar/local/system&lt;br /&gt;
You can use the iCal-file directly by mounting the directory mentioned above on the Freerunner. Now you can used the &amp;lt;tt&amp;gt;calendar.ics&amp;lt;/tt&amp;gt; from the Linux-Box, if you mount the directory in (replace &amp;lt;tt&amp;gt;username&amp;lt;/tt&amp;gt; by your account on your Linux-Box):&lt;br /&gt;
  /mnt/remoteics&lt;br /&gt;
on your Freerunner.&lt;br /&gt;
  # mkdir /mnt/remoteics&lt;br /&gt;
  # sshfs username@example.com:/home/username/.evolution/calendar/local/system /mnt/remoteics&lt;br /&gt;
Now you can use the file &amp;lt;tt&amp;gt;calendar.ics&amp;lt;/tt&amp;gt; directly:&lt;br /&gt;
  /mnt/remoteics/calendar.ics&lt;br /&gt;
The scripts of [http://mossroy.free.fr/ics2qtcal/ Mossroy] must be modified for this, because the scripts use [http://www.gnu.org/software/wget/ wget] to download the ics-files.&lt;br /&gt;
&lt;br /&gt;
==Favorites==&lt;br /&gt;
[[Image:deletefavorites.png|200px|thumb|Delete Icons from Favorites in Task Manager]]&lt;br /&gt;
&lt;br /&gt;
===QtMoko Favorites===&lt;br /&gt;
====Add to Favorites====&lt;br /&gt;
You might prefer some applications and you use them more frequent. Then you might want them to add to your '''favorites'''. &lt;br /&gt;
* Go the application list and select (highlight, but do not start) application. &lt;br /&gt;
* click on the paper icon on bottom left and select ''Add to Favorite''. &lt;br /&gt;
Then you will have this Icon in the favorites menu (yellow star in main menu) too.&lt;br /&gt;
&lt;br /&gt;
====Delete from Favorites====&lt;br /&gt;
A bit more difficult (i.e. more hidden in QtMoko) is to delete icons from the favorites menu.&lt;br /&gt;
* start '''Task Manager''' in main menu by pressing the AUX-Button on you freerunner.&lt;br /&gt;
* You will see the list of favorites&lt;br /&gt;
* Select the application your want to remove from favorites (keep pressed for a few seconds on the application until the context menu appear. The icon you want to delete should not be selected before.&lt;br /&gt;
* select '''delete''' from context menu and the icon disappears from favorites.&lt;br /&gt;
&lt;br /&gt;
=== Adding QX Favourites ===&lt;br /&gt;
For adding Favourites in the X-Server environment see [[QX]].&lt;br /&gt;
&lt;br /&gt;
== MP3 Audio ==&lt;br /&gt;
=== Directory of MP3-Files&lt;br /&gt;
The Media-Player will expect audio MP3-file in the directory:&lt;br /&gt;
   /home/root/Documents/audio/mpeg&lt;br /&gt;
If want to store several MP3-file on your freerunner create a symbolic link of audio to your SD-card:&lt;br /&gt;
   neo# mkdir /media/card/audio&lt;br /&gt;
   neo# mkdir /media/card/audio/mpeg&lt;br /&gt;
   ln -s /media/card/audio /home/root/Documents/audio&lt;br /&gt;
Store MP3-files in /media/card/audio/mpeg&lt;br /&gt;
=== MP3-codec install ===&lt;br /&gt;
* Install &amp;lt;tt&amp;gt;codec-installer&amp;lt;/tt&amp;gt; from repository&lt;br /&gt;
* Start codec-installer&lt;br /&gt;
* Install MP3-codec&lt;br /&gt;
* reboot you freerunner&lt;br /&gt;
&lt;br /&gt;
== Error Handling and Workarounds ==&lt;br /&gt;
During the installations above, the following problem occured:&lt;br /&gt;
=== Xdialog Problem with Gdk-WARNING===&lt;br /&gt;
When encouter a GdK-Warning using Xdialog in scripts you can remove the warning with [http://www.linuxhowtos.org/System/sed_tutorial.htm sed].&lt;br /&gt;
&lt;br /&gt;
  sed 's/Gdk-WARNING ... locale not supported by C library//g&lt;br /&gt;
&lt;br /&gt;
This warning is part of the return string of an inputbox in xdialog.&lt;br /&gt;
{{Note|This application sed is a workaround. The best solution is a modifacition that removes the GdK-warning itself.}}&lt;br /&gt;
Embedded in a script [http://www.grymoire.com/Unix/Sed.html sed] will remove the warning from the input string. A example script (modified from [http://xdialog.free.fr http://xdialog.free.fr]) will work like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  #!/bin/sh&lt;br /&gt;
 &lt;br /&gt;
  Xdialog --title &amp;quot;INPUT BOX&amp;quot; \&lt;br /&gt;
     --inputbox &amp;quot;Enter URL:&amp;quot; 18 45 \&lt;br /&gt;
     &amp;quot;http://www123.Example-Test.com&amp;quot; 2&amp;gt; /tmp/inputbox.tmp.$$&lt;br /&gt;
  &lt;br /&gt;
  retval=$?&lt;br /&gt;
  input=`cat /tmp/inputbox.tmp.$$`&lt;br /&gt;
  rm -f /tmp/inputbox.tmp.$$&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  input=`echo $input | sed 's/Gdk-WARNING ... locale not supported by C library//g'`&lt;br /&gt;
  # remove invalid character from URL&lt;br /&gt;
  input=`echo $input | sed 's/[^a-zA-Z1-9\/:\. \-]//g'`&lt;br /&gt;
  &lt;br /&gt;
  case $retval in&lt;br /&gt;
    0)&lt;br /&gt;
      echo &amp;quot;Input string is '$input'&amp;quot;;;&lt;br /&gt;
    1)&lt;br /&gt;
      echo &amp;quot;Cancel pressed.&amp;quot;;;&lt;br /&gt;
    255)&lt;br /&gt;
      echo &amp;quot;Box closed.&amp;quot;;;&lt;br /&gt;
  esac&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
To test this script on your freerunner, you have to start it from the terminal in [[QX]]. Source of the xdialog script is used from [http://xdialog.free.fr http://xdialog.free.fr].&lt;br /&gt;
&lt;br /&gt;
=== Apt-Get Problem jffs2 ===&lt;br /&gt;
'''[Apt-Get] (jffs2)  Couldn't make mmap ...:''' (solved with the following [http://lists.laiskiainen.org/pipermail/apt-rpm-laiskiainen.org/2008-November/000884.html workaround])&lt;br /&gt;
If that happens regularly, create two scripts &amp;lt;tt&amp;gt;apt-start&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;apt-stop&amp;lt;/tt&amp;gt;. These scripts are used before and after &amp;lt;tt&amp;gt;apt-get&amp;lt;/tt&amp;gt; use. &lt;br /&gt;
==== Create an APT-START Script ====&lt;br /&gt;
* start &amp;lt;tt&amp;gt;vi&amp;lt;/tt&amp;gt; for the script &amp;lt;tt&amp;gt;apt-start&amp;lt;/tt&amp;gt;&lt;br /&gt;
  # vi /bin/apt-start &lt;br /&gt;
* press &amp;quot;I&amp;quot; for insert and enter the following code:&lt;br /&gt;
  #!/bin/sh&lt;br /&gt;
  mount -t tmpfs none /var/cache/apt&lt;br /&gt;
  mkdir -p /var/cache/apt/archives/partial&lt;br /&gt;
  apt-get update&lt;br /&gt;
  echo &amp;quot;apt-get can now be used&amp;quot;&lt;br /&gt;
  echo &amp;quot;stop with apt-stop&amp;quot;&lt;br /&gt;
* press ESC and then '''&amp;quot;:w&amp;quot;'''&lt;br /&gt;
* press '''&amp;quot;:q&amp;quot;''' for quit.&lt;br /&gt;
* make the script executable with chmod:&lt;br /&gt;
   chmod u+x /bin/apt-start&lt;br /&gt;
&lt;br /&gt;
==== Create an APT-STOP Script ====&lt;br /&gt;
* start &amp;lt;tt&amp;gt;vi&amp;lt;/tt&amp;gt; for the script &amp;lt;tt&amp;gt;apt-stop&amp;lt;/tt&amp;gt;.&lt;br /&gt;
  # vi /bin/apt-start &lt;br /&gt;
* press &amp;quot;I&amp;quot; for insert and enter the following code:&lt;br /&gt;
  #!/bin/sh&lt;br /&gt;
  umount /var/cache/apt&lt;br /&gt;
  echo &amp;quot;Now old settings for apt-get are restored&amp;quot;&lt;br /&gt;
* press ESC and then '''&amp;quot;:w&amp;quot;'''&lt;br /&gt;
* press &amp;quot;:q&amp;quot; for quit.&lt;br /&gt;
* make the script executable with chmod:&lt;br /&gt;
   chmod u+x /bin/apt-stop&lt;br /&gt;
&lt;br /&gt;
==== Usage of Scripts ====&lt;br /&gt;
If you to install software use the scripts before and after apt-get call:&lt;br /&gt;
  apt-start&lt;br /&gt;
  apt-get install mysoftware&lt;br /&gt;
  apt-stop&lt;br /&gt;
Replace &amp;lt;tt&amp;gt;mysoftware&amp;lt;/tt&amp;gt; with the package you want to install e.g. &amp;lt;tt&amp;gt;linphone&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* [http://qtmoko.org/wiki/Main_Page QtMoko Wiki]&lt;br /&gt;
* [http://sourceforge.net/projects/qtmoko/files/ QtMoko Download]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Qt Moko| ]]&lt;/div&gt;</summary>
		<author><name>Niebert</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Manuals</id>
		<title>Manuals</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Manuals"/>
				<updated>2010-12-29T06:05:11Z</updated>
		
		<summary type="html">&lt;p&gt;Niebert: /* Distributions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|Manuals}}&lt;br /&gt;
&lt;br /&gt;
==Devices==&lt;br /&gt;
&lt;br /&gt;
*[[Manuals/Neo FreeRunner]]&lt;br /&gt;
*[[Manuals/Neo 1973]]&lt;br /&gt;
&lt;br /&gt;
==Distributions==&lt;br /&gt;
&lt;br /&gt;
*[[Manuals/SHR]]&lt;br /&gt;
*[[Manuals/Android]]&lt;br /&gt;
*[[Manuals/QtMoko]]&lt;br /&gt;
*[[Manuals/Om 2008]]&lt;br /&gt;
*[[Manuals/Om 2007.2]]&lt;br /&gt;
*[[Manuals/Om 2009]]&lt;br /&gt;
&lt;br /&gt;
==Applications==&lt;br /&gt;
&lt;br /&gt;
*[[Manuals/Zhone]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Manuals| ]]&lt;/div&gt;</summary>
		<author><name>Niebert</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/QtMoko</id>
		<title>QtMoko</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/QtMoko"/>
				<updated>2010-12-28T14:49:39Z</updated>
		
		<summary type="html">&lt;p&gt;Niebert: /* Navit */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages}}&lt;br /&gt;
QtMoko is a [[Debian]] based distribution for the [[Neo FreeRunner]]. The phone and user interface are based on [[Qt Extended Improved]] formerly known as [[Qtopia / Qt Extended on FreeRunner|Qtopia]]. The QtMoko wiki can be found [http://qtmoko.org/ here].&lt;br /&gt;
&lt;br /&gt;
===Download===&lt;br /&gt;
Further information on QtMoko and the current state of development can be found on [http://www.qtmoko.org http://www.qtmoko.org].&lt;br /&gt;
==== Sourceforge Download ====&lt;br /&gt;
Download the following files from [https://sourceforge.net/projects/qtmoko/files/ radekp download] to you desktop computer:&lt;br /&gt;
* latest&lt;br /&gt;
** https://sourceforge.net/projects/qtmoko/files/&lt;br /&gt;
==== OpenMobile.nl Download ====&lt;br /&gt;
This downloadable QtMoko-Image does not need the installation procedure of the following sections:&lt;br /&gt;
* OpenMobile Installer is a zip-file that contains images.&lt;br /&gt;
* The installation processes flashes Qi and other images&lt;br /&gt;
* you have to create to partitions 1=FAT 2=SWAP on your SD-Card (e.g. 2GB SD, Partition 1: FAT16, Partition 2: 128MB as swap - [[fdisk]] type 82)&lt;br /&gt;
* download [http://www.openmobile.nl/modules/download_gallery/dlc.php?file=54 qtm-installer-v26.zip] and unpack the file on the FAT-partition of your Mirco-SD card.&lt;br /&gt;
* Insert Mirco-SD in your freerunner and boot from SD-Card (press Power &amp;amp; AUX-Button together to get boot menue)&lt;br /&gt;
* Select boot from Mirco-SD and after 3 automatic reboots and flashing the QtMoko is installed including Navit.&lt;br /&gt;
&lt;br /&gt;
===Installation===&lt;br /&gt;
If you flash the FreeRunner with a kernel image from QtMoko, then you must install the kernel and the root file system with [http://wiki.openmoko.org/wiki/Dfu-util#Binaries_dfu-util dfu-util]. &lt;br /&gt;
{{Note|You need a fully charged Freerunner for installation.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Installation on SD card with Qi ====&lt;br /&gt;
Installing QtMoko on your microSD Card depends on the Bootloader you are using, ''uBoot'' or ''Qi''.&lt;br /&gt;
&lt;br /&gt;
If you have [[Qi]] installed then you can install QtMoko on the SD card. This seems to be useful if you want to work with different distribution and you can change the distribution just by changing the Mirco SD card in your FreeRunner. &lt;br /&gt;
{{Note|Installation in NAND-Memory with Qi is possible without errors, but with an installed bootloader [[Qi]] the boot process will terminate (with Qi installed by Android, which is modified). Install a non-Android Qi version or u-Boot instead!}}&lt;br /&gt;
&lt;br /&gt;
If you use ''Qi'', you only need an ext2 partition into your µSD Card where you uncompress the root filesystem image file [http://sourceforge.net/projects/qtmoko/files/ qtmoko-debian-v26.tar.gz]. In this case Qi Bootloader is going to look for the kernel image into the &amp;lt;tt&amp;gt;/boot&amp;lt;/tt&amp;gt; directory for file named &amp;lt;tt&amp;gt;uImage-GTA02.bin&amp;lt;/tt&amp;gt; .&lt;br /&gt;
&lt;br /&gt;
==== Installation in NAND Memory with u-Boot ====&lt;br /&gt;
If you have [[Qi]] or [http://wiki.openmoko.org/wiki/Manuals/Android Android] (with a modified Qi) installed on your Freerunner then install u-boot again as a [[bootloader]] by downloading a u-boot-binary on http://downloads.openmoko.org/distro/unstable/daily/ otherwise the boot process will terminate and you have to install u-Boot.&lt;br /&gt;
&lt;br /&gt;
All versions of the GTA02 (Neo FreeRunner) that have been sold to the public are version 5 hardware, so look for a file with &amp;quot;gta02&amp;quot; and &amp;quot;v5&amp;quot; in the name, for example:&lt;br /&gt;
[http://downloads.openmoko.org/distro/unstable/daily/om-gta02/20100131/u-boot-gta02v5-1.3.1+gitr650149a53dbdd48bf6dfef90930c8ab182adb512-r1.bin u-boot-gta02v5-1.3.1.bin] (linked U-Boot-Version from 31.Jan 2010):&lt;br /&gt;
&lt;br /&gt;
  sudo dfu-util -a u-boot -R -D u-boot-gta02v5-1.3.1.bin&lt;br /&gt;
&lt;br /&gt;
==== Installation of Kernel and Root-FS NAND-Memory ====&lt;br /&gt;
Switch off your FreeRunner and press the AUX and Power-On button at the same time. Your FreeRunner is showing the following U-Boot Menu:&lt;br /&gt;
&lt;br /&gt;
   *** BOOT MENU (NOR) ***&lt;br /&gt;
&lt;br /&gt;
   Boot&lt;br /&gt;
   Boot from Mirco SD (FAT/ext2)&lt;br /&gt;
   Set Console to USB&lt;br /&gt;
   Set Console to Serial&lt;br /&gt;
   Reboot&lt;br /&gt;
   Power Off  &lt;br /&gt;
&lt;br /&gt;
The FreeRunner will stay in this mode for only 30 sec. Within this time you have to start &amp;lt;tt&amp;gt;dfu-util&amp;lt;/tt&amp;gt;. If you want to flash the kernel image (you will need to be root on your PC) then you have to start the following command in the 30sec your see the BOOT MENU (use kernel and rootfs from [http://sourceforge.net/projects/qtmoko/files/ http://sourceforge.net/projects/qtmoko/files/]):&lt;br /&gt;
&lt;br /&gt;
 # for the Neo FreeRunner:&lt;br /&gt;
 dfu-util -d [[USB Product IDs|0x1d50:0x5119]] -a kernel -R -D  uImage-v24.bin&lt;br /&gt;
&lt;br /&gt;
and finally the root fs with this one:&lt;br /&gt;
&lt;br /&gt;
 # for the Neo FreeRunner:&lt;br /&gt;
 dfu-util -d [[USB Product IDs|0x1d50:0x5119]] -a rootfs -R -D qtmoko-debian-v24.jffs2&lt;br /&gt;
&lt;br /&gt;
====Preparations on the Connected PC/Laptop====&lt;br /&gt;
* To enable connections just by using the hostname &amp;lt;tt&amp;gt;openmoko&amp;lt;/tt&amp;gt; edit the &amp;lt;tt&amp;gt;/etc/hosts&amp;lt;/tt&amp;gt; and add line  &lt;br /&gt;
  192.168.0.202   openmoko&lt;br /&gt;
* Enable internet connection via [[USB Networking]] so that the installation of packages will be possible.&lt;br /&gt;
&lt;br /&gt;
==== First Boot ====&lt;br /&gt;
After finishing the installation without errors you have to start the FreeRunner and calibrate the  touch screen. Then you see the installed ''QtMoko'' on your device. &lt;br /&gt;
[[Image:qtmokomain.png|200px|thumb|QtMoko after first boot]]&lt;br /&gt;
&lt;br /&gt;
====First Login====&lt;br /&gt;
If you want to login to your FreeRunner set up a network connection (see [[USB Networking]]) with USB cable and start:&lt;br /&gt;
   desktop# ssh -X -l root 192.168.0.202&lt;br /&gt;
&lt;br /&gt;
The root password is empty so set it for security reason especially when you open the ssh-daemon on the WLAN network interface. Define root password as usual on a linux box with&lt;br /&gt;
   neo# passwd&lt;br /&gt;
If you have established the internet connection via USB cable then update the repository data:&lt;br /&gt;
   neo# apt-get update &lt;br /&gt;
If you want to check if the internet connection is available on your freerunner ping the OpenMoko web server with:&lt;br /&gt;
   neo# ping 88.198.93.221&lt;br /&gt;
   neo# ping wiki.openmoko.org&lt;br /&gt;
If the first ping works and the second doesn't then check the DNS server settings (see [[USB Networking]]).&lt;br /&gt;
&lt;br /&gt;
==== Setting Time and Date ====&lt;br /&gt;
Set the time and date on from your linux box with&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh root@openmoko &amp;quot;date -us @`date -u +%s`&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
sync the hardware clock with the system time to make your change persist over reboots:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# hwclock --systohc  &lt;br /&gt;
   DOES NOT WORK - no access to Hardware Clock&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
If you want to set the time with a NTP Client install the following package, if you have a network connection available (see [[USB Networking]])&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# apt-get install ntpdate&lt;br /&gt;
# ntpdate-debian&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
For further detail see [[Setting Date and Time]].&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
=== Size Root File System ===&lt;br /&gt;
If you want to install e.g. [[Twinkle]] and [[Navit]] on QtMoko the size of internal NAND memory is not sufficient (Twinkle need &amp;gt; 100MB). By creating symbolic links some memory problems can be avoided. &lt;br /&gt;
{{Note|'''(Size Root Filesystem)''' Create symbolic links from root file system to SD-card to save internal memory.If some folders are symb-linked to SD-Card (with e.g. ext2 partition), e.g.&lt;br /&gt;
  # mkdir /media/card/share&lt;br /&gt;
  # mkdir /media/card/share/navit&lt;br /&gt;
  # ln -s /media/card/share/navit /usr/share/navit &lt;br /&gt;
It recommended to use an ext2-partition. After creating symb-links install software.}}&lt;br /&gt;
&lt;br /&gt;
Consider installing QtMoko on MircroSD instead with [[Qi]], if you want to make use of debian applications that exceed NAND memory capacity.&lt;br /&gt;
&lt;br /&gt;
=== Login ===&lt;br /&gt;
If you want to login to your FreeRunner set up a network connection (see [[USB Networking]]) with USB cable and start:&lt;br /&gt;
   desktop# ssh -X -l root 192.168.0.202&lt;br /&gt;
or if hostname is defined in &amp;lt;tt&amp;gt;/etc/hosts&amp;lt;/tt&amp;gt;&lt;br /&gt;
   desktop# ssh -X -l root openmoko&lt;br /&gt;
=== Installation of Applications ===&lt;br /&gt;
If you want to install applications (e.g. &amp;lt;tt&amp;gt;myapplication&amp;lt;/tt&amp;gt;) login on your freerunner &lt;br /&gt;
  # apt-get install myapplication&lt;br /&gt;
Replace &amp;lt;tt&amp;gt;myapplication&amp;lt;/tt&amp;gt; by the package name of application name you want to start, e.g. if you want to install the command line editor &amp;lt;tt&amp;gt;vim&amp;lt;/tt&amp;gt;.&lt;br /&gt;
  # apt-get install vim&lt;br /&gt;
==== Navit ====&lt;br /&gt;
Navit installation uses Festival Lite for Speech synthesis look for the following string in navit.xml:&lt;br /&gt;
  flite -t &amp;quot;%s&amp;quot;&lt;br /&gt;
===== Navit Installation =====&lt;br /&gt;
If you want to install e.g. the application [[Navit]], you have to install the following packages. Navit needs and X-Server and it will run under [[QX]].&lt;br /&gt;
  # apt-get install flite&lt;br /&gt;
  # apt-get install unzip&lt;br /&gt;
The zip-package is necessary to unzip the [http://www.openmobile.nl/media/download_gallery/navit-qtm.zip navit-qtm.zip] package.  &lt;br /&gt;
  # cd /media/card&lt;br /&gt;
  # mkdir download&lt;br /&gt;
  # cd download&lt;br /&gt;
  # wget http://www.openmobile.nl/media/download_gallery/navit-qtm.zip&lt;br /&gt;
  # cd /&lt;br /&gt;
During &amp;lt;tt&amp;gt;unzip&amp;lt;/tt&amp;gt; you will be asked to replace &amp;lt;tt&amp;gt;/opt/qtmoko/bin/ppp-network&amp;lt;/tt&amp;gt;. This has to be done to solve problems with DNS over GPRS. Backup  &amp;lt;tt&amp;gt;ppp-network&amp;lt;/tt&amp;gt; file before unzipping &amp;lt;tt&amp;gt;navit-qtm.zip&amp;lt;/tt&amp;gt;. &lt;br /&gt;
  # cp /opt/qtmoko/bin/ppp-network /opt/qtmoko/bin/ppp-network.bak&lt;br /&gt;
  # unzip /media/card/download/navit-qtm.zip&lt;br /&gt;
  # rm /media/card/download/navit-qtm.zip&lt;br /&gt;
Unzipping the file will overwrite the following files too:&lt;br /&gt;
  /opt/qtmoko/etc/qx/favourites.conf&lt;br /&gt;
  /opt/qtmoko/etc/qx/profiles.conf&lt;br /&gt;
{{Note|Unzip extracts and overwrites the network settings files mentioned above. Due to this fact the usb0 MAC address changes for the USB connection to your freerunner. E.g. under Ubuntu 10.04 the new network interface for usb0 has to configure again}}&lt;br /&gt;
&lt;br /&gt;
Now you have to restart your Freerunner, but you can also try from the commandline of your neo:&lt;br /&gt;
  # echo 1 &amp;gt; /proc/sys/vm/overcommit_memory&lt;br /&gt;
After restart you can start [[Navit]] under [[QX]].&lt;br /&gt;
[[Image:QX_Navit1.png|150px|thumb|Navit in QX Main Menu]]&lt;br /&gt;
&lt;br /&gt;
===== Download Maps =====&lt;br /&gt;
Create a folder &amp;lt;tt&amp;gt;MapsNavit&amp;lt;/tt&amp;gt; on your SD card&lt;br /&gt;
  # mkdir /media/card/MapsNavit&lt;br /&gt;
The navit QT package [http://www.openmobile.nl/media/download_gallery/navit-qtm.zip navit-qtm.zip] from http://www.openmobile.nl the &amp;lt;tt&amp;gt;navit.xml&amp;lt;/tt&amp;gt; is predefined for benelux maps and will try to load &amp;lt;tt&amp;gt;osm_benelux.bin&amp;lt;/tt&amp;gt; that should be store at&lt;br /&gt;
  /media/card/MapsNavit/osm_benelux.bin&lt;br /&gt;
If you want to use map for another country you can just store a downloaded [[Navit]]-Map in that folder and rename it &amp;lt;tt&amp;gt;osm_benelux.bin&amp;lt;/tt&amp;gt;. If the map name should make sense, then you have to edit the &amp;lt;tt&amp;gt;navit.xml&amp;lt;/tt&amp;gt;. See [[Navit]]-manual for details. You can find the &amp;lt;tt&amp;gt;navit.xml&amp;lt;/tt&amp;gt; at:&lt;br /&gt;
  # /usr/share/navit/navit.xml&lt;br /&gt;
Create the folder &amp;lt;tt&amp;gt;.navit&amp;lt;/tt&amp;gt; in the home directory on your FR and copy &amp;lt;tt&amp;gt;navit.xml&amp;lt;/tt&amp;gt; to directory:&lt;br /&gt;
  # cd ~&lt;br /&gt;
  # mkdir .navit&lt;br /&gt;
  # cp /usr/share/navit/navit.xml .navit/navit.xml &lt;br /&gt;
If you have the editor &amp;lt;tt&amp;gt;vim&amp;lt;/tt&amp;gt; installed then edit the file at line 376 approx.:&lt;br /&gt;
  # vim ~/.navit/navit.xml&lt;br /&gt;
If you have downloaded the file &amp;lt;tt&amp;gt;germany.bin&amp;lt;/tt&amp;gt; your mapset-tags should look like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 &amp;lt;!-- Mapset template for openstreetmaps --&amp;gt;&lt;br /&gt;
 &amp;lt;mapset enabled=&amp;quot;yes&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;map type=&amp;quot;binfile&amp;quot; enabled=&amp;quot;yes&amp;quot; data=&amp;quot;/media/card/MapsNavit/germany.bin&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;/mapset&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
{{Note|Both MAPSET and MAP have to be  enabled to work with the OSM-map in Navit.}}&lt;br /&gt;
&lt;br /&gt;
===== Starting Navit =====&lt;br /&gt;
[[Image:QX_Navit_Launch.png|150px|thumb|Launch Navit in QX]]&lt;br /&gt;
* Open Main Menu by clicking on the green Q-Topia &amp;quot;Q&amp;quot;-Box.&lt;br /&gt;
* Open Applications (4 Boxes, red, yellow, green, blue)&lt;br /&gt;
* Scroll down and open [[QX]]&lt;br /&gt;
* Select Navit&lt;br /&gt;
* Click on the white Paper Icon on the bottom left to open the context menu of the [[QX]] application.&lt;br /&gt;
* Select Launch to start Navit.&lt;br /&gt;
* Exit with AUX-Button without stopping navit&lt;br /&gt;
&lt;br /&gt;
=== VoIP ===&lt;br /&gt;
==== Integrated VoIP-Client ====&lt;br /&gt;
QtMoko has an integrated [[VoIP]]-Client, which would be perfect to use a SIP-Account to do free of charge mobile communication world wide. But at the moment the integrated VoIP-Client does not work, due to some strange problems in Version v24 (see [http://qtmoko.org/wiki/Main_Page QtMoko-Wiki] for current status of development).&lt;br /&gt;
&lt;br /&gt;
[http://wiki.openmoko.org/wiki/Android_usage Android on Freerunner] has an integrated SIP-Client [[SipDroid]] that has strange audio problems as well (see http://sipdroid.org ). Maybe there is an underlying problem the&lt;br /&gt;
* the integrated VoIP-Client of QtMoko and&lt;br /&gt;
* [http://www.google.de/search?q=Sipdroid+Audio+Problem SIPdroid Audio] on [[Android]]&lt;br /&gt;
have in common.&lt;br /&gt;
&lt;br /&gt;
==== Twinkle/Linphone ====&lt;br /&gt;
See [[Twinkle]] for further details or the official Website [http://www.twinklephone.com/ http://www.twinklephone.com/] &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  apt-get install twinkle&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
For installation of Twinkle your need 105MB. It would be necessary to install QtMoko on MircoSD.&lt;br /&gt;
{{Error| Installation of Twinkle with apt-get stops with errors (Test: 19.11.2010)}}&lt;br /&gt;
You can use [[Linphone]] ([http://www.linphone.org http://www.linphone.org]) instead, which will use 83MB.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  apt-get install linphone&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
See additional information on the OpenMoko-[[Linphone]] page.&lt;br /&gt;
&lt;br /&gt;
== PIM Storage and Import ==&lt;br /&gt;
As visible on [http://qtmoko.org/wiki/Main_Page QtMoko-Wiki] Syncing Calendar data is not working at the moment. Some work has be done (Thanks to [http://mossroy.free.fr/ics2qtcal/ mossroy]), so that iCal-Files (ics) can be imported to your QtMoko calendar via a perlscript [http://wiki.openmoko.org/wiki/PIM_Storage#Import.2FExport_of_Calendar_Data_for_PIM-Storage ics2qtcal.pl]. Choose the current version from [http://mossroy.free.fr/ics2qtcal/ http://mossroy.free.fr/ics2qtcal/]. &lt;br /&gt;
&lt;br /&gt;
The main job of the scripts are:&lt;br /&gt;
# deleting old appointments in Qt-Calendar&lt;br /&gt;
# importing the an ics-file into the Qt-Calendar. The ics-File can be an exported  calendar in an iCal File (e.g. &amp;lt;tt&amp;gt;mycalendar.ics&amp;lt;/tt&amp;gt;) which is transfered to your Neo.&lt;br /&gt;
# import &amp;lt;tt&amp;gt;mycalendar.ics&amp;lt;/tt&amp;gt; with scripts into your SQLite Database.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Install Script===&lt;br /&gt;
The following installation script &lt;br /&gt;
* downloads the scripts and stores them into the directory &amp;lt;tt&amp;gt;/usr/local/bin/&amp;lt;/tt&amp;gt;,&lt;br /&gt;
* makes them executable,&lt;br /&gt;
* creates a file &amp;lt;tt&amp;gt;/usr/share/applications/syncal.desktop&amp;lt;/tt&amp;gt; for [[QX]] and&lt;br /&gt;
* creates a file &amp;lt;tt&amp;gt;/usr/local/bin/syncal&amp;lt;/tt&amp;gt; for starting the synchronisation. The &amp;lt;tt&amp;gt;syncal&amp;lt;/tt&amp;gt; will look like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
vUser=&amp;quot;myusername&amp;quot;&lt;br /&gt;
vPWD=&amp;quot;mypassword&amp;quot;&lt;br /&gt;
vICS1=&amp;quot;https://www.example.org/caldav/calendar1.ics&amp;quot;&lt;br /&gt;
vICS2=&amp;quot;https://www.example.org/caldav/calendar2.ics&amp;quot;&lt;br /&gt;
remotesync4ics2openmoko.sh -u $vUser -p $vPWD $vICSl $vICS2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Please edit the file &amp;lt;tt&amp;gt;syncal&amp;lt;/tt&amp;gt; and modify the username and password for accessing ics-file on a remote groupware server, where your iCal-file is stored.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
# INSTALL SCRIPT FOR ICS2QTCAL&lt;br /&gt;
# ----------------------------&lt;br /&gt;
# Edit the following variable for a new versions&lt;br /&gt;
vURL=&amp;quot;http://mossroy.free.fr/ics2qtcal/v0.4&amp;quot;&lt;br /&gt;
cd /usr/local/bin&lt;br /&gt;
wget &amp;quot;$vURL/ics2qtcal.pl&amp;quot;&lt;br /&gt;
wget &amp;quot;$vURL/ics2qtcal.sh&amp;quot;&lt;br /&gt;
wget &amp;quot;$vURL/deleteqtcalappointments.pl&amp;quot;&lt;br /&gt;
wget &amp;quot;$vURL/install_dependencies.sh&amp;quot;&lt;br /&gt;
wget &amp;quot;$vURL/remotesync4ics2openmoko.sh&amp;quot;&lt;br /&gt;
wget &amp;quot;$vURL/sync4ics2openmoko.sh&amp;quot;&lt;br /&gt;
sh ./install_dependencies.sh&lt;br /&gt;
rm ./install_dependencies.sh&lt;br /&gt;
chmod u+x *.sh&lt;br /&gt;
# insert synccal in QX-favourites and make backup of old favourites.conf&lt;br /&gt;
cd /opt/qtmoko/etc/qx/&lt;br /&gt;
cp ./favourites.conf ./favourites.conf.$$&lt;br /&gt;
cat ./favourites.conf.$$ | sed 's/list=/list=synccal, /g' | favourites.conf&lt;br /&gt;
echo &amp;quot;generate synccal.desktop&amp;quot;&lt;br /&gt;
vSyncCal=&amp;quot;/usr/share/applications/synccal.desktop&amp;quot;&lt;br /&gt;
echo &amp;quot;[Desktop Entry]&amp;quot; &amp;gt; $vSyncCal&lt;br /&gt;
echo &amp;quot;Version=1.0&amp;quot; &amp;gt;&amp;gt; $vSyncCal&lt;br /&gt;
echo &amp;quot;Name=SyncCal&amp;quot; &amp;gt;&amp;gt; $vSyncCal&lt;br /&gt;
echo &amp;quot;Name[de]=SyncCal&amp;quot; &amp;gt;&amp;gt; $vSyncCal&lt;br /&gt;
echo &amp;quot;Name[fr]=SyncCal&amp;quot; &amp;gt;&amp;gt; $vSyncCal&lt;br /&gt;
echo &amp;quot;Comment=Syncing remote and local ics-file into Qt-Calendar.&amp;quot; &amp;gt;&amp;gt; $vSyncCal&lt;br /&gt;
echo &amp;quot;Comment[de]=Script fuer den Import von ics-Dateien&amp;quot; &amp;gt;&amp;gt; $vSyncCal&lt;br /&gt;
echo &amp;quot;Exec=synccal&amp;quot; &amp;gt;&amp;gt; $vSyncCal&lt;br /&gt;
echo &amp;quot;Icon=synccal&amp;quot; &amp;gt;&amp;gt; $vSyncCal&lt;br /&gt;
echo &amp;quot;StartupNotify=true&amp;quot; &amp;gt;&amp;gt; $vSyncCal&lt;br /&gt;
echo &amp;quot;Terminal=false&amp;quot; &amp;gt;&amp;gt; $vSyncCal&lt;br /&gt;
echo &amp;quot;Type=Application&amp;quot; &amp;gt;&amp;gt; $vSyncCal&lt;br /&gt;
echo &amp;quot;Categories=GTK;Utility;Dialog;&amp;quot; &amp;gt;&amp;gt; $vSyncCal&lt;br /&gt;
echo &amp;quot;GenericName=SyncCal&amp;quot; &amp;gt;&amp;gt; $vSyncCal&lt;br /&gt;
echo &amp;quot;GenericName[de]=SyncCal&amp;quot; &amp;gt;&amp;gt; $vSyncCal&lt;br /&gt;
# Done synccal.desktop ----------&lt;br /&gt;
echo &amp;quot;Generate syncal&amp;quot;&lt;br /&gt;
vSyncCal=&amp;quot;/usr/local/bin/syncal&amp;quot;&lt;br /&gt;
echo &amp;quot;#!/bin/sh&amp;quot; &amp;gt; $vSyncCal&lt;br /&gt;
echo &amp;quot;vUser=\&amp;quot;myusername\&amp;quot;&amp;quot; &amp;gt;&amp;gt; $vSyncCal&lt;br /&gt;
echo &amp;quot;vPWD=\&amp;quot;mypassword\&amp;quot;&amp;quot; &amp;gt;&amp;gt; $vSyncCal&lt;br /&gt;
echo &amp;quot;vICS1=\&amp;quot;https://www.example.org/caldav/calendar1.ics\&amp;quot;&amp;quot; &amp;gt;&amp;gt; $vSyncCal&lt;br /&gt;
echo &amp;quot;vICS2=\&amp;quot;https://www.example.org/caldav/calendar2.ics\&amp;quot;&amp;quot; &amp;gt;&amp;gt; $vSyncCal&lt;br /&gt;
echo &amp;quot;remotesync4ics2openmoko.sh -u $vUser -p $vPWD $vICSl $vICS2&amp;quot; &amp;gt;&amp;gt; $vSyncCal&lt;br /&gt;
chmod u+x $vSyncCal&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The script adds a syncal to [[QX]]-favourites and creates a desktop-definition file  &lt;br /&gt;
  /usr/share/applications/syncal.desktop  &lt;br /&gt;
because without the desktop-definition file an application will not be visible in [[QX]]-favourites.&lt;br /&gt;
====Settings for Remote ICS-files====&lt;br /&gt;
After installation you have to edit the file &lt;br /&gt;
  /usr/local/bin/synccal&lt;br /&gt;
with your confidential username, password and file URL for the remote ics files. You can import more than one remote ICS-files, so 2 variables for file URLs are defined. Change that to your appropriate number of remote ICS-files. See &amp;lt;tt&amp;gt;remotesync4ics2openmoko.sh&amp;lt;/tt&amp;gt; for further details. If you do not want to store the password in the script for security reasons you can use [http://xdialog.free.fr xdialog] for entering the &amp;lt;tt&amp;gt;vPWD&amp;lt;/tt&amp;gt; via user interface (e.g. [http://xdialog.free.fr/inputbox.gif input box]).&lt;br /&gt;
===Setting up a Groupware Server for testing===&lt;br /&gt;
If you want to setup your own groupware server for testing on your own Linux Box, you can try [http://www.citadel.org CitaDel]. Accessing the remote ics-file are explained on the homepage of [http://www.citadel.org/doku.php/faq:favoriteclient:what_url_s_do_i_use?s=sunbird http://www.citadel.org].&lt;br /&gt;
&lt;br /&gt;
===Use Evolution iCal-file via SSHFS===&lt;br /&gt;
[http://projects.gnome.org/evolution/ Evolution] stores the calendar data in the iCal-file &amp;lt;tt&amp;gt;calendar.ics&amp;lt;/tt&amp;gt;. So you might to use the files directly.&lt;br /&gt;
&lt;br /&gt;
If you running [http://projects.gnome.org/evolution/ Evolution] on you Linux-Box you can use [http://en.wikipedia.org/wiki/SSHFS SSHFS] to mount the directory of Evolution in homedirectory e.g. in&lt;br /&gt;
  /home/username/.evolution/calendar/local/system&lt;br /&gt;
You can use the iCal-file directly by mounting the directory mentioned above on the Freerunner. Now you can used the &amp;lt;tt&amp;gt;calendar.ics&amp;lt;/tt&amp;gt; from the Linux-Box, if you mount the directory in (replace &amp;lt;tt&amp;gt;username&amp;lt;/tt&amp;gt; by your account on your Linux-Box):&lt;br /&gt;
  /mnt/remoteics&lt;br /&gt;
on your Freerunner.&lt;br /&gt;
  # mkdir /mnt/remoteics&lt;br /&gt;
  # sshfs username@example.com:/home/username/.evolution/calendar/local/system /mnt/remoteics&lt;br /&gt;
Now you can use the file &amp;lt;tt&amp;gt;calendar.ics&amp;lt;/tt&amp;gt; directly:&lt;br /&gt;
  /mnt/remoteics/calendar.ics&lt;br /&gt;
The scripts of [http://mossroy.free.fr/ics2qtcal/ Mossroy] must be modified for this, because the scripts use [http://www.gnu.org/software/wget/ wget] to download the ics-files.&lt;br /&gt;
&lt;br /&gt;
==Favorites==&lt;br /&gt;
[[Image:deletefavorites.png|200px|thumb|Delete Icons from Favorites in Task Manager]]&lt;br /&gt;
&lt;br /&gt;
===QtMoko Favorites===&lt;br /&gt;
====Add to Favorites====&lt;br /&gt;
You might prefer some applications and you use them more frequent. Then you might want them to add to your '''favorites'''. &lt;br /&gt;
* Go the application list and select (highlight, but do not start) application. &lt;br /&gt;
* click on the paper icon on bottom left and select ''Add to Favorite''. &lt;br /&gt;
Then you will have this Icon in the favorites menu (yellow star in main menu) too.&lt;br /&gt;
&lt;br /&gt;
====Delete from Favorites====&lt;br /&gt;
A bit more difficult (i.e. more hidden in QtMoko) is to delete icons from the favorites menu.&lt;br /&gt;
* start '''Task Manager''' in main menu by pressing the AUX-Button on you freerunner.&lt;br /&gt;
* You will see the list of favorites&lt;br /&gt;
* Select the application your want to remove from favorites (keep pressed for a few seconds on the application until the context menu appear. The icon you want to delete should not be selected before.&lt;br /&gt;
* select '''delete''' from context menu and the icon disappears from favorites.&lt;br /&gt;
&lt;br /&gt;
=== Adding QX Favourites ===&lt;br /&gt;
For adding Favourites in the X-Server environment see [[QX]].&lt;br /&gt;
&lt;br /&gt;
== Error Handling and Workarounds ==&lt;br /&gt;
During the installations above, the following problem occured:&lt;br /&gt;
=== Xdialog Problem with Gdk-WARNING===&lt;br /&gt;
When encouter a GdK-Warning using Xdialog in scripts you can remove the warning with [http://www.linuxhowtos.org/System/sed_tutorial.htm sed].&lt;br /&gt;
&lt;br /&gt;
  sed 's/Gdk-WARNING ... locale not supported by C library//g&lt;br /&gt;
&lt;br /&gt;
This warning is part of the return string of an inputbox in xdialog.&lt;br /&gt;
{{Note|This application sed is a workaround. The best solution is a modifacition that removes the GdK-warning itself.}}&lt;br /&gt;
Embedded in a script [http://www.grymoire.com/Unix/Sed.html sed] will remove the warning from the input string. A example script (modified from [http://xdialog.free.fr http://xdialog.free.fr]) will work like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  #!/bin/sh&lt;br /&gt;
 &lt;br /&gt;
  Xdialog --title &amp;quot;INPUT BOX&amp;quot; \&lt;br /&gt;
     --inputbox &amp;quot;Enter URL:&amp;quot; 18 45 \&lt;br /&gt;
     &amp;quot;http://www123.Example-Test.com&amp;quot; 2&amp;gt; /tmp/inputbox.tmp.$$&lt;br /&gt;
  &lt;br /&gt;
  retval=$?&lt;br /&gt;
  input=`cat /tmp/inputbox.tmp.$$`&lt;br /&gt;
  rm -f /tmp/inputbox.tmp.$$&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  input=`echo $input | sed 's/Gdk-WARNING ... locale not supported by C library//g'`&lt;br /&gt;
  # remove invalid character from URL&lt;br /&gt;
  input=`echo $input | sed 's/[^a-zA-Z1-9\/:\. \-]//g'`&lt;br /&gt;
  &lt;br /&gt;
  case $retval in&lt;br /&gt;
    0)&lt;br /&gt;
      echo &amp;quot;Input string is '$input'&amp;quot;;;&lt;br /&gt;
    1)&lt;br /&gt;
      echo &amp;quot;Cancel pressed.&amp;quot;;;&lt;br /&gt;
    255)&lt;br /&gt;
      echo &amp;quot;Box closed.&amp;quot;;;&lt;br /&gt;
  esac&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
To test this script on your freerunner, you have to start it from the terminal in [[QX]]. Source of the xdialog script is used from [http://xdialog.free.fr http://xdialog.free.fr].&lt;br /&gt;
&lt;br /&gt;
=== Apt-Get Problem jffs2 ===&lt;br /&gt;
'''[Apt-Get] (jffs2)  Couldn't make mmap ...:''' (solved with the following [http://lists.laiskiainen.org/pipermail/apt-rpm-laiskiainen.org/2008-November/000884.html workaround])&lt;br /&gt;
If that happens regularly, create two scripts &amp;lt;tt&amp;gt;apt-start&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;apt-stop&amp;lt;/tt&amp;gt;. These scripts are used before and after &amp;lt;tt&amp;gt;apt-get&amp;lt;/tt&amp;gt; use. &lt;br /&gt;
==== Create an APT-START Script ====&lt;br /&gt;
* start &amp;lt;tt&amp;gt;vi&amp;lt;/tt&amp;gt; for the script &amp;lt;tt&amp;gt;apt-start&amp;lt;/tt&amp;gt;&lt;br /&gt;
  # vi /bin/apt-start &lt;br /&gt;
* press &amp;quot;I&amp;quot; for insert and enter the following code:&lt;br /&gt;
  #!/bin/sh&lt;br /&gt;
  mount -t tmpfs none /var/cache/apt&lt;br /&gt;
  mkdir -p /var/cache/apt/archives/partial&lt;br /&gt;
  apt-get update&lt;br /&gt;
  echo &amp;quot;apt-get can now be used&amp;quot;&lt;br /&gt;
  echo &amp;quot;stop with apt-stop&amp;quot;&lt;br /&gt;
* press ESC and then '''&amp;quot;:w&amp;quot;'''&lt;br /&gt;
* press '''&amp;quot;:q&amp;quot;''' for quit.&lt;br /&gt;
* make the script executable with chmod:&lt;br /&gt;
   chmod u+x /bin/apt-start&lt;br /&gt;
&lt;br /&gt;
==== Create an APT-STOP Script ====&lt;br /&gt;
* start &amp;lt;tt&amp;gt;vi&amp;lt;/tt&amp;gt; for the script &amp;lt;tt&amp;gt;apt-stop&amp;lt;/tt&amp;gt;.&lt;br /&gt;
  # vi /bin/apt-start &lt;br /&gt;
* press &amp;quot;I&amp;quot; for insert and enter the following code:&lt;br /&gt;
  #!/bin/sh&lt;br /&gt;
  umount /var/cache/apt&lt;br /&gt;
  echo &amp;quot;Now old settings for apt-get are restored&amp;quot;&lt;br /&gt;
* press ESC and then '''&amp;quot;:w&amp;quot;'''&lt;br /&gt;
* press &amp;quot;:q&amp;quot; for quit.&lt;br /&gt;
* make the script executable with chmod:&lt;br /&gt;
   chmod u+x /bin/apt-stop&lt;br /&gt;
&lt;br /&gt;
==== Usage of Scripts ====&lt;br /&gt;
If you to install software use the scripts before and after apt-get call:&lt;br /&gt;
  apt-start&lt;br /&gt;
  apt-get install mysoftware&lt;br /&gt;
  apt-stop&lt;br /&gt;
Replace &amp;lt;tt&amp;gt;mysoftware&amp;lt;/tt&amp;gt; with the package you want to install e.g. &amp;lt;tt&amp;gt;linphone&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* [http://qtmoko.org/wiki/Main_Page QtMoko Wiki]&lt;br /&gt;
* [http://sourceforge.net/projects/qtmoko/files/ QtMoko Download]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Qt Moko| ]]&lt;/div&gt;</summary>
		<author><name>Niebert</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Navit</id>
		<title>Navit</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Navit"/>
				<updated>2010-12-28T14:20:21Z</updated>
		
		<summary type="html">&lt;p&gt;Niebert: /* Speech Language */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Application|Navit}}&lt;br /&gt;
&lt;br /&gt;
As described on the [http://navit.sourceforge.net/ Navit home page],&lt;br /&gt;
&lt;br /&gt;
&amp;lt;i&amp;gt;&amp;quot;'''Navit''' is a car navigation system with routing engine.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
The current vehicle position is either read from gpsd or directly from NMEA GPS sensors.&amp;quot;&amp;lt;/i&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Some people say Navit is also a good choice for pedestrian and bicycle navigation.&lt;br /&gt;
&lt;br /&gt;
[[Image:Navit-2241.png|thumb|Navit-r2241]]&lt;br /&gt;
&lt;br /&gt;
== Acknowledgment ==&lt;br /&gt;
&lt;br /&gt;
Thanks to [[User:Alessandro | Alessandro]], stefan_schmidt, cp15 and all Navit developers I have done a small (&amp;quot;not really working&amp;quot;) preview of Navit on Neo1973 at [http://www.telemobilityforum.com/eng/ Telemobility Forum 2007]. Thanks to [http://gfoss.it GFoss] guys to invite me.&lt;br /&gt;
''[[User:Tyrael | Tyrael]]''&lt;br /&gt;
&lt;br /&gt;
==Setting up Navit==&lt;br /&gt;
&lt;br /&gt;
===Install Navit===&lt;br /&gt;
&lt;br /&gt;
==== Map Size ====&lt;br /&gt;
Of you use e.g. entire Germany in an rectangle form it will have more than 500MB.&lt;br /&gt;
Navit on FR works with maps in the size of less that 350MB. So split the larger areas in portions with a smaller size than 350MB. Otherwise Navit will not be able to process the maps.&lt;br /&gt;
&lt;br /&gt;
Change navit.xml to modify the used map bin-file, e.g. germany1.bin to germany2.bin&lt;br /&gt;
&lt;br /&gt;
==== Navit on FSO (OM2008.x,SHR,...) ====&lt;br /&gt;
&lt;br /&gt;
You can now simply add a feed from there : http://download.navit-project.org/navit/openmoko/svn/&lt;br /&gt;
&lt;br /&gt;
Essentially, to enable this directory as [[Om_2008.8_Installer#How to add a Repository ?|feed]] and install or update navit do:&lt;br /&gt;
* Only for the first time:&lt;br /&gt;
 echo src navit http://download.navit-project.org/navit/openmoko/svn &amp;gt; /etc/opkg/navit-feed.conf&lt;br /&gt;
 opkg update&lt;br /&gt;
&lt;br /&gt;
* Always:&lt;br /&gt;
 opkg install navit&lt;br /&gt;
&lt;br /&gt;
Navit will be auto-updated when you run opkg upgrade later&lt;br /&gt;
&lt;br /&gt;
Navit might not be able to use gpsd at startup:&lt;br /&gt;
 navit:plugin_load:can't load '/usr/lib/navit/vehicle/&lt;br /&gt;
 libvehicle_gpsd.so', Error 'libgps.so.16: cannot open shared object  &lt;br /&gt;
 file: No such file or directory'&lt;br /&gt;
 navit:vehicle_new:invalid type 'gpsd'&lt;br /&gt;
&lt;br /&gt;
to solve this issue (necessary for SHR):&lt;br /&gt;
&lt;br /&gt;
 opkg install libgps17&lt;br /&gt;
 ln -s /usr/lib/libgps.so.17 /usr/lib/libgps.so.16&lt;br /&gt;
&lt;br /&gt;
====Navit on Debian====&lt;br /&gt;
Navit is now in Debian [http://packages.debian.org/source/testing/navit testing] and [http://packages.debian.org/source/unstable/navit unstable].&lt;br /&gt;
&lt;br /&gt;
Add the following line to &amp;lt;tt&amp;gt;/etc/apt/sources.list&amp;lt;/tt&amp;gt; with e.g. editor &amp;lt;tt&amp;gt;vi&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;nano&amp;lt;/tt&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
     deb http://ftp.de.debian.org/debian unstable main&lt;br /&gt;
&lt;br /&gt;
Then update with apt-get:&lt;br /&gt;
&lt;br /&gt;
     apt-get update&lt;br /&gt;
&lt;br /&gt;
The up-to-date source package is available through git at '''git://git.debian.org/git/collab-maint/navit.git''' ([http://git.debian.org/?p=collab-maint/navit.git;a=summary browse]).&lt;br /&gt;
&lt;br /&gt;
====Navit on Android====&lt;br /&gt;
Download current version [http://download.navit-project.org/navit/android_armv4t/svn/ navit-current.apk] on your Android. See [[Android usage]] for installing Apps on your [http://code.google.com/p/android-on-freerunner/wiki/Applications Android on Freerunner].&lt;br /&gt;
&lt;br /&gt;
   see [http://wiki.navit-project.org/index.php/Navit_on_Android Navit on Android] Navit Project Wiki&lt;br /&gt;
&lt;br /&gt;
You can use one download map which you have to copy on the FAT32 partition of your SD card as '''&amp;lt;tt&amp;gt;navitmap.bin&amp;lt;/tt&amp;gt;'''. &lt;br /&gt;
&lt;br /&gt;
During first use after installation, navit for android will ask you, if you want to intall [http://espeak.sourceforge.net/ TTS] (Text to Speech [http://www.speech.cs.cmu.edu/flite/ festival-lite]). If you decide to install TTS then Navit crashes (with version [http://download.navit-project.org/navit/android_armv4t/svn/ navit-svn-3495.apk]).&lt;br /&gt;
&lt;br /&gt;
====Navit on QtMoko====&lt;br /&gt;
You can find some information for installing Navit in the [[QtMoko]] article.&lt;br /&gt;
&lt;br /&gt;
===Set up the maps you want===&lt;br /&gt;
&lt;br /&gt;
====The Easy Way====&lt;br /&gt;
Use [http://maps.navit-project.org/download/ Navit Map Extractor] based on [http://www.openstreetmap.org OpenStreetMap].  Navigate to the region you want, and click &amp;quot;select&amp;quot; to select region, select the area you want, then click download. [[Image:osmdownload.jpg|200px|thumb|Download OpenStreetMaps]] &lt;br /&gt;
&lt;br /&gt;
If you just want the entire planet (as of this writing, ~1.8 GB), it's [http://maps.navit-project.org/planet.bin here].&lt;br /&gt;
&lt;br /&gt;
[http://downloads.cloudmade.com/ CloudMade] also has up-to-date maps from OpenStreetMap by country (by state in the US).&lt;br /&gt;
&lt;br /&gt;
{{Note|Be aware of the map size that can be used on your FR (On Android working with map sizes less than 350MB is O.K. on SHR 450MB also work, so SHR may not have a map size limit)}}&lt;br /&gt;
&lt;br /&gt;
====From the command line====&lt;br /&gt;
'''OpenStreetMap''' - follow directions at http://wiki.navit-project.org/index.php/OpenStreetMaps&lt;br /&gt;
* There are some pre-processed, up-to-date maps that can be grabbed with wget:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;wget -O germany.bin http://maps.navit-project.org/api/map/?bbox=5.185546875,46.845703125,15.46875,55.634765625&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can put a shell script into &amp;lt;tt&amp;gt;/usr/local/bin/update-maps&amp;lt;/tt&amp;gt;&lt;br /&gt;
  #!/bin/sh&lt;br /&gt;
  echo &amp;quot;Update OpenstreetMaps&amp;quot;&lt;br /&gt;
  echo &amp;quot;---------------------&amp;quot;&lt;br /&gt;
  echo &amp;quot;  download and store OSM maps on /media/card/maps&amp;quot;&lt;br /&gt;
  wget -O /media/card/maps/germany.bin http://maps.navit-project.org/api/map/?bbox=5.185546875,46.845703125,15.46875,55.634765625&lt;br /&gt;
  echo &amp;quot;update germany.bin finished&amp;quot;&lt;br /&gt;
You have to make the script executable with:&lt;br /&gt;
  chmod u+x /usr/local/bin/update-maps&lt;br /&gt;
Create a maps-directory (e.g. with path &amp;lt;tt&amp;gt;/media/card/maps/&amp;lt;/tt&amp;gt;) on your SD-card:&lt;br /&gt;
  mkdir /media/card/maps/&lt;br /&gt;
Then you can update with this script all your maps on the SD-card if you have internet connection:&lt;br /&gt;
  update-maps&lt;br /&gt;
* Here's an example to get the maps for the area around Seattle, WA:&lt;br /&gt;
** Find the map coordinates using http://informationfreeway.org/?lat=47.520270037501454&amp;amp;lon=-122.20130713167327&amp;amp;zoom=9&amp;amp;layers=B000F000&lt;br /&gt;
** 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):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;wget -O map1.osm http://www.openstreetmap.org/api/0.5/map?bbox=-122.2,47.5,-122,47.7&lt;br /&gt;
wget -O map2.osm http://www.openstreetmap.org/api/0.5/map?bbox=-122.4,47.5,-122.2,47.7&lt;br /&gt;
wget -O map3.osm http://www.openstreetmap.org/api/0.5/map?bbox=-122.4,47.3,-122.2,47.5&lt;br /&gt;
wget -O map4.osm http://www.openstreetmap.org/api/0.5/map?bbox=-122.2,47.3,-122,47.5&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* 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:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;cat *.osm | osm2navit --dedupe-ways mymap.bin&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Copy the map to the NEO===&lt;br /&gt;
To copy the map using scp (replace ''/directory'' as is appropriate in the following):&lt;br /&gt;
&amp;lt;pre&amp;gt;scp mymap.bin root@neo:/directory&amp;lt;/pre&amp;gt;&lt;br /&gt;
If you copy the map &amp;lt;tt&amp;gt;germany.bin&amp;lt;/tt&amp;gt; to the SD card on the Neo use e.g. in the directory &amp;lt;tt&amp;gt;maps&amp;lt;/tt&amp;gt;:&lt;br /&gt;
  scp germany.bin root@neo:/media/card/maps&lt;br /&gt;
Once it's somewhere on the NEO, Navit needs to know that it's there.&lt;br /&gt;
&amp;lt;pre&amp;gt;mkdir ~/.navit&lt;br /&gt;
cp /usr/share/navit/navit.xml ~/.navit/navit.xml&lt;br /&gt;
vi ~/.navit/navit.xml&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
note that in some version navit includes other xml files from /usr/share/navit, for instance mapsets are now defined in maps.xml.&lt;br /&gt;
&lt;br /&gt;
===Enable Maps in  Navit ===&lt;br /&gt;
Now you must let Navit know the maps you want to use. Several disabled mapset-tags are predefined. &lt;br /&gt;
In the navit.xml file, put the following into a new &amp;lt;mapset&amp;gt; section (and disable the default &amp;lt;mapset&amp;gt; just above - or else it will not work):&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;map type=&amp;quot;binfile&amp;quot; enabled=&amp;quot;yes&amp;quot; data=&amp;quot;/directory&amp;quot; /&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
For example with a &amp;lt;tt&amp;gt;germany.bin&amp;lt;/tt&amp;gt; on the SD-card you use:&lt;br /&gt;
 &amp;lt;mapset enabled=&amp;quot;yes&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;map type=&amp;quot;binfile&amp;quot; enabled=&amp;quot;yes&amp;quot; data=&amp;quot;/media/card/maps/germany.bin&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;/mapset&amp;gt;&lt;br /&gt;
or if you store all downloaded maps in the directory &amp;lt;tt&amp;gt;/media/card/maps&amp;lt;/tt&amp;gt; then add the following lines to &amp;lt;tt&amp;gt;navit.xml&amp;lt;/tt&amp;gt;.&lt;br /&gt;
 &amp;lt;mapset enabled=&amp;quot;yes&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;map type=&amp;quot;binfile&amp;quot; enabled=&amp;quot;yes&amp;quot; data=&amp;quot;/media/card/maps/*.bin&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;/mapset&amp;gt;&lt;br /&gt;
{{Note|this will only load the first map that machtes *.bin (its a bug/feature)!}}&lt;br /&gt;
{{Note|that the bin-file and the map set both have to be enabled}}&lt;br /&gt;
&lt;br /&gt;
Disable unused mapset sections by setting enabled to &amp;lt;tt&amp;gt;no&amp;lt;/tt&amp;gt;, e.g. the pre-installed sample maps at line 370 in &amp;lt;tt&amp;gt;navit.xml&amp;lt;/tt&amp;gt;.&lt;br /&gt;
 &amp;lt;mapset enabled=&amp;quot;no&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xi:include href=&amp;quot;$NAVIT_SHAREDIR/maps/*.xml&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;/mapset&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Run navit&lt;br /&gt;
** Start [[gllin]] (for GTA01)&lt;br /&gt;
** Start [[gpsd]] ( gpsd /tmp/nmeaNP )&lt;br /&gt;
** Start navit&lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
===Tips and Tricks===&lt;br /&gt;
====Center on Vehicle====&lt;br /&gt;
Navit supports a &amp;quot;always center on vehicle&amp;quot; option. &lt;br /&gt;
&lt;br /&gt;
To activate this add&lt;br /&gt;
 follow=&amp;quot;3&amp;quot;&lt;br /&gt;
to the &amp;lt;tt&amp;gt;vehicle&amp;lt;/tt&amp;gt; tag in navit.xml. &lt;br /&gt;
   &amp;lt;vehicle name=&amp;quot;Local GPS&amp;quot; profilename=&amp;quot;car&amp;quot; enabled=&amp;quot;yes&amp;quot; active=&amp;quot;1&amp;quot; follow=&amp;quot;3&amp;quot; &lt;br /&gt;
           source=&amp;quot;gpsd://localhost&amp;quot; gpsd_query=&amp;quot;w+xj&amp;quot; color=&amp;quot;#0000ff&amp;quot;&amp;gt;&lt;br /&gt;
The &amp;quot;3&amp;quot; causes to give the gui time to do something between the repaints (drag the map or browse the menu). When its set to &amp;quot;1&amp;quot; navit does nothing more than repainting the map continuously.&lt;br /&gt;
====Localize for Germany====&lt;br /&gt;
* [http://www.freeyourphone.de/portal_v1/viewtopic.php?f=22&amp;amp;t=1039 SHR German] from freeyourphone.de&lt;br /&gt;
* Go to [[Configure_SHR_for_German-speaking_use]] download&lt;br /&gt;
   http://work.zoff.cc/openmoko/shr/de_at/customize_pack_shr_no_maps.tar.gz&lt;br /&gt;
: extract &amp;lt;tt&amp;gt;init_shr_testing.sh&amp;lt;/tt&amp;gt; and see what [[User:Zoff99|zoff99]] did to customize navit for German speaking. Search for &amp;lt;tt&amp;gt;glibc&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;navit&amp;lt;/tt&amp;gt; in localization script for understanding the steps to be perform on your freerunner.&lt;br /&gt;
* [http://wiki.openmoko.org/wiki/Navit#Speech Speech Language]for more details.&lt;br /&gt;
* you can adapt these steps for other languages by replacing der_DE respective de parts to your favorite language setting.&lt;br /&gt;
http://wiki.openmoko.org/wiki/Navit#Speech&lt;br /&gt;
&lt;br /&gt;
==Routing==&lt;br /&gt;
[[Image:navit_main_menu.png|100px|thumb|Navit Main Menu]]&lt;br /&gt;
[[Image:navit_action_menu.png|100px|thumb|Navit Action Menu]]&lt;br /&gt;
The main menu has 4 submenus&lt;br /&gt;
* Action&lt;br /&gt;
* Settings&lt;br /&gt;
* Tools&lt;br /&gt;
* Route&lt;br /&gt;
Normally you would assume the entering a town can be found under the submenu Route, but Town is hidden under submenu Action. Route will provide the description of the route as text and a height profile of your trip. Tools was not working on 08/2009 Version of navit on SHR (see [[SHR User Manual]]).&lt;br /&gt;
&lt;br /&gt;
===Preselect Country of Destination===&lt;br /&gt;
Normally you have to select the the country first before choosing the town and street name. It might be more convenient for you if you preselect the country already with your settings.&lt;br /&gt;
The article [[Configure SHR for German-speaking use]] had a preselection of the country &amp;quot;Austria&amp;quot; in Navit. Adapt the localization for your country and maps in Navit, so that do not need to select the country anymore.&lt;br /&gt;
&lt;br /&gt;
Actually Navit derives the preselected country from the calling environments's locale (see [[Localization]]). Make sure, that LC_ALL ist '''not''' set though. Otherwise navit fails to interprete gpsd output and you end up with strange gps coordinates. When starting from gui (e.g. illume) you can achieve this by supplying an executable script /usr/local/bin/navit which might look like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
#export LANG=xx_YY.UTF-8   # Uncomment this line and replace xx_YY, if &lt;br /&gt;
                           # your gui's locale is not setup accordingly. &lt;br /&gt;
unset LC_ALL&lt;br /&gt;
exec /usr/bin/navit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
So a valid locale environment preselecting search for German cities would look like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@om-gta02 ~ $ locale&lt;br /&gt;
LANG=de_DE.UTF-8&lt;br /&gt;
LC_CTYPE=&amp;quot;de_DE.UTF-8&amp;quot;&lt;br /&gt;
LC_NUMERIC=&amp;quot;de_DE.UTF-8&amp;quot;&lt;br /&gt;
...&lt;br /&gt;
LC_MEASUREMENT=&amp;quot;de_DE.UTF-8&amp;quot;&lt;br /&gt;
LC_IDENTIFICATION=&amp;quot;de_DE.UTF-8&amp;quot;&lt;br /&gt;
LC_ALL=&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note that there's a limited number of [http://wiki.navit-project.org/index.php/OpenStreetMaps#Known_countries_by_osm2navit countries supported by osm2navit] and Navit's search function.&lt;br /&gt;
&lt;br /&gt;
===Select Destination===&lt;br /&gt;
[[Image:navit_select_country.png|100px|thumb|Select Country]]&lt;br /&gt;
&lt;br /&gt;
You can the select your destination in the main menu:&lt;br /&gt;
* via '''Bookmarks''', if you saved the previous location or&lt;br /&gt;
* via '''Town''', if you want to enter a new destination. If you use a destination more frequently, just save the location as bookmark.  &lt;br /&gt;
&lt;br /&gt;
When you click in the main menu on &amp;lt;i&amp;gt;Action&amp;lt;/i&amp;gt; the &amp;lt;i&amp;gt;Action&amp;lt;/i&amp;gt; menu appears with 4 subitems.&lt;br /&gt;
* Bookmarks of previous locations (stored in &amp;lt;tt&amp;gt;/home/root/.navit/destinations.txt&amp;lt;/tt&amp;gt;&lt;br /&gt;
* a globe showing a location as destination,&lt;br /&gt;
* a vehicle that shows the current GPS position of the vehicle. If the freerunner receives no GPS signal the locations of the vehicle is set to 0.0.0N and 0.0.0E. &lt;br /&gt;
* Town is the action to enter a destination.&lt;br /&gt;
* Quit navit is the last action in this submenu.&lt;br /&gt;
&lt;br /&gt;
Select the icon &amp;lt;i&amp;gt;Town&amp;lt;/i&amp;gt; in the main menu (if you see the map, you can get to the main menu just by clicking on the map).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Select Country====&lt;br /&gt;
[[Image:navit_country_selected.png|100px|thumb|Country Options]]&lt;br /&gt;
[[Image:navit_destination_details.png|100px|thumb|Enter Bookmark Details]]&lt;br /&gt;
&lt;br /&gt;
Before you can search for City you have to select a Country. To do that, click on the icon in the left upper corner of the search field (could look like a white square with blue top-left quadrant).&lt;br /&gt;
&lt;br /&gt;
Just type in the first letter of the country (e.g. &amp;quot;G&amp;quot;) and Navit makes suggestions (e.g. Gabon, Germany).&lt;br /&gt;
&lt;br /&gt;
====Enter Town====&lt;br /&gt;
&lt;br /&gt;
When you have selected the country (e.g. Germany) the flag appears and you can select the town.&lt;br /&gt;
Then you can save the town as bookmark and enter more details like streets to the selected town.&lt;br /&gt;
&lt;br /&gt;
The search is still a little buggy.&lt;br /&gt;
&lt;br /&gt;
====Enter Street====&lt;br /&gt;
You can enter the street and streetnumber and save it as bookmark when you use the destination often. &lt;br /&gt;
&lt;br /&gt;
====Bookmarks====&lt;br /&gt;
Navigation and planning of routes with Navit can be organized with bookmarks.&lt;br /&gt;
* set a bookmark as current position &lt;br /&gt;
* set a bookmark as destination&lt;br /&gt;
Then you can see the suggested route in blue on the map. &lt;br /&gt;
&lt;br /&gt;
Bookmarks are stored in:&lt;br /&gt;
  /home/root/.navit/bookmark.txt&lt;br /&gt;
&lt;br /&gt;
The GPS-location (if GPS-signal is available) will be highlighted with a small blue circle. The color of the circle can be defined via editing the &amp;lt;tt&amp;gt;navit.xml&amp;lt;/tt&amp;gt; (see [http://wiki.openmoko.org/wiki/Navit#Set_Cursor_Color select cursor color]).&lt;br /&gt;
* a dot in the blue circle is indicating that your are not moving,&lt;br /&gt;
* an arrowhead is indicating the direction, when you are moving.&lt;br /&gt;
Then routing can start and in the map the route is highlighted.&lt;br /&gt;
&lt;br /&gt;
====Screenshots in Navit Documentation====&lt;br /&gt;
The screenshots are made with &amp;lt;tt&amp;gt;gpe-scap&amp;lt;/tt&amp;gt;, that can be installed by:&lt;br /&gt;
  opkg install gpe-scap&lt;br /&gt;
if not installed already. Navigation through your installed application navit and login via ssh on your Freerunner &lt;br /&gt;
  ssh -l root 192.168.0.202&lt;br /&gt;
assuming that your Freerunner has the IP 192.168.0.202.&lt;br /&gt;
Any time you want to make a screenshot just start via your desktop computer &lt;br /&gt;
  gpe-scap&lt;br /&gt;
and save the screenshot to you freerunner.&lt;br /&gt;
Download the screenshot to your desktop computer with&lt;br /&gt;
  desktop# sftp://root@192.168.0.202&lt;br /&gt;
&lt;br /&gt;
== News ==&lt;br /&gt;
A deeper look into configuring Navit can be found in the [http://wiki.navit-project.org/index.php/Configuring_Navit Navit-Wiki].&lt;br /&gt;
&lt;br /&gt;
=== Getting the display right ===&lt;br /&gt;
&lt;br /&gt;
If using SHR the keyboard in country/town/street search mode does not fit on the street, make sure your gui configuration is set to the following line:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;gui type=&amp;quot;internal&amp;quot; font_size=&amp;quot;350&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The example line provided for freerunners hides some important icons. Namely, instead of typing your city name first, you will first have to click the button on the top left, to go into country search mode. Enter your country name, then the city name, in order to enable the search function. This requires your map data to be searchable.&lt;br /&gt;
&lt;br /&gt;
You can start in fullscreen mode with fullscreen=&amp;quot;1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;gui type=&amp;quot;internal&amp;quot; font_size=&amp;quot;350&amp;quot; fullscreen=&amp;quot;1&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you want to enable &amp;quot;+&amp;quot; and &amp;quot;-&amp;quot; as Zoom-In and Zoom-Out buttons on the bottom of the map enable the button with the following xml-tags:&lt;br /&gt;
 &amp;lt;osd enabled=&amp;quot;yes&amp;quot; type=&amp;quot;button&amp;quot; x=&amp;quot;-96&amp;quot; y=&amp;quot;-96&amp;quot; command=&amp;quot;zoom_in()&amp;quot;  src=&amp;quot;zoom_in.xpm&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;osd enabled=&amp;quot;yes&amp;quot; type=&amp;quot;button&amp;quot; x=&amp;quot;0&amp;quot;   y=&amp;quot;-96&amp;quot; command=&amp;quot;zoom_out()&amp;quot; src=&amp;quot;zoom_out.xpm&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can find sample Layouts here:&lt;br /&gt;
[http://wiki.navit-project.org/index.php/OSD_Layouts Sample Layouts from navit-wiki]&lt;br /&gt;
&lt;br /&gt;
=== Set Cursor Color ===&lt;br /&gt;
[[Image:red_cursor.png|90px|thumb|Red Cursor]]&lt;br /&gt;
If you navigate, the route is marked in blue color on the map. The current position of the vehicle is displayed by a blue circle. The circle is sometimes difficult to see on the blue track. If you want to change the color, size  of the vehicle cursor edit the vehicle XML-environment in navit.xml (e.g. replace blue color #0000FF with red color #FF0000 -- for details of  [http://html-color-codes.info Color Codes] select color, copy and paste code in &amp;lt;tt&amp;gt;navit.xml&amp;lt;/tt&amp;gt;)  &lt;br /&gt;
&lt;br /&gt;
     &amp;lt;vehicle name=&amp;quot;Local GPS&amp;quot; profilename=&amp;quot;car&amp;quot; enabled=&amp;quot;yes&amp;quot; active=&amp;quot;1&amp;quot; source=&amp;quot;gpsd://localhost&amp;quot; gpsd_query=&amp;quot;w+xj&amp;quot; color=&amp;quot;#0000ff&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;!-- Navit can write a tracklog in several formats (gpx, nmea or textfile): --&amp;gt;&lt;br /&gt;
        &amp;lt;!-- &amp;lt;log type=&amp;quot;gpx&amp;quot; data=&amp;quot;track_%Y%m%d-%i.gpx&amp;quot; flush_size=&amp;quot;1000&amp;quot; flush_time=&amp;quot;30&amp;quot;/&amp;gt; --&amp;gt;&lt;br /&gt;
            &amp;lt;cursor w=&amp;quot;56&amp;quot; h=&amp;quot;56&amp;quot;&amp;gt;&lt;br /&gt;
               &amp;lt;!-- tag defines the circle for the cursor --&amp;gt;&lt;br /&gt;
                &amp;lt;itemgra&amp;gt;&lt;br /&gt;
                    &amp;lt;circle color=&amp;quot;#ff0000&amp;quot; radius=&amp;quot;42&amp;quot; width=&amp;quot;6&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;0&amp;quot; y=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/circle&amp;gt;&lt;br /&gt;
                   &amp;lt;circle color=&amp;quot;#ffffff&amp;quot; radius=&amp;quot;48&amp;quot; width=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;0&amp;quot; y=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/circle&amp;gt;&lt;br /&gt;
                   &amp;lt;circle color=&amp;quot;#ffffff&amp;quot; radius=&amp;quot;36&amp;quot; width=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;0&amp;quot; y=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/circle&amp;gt;&lt;br /&gt;
                &amp;lt;/itemgra&amp;gt;&lt;br /&gt;
               &amp;lt;!-- tag defines the dot when the vehicle is not moving --&amp;gt;&lt;br /&gt;
                &amp;lt;itemgra speed_range=&amp;quot;-2&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;polyline color=&amp;quot;#ff0000&amp;quot; width=&amp;quot;6&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;1&amp;quot; y=&amp;quot;1&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;1&amp;quot; y=&amp;quot;-1&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;-1&amp;quot; y=&amp;quot;-1&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;-1&amp;quot; y=&amp;quot;-1&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/polyline&amp;gt;&lt;br /&gt;
                  &amp;lt;circle color=&amp;quot;#ffffff&amp;quot; radius=&amp;quot;9&amp;quot; width=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;0&amp;quot; y=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/circle&amp;gt;&lt;br /&gt;
                &amp;lt;/itemgra&amp;gt;&lt;br /&gt;
                &amp;lt;!-- This itemgra-tag defines the arrow when the vehicle moves --&amp;gt;&lt;br /&gt;
                &amp;lt;itemgra speed_range=&amp;quot;3-&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;polyline color=&amp;quot;#ff0000&amp;quot; width=&amp;quot;6&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;-7&amp;quot; y=&amp;quot;-10&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;0&amp;quot; y=&amp;quot;12&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;7&amp;quot; y=&amp;quot;-10&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/polyline&amp;gt;&lt;br /&gt;
                  &amp;lt;polyline color=&amp;quot;#ffffff&amp;quot; width=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;+10&amp;quot; y=&amp;quot;-10&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;3&amp;quot; y=&amp;quot;15&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/polyline&amp;gt;&lt;br /&gt;
                    &amp;lt;polyline color=&amp;quot;#ffffff&amp;quot; width=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;-10&amp;quot; y=&amp;quot;-10&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;-3&amp;quot; y=&amp;quot;15&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/polyline&amp;gt;&lt;br /&gt;
                &amp;lt;/itemgra&amp;gt;&lt;br /&gt;
        &amp;lt;/cursor&amp;gt;&lt;br /&gt;
    &amp;lt;/vehicle&amp;gt;&lt;br /&gt;
The following screenshot show Navit with a red cursor on a blue track:&lt;br /&gt;
&lt;br /&gt;
[[Image:navit_color_cursor.png|200px|thumb|Red Cursor Color on blue track - vehicle not moving]]&lt;br /&gt;
&lt;br /&gt;
=== Speech ===&lt;br /&gt;
Navit can speak if you install [http://espeak.sourceforge.net/ eSpeak] + [http://www.freebsoft.org/speechd speech-dispatcher] and updates your navit.xml file.&lt;br /&gt;
&lt;br /&gt;
If you want navit using your language, and setting LC_MESSAGES fails due to missing glibc locale, set the enviroment variable LANGUAGE. For instance running&lt;br /&gt;
  LANGUAGE=de navit&lt;br /&gt;
will set the ui and output to german.&lt;br /&gt;
&lt;br /&gt;
For SHR there is a big german localization patch see [[Configure SHR for German-speaking use]].&lt;br /&gt;
&lt;br /&gt;
One way to configure speech output:&lt;br /&gt;
&lt;br /&gt;
* mokoTTS aims to integrate these packages in OM:&lt;br /&gt;
http://projects.openmoko.org/projects/mokotts/&lt;br /&gt;
&lt;br /&gt;
install espeak, dotconf, and then speech-dispatcher.&lt;br /&gt;
note: running 2008.8 updating from zecke's &amp;quot;testing&amp;quot; repo does not require &amp;quot;dotconf&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Speech Language ====&lt;br /&gt;
To change the speech tag in navit.xml with speech dispatcher:&lt;br /&gt;
  &amp;lt;speech type=&amp;quot;cmdline&amp;quot; data=&amp;quot;spd-say '%s'&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;'''spd-say -l fr '%s''''&amp;quot; for using the French voice for example.&lt;br /&gt;
* &amp;quot;'''spd-say -l de '%s''''&amp;quot; for using the German voice for example.&lt;br /&gt;
&lt;br /&gt;
{{Note|You can check speech dispatcher output from the shell.}}&lt;br /&gt;
Example for German:&lt;br /&gt;
  spd-say -l=de &amp;quot;Dies ist die Winterstraße 23&amp;quot;&lt;br /&gt;
The speech-dispatcher is blocking the audio after suspend. So after a suspend you will hear no ringtone, when a phone call is coming in and you cannot listen do audio files.&lt;br /&gt;
A solution is to disable starting of speech-dispatcher with:&lt;br /&gt;
  update-rc.d -f speech-dispatcher remove&lt;br /&gt;
Then the speech-dispatcher should be started if and only if navit is running and shut down when navit is closed.&lt;br /&gt;
&lt;br /&gt;
Furthermore navit should be started indirect with a script &amp;lt;tt&amp;gt;navit.sh&amp;lt;/tt&amp;gt; instead of a direct start with the binary located in &amp;lt;tt&amp;gt;/usr/bin/navit&amp;lt;/tt&amp;gt;. The script &amp;lt;tt&amp;gt;navit.sh&amp;lt;/tt&amp;gt; listed below starts speech-dispatcher before navit, and stops it afterwards. See http://lists.openmoko.org/nabble.html#nabble-td1088795&lt;br /&gt;
&lt;br /&gt;
The following script is doing the suggested procedure. This script includes a language fix for Austria (see [[Configure SHR for German-speaking use]]).&lt;br /&gt;
  export LANG=de_AT.utf8&amp;lt;tt&amp;gt;spd-say --language=de Output-String&amp;lt;/tt&amp;gt; You can replace the --language by -l }&lt;br /&gt;
Replace '''&amp;lt;tt&amp;gt;de_AT&amp;lt;/tt&amp;gt;''' in this line with the appropriate language variable in the following script &amp;lt;tt&amp;gt;navit.sh&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#! /bin/sh&lt;br /&gt;
#&lt;br /&gt;
# Copyright Matthias Hentges &amp;lt;devel@hentges.net&amp;gt; (c) 2008&lt;br /&gt;
# License: GPL (see http://www.gnu.org/licenses/gpl.txt for a copy of the license)&lt;br /&gt;
#&lt;br /&gt;
# Filename: navit.sh&lt;br /&gt;
# Date: 20080105 (YMD)&lt;br /&gt;
#&lt;br /&gt;
#################################################################################&lt;br /&gt;
#&lt;br /&gt;
# 20080105 - v0.0.1	- Initial release&lt;br /&gt;
# 20090818 -            - Zoff &amp;lt;zoff@zoff.cc&amp;gt; addons and fixes&lt;br /&gt;
#&lt;br /&gt;
#&lt;br /&gt;
#################################################################################&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#################################################################################&lt;br /&gt;
#&lt;br /&gt;
# On devices with low memory (&amp;lt; 512Mb?) Navit will segfault on start.&lt;br /&gt;
# This can be worked around by doing&lt;br /&gt;
# &amp;quot;echo 1 &amp;gt; /proc/sys/vm/overcommit_memory&amp;quot;&lt;br /&gt;
#&lt;br /&gt;
#################################################################################&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
. /etc/profile&lt;br /&gt;
&lt;br /&gt;
set|grep LC&lt;br /&gt;
&lt;br /&gt;
#### Stop the speech dispatcher ####&lt;br /&gt;
/etc/init.d/speech-dispatcher stop&lt;br /&gt;
&lt;br /&gt;
#### Language Fix #################&lt;br /&gt;
set|grep LC&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
export LC_ALL=''&lt;br /&gt;
unset LC_ALL&lt;br /&gt;
export LANG=de_AT.utf8&lt;br /&gt;
&lt;br /&gt;
set|grep LC&lt;br /&gt;
&lt;br /&gt;
#### Start the speech dispatcher ####&lt;br /&gt;
/etc/init.d/speech-dispatcher start &amp;amp;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
set|grep LC&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# need cpu and display&lt;br /&gt;
mdbus -s org.freesmartphone.ousaged /org/freesmartphone/Usage org.freesmartphone.Usage.SetResourcePolicy Display enabled&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if test &amp;quot;`cat /proc/meminfo | grep ^MemTotal | awk '{print $2}'`&amp;quot; -lt &amp;quot;500000&amp;quot;&lt;br /&gt;
then&lt;br /&gt;
	if test &amp;quot;$USER&amp;quot; = &amp;quot;root&amp;quot;&lt;br /&gt;
	then&lt;br /&gt;
		echo &amp;quot;Enabling low-mem workaround...&amp;quot;&lt;br /&gt;
		echo 1 &amp;gt; /proc/sys/vm/overcommit_memory&lt;br /&gt;
	else&lt;br /&gt;
		echo &amp;quot;I need root-privs to enable the low-mem workaround!&amp;quot;&lt;br /&gt;
	fi&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
######### Start NAVIT NOW ############&lt;br /&gt;
&lt;br /&gt;
navit $*&lt;br /&gt;
	&lt;br /&gt;
#### Stop the speech dispatcher ####&lt;br /&gt;
&lt;br /&gt;
/etc/init.d/speech-dispatcher stop&lt;br /&gt;
&lt;br /&gt;
# release cpu and display&lt;br /&gt;
mdbus -s org.freesmartphone.ousaged /org/freesmartphone/Usage org.freesmartphone.Usage.SetResourcePolicy Display auto&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Save the &amp;lt;tt&amp;gt;navit.sh&amp;lt;/tt&amp;gt; script in:&lt;br /&gt;
  /usr/bin/navit.sh&lt;br /&gt;
Make the script executable:&lt;br /&gt;
  chmod u+x /usr/bin/navit.sh&lt;br /&gt;
Now you have to edit the desktop icon, so that it starts this script &amp;lt;tt&amp;gt;navit.sh&amp;lt;/tt&amp;gt; instead of the binary &amp;lt;tt&amp;gt;/usr/bin/navit&amp;lt;/tt&amp;gt;.&lt;br /&gt;
  nano /usr/share/applications/navit.desktop&lt;br /&gt;
Edit the line with &amp;lt;tt&amp;gt;Exec=...&amp;lt;/tt&amp;gt;, so that it starts the script &amp;lt;tt&amp;gt;navit.sh&amp;lt;/tt&amp;gt; instead of the navit binary.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[Desktop Entry]&lt;br /&gt;
Version=1.0&lt;br /&gt;
Name=Navit&lt;br /&gt;
Name[de]=Navit&lt;br /&gt;
Name[fr]=Navit&lt;br /&gt;
Comment=The open source vector based navigation program with routing engine&lt;br /&gt;
Comment[de]=Ein vektorbasiertes Navigationsprogramm&lt;br /&gt;
Comment[fr]=Le logiciel opensource de navigation vectorielle&lt;br /&gt;
Exec=/usr/bin/navit.sh&lt;br /&gt;
Icon=navit&lt;br /&gt;
StartupNotify=true&lt;br /&gt;
Terminal=false&lt;br /&gt;
Type=Application&lt;br /&gt;
Categories=GTK;Utility;Geography;&lt;br /&gt;
GenericName=Navit&lt;br /&gt;
GenericName[de]=Navit&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Alternatively''', you can make speech-dispatcher restart on resume, see http://trac.shr-project.org/trac/ticket/494&lt;br /&gt;
&lt;br /&gt;
=== Script to download OSM maps ===&lt;br /&gt;
[[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&lt;br /&gt;
dlOSM.sh &amp;lt;minimum latitude&amp;gt; &amp;lt;maximum latitude&amp;gt; &amp;lt;minimum longitude&amp;gt; &amp;lt;maximum longitude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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...&lt;br /&gt;
&lt;br /&gt;
dlOSM.sh:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/usr/bin/python&lt;br /&gt;
&lt;br /&gt;
import os&lt;br /&gt;
import sys&lt;br /&gt;
#import math&lt;br /&gt;
&lt;br /&gt;
def doIt(cmd):&lt;br /&gt;
  os.system(cmd)&lt;br /&gt;
&lt;br /&gt;
def getOsms(basename, minLat, maxLat, minLon, maxLon):&lt;br /&gt;
  '''basename - base name of map, maps are named {basename}{count}.osm&lt;br /&gt;
  minLat - latitude of the west side of the map&lt;br /&gt;
  maxLat - latitude of the east side of the map&lt;br /&gt;
  minLon - longitude of the north side of the map&lt;br /&gt;
  maxLon - longitude of the south side of the map'''&lt;br /&gt;
&lt;br /&gt;
  wgetCmdTemplate = 'wget -O %s%s.osm http://api.openstreetmap.org/api/0.6/map?bbox=%s,%s,%s,%s'&lt;br /&gt;
&lt;br /&gt;
  currLat = minLat&lt;br /&gt;
  mapCount = 0&lt;br /&gt;
  while currLat &amp;lt; maxLat:&lt;br /&gt;
    nextLat = min(currLat + 0.1, maxLat)&lt;br /&gt;
&lt;br /&gt;
    currLon = minLon&lt;br /&gt;
    while currLon &amp;lt; maxLon:&lt;br /&gt;
      nextLon = min(currLon + 0.1, maxLon)&lt;br /&gt;
&lt;br /&gt;
      doIt(wgetCmdTemplate % (basename, mapCount, currLon, currLat, nextLon, nextLat))&lt;br /&gt;
&lt;br /&gt;
      currLon = nextLon&lt;br /&gt;
      mapCount = mapCount + 1&lt;br /&gt;
&lt;br /&gt;
    currLat = nextLat&lt;br /&gt;
&lt;br /&gt;
(minLat, maxLat, minLon, maxLon) = map(float, sys.argv[1:])&lt;br /&gt;
getOsms('map', minLat, maxLat, minLon, maxLon)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;onlyinclude&amp;gt;&lt;br /&gt;
{{ApplicationBox|&lt;br /&gt;
Name=[[Navit]]|&lt;br /&gt;
Description=Navit is a car navigation system with routing engine.|&lt;br /&gt;
Screenshot=Screenshot-3.png|&lt;br /&gt;
Homepage=http://navit.sourceforge.net|&lt;br /&gt;
TestedOn=|&lt;br /&gt;
PackageName=&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:GPS Applications]]&lt;/div&gt;</summary>
		<author><name>Niebert</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Navit</id>
		<title>Navit</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Navit"/>
				<updated>2010-12-28T14:19:39Z</updated>
		
		<summary type="html">&lt;p&gt;Niebert: /* Localize for Germany */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Application|Navit}}&lt;br /&gt;
&lt;br /&gt;
As described on the [http://navit.sourceforge.net/ Navit home page],&lt;br /&gt;
&lt;br /&gt;
&amp;lt;i&amp;gt;&amp;quot;'''Navit''' is a car navigation system with routing engine.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
The current vehicle position is either read from gpsd or directly from NMEA GPS sensors.&amp;quot;&amp;lt;/i&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Some people say Navit is also a good choice for pedestrian and bicycle navigation.&lt;br /&gt;
&lt;br /&gt;
[[Image:Navit-2241.png|thumb|Navit-r2241]]&lt;br /&gt;
&lt;br /&gt;
== Acknowledgment ==&lt;br /&gt;
&lt;br /&gt;
Thanks to [[User:Alessandro | Alessandro]], stefan_schmidt, cp15 and all Navit developers I have done a small (&amp;quot;not really working&amp;quot;) preview of Navit on Neo1973 at [http://www.telemobilityforum.com/eng/ Telemobility Forum 2007]. Thanks to [http://gfoss.it GFoss] guys to invite me.&lt;br /&gt;
''[[User:Tyrael | Tyrael]]''&lt;br /&gt;
&lt;br /&gt;
==Setting up Navit==&lt;br /&gt;
&lt;br /&gt;
===Install Navit===&lt;br /&gt;
&lt;br /&gt;
==== Map Size ====&lt;br /&gt;
Of you use e.g. entire Germany in an rectangle form it will have more than 500MB.&lt;br /&gt;
Navit on FR works with maps in the size of less that 350MB. So split the larger areas in portions with a smaller size than 350MB. Otherwise Navit will not be able to process the maps.&lt;br /&gt;
&lt;br /&gt;
Change navit.xml to modify the used map bin-file, e.g. germany1.bin to germany2.bin&lt;br /&gt;
&lt;br /&gt;
==== Navit on FSO (OM2008.x,SHR,...) ====&lt;br /&gt;
&lt;br /&gt;
You can now simply add a feed from there : http://download.navit-project.org/navit/openmoko/svn/&lt;br /&gt;
&lt;br /&gt;
Essentially, to enable this directory as [[Om_2008.8_Installer#How to add a Repository ?|feed]] and install or update navit do:&lt;br /&gt;
* Only for the first time:&lt;br /&gt;
 echo src navit http://download.navit-project.org/navit/openmoko/svn &amp;gt; /etc/opkg/navit-feed.conf&lt;br /&gt;
 opkg update&lt;br /&gt;
&lt;br /&gt;
* Always:&lt;br /&gt;
 opkg install navit&lt;br /&gt;
&lt;br /&gt;
Navit will be auto-updated when you run opkg upgrade later&lt;br /&gt;
&lt;br /&gt;
Navit might not be able to use gpsd at startup:&lt;br /&gt;
 navit:plugin_load:can't load '/usr/lib/navit/vehicle/&lt;br /&gt;
 libvehicle_gpsd.so', Error 'libgps.so.16: cannot open shared object  &lt;br /&gt;
 file: No such file or directory'&lt;br /&gt;
 navit:vehicle_new:invalid type 'gpsd'&lt;br /&gt;
&lt;br /&gt;
to solve this issue (necessary for SHR):&lt;br /&gt;
&lt;br /&gt;
 opkg install libgps17&lt;br /&gt;
 ln -s /usr/lib/libgps.so.17 /usr/lib/libgps.so.16&lt;br /&gt;
&lt;br /&gt;
====Navit on Debian====&lt;br /&gt;
Navit is now in Debian [http://packages.debian.org/source/testing/navit testing] and [http://packages.debian.org/source/unstable/navit unstable].&lt;br /&gt;
&lt;br /&gt;
Add the following line to &amp;lt;tt&amp;gt;/etc/apt/sources.list&amp;lt;/tt&amp;gt; with e.g. editor &amp;lt;tt&amp;gt;vi&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;nano&amp;lt;/tt&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
     deb http://ftp.de.debian.org/debian unstable main&lt;br /&gt;
&lt;br /&gt;
Then update with apt-get:&lt;br /&gt;
&lt;br /&gt;
     apt-get update&lt;br /&gt;
&lt;br /&gt;
The up-to-date source package is available through git at '''git://git.debian.org/git/collab-maint/navit.git''' ([http://git.debian.org/?p=collab-maint/navit.git;a=summary browse]).&lt;br /&gt;
&lt;br /&gt;
====Navit on Android====&lt;br /&gt;
Download current version [http://download.navit-project.org/navit/android_armv4t/svn/ navit-current.apk] on your Android. See [[Android usage]] for installing Apps on your [http://code.google.com/p/android-on-freerunner/wiki/Applications Android on Freerunner].&lt;br /&gt;
&lt;br /&gt;
   see [http://wiki.navit-project.org/index.php/Navit_on_Android Navit on Android] Navit Project Wiki&lt;br /&gt;
&lt;br /&gt;
You can use one download map which you have to copy on the FAT32 partition of your SD card as '''&amp;lt;tt&amp;gt;navitmap.bin&amp;lt;/tt&amp;gt;'''. &lt;br /&gt;
&lt;br /&gt;
During first use after installation, navit for android will ask you, if you want to intall [http://espeak.sourceforge.net/ TTS] (Text to Speech [http://www.speech.cs.cmu.edu/flite/ festival-lite]). If you decide to install TTS then Navit crashes (with version [http://download.navit-project.org/navit/android_armv4t/svn/ navit-svn-3495.apk]).&lt;br /&gt;
&lt;br /&gt;
====Navit on QtMoko====&lt;br /&gt;
You can find some information for installing Navit in the [[QtMoko]] article.&lt;br /&gt;
&lt;br /&gt;
===Set up the maps you want===&lt;br /&gt;
&lt;br /&gt;
====The Easy Way====&lt;br /&gt;
Use [http://maps.navit-project.org/download/ Navit Map Extractor] based on [http://www.openstreetmap.org OpenStreetMap].  Navigate to the region you want, and click &amp;quot;select&amp;quot; to select region, select the area you want, then click download. [[Image:osmdownload.jpg|200px|thumb|Download OpenStreetMaps]] &lt;br /&gt;
&lt;br /&gt;
If you just want the entire planet (as of this writing, ~1.8 GB), it's [http://maps.navit-project.org/planet.bin here].&lt;br /&gt;
&lt;br /&gt;
[http://downloads.cloudmade.com/ CloudMade] also has up-to-date maps from OpenStreetMap by country (by state in the US).&lt;br /&gt;
&lt;br /&gt;
{{Note|Be aware of the map size that can be used on your FR (On Android working with map sizes less than 350MB is O.K. on SHR 450MB also work, so SHR may not have a map size limit)}}&lt;br /&gt;
&lt;br /&gt;
====From the command line====&lt;br /&gt;
'''OpenStreetMap''' - follow directions at http://wiki.navit-project.org/index.php/OpenStreetMaps&lt;br /&gt;
* There are some pre-processed, up-to-date maps that can be grabbed with wget:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;wget -O germany.bin http://maps.navit-project.org/api/map/?bbox=5.185546875,46.845703125,15.46875,55.634765625&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can put a shell script into &amp;lt;tt&amp;gt;/usr/local/bin/update-maps&amp;lt;/tt&amp;gt;&lt;br /&gt;
  #!/bin/sh&lt;br /&gt;
  echo &amp;quot;Update OpenstreetMaps&amp;quot;&lt;br /&gt;
  echo &amp;quot;---------------------&amp;quot;&lt;br /&gt;
  echo &amp;quot;  download and store OSM maps on /media/card/maps&amp;quot;&lt;br /&gt;
  wget -O /media/card/maps/germany.bin http://maps.navit-project.org/api/map/?bbox=5.185546875,46.845703125,15.46875,55.634765625&lt;br /&gt;
  echo &amp;quot;update germany.bin finished&amp;quot;&lt;br /&gt;
You have to make the script executable with:&lt;br /&gt;
  chmod u+x /usr/local/bin/update-maps&lt;br /&gt;
Create a maps-directory (e.g. with path &amp;lt;tt&amp;gt;/media/card/maps/&amp;lt;/tt&amp;gt;) on your SD-card:&lt;br /&gt;
  mkdir /media/card/maps/&lt;br /&gt;
Then you can update with this script all your maps on the SD-card if you have internet connection:&lt;br /&gt;
  update-maps&lt;br /&gt;
* Here's an example to get the maps for the area around Seattle, WA:&lt;br /&gt;
** Find the map coordinates using http://informationfreeway.org/?lat=47.520270037501454&amp;amp;lon=-122.20130713167327&amp;amp;zoom=9&amp;amp;layers=B000F000&lt;br /&gt;
** 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):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;wget -O map1.osm http://www.openstreetmap.org/api/0.5/map?bbox=-122.2,47.5,-122,47.7&lt;br /&gt;
wget -O map2.osm http://www.openstreetmap.org/api/0.5/map?bbox=-122.4,47.5,-122.2,47.7&lt;br /&gt;
wget -O map3.osm http://www.openstreetmap.org/api/0.5/map?bbox=-122.4,47.3,-122.2,47.5&lt;br /&gt;
wget -O map4.osm http://www.openstreetmap.org/api/0.5/map?bbox=-122.2,47.3,-122,47.5&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* 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:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;cat *.osm | osm2navit --dedupe-ways mymap.bin&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Copy the map to the NEO===&lt;br /&gt;
To copy the map using scp (replace ''/directory'' as is appropriate in the following):&lt;br /&gt;
&amp;lt;pre&amp;gt;scp mymap.bin root@neo:/directory&amp;lt;/pre&amp;gt;&lt;br /&gt;
If you copy the map &amp;lt;tt&amp;gt;germany.bin&amp;lt;/tt&amp;gt; to the SD card on the Neo use e.g. in the directory &amp;lt;tt&amp;gt;maps&amp;lt;/tt&amp;gt;:&lt;br /&gt;
  scp germany.bin root@neo:/media/card/maps&lt;br /&gt;
Once it's somewhere on the NEO, Navit needs to know that it's there.&lt;br /&gt;
&amp;lt;pre&amp;gt;mkdir ~/.navit&lt;br /&gt;
cp /usr/share/navit/navit.xml ~/.navit/navit.xml&lt;br /&gt;
vi ~/.navit/navit.xml&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
note that in some version navit includes other xml files from /usr/share/navit, for instance mapsets are now defined in maps.xml.&lt;br /&gt;
&lt;br /&gt;
===Enable Maps in  Navit ===&lt;br /&gt;
Now you must let Navit know the maps you want to use. Several disabled mapset-tags are predefined. &lt;br /&gt;
In the navit.xml file, put the following into a new &amp;lt;mapset&amp;gt; section (and disable the default &amp;lt;mapset&amp;gt; just above - or else it will not work):&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;map type=&amp;quot;binfile&amp;quot; enabled=&amp;quot;yes&amp;quot; data=&amp;quot;/directory&amp;quot; /&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
For example with a &amp;lt;tt&amp;gt;germany.bin&amp;lt;/tt&amp;gt; on the SD-card you use:&lt;br /&gt;
 &amp;lt;mapset enabled=&amp;quot;yes&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;map type=&amp;quot;binfile&amp;quot; enabled=&amp;quot;yes&amp;quot; data=&amp;quot;/media/card/maps/germany.bin&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;/mapset&amp;gt;&lt;br /&gt;
or if you store all downloaded maps in the directory &amp;lt;tt&amp;gt;/media/card/maps&amp;lt;/tt&amp;gt; then add the following lines to &amp;lt;tt&amp;gt;navit.xml&amp;lt;/tt&amp;gt;.&lt;br /&gt;
 &amp;lt;mapset enabled=&amp;quot;yes&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;map type=&amp;quot;binfile&amp;quot; enabled=&amp;quot;yes&amp;quot; data=&amp;quot;/media/card/maps/*.bin&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;/mapset&amp;gt;&lt;br /&gt;
{{Note|this will only load the first map that machtes *.bin (its a bug/feature)!}}&lt;br /&gt;
{{Note|that the bin-file and the map set both have to be enabled}}&lt;br /&gt;
&lt;br /&gt;
Disable unused mapset sections by setting enabled to &amp;lt;tt&amp;gt;no&amp;lt;/tt&amp;gt;, e.g. the pre-installed sample maps at line 370 in &amp;lt;tt&amp;gt;navit.xml&amp;lt;/tt&amp;gt;.&lt;br /&gt;
 &amp;lt;mapset enabled=&amp;quot;no&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xi:include href=&amp;quot;$NAVIT_SHAREDIR/maps/*.xml&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;/mapset&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Run navit&lt;br /&gt;
** Start [[gllin]] (for GTA01)&lt;br /&gt;
** Start [[gpsd]] ( gpsd /tmp/nmeaNP )&lt;br /&gt;
** Start navit&lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
===Tips and Tricks===&lt;br /&gt;
====Center on Vehicle====&lt;br /&gt;
Navit supports a &amp;quot;always center on vehicle&amp;quot; option. &lt;br /&gt;
&lt;br /&gt;
To activate this add&lt;br /&gt;
 follow=&amp;quot;3&amp;quot;&lt;br /&gt;
to the &amp;lt;tt&amp;gt;vehicle&amp;lt;/tt&amp;gt; tag in navit.xml. &lt;br /&gt;
   &amp;lt;vehicle name=&amp;quot;Local GPS&amp;quot; profilename=&amp;quot;car&amp;quot; enabled=&amp;quot;yes&amp;quot; active=&amp;quot;1&amp;quot; follow=&amp;quot;3&amp;quot; &lt;br /&gt;
           source=&amp;quot;gpsd://localhost&amp;quot; gpsd_query=&amp;quot;w+xj&amp;quot; color=&amp;quot;#0000ff&amp;quot;&amp;gt;&lt;br /&gt;
The &amp;quot;3&amp;quot; causes to give the gui time to do something between the repaints (drag the map or browse the menu). When its set to &amp;quot;1&amp;quot; navit does nothing more than repainting the map continuously.&lt;br /&gt;
====Localize for Germany====&lt;br /&gt;
* [http://www.freeyourphone.de/portal_v1/viewtopic.php?f=22&amp;amp;t=1039 SHR German] from freeyourphone.de&lt;br /&gt;
* Go to [[Configure_SHR_for_German-speaking_use]] download&lt;br /&gt;
   http://work.zoff.cc/openmoko/shr/de_at/customize_pack_shr_no_maps.tar.gz&lt;br /&gt;
: extract &amp;lt;tt&amp;gt;init_shr_testing.sh&amp;lt;/tt&amp;gt; and see what [[User:Zoff99|zoff99]] did to customize navit for German speaking. Search for &amp;lt;tt&amp;gt;glibc&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;navit&amp;lt;/tt&amp;gt; in localization script for understanding the steps to be perform on your freerunner.&lt;br /&gt;
* [http://wiki.openmoko.org/wiki/Navit#Speech Speech Language]for more details.&lt;br /&gt;
* you can adapt these steps for other languages by replacing der_DE respective de parts to your favorite language setting.&lt;br /&gt;
http://wiki.openmoko.org/wiki/Navit#Speech&lt;br /&gt;
&lt;br /&gt;
==Routing==&lt;br /&gt;
[[Image:navit_main_menu.png|100px|thumb|Navit Main Menu]]&lt;br /&gt;
[[Image:navit_action_menu.png|100px|thumb|Navit Action Menu]]&lt;br /&gt;
The main menu has 4 submenus&lt;br /&gt;
* Action&lt;br /&gt;
* Settings&lt;br /&gt;
* Tools&lt;br /&gt;
* Route&lt;br /&gt;
Normally you would assume the entering a town can be found under the submenu Route, but Town is hidden under submenu Action. Route will provide the description of the route as text and a height profile of your trip. Tools was not working on 08/2009 Version of navit on SHR (see [[SHR User Manual]]).&lt;br /&gt;
&lt;br /&gt;
===Preselect Country of Destination===&lt;br /&gt;
Normally you have to select the the country first before choosing the town and street name. It might be more convenient for you if you preselect the country already with your settings.&lt;br /&gt;
The article [[Configure SHR for German-speaking use]] had a preselection of the country &amp;quot;Austria&amp;quot; in Navit. Adapt the localization for your country and maps in Navit, so that do not need to select the country anymore.&lt;br /&gt;
&lt;br /&gt;
Actually Navit derives the preselected country from the calling environments's locale (see [[Localization]]). Make sure, that LC_ALL ist '''not''' set though. Otherwise navit fails to interprete gpsd output and you end up with strange gps coordinates. When starting from gui (e.g. illume) you can achieve this by supplying an executable script /usr/local/bin/navit which might look like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
#export LANG=xx_YY.UTF-8   # Uncomment this line and replace xx_YY, if &lt;br /&gt;
                           # your gui's locale is not setup accordingly. &lt;br /&gt;
unset LC_ALL&lt;br /&gt;
exec /usr/bin/navit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
So a valid locale environment preselecting search for German cities would look like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@om-gta02 ~ $ locale&lt;br /&gt;
LANG=de_DE.UTF-8&lt;br /&gt;
LC_CTYPE=&amp;quot;de_DE.UTF-8&amp;quot;&lt;br /&gt;
LC_NUMERIC=&amp;quot;de_DE.UTF-8&amp;quot;&lt;br /&gt;
...&lt;br /&gt;
LC_MEASUREMENT=&amp;quot;de_DE.UTF-8&amp;quot;&lt;br /&gt;
LC_IDENTIFICATION=&amp;quot;de_DE.UTF-8&amp;quot;&lt;br /&gt;
LC_ALL=&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note that there's a limited number of [http://wiki.navit-project.org/index.php/OpenStreetMaps#Known_countries_by_osm2navit countries supported by osm2navit] and Navit's search function.&lt;br /&gt;
&lt;br /&gt;
===Select Destination===&lt;br /&gt;
[[Image:navit_select_country.png|100px|thumb|Select Country]]&lt;br /&gt;
&lt;br /&gt;
You can the select your destination in the main menu:&lt;br /&gt;
* via '''Bookmarks''', if you saved the previous location or&lt;br /&gt;
* via '''Town''', if you want to enter a new destination. If you use a destination more frequently, just save the location as bookmark.  &lt;br /&gt;
&lt;br /&gt;
When you click in the main menu on &amp;lt;i&amp;gt;Action&amp;lt;/i&amp;gt; the &amp;lt;i&amp;gt;Action&amp;lt;/i&amp;gt; menu appears with 4 subitems.&lt;br /&gt;
* Bookmarks of previous locations (stored in &amp;lt;tt&amp;gt;/home/root/.navit/destinations.txt&amp;lt;/tt&amp;gt;&lt;br /&gt;
* a globe showing a location as destination,&lt;br /&gt;
* a vehicle that shows the current GPS position of the vehicle. If the freerunner receives no GPS signal the locations of the vehicle is set to 0.0.0N and 0.0.0E. &lt;br /&gt;
* Town is the action to enter a destination.&lt;br /&gt;
* Quit navit is the last action in this submenu.&lt;br /&gt;
&lt;br /&gt;
Select the icon &amp;lt;i&amp;gt;Town&amp;lt;/i&amp;gt; in the main menu (if you see the map, you can get to the main menu just by clicking on the map).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Select Country====&lt;br /&gt;
[[Image:navit_country_selected.png|100px|thumb|Country Options]]&lt;br /&gt;
[[Image:navit_destination_details.png|100px|thumb|Enter Bookmark Details]]&lt;br /&gt;
&lt;br /&gt;
Before you can search for City you have to select a Country. To do that, click on the icon in the left upper corner of the search field (could look like a white square with blue top-left quadrant).&lt;br /&gt;
&lt;br /&gt;
Just type in the first letter of the country (e.g. &amp;quot;G&amp;quot;) and Navit makes suggestions (e.g. Gabon, Germany).&lt;br /&gt;
&lt;br /&gt;
====Enter Town====&lt;br /&gt;
&lt;br /&gt;
When you have selected the country (e.g. Germany) the flag appears and you can select the town.&lt;br /&gt;
Then you can save the town as bookmark and enter more details like streets to the selected town.&lt;br /&gt;
&lt;br /&gt;
The search is still a little buggy.&lt;br /&gt;
&lt;br /&gt;
====Enter Street====&lt;br /&gt;
You can enter the street and streetnumber and save it as bookmark when you use the destination often. &lt;br /&gt;
&lt;br /&gt;
====Bookmarks====&lt;br /&gt;
Navigation and planning of routes with Navit can be organized with bookmarks.&lt;br /&gt;
* set a bookmark as current position &lt;br /&gt;
* set a bookmark as destination&lt;br /&gt;
Then you can see the suggested route in blue on the map. &lt;br /&gt;
&lt;br /&gt;
Bookmarks are stored in:&lt;br /&gt;
  /home/root/.navit/bookmark.txt&lt;br /&gt;
&lt;br /&gt;
The GPS-location (if GPS-signal is available) will be highlighted with a small blue circle. The color of the circle can be defined via editing the &amp;lt;tt&amp;gt;navit.xml&amp;lt;/tt&amp;gt; (see [http://wiki.openmoko.org/wiki/Navit#Set_Cursor_Color select cursor color]).&lt;br /&gt;
* a dot in the blue circle is indicating that your are not moving,&lt;br /&gt;
* an arrowhead is indicating the direction, when you are moving.&lt;br /&gt;
Then routing can start and in the map the route is highlighted.&lt;br /&gt;
&lt;br /&gt;
====Screenshots in Navit Documentation====&lt;br /&gt;
The screenshots are made with &amp;lt;tt&amp;gt;gpe-scap&amp;lt;/tt&amp;gt;, that can be installed by:&lt;br /&gt;
  opkg install gpe-scap&lt;br /&gt;
if not installed already. Navigation through your installed application navit and login via ssh on your Freerunner &lt;br /&gt;
  ssh -l root 192.168.0.202&lt;br /&gt;
assuming that your Freerunner has the IP 192.168.0.202.&lt;br /&gt;
Any time you want to make a screenshot just start via your desktop computer &lt;br /&gt;
  gpe-scap&lt;br /&gt;
and save the screenshot to you freerunner.&lt;br /&gt;
Download the screenshot to your desktop computer with&lt;br /&gt;
  desktop# sftp://root@192.168.0.202&lt;br /&gt;
&lt;br /&gt;
== News ==&lt;br /&gt;
A deeper look into configuring Navit can be found in the [http://wiki.navit-project.org/index.php/Configuring_Navit Navit-Wiki].&lt;br /&gt;
&lt;br /&gt;
=== Getting the display right ===&lt;br /&gt;
&lt;br /&gt;
If using SHR the keyboard in country/town/street search mode does not fit on the street, make sure your gui configuration is set to the following line:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;gui type=&amp;quot;internal&amp;quot; font_size=&amp;quot;350&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The example line provided for freerunners hides some important icons. Namely, instead of typing your city name first, you will first have to click the button on the top left, to go into country search mode. Enter your country name, then the city name, in order to enable the search function. This requires your map data to be searchable.&lt;br /&gt;
&lt;br /&gt;
You can start in fullscreen mode with fullscreen=&amp;quot;1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;gui type=&amp;quot;internal&amp;quot; font_size=&amp;quot;350&amp;quot; fullscreen=&amp;quot;1&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you want to enable &amp;quot;+&amp;quot; and &amp;quot;-&amp;quot; as Zoom-In and Zoom-Out buttons on the bottom of the map enable the button with the following xml-tags:&lt;br /&gt;
 &amp;lt;osd enabled=&amp;quot;yes&amp;quot; type=&amp;quot;button&amp;quot; x=&amp;quot;-96&amp;quot; y=&amp;quot;-96&amp;quot; command=&amp;quot;zoom_in()&amp;quot;  src=&amp;quot;zoom_in.xpm&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;osd enabled=&amp;quot;yes&amp;quot; type=&amp;quot;button&amp;quot; x=&amp;quot;0&amp;quot;   y=&amp;quot;-96&amp;quot; command=&amp;quot;zoom_out()&amp;quot; src=&amp;quot;zoom_out.xpm&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can find sample Layouts here:&lt;br /&gt;
[http://wiki.navit-project.org/index.php/OSD_Layouts Sample Layouts from navit-wiki]&lt;br /&gt;
&lt;br /&gt;
=== Set Cursor Color ===&lt;br /&gt;
[[Image:red_cursor.png|90px|thumb|Red Cursor]]&lt;br /&gt;
If you navigate, the route is marked in blue color on the map. The current position of the vehicle is displayed by a blue circle. The circle is sometimes difficult to see on the blue track. If you want to change the color, size  of the vehicle cursor edit the vehicle XML-environment in navit.xml (e.g. replace blue color #0000FF with red color #FF0000 -- for details of  [http://html-color-codes.info Color Codes] select color, copy and paste code in &amp;lt;tt&amp;gt;navit.xml&amp;lt;/tt&amp;gt;)  &lt;br /&gt;
&lt;br /&gt;
     &amp;lt;vehicle name=&amp;quot;Local GPS&amp;quot; profilename=&amp;quot;car&amp;quot; enabled=&amp;quot;yes&amp;quot; active=&amp;quot;1&amp;quot; source=&amp;quot;gpsd://localhost&amp;quot; gpsd_query=&amp;quot;w+xj&amp;quot; color=&amp;quot;#0000ff&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;!-- Navit can write a tracklog in several formats (gpx, nmea or textfile): --&amp;gt;&lt;br /&gt;
        &amp;lt;!-- &amp;lt;log type=&amp;quot;gpx&amp;quot; data=&amp;quot;track_%Y%m%d-%i.gpx&amp;quot; flush_size=&amp;quot;1000&amp;quot; flush_time=&amp;quot;30&amp;quot;/&amp;gt; --&amp;gt;&lt;br /&gt;
            &amp;lt;cursor w=&amp;quot;56&amp;quot; h=&amp;quot;56&amp;quot;&amp;gt;&lt;br /&gt;
               &amp;lt;!-- tag defines the circle for the cursor --&amp;gt;&lt;br /&gt;
                &amp;lt;itemgra&amp;gt;&lt;br /&gt;
                    &amp;lt;circle color=&amp;quot;#ff0000&amp;quot; radius=&amp;quot;42&amp;quot; width=&amp;quot;6&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;0&amp;quot; y=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/circle&amp;gt;&lt;br /&gt;
                   &amp;lt;circle color=&amp;quot;#ffffff&amp;quot; radius=&amp;quot;48&amp;quot; width=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;0&amp;quot; y=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/circle&amp;gt;&lt;br /&gt;
                   &amp;lt;circle color=&amp;quot;#ffffff&amp;quot; radius=&amp;quot;36&amp;quot; width=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;0&amp;quot; y=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/circle&amp;gt;&lt;br /&gt;
                &amp;lt;/itemgra&amp;gt;&lt;br /&gt;
               &amp;lt;!-- tag defines the dot when the vehicle is not moving --&amp;gt;&lt;br /&gt;
                &amp;lt;itemgra speed_range=&amp;quot;-2&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;polyline color=&amp;quot;#ff0000&amp;quot; width=&amp;quot;6&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;1&amp;quot; y=&amp;quot;1&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;1&amp;quot; y=&amp;quot;-1&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;-1&amp;quot; y=&amp;quot;-1&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;-1&amp;quot; y=&amp;quot;-1&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/polyline&amp;gt;&lt;br /&gt;
                  &amp;lt;circle color=&amp;quot;#ffffff&amp;quot; radius=&amp;quot;9&amp;quot; width=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;0&amp;quot; y=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/circle&amp;gt;&lt;br /&gt;
                &amp;lt;/itemgra&amp;gt;&lt;br /&gt;
                &amp;lt;!-- This itemgra-tag defines the arrow when the vehicle moves --&amp;gt;&lt;br /&gt;
                &amp;lt;itemgra speed_range=&amp;quot;3-&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;polyline color=&amp;quot;#ff0000&amp;quot; width=&amp;quot;6&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;-7&amp;quot; y=&amp;quot;-10&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;0&amp;quot; y=&amp;quot;12&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;7&amp;quot; y=&amp;quot;-10&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/polyline&amp;gt;&lt;br /&gt;
                  &amp;lt;polyline color=&amp;quot;#ffffff&amp;quot; width=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;+10&amp;quot; y=&amp;quot;-10&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;3&amp;quot; y=&amp;quot;15&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/polyline&amp;gt;&lt;br /&gt;
                    &amp;lt;polyline color=&amp;quot;#ffffff&amp;quot; width=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;-10&amp;quot; y=&amp;quot;-10&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;-3&amp;quot; y=&amp;quot;15&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/polyline&amp;gt;&lt;br /&gt;
                &amp;lt;/itemgra&amp;gt;&lt;br /&gt;
        &amp;lt;/cursor&amp;gt;&lt;br /&gt;
    &amp;lt;/vehicle&amp;gt;&lt;br /&gt;
The following screenshot show Navit with a red cursor on a blue track:&lt;br /&gt;
&lt;br /&gt;
[[Image:navit_color_cursor.png|200px|thumb|Red Cursor Color on blue track - vehicle not moving]]&lt;br /&gt;
&lt;br /&gt;
=== Speech ===&lt;br /&gt;
Navit can speak if you install [http://espeak.sourceforge.net/ eSpeak] + [http://www.freebsoft.org/speechd speech-dispatcher] and updates your navit.xml file.&lt;br /&gt;
&lt;br /&gt;
If you want navit using your language, and setting LC_MESSAGES fails due to missing glibc locale, set the enviroment variable LANGUAGE. For instance running&lt;br /&gt;
  LANGUAGE=de navit&lt;br /&gt;
will set the ui and output to german.&lt;br /&gt;
&lt;br /&gt;
For SHR there is a big german localization patch see [[Configure SHR for German-speaking use]].&lt;br /&gt;
&lt;br /&gt;
One way to configure speech output:&lt;br /&gt;
&lt;br /&gt;
* mokoTTS aims to integrate these packages in OM:&lt;br /&gt;
http://projects.openmoko.org/projects/mokotts/&lt;br /&gt;
&lt;br /&gt;
install espeak, dotconf, and then speech-dispatcher.&lt;br /&gt;
note: running 2008.8 updating from zecke's &amp;quot;testing&amp;quot; repo does not require &amp;quot;dotconf&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Speech Language ====&lt;br /&gt;
To change the speech tag in navit.xml:&lt;br /&gt;
  &amp;lt;speech type=&amp;quot;cmdline&amp;quot; data=&amp;quot;spd-say '%s'&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;'''spd-say -l fr '%s''''&amp;quot; for using the French voice for example.&lt;br /&gt;
* &amp;quot;'''spd-say -l de '%s''''&amp;quot; for using the German voice for example.&lt;br /&gt;
&lt;br /&gt;
{{Note|You can check speech dispatcher output from the shell.}}&lt;br /&gt;
Example for German:&lt;br /&gt;
  spd-say -l=de &amp;quot;Dies ist die Winterstraße 23&amp;quot;&lt;br /&gt;
The speech-dispatcher is blocking the audio after suspend. So after a suspend you will hear no ringtone, when a phone call is coming in and you cannot listen do audio files.&lt;br /&gt;
A solution is to disable starting of speech-dispatcher with:&lt;br /&gt;
  update-rc.d -f speech-dispatcher remove&lt;br /&gt;
Then the speech-dispatcher should be started if and only if navit is running and shut down when navit is closed.&lt;br /&gt;
&lt;br /&gt;
Furthermore navit should be started indirect with a script &amp;lt;tt&amp;gt;navit.sh&amp;lt;/tt&amp;gt; instead of a direct start with the binary located in &amp;lt;tt&amp;gt;/usr/bin/navit&amp;lt;/tt&amp;gt;. The script &amp;lt;tt&amp;gt;navit.sh&amp;lt;/tt&amp;gt; listed below starts speech-dispatcher before navit, and stops it afterwards. See http://lists.openmoko.org/nabble.html#nabble-td1088795&lt;br /&gt;
&lt;br /&gt;
The following script is doing the suggested procedure. This script includes a language fix for Austria (see [[Configure SHR for German-speaking use]]).&lt;br /&gt;
  export LANG=de_AT.utf8&amp;lt;tt&amp;gt;spd-say --language=de Output-String&amp;lt;/tt&amp;gt; You can replace the --language by -l }&lt;br /&gt;
Replace '''&amp;lt;tt&amp;gt;de_AT&amp;lt;/tt&amp;gt;''' in this line with the appropriate language variable in the following script &amp;lt;tt&amp;gt;navit.sh&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#! /bin/sh&lt;br /&gt;
#&lt;br /&gt;
# Copyright Matthias Hentges &amp;lt;devel@hentges.net&amp;gt; (c) 2008&lt;br /&gt;
# License: GPL (see http://www.gnu.org/licenses/gpl.txt for a copy of the license)&lt;br /&gt;
#&lt;br /&gt;
# Filename: navit.sh&lt;br /&gt;
# Date: 20080105 (YMD)&lt;br /&gt;
#&lt;br /&gt;
#################################################################################&lt;br /&gt;
#&lt;br /&gt;
# 20080105 - v0.0.1	- Initial release&lt;br /&gt;
# 20090818 -            - Zoff &amp;lt;zoff@zoff.cc&amp;gt; addons and fixes&lt;br /&gt;
#&lt;br /&gt;
#&lt;br /&gt;
#################################################################################&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#################################################################################&lt;br /&gt;
#&lt;br /&gt;
# On devices with low memory (&amp;lt; 512Mb?) Navit will segfault on start.&lt;br /&gt;
# This can be worked around by doing&lt;br /&gt;
# &amp;quot;echo 1 &amp;gt; /proc/sys/vm/overcommit_memory&amp;quot;&lt;br /&gt;
#&lt;br /&gt;
#################################################################################&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
. /etc/profile&lt;br /&gt;
&lt;br /&gt;
set|grep LC&lt;br /&gt;
&lt;br /&gt;
#### Stop the speech dispatcher ####&lt;br /&gt;
/etc/init.d/speech-dispatcher stop&lt;br /&gt;
&lt;br /&gt;
#### Language Fix #################&lt;br /&gt;
set|grep LC&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
export LC_ALL=''&lt;br /&gt;
unset LC_ALL&lt;br /&gt;
export LANG=de_AT.utf8&lt;br /&gt;
&lt;br /&gt;
set|grep LC&lt;br /&gt;
&lt;br /&gt;
#### Start the speech dispatcher ####&lt;br /&gt;
/etc/init.d/speech-dispatcher start &amp;amp;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
set|grep LC&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# need cpu and display&lt;br /&gt;
mdbus -s org.freesmartphone.ousaged /org/freesmartphone/Usage org.freesmartphone.Usage.SetResourcePolicy Display enabled&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if test &amp;quot;`cat /proc/meminfo | grep ^MemTotal | awk '{print $2}'`&amp;quot; -lt &amp;quot;500000&amp;quot;&lt;br /&gt;
then&lt;br /&gt;
	if test &amp;quot;$USER&amp;quot; = &amp;quot;root&amp;quot;&lt;br /&gt;
	then&lt;br /&gt;
		echo &amp;quot;Enabling low-mem workaround...&amp;quot;&lt;br /&gt;
		echo 1 &amp;gt; /proc/sys/vm/overcommit_memory&lt;br /&gt;
	else&lt;br /&gt;
		echo &amp;quot;I need root-privs to enable the low-mem workaround!&amp;quot;&lt;br /&gt;
	fi&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
######### Start NAVIT NOW ############&lt;br /&gt;
&lt;br /&gt;
navit $*&lt;br /&gt;
	&lt;br /&gt;
#### Stop the speech dispatcher ####&lt;br /&gt;
&lt;br /&gt;
/etc/init.d/speech-dispatcher stop&lt;br /&gt;
&lt;br /&gt;
# release cpu and display&lt;br /&gt;
mdbus -s org.freesmartphone.ousaged /org/freesmartphone/Usage org.freesmartphone.Usage.SetResourcePolicy Display auto&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Save the &amp;lt;tt&amp;gt;navit.sh&amp;lt;/tt&amp;gt; script in:&lt;br /&gt;
  /usr/bin/navit.sh&lt;br /&gt;
Make the script executable:&lt;br /&gt;
  chmod u+x /usr/bin/navit.sh&lt;br /&gt;
Now you have to edit the desktop icon, so that it starts this script &amp;lt;tt&amp;gt;navit.sh&amp;lt;/tt&amp;gt; instead of the binary &amp;lt;tt&amp;gt;/usr/bin/navit&amp;lt;/tt&amp;gt;.&lt;br /&gt;
  nano /usr/share/applications/navit.desktop&lt;br /&gt;
Edit the line with &amp;lt;tt&amp;gt;Exec=...&amp;lt;/tt&amp;gt;, so that it starts the script &amp;lt;tt&amp;gt;navit.sh&amp;lt;/tt&amp;gt; instead of the navit binary.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[Desktop Entry]&lt;br /&gt;
Version=1.0&lt;br /&gt;
Name=Navit&lt;br /&gt;
Name[de]=Navit&lt;br /&gt;
Name[fr]=Navit&lt;br /&gt;
Comment=The open source vector based navigation program with routing engine&lt;br /&gt;
Comment[de]=Ein vektorbasiertes Navigationsprogramm&lt;br /&gt;
Comment[fr]=Le logiciel opensource de navigation vectorielle&lt;br /&gt;
Exec=/usr/bin/navit.sh&lt;br /&gt;
Icon=navit&lt;br /&gt;
StartupNotify=true&lt;br /&gt;
Terminal=false&lt;br /&gt;
Type=Application&lt;br /&gt;
Categories=GTK;Utility;Geography;&lt;br /&gt;
GenericName=Navit&lt;br /&gt;
GenericName[de]=Navit&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Alternatively''', you can make speech-dispatcher restart on resume, see http://trac.shr-project.org/trac/ticket/494&lt;br /&gt;
&lt;br /&gt;
=== Script to download OSM maps ===&lt;br /&gt;
[[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&lt;br /&gt;
dlOSM.sh &amp;lt;minimum latitude&amp;gt; &amp;lt;maximum latitude&amp;gt; &amp;lt;minimum longitude&amp;gt; &amp;lt;maximum longitude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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...&lt;br /&gt;
&lt;br /&gt;
dlOSM.sh:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/usr/bin/python&lt;br /&gt;
&lt;br /&gt;
import os&lt;br /&gt;
import sys&lt;br /&gt;
#import math&lt;br /&gt;
&lt;br /&gt;
def doIt(cmd):&lt;br /&gt;
  os.system(cmd)&lt;br /&gt;
&lt;br /&gt;
def getOsms(basename, minLat, maxLat, minLon, maxLon):&lt;br /&gt;
  '''basename - base name of map, maps are named {basename}{count}.osm&lt;br /&gt;
  minLat - latitude of the west side of the map&lt;br /&gt;
  maxLat - latitude of the east side of the map&lt;br /&gt;
  minLon - longitude of the north side of the map&lt;br /&gt;
  maxLon - longitude of the south side of the map'''&lt;br /&gt;
&lt;br /&gt;
  wgetCmdTemplate = 'wget -O %s%s.osm http://api.openstreetmap.org/api/0.6/map?bbox=%s,%s,%s,%s'&lt;br /&gt;
&lt;br /&gt;
  currLat = minLat&lt;br /&gt;
  mapCount = 0&lt;br /&gt;
  while currLat &amp;lt; maxLat:&lt;br /&gt;
    nextLat = min(currLat + 0.1, maxLat)&lt;br /&gt;
&lt;br /&gt;
    currLon = minLon&lt;br /&gt;
    while currLon &amp;lt; maxLon:&lt;br /&gt;
      nextLon = min(currLon + 0.1, maxLon)&lt;br /&gt;
&lt;br /&gt;
      doIt(wgetCmdTemplate % (basename, mapCount, currLon, currLat, nextLon, nextLat))&lt;br /&gt;
&lt;br /&gt;
      currLon = nextLon&lt;br /&gt;
      mapCount = mapCount + 1&lt;br /&gt;
&lt;br /&gt;
    currLat = nextLat&lt;br /&gt;
&lt;br /&gt;
(minLat, maxLat, minLon, maxLon) = map(float, sys.argv[1:])&lt;br /&gt;
getOsms('map', minLat, maxLat, minLon, maxLon)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;onlyinclude&amp;gt;&lt;br /&gt;
{{ApplicationBox|&lt;br /&gt;
Name=[[Navit]]|&lt;br /&gt;
Description=Navit is a car navigation system with routing engine.|&lt;br /&gt;
Screenshot=Screenshot-3.png|&lt;br /&gt;
Homepage=http://navit.sourceforge.net|&lt;br /&gt;
TestedOn=|&lt;br /&gt;
PackageName=&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:GPS Applications]]&lt;/div&gt;</summary>
		<author><name>Niebert</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Navit</id>
		<title>Navit</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Navit"/>
				<updated>2010-12-28T14:18:03Z</updated>
		
		<summary type="html">&lt;p&gt;Niebert: /* Localize for Germany */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Application|Navit}}&lt;br /&gt;
&lt;br /&gt;
As described on the [http://navit.sourceforge.net/ Navit home page],&lt;br /&gt;
&lt;br /&gt;
&amp;lt;i&amp;gt;&amp;quot;'''Navit''' is a car navigation system with routing engine.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
The current vehicle position is either read from gpsd or directly from NMEA GPS sensors.&amp;quot;&amp;lt;/i&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Some people say Navit is also a good choice for pedestrian and bicycle navigation.&lt;br /&gt;
&lt;br /&gt;
[[Image:Navit-2241.png|thumb|Navit-r2241]]&lt;br /&gt;
&lt;br /&gt;
== Acknowledgment ==&lt;br /&gt;
&lt;br /&gt;
Thanks to [[User:Alessandro | Alessandro]], stefan_schmidt, cp15 and all Navit developers I have done a small (&amp;quot;not really working&amp;quot;) preview of Navit on Neo1973 at [http://www.telemobilityforum.com/eng/ Telemobility Forum 2007]. Thanks to [http://gfoss.it GFoss] guys to invite me.&lt;br /&gt;
''[[User:Tyrael | Tyrael]]''&lt;br /&gt;
&lt;br /&gt;
==Setting up Navit==&lt;br /&gt;
&lt;br /&gt;
===Install Navit===&lt;br /&gt;
&lt;br /&gt;
==== Map Size ====&lt;br /&gt;
Of you use e.g. entire Germany in an rectangle form it will have more than 500MB.&lt;br /&gt;
Navit on FR works with maps in the size of less that 350MB. So split the larger areas in portions with a smaller size than 350MB. Otherwise Navit will not be able to process the maps.&lt;br /&gt;
&lt;br /&gt;
Change navit.xml to modify the used map bin-file, e.g. germany1.bin to germany2.bin&lt;br /&gt;
&lt;br /&gt;
==== Navit on FSO (OM2008.x,SHR,...) ====&lt;br /&gt;
&lt;br /&gt;
You can now simply add a feed from there : http://download.navit-project.org/navit/openmoko/svn/&lt;br /&gt;
&lt;br /&gt;
Essentially, to enable this directory as [[Om_2008.8_Installer#How to add a Repository ?|feed]] and install or update navit do:&lt;br /&gt;
* Only for the first time:&lt;br /&gt;
 echo src navit http://download.navit-project.org/navit/openmoko/svn &amp;gt; /etc/opkg/navit-feed.conf&lt;br /&gt;
 opkg update&lt;br /&gt;
&lt;br /&gt;
* Always:&lt;br /&gt;
 opkg install navit&lt;br /&gt;
&lt;br /&gt;
Navit will be auto-updated when you run opkg upgrade later&lt;br /&gt;
&lt;br /&gt;
Navit might not be able to use gpsd at startup:&lt;br /&gt;
 navit:plugin_load:can't load '/usr/lib/navit/vehicle/&lt;br /&gt;
 libvehicle_gpsd.so', Error 'libgps.so.16: cannot open shared object  &lt;br /&gt;
 file: No such file or directory'&lt;br /&gt;
 navit:vehicle_new:invalid type 'gpsd'&lt;br /&gt;
&lt;br /&gt;
to solve this issue (necessary for SHR):&lt;br /&gt;
&lt;br /&gt;
 opkg install libgps17&lt;br /&gt;
 ln -s /usr/lib/libgps.so.17 /usr/lib/libgps.so.16&lt;br /&gt;
&lt;br /&gt;
====Navit on Debian====&lt;br /&gt;
Navit is now in Debian [http://packages.debian.org/source/testing/navit testing] and [http://packages.debian.org/source/unstable/navit unstable].&lt;br /&gt;
&lt;br /&gt;
Add the following line to &amp;lt;tt&amp;gt;/etc/apt/sources.list&amp;lt;/tt&amp;gt; with e.g. editor &amp;lt;tt&amp;gt;vi&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;nano&amp;lt;/tt&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
     deb http://ftp.de.debian.org/debian unstable main&lt;br /&gt;
&lt;br /&gt;
Then update with apt-get:&lt;br /&gt;
&lt;br /&gt;
     apt-get update&lt;br /&gt;
&lt;br /&gt;
The up-to-date source package is available through git at '''git://git.debian.org/git/collab-maint/navit.git''' ([http://git.debian.org/?p=collab-maint/navit.git;a=summary browse]).&lt;br /&gt;
&lt;br /&gt;
====Navit on Android====&lt;br /&gt;
Download current version [http://download.navit-project.org/navit/android_armv4t/svn/ navit-current.apk] on your Android. See [[Android usage]] for installing Apps on your [http://code.google.com/p/android-on-freerunner/wiki/Applications Android on Freerunner].&lt;br /&gt;
&lt;br /&gt;
   see [http://wiki.navit-project.org/index.php/Navit_on_Android Navit on Android] Navit Project Wiki&lt;br /&gt;
&lt;br /&gt;
You can use one download map which you have to copy on the FAT32 partition of your SD card as '''&amp;lt;tt&amp;gt;navitmap.bin&amp;lt;/tt&amp;gt;'''. &lt;br /&gt;
&lt;br /&gt;
During first use after installation, navit for android will ask you, if you want to intall [http://espeak.sourceforge.net/ TTS] (Text to Speech [http://www.speech.cs.cmu.edu/flite/ festival-lite]). If you decide to install TTS then Navit crashes (with version [http://download.navit-project.org/navit/android_armv4t/svn/ navit-svn-3495.apk]).&lt;br /&gt;
&lt;br /&gt;
====Navit on QtMoko====&lt;br /&gt;
You can find some information for installing Navit in the [[QtMoko]] article.&lt;br /&gt;
&lt;br /&gt;
===Set up the maps you want===&lt;br /&gt;
&lt;br /&gt;
====The Easy Way====&lt;br /&gt;
Use [http://maps.navit-project.org/download/ Navit Map Extractor] based on [http://www.openstreetmap.org OpenStreetMap].  Navigate to the region you want, and click &amp;quot;select&amp;quot; to select region, select the area you want, then click download. [[Image:osmdownload.jpg|200px|thumb|Download OpenStreetMaps]] &lt;br /&gt;
&lt;br /&gt;
If you just want the entire planet (as of this writing, ~1.8 GB), it's [http://maps.navit-project.org/planet.bin here].&lt;br /&gt;
&lt;br /&gt;
[http://downloads.cloudmade.com/ CloudMade] also has up-to-date maps from OpenStreetMap by country (by state in the US).&lt;br /&gt;
&lt;br /&gt;
{{Note|Be aware of the map size that can be used on your FR (On Android working with map sizes less than 350MB is O.K. on SHR 450MB also work, so SHR may not have a map size limit)}}&lt;br /&gt;
&lt;br /&gt;
====From the command line====&lt;br /&gt;
'''OpenStreetMap''' - follow directions at http://wiki.navit-project.org/index.php/OpenStreetMaps&lt;br /&gt;
* There are some pre-processed, up-to-date maps that can be grabbed with wget:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;wget -O germany.bin http://maps.navit-project.org/api/map/?bbox=5.185546875,46.845703125,15.46875,55.634765625&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can put a shell script into &amp;lt;tt&amp;gt;/usr/local/bin/update-maps&amp;lt;/tt&amp;gt;&lt;br /&gt;
  #!/bin/sh&lt;br /&gt;
  echo &amp;quot;Update OpenstreetMaps&amp;quot;&lt;br /&gt;
  echo &amp;quot;---------------------&amp;quot;&lt;br /&gt;
  echo &amp;quot;  download and store OSM maps on /media/card/maps&amp;quot;&lt;br /&gt;
  wget -O /media/card/maps/germany.bin http://maps.navit-project.org/api/map/?bbox=5.185546875,46.845703125,15.46875,55.634765625&lt;br /&gt;
  echo &amp;quot;update germany.bin finished&amp;quot;&lt;br /&gt;
You have to make the script executable with:&lt;br /&gt;
  chmod u+x /usr/local/bin/update-maps&lt;br /&gt;
Create a maps-directory (e.g. with path &amp;lt;tt&amp;gt;/media/card/maps/&amp;lt;/tt&amp;gt;) on your SD-card:&lt;br /&gt;
  mkdir /media/card/maps/&lt;br /&gt;
Then you can update with this script all your maps on the SD-card if you have internet connection:&lt;br /&gt;
  update-maps&lt;br /&gt;
* Here's an example to get the maps for the area around Seattle, WA:&lt;br /&gt;
** Find the map coordinates using http://informationfreeway.org/?lat=47.520270037501454&amp;amp;lon=-122.20130713167327&amp;amp;zoom=9&amp;amp;layers=B000F000&lt;br /&gt;
** 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):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;wget -O map1.osm http://www.openstreetmap.org/api/0.5/map?bbox=-122.2,47.5,-122,47.7&lt;br /&gt;
wget -O map2.osm http://www.openstreetmap.org/api/0.5/map?bbox=-122.4,47.5,-122.2,47.7&lt;br /&gt;
wget -O map3.osm http://www.openstreetmap.org/api/0.5/map?bbox=-122.4,47.3,-122.2,47.5&lt;br /&gt;
wget -O map4.osm http://www.openstreetmap.org/api/0.5/map?bbox=-122.2,47.3,-122,47.5&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* 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:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;cat *.osm | osm2navit --dedupe-ways mymap.bin&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Copy the map to the NEO===&lt;br /&gt;
To copy the map using scp (replace ''/directory'' as is appropriate in the following):&lt;br /&gt;
&amp;lt;pre&amp;gt;scp mymap.bin root@neo:/directory&amp;lt;/pre&amp;gt;&lt;br /&gt;
If you copy the map &amp;lt;tt&amp;gt;germany.bin&amp;lt;/tt&amp;gt; to the SD card on the Neo use e.g. in the directory &amp;lt;tt&amp;gt;maps&amp;lt;/tt&amp;gt;:&lt;br /&gt;
  scp germany.bin root@neo:/media/card/maps&lt;br /&gt;
Once it's somewhere on the NEO, Navit needs to know that it's there.&lt;br /&gt;
&amp;lt;pre&amp;gt;mkdir ~/.navit&lt;br /&gt;
cp /usr/share/navit/navit.xml ~/.navit/navit.xml&lt;br /&gt;
vi ~/.navit/navit.xml&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
note that in some version navit includes other xml files from /usr/share/navit, for instance mapsets are now defined in maps.xml.&lt;br /&gt;
&lt;br /&gt;
===Enable Maps in  Navit ===&lt;br /&gt;
Now you must let Navit know the maps you want to use. Several disabled mapset-tags are predefined. &lt;br /&gt;
In the navit.xml file, put the following into a new &amp;lt;mapset&amp;gt; section (and disable the default &amp;lt;mapset&amp;gt; just above - or else it will not work):&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;map type=&amp;quot;binfile&amp;quot; enabled=&amp;quot;yes&amp;quot; data=&amp;quot;/directory&amp;quot; /&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
For example with a &amp;lt;tt&amp;gt;germany.bin&amp;lt;/tt&amp;gt; on the SD-card you use:&lt;br /&gt;
 &amp;lt;mapset enabled=&amp;quot;yes&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;map type=&amp;quot;binfile&amp;quot; enabled=&amp;quot;yes&amp;quot; data=&amp;quot;/media/card/maps/germany.bin&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;/mapset&amp;gt;&lt;br /&gt;
or if you store all downloaded maps in the directory &amp;lt;tt&amp;gt;/media/card/maps&amp;lt;/tt&amp;gt; then add the following lines to &amp;lt;tt&amp;gt;navit.xml&amp;lt;/tt&amp;gt;.&lt;br /&gt;
 &amp;lt;mapset enabled=&amp;quot;yes&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;map type=&amp;quot;binfile&amp;quot; enabled=&amp;quot;yes&amp;quot; data=&amp;quot;/media/card/maps/*.bin&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;/mapset&amp;gt;&lt;br /&gt;
{{Note|this will only load the first map that machtes *.bin (its a bug/feature)!}}&lt;br /&gt;
{{Note|that the bin-file and the map set both have to be enabled}}&lt;br /&gt;
&lt;br /&gt;
Disable unused mapset sections by setting enabled to &amp;lt;tt&amp;gt;no&amp;lt;/tt&amp;gt;, e.g. the pre-installed sample maps at line 370 in &amp;lt;tt&amp;gt;navit.xml&amp;lt;/tt&amp;gt;.&lt;br /&gt;
 &amp;lt;mapset enabled=&amp;quot;no&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xi:include href=&amp;quot;$NAVIT_SHAREDIR/maps/*.xml&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;/mapset&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Run navit&lt;br /&gt;
** Start [[gllin]] (for GTA01)&lt;br /&gt;
** Start [[gpsd]] ( gpsd /tmp/nmeaNP )&lt;br /&gt;
** Start navit&lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
===Tips and Tricks===&lt;br /&gt;
====Center on Vehicle====&lt;br /&gt;
Navit supports a &amp;quot;always center on vehicle&amp;quot; option. &lt;br /&gt;
&lt;br /&gt;
To activate this add&lt;br /&gt;
 follow=&amp;quot;3&amp;quot;&lt;br /&gt;
to the &amp;lt;tt&amp;gt;vehicle&amp;lt;/tt&amp;gt; tag in navit.xml. &lt;br /&gt;
   &amp;lt;vehicle name=&amp;quot;Local GPS&amp;quot; profilename=&amp;quot;car&amp;quot; enabled=&amp;quot;yes&amp;quot; active=&amp;quot;1&amp;quot; follow=&amp;quot;3&amp;quot; &lt;br /&gt;
           source=&amp;quot;gpsd://localhost&amp;quot; gpsd_query=&amp;quot;w+xj&amp;quot; color=&amp;quot;#0000ff&amp;quot;&amp;gt;&lt;br /&gt;
The &amp;quot;3&amp;quot; causes to give the gui time to do something between the repaints (drag the map or browse the menu). When its set to &amp;quot;1&amp;quot; navit does nothing more than repainting the map continuously.&lt;br /&gt;
====Localize for Germany====&lt;br /&gt;
* [http://www.freeyourphone.de/portal_v1/viewtopic.php?f=22&amp;amp;t=1039 SHR German] from freeyourphone.de&lt;br /&gt;
* Go to [[Configure_SHR_for_German-speaking_use]] download&lt;br /&gt;
   http://work.zoff.cc/openmoko/shr/de_at/customize_pack_shr_no_maps.tar.gz&lt;br /&gt;
: extract &amp;lt;tt&amp;gt;init_shr_testing.sh&amp;lt;/tt&amp;gt; and see what [[User:Zoff99|zoff99]] did to customize navit for German speaking. Search for &amp;lt;tt&amp;gt;glibc&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;navit&amp;lt;/tt&amp;gt; in localization script for understanding the steps to be perform on your freerunner.&lt;br /&gt;
* you can adapt these steps for other languages by replacing der_DE respective de parts to your favorite language setting.&lt;br /&gt;
&lt;br /&gt;
==Routing==&lt;br /&gt;
[[Image:navit_main_menu.png|100px|thumb|Navit Main Menu]]&lt;br /&gt;
[[Image:navit_action_menu.png|100px|thumb|Navit Action Menu]]&lt;br /&gt;
The main menu has 4 submenus&lt;br /&gt;
* Action&lt;br /&gt;
* Settings&lt;br /&gt;
* Tools&lt;br /&gt;
* Route&lt;br /&gt;
Normally you would assume the entering a town can be found under the submenu Route, but Town is hidden under submenu Action. Route will provide the description of the route as text and a height profile of your trip. Tools was not working on 08/2009 Version of navit on SHR (see [[SHR User Manual]]).&lt;br /&gt;
&lt;br /&gt;
===Preselect Country of Destination===&lt;br /&gt;
Normally you have to select the the country first before choosing the town and street name. It might be more convenient for you if you preselect the country already with your settings.&lt;br /&gt;
The article [[Configure SHR for German-speaking use]] had a preselection of the country &amp;quot;Austria&amp;quot; in Navit. Adapt the localization for your country and maps in Navit, so that do not need to select the country anymore.&lt;br /&gt;
&lt;br /&gt;
Actually Navit derives the preselected country from the calling environments's locale (see [[Localization]]). Make sure, that LC_ALL ist '''not''' set though. Otherwise navit fails to interprete gpsd output and you end up with strange gps coordinates. When starting from gui (e.g. illume) you can achieve this by supplying an executable script /usr/local/bin/navit which might look like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
#export LANG=xx_YY.UTF-8   # Uncomment this line and replace xx_YY, if &lt;br /&gt;
                           # your gui's locale is not setup accordingly. &lt;br /&gt;
unset LC_ALL&lt;br /&gt;
exec /usr/bin/navit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
So a valid locale environment preselecting search for German cities would look like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@om-gta02 ~ $ locale&lt;br /&gt;
LANG=de_DE.UTF-8&lt;br /&gt;
LC_CTYPE=&amp;quot;de_DE.UTF-8&amp;quot;&lt;br /&gt;
LC_NUMERIC=&amp;quot;de_DE.UTF-8&amp;quot;&lt;br /&gt;
...&lt;br /&gt;
LC_MEASUREMENT=&amp;quot;de_DE.UTF-8&amp;quot;&lt;br /&gt;
LC_IDENTIFICATION=&amp;quot;de_DE.UTF-8&amp;quot;&lt;br /&gt;
LC_ALL=&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note that there's a limited number of [http://wiki.navit-project.org/index.php/OpenStreetMaps#Known_countries_by_osm2navit countries supported by osm2navit] and Navit's search function.&lt;br /&gt;
&lt;br /&gt;
===Select Destination===&lt;br /&gt;
[[Image:navit_select_country.png|100px|thumb|Select Country]]&lt;br /&gt;
&lt;br /&gt;
You can the select your destination in the main menu:&lt;br /&gt;
* via '''Bookmarks''', if you saved the previous location or&lt;br /&gt;
* via '''Town''', if you want to enter a new destination. If you use a destination more frequently, just save the location as bookmark.  &lt;br /&gt;
&lt;br /&gt;
When you click in the main menu on &amp;lt;i&amp;gt;Action&amp;lt;/i&amp;gt; the &amp;lt;i&amp;gt;Action&amp;lt;/i&amp;gt; menu appears with 4 subitems.&lt;br /&gt;
* Bookmarks of previous locations (stored in &amp;lt;tt&amp;gt;/home/root/.navit/destinations.txt&amp;lt;/tt&amp;gt;&lt;br /&gt;
* a globe showing a location as destination,&lt;br /&gt;
* a vehicle that shows the current GPS position of the vehicle. If the freerunner receives no GPS signal the locations of the vehicle is set to 0.0.0N and 0.0.0E. &lt;br /&gt;
* Town is the action to enter a destination.&lt;br /&gt;
* Quit navit is the last action in this submenu.&lt;br /&gt;
&lt;br /&gt;
Select the icon &amp;lt;i&amp;gt;Town&amp;lt;/i&amp;gt; in the main menu (if you see the map, you can get to the main menu just by clicking on the map).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Select Country====&lt;br /&gt;
[[Image:navit_country_selected.png|100px|thumb|Country Options]]&lt;br /&gt;
[[Image:navit_destination_details.png|100px|thumb|Enter Bookmark Details]]&lt;br /&gt;
&lt;br /&gt;
Before you can search for City you have to select a Country. To do that, click on the icon in the left upper corner of the search field (could look like a white square with blue top-left quadrant).&lt;br /&gt;
&lt;br /&gt;
Just type in the first letter of the country (e.g. &amp;quot;G&amp;quot;) and Navit makes suggestions (e.g. Gabon, Germany).&lt;br /&gt;
&lt;br /&gt;
====Enter Town====&lt;br /&gt;
&lt;br /&gt;
When you have selected the country (e.g. Germany) the flag appears and you can select the town.&lt;br /&gt;
Then you can save the town as bookmark and enter more details like streets to the selected town.&lt;br /&gt;
&lt;br /&gt;
The search is still a little buggy.&lt;br /&gt;
&lt;br /&gt;
====Enter Street====&lt;br /&gt;
You can enter the street and streetnumber and save it as bookmark when you use the destination often. &lt;br /&gt;
&lt;br /&gt;
====Bookmarks====&lt;br /&gt;
Navigation and planning of routes with Navit can be organized with bookmarks.&lt;br /&gt;
* set a bookmark as current position &lt;br /&gt;
* set a bookmark as destination&lt;br /&gt;
Then you can see the suggested route in blue on the map. &lt;br /&gt;
&lt;br /&gt;
Bookmarks are stored in:&lt;br /&gt;
  /home/root/.navit/bookmark.txt&lt;br /&gt;
&lt;br /&gt;
The GPS-location (if GPS-signal is available) will be highlighted with a small blue circle. The color of the circle can be defined via editing the &amp;lt;tt&amp;gt;navit.xml&amp;lt;/tt&amp;gt; (see [http://wiki.openmoko.org/wiki/Navit#Set_Cursor_Color select cursor color]).&lt;br /&gt;
* a dot in the blue circle is indicating that your are not moving,&lt;br /&gt;
* an arrowhead is indicating the direction, when you are moving.&lt;br /&gt;
Then routing can start and in the map the route is highlighted.&lt;br /&gt;
&lt;br /&gt;
====Screenshots in Navit Documentation====&lt;br /&gt;
The screenshots are made with &amp;lt;tt&amp;gt;gpe-scap&amp;lt;/tt&amp;gt;, that can be installed by:&lt;br /&gt;
  opkg install gpe-scap&lt;br /&gt;
if not installed already. Navigation through your installed application navit and login via ssh on your Freerunner &lt;br /&gt;
  ssh -l root 192.168.0.202&lt;br /&gt;
assuming that your Freerunner has the IP 192.168.0.202.&lt;br /&gt;
Any time you want to make a screenshot just start via your desktop computer &lt;br /&gt;
  gpe-scap&lt;br /&gt;
and save the screenshot to you freerunner.&lt;br /&gt;
Download the screenshot to your desktop computer with&lt;br /&gt;
  desktop# sftp://root@192.168.0.202&lt;br /&gt;
&lt;br /&gt;
== News ==&lt;br /&gt;
A deeper look into configuring Navit can be found in the [http://wiki.navit-project.org/index.php/Configuring_Navit Navit-Wiki].&lt;br /&gt;
&lt;br /&gt;
=== Getting the display right ===&lt;br /&gt;
&lt;br /&gt;
If using SHR the keyboard in country/town/street search mode does not fit on the street, make sure your gui configuration is set to the following line:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;gui type=&amp;quot;internal&amp;quot; font_size=&amp;quot;350&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The example line provided for freerunners hides some important icons. Namely, instead of typing your city name first, you will first have to click the button on the top left, to go into country search mode. Enter your country name, then the city name, in order to enable the search function. This requires your map data to be searchable.&lt;br /&gt;
&lt;br /&gt;
You can start in fullscreen mode with fullscreen=&amp;quot;1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;gui type=&amp;quot;internal&amp;quot; font_size=&amp;quot;350&amp;quot; fullscreen=&amp;quot;1&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you want to enable &amp;quot;+&amp;quot; and &amp;quot;-&amp;quot; as Zoom-In and Zoom-Out buttons on the bottom of the map enable the button with the following xml-tags:&lt;br /&gt;
 &amp;lt;osd enabled=&amp;quot;yes&amp;quot; type=&amp;quot;button&amp;quot; x=&amp;quot;-96&amp;quot; y=&amp;quot;-96&amp;quot; command=&amp;quot;zoom_in()&amp;quot;  src=&amp;quot;zoom_in.xpm&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;osd enabled=&amp;quot;yes&amp;quot; type=&amp;quot;button&amp;quot; x=&amp;quot;0&amp;quot;   y=&amp;quot;-96&amp;quot; command=&amp;quot;zoom_out()&amp;quot; src=&amp;quot;zoom_out.xpm&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can find sample Layouts here:&lt;br /&gt;
[http://wiki.navit-project.org/index.php/OSD_Layouts Sample Layouts from navit-wiki]&lt;br /&gt;
&lt;br /&gt;
=== Set Cursor Color ===&lt;br /&gt;
[[Image:red_cursor.png|90px|thumb|Red Cursor]]&lt;br /&gt;
If you navigate, the route is marked in blue color on the map. The current position of the vehicle is displayed by a blue circle. The circle is sometimes difficult to see on the blue track. If you want to change the color, size  of the vehicle cursor edit the vehicle XML-environment in navit.xml (e.g. replace blue color #0000FF with red color #FF0000 -- for details of  [http://html-color-codes.info Color Codes] select color, copy and paste code in &amp;lt;tt&amp;gt;navit.xml&amp;lt;/tt&amp;gt;)  &lt;br /&gt;
&lt;br /&gt;
     &amp;lt;vehicle name=&amp;quot;Local GPS&amp;quot; profilename=&amp;quot;car&amp;quot; enabled=&amp;quot;yes&amp;quot; active=&amp;quot;1&amp;quot; source=&amp;quot;gpsd://localhost&amp;quot; gpsd_query=&amp;quot;w+xj&amp;quot; color=&amp;quot;#0000ff&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;!-- Navit can write a tracklog in several formats (gpx, nmea or textfile): --&amp;gt;&lt;br /&gt;
        &amp;lt;!-- &amp;lt;log type=&amp;quot;gpx&amp;quot; data=&amp;quot;track_%Y%m%d-%i.gpx&amp;quot; flush_size=&amp;quot;1000&amp;quot; flush_time=&amp;quot;30&amp;quot;/&amp;gt; --&amp;gt;&lt;br /&gt;
            &amp;lt;cursor w=&amp;quot;56&amp;quot; h=&amp;quot;56&amp;quot;&amp;gt;&lt;br /&gt;
               &amp;lt;!-- tag defines the circle for the cursor --&amp;gt;&lt;br /&gt;
                &amp;lt;itemgra&amp;gt;&lt;br /&gt;
                    &amp;lt;circle color=&amp;quot;#ff0000&amp;quot; radius=&amp;quot;42&amp;quot; width=&amp;quot;6&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;0&amp;quot; y=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/circle&amp;gt;&lt;br /&gt;
                   &amp;lt;circle color=&amp;quot;#ffffff&amp;quot; radius=&amp;quot;48&amp;quot; width=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;0&amp;quot; y=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/circle&amp;gt;&lt;br /&gt;
                   &amp;lt;circle color=&amp;quot;#ffffff&amp;quot; radius=&amp;quot;36&amp;quot; width=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;0&amp;quot; y=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/circle&amp;gt;&lt;br /&gt;
                &amp;lt;/itemgra&amp;gt;&lt;br /&gt;
               &amp;lt;!-- tag defines the dot when the vehicle is not moving --&amp;gt;&lt;br /&gt;
                &amp;lt;itemgra speed_range=&amp;quot;-2&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;polyline color=&amp;quot;#ff0000&amp;quot; width=&amp;quot;6&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;1&amp;quot; y=&amp;quot;1&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;1&amp;quot; y=&amp;quot;-1&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;-1&amp;quot; y=&amp;quot;-1&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;-1&amp;quot; y=&amp;quot;-1&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/polyline&amp;gt;&lt;br /&gt;
                  &amp;lt;circle color=&amp;quot;#ffffff&amp;quot; radius=&amp;quot;9&amp;quot; width=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;0&amp;quot; y=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/circle&amp;gt;&lt;br /&gt;
                &amp;lt;/itemgra&amp;gt;&lt;br /&gt;
                &amp;lt;!-- This itemgra-tag defines the arrow when the vehicle moves --&amp;gt;&lt;br /&gt;
                &amp;lt;itemgra speed_range=&amp;quot;3-&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;polyline color=&amp;quot;#ff0000&amp;quot; width=&amp;quot;6&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;-7&amp;quot; y=&amp;quot;-10&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;0&amp;quot; y=&amp;quot;12&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;7&amp;quot; y=&amp;quot;-10&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/polyline&amp;gt;&lt;br /&gt;
                  &amp;lt;polyline color=&amp;quot;#ffffff&amp;quot; width=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;+10&amp;quot; y=&amp;quot;-10&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;3&amp;quot; y=&amp;quot;15&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/polyline&amp;gt;&lt;br /&gt;
                    &amp;lt;polyline color=&amp;quot;#ffffff&amp;quot; width=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;-10&amp;quot; y=&amp;quot;-10&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;-3&amp;quot; y=&amp;quot;15&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/polyline&amp;gt;&lt;br /&gt;
                &amp;lt;/itemgra&amp;gt;&lt;br /&gt;
        &amp;lt;/cursor&amp;gt;&lt;br /&gt;
    &amp;lt;/vehicle&amp;gt;&lt;br /&gt;
The following screenshot show Navit with a red cursor on a blue track:&lt;br /&gt;
&lt;br /&gt;
[[Image:navit_color_cursor.png|200px|thumb|Red Cursor Color on blue track - vehicle not moving]]&lt;br /&gt;
&lt;br /&gt;
=== Speech ===&lt;br /&gt;
Navit can speak if you install [http://espeak.sourceforge.net/ eSpeak] + [http://www.freebsoft.org/speechd speech-dispatcher] and updates your navit.xml file.&lt;br /&gt;
&lt;br /&gt;
If you want navit using your language, and setting LC_MESSAGES fails due to missing glibc locale, set the enviroment variable LANGUAGE. For instance running&lt;br /&gt;
  LANGUAGE=de navit&lt;br /&gt;
will set the ui and output to german.&lt;br /&gt;
&lt;br /&gt;
For SHR there is a big german localization patch see [[Configure SHR for German-speaking use]].&lt;br /&gt;
&lt;br /&gt;
One way to configure speech output:&lt;br /&gt;
&lt;br /&gt;
* mokoTTS aims to integrate these packages in OM:&lt;br /&gt;
http://projects.openmoko.org/projects/mokotts/&lt;br /&gt;
&lt;br /&gt;
install espeak, dotconf, and then speech-dispatcher.&lt;br /&gt;
note: running 2008.8 updating from zecke's &amp;quot;testing&amp;quot; repo does not require &amp;quot;dotconf&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Speech Language ====&lt;br /&gt;
To change the speech tag in navit.xml:&lt;br /&gt;
  &amp;lt;speech type=&amp;quot;cmdline&amp;quot; data=&amp;quot;spd-say '%s'&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;'''spd-say -l fr '%s''''&amp;quot; for using the French voice for example.&lt;br /&gt;
* &amp;quot;'''spd-say -l de '%s''''&amp;quot; for using the German voice for example.&lt;br /&gt;
&lt;br /&gt;
{{Note|You can check speech dispatcher output from the shell.}}&lt;br /&gt;
Example for German:&lt;br /&gt;
  spd-say -l=de &amp;quot;Dies ist die Winterstraße 23&amp;quot;&lt;br /&gt;
The speech-dispatcher is blocking the audio after suspend. So after a suspend you will hear no ringtone, when a phone call is coming in and you cannot listen do audio files.&lt;br /&gt;
A solution is to disable starting of speech-dispatcher with:&lt;br /&gt;
  update-rc.d -f speech-dispatcher remove&lt;br /&gt;
Then the speech-dispatcher should be started if and only if navit is running and shut down when navit is closed.&lt;br /&gt;
&lt;br /&gt;
Furthermore navit should be started indirect with a script &amp;lt;tt&amp;gt;navit.sh&amp;lt;/tt&amp;gt; instead of a direct start with the binary located in &amp;lt;tt&amp;gt;/usr/bin/navit&amp;lt;/tt&amp;gt;. The script &amp;lt;tt&amp;gt;navit.sh&amp;lt;/tt&amp;gt; listed below starts speech-dispatcher before navit, and stops it afterwards. See http://lists.openmoko.org/nabble.html#nabble-td1088795&lt;br /&gt;
&lt;br /&gt;
The following script is doing the suggested procedure. This script includes a language fix for Austria (see [[Configure SHR for German-speaking use]]).&lt;br /&gt;
  export LANG=de_AT.utf8&amp;lt;tt&amp;gt;spd-say --language=de Output-String&amp;lt;/tt&amp;gt; You can replace the --language by -l }&lt;br /&gt;
Replace '''&amp;lt;tt&amp;gt;de_AT&amp;lt;/tt&amp;gt;''' in this line with the appropriate language variable in the following script &amp;lt;tt&amp;gt;navit.sh&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#! /bin/sh&lt;br /&gt;
#&lt;br /&gt;
# Copyright Matthias Hentges &amp;lt;devel@hentges.net&amp;gt; (c) 2008&lt;br /&gt;
# License: GPL (see http://www.gnu.org/licenses/gpl.txt for a copy of the license)&lt;br /&gt;
#&lt;br /&gt;
# Filename: navit.sh&lt;br /&gt;
# Date: 20080105 (YMD)&lt;br /&gt;
#&lt;br /&gt;
#################################################################################&lt;br /&gt;
#&lt;br /&gt;
# 20080105 - v0.0.1	- Initial release&lt;br /&gt;
# 20090818 -            - Zoff &amp;lt;zoff@zoff.cc&amp;gt; addons and fixes&lt;br /&gt;
#&lt;br /&gt;
#&lt;br /&gt;
#################################################################################&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#################################################################################&lt;br /&gt;
#&lt;br /&gt;
# On devices with low memory (&amp;lt; 512Mb?) Navit will segfault on start.&lt;br /&gt;
# This can be worked around by doing&lt;br /&gt;
# &amp;quot;echo 1 &amp;gt; /proc/sys/vm/overcommit_memory&amp;quot;&lt;br /&gt;
#&lt;br /&gt;
#################################################################################&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
. /etc/profile&lt;br /&gt;
&lt;br /&gt;
set|grep LC&lt;br /&gt;
&lt;br /&gt;
#### Stop the speech dispatcher ####&lt;br /&gt;
/etc/init.d/speech-dispatcher stop&lt;br /&gt;
&lt;br /&gt;
#### Language Fix #################&lt;br /&gt;
set|grep LC&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
export LC_ALL=''&lt;br /&gt;
unset LC_ALL&lt;br /&gt;
export LANG=de_AT.utf8&lt;br /&gt;
&lt;br /&gt;
set|grep LC&lt;br /&gt;
&lt;br /&gt;
#### Start the speech dispatcher ####&lt;br /&gt;
/etc/init.d/speech-dispatcher start &amp;amp;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
set|grep LC&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# need cpu and display&lt;br /&gt;
mdbus -s org.freesmartphone.ousaged /org/freesmartphone/Usage org.freesmartphone.Usage.SetResourcePolicy Display enabled&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if test &amp;quot;`cat /proc/meminfo | grep ^MemTotal | awk '{print $2}'`&amp;quot; -lt &amp;quot;500000&amp;quot;&lt;br /&gt;
then&lt;br /&gt;
	if test &amp;quot;$USER&amp;quot; = &amp;quot;root&amp;quot;&lt;br /&gt;
	then&lt;br /&gt;
		echo &amp;quot;Enabling low-mem workaround...&amp;quot;&lt;br /&gt;
		echo 1 &amp;gt; /proc/sys/vm/overcommit_memory&lt;br /&gt;
	else&lt;br /&gt;
		echo &amp;quot;I need root-privs to enable the low-mem workaround!&amp;quot;&lt;br /&gt;
	fi&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
######### Start NAVIT NOW ############&lt;br /&gt;
&lt;br /&gt;
navit $*&lt;br /&gt;
	&lt;br /&gt;
#### Stop the speech dispatcher ####&lt;br /&gt;
&lt;br /&gt;
/etc/init.d/speech-dispatcher stop&lt;br /&gt;
&lt;br /&gt;
# release cpu and display&lt;br /&gt;
mdbus -s org.freesmartphone.ousaged /org/freesmartphone/Usage org.freesmartphone.Usage.SetResourcePolicy Display auto&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Save the &amp;lt;tt&amp;gt;navit.sh&amp;lt;/tt&amp;gt; script in:&lt;br /&gt;
  /usr/bin/navit.sh&lt;br /&gt;
Make the script executable:&lt;br /&gt;
  chmod u+x /usr/bin/navit.sh&lt;br /&gt;
Now you have to edit the desktop icon, so that it starts this script &amp;lt;tt&amp;gt;navit.sh&amp;lt;/tt&amp;gt; instead of the binary &amp;lt;tt&amp;gt;/usr/bin/navit&amp;lt;/tt&amp;gt;.&lt;br /&gt;
  nano /usr/share/applications/navit.desktop&lt;br /&gt;
Edit the line with &amp;lt;tt&amp;gt;Exec=...&amp;lt;/tt&amp;gt;, so that it starts the script &amp;lt;tt&amp;gt;navit.sh&amp;lt;/tt&amp;gt; instead of the navit binary.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[Desktop Entry]&lt;br /&gt;
Version=1.0&lt;br /&gt;
Name=Navit&lt;br /&gt;
Name[de]=Navit&lt;br /&gt;
Name[fr]=Navit&lt;br /&gt;
Comment=The open source vector based navigation program with routing engine&lt;br /&gt;
Comment[de]=Ein vektorbasiertes Navigationsprogramm&lt;br /&gt;
Comment[fr]=Le logiciel opensource de navigation vectorielle&lt;br /&gt;
Exec=/usr/bin/navit.sh&lt;br /&gt;
Icon=navit&lt;br /&gt;
StartupNotify=true&lt;br /&gt;
Terminal=false&lt;br /&gt;
Type=Application&lt;br /&gt;
Categories=GTK;Utility;Geography;&lt;br /&gt;
GenericName=Navit&lt;br /&gt;
GenericName[de]=Navit&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Alternatively''', you can make speech-dispatcher restart on resume, see http://trac.shr-project.org/trac/ticket/494&lt;br /&gt;
&lt;br /&gt;
=== Script to download OSM maps ===&lt;br /&gt;
[[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&lt;br /&gt;
dlOSM.sh &amp;lt;minimum latitude&amp;gt; &amp;lt;maximum latitude&amp;gt; &amp;lt;minimum longitude&amp;gt; &amp;lt;maximum longitude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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...&lt;br /&gt;
&lt;br /&gt;
dlOSM.sh:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/usr/bin/python&lt;br /&gt;
&lt;br /&gt;
import os&lt;br /&gt;
import sys&lt;br /&gt;
#import math&lt;br /&gt;
&lt;br /&gt;
def doIt(cmd):&lt;br /&gt;
  os.system(cmd)&lt;br /&gt;
&lt;br /&gt;
def getOsms(basename, minLat, maxLat, minLon, maxLon):&lt;br /&gt;
  '''basename - base name of map, maps are named {basename}{count}.osm&lt;br /&gt;
  minLat - latitude of the west side of the map&lt;br /&gt;
  maxLat - latitude of the east side of the map&lt;br /&gt;
  minLon - longitude of the north side of the map&lt;br /&gt;
  maxLon - longitude of the south side of the map'''&lt;br /&gt;
&lt;br /&gt;
  wgetCmdTemplate = 'wget -O %s%s.osm http://api.openstreetmap.org/api/0.6/map?bbox=%s,%s,%s,%s'&lt;br /&gt;
&lt;br /&gt;
  currLat = minLat&lt;br /&gt;
  mapCount = 0&lt;br /&gt;
  while currLat &amp;lt; maxLat:&lt;br /&gt;
    nextLat = min(currLat + 0.1, maxLat)&lt;br /&gt;
&lt;br /&gt;
    currLon = minLon&lt;br /&gt;
    while currLon &amp;lt; maxLon:&lt;br /&gt;
      nextLon = min(currLon + 0.1, maxLon)&lt;br /&gt;
&lt;br /&gt;
      doIt(wgetCmdTemplate % (basename, mapCount, currLon, currLat, nextLon, nextLat))&lt;br /&gt;
&lt;br /&gt;
      currLon = nextLon&lt;br /&gt;
      mapCount = mapCount + 1&lt;br /&gt;
&lt;br /&gt;
    currLat = nextLat&lt;br /&gt;
&lt;br /&gt;
(minLat, maxLat, minLon, maxLon) = map(float, sys.argv[1:])&lt;br /&gt;
getOsms('map', minLat, maxLat, minLon, maxLon)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;onlyinclude&amp;gt;&lt;br /&gt;
{{ApplicationBox|&lt;br /&gt;
Name=[[Navit]]|&lt;br /&gt;
Description=Navit is a car navigation system with routing engine.|&lt;br /&gt;
Screenshot=Screenshot-3.png|&lt;br /&gt;
Homepage=http://navit.sourceforge.net|&lt;br /&gt;
TestedOn=|&lt;br /&gt;
PackageName=&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:GPS Applications]]&lt;/div&gt;</summary>
		<author><name>Niebert</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Navit</id>
		<title>Navit</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Navit"/>
				<updated>2010-12-28T14:16:56Z</updated>
		
		<summary type="html">&lt;p&gt;Niebert: /* Localize for Germany */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Application|Navit}}&lt;br /&gt;
&lt;br /&gt;
As described on the [http://navit.sourceforge.net/ Navit home page],&lt;br /&gt;
&lt;br /&gt;
&amp;lt;i&amp;gt;&amp;quot;'''Navit''' is a car navigation system with routing engine.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
The current vehicle position is either read from gpsd or directly from NMEA GPS sensors.&amp;quot;&amp;lt;/i&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Some people say Navit is also a good choice for pedestrian and bicycle navigation.&lt;br /&gt;
&lt;br /&gt;
[[Image:Navit-2241.png|thumb|Navit-r2241]]&lt;br /&gt;
&lt;br /&gt;
== Acknowledgment ==&lt;br /&gt;
&lt;br /&gt;
Thanks to [[User:Alessandro | Alessandro]], stefan_schmidt, cp15 and all Navit developers I have done a small (&amp;quot;not really working&amp;quot;) preview of Navit on Neo1973 at [http://www.telemobilityforum.com/eng/ Telemobility Forum 2007]. Thanks to [http://gfoss.it GFoss] guys to invite me.&lt;br /&gt;
''[[User:Tyrael | Tyrael]]''&lt;br /&gt;
&lt;br /&gt;
==Setting up Navit==&lt;br /&gt;
&lt;br /&gt;
===Install Navit===&lt;br /&gt;
&lt;br /&gt;
==== Map Size ====&lt;br /&gt;
Of you use e.g. entire Germany in an rectangle form it will have more than 500MB.&lt;br /&gt;
Navit on FR works with maps in the size of less that 350MB. So split the larger areas in portions with a smaller size than 350MB. Otherwise Navit will not be able to process the maps.&lt;br /&gt;
&lt;br /&gt;
Change navit.xml to modify the used map bin-file, e.g. germany1.bin to germany2.bin&lt;br /&gt;
&lt;br /&gt;
==== Navit on FSO (OM2008.x,SHR,...) ====&lt;br /&gt;
&lt;br /&gt;
You can now simply add a feed from there : http://download.navit-project.org/navit/openmoko/svn/&lt;br /&gt;
&lt;br /&gt;
Essentially, to enable this directory as [[Om_2008.8_Installer#How to add a Repository ?|feed]] and install or update navit do:&lt;br /&gt;
* Only for the first time:&lt;br /&gt;
 echo src navit http://download.navit-project.org/navit/openmoko/svn &amp;gt; /etc/opkg/navit-feed.conf&lt;br /&gt;
 opkg update&lt;br /&gt;
&lt;br /&gt;
* Always:&lt;br /&gt;
 opkg install navit&lt;br /&gt;
&lt;br /&gt;
Navit will be auto-updated when you run opkg upgrade later&lt;br /&gt;
&lt;br /&gt;
Navit might not be able to use gpsd at startup:&lt;br /&gt;
 navit:plugin_load:can't load '/usr/lib/navit/vehicle/&lt;br /&gt;
 libvehicle_gpsd.so', Error 'libgps.so.16: cannot open shared object  &lt;br /&gt;
 file: No such file or directory'&lt;br /&gt;
 navit:vehicle_new:invalid type 'gpsd'&lt;br /&gt;
&lt;br /&gt;
to solve this issue (necessary for SHR):&lt;br /&gt;
&lt;br /&gt;
 opkg install libgps17&lt;br /&gt;
 ln -s /usr/lib/libgps.so.17 /usr/lib/libgps.so.16&lt;br /&gt;
&lt;br /&gt;
====Navit on Debian====&lt;br /&gt;
Navit is now in Debian [http://packages.debian.org/source/testing/navit testing] and [http://packages.debian.org/source/unstable/navit unstable].&lt;br /&gt;
&lt;br /&gt;
Add the following line to &amp;lt;tt&amp;gt;/etc/apt/sources.list&amp;lt;/tt&amp;gt; with e.g. editor &amp;lt;tt&amp;gt;vi&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;nano&amp;lt;/tt&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
     deb http://ftp.de.debian.org/debian unstable main&lt;br /&gt;
&lt;br /&gt;
Then update with apt-get:&lt;br /&gt;
&lt;br /&gt;
     apt-get update&lt;br /&gt;
&lt;br /&gt;
The up-to-date source package is available through git at '''git://git.debian.org/git/collab-maint/navit.git''' ([http://git.debian.org/?p=collab-maint/navit.git;a=summary browse]).&lt;br /&gt;
&lt;br /&gt;
====Navit on Android====&lt;br /&gt;
Download current version [http://download.navit-project.org/navit/android_armv4t/svn/ navit-current.apk] on your Android. See [[Android usage]] for installing Apps on your [http://code.google.com/p/android-on-freerunner/wiki/Applications Android on Freerunner].&lt;br /&gt;
&lt;br /&gt;
   see [http://wiki.navit-project.org/index.php/Navit_on_Android Navit on Android] Navit Project Wiki&lt;br /&gt;
&lt;br /&gt;
You can use one download map which you have to copy on the FAT32 partition of your SD card as '''&amp;lt;tt&amp;gt;navitmap.bin&amp;lt;/tt&amp;gt;'''. &lt;br /&gt;
&lt;br /&gt;
During first use after installation, navit for android will ask you, if you want to intall [http://espeak.sourceforge.net/ TTS] (Text to Speech [http://www.speech.cs.cmu.edu/flite/ festival-lite]). If you decide to install TTS then Navit crashes (with version [http://download.navit-project.org/navit/android_armv4t/svn/ navit-svn-3495.apk]).&lt;br /&gt;
&lt;br /&gt;
====Navit on QtMoko====&lt;br /&gt;
You can find some information for installing Navit in the [[QtMoko]] article.&lt;br /&gt;
&lt;br /&gt;
===Set up the maps you want===&lt;br /&gt;
&lt;br /&gt;
====The Easy Way====&lt;br /&gt;
Use [http://maps.navit-project.org/download/ Navit Map Extractor] based on [http://www.openstreetmap.org OpenStreetMap].  Navigate to the region you want, and click &amp;quot;select&amp;quot; to select region, select the area you want, then click download. [[Image:osmdownload.jpg|200px|thumb|Download OpenStreetMaps]] &lt;br /&gt;
&lt;br /&gt;
If you just want the entire planet (as of this writing, ~1.8 GB), it's [http://maps.navit-project.org/planet.bin here].&lt;br /&gt;
&lt;br /&gt;
[http://downloads.cloudmade.com/ CloudMade] also has up-to-date maps from OpenStreetMap by country (by state in the US).&lt;br /&gt;
&lt;br /&gt;
{{Note|Be aware of the map size that can be used on your FR (On Android working with map sizes less than 350MB is O.K. on SHR 450MB also work, so SHR may not have a map size limit)}}&lt;br /&gt;
&lt;br /&gt;
====From the command line====&lt;br /&gt;
'''OpenStreetMap''' - follow directions at http://wiki.navit-project.org/index.php/OpenStreetMaps&lt;br /&gt;
* There are some pre-processed, up-to-date maps that can be grabbed with wget:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;wget -O germany.bin http://maps.navit-project.org/api/map/?bbox=5.185546875,46.845703125,15.46875,55.634765625&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can put a shell script into &amp;lt;tt&amp;gt;/usr/local/bin/update-maps&amp;lt;/tt&amp;gt;&lt;br /&gt;
  #!/bin/sh&lt;br /&gt;
  echo &amp;quot;Update OpenstreetMaps&amp;quot;&lt;br /&gt;
  echo &amp;quot;---------------------&amp;quot;&lt;br /&gt;
  echo &amp;quot;  download and store OSM maps on /media/card/maps&amp;quot;&lt;br /&gt;
  wget -O /media/card/maps/germany.bin http://maps.navit-project.org/api/map/?bbox=5.185546875,46.845703125,15.46875,55.634765625&lt;br /&gt;
  echo &amp;quot;update germany.bin finished&amp;quot;&lt;br /&gt;
You have to make the script executable with:&lt;br /&gt;
  chmod u+x /usr/local/bin/update-maps&lt;br /&gt;
Create a maps-directory (e.g. with path &amp;lt;tt&amp;gt;/media/card/maps/&amp;lt;/tt&amp;gt;) on your SD-card:&lt;br /&gt;
  mkdir /media/card/maps/&lt;br /&gt;
Then you can update with this script all your maps on the SD-card if you have internet connection:&lt;br /&gt;
  update-maps&lt;br /&gt;
* Here's an example to get the maps for the area around Seattle, WA:&lt;br /&gt;
** Find the map coordinates using http://informationfreeway.org/?lat=47.520270037501454&amp;amp;lon=-122.20130713167327&amp;amp;zoom=9&amp;amp;layers=B000F000&lt;br /&gt;
** 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):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;wget -O map1.osm http://www.openstreetmap.org/api/0.5/map?bbox=-122.2,47.5,-122,47.7&lt;br /&gt;
wget -O map2.osm http://www.openstreetmap.org/api/0.5/map?bbox=-122.4,47.5,-122.2,47.7&lt;br /&gt;
wget -O map3.osm http://www.openstreetmap.org/api/0.5/map?bbox=-122.4,47.3,-122.2,47.5&lt;br /&gt;
wget -O map4.osm http://www.openstreetmap.org/api/0.5/map?bbox=-122.2,47.3,-122,47.5&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* 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:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;cat *.osm | osm2navit --dedupe-ways mymap.bin&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Copy the map to the NEO===&lt;br /&gt;
To copy the map using scp (replace ''/directory'' as is appropriate in the following):&lt;br /&gt;
&amp;lt;pre&amp;gt;scp mymap.bin root@neo:/directory&amp;lt;/pre&amp;gt;&lt;br /&gt;
If you copy the map &amp;lt;tt&amp;gt;germany.bin&amp;lt;/tt&amp;gt; to the SD card on the Neo use e.g. in the directory &amp;lt;tt&amp;gt;maps&amp;lt;/tt&amp;gt;:&lt;br /&gt;
  scp germany.bin root@neo:/media/card/maps&lt;br /&gt;
Once it's somewhere on the NEO, Navit needs to know that it's there.&lt;br /&gt;
&amp;lt;pre&amp;gt;mkdir ~/.navit&lt;br /&gt;
cp /usr/share/navit/navit.xml ~/.navit/navit.xml&lt;br /&gt;
vi ~/.navit/navit.xml&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
note that in some version navit includes other xml files from /usr/share/navit, for instance mapsets are now defined in maps.xml.&lt;br /&gt;
&lt;br /&gt;
===Enable Maps in  Navit ===&lt;br /&gt;
Now you must let Navit know the maps you want to use. Several disabled mapset-tags are predefined. &lt;br /&gt;
In the navit.xml file, put the following into a new &amp;lt;mapset&amp;gt; section (and disable the default &amp;lt;mapset&amp;gt; just above - or else it will not work):&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;map type=&amp;quot;binfile&amp;quot; enabled=&amp;quot;yes&amp;quot; data=&amp;quot;/directory&amp;quot; /&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
For example with a &amp;lt;tt&amp;gt;germany.bin&amp;lt;/tt&amp;gt; on the SD-card you use:&lt;br /&gt;
 &amp;lt;mapset enabled=&amp;quot;yes&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;map type=&amp;quot;binfile&amp;quot; enabled=&amp;quot;yes&amp;quot; data=&amp;quot;/media/card/maps/germany.bin&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;/mapset&amp;gt;&lt;br /&gt;
or if you store all downloaded maps in the directory &amp;lt;tt&amp;gt;/media/card/maps&amp;lt;/tt&amp;gt; then add the following lines to &amp;lt;tt&amp;gt;navit.xml&amp;lt;/tt&amp;gt;.&lt;br /&gt;
 &amp;lt;mapset enabled=&amp;quot;yes&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;map type=&amp;quot;binfile&amp;quot; enabled=&amp;quot;yes&amp;quot; data=&amp;quot;/media/card/maps/*.bin&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;/mapset&amp;gt;&lt;br /&gt;
{{Note|this will only load the first map that machtes *.bin (its a bug/feature)!}}&lt;br /&gt;
{{Note|that the bin-file and the map set both have to be enabled}}&lt;br /&gt;
&lt;br /&gt;
Disable unused mapset sections by setting enabled to &amp;lt;tt&amp;gt;no&amp;lt;/tt&amp;gt;, e.g. the pre-installed sample maps at line 370 in &amp;lt;tt&amp;gt;navit.xml&amp;lt;/tt&amp;gt;.&lt;br /&gt;
 &amp;lt;mapset enabled=&amp;quot;no&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xi:include href=&amp;quot;$NAVIT_SHAREDIR/maps/*.xml&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;/mapset&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Run navit&lt;br /&gt;
** Start [[gllin]] (for GTA01)&lt;br /&gt;
** Start [[gpsd]] ( gpsd /tmp/nmeaNP )&lt;br /&gt;
** Start navit&lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
===Tips and Tricks===&lt;br /&gt;
====Center on Vehicle====&lt;br /&gt;
Navit supports a &amp;quot;always center on vehicle&amp;quot; option. &lt;br /&gt;
&lt;br /&gt;
To activate this add&lt;br /&gt;
 follow=&amp;quot;3&amp;quot;&lt;br /&gt;
to the &amp;lt;tt&amp;gt;vehicle&amp;lt;/tt&amp;gt; tag in navit.xml. &lt;br /&gt;
   &amp;lt;vehicle name=&amp;quot;Local GPS&amp;quot; profilename=&amp;quot;car&amp;quot; enabled=&amp;quot;yes&amp;quot; active=&amp;quot;1&amp;quot; follow=&amp;quot;3&amp;quot; &lt;br /&gt;
           source=&amp;quot;gpsd://localhost&amp;quot; gpsd_query=&amp;quot;w+xj&amp;quot; color=&amp;quot;#0000ff&amp;quot;&amp;gt;&lt;br /&gt;
The &amp;quot;3&amp;quot; causes to give the gui time to do something between the repaints (drag the map or browse the menu). When its set to &amp;quot;1&amp;quot; navit does nothing more than repainting the map continuously.&lt;br /&gt;
====Localize for Germany====&lt;br /&gt;
* [http://www.freeyourphone.de/portal_v1/viewtopic.php?f=22&amp;amp;t=1039 SHR German] from freeyourphone.de&lt;br /&gt;
* Go to [[Configure_SHR_for_German-speaking_use]] download&lt;br /&gt;
   http://work.zoff.cc/openmoko/shr/de_at/customize_pack_shr_no_maps.tar.gz&lt;br /&gt;
: extract &amp;lt;tt&amp;gt;init_shr_testing.sh&amp;lt;/tt&amp;gt; and see what [[User:Zoff99|zoff99]] did to customize navit for German speaking. Search for &amp;lt;tt&amp;gt;glibc&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;navit&amp;lt;/tt&amp;gt; in localization script for understanding the steps to be perform on your freerunner.&lt;br /&gt;
&lt;br /&gt;
==Routing==&lt;br /&gt;
[[Image:navit_main_menu.png|100px|thumb|Navit Main Menu]]&lt;br /&gt;
[[Image:navit_action_menu.png|100px|thumb|Navit Action Menu]]&lt;br /&gt;
The main menu has 4 submenus&lt;br /&gt;
* Action&lt;br /&gt;
* Settings&lt;br /&gt;
* Tools&lt;br /&gt;
* Route&lt;br /&gt;
Normally you would assume the entering a town can be found under the submenu Route, but Town is hidden under submenu Action. Route will provide the description of the route as text and a height profile of your trip. Tools was not working on 08/2009 Version of navit on SHR (see [[SHR User Manual]]).&lt;br /&gt;
&lt;br /&gt;
===Preselect Country of Destination===&lt;br /&gt;
Normally you have to select the the country first before choosing the town and street name. It might be more convenient for you if you preselect the country already with your settings.&lt;br /&gt;
The article [[Configure SHR for German-speaking use]] had a preselection of the country &amp;quot;Austria&amp;quot; in Navit. Adapt the localization for your country and maps in Navit, so that do not need to select the country anymore.&lt;br /&gt;
&lt;br /&gt;
Actually Navit derives the preselected country from the calling environments's locale (see [[Localization]]). Make sure, that LC_ALL ist '''not''' set though. Otherwise navit fails to interprete gpsd output and you end up with strange gps coordinates. When starting from gui (e.g. illume) you can achieve this by supplying an executable script /usr/local/bin/navit which might look like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
#export LANG=xx_YY.UTF-8   # Uncomment this line and replace xx_YY, if &lt;br /&gt;
                           # your gui's locale is not setup accordingly. &lt;br /&gt;
unset LC_ALL&lt;br /&gt;
exec /usr/bin/navit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
So a valid locale environment preselecting search for German cities would look like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@om-gta02 ~ $ locale&lt;br /&gt;
LANG=de_DE.UTF-8&lt;br /&gt;
LC_CTYPE=&amp;quot;de_DE.UTF-8&amp;quot;&lt;br /&gt;
LC_NUMERIC=&amp;quot;de_DE.UTF-8&amp;quot;&lt;br /&gt;
...&lt;br /&gt;
LC_MEASUREMENT=&amp;quot;de_DE.UTF-8&amp;quot;&lt;br /&gt;
LC_IDENTIFICATION=&amp;quot;de_DE.UTF-8&amp;quot;&lt;br /&gt;
LC_ALL=&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note that there's a limited number of [http://wiki.navit-project.org/index.php/OpenStreetMaps#Known_countries_by_osm2navit countries supported by osm2navit] and Navit's search function.&lt;br /&gt;
&lt;br /&gt;
===Select Destination===&lt;br /&gt;
[[Image:navit_select_country.png|100px|thumb|Select Country]]&lt;br /&gt;
&lt;br /&gt;
You can the select your destination in the main menu:&lt;br /&gt;
* via '''Bookmarks''', if you saved the previous location or&lt;br /&gt;
* via '''Town''', if you want to enter a new destination. If you use a destination more frequently, just save the location as bookmark.  &lt;br /&gt;
&lt;br /&gt;
When you click in the main menu on &amp;lt;i&amp;gt;Action&amp;lt;/i&amp;gt; the &amp;lt;i&amp;gt;Action&amp;lt;/i&amp;gt; menu appears with 4 subitems.&lt;br /&gt;
* Bookmarks of previous locations (stored in &amp;lt;tt&amp;gt;/home/root/.navit/destinations.txt&amp;lt;/tt&amp;gt;&lt;br /&gt;
* a globe showing a location as destination,&lt;br /&gt;
* a vehicle that shows the current GPS position of the vehicle. If the freerunner receives no GPS signal the locations of the vehicle is set to 0.0.0N and 0.0.0E. &lt;br /&gt;
* Town is the action to enter a destination.&lt;br /&gt;
* Quit navit is the last action in this submenu.&lt;br /&gt;
&lt;br /&gt;
Select the icon &amp;lt;i&amp;gt;Town&amp;lt;/i&amp;gt; in the main menu (if you see the map, you can get to the main menu just by clicking on the map).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Select Country====&lt;br /&gt;
[[Image:navit_country_selected.png|100px|thumb|Country Options]]&lt;br /&gt;
[[Image:navit_destination_details.png|100px|thumb|Enter Bookmark Details]]&lt;br /&gt;
&lt;br /&gt;
Before you can search for City you have to select a Country. To do that, click on the icon in the left upper corner of the search field (could look like a white square with blue top-left quadrant).&lt;br /&gt;
&lt;br /&gt;
Just type in the first letter of the country (e.g. &amp;quot;G&amp;quot;) and Navit makes suggestions (e.g. Gabon, Germany).&lt;br /&gt;
&lt;br /&gt;
====Enter Town====&lt;br /&gt;
&lt;br /&gt;
When you have selected the country (e.g. Germany) the flag appears and you can select the town.&lt;br /&gt;
Then you can save the town as bookmark and enter more details like streets to the selected town.&lt;br /&gt;
&lt;br /&gt;
The search is still a little buggy.&lt;br /&gt;
&lt;br /&gt;
====Enter Street====&lt;br /&gt;
You can enter the street and streetnumber and save it as bookmark when you use the destination often. &lt;br /&gt;
&lt;br /&gt;
====Bookmarks====&lt;br /&gt;
Navigation and planning of routes with Navit can be organized with bookmarks.&lt;br /&gt;
* set a bookmark as current position &lt;br /&gt;
* set a bookmark as destination&lt;br /&gt;
Then you can see the suggested route in blue on the map. &lt;br /&gt;
&lt;br /&gt;
Bookmarks are stored in:&lt;br /&gt;
  /home/root/.navit/bookmark.txt&lt;br /&gt;
&lt;br /&gt;
The GPS-location (if GPS-signal is available) will be highlighted with a small blue circle. The color of the circle can be defined via editing the &amp;lt;tt&amp;gt;navit.xml&amp;lt;/tt&amp;gt; (see [http://wiki.openmoko.org/wiki/Navit#Set_Cursor_Color select cursor color]).&lt;br /&gt;
* a dot in the blue circle is indicating that your are not moving,&lt;br /&gt;
* an arrowhead is indicating the direction, when you are moving.&lt;br /&gt;
Then routing can start and in the map the route is highlighted.&lt;br /&gt;
&lt;br /&gt;
====Screenshots in Navit Documentation====&lt;br /&gt;
The screenshots are made with &amp;lt;tt&amp;gt;gpe-scap&amp;lt;/tt&amp;gt;, that can be installed by:&lt;br /&gt;
  opkg install gpe-scap&lt;br /&gt;
if not installed already. Navigation through your installed application navit and login via ssh on your Freerunner &lt;br /&gt;
  ssh -l root 192.168.0.202&lt;br /&gt;
assuming that your Freerunner has the IP 192.168.0.202.&lt;br /&gt;
Any time you want to make a screenshot just start via your desktop computer &lt;br /&gt;
  gpe-scap&lt;br /&gt;
and save the screenshot to you freerunner.&lt;br /&gt;
Download the screenshot to your desktop computer with&lt;br /&gt;
  desktop# sftp://root@192.168.0.202&lt;br /&gt;
&lt;br /&gt;
== News ==&lt;br /&gt;
A deeper look into configuring Navit can be found in the [http://wiki.navit-project.org/index.php/Configuring_Navit Navit-Wiki].&lt;br /&gt;
&lt;br /&gt;
=== Getting the display right ===&lt;br /&gt;
&lt;br /&gt;
If using SHR the keyboard in country/town/street search mode does not fit on the street, make sure your gui configuration is set to the following line:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;gui type=&amp;quot;internal&amp;quot; font_size=&amp;quot;350&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The example line provided for freerunners hides some important icons. Namely, instead of typing your city name first, you will first have to click the button on the top left, to go into country search mode. Enter your country name, then the city name, in order to enable the search function. This requires your map data to be searchable.&lt;br /&gt;
&lt;br /&gt;
You can start in fullscreen mode with fullscreen=&amp;quot;1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;gui type=&amp;quot;internal&amp;quot; font_size=&amp;quot;350&amp;quot; fullscreen=&amp;quot;1&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you want to enable &amp;quot;+&amp;quot; and &amp;quot;-&amp;quot; as Zoom-In and Zoom-Out buttons on the bottom of the map enable the button with the following xml-tags:&lt;br /&gt;
 &amp;lt;osd enabled=&amp;quot;yes&amp;quot; type=&amp;quot;button&amp;quot; x=&amp;quot;-96&amp;quot; y=&amp;quot;-96&amp;quot; command=&amp;quot;zoom_in()&amp;quot;  src=&amp;quot;zoom_in.xpm&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;osd enabled=&amp;quot;yes&amp;quot; type=&amp;quot;button&amp;quot; x=&amp;quot;0&amp;quot;   y=&amp;quot;-96&amp;quot; command=&amp;quot;zoom_out()&amp;quot; src=&amp;quot;zoom_out.xpm&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can find sample Layouts here:&lt;br /&gt;
[http://wiki.navit-project.org/index.php/OSD_Layouts Sample Layouts from navit-wiki]&lt;br /&gt;
&lt;br /&gt;
=== Set Cursor Color ===&lt;br /&gt;
[[Image:red_cursor.png|90px|thumb|Red Cursor]]&lt;br /&gt;
If you navigate, the route is marked in blue color on the map. The current position of the vehicle is displayed by a blue circle. The circle is sometimes difficult to see on the blue track. If you want to change the color, size  of the vehicle cursor edit the vehicle XML-environment in navit.xml (e.g. replace blue color #0000FF with red color #FF0000 -- for details of  [http://html-color-codes.info Color Codes] select color, copy and paste code in &amp;lt;tt&amp;gt;navit.xml&amp;lt;/tt&amp;gt;)  &lt;br /&gt;
&lt;br /&gt;
     &amp;lt;vehicle name=&amp;quot;Local GPS&amp;quot; profilename=&amp;quot;car&amp;quot; enabled=&amp;quot;yes&amp;quot; active=&amp;quot;1&amp;quot; source=&amp;quot;gpsd://localhost&amp;quot; gpsd_query=&amp;quot;w+xj&amp;quot; color=&amp;quot;#0000ff&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;!-- Navit can write a tracklog in several formats (gpx, nmea or textfile): --&amp;gt;&lt;br /&gt;
        &amp;lt;!-- &amp;lt;log type=&amp;quot;gpx&amp;quot; data=&amp;quot;track_%Y%m%d-%i.gpx&amp;quot; flush_size=&amp;quot;1000&amp;quot; flush_time=&amp;quot;30&amp;quot;/&amp;gt; --&amp;gt;&lt;br /&gt;
            &amp;lt;cursor w=&amp;quot;56&amp;quot; h=&amp;quot;56&amp;quot;&amp;gt;&lt;br /&gt;
               &amp;lt;!-- tag defines the circle for the cursor --&amp;gt;&lt;br /&gt;
                &amp;lt;itemgra&amp;gt;&lt;br /&gt;
                    &amp;lt;circle color=&amp;quot;#ff0000&amp;quot; radius=&amp;quot;42&amp;quot; width=&amp;quot;6&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;0&amp;quot; y=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/circle&amp;gt;&lt;br /&gt;
                   &amp;lt;circle color=&amp;quot;#ffffff&amp;quot; radius=&amp;quot;48&amp;quot; width=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;0&amp;quot; y=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/circle&amp;gt;&lt;br /&gt;
                   &amp;lt;circle color=&amp;quot;#ffffff&amp;quot; radius=&amp;quot;36&amp;quot; width=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;0&amp;quot; y=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/circle&amp;gt;&lt;br /&gt;
                &amp;lt;/itemgra&amp;gt;&lt;br /&gt;
               &amp;lt;!-- tag defines the dot when the vehicle is not moving --&amp;gt;&lt;br /&gt;
                &amp;lt;itemgra speed_range=&amp;quot;-2&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;polyline color=&amp;quot;#ff0000&amp;quot; width=&amp;quot;6&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;1&amp;quot; y=&amp;quot;1&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;1&amp;quot; y=&amp;quot;-1&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;-1&amp;quot; y=&amp;quot;-1&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;-1&amp;quot; y=&amp;quot;-1&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/polyline&amp;gt;&lt;br /&gt;
                  &amp;lt;circle color=&amp;quot;#ffffff&amp;quot; radius=&amp;quot;9&amp;quot; width=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;0&amp;quot; y=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/circle&amp;gt;&lt;br /&gt;
                &amp;lt;/itemgra&amp;gt;&lt;br /&gt;
                &amp;lt;!-- This itemgra-tag defines the arrow when the vehicle moves --&amp;gt;&lt;br /&gt;
                &amp;lt;itemgra speed_range=&amp;quot;3-&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;polyline color=&amp;quot;#ff0000&amp;quot; width=&amp;quot;6&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;-7&amp;quot; y=&amp;quot;-10&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;0&amp;quot; y=&amp;quot;12&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;7&amp;quot; y=&amp;quot;-10&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/polyline&amp;gt;&lt;br /&gt;
                  &amp;lt;polyline color=&amp;quot;#ffffff&amp;quot; width=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;+10&amp;quot; y=&amp;quot;-10&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;3&amp;quot; y=&amp;quot;15&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/polyline&amp;gt;&lt;br /&gt;
                    &amp;lt;polyline color=&amp;quot;#ffffff&amp;quot; width=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;-10&amp;quot; y=&amp;quot;-10&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;-3&amp;quot; y=&amp;quot;15&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/polyline&amp;gt;&lt;br /&gt;
                &amp;lt;/itemgra&amp;gt;&lt;br /&gt;
        &amp;lt;/cursor&amp;gt;&lt;br /&gt;
    &amp;lt;/vehicle&amp;gt;&lt;br /&gt;
The following screenshot show Navit with a red cursor on a blue track:&lt;br /&gt;
&lt;br /&gt;
[[Image:navit_color_cursor.png|200px|thumb|Red Cursor Color on blue track - vehicle not moving]]&lt;br /&gt;
&lt;br /&gt;
=== Speech ===&lt;br /&gt;
Navit can speak if you install [http://espeak.sourceforge.net/ eSpeak] + [http://www.freebsoft.org/speechd speech-dispatcher] and updates your navit.xml file.&lt;br /&gt;
&lt;br /&gt;
If you want navit using your language, and setting LC_MESSAGES fails due to missing glibc locale, set the enviroment variable LANGUAGE. For instance running&lt;br /&gt;
  LANGUAGE=de navit&lt;br /&gt;
will set the ui and output to german.&lt;br /&gt;
&lt;br /&gt;
For SHR there is a big german localization patch see [[Configure SHR for German-speaking use]].&lt;br /&gt;
&lt;br /&gt;
One way to configure speech output:&lt;br /&gt;
&lt;br /&gt;
* mokoTTS aims to integrate these packages in OM:&lt;br /&gt;
http://projects.openmoko.org/projects/mokotts/&lt;br /&gt;
&lt;br /&gt;
install espeak, dotconf, and then speech-dispatcher.&lt;br /&gt;
note: running 2008.8 updating from zecke's &amp;quot;testing&amp;quot; repo does not require &amp;quot;dotconf&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Speech Language ====&lt;br /&gt;
To change the speech tag in navit.xml:&lt;br /&gt;
  &amp;lt;speech type=&amp;quot;cmdline&amp;quot; data=&amp;quot;spd-say '%s'&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;'''spd-say -l fr '%s''''&amp;quot; for using the French voice for example.&lt;br /&gt;
* &amp;quot;'''spd-say -l de '%s''''&amp;quot; for using the German voice for example.&lt;br /&gt;
&lt;br /&gt;
{{Note|You can check speech dispatcher output from the shell.}}&lt;br /&gt;
Example for German:&lt;br /&gt;
  spd-say -l=de &amp;quot;Dies ist die Winterstraße 23&amp;quot;&lt;br /&gt;
The speech-dispatcher is blocking the audio after suspend. So after a suspend you will hear no ringtone, when a phone call is coming in and you cannot listen do audio files.&lt;br /&gt;
A solution is to disable starting of speech-dispatcher with:&lt;br /&gt;
  update-rc.d -f speech-dispatcher remove&lt;br /&gt;
Then the speech-dispatcher should be started if and only if navit is running and shut down when navit is closed.&lt;br /&gt;
&lt;br /&gt;
Furthermore navit should be started indirect with a script &amp;lt;tt&amp;gt;navit.sh&amp;lt;/tt&amp;gt; instead of a direct start with the binary located in &amp;lt;tt&amp;gt;/usr/bin/navit&amp;lt;/tt&amp;gt;. The script &amp;lt;tt&amp;gt;navit.sh&amp;lt;/tt&amp;gt; listed below starts speech-dispatcher before navit, and stops it afterwards. See http://lists.openmoko.org/nabble.html#nabble-td1088795&lt;br /&gt;
&lt;br /&gt;
The following script is doing the suggested procedure. This script includes a language fix for Austria (see [[Configure SHR for German-speaking use]]).&lt;br /&gt;
  export LANG=de_AT.utf8&amp;lt;tt&amp;gt;spd-say --language=de Output-String&amp;lt;/tt&amp;gt; You can replace the --language by -l }&lt;br /&gt;
Replace '''&amp;lt;tt&amp;gt;de_AT&amp;lt;/tt&amp;gt;''' in this line with the appropriate language variable in the following script &amp;lt;tt&amp;gt;navit.sh&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#! /bin/sh&lt;br /&gt;
#&lt;br /&gt;
# Copyright Matthias Hentges &amp;lt;devel@hentges.net&amp;gt; (c) 2008&lt;br /&gt;
# License: GPL (see http://www.gnu.org/licenses/gpl.txt for a copy of the license)&lt;br /&gt;
#&lt;br /&gt;
# Filename: navit.sh&lt;br /&gt;
# Date: 20080105 (YMD)&lt;br /&gt;
#&lt;br /&gt;
#################################################################################&lt;br /&gt;
#&lt;br /&gt;
# 20080105 - v0.0.1	- Initial release&lt;br /&gt;
# 20090818 -            - Zoff &amp;lt;zoff@zoff.cc&amp;gt; addons and fixes&lt;br /&gt;
#&lt;br /&gt;
#&lt;br /&gt;
#################################################################################&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#################################################################################&lt;br /&gt;
#&lt;br /&gt;
# On devices with low memory (&amp;lt; 512Mb?) Navit will segfault on start.&lt;br /&gt;
# This can be worked around by doing&lt;br /&gt;
# &amp;quot;echo 1 &amp;gt; /proc/sys/vm/overcommit_memory&amp;quot;&lt;br /&gt;
#&lt;br /&gt;
#################################################################################&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
. /etc/profile&lt;br /&gt;
&lt;br /&gt;
set|grep LC&lt;br /&gt;
&lt;br /&gt;
#### Stop the speech dispatcher ####&lt;br /&gt;
/etc/init.d/speech-dispatcher stop&lt;br /&gt;
&lt;br /&gt;
#### Language Fix #################&lt;br /&gt;
set|grep LC&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
export LC_ALL=''&lt;br /&gt;
unset LC_ALL&lt;br /&gt;
export LANG=de_AT.utf8&lt;br /&gt;
&lt;br /&gt;
set|grep LC&lt;br /&gt;
&lt;br /&gt;
#### Start the speech dispatcher ####&lt;br /&gt;
/etc/init.d/speech-dispatcher start &amp;amp;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
set|grep LC&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# need cpu and display&lt;br /&gt;
mdbus -s org.freesmartphone.ousaged /org/freesmartphone/Usage org.freesmartphone.Usage.SetResourcePolicy Display enabled&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if test &amp;quot;`cat /proc/meminfo | grep ^MemTotal | awk '{print $2}'`&amp;quot; -lt &amp;quot;500000&amp;quot;&lt;br /&gt;
then&lt;br /&gt;
	if test &amp;quot;$USER&amp;quot; = &amp;quot;root&amp;quot;&lt;br /&gt;
	then&lt;br /&gt;
		echo &amp;quot;Enabling low-mem workaround...&amp;quot;&lt;br /&gt;
		echo 1 &amp;gt; /proc/sys/vm/overcommit_memory&lt;br /&gt;
	else&lt;br /&gt;
		echo &amp;quot;I need root-privs to enable the low-mem workaround!&amp;quot;&lt;br /&gt;
	fi&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
######### Start NAVIT NOW ############&lt;br /&gt;
&lt;br /&gt;
navit $*&lt;br /&gt;
	&lt;br /&gt;
#### Stop the speech dispatcher ####&lt;br /&gt;
&lt;br /&gt;
/etc/init.d/speech-dispatcher stop&lt;br /&gt;
&lt;br /&gt;
# release cpu and display&lt;br /&gt;
mdbus -s org.freesmartphone.ousaged /org/freesmartphone/Usage org.freesmartphone.Usage.SetResourcePolicy Display auto&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Save the &amp;lt;tt&amp;gt;navit.sh&amp;lt;/tt&amp;gt; script in:&lt;br /&gt;
  /usr/bin/navit.sh&lt;br /&gt;
Make the script executable:&lt;br /&gt;
  chmod u+x /usr/bin/navit.sh&lt;br /&gt;
Now you have to edit the desktop icon, so that it starts this script &amp;lt;tt&amp;gt;navit.sh&amp;lt;/tt&amp;gt; instead of the binary &amp;lt;tt&amp;gt;/usr/bin/navit&amp;lt;/tt&amp;gt;.&lt;br /&gt;
  nano /usr/share/applications/navit.desktop&lt;br /&gt;
Edit the line with &amp;lt;tt&amp;gt;Exec=...&amp;lt;/tt&amp;gt;, so that it starts the script &amp;lt;tt&amp;gt;navit.sh&amp;lt;/tt&amp;gt; instead of the navit binary.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[Desktop Entry]&lt;br /&gt;
Version=1.0&lt;br /&gt;
Name=Navit&lt;br /&gt;
Name[de]=Navit&lt;br /&gt;
Name[fr]=Navit&lt;br /&gt;
Comment=The open source vector based navigation program with routing engine&lt;br /&gt;
Comment[de]=Ein vektorbasiertes Navigationsprogramm&lt;br /&gt;
Comment[fr]=Le logiciel opensource de navigation vectorielle&lt;br /&gt;
Exec=/usr/bin/navit.sh&lt;br /&gt;
Icon=navit&lt;br /&gt;
StartupNotify=true&lt;br /&gt;
Terminal=false&lt;br /&gt;
Type=Application&lt;br /&gt;
Categories=GTK;Utility;Geography;&lt;br /&gt;
GenericName=Navit&lt;br /&gt;
GenericName[de]=Navit&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Alternatively''', you can make speech-dispatcher restart on resume, see http://trac.shr-project.org/trac/ticket/494&lt;br /&gt;
&lt;br /&gt;
=== Script to download OSM maps ===&lt;br /&gt;
[[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&lt;br /&gt;
dlOSM.sh &amp;lt;minimum latitude&amp;gt; &amp;lt;maximum latitude&amp;gt; &amp;lt;minimum longitude&amp;gt; &amp;lt;maximum longitude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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...&lt;br /&gt;
&lt;br /&gt;
dlOSM.sh:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/usr/bin/python&lt;br /&gt;
&lt;br /&gt;
import os&lt;br /&gt;
import sys&lt;br /&gt;
#import math&lt;br /&gt;
&lt;br /&gt;
def doIt(cmd):&lt;br /&gt;
  os.system(cmd)&lt;br /&gt;
&lt;br /&gt;
def getOsms(basename, minLat, maxLat, minLon, maxLon):&lt;br /&gt;
  '''basename - base name of map, maps are named {basename}{count}.osm&lt;br /&gt;
  minLat - latitude of the west side of the map&lt;br /&gt;
  maxLat - latitude of the east side of the map&lt;br /&gt;
  minLon - longitude of the north side of the map&lt;br /&gt;
  maxLon - longitude of the south side of the map'''&lt;br /&gt;
&lt;br /&gt;
  wgetCmdTemplate = 'wget -O %s%s.osm http://api.openstreetmap.org/api/0.6/map?bbox=%s,%s,%s,%s'&lt;br /&gt;
&lt;br /&gt;
  currLat = minLat&lt;br /&gt;
  mapCount = 0&lt;br /&gt;
  while currLat &amp;lt; maxLat:&lt;br /&gt;
    nextLat = min(currLat + 0.1, maxLat)&lt;br /&gt;
&lt;br /&gt;
    currLon = minLon&lt;br /&gt;
    while currLon &amp;lt; maxLon:&lt;br /&gt;
      nextLon = min(currLon + 0.1, maxLon)&lt;br /&gt;
&lt;br /&gt;
      doIt(wgetCmdTemplate % (basename, mapCount, currLon, currLat, nextLon, nextLat))&lt;br /&gt;
&lt;br /&gt;
      currLon = nextLon&lt;br /&gt;
      mapCount = mapCount + 1&lt;br /&gt;
&lt;br /&gt;
    currLat = nextLat&lt;br /&gt;
&lt;br /&gt;
(minLat, maxLat, minLon, maxLon) = map(float, sys.argv[1:])&lt;br /&gt;
getOsms('map', minLat, maxLat, minLon, maxLon)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;onlyinclude&amp;gt;&lt;br /&gt;
{{ApplicationBox|&lt;br /&gt;
Name=[[Navit]]|&lt;br /&gt;
Description=Navit is a car navigation system with routing engine.|&lt;br /&gt;
Screenshot=Screenshot-3.png|&lt;br /&gt;
Homepage=http://navit.sourceforge.net|&lt;br /&gt;
TestedOn=|&lt;br /&gt;
PackageName=&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:GPS Applications]]&lt;/div&gt;</summary>
		<author><name>Niebert</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Navit</id>
		<title>Navit</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Navit"/>
				<updated>2010-12-28T14:15:53Z</updated>
		
		<summary type="html">&lt;p&gt;Niebert: /* Localize for Germany */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Application|Navit}}&lt;br /&gt;
&lt;br /&gt;
As described on the [http://navit.sourceforge.net/ Navit home page],&lt;br /&gt;
&lt;br /&gt;
&amp;lt;i&amp;gt;&amp;quot;'''Navit''' is a car navigation system with routing engine.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
The current vehicle position is either read from gpsd or directly from NMEA GPS sensors.&amp;quot;&amp;lt;/i&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Some people say Navit is also a good choice for pedestrian and bicycle navigation.&lt;br /&gt;
&lt;br /&gt;
[[Image:Navit-2241.png|thumb|Navit-r2241]]&lt;br /&gt;
&lt;br /&gt;
== Acknowledgment ==&lt;br /&gt;
&lt;br /&gt;
Thanks to [[User:Alessandro | Alessandro]], stefan_schmidt, cp15 and all Navit developers I have done a small (&amp;quot;not really working&amp;quot;) preview of Navit on Neo1973 at [http://www.telemobilityforum.com/eng/ Telemobility Forum 2007]. Thanks to [http://gfoss.it GFoss] guys to invite me.&lt;br /&gt;
''[[User:Tyrael | Tyrael]]''&lt;br /&gt;
&lt;br /&gt;
==Setting up Navit==&lt;br /&gt;
&lt;br /&gt;
===Install Navit===&lt;br /&gt;
&lt;br /&gt;
==== Map Size ====&lt;br /&gt;
Of you use e.g. entire Germany in an rectangle form it will have more than 500MB.&lt;br /&gt;
Navit on FR works with maps in the size of less that 350MB. So split the larger areas in portions with a smaller size than 350MB. Otherwise Navit will not be able to process the maps.&lt;br /&gt;
&lt;br /&gt;
Change navit.xml to modify the used map bin-file, e.g. germany1.bin to germany2.bin&lt;br /&gt;
&lt;br /&gt;
==== Navit on FSO (OM2008.x,SHR,...) ====&lt;br /&gt;
&lt;br /&gt;
You can now simply add a feed from there : http://download.navit-project.org/navit/openmoko/svn/&lt;br /&gt;
&lt;br /&gt;
Essentially, to enable this directory as [[Om_2008.8_Installer#How to add a Repository ?|feed]] and install or update navit do:&lt;br /&gt;
* Only for the first time:&lt;br /&gt;
 echo src navit http://download.navit-project.org/navit/openmoko/svn &amp;gt; /etc/opkg/navit-feed.conf&lt;br /&gt;
 opkg update&lt;br /&gt;
&lt;br /&gt;
* Always:&lt;br /&gt;
 opkg install navit&lt;br /&gt;
&lt;br /&gt;
Navit will be auto-updated when you run opkg upgrade later&lt;br /&gt;
&lt;br /&gt;
Navit might not be able to use gpsd at startup:&lt;br /&gt;
 navit:plugin_load:can't load '/usr/lib/navit/vehicle/&lt;br /&gt;
 libvehicle_gpsd.so', Error 'libgps.so.16: cannot open shared object  &lt;br /&gt;
 file: No such file or directory'&lt;br /&gt;
 navit:vehicle_new:invalid type 'gpsd'&lt;br /&gt;
&lt;br /&gt;
to solve this issue (necessary for SHR):&lt;br /&gt;
&lt;br /&gt;
 opkg install libgps17&lt;br /&gt;
 ln -s /usr/lib/libgps.so.17 /usr/lib/libgps.so.16&lt;br /&gt;
&lt;br /&gt;
====Navit on Debian====&lt;br /&gt;
Navit is now in Debian [http://packages.debian.org/source/testing/navit testing] and [http://packages.debian.org/source/unstable/navit unstable].&lt;br /&gt;
&lt;br /&gt;
Add the following line to &amp;lt;tt&amp;gt;/etc/apt/sources.list&amp;lt;/tt&amp;gt; with e.g. editor &amp;lt;tt&amp;gt;vi&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;nano&amp;lt;/tt&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
     deb http://ftp.de.debian.org/debian unstable main&lt;br /&gt;
&lt;br /&gt;
Then update with apt-get:&lt;br /&gt;
&lt;br /&gt;
     apt-get update&lt;br /&gt;
&lt;br /&gt;
The up-to-date source package is available through git at '''git://git.debian.org/git/collab-maint/navit.git''' ([http://git.debian.org/?p=collab-maint/navit.git;a=summary browse]).&lt;br /&gt;
&lt;br /&gt;
====Navit on Android====&lt;br /&gt;
Download current version [http://download.navit-project.org/navit/android_armv4t/svn/ navit-current.apk] on your Android. See [[Android usage]] for installing Apps on your [http://code.google.com/p/android-on-freerunner/wiki/Applications Android on Freerunner].&lt;br /&gt;
&lt;br /&gt;
   see [http://wiki.navit-project.org/index.php/Navit_on_Android Navit on Android] Navit Project Wiki&lt;br /&gt;
&lt;br /&gt;
You can use one download map which you have to copy on the FAT32 partition of your SD card as '''&amp;lt;tt&amp;gt;navitmap.bin&amp;lt;/tt&amp;gt;'''. &lt;br /&gt;
&lt;br /&gt;
During first use after installation, navit for android will ask you, if you want to intall [http://espeak.sourceforge.net/ TTS] (Text to Speech [http://www.speech.cs.cmu.edu/flite/ festival-lite]). If you decide to install TTS then Navit crashes (with version [http://download.navit-project.org/navit/android_armv4t/svn/ navit-svn-3495.apk]).&lt;br /&gt;
&lt;br /&gt;
====Navit on QtMoko====&lt;br /&gt;
You can find some information for installing Navit in the [[QtMoko]] article.&lt;br /&gt;
&lt;br /&gt;
===Set up the maps you want===&lt;br /&gt;
&lt;br /&gt;
====The Easy Way====&lt;br /&gt;
Use [http://maps.navit-project.org/download/ Navit Map Extractor] based on [http://www.openstreetmap.org OpenStreetMap].  Navigate to the region you want, and click &amp;quot;select&amp;quot; to select region, select the area you want, then click download. [[Image:osmdownload.jpg|200px|thumb|Download OpenStreetMaps]] &lt;br /&gt;
&lt;br /&gt;
If you just want the entire planet (as of this writing, ~1.8 GB), it's [http://maps.navit-project.org/planet.bin here].&lt;br /&gt;
&lt;br /&gt;
[http://downloads.cloudmade.com/ CloudMade] also has up-to-date maps from OpenStreetMap by country (by state in the US).&lt;br /&gt;
&lt;br /&gt;
{{Note|Be aware of the map size that can be used on your FR (On Android working with map sizes less than 350MB is O.K. on SHR 450MB also work, so SHR may not have a map size limit)}}&lt;br /&gt;
&lt;br /&gt;
====From the command line====&lt;br /&gt;
'''OpenStreetMap''' - follow directions at http://wiki.navit-project.org/index.php/OpenStreetMaps&lt;br /&gt;
* There are some pre-processed, up-to-date maps that can be grabbed with wget:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;wget -O germany.bin http://maps.navit-project.org/api/map/?bbox=5.185546875,46.845703125,15.46875,55.634765625&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can put a shell script into &amp;lt;tt&amp;gt;/usr/local/bin/update-maps&amp;lt;/tt&amp;gt;&lt;br /&gt;
  #!/bin/sh&lt;br /&gt;
  echo &amp;quot;Update OpenstreetMaps&amp;quot;&lt;br /&gt;
  echo &amp;quot;---------------------&amp;quot;&lt;br /&gt;
  echo &amp;quot;  download and store OSM maps on /media/card/maps&amp;quot;&lt;br /&gt;
  wget -O /media/card/maps/germany.bin http://maps.navit-project.org/api/map/?bbox=5.185546875,46.845703125,15.46875,55.634765625&lt;br /&gt;
  echo &amp;quot;update germany.bin finished&amp;quot;&lt;br /&gt;
You have to make the script executable with:&lt;br /&gt;
  chmod u+x /usr/local/bin/update-maps&lt;br /&gt;
Create a maps-directory (e.g. with path &amp;lt;tt&amp;gt;/media/card/maps/&amp;lt;/tt&amp;gt;) on your SD-card:&lt;br /&gt;
  mkdir /media/card/maps/&lt;br /&gt;
Then you can update with this script all your maps on the SD-card if you have internet connection:&lt;br /&gt;
  update-maps&lt;br /&gt;
* Here's an example to get the maps for the area around Seattle, WA:&lt;br /&gt;
** Find the map coordinates using http://informationfreeway.org/?lat=47.520270037501454&amp;amp;lon=-122.20130713167327&amp;amp;zoom=9&amp;amp;layers=B000F000&lt;br /&gt;
** 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):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;wget -O map1.osm http://www.openstreetmap.org/api/0.5/map?bbox=-122.2,47.5,-122,47.7&lt;br /&gt;
wget -O map2.osm http://www.openstreetmap.org/api/0.5/map?bbox=-122.4,47.5,-122.2,47.7&lt;br /&gt;
wget -O map3.osm http://www.openstreetmap.org/api/0.5/map?bbox=-122.4,47.3,-122.2,47.5&lt;br /&gt;
wget -O map4.osm http://www.openstreetmap.org/api/0.5/map?bbox=-122.2,47.3,-122,47.5&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* 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:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;cat *.osm | osm2navit --dedupe-ways mymap.bin&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Copy the map to the NEO===&lt;br /&gt;
To copy the map using scp (replace ''/directory'' as is appropriate in the following):&lt;br /&gt;
&amp;lt;pre&amp;gt;scp mymap.bin root@neo:/directory&amp;lt;/pre&amp;gt;&lt;br /&gt;
If you copy the map &amp;lt;tt&amp;gt;germany.bin&amp;lt;/tt&amp;gt; to the SD card on the Neo use e.g. in the directory &amp;lt;tt&amp;gt;maps&amp;lt;/tt&amp;gt;:&lt;br /&gt;
  scp germany.bin root@neo:/media/card/maps&lt;br /&gt;
Once it's somewhere on the NEO, Navit needs to know that it's there.&lt;br /&gt;
&amp;lt;pre&amp;gt;mkdir ~/.navit&lt;br /&gt;
cp /usr/share/navit/navit.xml ~/.navit/navit.xml&lt;br /&gt;
vi ~/.navit/navit.xml&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
note that in some version navit includes other xml files from /usr/share/navit, for instance mapsets are now defined in maps.xml.&lt;br /&gt;
&lt;br /&gt;
===Enable Maps in  Navit ===&lt;br /&gt;
Now you must let Navit know the maps you want to use. Several disabled mapset-tags are predefined. &lt;br /&gt;
In the navit.xml file, put the following into a new &amp;lt;mapset&amp;gt; section (and disable the default &amp;lt;mapset&amp;gt; just above - or else it will not work):&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;map type=&amp;quot;binfile&amp;quot; enabled=&amp;quot;yes&amp;quot; data=&amp;quot;/directory&amp;quot; /&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
For example with a &amp;lt;tt&amp;gt;germany.bin&amp;lt;/tt&amp;gt; on the SD-card you use:&lt;br /&gt;
 &amp;lt;mapset enabled=&amp;quot;yes&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;map type=&amp;quot;binfile&amp;quot; enabled=&amp;quot;yes&amp;quot; data=&amp;quot;/media/card/maps/germany.bin&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;/mapset&amp;gt;&lt;br /&gt;
or if you store all downloaded maps in the directory &amp;lt;tt&amp;gt;/media/card/maps&amp;lt;/tt&amp;gt; then add the following lines to &amp;lt;tt&amp;gt;navit.xml&amp;lt;/tt&amp;gt;.&lt;br /&gt;
 &amp;lt;mapset enabled=&amp;quot;yes&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;map type=&amp;quot;binfile&amp;quot; enabled=&amp;quot;yes&amp;quot; data=&amp;quot;/media/card/maps/*.bin&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;/mapset&amp;gt;&lt;br /&gt;
{{Note|this will only load the first map that machtes *.bin (its a bug/feature)!}}&lt;br /&gt;
{{Note|that the bin-file and the map set both have to be enabled}}&lt;br /&gt;
&lt;br /&gt;
Disable unused mapset sections by setting enabled to &amp;lt;tt&amp;gt;no&amp;lt;/tt&amp;gt;, e.g. the pre-installed sample maps at line 370 in &amp;lt;tt&amp;gt;navit.xml&amp;lt;/tt&amp;gt;.&lt;br /&gt;
 &amp;lt;mapset enabled=&amp;quot;no&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xi:include href=&amp;quot;$NAVIT_SHAREDIR/maps/*.xml&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;/mapset&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Run navit&lt;br /&gt;
** Start [[gllin]] (for GTA01)&lt;br /&gt;
** Start [[gpsd]] ( gpsd /tmp/nmeaNP )&lt;br /&gt;
** Start navit&lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
===Tips and Tricks===&lt;br /&gt;
====Center on Vehicle====&lt;br /&gt;
Navit supports a &amp;quot;always center on vehicle&amp;quot; option. &lt;br /&gt;
&lt;br /&gt;
To activate this add&lt;br /&gt;
 follow=&amp;quot;3&amp;quot;&lt;br /&gt;
to the &amp;lt;tt&amp;gt;vehicle&amp;lt;/tt&amp;gt; tag in navit.xml. &lt;br /&gt;
   &amp;lt;vehicle name=&amp;quot;Local GPS&amp;quot; profilename=&amp;quot;car&amp;quot; enabled=&amp;quot;yes&amp;quot; active=&amp;quot;1&amp;quot; follow=&amp;quot;3&amp;quot; &lt;br /&gt;
           source=&amp;quot;gpsd://localhost&amp;quot; gpsd_query=&amp;quot;w+xj&amp;quot; color=&amp;quot;#0000ff&amp;quot;&amp;gt;&lt;br /&gt;
The &amp;quot;3&amp;quot; causes to give the gui time to do something between the repaints (drag the map or browse the menu). When its set to &amp;quot;1&amp;quot; navit does nothing more than repainting the map continuously.&lt;br /&gt;
====Localize for Germany====&lt;br /&gt;
* [http://www.freeyourphone.de/portal_v1/viewtopic.php?f=22&amp;amp;t=1039 SHR German] from freeyourphone.de&lt;br /&gt;
* Go to [[Configure_SHR_for_German-speaking_use]] download&lt;br /&gt;
   http://work.zoff.cc/openmoko/shr/de_at/customize_pack_shr_no_maps.tar.gz&lt;br /&gt;
: extract &amp;lt;tt&amp;gt;init_shr_testing.sh&amp;lt;/tt&amp;gt; and see what [[User:Zoff99|zoff99]] did to customize navit for German speaking. Search for &amp;lt;tt&amp;gt;glibc&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;navit&amp;lt;/tt&amp;gt; in localization script for understand the steps to be perform on your freerunner.&lt;br /&gt;
&lt;br /&gt;
==Routing==&lt;br /&gt;
[[Image:navit_main_menu.png|100px|thumb|Navit Main Menu]]&lt;br /&gt;
[[Image:navit_action_menu.png|100px|thumb|Navit Action Menu]]&lt;br /&gt;
The main menu has 4 submenus&lt;br /&gt;
* Action&lt;br /&gt;
* Settings&lt;br /&gt;
* Tools&lt;br /&gt;
* Route&lt;br /&gt;
Normally you would assume the entering a town can be found under the submenu Route, but Town is hidden under submenu Action. Route will provide the description of the route as text and a height profile of your trip. Tools was not working on 08/2009 Version of navit on SHR (see [[SHR User Manual]]).&lt;br /&gt;
&lt;br /&gt;
===Preselect Country of Destination===&lt;br /&gt;
Normally you have to select the the country first before choosing the town and street name. It might be more convenient for you if you preselect the country already with your settings.&lt;br /&gt;
The article [[Configure SHR for German-speaking use]] had a preselection of the country &amp;quot;Austria&amp;quot; in Navit. Adapt the localization for your country and maps in Navit, so that do not need to select the country anymore.&lt;br /&gt;
&lt;br /&gt;
Actually Navit derives the preselected country from the calling environments's locale (see [[Localization]]). Make sure, that LC_ALL ist '''not''' set though. Otherwise navit fails to interprete gpsd output and you end up with strange gps coordinates. When starting from gui (e.g. illume) you can achieve this by supplying an executable script /usr/local/bin/navit which might look like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
#export LANG=xx_YY.UTF-8   # Uncomment this line and replace xx_YY, if &lt;br /&gt;
                           # your gui's locale is not setup accordingly. &lt;br /&gt;
unset LC_ALL&lt;br /&gt;
exec /usr/bin/navit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
So a valid locale environment preselecting search for German cities would look like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@om-gta02 ~ $ locale&lt;br /&gt;
LANG=de_DE.UTF-8&lt;br /&gt;
LC_CTYPE=&amp;quot;de_DE.UTF-8&amp;quot;&lt;br /&gt;
LC_NUMERIC=&amp;quot;de_DE.UTF-8&amp;quot;&lt;br /&gt;
...&lt;br /&gt;
LC_MEASUREMENT=&amp;quot;de_DE.UTF-8&amp;quot;&lt;br /&gt;
LC_IDENTIFICATION=&amp;quot;de_DE.UTF-8&amp;quot;&lt;br /&gt;
LC_ALL=&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note that there's a limited number of [http://wiki.navit-project.org/index.php/OpenStreetMaps#Known_countries_by_osm2navit countries supported by osm2navit] and Navit's search function.&lt;br /&gt;
&lt;br /&gt;
===Select Destination===&lt;br /&gt;
[[Image:navit_select_country.png|100px|thumb|Select Country]]&lt;br /&gt;
&lt;br /&gt;
You can the select your destination in the main menu:&lt;br /&gt;
* via '''Bookmarks''', if you saved the previous location or&lt;br /&gt;
* via '''Town''', if you want to enter a new destination. If you use a destination more frequently, just save the location as bookmark.  &lt;br /&gt;
&lt;br /&gt;
When you click in the main menu on &amp;lt;i&amp;gt;Action&amp;lt;/i&amp;gt; the &amp;lt;i&amp;gt;Action&amp;lt;/i&amp;gt; menu appears with 4 subitems.&lt;br /&gt;
* Bookmarks of previous locations (stored in &amp;lt;tt&amp;gt;/home/root/.navit/destinations.txt&amp;lt;/tt&amp;gt;&lt;br /&gt;
* a globe showing a location as destination,&lt;br /&gt;
* a vehicle that shows the current GPS position of the vehicle. If the freerunner receives no GPS signal the locations of the vehicle is set to 0.0.0N and 0.0.0E. &lt;br /&gt;
* Town is the action to enter a destination.&lt;br /&gt;
* Quit navit is the last action in this submenu.&lt;br /&gt;
&lt;br /&gt;
Select the icon &amp;lt;i&amp;gt;Town&amp;lt;/i&amp;gt; in the main menu (if you see the map, you can get to the main menu just by clicking on the map).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Select Country====&lt;br /&gt;
[[Image:navit_country_selected.png|100px|thumb|Country Options]]&lt;br /&gt;
[[Image:navit_destination_details.png|100px|thumb|Enter Bookmark Details]]&lt;br /&gt;
&lt;br /&gt;
Before you can search for City you have to select a Country. To do that, click on the icon in the left upper corner of the search field (could look like a white square with blue top-left quadrant).&lt;br /&gt;
&lt;br /&gt;
Just type in the first letter of the country (e.g. &amp;quot;G&amp;quot;) and Navit makes suggestions (e.g. Gabon, Germany).&lt;br /&gt;
&lt;br /&gt;
====Enter Town====&lt;br /&gt;
&lt;br /&gt;
When you have selected the country (e.g. Germany) the flag appears and you can select the town.&lt;br /&gt;
Then you can save the town as bookmark and enter more details like streets to the selected town.&lt;br /&gt;
&lt;br /&gt;
The search is still a little buggy.&lt;br /&gt;
&lt;br /&gt;
====Enter Street====&lt;br /&gt;
You can enter the street and streetnumber and save it as bookmark when you use the destination often. &lt;br /&gt;
&lt;br /&gt;
====Bookmarks====&lt;br /&gt;
Navigation and planning of routes with Navit can be organized with bookmarks.&lt;br /&gt;
* set a bookmark as current position &lt;br /&gt;
* set a bookmark as destination&lt;br /&gt;
Then you can see the suggested route in blue on the map. &lt;br /&gt;
&lt;br /&gt;
Bookmarks are stored in:&lt;br /&gt;
  /home/root/.navit/bookmark.txt&lt;br /&gt;
&lt;br /&gt;
The GPS-location (if GPS-signal is available) will be highlighted with a small blue circle. The color of the circle can be defined via editing the &amp;lt;tt&amp;gt;navit.xml&amp;lt;/tt&amp;gt; (see [http://wiki.openmoko.org/wiki/Navit#Set_Cursor_Color select cursor color]).&lt;br /&gt;
* a dot in the blue circle is indicating that your are not moving,&lt;br /&gt;
* an arrowhead is indicating the direction, when you are moving.&lt;br /&gt;
Then routing can start and in the map the route is highlighted.&lt;br /&gt;
&lt;br /&gt;
====Screenshots in Navit Documentation====&lt;br /&gt;
The screenshots are made with &amp;lt;tt&amp;gt;gpe-scap&amp;lt;/tt&amp;gt;, that can be installed by:&lt;br /&gt;
  opkg install gpe-scap&lt;br /&gt;
if not installed already. Navigation through your installed application navit and login via ssh on your Freerunner &lt;br /&gt;
  ssh -l root 192.168.0.202&lt;br /&gt;
assuming that your Freerunner has the IP 192.168.0.202.&lt;br /&gt;
Any time you want to make a screenshot just start via your desktop computer &lt;br /&gt;
  gpe-scap&lt;br /&gt;
and save the screenshot to you freerunner.&lt;br /&gt;
Download the screenshot to your desktop computer with&lt;br /&gt;
  desktop# sftp://root@192.168.0.202&lt;br /&gt;
&lt;br /&gt;
== News ==&lt;br /&gt;
A deeper look into configuring Navit can be found in the [http://wiki.navit-project.org/index.php/Configuring_Navit Navit-Wiki].&lt;br /&gt;
&lt;br /&gt;
=== Getting the display right ===&lt;br /&gt;
&lt;br /&gt;
If using SHR the keyboard in country/town/street search mode does not fit on the street, make sure your gui configuration is set to the following line:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;gui type=&amp;quot;internal&amp;quot; font_size=&amp;quot;350&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The example line provided for freerunners hides some important icons. Namely, instead of typing your city name first, you will first have to click the button on the top left, to go into country search mode. Enter your country name, then the city name, in order to enable the search function. This requires your map data to be searchable.&lt;br /&gt;
&lt;br /&gt;
You can start in fullscreen mode with fullscreen=&amp;quot;1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;gui type=&amp;quot;internal&amp;quot; font_size=&amp;quot;350&amp;quot; fullscreen=&amp;quot;1&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you want to enable &amp;quot;+&amp;quot; and &amp;quot;-&amp;quot; as Zoom-In and Zoom-Out buttons on the bottom of the map enable the button with the following xml-tags:&lt;br /&gt;
 &amp;lt;osd enabled=&amp;quot;yes&amp;quot; type=&amp;quot;button&amp;quot; x=&amp;quot;-96&amp;quot; y=&amp;quot;-96&amp;quot; command=&amp;quot;zoom_in()&amp;quot;  src=&amp;quot;zoom_in.xpm&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;osd enabled=&amp;quot;yes&amp;quot; type=&amp;quot;button&amp;quot; x=&amp;quot;0&amp;quot;   y=&amp;quot;-96&amp;quot; command=&amp;quot;zoom_out()&amp;quot; src=&amp;quot;zoom_out.xpm&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can find sample Layouts here:&lt;br /&gt;
[http://wiki.navit-project.org/index.php/OSD_Layouts Sample Layouts from navit-wiki]&lt;br /&gt;
&lt;br /&gt;
=== Set Cursor Color ===&lt;br /&gt;
[[Image:red_cursor.png|90px|thumb|Red Cursor]]&lt;br /&gt;
If you navigate, the route is marked in blue color on the map. The current position of the vehicle is displayed by a blue circle. The circle is sometimes difficult to see on the blue track. If you want to change the color, size  of the vehicle cursor edit the vehicle XML-environment in navit.xml (e.g. replace blue color #0000FF with red color #FF0000 -- for details of  [http://html-color-codes.info Color Codes] select color, copy and paste code in &amp;lt;tt&amp;gt;navit.xml&amp;lt;/tt&amp;gt;)  &lt;br /&gt;
&lt;br /&gt;
     &amp;lt;vehicle name=&amp;quot;Local GPS&amp;quot; profilename=&amp;quot;car&amp;quot; enabled=&amp;quot;yes&amp;quot; active=&amp;quot;1&amp;quot; source=&amp;quot;gpsd://localhost&amp;quot; gpsd_query=&amp;quot;w+xj&amp;quot; color=&amp;quot;#0000ff&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;!-- Navit can write a tracklog in several formats (gpx, nmea or textfile): --&amp;gt;&lt;br /&gt;
        &amp;lt;!-- &amp;lt;log type=&amp;quot;gpx&amp;quot; data=&amp;quot;track_%Y%m%d-%i.gpx&amp;quot; flush_size=&amp;quot;1000&amp;quot; flush_time=&amp;quot;30&amp;quot;/&amp;gt; --&amp;gt;&lt;br /&gt;
            &amp;lt;cursor w=&amp;quot;56&amp;quot; h=&amp;quot;56&amp;quot;&amp;gt;&lt;br /&gt;
               &amp;lt;!-- tag defines the circle for the cursor --&amp;gt;&lt;br /&gt;
                &amp;lt;itemgra&amp;gt;&lt;br /&gt;
                    &amp;lt;circle color=&amp;quot;#ff0000&amp;quot; radius=&amp;quot;42&amp;quot; width=&amp;quot;6&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;0&amp;quot; y=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/circle&amp;gt;&lt;br /&gt;
                   &amp;lt;circle color=&amp;quot;#ffffff&amp;quot; radius=&amp;quot;48&amp;quot; width=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;0&amp;quot; y=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/circle&amp;gt;&lt;br /&gt;
                   &amp;lt;circle color=&amp;quot;#ffffff&amp;quot; radius=&amp;quot;36&amp;quot; width=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;0&amp;quot; y=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/circle&amp;gt;&lt;br /&gt;
                &amp;lt;/itemgra&amp;gt;&lt;br /&gt;
               &amp;lt;!-- tag defines the dot when the vehicle is not moving --&amp;gt;&lt;br /&gt;
                &amp;lt;itemgra speed_range=&amp;quot;-2&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;polyline color=&amp;quot;#ff0000&amp;quot; width=&amp;quot;6&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;1&amp;quot; y=&amp;quot;1&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;1&amp;quot; y=&amp;quot;-1&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;-1&amp;quot; y=&amp;quot;-1&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;-1&amp;quot; y=&amp;quot;-1&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/polyline&amp;gt;&lt;br /&gt;
                  &amp;lt;circle color=&amp;quot;#ffffff&amp;quot; radius=&amp;quot;9&amp;quot; width=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;0&amp;quot; y=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/circle&amp;gt;&lt;br /&gt;
                &amp;lt;/itemgra&amp;gt;&lt;br /&gt;
                &amp;lt;!-- This itemgra-tag defines the arrow when the vehicle moves --&amp;gt;&lt;br /&gt;
                &amp;lt;itemgra speed_range=&amp;quot;3-&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;polyline color=&amp;quot;#ff0000&amp;quot; width=&amp;quot;6&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;-7&amp;quot; y=&amp;quot;-10&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;0&amp;quot; y=&amp;quot;12&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;7&amp;quot; y=&amp;quot;-10&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/polyline&amp;gt;&lt;br /&gt;
                  &amp;lt;polyline color=&amp;quot;#ffffff&amp;quot; width=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;+10&amp;quot; y=&amp;quot;-10&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;3&amp;quot; y=&amp;quot;15&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/polyline&amp;gt;&lt;br /&gt;
                    &amp;lt;polyline color=&amp;quot;#ffffff&amp;quot; width=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;-10&amp;quot; y=&amp;quot;-10&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;-3&amp;quot; y=&amp;quot;15&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/polyline&amp;gt;&lt;br /&gt;
                &amp;lt;/itemgra&amp;gt;&lt;br /&gt;
        &amp;lt;/cursor&amp;gt;&lt;br /&gt;
    &amp;lt;/vehicle&amp;gt;&lt;br /&gt;
The following screenshot show Navit with a red cursor on a blue track:&lt;br /&gt;
&lt;br /&gt;
[[Image:navit_color_cursor.png|200px|thumb|Red Cursor Color on blue track - vehicle not moving]]&lt;br /&gt;
&lt;br /&gt;
=== Speech ===&lt;br /&gt;
Navit can speak if you install [http://espeak.sourceforge.net/ eSpeak] + [http://www.freebsoft.org/speechd speech-dispatcher] and updates your navit.xml file.&lt;br /&gt;
&lt;br /&gt;
If you want navit using your language, and setting LC_MESSAGES fails due to missing glibc locale, set the enviroment variable LANGUAGE. For instance running&lt;br /&gt;
  LANGUAGE=de navit&lt;br /&gt;
will set the ui and output to german.&lt;br /&gt;
&lt;br /&gt;
For SHR there is a big german localization patch see [[Configure SHR for German-speaking use]].&lt;br /&gt;
&lt;br /&gt;
One way to configure speech output:&lt;br /&gt;
&lt;br /&gt;
* mokoTTS aims to integrate these packages in OM:&lt;br /&gt;
http://projects.openmoko.org/projects/mokotts/&lt;br /&gt;
&lt;br /&gt;
install espeak, dotconf, and then speech-dispatcher.&lt;br /&gt;
note: running 2008.8 updating from zecke's &amp;quot;testing&amp;quot; repo does not require &amp;quot;dotconf&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Speech Language ====&lt;br /&gt;
To change the speech tag in navit.xml:&lt;br /&gt;
  &amp;lt;speech type=&amp;quot;cmdline&amp;quot; data=&amp;quot;spd-say '%s'&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;'''spd-say -l fr '%s''''&amp;quot; for using the French voice for example.&lt;br /&gt;
* &amp;quot;'''spd-say -l de '%s''''&amp;quot; for using the German voice for example.&lt;br /&gt;
&lt;br /&gt;
{{Note|You can check speech dispatcher output from the shell.}}&lt;br /&gt;
Example for German:&lt;br /&gt;
  spd-say -l=de &amp;quot;Dies ist die Winterstraße 23&amp;quot;&lt;br /&gt;
The speech-dispatcher is blocking the audio after suspend. So after a suspend you will hear no ringtone, when a phone call is coming in and you cannot listen do audio files.&lt;br /&gt;
A solution is to disable starting of speech-dispatcher with:&lt;br /&gt;
  update-rc.d -f speech-dispatcher remove&lt;br /&gt;
Then the speech-dispatcher should be started if and only if navit is running and shut down when navit is closed.&lt;br /&gt;
&lt;br /&gt;
Furthermore navit should be started indirect with a script &amp;lt;tt&amp;gt;navit.sh&amp;lt;/tt&amp;gt; instead of a direct start with the binary located in &amp;lt;tt&amp;gt;/usr/bin/navit&amp;lt;/tt&amp;gt;. The script &amp;lt;tt&amp;gt;navit.sh&amp;lt;/tt&amp;gt; listed below starts speech-dispatcher before navit, and stops it afterwards. See http://lists.openmoko.org/nabble.html#nabble-td1088795&lt;br /&gt;
&lt;br /&gt;
The following script is doing the suggested procedure. This script includes a language fix for Austria (see [[Configure SHR for German-speaking use]]).&lt;br /&gt;
  export LANG=de_AT.utf8&amp;lt;tt&amp;gt;spd-say --language=de Output-String&amp;lt;/tt&amp;gt; You can replace the --language by -l }&lt;br /&gt;
Replace '''&amp;lt;tt&amp;gt;de_AT&amp;lt;/tt&amp;gt;''' in this line with the appropriate language variable in the following script &amp;lt;tt&amp;gt;navit.sh&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#! /bin/sh&lt;br /&gt;
#&lt;br /&gt;
# Copyright Matthias Hentges &amp;lt;devel@hentges.net&amp;gt; (c) 2008&lt;br /&gt;
# License: GPL (see http://www.gnu.org/licenses/gpl.txt for a copy of the license)&lt;br /&gt;
#&lt;br /&gt;
# Filename: navit.sh&lt;br /&gt;
# Date: 20080105 (YMD)&lt;br /&gt;
#&lt;br /&gt;
#################################################################################&lt;br /&gt;
#&lt;br /&gt;
# 20080105 - v0.0.1	- Initial release&lt;br /&gt;
# 20090818 -            - Zoff &amp;lt;zoff@zoff.cc&amp;gt; addons and fixes&lt;br /&gt;
#&lt;br /&gt;
#&lt;br /&gt;
#################################################################################&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#################################################################################&lt;br /&gt;
#&lt;br /&gt;
# On devices with low memory (&amp;lt; 512Mb?) Navit will segfault on start.&lt;br /&gt;
# This can be worked around by doing&lt;br /&gt;
# &amp;quot;echo 1 &amp;gt; /proc/sys/vm/overcommit_memory&amp;quot;&lt;br /&gt;
#&lt;br /&gt;
#################################################################################&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
. /etc/profile&lt;br /&gt;
&lt;br /&gt;
set|grep LC&lt;br /&gt;
&lt;br /&gt;
#### Stop the speech dispatcher ####&lt;br /&gt;
/etc/init.d/speech-dispatcher stop&lt;br /&gt;
&lt;br /&gt;
#### Language Fix #################&lt;br /&gt;
set|grep LC&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
export LC_ALL=''&lt;br /&gt;
unset LC_ALL&lt;br /&gt;
export LANG=de_AT.utf8&lt;br /&gt;
&lt;br /&gt;
set|grep LC&lt;br /&gt;
&lt;br /&gt;
#### Start the speech dispatcher ####&lt;br /&gt;
/etc/init.d/speech-dispatcher start &amp;amp;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
set|grep LC&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# need cpu and display&lt;br /&gt;
mdbus -s org.freesmartphone.ousaged /org/freesmartphone/Usage org.freesmartphone.Usage.SetResourcePolicy Display enabled&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if test &amp;quot;`cat /proc/meminfo | grep ^MemTotal | awk '{print $2}'`&amp;quot; -lt &amp;quot;500000&amp;quot;&lt;br /&gt;
then&lt;br /&gt;
	if test &amp;quot;$USER&amp;quot; = &amp;quot;root&amp;quot;&lt;br /&gt;
	then&lt;br /&gt;
		echo &amp;quot;Enabling low-mem workaround...&amp;quot;&lt;br /&gt;
		echo 1 &amp;gt; /proc/sys/vm/overcommit_memory&lt;br /&gt;
	else&lt;br /&gt;
		echo &amp;quot;I need root-privs to enable the low-mem workaround!&amp;quot;&lt;br /&gt;
	fi&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
######### Start NAVIT NOW ############&lt;br /&gt;
&lt;br /&gt;
navit $*&lt;br /&gt;
	&lt;br /&gt;
#### Stop the speech dispatcher ####&lt;br /&gt;
&lt;br /&gt;
/etc/init.d/speech-dispatcher stop&lt;br /&gt;
&lt;br /&gt;
# release cpu and display&lt;br /&gt;
mdbus -s org.freesmartphone.ousaged /org/freesmartphone/Usage org.freesmartphone.Usage.SetResourcePolicy Display auto&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Save the &amp;lt;tt&amp;gt;navit.sh&amp;lt;/tt&amp;gt; script in:&lt;br /&gt;
  /usr/bin/navit.sh&lt;br /&gt;
Make the script executable:&lt;br /&gt;
  chmod u+x /usr/bin/navit.sh&lt;br /&gt;
Now you have to edit the desktop icon, so that it starts this script &amp;lt;tt&amp;gt;navit.sh&amp;lt;/tt&amp;gt; instead of the binary &amp;lt;tt&amp;gt;/usr/bin/navit&amp;lt;/tt&amp;gt;.&lt;br /&gt;
  nano /usr/share/applications/navit.desktop&lt;br /&gt;
Edit the line with &amp;lt;tt&amp;gt;Exec=...&amp;lt;/tt&amp;gt;, so that it starts the script &amp;lt;tt&amp;gt;navit.sh&amp;lt;/tt&amp;gt; instead of the navit binary.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[Desktop Entry]&lt;br /&gt;
Version=1.0&lt;br /&gt;
Name=Navit&lt;br /&gt;
Name[de]=Navit&lt;br /&gt;
Name[fr]=Navit&lt;br /&gt;
Comment=The open source vector based navigation program with routing engine&lt;br /&gt;
Comment[de]=Ein vektorbasiertes Navigationsprogramm&lt;br /&gt;
Comment[fr]=Le logiciel opensource de navigation vectorielle&lt;br /&gt;
Exec=/usr/bin/navit.sh&lt;br /&gt;
Icon=navit&lt;br /&gt;
StartupNotify=true&lt;br /&gt;
Terminal=false&lt;br /&gt;
Type=Application&lt;br /&gt;
Categories=GTK;Utility;Geography;&lt;br /&gt;
GenericName=Navit&lt;br /&gt;
GenericName[de]=Navit&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Alternatively''', you can make speech-dispatcher restart on resume, see http://trac.shr-project.org/trac/ticket/494&lt;br /&gt;
&lt;br /&gt;
=== Script to download OSM maps ===&lt;br /&gt;
[[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&lt;br /&gt;
dlOSM.sh &amp;lt;minimum latitude&amp;gt; &amp;lt;maximum latitude&amp;gt; &amp;lt;minimum longitude&amp;gt; &amp;lt;maximum longitude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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...&lt;br /&gt;
&lt;br /&gt;
dlOSM.sh:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/usr/bin/python&lt;br /&gt;
&lt;br /&gt;
import os&lt;br /&gt;
import sys&lt;br /&gt;
#import math&lt;br /&gt;
&lt;br /&gt;
def doIt(cmd):&lt;br /&gt;
  os.system(cmd)&lt;br /&gt;
&lt;br /&gt;
def getOsms(basename, minLat, maxLat, minLon, maxLon):&lt;br /&gt;
  '''basename - base name of map, maps are named {basename}{count}.osm&lt;br /&gt;
  minLat - latitude of the west side of the map&lt;br /&gt;
  maxLat - latitude of the east side of the map&lt;br /&gt;
  minLon - longitude of the north side of the map&lt;br /&gt;
  maxLon - longitude of the south side of the map'''&lt;br /&gt;
&lt;br /&gt;
  wgetCmdTemplate = 'wget -O %s%s.osm http://api.openstreetmap.org/api/0.6/map?bbox=%s,%s,%s,%s'&lt;br /&gt;
&lt;br /&gt;
  currLat = minLat&lt;br /&gt;
  mapCount = 0&lt;br /&gt;
  while currLat &amp;lt; maxLat:&lt;br /&gt;
    nextLat = min(currLat + 0.1, maxLat)&lt;br /&gt;
&lt;br /&gt;
    currLon = minLon&lt;br /&gt;
    while currLon &amp;lt; maxLon:&lt;br /&gt;
      nextLon = min(currLon + 0.1, maxLon)&lt;br /&gt;
&lt;br /&gt;
      doIt(wgetCmdTemplate % (basename, mapCount, currLon, currLat, nextLon, nextLat))&lt;br /&gt;
&lt;br /&gt;
      currLon = nextLon&lt;br /&gt;
      mapCount = mapCount + 1&lt;br /&gt;
&lt;br /&gt;
    currLat = nextLat&lt;br /&gt;
&lt;br /&gt;
(minLat, maxLat, minLon, maxLon) = map(float, sys.argv[1:])&lt;br /&gt;
getOsms('map', minLat, maxLat, minLon, maxLon)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;onlyinclude&amp;gt;&lt;br /&gt;
{{ApplicationBox|&lt;br /&gt;
Name=[[Navit]]|&lt;br /&gt;
Description=Navit is a car navigation system with routing engine.|&lt;br /&gt;
Screenshot=Screenshot-3.png|&lt;br /&gt;
Homepage=http://navit.sourceforge.net|&lt;br /&gt;
TestedOn=|&lt;br /&gt;
PackageName=&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:GPS Applications]]&lt;/div&gt;</summary>
		<author><name>Niebert</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Navit</id>
		<title>Navit</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Navit"/>
				<updated>2010-12-28T14:14:16Z</updated>
		
		<summary type="html">&lt;p&gt;Niebert: /* Localize for Germany */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Application|Navit}}&lt;br /&gt;
&lt;br /&gt;
As described on the [http://navit.sourceforge.net/ Navit home page],&lt;br /&gt;
&lt;br /&gt;
&amp;lt;i&amp;gt;&amp;quot;'''Navit''' is a car navigation system with routing engine.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
The current vehicle position is either read from gpsd or directly from NMEA GPS sensors.&amp;quot;&amp;lt;/i&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Some people say Navit is also a good choice for pedestrian and bicycle navigation.&lt;br /&gt;
&lt;br /&gt;
[[Image:Navit-2241.png|thumb|Navit-r2241]]&lt;br /&gt;
&lt;br /&gt;
== Acknowledgment ==&lt;br /&gt;
&lt;br /&gt;
Thanks to [[User:Alessandro | Alessandro]], stefan_schmidt, cp15 and all Navit developers I have done a small (&amp;quot;not really working&amp;quot;) preview of Navit on Neo1973 at [http://www.telemobilityforum.com/eng/ Telemobility Forum 2007]. Thanks to [http://gfoss.it GFoss] guys to invite me.&lt;br /&gt;
''[[User:Tyrael | Tyrael]]''&lt;br /&gt;
&lt;br /&gt;
==Setting up Navit==&lt;br /&gt;
&lt;br /&gt;
===Install Navit===&lt;br /&gt;
&lt;br /&gt;
==== Map Size ====&lt;br /&gt;
Of you use e.g. entire Germany in an rectangle form it will have more than 500MB.&lt;br /&gt;
Navit on FR works with maps in the size of less that 350MB. So split the larger areas in portions with a smaller size than 350MB. Otherwise Navit will not be able to process the maps.&lt;br /&gt;
&lt;br /&gt;
Change navit.xml to modify the used map bin-file, e.g. germany1.bin to germany2.bin&lt;br /&gt;
&lt;br /&gt;
==== Navit on FSO (OM2008.x,SHR,...) ====&lt;br /&gt;
&lt;br /&gt;
You can now simply add a feed from there : http://download.navit-project.org/navit/openmoko/svn/&lt;br /&gt;
&lt;br /&gt;
Essentially, to enable this directory as [[Om_2008.8_Installer#How to add a Repository ?|feed]] and install or update navit do:&lt;br /&gt;
* Only for the first time:&lt;br /&gt;
 echo src navit http://download.navit-project.org/navit/openmoko/svn &amp;gt; /etc/opkg/navit-feed.conf&lt;br /&gt;
 opkg update&lt;br /&gt;
&lt;br /&gt;
* Always:&lt;br /&gt;
 opkg install navit&lt;br /&gt;
&lt;br /&gt;
Navit will be auto-updated when you run opkg upgrade later&lt;br /&gt;
&lt;br /&gt;
Navit might not be able to use gpsd at startup:&lt;br /&gt;
 navit:plugin_load:can't load '/usr/lib/navit/vehicle/&lt;br /&gt;
 libvehicle_gpsd.so', Error 'libgps.so.16: cannot open shared object  &lt;br /&gt;
 file: No such file or directory'&lt;br /&gt;
 navit:vehicle_new:invalid type 'gpsd'&lt;br /&gt;
&lt;br /&gt;
to solve this issue (necessary for SHR):&lt;br /&gt;
&lt;br /&gt;
 opkg install libgps17&lt;br /&gt;
 ln -s /usr/lib/libgps.so.17 /usr/lib/libgps.so.16&lt;br /&gt;
&lt;br /&gt;
====Navit on Debian====&lt;br /&gt;
Navit is now in Debian [http://packages.debian.org/source/testing/navit testing] and [http://packages.debian.org/source/unstable/navit unstable].&lt;br /&gt;
&lt;br /&gt;
Add the following line to &amp;lt;tt&amp;gt;/etc/apt/sources.list&amp;lt;/tt&amp;gt; with e.g. editor &amp;lt;tt&amp;gt;vi&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;nano&amp;lt;/tt&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
     deb http://ftp.de.debian.org/debian unstable main&lt;br /&gt;
&lt;br /&gt;
Then update with apt-get:&lt;br /&gt;
&lt;br /&gt;
     apt-get update&lt;br /&gt;
&lt;br /&gt;
The up-to-date source package is available through git at '''git://git.debian.org/git/collab-maint/navit.git''' ([http://git.debian.org/?p=collab-maint/navit.git;a=summary browse]).&lt;br /&gt;
&lt;br /&gt;
====Navit on Android====&lt;br /&gt;
Download current version [http://download.navit-project.org/navit/android_armv4t/svn/ navit-current.apk] on your Android. See [[Android usage]] for installing Apps on your [http://code.google.com/p/android-on-freerunner/wiki/Applications Android on Freerunner].&lt;br /&gt;
&lt;br /&gt;
   see [http://wiki.navit-project.org/index.php/Navit_on_Android Navit on Android] Navit Project Wiki&lt;br /&gt;
&lt;br /&gt;
You can use one download map which you have to copy on the FAT32 partition of your SD card as '''&amp;lt;tt&amp;gt;navitmap.bin&amp;lt;/tt&amp;gt;'''. &lt;br /&gt;
&lt;br /&gt;
During first use after installation, navit for android will ask you, if you want to intall [http://espeak.sourceforge.net/ TTS] (Text to Speech [http://www.speech.cs.cmu.edu/flite/ festival-lite]). If you decide to install TTS then Navit crashes (with version [http://download.navit-project.org/navit/android_armv4t/svn/ navit-svn-3495.apk]).&lt;br /&gt;
&lt;br /&gt;
====Navit on QtMoko====&lt;br /&gt;
You can find some information for installing Navit in the [[QtMoko]] article.&lt;br /&gt;
&lt;br /&gt;
===Set up the maps you want===&lt;br /&gt;
&lt;br /&gt;
====The Easy Way====&lt;br /&gt;
Use [http://maps.navit-project.org/download/ Navit Map Extractor] based on [http://www.openstreetmap.org OpenStreetMap].  Navigate to the region you want, and click &amp;quot;select&amp;quot; to select region, select the area you want, then click download. [[Image:osmdownload.jpg|200px|thumb|Download OpenStreetMaps]] &lt;br /&gt;
&lt;br /&gt;
If you just want the entire planet (as of this writing, ~1.8 GB), it's [http://maps.navit-project.org/planet.bin here].&lt;br /&gt;
&lt;br /&gt;
[http://downloads.cloudmade.com/ CloudMade] also has up-to-date maps from OpenStreetMap by country (by state in the US).&lt;br /&gt;
&lt;br /&gt;
{{Note|Be aware of the map size that can be used on your FR (On Android working with map sizes less than 350MB is O.K. on SHR 450MB also work, so SHR may not have a map size limit)}}&lt;br /&gt;
&lt;br /&gt;
====From the command line====&lt;br /&gt;
'''OpenStreetMap''' - follow directions at http://wiki.navit-project.org/index.php/OpenStreetMaps&lt;br /&gt;
* There are some pre-processed, up-to-date maps that can be grabbed with wget:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;wget -O germany.bin http://maps.navit-project.org/api/map/?bbox=5.185546875,46.845703125,15.46875,55.634765625&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can put a shell script into &amp;lt;tt&amp;gt;/usr/local/bin/update-maps&amp;lt;/tt&amp;gt;&lt;br /&gt;
  #!/bin/sh&lt;br /&gt;
  echo &amp;quot;Update OpenstreetMaps&amp;quot;&lt;br /&gt;
  echo &amp;quot;---------------------&amp;quot;&lt;br /&gt;
  echo &amp;quot;  download and store OSM maps on /media/card/maps&amp;quot;&lt;br /&gt;
  wget -O /media/card/maps/germany.bin http://maps.navit-project.org/api/map/?bbox=5.185546875,46.845703125,15.46875,55.634765625&lt;br /&gt;
  echo &amp;quot;update germany.bin finished&amp;quot;&lt;br /&gt;
You have to make the script executable with:&lt;br /&gt;
  chmod u+x /usr/local/bin/update-maps&lt;br /&gt;
Create a maps-directory (e.g. with path &amp;lt;tt&amp;gt;/media/card/maps/&amp;lt;/tt&amp;gt;) on your SD-card:&lt;br /&gt;
  mkdir /media/card/maps/&lt;br /&gt;
Then you can update with this script all your maps on the SD-card if you have internet connection:&lt;br /&gt;
  update-maps&lt;br /&gt;
* Here's an example to get the maps for the area around Seattle, WA:&lt;br /&gt;
** Find the map coordinates using http://informationfreeway.org/?lat=47.520270037501454&amp;amp;lon=-122.20130713167327&amp;amp;zoom=9&amp;amp;layers=B000F000&lt;br /&gt;
** 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):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;wget -O map1.osm http://www.openstreetmap.org/api/0.5/map?bbox=-122.2,47.5,-122,47.7&lt;br /&gt;
wget -O map2.osm http://www.openstreetmap.org/api/0.5/map?bbox=-122.4,47.5,-122.2,47.7&lt;br /&gt;
wget -O map3.osm http://www.openstreetmap.org/api/0.5/map?bbox=-122.4,47.3,-122.2,47.5&lt;br /&gt;
wget -O map4.osm http://www.openstreetmap.org/api/0.5/map?bbox=-122.2,47.3,-122,47.5&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* 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:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;cat *.osm | osm2navit --dedupe-ways mymap.bin&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Copy the map to the NEO===&lt;br /&gt;
To copy the map using scp (replace ''/directory'' as is appropriate in the following):&lt;br /&gt;
&amp;lt;pre&amp;gt;scp mymap.bin root@neo:/directory&amp;lt;/pre&amp;gt;&lt;br /&gt;
If you copy the map &amp;lt;tt&amp;gt;germany.bin&amp;lt;/tt&amp;gt; to the SD card on the Neo use e.g. in the directory &amp;lt;tt&amp;gt;maps&amp;lt;/tt&amp;gt;:&lt;br /&gt;
  scp germany.bin root@neo:/media/card/maps&lt;br /&gt;
Once it's somewhere on the NEO, Navit needs to know that it's there.&lt;br /&gt;
&amp;lt;pre&amp;gt;mkdir ~/.navit&lt;br /&gt;
cp /usr/share/navit/navit.xml ~/.navit/navit.xml&lt;br /&gt;
vi ~/.navit/navit.xml&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
note that in some version navit includes other xml files from /usr/share/navit, for instance mapsets are now defined in maps.xml.&lt;br /&gt;
&lt;br /&gt;
===Enable Maps in  Navit ===&lt;br /&gt;
Now you must let Navit know the maps you want to use. Several disabled mapset-tags are predefined. &lt;br /&gt;
In the navit.xml file, put the following into a new &amp;lt;mapset&amp;gt; section (and disable the default &amp;lt;mapset&amp;gt; just above - or else it will not work):&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;map type=&amp;quot;binfile&amp;quot; enabled=&amp;quot;yes&amp;quot; data=&amp;quot;/directory&amp;quot; /&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
For example with a &amp;lt;tt&amp;gt;germany.bin&amp;lt;/tt&amp;gt; on the SD-card you use:&lt;br /&gt;
 &amp;lt;mapset enabled=&amp;quot;yes&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;map type=&amp;quot;binfile&amp;quot; enabled=&amp;quot;yes&amp;quot; data=&amp;quot;/media/card/maps/germany.bin&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;/mapset&amp;gt;&lt;br /&gt;
or if you store all downloaded maps in the directory &amp;lt;tt&amp;gt;/media/card/maps&amp;lt;/tt&amp;gt; then add the following lines to &amp;lt;tt&amp;gt;navit.xml&amp;lt;/tt&amp;gt;.&lt;br /&gt;
 &amp;lt;mapset enabled=&amp;quot;yes&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;map type=&amp;quot;binfile&amp;quot; enabled=&amp;quot;yes&amp;quot; data=&amp;quot;/media/card/maps/*.bin&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;/mapset&amp;gt;&lt;br /&gt;
{{Note|this will only load the first map that machtes *.bin (its a bug/feature)!}}&lt;br /&gt;
{{Note|that the bin-file and the map set both have to be enabled}}&lt;br /&gt;
&lt;br /&gt;
Disable unused mapset sections by setting enabled to &amp;lt;tt&amp;gt;no&amp;lt;/tt&amp;gt;, e.g. the pre-installed sample maps at line 370 in &amp;lt;tt&amp;gt;navit.xml&amp;lt;/tt&amp;gt;.&lt;br /&gt;
 &amp;lt;mapset enabled=&amp;quot;no&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xi:include href=&amp;quot;$NAVIT_SHAREDIR/maps/*.xml&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;/mapset&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Run navit&lt;br /&gt;
** Start [[gllin]] (for GTA01)&lt;br /&gt;
** Start [[gpsd]] ( gpsd /tmp/nmeaNP )&lt;br /&gt;
** Start navit&lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
===Tips and Tricks===&lt;br /&gt;
====Center on Vehicle====&lt;br /&gt;
Navit supports a &amp;quot;always center on vehicle&amp;quot; option. &lt;br /&gt;
&lt;br /&gt;
To activate this add&lt;br /&gt;
 follow=&amp;quot;3&amp;quot;&lt;br /&gt;
to the &amp;lt;tt&amp;gt;vehicle&amp;lt;/tt&amp;gt; tag in navit.xml. &lt;br /&gt;
   &amp;lt;vehicle name=&amp;quot;Local GPS&amp;quot; profilename=&amp;quot;car&amp;quot; enabled=&amp;quot;yes&amp;quot; active=&amp;quot;1&amp;quot; follow=&amp;quot;3&amp;quot; &lt;br /&gt;
           source=&amp;quot;gpsd://localhost&amp;quot; gpsd_query=&amp;quot;w+xj&amp;quot; color=&amp;quot;#0000ff&amp;quot;&amp;gt;&lt;br /&gt;
The &amp;quot;3&amp;quot; causes to give the gui time to do something between the repaints (drag the map or browse the menu). When its set to &amp;quot;1&amp;quot; navit does nothing more than repainting the map continuously.&lt;br /&gt;
====Localize for Germany====&lt;br /&gt;
* [http://www.freeyourphone.de/portal_v1/viewtopic.php?f=22&amp;amp;t=1039 SHR German] from freeyourphone.de&lt;br /&gt;
* Go to [[Configure_SHR_for_German-speaking_use]] download&lt;br /&gt;
   http://work.zoff.cc/openmoko/shr/de_at/customize_pack_shr_no_maps.tar.gz&lt;br /&gt;
: extract &amp;lt;tt&amp;gt;init_shr_testing.sh&amp;lt;/tt&amp;gt; and see what [[User:Zoff99|zoff99]] did to customize navit for German speaking.&lt;br /&gt;
&lt;br /&gt;
==Routing==&lt;br /&gt;
[[Image:navit_main_menu.png|100px|thumb|Navit Main Menu]]&lt;br /&gt;
[[Image:navit_action_menu.png|100px|thumb|Navit Action Menu]]&lt;br /&gt;
The main menu has 4 submenus&lt;br /&gt;
* Action&lt;br /&gt;
* Settings&lt;br /&gt;
* Tools&lt;br /&gt;
* Route&lt;br /&gt;
Normally you would assume the entering a town can be found under the submenu Route, but Town is hidden under submenu Action. Route will provide the description of the route as text and a height profile of your trip. Tools was not working on 08/2009 Version of navit on SHR (see [[SHR User Manual]]).&lt;br /&gt;
&lt;br /&gt;
===Preselect Country of Destination===&lt;br /&gt;
Normally you have to select the the country first before choosing the town and street name. It might be more convenient for you if you preselect the country already with your settings.&lt;br /&gt;
The article [[Configure SHR for German-speaking use]] had a preselection of the country &amp;quot;Austria&amp;quot; in Navit. Adapt the localization for your country and maps in Navit, so that do not need to select the country anymore.&lt;br /&gt;
&lt;br /&gt;
Actually Navit derives the preselected country from the calling environments's locale (see [[Localization]]). Make sure, that LC_ALL ist '''not''' set though. Otherwise navit fails to interprete gpsd output and you end up with strange gps coordinates. When starting from gui (e.g. illume) you can achieve this by supplying an executable script /usr/local/bin/navit which might look like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
#export LANG=xx_YY.UTF-8   # Uncomment this line and replace xx_YY, if &lt;br /&gt;
                           # your gui's locale is not setup accordingly. &lt;br /&gt;
unset LC_ALL&lt;br /&gt;
exec /usr/bin/navit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
So a valid locale environment preselecting search for German cities would look like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@om-gta02 ~ $ locale&lt;br /&gt;
LANG=de_DE.UTF-8&lt;br /&gt;
LC_CTYPE=&amp;quot;de_DE.UTF-8&amp;quot;&lt;br /&gt;
LC_NUMERIC=&amp;quot;de_DE.UTF-8&amp;quot;&lt;br /&gt;
...&lt;br /&gt;
LC_MEASUREMENT=&amp;quot;de_DE.UTF-8&amp;quot;&lt;br /&gt;
LC_IDENTIFICATION=&amp;quot;de_DE.UTF-8&amp;quot;&lt;br /&gt;
LC_ALL=&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note that there's a limited number of [http://wiki.navit-project.org/index.php/OpenStreetMaps#Known_countries_by_osm2navit countries supported by osm2navit] and Navit's search function.&lt;br /&gt;
&lt;br /&gt;
===Select Destination===&lt;br /&gt;
[[Image:navit_select_country.png|100px|thumb|Select Country]]&lt;br /&gt;
&lt;br /&gt;
You can the select your destination in the main menu:&lt;br /&gt;
* via '''Bookmarks''', if you saved the previous location or&lt;br /&gt;
* via '''Town''', if you want to enter a new destination. If you use a destination more frequently, just save the location as bookmark.  &lt;br /&gt;
&lt;br /&gt;
When you click in the main menu on &amp;lt;i&amp;gt;Action&amp;lt;/i&amp;gt; the &amp;lt;i&amp;gt;Action&amp;lt;/i&amp;gt; menu appears with 4 subitems.&lt;br /&gt;
* Bookmarks of previous locations (stored in &amp;lt;tt&amp;gt;/home/root/.navit/destinations.txt&amp;lt;/tt&amp;gt;&lt;br /&gt;
* a globe showing a location as destination,&lt;br /&gt;
* a vehicle that shows the current GPS position of the vehicle. If the freerunner receives no GPS signal the locations of the vehicle is set to 0.0.0N and 0.0.0E. &lt;br /&gt;
* Town is the action to enter a destination.&lt;br /&gt;
* Quit navit is the last action in this submenu.&lt;br /&gt;
&lt;br /&gt;
Select the icon &amp;lt;i&amp;gt;Town&amp;lt;/i&amp;gt; in the main menu (if you see the map, you can get to the main menu just by clicking on the map).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Select Country====&lt;br /&gt;
[[Image:navit_country_selected.png|100px|thumb|Country Options]]&lt;br /&gt;
[[Image:navit_destination_details.png|100px|thumb|Enter Bookmark Details]]&lt;br /&gt;
&lt;br /&gt;
Before you can search for City you have to select a Country. To do that, click on the icon in the left upper corner of the search field (could look like a white square with blue top-left quadrant).&lt;br /&gt;
&lt;br /&gt;
Just type in the first letter of the country (e.g. &amp;quot;G&amp;quot;) and Navit makes suggestions (e.g. Gabon, Germany).&lt;br /&gt;
&lt;br /&gt;
====Enter Town====&lt;br /&gt;
&lt;br /&gt;
When you have selected the country (e.g. Germany) the flag appears and you can select the town.&lt;br /&gt;
Then you can save the town as bookmark and enter more details like streets to the selected town.&lt;br /&gt;
&lt;br /&gt;
The search is still a little buggy.&lt;br /&gt;
&lt;br /&gt;
====Enter Street====&lt;br /&gt;
You can enter the street and streetnumber and save it as bookmark when you use the destination often. &lt;br /&gt;
&lt;br /&gt;
====Bookmarks====&lt;br /&gt;
Navigation and planning of routes with Navit can be organized with bookmarks.&lt;br /&gt;
* set a bookmark as current position &lt;br /&gt;
* set a bookmark as destination&lt;br /&gt;
Then you can see the suggested route in blue on the map. &lt;br /&gt;
&lt;br /&gt;
Bookmarks are stored in:&lt;br /&gt;
  /home/root/.navit/bookmark.txt&lt;br /&gt;
&lt;br /&gt;
The GPS-location (if GPS-signal is available) will be highlighted with a small blue circle. The color of the circle can be defined via editing the &amp;lt;tt&amp;gt;navit.xml&amp;lt;/tt&amp;gt; (see [http://wiki.openmoko.org/wiki/Navit#Set_Cursor_Color select cursor color]).&lt;br /&gt;
* a dot in the blue circle is indicating that your are not moving,&lt;br /&gt;
* an arrowhead is indicating the direction, when you are moving.&lt;br /&gt;
Then routing can start and in the map the route is highlighted.&lt;br /&gt;
&lt;br /&gt;
====Screenshots in Navit Documentation====&lt;br /&gt;
The screenshots are made with &amp;lt;tt&amp;gt;gpe-scap&amp;lt;/tt&amp;gt;, that can be installed by:&lt;br /&gt;
  opkg install gpe-scap&lt;br /&gt;
if not installed already. Navigation through your installed application navit and login via ssh on your Freerunner &lt;br /&gt;
  ssh -l root 192.168.0.202&lt;br /&gt;
assuming that your Freerunner has the IP 192.168.0.202.&lt;br /&gt;
Any time you want to make a screenshot just start via your desktop computer &lt;br /&gt;
  gpe-scap&lt;br /&gt;
and save the screenshot to you freerunner.&lt;br /&gt;
Download the screenshot to your desktop computer with&lt;br /&gt;
  desktop# sftp://root@192.168.0.202&lt;br /&gt;
&lt;br /&gt;
== News ==&lt;br /&gt;
A deeper look into configuring Navit can be found in the [http://wiki.navit-project.org/index.php/Configuring_Navit Navit-Wiki].&lt;br /&gt;
&lt;br /&gt;
=== Getting the display right ===&lt;br /&gt;
&lt;br /&gt;
If using SHR the keyboard in country/town/street search mode does not fit on the street, make sure your gui configuration is set to the following line:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;gui type=&amp;quot;internal&amp;quot; font_size=&amp;quot;350&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The example line provided for freerunners hides some important icons. Namely, instead of typing your city name first, you will first have to click the button on the top left, to go into country search mode. Enter your country name, then the city name, in order to enable the search function. This requires your map data to be searchable.&lt;br /&gt;
&lt;br /&gt;
You can start in fullscreen mode with fullscreen=&amp;quot;1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;gui type=&amp;quot;internal&amp;quot; font_size=&amp;quot;350&amp;quot; fullscreen=&amp;quot;1&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you want to enable &amp;quot;+&amp;quot; and &amp;quot;-&amp;quot; as Zoom-In and Zoom-Out buttons on the bottom of the map enable the button with the following xml-tags:&lt;br /&gt;
 &amp;lt;osd enabled=&amp;quot;yes&amp;quot; type=&amp;quot;button&amp;quot; x=&amp;quot;-96&amp;quot; y=&amp;quot;-96&amp;quot; command=&amp;quot;zoom_in()&amp;quot;  src=&amp;quot;zoom_in.xpm&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;osd enabled=&amp;quot;yes&amp;quot; type=&amp;quot;button&amp;quot; x=&amp;quot;0&amp;quot;   y=&amp;quot;-96&amp;quot; command=&amp;quot;zoom_out()&amp;quot; src=&amp;quot;zoom_out.xpm&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can find sample Layouts here:&lt;br /&gt;
[http://wiki.navit-project.org/index.php/OSD_Layouts Sample Layouts from navit-wiki]&lt;br /&gt;
&lt;br /&gt;
=== Set Cursor Color ===&lt;br /&gt;
[[Image:red_cursor.png|90px|thumb|Red Cursor]]&lt;br /&gt;
If you navigate, the route is marked in blue color on the map. The current position of the vehicle is displayed by a blue circle. The circle is sometimes difficult to see on the blue track. If you want to change the color, size  of the vehicle cursor edit the vehicle XML-environment in navit.xml (e.g. replace blue color #0000FF with red color #FF0000 -- for details of  [http://html-color-codes.info Color Codes] select color, copy and paste code in &amp;lt;tt&amp;gt;navit.xml&amp;lt;/tt&amp;gt;)  &lt;br /&gt;
&lt;br /&gt;
     &amp;lt;vehicle name=&amp;quot;Local GPS&amp;quot; profilename=&amp;quot;car&amp;quot; enabled=&amp;quot;yes&amp;quot; active=&amp;quot;1&amp;quot; source=&amp;quot;gpsd://localhost&amp;quot; gpsd_query=&amp;quot;w+xj&amp;quot; color=&amp;quot;#0000ff&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;!-- Navit can write a tracklog in several formats (gpx, nmea or textfile): --&amp;gt;&lt;br /&gt;
        &amp;lt;!-- &amp;lt;log type=&amp;quot;gpx&amp;quot; data=&amp;quot;track_%Y%m%d-%i.gpx&amp;quot; flush_size=&amp;quot;1000&amp;quot; flush_time=&amp;quot;30&amp;quot;/&amp;gt; --&amp;gt;&lt;br /&gt;
            &amp;lt;cursor w=&amp;quot;56&amp;quot; h=&amp;quot;56&amp;quot;&amp;gt;&lt;br /&gt;
               &amp;lt;!-- tag defines the circle for the cursor --&amp;gt;&lt;br /&gt;
                &amp;lt;itemgra&amp;gt;&lt;br /&gt;
                    &amp;lt;circle color=&amp;quot;#ff0000&amp;quot; radius=&amp;quot;42&amp;quot; width=&amp;quot;6&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;0&amp;quot; y=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/circle&amp;gt;&lt;br /&gt;
                   &amp;lt;circle color=&amp;quot;#ffffff&amp;quot; radius=&amp;quot;48&amp;quot; width=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;0&amp;quot; y=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/circle&amp;gt;&lt;br /&gt;
                   &amp;lt;circle color=&amp;quot;#ffffff&amp;quot; radius=&amp;quot;36&amp;quot; width=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;0&amp;quot; y=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/circle&amp;gt;&lt;br /&gt;
                &amp;lt;/itemgra&amp;gt;&lt;br /&gt;
               &amp;lt;!-- tag defines the dot when the vehicle is not moving --&amp;gt;&lt;br /&gt;
                &amp;lt;itemgra speed_range=&amp;quot;-2&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;polyline color=&amp;quot;#ff0000&amp;quot; width=&amp;quot;6&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;1&amp;quot; y=&amp;quot;1&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;1&amp;quot; y=&amp;quot;-1&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;-1&amp;quot; y=&amp;quot;-1&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;-1&amp;quot; y=&amp;quot;-1&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/polyline&amp;gt;&lt;br /&gt;
                  &amp;lt;circle color=&amp;quot;#ffffff&amp;quot; radius=&amp;quot;9&amp;quot; width=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;0&amp;quot; y=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/circle&amp;gt;&lt;br /&gt;
                &amp;lt;/itemgra&amp;gt;&lt;br /&gt;
                &amp;lt;!-- This itemgra-tag defines the arrow when the vehicle moves --&amp;gt;&lt;br /&gt;
                &amp;lt;itemgra speed_range=&amp;quot;3-&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;polyline color=&amp;quot;#ff0000&amp;quot; width=&amp;quot;6&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;-7&amp;quot; y=&amp;quot;-10&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;0&amp;quot; y=&amp;quot;12&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;7&amp;quot; y=&amp;quot;-10&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/polyline&amp;gt;&lt;br /&gt;
                  &amp;lt;polyline color=&amp;quot;#ffffff&amp;quot; width=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;+10&amp;quot; y=&amp;quot;-10&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;3&amp;quot; y=&amp;quot;15&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/polyline&amp;gt;&lt;br /&gt;
                    &amp;lt;polyline color=&amp;quot;#ffffff&amp;quot; width=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;-10&amp;quot; y=&amp;quot;-10&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;-3&amp;quot; y=&amp;quot;15&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/polyline&amp;gt;&lt;br /&gt;
                &amp;lt;/itemgra&amp;gt;&lt;br /&gt;
        &amp;lt;/cursor&amp;gt;&lt;br /&gt;
    &amp;lt;/vehicle&amp;gt;&lt;br /&gt;
The following screenshot show Navit with a red cursor on a blue track:&lt;br /&gt;
&lt;br /&gt;
[[Image:navit_color_cursor.png|200px|thumb|Red Cursor Color on blue track - vehicle not moving]]&lt;br /&gt;
&lt;br /&gt;
=== Speech ===&lt;br /&gt;
Navit can speak if you install [http://espeak.sourceforge.net/ eSpeak] + [http://www.freebsoft.org/speechd speech-dispatcher] and updates your navit.xml file.&lt;br /&gt;
&lt;br /&gt;
If you want navit using your language, and setting LC_MESSAGES fails due to missing glibc locale, set the enviroment variable LANGUAGE. For instance running&lt;br /&gt;
  LANGUAGE=de navit&lt;br /&gt;
will set the ui and output to german.&lt;br /&gt;
&lt;br /&gt;
For SHR there is a big german localization patch see [[Configure SHR for German-speaking use]].&lt;br /&gt;
&lt;br /&gt;
One way to configure speech output:&lt;br /&gt;
&lt;br /&gt;
* mokoTTS aims to integrate these packages in OM:&lt;br /&gt;
http://projects.openmoko.org/projects/mokotts/&lt;br /&gt;
&lt;br /&gt;
install espeak, dotconf, and then speech-dispatcher.&lt;br /&gt;
note: running 2008.8 updating from zecke's &amp;quot;testing&amp;quot; repo does not require &amp;quot;dotconf&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Speech Language ====&lt;br /&gt;
To change the speech tag in navit.xml:&lt;br /&gt;
  &amp;lt;speech type=&amp;quot;cmdline&amp;quot; data=&amp;quot;spd-say '%s'&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;'''spd-say -l fr '%s''''&amp;quot; for using the French voice for example.&lt;br /&gt;
* &amp;quot;'''spd-say -l de '%s''''&amp;quot; for using the German voice for example.&lt;br /&gt;
&lt;br /&gt;
{{Note|You can check speech dispatcher output from the shell.}}&lt;br /&gt;
Example for German:&lt;br /&gt;
  spd-say -l=de &amp;quot;Dies ist die Winterstraße 23&amp;quot;&lt;br /&gt;
The speech-dispatcher is blocking the audio after suspend. So after a suspend you will hear no ringtone, when a phone call is coming in and you cannot listen do audio files.&lt;br /&gt;
A solution is to disable starting of speech-dispatcher with:&lt;br /&gt;
  update-rc.d -f speech-dispatcher remove&lt;br /&gt;
Then the speech-dispatcher should be started if and only if navit is running and shut down when navit is closed.&lt;br /&gt;
&lt;br /&gt;
Furthermore navit should be started indirect with a script &amp;lt;tt&amp;gt;navit.sh&amp;lt;/tt&amp;gt; instead of a direct start with the binary located in &amp;lt;tt&amp;gt;/usr/bin/navit&amp;lt;/tt&amp;gt;. The script &amp;lt;tt&amp;gt;navit.sh&amp;lt;/tt&amp;gt; listed below starts speech-dispatcher before navit, and stops it afterwards. See http://lists.openmoko.org/nabble.html#nabble-td1088795&lt;br /&gt;
&lt;br /&gt;
The following script is doing the suggested procedure. This script includes a language fix for Austria (see [[Configure SHR for German-speaking use]]).&lt;br /&gt;
  export LANG=de_AT.utf8&amp;lt;tt&amp;gt;spd-say --language=de Output-String&amp;lt;/tt&amp;gt; You can replace the --language by -l }&lt;br /&gt;
Replace '''&amp;lt;tt&amp;gt;de_AT&amp;lt;/tt&amp;gt;''' in this line with the appropriate language variable in the following script &amp;lt;tt&amp;gt;navit.sh&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#! /bin/sh&lt;br /&gt;
#&lt;br /&gt;
# Copyright Matthias Hentges &amp;lt;devel@hentges.net&amp;gt; (c) 2008&lt;br /&gt;
# License: GPL (see http://www.gnu.org/licenses/gpl.txt for a copy of the license)&lt;br /&gt;
#&lt;br /&gt;
# Filename: navit.sh&lt;br /&gt;
# Date: 20080105 (YMD)&lt;br /&gt;
#&lt;br /&gt;
#################################################################################&lt;br /&gt;
#&lt;br /&gt;
# 20080105 - v0.0.1	- Initial release&lt;br /&gt;
# 20090818 -            - Zoff &amp;lt;zoff@zoff.cc&amp;gt; addons and fixes&lt;br /&gt;
#&lt;br /&gt;
#&lt;br /&gt;
#################################################################################&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#################################################################################&lt;br /&gt;
#&lt;br /&gt;
# On devices with low memory (&amp;lt; 512Mb?) Navit will segfault on start.&lt;br /&gt;
# This can be worked around by doing&lt;br /&gt;
# &amp;quot;echo 1 &amp;gt; /proc/sys/vm/overcommit_memory&amp;quot;&lt;br /&gt;
#&lt;br /&gt;
#################################################################################&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
. /etc/profile&lt;br /&gt;
&lt;br /&gt;
set|grep LC&lt;br /&gt;
&lt;br /&gt;
#### Stop the speech dispatcher ####&lt;br /&gt;
/etc/init.d/speech-dispatcher stop&lt;br /&gt;
&lt;br /&gt;
#### Language Fix #################&lt;br /&gt;
set|grep LC&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
export LC_ALL=''&lt;br /&gt;
unset LC_ALL&lt;br /&gt;
export LANG=de_AT.utf8&lt;br /&gt;
&lt;br /&gt;
set|grep LC&lt;br /&gt;
&lt;br /&gt;
#### Start the speech dispatcher ####&lt;br /&gt;
/etc/init.d/speech-dispatcher start &amp;amp;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
set|grep LC&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# need cpu and display&lt;br /&gt;
mdbus -s org.freesmartphone.ousaged /org/freesmartphone/Usage org.freesmartphone.Usage.SetResourcePolicy Display enabled&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if test &amp;quot;`cat /proc/meminfo | grep ^MemTotal | awk '{print $2}'`&amp;quot; -lt &amp;quot;500000&amp;quot;&lt;br /&gt;
then&lt;br /&gt;
	if test &amp;quot;$USER&amp;quot; = &amp;quot;root&amp;quot;&lt;br /&gt;
	then&lt;br /&gt;
		echo &amp;quot;Enabling low-mem workaround...&amp;quot;&lt;br /&gt;
		echo 1 &amp;gt; /proc/sys/vm/overcommit_memory&lt;br /&gt;
	else&lt;br /&gt;
		echo &amp;quot;I need root-privs to enable the low-mem workaround!&amp;quot;&lt;br /&gt;
	fi&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
######### Start NAVIT NOW ############&lt;br /&gt;
&lt;br /&gt;
navit $*&lt;br /&gt;
	&lt;br /&gt;
#### Stop the speech dispatcher ####&lt;br /&gt;
&lt;br /&gt;
/etc/init.d/speech-dispatcher stop&lt;br /&gt;
&lt;br /&gt;
# release cpu and display&lt;br /&gt;
mdbus -s org.freesmartphone.ousaged /org/freesmartphone/Usage org.freesmartphone.Usage.SetResourcePolicy Display auto&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Save the &amp;lt;tt&amp;gt;navit.sh&amp;lt;/tt&amp;gt; script in:&lt;br /&gt;
  /usr/bin/navit.sh&lt;br /&gt;
Make the script executable:&lt;br /&gt;
  chmod u+x /usr/bin/navit.sh&lt;br /&gt;
Now you have to edit the desktop icon, so that it starts this script &amp;lt;tt&amp;gt;navit.sh&amp;lt;/tt&amp;gt; instead of the binary &amp;lt;tt&amp;gt;/usr/bin/navit&amp;lt;/tt&amp;gt;.&lt;br /&gt;
  nano /usr/share/applications/navit.desktop&lt;br /&gt;
Edit the line with &amp;lt;tt&amp;gt;Exec=...&amp;lt;/tt&amp;gt;, so that it starts the script &amp;lt;tt&amp;gt;navit.sh&amp;lt;/tt&amp;gt; instead of the navit binary.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[Desktop Entry]&lt;br /&gt;
Version=1.0&lt;br /&gt;
Name=Navit&lt;br /&gt;
Name[de]=Navit&lt;br /&gt;
Name[fr]=Navit&lt;br /&gt;
Comment=The open source vector based navigation program with routing engine&lt;br /&gt;
Comment[de]=Ein vektorbasiertes Navigationsprogramm&lt;br /&gt;
Comment[fr]=Le logiciel opensource de navigation vectorielle&lt;br /&gt;
Exec=/usr/bin/navit.sh&lt;br /&gt;
Icon=navit&lt;br /&gt;
StartupNotify=true&lt;br /&gt;
Terminal=false&lt;br /&gt;
Type=Application&lt;br /&gt;
Categories=GTK;Utility;Geography;&lt;br /&gt;
GenericName=Navit&lt;br /&gt;
GenericName[de]=Navit&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Alternatively''', you can make speech-dispatcher restart on resume, see http://trac.shr-project.org/trac/ticket/494&lt;br /&gt;
&lt;br /&gt;
=== Script to download OSM maps ===&lt;br /&gt;
[[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&lt;br /&gt;
dlOSM.sh &amp;lt;minimum latitude&amp;gt; &amp;lt;maximum latitude&amp;gt; &amp;lt;minimum longitude&amp;gt; &amp;lt;maximum longitude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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...&lt;br /&gt;
&lt;br /&gt;
dlOSM.sh:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/usr/bin/python&lt;br /&gt;
&lt;br /&gt;
import os&lt;br /&gt;
import sys&lt;br /&gt;
#import math&lt;br /&gt;
&lt;br /&gt;
def doIt(cmd):&lt;br /&gt;
  os.system(cmd)&lt;br /&gt;
&lt;br /&gt;
def getOsms(basename, minLat, maxLat, minLon, maxLon):&lt;br /&gt;
  '''basename - base name of map, maps are named {basename}{count}.osm&lt;br /&gt;
  minLat - latitude of the west side of the map&lt;br /&gt;
  maxLat - latitude of the east side of the map&lt;br /&gt;
  minLon - longitude of the north side of the map&lt;br /&gt;
  maxLon - longitude of the south side of the map'''&lt;br /&gt;
&lt;br /&gt;
  wgetCmdTemplate = 'wget -O %s%s.osm http://api.openstreetmap.org/api/0.6/map?bbox=%s,%s,%s,%s'&lt;br /&gt;
&lt;br /&gt;
  currLat = minLat&lt;br /&gt;
  mapCount = 0&lt;br /&gt;
  while currLat &amp;lt; maxLat:&lt;br /&gt;
    nextLat = min(currLat + 0.1, maxLat)&lt;br /&gt;
&lt;br /&gt;
    currLon = minLon&lt;br /&gt;
    while currLon &amp;lt; maxLon:&lt;br /&gt;
      nextLon = min(currLon + 0.1, maxLon)&lt;br /&gt;
&lt;br /&gt;
      doIt(wgetCmdTemplate % (basename, mapCount, currLon, currLat, nextLon, nextLat))&lt;br /&gt;
&lt;br /&gt;
      currLon = nextLon&lt;br /&gt;
      mapCount = mapCount + 1&lt;br /&gt;
&lt;br /&gt;
    currLat = nextLat&lt;br /&gt;
&lt;br /&gt;
(minLat, maxLat, minLon, maxLon) = map(float, sys.argv[1:])&lt;br /&gt;
getOsms('map', minLat, maxLat, minLon, maxLon)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;onlyinclude&amp;gt;&lt;br /&gt;
{{ApplicationBox|&lt;br /&gt;
Name=[[Navit]]|&lt;br /&gt;
Description=Navit is a car navigation system with routing engine.|&lt;br /&gt;
Screenshot=Screenshot-3.png|&lt;br /&gt;
Homepage=http://navit.sourceforge.net|&lt;br /&gt;
TestedOn=|&lt;br /&gt;
PackageName=&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:GPS Applications]]&lt;/div&gt;</summary>
		<author><name>Niebert</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Navit</id>
		<title>Navit</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Navit"/>
				<updated>2010-12-28T14:09:49Z</updated>
		
		<summary type="html">&lt;p&gt;Niebert: /* Tips and Tricks */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Application|Navit}}&lt;br /&gt;
&lt;br /&gt;
As described on the [http://navit.sourceforge.net/ Navit home page],&lt;br /&gt;
&lt;br /&gt;
&amp;lt;i&amp;gt;&amp;quot;'''Navit''' is a car navigation system with routing engine.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
The current vehicle position is either read from gpsd or directly from NMEA GPS sensors.&amp;quot;&amp;lt;/i&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Some people say Navit is also a good choice for pedestrian and bicycle navigation.&lt;br /&gt;
&lt;br /&gt;
[[Image:Navit-2241.png|thumb|Navit-r2241]]&lt;br /&gt;
&lt;br /&gt;
== Acknowledgment ==&lt;br /&gt;
&lt;br /&gt;
Thanks to [[User:Alessandro | Alessandro]], stefan_schmidt, cp15 and all Navit developers I have done a small (&amp;quot;not really working&amp;quot;) preview of Navit on Neo1973 at [http://www.telemobilityforum.com/eng/ Telemobility Forum 2007]. Thanks to [http://gfoss.it GFoss] guys to invite me.&lt;br /&gt;
''[[User:Tyrael | Tyrael]]''&lt;br /&gt;
&lt;br /&gt;
==Setting up Navit==&lt;br /&gt;
&lt;br /&gt;
===Install Navit===&lt;br /&gt;
&lt;br /&gt;
==== Map Size ====&lt;br /&gt;
Of you use e.g. entire Germany in an rectangle form it will have more than 500MB.&lt;br /&gt;
Navit on FR works with maps in the size of less that 350MB. So split the larger areas in portions with a smaller size than 350MB. Otherwise Navit will not be able to process the maps.&lt;br /&gt;
&lt;br /&gt;
Change navit.xml to modify the used map bin-file, e.g. germany1.bin to germany2.bin&lt;br /&gt;
&lt;br /&gt;
==== Navit on FSO (OM2008.x,SHR,...) ====&lt;br /&gt;
&lt;br /&gt;
You can now simply add a feed from there : http://download.navit-project.org/navit/openmoko/svn/&lt;br /&gt;
&lt;br /&gt;
Essentially, to enable this directory as [[Om_2008.8_Installer#How to add a Repository ?|feed]] and install or update navit do:&lt;br /&gt;
* Only for the first time:&lt;br /&gt;
 echo src navit http://download.navit-project.org/navit/openmoko/svn &amp;gt; /etc/opkg/navit-feed.conf&lt;br /&gt;
 opkg update&lt;br /&gt;
&lt;br /&gt;
* Always:&lt;br /&gt;
 opkg install navit&lt;br /&gt;
&lt;br /&gt;
Navit will be auto-updated when you run opkg upgrade later&lt;br /&gt;
&lt;br /&gt;
Navit might not be able to use gpsd at startup:&lt;br /&gt;
 navit:plugin_load:can't load '/usr/lib/navit/vehicle/&lt;br /&gt;
 libvehicle_gpsd.so', Error 'libgps.so.16: cannot open shared object  &lt;br /&gt;
 file: No such file or directory'&lt;br /&gt;
 navit:vehicle_new:invalid type 'gpsd'&lt;br /&gt;
&lt;br /&gt;
to solve this issue (necessary for SHR):&lt;br /&gt;
&lt;br /&gt;
 opkg install libgps17&lt;br /&gt;
 ln -s /usr/lib/libgps.so.17 /usr/lib/libgps.so.16&lt;br /&gt;
&lt;br /&gt;
====Navit on Debian====&lt;br /&gt;
Navit is now in Debian [http://packages.debian.org/source/testing/navit testing] and [http://packages.debian.org/source/unstable/navit unstable].&lt;br /&gt;
&lt;br /&gt;
Add the following line to &amp;lt;tt&amp;gt;/etc/apt/sources.list&amp;lt;/tt&amp;gt; with e.g. editor &amp;lt;tt&amp;gt;vi&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;nano&amp;lt;/tt&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
     deb http://ftp.de.debian.org/debian unstable main&lt;br /&gt;
&lt;br /&gt;
Then update with apt-get:&lt;br /&gt;
&lt;br /&gt;
     apt-get update&lt;br /&gt;
&lt;br /&gt;
The up-to-date source package is available through git at '''git://git.debian.org/git/collab-maint/navit.git''' ([http://git.debian.org/?p=collab-maint/navit.git;a=summary browse]).&lt;br /&gt;
&lt;br /&gt;
====Navit on Android====&lt;br /&gt;
Download current version [http://download.navit-project.org/navit/android_armv4t/svn/ navit-current.apk] on your Android. See [[Android usage]] for installing Apps on your [http://code.google.com/p/android-on-freerunner/wiki/Applications Android on Freerunner].&lt;br /&gt;
&lt;br /&gt;
   see [http://wiki.navit-project.org/index.php/Navit_on_Android Navit on Android] Navit Project Wiki&lt;br /&gt;
&lt;br /&gt;
You can use one download map which you have to copy on the FAT32 partition of your SD card as '''&amp;lt;tt&amp;gt;navitmap.bin&amp;lt;/tt&amp;gt;'''. &lt;br /&gt;
&lt;br /&gt;
During first use after installation, navit for android will ask you, if you want to intall [http://espeak.sourceforge.net/ TTS] (Text to Speech [http://www.speech.cs.cmu.edu/flite/ festival-lite]). If you decide to install TTS then Navit crashes (with version [http://download.navit-project.org/navit/android_armv4t/svn/ navit-svn-3495.apk]).&lt;br /&gt;
&lt;br /&gt;
====Navit on QtMoko====&lt;br /&gt;
You can find some information for installing Navit in the [[QtMoko]] article.&lt;br /&gt;
&lt;br /&gt;
===Set up the maps you want===&lt;br /&gt;
&lt;br /&gt;
====The Easy Way====&lt;br /&gt;
Use [http://maps.navit-project.org/download/ Navit Map Extractor] based on [http://www.openstreetmap.org OpenStreetMap].  Navigate to the region you want, and click &amp;quot;select&amp;quot; to select region, select the area you want, then click download. [[Image:osmdownload.jpg|200px|thumb|Download OpenStreetMaps]] &lt;br /&gt;
&lt;br /&gt;
If you just want the entire planet (as of this writing, ~1.8 GB), it's [http://maps.navit-project.org/planet.bin here].&lt;br /&gt;
&lt;br /&gt;
[http://downloads.cloudmade.com/ CloudMade] also has up-to-date maps from OpenStreetMap by country (by state in the US).&lt;br /&gt;
&lt;br /&gt;
{{Note|Be aware of the map size that can be used on your FR (On Android working with map sizes less than 350MB is O.K. on SHR 450MB also work, so SHR may not have a map size limit)}}&lt;br /&gt;
&lt;br /&gt;
====From the command line====&lt;br /&gt;
'''OpenStreetMap''' - follow directions at http://wiki.navit-project.org/index.php/OpenStreetMaps&lt;br /&gt;
* There are some pre-processed, up-to-date maps that can be grabbed with wget:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;wget -O germany.bin http://maps.navit-project.org/api/map/?bbox=5.185546875,46.845703125,15.46875,55.634765625&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can put a shell script into &amp;lt;tt&amp;gt;/usr/local/bin/update-maps&amp;lt;/tt&amp;gt;&lt;br /&gt;
  #!/bin/sh&lt;br /&gt;
  echo &amp;quot;Update OpenstreetMaps&amp;quot;&lt;br /&gt;
  echo &amp;quot;---------------------&amp;quot;&lt;br /&gt;
  echo &amp;quot;  download and store OSM maps on /media/card/maps&amp;quot;&lt;br /&gt;
  wget -O /media/card/maps/germany.bin http://maps.navit-project.org/api/map/?bbox=5.185546875,46.845703125,15.46875,55.634765625&lt;br /&gt;
  echo &amp;quot;update germany.bin finished&amp;quot;&lt;br /&gt;
You have to make the script executable with:&lt;br /&gt;
  chmod u+x /usr/local/bin/update-maps&lt;br /&gt;
Create a maps-directory (e.g. with path &amp;lt;tt&amp;gt;/media/card/maps/&amp;lt;/tt&amp;gt;) on your SD-card:&lt;br /&gt;
  mkdir /media/card/maps/&lt;br /&gt;
Then you can update with this script all your maps on the SD-card if you have internet connection:&lt;br /&gt;
  update-maps&lt;br /&gt;
* Here's an example to get the maps for the area around Seattle, WA:&lt;br /&gt;
** Find the map coordinates using http://informationfreeway.org/?lat=47.520270037501454&amp;amp;lon=-122.20130713167327&amp;amp;zoom=9&amp;amp;layers=B000F000&lt;br /&gt;
** 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):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;wget -O map1.osm http://www.openstreetmap.org/api/0.5/map?bbox=-122.2,47.5,-122,47.7&lt;br /&gt;
wget -O map2.osm http://www.openstreetmap.org/api/0.5/map?bbox=-122.4,47.5,-122.2,47.7&lt;br /&gt;
wget -O map3.osm http://www.openstreetmap.org/api/0.5/map?bbox=-122.4,47.3,-122.2,47.5&lt;br /&gt;
wget -O map4.osm http://www.openstreetmap.org/api/0.5/map?bbox=-122.2,47.3,-122,47.5&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* 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:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;cat *.osm | osm2navit --dedupe-ways mymap.bin&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Copy the map to the NEO===&lt;br /&gt;
To copy the map using scp (replace ''/directory'' as is appropriate in the following):&lt;br /&gt;
&amp;lt;pre&amp;gt;scp mymap.bin root@neo:/directory&amp;lt;/pre&amp;gt;&lt;br /&gt;
If you copy the map &amp;lt;tt&amp;gt;germany.bin&amp;lt;/tt&amp;gt; to the SD card on the Neo use e.g. in the directory &amp;lt;tt&amp;gt;maps&amp;lt;/tt&amp;gt;:&lt;br /&gt;
  scp germany.bin root@neo:/media/card/maps&lt;br /&gt;
Once it's somewhere on the NEO, Navit needs to know that it's there.&lt;br /&gt;
&amp;lt;pre&amp;gt;mkdir ~/.navit&lt;br /&gt;
cp /usr/share/navit/navit.xml ~/.navit/navit.xml&lt;br /&gt;
vi ~/.navit/navit.xml&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
note that in some version navit includes other xml files from /usr/share/navit, for instance mapsets are now defined in maps.xml.&lt;br /&gt;
&lt;br /&gt;
===Enable Maps in  Navit ===&lt;br /&gt;
Now you must let Navit know the maps you want to use. Several disabled mapset-tags are predefined. &lt;br /&gt;
In the navit.xml file, put the following into a new &amp;lt;mapset&amp;gt; section (and disable the default &amp;lt;mapset&amp;gt; just above - or else it will not work):&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;map type=&amp;quot;binfile&amp;quot; enabled=&amp;quot;yes&amp;quot; data=&amp;quot;/directory&amp;quot; /&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
For example with a &amp;lt;tt&amp;gt;germany.bin&amp;lt;/tt&amp;gt; on the SD-card you use:&lt;br /&gt;
 &amp;lt;mapset enabled=&amp;quot;yes&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;map type=&amp;quot;binfile&amp;quot; enabled=&amp;quot;yes&amp;quot; data=&amp;quot;/media/card/maps/germany.bin&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;/mapset&amp;gt;&lt;br /&gt;
or if you store all downloaded maps in the directory &amp;lt;tt&amp;gt;/media/card/maps&amp;lt;/tt&amp;gt; then add the following lines to &amp;lt;tt&amp;gt;navit.xml&amp;lt;/tt&amp;gt;.&lt;br /&gt;
 &amp;lt;mapset enabled=&amp;quot;yes&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;map type=&amp;quot;binfile&amp;quot; enabled=&amp;quot;yes&amp;quot; data=&amp;quot;/media/card/maps/*.bin&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;/mapset&amp;gt;&lt;br /&gt;
{{Note|this will only load the first map that machtes *.bin (its a bug/feature)!}}&lt;br /&gt;
{{Note|that the bin-file and the map set both have to be enabled}}&lt;br /&gt;
&lt;br /&gt;
Disable unused mapset sections by setting enabled to &amp;lt;tt&amp;gt;no&amp;lt;/tt&amp;gt;, e.g. the pre-installed sample maps at line 370 in &amp;lt;tt&amp;gt;navit.xml&amp;lt;/tt&amp;gt;.&lt;br /&gt;
 &amp;lt;mapset enabled=&amp;quot;no&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xi:include href=&amp;quot;$NAVIT_SHAREDIR/maps/*.xml&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;/mapset&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Run navit&lt;br /&gt;
** Start [[gllin]] (for GTA01)&lt;br /&gt;
** Start [[gpsd]] ( gpsd /tmp/nmeaNP )&lt;br /&gt;
** Start navit&lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
===Tips and Tricks===&lt;br /&gt;
====Center on Vehicle====&lt;br /&gt;
Navit supports a &amp;quot;always center on vehicle&amp;quot; option. &lt;br /&gt;
&lt;br /&gt;
To activate this add&lt;br /&gt;
 follow=&amp;quot;3&amp;quot;&lt;br /&gt;
to the &amp;lt;tt&amp;gt;vehicle&amp;lt;/tt&amp;gt; tag in navit.xml. &lt;br /&gt;
   &amp;lt;vehicle name=&amp;quot;Local GPS&amp;quot; profilename=&amp;quot;car&amp;quot; enabled=&amp;quot;yes&amp;quot; active=&amp;quot;1&amp;quot; follow=&amp;quot;3&amp;quot; &lt;br /&gt;
           source=&amp;quot;gpsd://localhost&amp;quot; gpsd_query=&amp;quot;w+xj&amp;quot; color=&amp;quot;#0000ff&amp;quot;&amp;gt;&lt;br /&gt;
The &amp;quot;3&amp;quot; causes to give the gui time to do something between the repaints (drag the map or browse the menu). When its set to &amp;quot;1&amp;quot; navit does nothing more than repainting the map continuously.&lt;br /&gt;
====Localize for Germany====&lt;br /&gt;
* [http://www.freeyourphone.de/portal_v1/viewtopic.php?f=22&amp;amp;t=1039 SHR German] from freeyourphone.de&lt;br /&gt;
&lt;br /&gt;
==Routing==&lt;br /&gt;
[[Image:navit_main_menu.png|100px|thumb|Navit Main Menu]]&lt;br /&gt;
[[Image:navit_action_menu.png|100px|thumb|Navit Action Menu]]&lt;br /&gt;
The main menu has 4 submenus&lt;br /&gt;
* Action&lt;br /&gt;
* Settings&lt;br /&gt;
* Tools&lt;br /&gt;
* Route&lt;br /&gt;
Normally you would assume the entering a town can be found under the submenu Route, but Town is hidden under submenu Action. Route will provide the description of the route as text and a height profile of your trip. Tools was not working on 08/2009 Version of navit on SHR (see [[SHR User Manual]]).&lt;br /&gt;
&lt;br /&gt;
===Preselect Country of Destination===&lt;br /&gt;
Normally you have to select the the country first before choosing the town and street name. It might be more convenient for you if you preselect the country already with your settings.&lt;br /&gt;
The article [[Configure SHR for German-speaking use]] had a preselection of the country &amp;quot;Austria&amp;quot; in Navit. Adapt the localization for your country and maps in Navit, so that do not need to select the country anymore.&lt;br /&gt;
&lt;br /&gt;
Actually Navit derives the preselected country from the calling environments's locale (see [[Localization]]). Make sure, that LC_ALL ist '''not''' set though. Otherwise navit fails to interprete gpsd output and you end up with strange gps coordinates. When starting from gui (e.g. illume) you can achieve this by supplying an executable script /usr/local/bin/navit which might look like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
#export LANG=xx_YY.UTF-8   # Uncomment this line and replace xx_YY, if &lt;br /&gt;
                           # your gui's locale is not setup accordingly. &lt;br /&gt;
unset LC_ALL&lt;br /&gt;
exec /usr/bin/navit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
So a valid locale environment preselecting search for German cities would look like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@om-gta02 ~ $ locale&lt;br /&gt;
LANG=de_DE.UTF-8&lt;br /&gt;
LC_CTYPE=&amp;quot;de_DE.UTF-8&amp;quot;&lt;br /&gt;
LC_NUMERIC=&amp;quot;de_DE.UTF-8&amp;quot;&lt;br /&gt;
...&lt;br /&gt;
LC_MEASUREMENT=&amp;quot;de_DE.UTF-8&amp;quot;&lt;br /&gt;
LC_IDENTIFICATION=&amp;quot;de_DE.UTF-8&amp;quot;&lt;br /&gt;
LC_ALL=&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note that there's a limited number of [http://wiki.navit-project.org/index.php/OpenStreetMaps#Known_countries_by_osm2navit countries supported by osm2navit] and Navit's search function.&lt;br /&gt;
&lt;br /&gt;
===Select Destination===&lt;br /&gt;
[[Image:navit_select_country.png|100px|thumb|Select Country]]&lt;br /&gt;
&lt;br /&gt;
You can the select your destination in the main menu:&lt;br /&gt;
* via '''Bookmarks''', if you saved the previous location or&lt;br /&gt;
* via '''Town''', if you want to enter a new destination. If you use a destination more frequently, just save the location as bookmark.  &lt;br /&gt;
&lt;br /&gt;
When you click in the main menu on &amp;lt;i&amp;gt;Action&amp;lt;/i&amp;gt; the &amp;lt;i&amp;gt;Action&amp;lt;/i&amp;gt; menu appears with 4 subitems.&lt;br /&gt;
* Bookmarks of previous locations (stored in &amp;lt;tt&amp;gt;/home/root/.navit/destinations.txt&amp;lt;/tt&amp;gt;&lt;br /&gt;
* a globe showing a location as destination,&lt;br /&gt;
* a vehicle that shows the current GPS position of the vehicle. If the freerunner receives no GPS signal the locations of the vehicle is set to 0.0.0N and 0.0.0E. &lt;br /&gt;
* Town is the action to enter a destination.&lt;br /&gt;
* Quit navit is the last action in this submenu.&lt;br /&gt;
&lt;br /&gt;
Select the icon &amp;lt;i&amp;gt;Town&amp;lt;/i&amp;gt; in the main menu (if you see the map, you can get to the main menu just by clicking on the map).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Select Country====&lt;br /&gt;
[[Image:navit_country_selected.png|100px|thumb|Country Options]]&lt;br /&gt;
[[Image:navit_destination_details.png|100px|thumb|Enter Bookmark Details]]&lt;br /&gt;
&lt;br /&gt;
Before you can search for City you have to select a Country. To do that, click on the icon in the left upper corner of the search field (could look like a white square with blue top-left quadrant).&lt;br /&gt;
&lt;br /&gt;
Just type in the first letter of the country (e.g. &amp;quot;G&amp;quot;) and Navit makes suggestions (e.g. Gabon, Germany).&lt;br /&gt;
&lt;br /&gt;
====Enter Town====&lt;br /&gt;
&lt;br /&gt;
When you have selected the country (e.g. Germany) the flag appears and you can select the town.&lt;br /&gt;
Then you can save the town as bookmark and enter more details like streets to the selected town.&lt;br /&gt;
&lt;br /&gt;
The search is still a little buggy.&lt;br /&gt;
&lt;br /&gt;
====Enter Street====&lt;br /&gt;
You can enter the street and streetnumber and save it as bookmark when you use the destination often. &lt;br /&gt;
&lt;br /&gt;
====Bookmarks====&lt;br /&gt;
Navigation and planning of routes with Navit can be organized with bookmarks.&lt;br /&gt;
* set a bookmark as current position &lt;br /&gt;
* set a bookmark as destination&lt;br /&gt;
Then you can see the suggested route in blue on the map. &lt;br /&gt;
&lt;br /&gt;
Bookmarks are stored in:&lt;br /&gt;
  /home/root/.navit/bookmark.txt&lt;br /&gt;
&lt;br /&gt;
The GPS-location (if GPS-signal is available) will be highlighted with a small blue circle. The color of the circle can be defined via editing the &amp;lt;tt&amp;gt;navit.xml&amp;lt;/tt&amp;gt; (see [http://wiki.openmoko.org/wiki/Navit#Set_Cursor_Color select cursor color]).&lt;br /&gt;
* a dot in the blue circle is indicating that your are not moving,&lt;br /&gt;
* an arrowhead is indicating the direction, when you are moving.&lt;br /&gt;
Then routing can start and in the map the route is highlighted.&lt;br /&gt;
&lt;br /&gt;
====Screenshots in Navit Documentation====&lt;br /&gt;
The screenshots are made with &amp;lt;tt&amp;gt;gpe-scap&amp;lt;/tt&amp;gt;, that can be installed by:&lt;br /&gt;
  opkg install gpe-scap&lt;br /&gt;
if not installed already. Navigation through your installed application navit and login via ssh on your Freerunner &lt;br /&gt;
  ssh -l root 192.168.0.202&lt;br /&gt;
assuming that your Freerunner has the IP 192.168.0.202.&lt;br /&gt;
Any time you want to make a screenshot just start via your desktop computer &lt;br /&gt;
  gpe-scap&lt;br /&gt;
and save the screenshot to you freerunner.&lt;br /&gt;
Download the screenshot to your desktop computer with&lt;br /&gt;
  desktop# sftp://root@192.168.0.202&lt;br /&gt;
&lt;br /&gt;
== News ==&lt;br /&gt;
A deeper look into configuring Navit can be found in the [http://wiki.navit-project.org/index.php/Configuring_Navit Navit-Wiki].&lt;br /&gt;
&lt;br /&gt;
=== Getting the display right ===&lt;br /&gt;
&lt;br /&gt;
If using SHR the keyboard in country/town/street search mode does not fit on the street, make sure your gui configuration is set to the following line:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;gui type=&amp;quot;internal&amp;quot; font_size=&amp;quot;350&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The example line provided for freerunners hides some important icons. Namely, instead of typing your city name first, you will first have to click the button on the top left, to go into country search mode. Enter your country name, then the city name, in order to enable the search function. This requires your map data to be searchable.&lt;br /&gt;
&lt;br /&gt;
You can start in fullscreen mode with fullscreen=&amp;quot;1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;gui type=&amp;quot;internal&amp;quot; font_size=&amp;quot;350&amp;quot; fullscreen=&amp;quot;1&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you want to enable &amp;quot;+&amp;quot; and &amp;quot;-&amp;quot; as Zoom-In and Zoom-Out buttons on the bottom of the map enable the button with the following xml-tags:&lt;br /&gt;
 &amp;lt;osd enabled=&amp;quot;yes&amp;quot; type=&amp;quot;button&amp;quot; x=&amp;quot;-96&amp;quot; y=&amp;quot;-96&amp;quot; command=&amp;quot;zoom_in()&amp;quot;  src=&amp;quot;zoom_in.xpm&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;osd enabled=&amp;quot;yes&amp;quot; type=&amp;quot;button&amp;quot; x=&amp;quot;0&amp;quot;   y=&amp;quot;-96&amp;quot; command=&amp;quot;zoom_out()&amp;quot; src=&amp;quot;zoom_out.xpm&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can find sample Layouts here:&lt;br /&gt;
[http://wiki.navit-project.org/index.php/OSD_Layouts Sample Layouts from navit-wiki]&lt;br /&gt;
&lt;br /&gt;
=== Set Cursor Color ===&lt;br /&gt;
[[Image:red_cursor.png|90px|thumb|Red Cursor]]&lt;br /&gt;
If you navigate, the route is marked in blue color on the map. The current position of the vehicle is displayed by a blue circle. The circle is sometimes difficult to see on the blue track. If you want to change the color, size  of the vehicle cursor edit the vehicle XML-environment in navit.xml (e.g. replace blue color #0000FF with red color #FF0000 -- for details of  [http://html-color-codes.info Color Codes] select color, copy and paste code in &amp;lt;tt&amp;gt;navit.xml&amp;lt;/tt&amp;gt;)  &lt;br /&gt;
&lt;br /&gt;
     &amp;lt;vehicle name=&amp;quot;Local GPS&amp;quot; profilename=&amp;quot;car&amp;quot; enabled=&amp;quot;yes&amp;quot; active=&amp;quot;1&amp;quot; source=&amp;quot;gpsd://localhost&amp;quot; gpsd_query=&amp;quot;w+xj&amp;quot; color=&amp;quot;#0000ff&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;!-- Navit can write a tracklog in several formats (gpx, nmea or textfile): --&amp;gt;&lt;br /&gt;
        &amp;lt;!-- &amp;lt;log type=&amp;quot;gpx&amp;quot; data=&amp;quot;track_%Y%m%d-%i.gpx&amp;quot; flush_size=&amp;quot;1000&amp;quot; flush_time=&amp;quot;30&amp;quot;/&amp;gt; --&amp;gt;&lt;br /&gt;
            &amp;lt;cursor w=&amp;quot;56&amp;quot; h=&amp;quot;56&amp;quot;&amp;gt;&lt;br /&gt;
               &amp;lt;!-- tag defines the circle for the cursor --&amp;gt;&lt;br /&gt;
                &amp;lt;itemgra&amp;gt;&lt;br /&gt;
                    &amp;lt;circle color=&amp;quot;#ff0000&amp;quot; radius=&amp;quot;42&amp;quot; width=&amp;quot;6&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;0&amp;quot; y=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/circle&amp;gt;&lt;br /&gt;
                   &amp;lt;circle color=&amp;quot;#ffffff&amp;quot; radius=&amp;quot;48&amp;quot; width=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;0&amp;quot; y=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/circle&amp;gt;&lt;br /&gt;
                   &amp;lt;circle color=&amp;quot;#ffffff&amp;quot; radius=&amp;quot;36&amp;quot; width=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;0&amp;quot; y=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/circle&amp;gt;&lt;br /&gt;
                &amp;lt;/itemgra&amp;gt;&lt;br /&gt;
               &amp;lt;!-- tag defines the dot when the vehicle is not moving --&amp;gt;&lt;br /&gt;
                &amp;lt;itemgra speed_range=&amp;quot;-2&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;polyline color=&amp;quot;#ff0000&amp;quot; width=&amp;quot;6&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;1&amp;quot; y=&amp;quot;1&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;1&amp;quot; y=&amp;quot;-1&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;-1&amp;quot; y=&amp;quot;-1&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;-1&amp;quot; y=&amp;quot;-1&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/polyline&amp;gt;&lt;br /&gt;
                  &amp;lt;circle color=&amp;quot;#ffffff&amp;quot; radius=&amp;quot;9&amp;quot; width=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;0&amp;quot; y=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/circle&amp;gt;&lt;br /&gt;
                &amp;lt;/itemgra&amp;gt;&lt;br /&gt;
                &amp;lt;!-- This itemgra-tag defines the arrow when the vehicle moves --&amp;gt;&lt;br /&gt;
                &amp;lt;itemgra speed_range=&amp;quot;3-&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;polyline color=&amp;quot;#ff0000&amp;quot; width=&amp;quot;6&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;-7&amp;quot; y=&amp;quot;-10&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;0&amp;quot; y=&amp;quot;12&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;7&amp;quot; y=&amp;quot;-10&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/polyline&amp;gt;&lt;br /&gt;
                  &amp;lt;polyline color=&amp;quot;#ffffff&amp;quot; width=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;+10&amp;quot; y=&amp;quot;-10&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;3&amp;quot; y=&amp;quot;15&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/polyline&amp;gt;&lt;br /&gt;
                    &amp;lt;polyline color=&amp;quot;#ffffff&amp;quot; width=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;-10&amp;quot; y=&amp;quot;-10&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;-3&amp;quot; y=&amp;quot;15&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/polyline&amp;gt;&lt;br /&gt;
                &amp;lt;/itemgra&amp;gt;&lt;br /&gt;
        &amp;lt;/cursor&amp;gt;&lt;br /&gt;
    &amp;lt;/vehicle&amp;gt;&lt;br /&gt;
The following screenshot show Navit with a red cursor on a blue track:&lt;br /&gt;
&lt;br /&gt;
[[Image:navit_color_cursor.png|200px|thumb|Red Cursor Color on blue track - vehicle not moving]]&lt;br /&gt;
&lt;br /&gt;
=== Speech ===&lt;br /&gt;
Navit can speak if you install [http://espeak.sourceforge.net/ eSpeak] + [http://www.freebsoft.org/speechd speech-dispatcher] and updates your navit.xml file.&lt;br /&gt;
&lt;br /&gt;
If you want navit using your language, and setting LC_MESSAGES fails due to missing glibc locale, set the enviroment variable LANGUAGE. For instance running&lt;br /&gt;
  LANGUAGE=de navit&lt;br /&gt;
will set the ui and output to german.&lt;br /&gt;
&lt;br /&gt;
For SHR there is a big german localization patch see [[Configure SHR for German-speaking use]].&lt;br /&gt;
&lt;br /&gt;
One way to configure speech output:&lt;br /&gt;
&lt;br /&gt;
* mokoTTS aims to integrate these packages in OM:&lt;br /&gt;
http://projects.openmoko.org/projects/mokotts/&lt;br /&gt;
&lt;br /&gt;
install espeak, dotconf, and then speech-dispatcher.&lt;br /&gt;
note: running 2008.8 updating from zecke's &amp;quot;testing&amp;quot; repo does not require &amp;quot;dotconf&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Speech Language ====&lt;br /&gt;
To change the speech tag in navit.xml:&lt;br /&gt;
  &amp;lt;speech type=&amp;quot;cmdline&amp;quot; data=&amp;quot;spd-say '%s'&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;'''spd-say -l fr '%s''''&amp;quot; for using the French voice for example.&lt;br /&gt;
* &amp;quot;'''spd-say -l de '%s''''&amp;quot; for using the German voice for example.&lt;br /&gt;
&lt;br /&gt;
{{Note|You can check speech dispatcher output from the shell.}}&lt;br /&gt;
Example for German:&lt;br /&gt;
  spd-say -l=de &amp;quot;Dies ist die Winterstraße 23&amp;quot;&lt;br /&gt;
The speech-dispatcher is blocking the audio after suspend. So after a suspend you will hear no ringtone, when a phone call is coming in and you cannot listen do audio files.&lt;br /&gt;
A solution is to disable starting of speech-dispatcher with:&lt;br /&gt;
  update-rc.d -f speech-dispatcher remove&lt;br /&gt;
Then the speech-dispatcher should be started if and only if navit is running and shut down when navit is closed.&lt;br /&gt;
&lt;br /&gt;
Furthermore navit should be started indirect with a script &amp;lt;tt&amp;gt;navit.sh&amp;lt;/tt&amp;gt; instead of a direct start with the binary located in &amp;lt;tt&amp;gt;/usr/bin/navit&amp;lt;/tt&amp;gt;. The script &amp;lt;tt&amp;gt;navit.sh&amp;lt;/tt&amp;gt; listed below starts speech-dispatcher before navit, and stops it afterwards. See http://lists.openmoko.org/nabble.html#nabble-td1088795&lt;br /&gt;
&lt;br /&gt;
The following script is doing the suggested procedure. This script includes a language fix for Austria (see [[Configure SHR for German-speaking use]]).&lt;br /&gt;
  export LANG=de_AT.utf8&amp;lt;tt&amp;gt;spd-say --language=de Output-String&amp;lt;/tt&amp;gt; You can replace the --language by -l }&lt;br /&gt;
Replace '''&amp;lt;tt&amp;gt;de_AT&amp;lt;/tt&amp;gt;''' in this line with the appropriate language variable in the following script &amp;lt;tt&amp;gt;navit.sh&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#! /bin/sh&lt;br /&gt;
#&lt;br /&gt;
# Copyright Matthias Hentges &amp;lt;devel@hentges.net&amp;gt; (c) 2008&lt;br /&gt;
# License: GPL (see http://www.gnu.org/licenses/gpl.txt for a copy of the license)&lt;br /&gt;
#&lt;br /&gt;
# Filename: navit.sh&lt;br /&gt;
# Date: 20080105 (YMD)&lt;br /&gt;
#&lt;br /&gt;
#################################################################################&lt;br /&gt;
#&lt;br /&gt;
# 20080105 - v0.0.1	- Initial release&lt;br /&gt;
# 20090818 -            - Zoff &amp;lt;zoff@zoff.cc&amp;gt; addons and fixes&lt;br /&gt;
#&lt;br /&gt;
#&lt;br /&gt;
#################################################################################&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#################################################################################&lt;br /&gt;
#&lt;br /&gt;
# On devices with low memory (&amp;lt; 512Mb?) Navit will segfault on start.&lt;br /&gt;
# This can be worked around by doing&lt;br /&gt;
# &amp;quot;echo 1 &amp;gt; /proc/sys/vm/overcommit_memory&amp;quot;&lt;br /&gt;
#&lt;br /&gt;
#################################################################################&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
. /etc/profile&lt;br /&gt;
&lt;br /&gt;
set|grep LC&lt;br /&gt;
&lt;br /&gt;
#### Stop the speech dispatcher ####&lt;br /&gt;
/etc/init.d/speech-dispatcher stop&lt;br /&gt;
&lt;br /&gt;
#### Language Fix #################&lt;br /&gt;
set|grep LC&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
export LC_ALL=''&lt;br /&gt;
unset LC_ALL&lt;br /&gt;
export LANG=de_AT.utf8&lt;br /&gt;
&lt;br /&gt;
set|grep LC&lt;br /&gt;
&lt;br /&gt;
#### Start the speech dispatcher ####&lt;br /&gt;
/etc/init.d/speech-dispatcher start &amp;amp;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
set|grep LC&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# need cpu and display&lt;br /&gt;
mdbus -s org.freesmartphone.ousaged /org/freesmartphone/Usage org.freesmartphone.Usage.SetResourcePolicy Display enabled&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if test &amp;quot;`cat /proc/meminfo | grep ^MemTotal | awk '{print $2}'`&amp;quot; -lt &amp;quot;500000&amp;quot;&lt;br /&gt;
then&lt;br /&gt;
	if test &amp;quot;$USER&amp;quot; = &amp;quot;root&amp;quot;&lt;br /&gt;
	then&lt;br /&gt;
		echo &amp;quot;Enabling low-mem workaround...&amp;quot;&lt;br /&gt;
		echo 1 &amp;gt; /proc/sys/vm/overcommit_memory&lt;br /&gt;
	else&lt;br /&gt;
		echo &amp;quot;I need root-privs to enable the low-mem workaround!&amp;quot;&lt;br /&gt;
	fi&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
######### Start NAVIT NOW ############&lt;br /&gt;
&lt;br /&gt;
navit $*&lt;br /&gt;
	&lt;br /&gt;
#### Stop the speech dispatcher ####&lt;br /&gt;
&lt;br /&gt;
/etc/init.d/speech-dispatcher stop&lt;br /&gt;
&lt;br /&gt;
# release cpu and display&lt;br /&gt;
mdbus -s org.freesmartphone.ousaged /org/freesmartphone/Usage org.freesmartphone.Usage.SetResourcePolicy Display auto&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Save the &amp;lt;tt&amp;gt;navit.sh&amp;lt;/tt&amp;gt; script in:&lt;br /&gt;
  /usr/bin/navit.sh&lt;br /&gt;
Make the script executable:&lt;br /&gt;
  chmod u+x /usr/bin/navit.sh&lt;br /&gt;
Now you have to edit the desktop icon, so that it starts this script &amp;lt;tt&amp;gt;navit.sh&amp;lt;/tt&amp;gt; instead of the binary &amp;lt;tt&amp;gt;/usr/bin/navit&amp;lt;/tt&amp;gt;.&lt;br /&gt;
  nano /usr/share/applications/navit.desktop&lt;br /&gt;
Edit the line with &amp;lt;tt&amp;gt;Exec=...&amp;lt;/tt&amp;gt;, so that it starts the script &amp;lt;tt&amp;gt;navit.sh&amp;lt;/tt&amp;gt; instead of the navit binary.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[Desktop Entry]&lt;br /&gt;
Version=1.0&lt;br /&gt;
Name=Navit&lt;br /&gt;
Name[de]=Navit&lt;br /&gt;
Name[fr]=Navit&lt;br /&gt;
Comment=The open source vector based navigation program with routing engine&lt;br /&gt;
Comment[de]=Ein vektorbasiertes Navigationsprogramm&lt;br /&gt;
Comment[fr]=Le logiciel opensource de navigation vectorielle&lt;br /&gt;
Exec=/usr/bin/navit.sh&lt;br /&gt;
Icon=navit&lt;br /&gt;
StartupNotify=true&lt;br /&gt;
Terminal=false&lt;br /&gt;
Type=Application&lt;br /&gt;
Categories=GTK;Utility;Geography;&lt;br /&gt;
GenericName=Navit&lt;br /&gt;
GenericName[de]=Navit&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Alternatively''', you can make speech-dispatcher restart on resume, see http://trac.shr-project.org/trac/ticket/494&lt;br /&gt;
&lt;br /&gt;
=== Script to download OSM maps ===&lt;br /&gt;
[[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&lt;br /&gt;
dlOSM.sh &amp;lt;minimum latitude&amp;gt; &amp;lt;maximum latitude&amp;gt; &amp;lt;minimum longitude&amp;gt; &amp;lt;maximum longitude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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...&lt;br /&gt;
&lt;br /&gt;
dlOSM.sh:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/usr/bin/python&lt;br /&gt;
&lt;br /&gt;
import os&lt;br /&gt;
import sys&lt;br /&gt;
#import math&lt;br /&gt;
&lt;br /&gt;
def doIt(cmd):&lt;br /&gt;
  os.system(cmd)&lt;br /&gt;
&lt;br /&gt;
def getOsms(basename, minLat, maxLat, minLon, maxLon):&lt;br /&gt;
  '''basename - base name of map, maps are named {basename}{count}.osm&lt;br /&gt;
  minLat - latitude of the west side of the map&lt;br /&gt;
  maxLat - latitude of the east side of the map&lt;br /&gt;
  minLon - longitude of the north side of the map&lt;br /&gt;
  maxLon - longitude of the south side of the map'''&lt;br /&gt;
&lt;br /&gt;
  wgetCmdTemplate = 'wget -O %s%s.osm http://api.openstreetmap.org/api/0.6/map?bbox=%s,%s,%s,%s'&lt;br /&gt;
&lt;br /&gt;
  currLat = minLat&lt;br /&gt;
  mapCount = 0&lt;br /&gt;
  while currLat &amp;lt; maxLat:&lt;br /&gt;
    nextLat = min(currLat + 0.1, maxLat)&lt;br /&gt;
&lt;br /&gt;
    currLon = minLon&lt;br /&gt;
    while currLon &amp;lt; maxLon:&lt;br /&gt;
      nextLon = min(currLon + 0.1, maxLon)&lt;br /&gt;
&lt;br /&gt;
      doIt(wgetCmdTemplate % (basename, mapCount, currLon, currLat, nextLon, nextLat))&lt;br /&gt;
&lt;br /&gt;
      currLon = nextLon&lt;br /&gt;
      mapCount = mapCount + 1&lt;br /&gt;
&lt;br /&gt;
    currLat = nextLat&lt;br /&gt;
&lt;br /&gt;
(minLat, maxLat, minLon, maxLon) = map(float, sys.argv[1:])&lt;br /&gt;
getOsms('map', minLat, maxLat, minLon, maxLon)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;onlyinclude&amp;gt;&lt;br /&gt;
{{ApplicationBox|&lt;br /&gt;
Name=[[Navit]]|&lt;br /&gt;
Description=Navit is a car navigation system with routing engine.|&lt;br /&gt;
Screenshot=Screenshot-3.png|&lt;br /&gt;
Homepage=http://navit.sourceforge.net|&lt;br /&gt;
TestedOn=|&lt;br /&gt;
PackageName=&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:GPS Applications]]&lt;/div&gt;</summary>
		<author><name>Niebert</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Navit</id>
		<title>Navit</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Navit"/>
				<updated>2010-12-28T13:29:42Z</updated>
		
		<summary type="html">&lt;p&gt;Niebert: /* Speech Language */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Application|Navit}}&lt;br /&gt;
&lt;br /&gt;
As described on the [http://navit.sourceforge.net/ Navit home page],&lt;br /&gt;
&lt;br /&gt;
&amp;lt;i&amp;gt;&amp;quot;'''Navit''' is a car navigation system with routing engine.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
The current vehicle position is either read from gpsd or directly from NMEA GPS sensors.&amp;quot;&amp;lt;/i&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Some people say Navit is also a good choice for pedestrian and bicycle navigation.&lt;br /&gt;
&lt;br /&gt;
[[Image:Navit-2241.png|thumb|Navit-r2241]]&lt;br /&gt;
&lt;br /&gt;
== Acknowledgment ==&lt;br /&gt;
&lt;br /&gt;
Thanks to [[User:Alessandro | Alessandro]], stefan_schmidt, cp15 and all Navit developers I have done a small (&amp;quot;not really working&amp;quot;) preview of Navit on Neo1973 at [http://www.telemobilityforum.com/eng/ Telemobility Forum 2007]. Thanks to [http://gfoss.it GFoss] guys to invite me.&lt;br /&gt;
''[[User:Tyrael | Tyrael]]''&lt;br /&gt;
&lt;br /&gt;
==Setting up Navit==&lt;br /&gt;
&lt;br /&gt;
===Install Navit===&lt;br /&gt;
&lt;br /&gt;
==== Map Size ====&lt;br /&gt;
Of you use e.g. entire Germany in an rectangle form it will have more than 500MB.&lt;br /&gt;
Navit on FR works with maps in the size of less that 350MB. So split the larger areas in portions with a smaller size than 350MB. Otherwise Navit will not be able to process the maps.&lt;br /&gt;
&lt;br /&gt;
Change navit.xml to modify the used map bin-file, e.g. germany1.bin to germany2.bin&lt;br /&gt;
&lt;br /&gt;
==== Navit on FSO (OM2008.x,SHR,...) ====&lt;br /&gt;
&lt;br /&gt;
You can now simply add a feed from there : http://download.navit-project.org/navit/openmoko/svn/&lt;br /&gt;
&lt;br /&gt;
Essentially, to enable this directory as [[Om_2008.8_Installer#How to add a Repository ?|feed]] and install or update navit do:&lt;br /&gt;
* Only for the first time:&lt;br /&gt;
 echo src navit http://download.navit-project.org/navit/openmoko/svn &amp;gt; /etc/opkg/navit-feed.conf&lt;br /&gt;
 opkg update&lt;br /&gt;
&lt;br /&gt;
* Always:&lt;br /&gt;
 opkg install navit&lt;br /&gt;
&lt;br /&gt;
Navit will be auto-updated when you run opkg upgrade later&lt;br /&gt;
&lt;br /&gt;
Navit might not be able to use gpsd at startup:&lt;br /&gt;
 navit:plugin_load:can't load '/usr/lib/navit/vehicle/&lt;br /&gt;
 libvehicle_gpsd.so', Error 'libgps.so.16: cannot open shared object  &lt;br /&gt;
 file: No such file or directory'&lt;br /&gt;
 navit:vehicle_new:invalid type 'gpsd'&lt;br /&gt;
&lt;br /&gt;
to solve this issue (necessary for SHR):&lt;br /&gt;
&lt;br /&gt;
 opkg install libgps17&lt;br /&gt;
 ln -s /usr/lib/libgps.so.17 /usr/lib/libgps.so.16&lt;br /&gt;
&lt;br /&gt;
====Navit on Debian====&lt;br /&gt;
Navit is now in Debian [http://packages.debian.org/source/testing/navit testing] and [http://packages.debian.org/source/unstable/navit unstable].&lt;br /&gt;
&lt;br /&gt;
Add the following line to &amp;lt;tt&amp;gt;/etc/apt/sources.list&amp;lt;/tt&amp;gt; with e.g. editor &amp;lt;tt&amp;gt;vi&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;nano&amp;lt;/tt&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
     deb http://ftp.de.debian.org/debian unstable main&lt;br /&gt;
&lt;br /&gt;
Then update with apt-get:&lt;br /&gt;
&lt;br /&gt;
     apt-get update&lt;br /&gt;
&lt;br /&gt;
The up-to-date source package is available through git at '''git://git.debian.org/git/collab-maint/navit.git''' ([http://git.debian.org/?p=collab-maint/navit.git;a=summary browse]).&lt;br /&gt;
&lt;br /&gt;
====Navit on Android====&lt;br /&gt;
Download current version [http://download.navit-project.org/navit/android_armv4t/svn/ navit-current.apk] on your Android. See [[Android usage]] for installing Apps on your [http://code.google.com/p/android-on-freerunner/wiki/Applications Android on Freerunner].&lt;br /&gt;
&lt;br /&gt;
   see [http://wiki.navit-project.org/index.php/Navit_on_Android Navit on Android] Navit Project Wiki&lt;br /&gt;
&lt;br /&gt;
You can use one download map which you have to copy on the FAT32 partition of your SD card as '''&amp;lt;tt&amp;gt;navitmap.bin&amp;lt;/tt&amp;gt;'''. &lt;br /&gt;
&lt;br /&gt;
During first use after installation, navit for android will ask you, if you want to intall [http://espeak.sourceforge.net/ TTS] (Text to Speech [http://www.speech.cs.cmu.edu/flite/ festival-lite]). If you decide to install TTS then Navit crashes (with version [http://download.navit-project.org/navit/android_armv4t/svn/ navit-svn-3495.apk]).&lt;br /&gt;
&lt;br /&gt;
====Navit on QtMoko====&lt;br /&gt;
You can find some information for installing Navit in the [[QtMoko]] article.&lt;br /&gt;
&lt;br /&gt;
===Set up the maps you want===&lt;br /&gt;
&lt;br /&gt;
====The Easy Way====&lt;br /&gt;
Use [http://maps.navit-project.org/download/ Navit Map Extractor] based on [http://www.openstreetmap.org OpenStreetMap].  Navigate to the region you want, and click &amp;quot;select&amp;quot; to select region, select the area you want, then click download. [[Image:osmdownload.jpg|200px|thumb|Download OpenStreetMaps]] &lt;br /&gt;
&lt;br /&gt;
If you just want the entire planet (as of this writing, ~1.8 GB), it's [http://maps.navit-project.org/planet.bin here].&lt;br /&gt;
&lt;br /&gt;
[http://downloads.cloudmade.com/ CloudMade] also has up-to-date maps from OpenStreetMap by country (by state in the US).&lt;br /&gt;
&lt;br /&gt;
{{Note|Be aware of the map size that can be used on your FR (On Android working with map sizes less than 350MB is O.K. on SHR 450MB also work, so SHR may not have a map size limit)}}&lt;br /&gt;
&lt;br /&gt;
====From the command line====&lt;br /&gt;
'''OpenStreetMap''' - follow directions at http://wiki.navit-project.org/index.php/OpenStreetMaps&lt;br /&gt;
* There are some pre-processed, up-to-date maps that can be grabbed with wget:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;wget -O germany.bin http://maps.navit-project.org/api/map/?bbox=5.185546875,46.845703125,15.46875,55.634765625&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can put a shell script into &amp;lt;tt&amp;gt;/usr/local/bin/update-maps&amp;lt;/tt&amp;gt;&lt;br /&gt;
  #!/bin/sh&lt;br /&gt;
  echo &amp;quot;Update OpenstreetMaps&amp;quot;&lt;br /&gt;
  echo &amp;quot;---------------------&amp;quot;&lt;br /&gt;
  echo &amp;quot;  download and store OSM maps on /media/card/maps&amp;quot;&lt;br /&gt;
  wget -O /media/card/maps/germany.bin http://maps.navit-project.org/api/map/?bbox=5.185546875,46.845703125,15.46875,55.634765625&lt;br /&gt;
  echo &amp;quot;update germany.bin finished&amp;quot;&lt;br /&gt;
You have to make the script executable with:&lt;br /&gt;
  chmod u+x /usr/local/bin/update-maps&lt;br /&gt;
Create a maps-directory (e.g. with path &amp;lt;tt&amp;gt;/media/card/maps/&amp;lt;/tt&amp;gt;) on your SD-card:&lt;br /&gt;
  mkdir /media/card/maps/&lt;br /&gt;
Then you can update with this script all your maps on the SD-card if you have internet connection:&lt;br /&gt;
  update-maps&lt;br /&gt;
* Here's an example to get the maps for the area around Seattle, WA:&lt;br /&gt;
** Find the map coordinates using http://informationfreeway.org/?lat=47.520270037501454&amp;amp;lon=-122.20130713167327&amp;amp;zoom=9&amp;amp;layers=B000F000&lt;br /&gt;
** 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):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;wget -O map1.osm http://www.openstreetmap.org/api/0.5/map?bbox=-122.2,47.5,-122,47.7&lt;br /&gt;
wget -O map2.osm http://www.openstreetmap.org/api/0.5/map?bbox=-122.4,47.5,-122.2,47.7&lt;br /&gt;
wget -O map3.osm http://www.openstreetmap.org/api/0.5/map?bbox=-122.4,47.3,-122.2,47.5&lt;br /&gt;
wget -O map4.osm http://www.openstreetmap.org/api/0.5/map?bbox=-122.2,47.3,-122,47.5&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* 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:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;cat *.osm | osm2navit --dedupe-ways mymap.bin&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Copy the map to the NEO===&lt;br /&gt;
To copy the map using scp (replace ''/directory'' as is appropriate in the following):&lt;br /&gt;
&amp;lt;pre&amp;gt;scp mymap.bin root@neo:/directory&amp;lt;/pre&amp;gt;&lt;br /&gt;
If you copy the map &amp;lt;tt&amp;gt;germany.bin&amp;lt;/tt&amp;gt; to the SD card on the Neo use e.g. in the directory &amp;lt;tt&amp;gt;maps&amp;lt;/tt&amp;gt;:&lt;br /&gt;
  scp germany.bin root@neo:/media/card/maps&lt;br /&gt;
Once it's somewhere on the NEO, Navit needs to know that it's there.&lt;br /&gt;
&amp;lt;pre&amp;gt;mkdir ~/.navit&lt;br /&gt;
cp /usr/share/navit/navit.xml ~/.navit/navit.xml&lt;br /&gt;
vi ~/.navit/navit.xml&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
note that in some version navit includes other xml files from /usr/share/navit, for instance mapsets are now defined in maps.xml.&lt;br /&gt;
&lt;br /&gt;
===Enable Maps in  Navit ===&lt;br /&gt;
Now you must let Navit know the maps you want to use. Several disabled mapset-tags are predefined. &lt;br /&gt;
In the navit.xml file, put the following into a new &amp;lt;mapset&amp;gt; section (and disable the default &amp;lt;mapset&amp;gt; just above - or else it will not work):&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;map type=&amp;quot;binfile&amp;quot; enabled=&amp;quot;yes&amp;quot; data=&amp;quot;/directory&amp;quot; /&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
For example with a &amp;lt;tt&amp;gt;germany.bin&amp;lt;/tt&amp;gt; on the SD-card you use:&lt;br /&gt;
 &amp;lt;mapset enabled=&amp;quot;yes&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;map type=&amp;quot;binfile&amp;quot; enabled=&amp;quot;yes&amp;quot; data=&amp;quot;/media/card/maps/germany.bin&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;/mapset&amp;gt;&lt;br /&gt;
or if you store all downloaded maps in the directory &amp;lt;tt&amp;gt;/media/card/maps&amp;lt;/tt&amp;gt; then add the following lines to &amp;lt;tt&amp;gt;navit.xml&amp;lt;/tt&amp;gt;.&lt;br /&gt;
 &amp;lt;mapset enabled=&amp;quot;yes&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;map type=&amp;quot;binfile&amp;quot; enabled=&amp;quot;yes&amp;quot; data=&amp;quot;/media/card/maps/*.bin&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;/mapset&amp;gt;&lt;br /&gt;
{{Note|this will only load the first map that machtes *.bin (its a bug/feature)!}}&lt;br /&gt;
{{Note|that the bin-file and the map set both have to be enabled}}&lt;br /&gt;
&lt;br /&gt;
Disable unused mapset sections by setting enabled to &amp;lt;tt&amp;gt;no&amp;lt;/tt&amp;gt;, e.g. the pre-installed sample maps at line 370 in &amp;lt;tt&amp;gt;navit.xml&amp;lt;/tt&amp;gt;.&lt;br /&gt;
 &amp;lt;mapset enabled=&amp;quot;no&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xi:include href=&amp;quot;$NAVIT_SHAREDIR/maps/*.xml&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;/mapset&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Run navit&lt;br /&gt;
** Start [[gllin]] (for GTA01)&lt;br /&gt;
** Start [[gpsd]] ( gpsd /tmp/nmeaNP )&lt;br /&gt;
** Start navit&lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
===Tips and Tricks===&lt;br /&gt;
====Center on Vehicle====&lt;br /&gt;
Navit supports a &amp;quot;always center on vehicle&amp;quot; option. &lt;br /&gt;
&lt;br /&gt;
To activate this add&lt;br /&gt;
 follow=&amp;quot;3&amp;quot;&lt;br /&gt;
to the &amp;lt;tt&amp;gt;vehicle&amp;lt;/tt&amp;gt; tag in navit.xml. &lt;br /&gt;
   &amp;lt;vehicle name=&amp;quot;Local GPS&amp;quot; profilename=&amp;quot;car&amp;quot; enabled=&amp;quot;yes&amp;quot; active=&amp;quot;1&amp;quot; follow=&amp;quot;3&amp;quot; &lt;br /&gt;
           source=&amp;quot;gpsd://localhost&amp;quot; gpsd_query=&amp;quot;w+xj&amp;quot; color=&amp;quot;#0000ff&amp;quot;&amp;gt;&lt;br /&gt;
The &amp;quot;3&amp;quot; causes to give the gui time to do something between the repaints (drag the map or browse the menu). When its set to &amp;quot;1&amp;quot; navit does nothing more than repainting the map continuously.&lt;br /&gt;
&lt;br /&gt;
==Routing==&lt;br /&gt;
[[Image:navit_main_menu.png|100px|thumb|Navit Main Menu]]&lt;br /&gt;
[[Image:navit_action_menu.png|100px|thumb|Navit Action Menu]]&lt;br /&gt;
The main menu has 4 submenus&lt;br /&gt;
* Action&lt;br /&gt;
* Settings&lt;br /&gt;
* Tools&lt;br /&gt;
* Route&lt;br /&gt;
Normally you would assume the entering a town can be found under the submenu Route, but Town is hidden under submenu Action. Route will provide the description of the route as text and a height profile of your trip. Tools was not working on 08/2009 Version of navit on SHR (see [[SHR User Manual]]).&lt;br /&gt;
&lt;br /&gt;
===Preselect Country of Destination===&lt;br /&gt;
Normally you have to select the the country first before choosing the town and street name. It might be more convenient for you if you preselect the country already with your settings.&lt;br /&gt;
The article [[Configure SHR for German-speaking use]] had a preselection of the country &amp;quot;Austria&amp;quot; in Navit. Adapt the localization for your country and maps in Navit, so that do not need to select the country anymore.&lt;br /&gt;
&lt;br /&gt;
Actually Navit derives the preselected country from the calling environments's locale (see [[Localization]]). Make sure, that LC_ALL ist '''not''' set though. Otherwise navit fails to interprete gpsd output and you end up with strange gps coordinates. When starting from gui (e.g. illume) you can achieve this by supplying an executable script /usr/local/bin/navit which might look like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
#export LANG=xx_YY.UTF-8   # Uncomment this line and replace xx_YY, if &lt;br /&gt;
                           # your gui's locale is not setup accordingly. &lt;br /&gt;
unset LC_ALL&lt;br /&gt;
exec /usr/bin/navit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
So a valid locale environment preselecting search for German cities would look like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@om-gta02 ~ $ locale&lt;br /&gt;
LANG=de_DE.UTF-8&lt;br /&gt;
LC_CTYPE=&amp;quot;de_DE.UTF-8&amp;quot;&lt;br /&gt;
LC_NUMERIC=&amp;quot;de_DE.UTF-8&amp;quot;&lt;br /&gt;
...&lt;br /&gt;
LC_MEASUREMENT=&amp;quot;de_DE.UTF-8&amp;quot;&lt;br /&gt;
LC_IDENTIFICATION=&amp;quot;de_DE.UTF-8&amp;quot;&lt;br /&gt;
LC_ALL=&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note that there's a limited number of [http://wiki.navit-project.org/index.php/OpenStreetMaps#Known_countries_by_osm2navit countries supported by osm2navit] and Navit's search function.&lt;br /&gt;
&lt;br /&gt;
===Select Destination===&lt;br /&gt;
[[Image:navit_select_country.png|100px|thumb|Select Country]]&lt;br /&gt;
&lt;br /&gt;
You can the select your destination in the main menu:&lt;br /&gt;
* via '''Bookmarks''', if you saved the previous location or&lt;br /&gt;
* via '''Town''', if you want to enter a new destination. If you use a destination more frequently, just save the location as bookmark.  &lt;br /&gt;
&lt;br /&gt;
When you click in the main menu on &amp;lt;i&amp;gt;Action&amp;lt;/i&amp;gt; the &amp;lt;i&amp;gt;Action&amp;lt;/i&amp;gt; menu appears with 4 subitems.&lt;br /&gt;
* Bookmarks of previous locations (stored in &amp;lt;tt&amp;gt;/home/root/.navit/destinations.txt&amp;lt;/tt&amp;gt;&lt;br /&gt;
* a globe showing a location as destination,&lt;br /&gt;
* a vehicle that shows the current GPS position of the vehicle. If the freerunner receives no GPS signal the locations of the vehicle is set to 0.0.0N and 0.0.0E. &lt;br /&gt;
* Town is the action to enter a destination.&lt;br /&gt;
* Quit navit is the last action in this submenu.&lt;br /&gt;
&lt;br /&gt;
Select the icon &amp;lt;i&amp;gt;Town&amp;lt;/i&amp;gt; in the main menu (if you see the map, you can get to the main menu just by clicking on the map).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Select Country====&lt;br /&gt;
[[Image:navit_country_selected.png|100px|thumb|Country Options]]&lt;br /&gt;
[[Image:navit_destination_details.png|100px|thumb|Enter Bookmark Details]]&lt;br /&gt;
&lt;br /&gt;
Before you can search for City you have to select a Country. To do that, click on the icon in the left upper corner of the search field (could look like a white square with blue top-left quadrant).&lt;br /&gt;
&lt;br /&gt;
Just type in the first letter of the country (e.g. &amp;quot;G&amp;quot;) and Navit makes suggestions (e.g. Gabon, Germany).&lt;br /&gt;
&lt;br /&gt;
====Enter Town====&lt;br /&gt;
&lt;br /&gt;
When you have selected the country (e.g. Germany) the flag appears and you can select the town.&lt;br /&gt;
Then you can save the town as bookmark and enter more details like streets to the selected town.&lt;br /&gt;
&lt;br /&gt;
The search is still a little buggy.&lt;br /&gt;
&lt;br /&gt;
====Enter Street====&lt;br /&gt;
You can enter the street and streetnumber and save it as bookmark when you use the destination often. &lt;br /&gt;
&lt;br /&gt;
====Bookmarks====&lt;br /&gt;
Navigation and planning of routes with Navit can be organized with bookmarks.&lt;br /&gt;
* set a bookmark as current position &lt;br /&gt;
* set a bookmark as destination&lt;br /&gt;
Then you can see the suggested route in blue on the map. &lt;br /&gt;
&lt;br /&gt;
Bookmarks are stored in:&lt;br /&gt;
  /home/root/.navit/bookmark.txt&lt;br /&gt;
&lt;br /&gt;
The GPS-location (if GPS-signal is available) will be highlighted with a small blue circle. The color of the circle can be defined via editing the &amp;lt;tt&amp;gt;navit.xml&amp;lt;/tt&amp;gt; (see [http://wiki.openmoko.org/wiki/Navit#Set_Cursor_Color select cursor color]).&lt;br /&gt;
* a dot in the blue circle is indicating that your are not moving,&lt;br /&gt;
* an arrowhead is indicating the direction, when you are moving.&lt;br /&gt;
Then routing can start and in the map the route is highlighted.&lt;br /&gt;
&lt;br /&gt;
====Screenshots in Navit Documentation====&lt;br /&gt;
The screenshots are made with &amp;lt;tt&amp;gt;gpe-scap&amp;lt;/tt&amp;gt;, that can be installed by:&lt;br /&gt;
  opkg install gpe-scap&lt;br /&gt;
if not installed already. Navigation through your installed application navit and login via ssh on your Freerunner &lt;br /&gt;
  ssh -l root 192.168.0.202&lt;br /&gt;
assuming that your Freerunner has the IP 192.168.0.202.&lt;br /&gt;
Any time you want to make a screenshot just start via your desktop computer &lt;br /&gt;
  gpe-scap&lt;br /&gt;
and save the screenshot to you freerunner.&lt;br /&gt;
Download the screenshot to your desktop computer with&lt;br /&gt;
  desktop# sftp://root@192.168.0.202&lt;br /&gt;
&lt;br /&gt;
== News ==&lt;br /&gt;
A deeper look into configuring Navit can be found in the [http://wiki.navit-project.org/index.php/Configuring_Navit Navit-Wiki].&lt;br /&gt;
&lt;br /&gt;
=== Getting the display right ===&lt;br /&gt;
&lt;br /&gt;
If using SHR the keyboard in country/town/street search mode does not fit on the street, make sure your gui configuration is set to the following line:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;gui type=&amp;quot;internal&amp;quot; font_size=&amp;quot;350&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The example line provided for freerunners hides some important icons. Namely, instead of typing your city name first, you will first have to click the button on the top left, to go into country search mode. Enter your country name, then the city name, in order to enable the search function. This requires your map data to be searchable.&lt;br /&gt;
&lt;br /&gt;
You can start in fullscreen mode with fullscreen=&amp;quot;1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;gui type=&amp;quot;internal&amp;quot; font_size=&amp;quot;350&amp;quot; fullscreen=&amp;quot;1&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you want to enable &amp;quot;+&amp;quot; and &amp;quot;-&amp;quot; as Zoom-In and Zoom-Out buttons on the bottom of the map enable the button with the following xml-tags:&lt;br /&gt;
 &amp;lt;osd enabled=&amp;quot;yes&amp;quot; type=&amp;quot;button&amp;quot; x=&amp;quot;-96&amp;quot; y=&amp;quot;-96&amp;quot; command=&amp;quot;zoom_in()&amp;quot;  src=&amp;quot;zoom_in.xpm&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;osd enabled=&amp;quot;yes&amp;quot; type=&amp;quot;button&amp;quot; x=&amp;quot;0&amp;quot;   y=&amp;quot;-96&amp;quot; command=&amp;quot;zoom_out()&amp;quot; src=&amp;quot;zoom_out.xpm&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can find sample Layouts here:&lt;br /&gt;
[http://wiki.navit-project.org/index.php/OSD_Layouts Sample Layouts from navit-wiki]&lt;br /&gt;
&lt;br /&gt;
=== Set Cursor Color ===&lt;br /&gt;
[[Image:red_cursor.png|90px|thumb|Red Cursor]]&lt;br /&gt;
If you navigate, the route is marked in blue color on the map. The current position of the vehicle is displayed by a blue circle. The circle is sometimes difficult to see on the blue track. If you want to change the color, size  of the vehicle cursor edit the vehicle XML-environment in navit.xml (e.g. replace blue color #0000FF with red color #FF0000 -- for details of  [http://html-color-codes.info Color Codes] select color, copy and paste code in &amp;lt;tt&amp;gt;navit.xml&amp;lt;/tt&amp;gt;)  &lt;br /&gt;
&lt;br /&gt;
     &amp;lt;vehicle name=&amp;quot;Local GPS&amp;quot; profilename=&amp;quot;car&amp;quot; enabled=&amp;quot;yes&amp;quot; active=&amp;quot;1&amp;quot; source=&amp;quot;gpsd://localhost&amp;quot; gpsd_query=&amp;quot;w+xj&amp;quot; color=&amp;quot;#0000ff&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;!-- Navit can write a tracklog in several formats (gpx, nmea or textfile): --&amp;gt;&lt;br /&gt;
        &amp;lt;!-- &amp;lt;log type=&amp;quot;gpx&amp;quot; data=&amp;quot;track_%Y%m%d-%i.gpx&amp;quot; flush_size=&amp;quot;1000&amp;quot; flush_time=&amp;quot;30&amp;quot;/&amp;gt; --&amp;gt;&lt;br /&gt;
            &amp;lt;cursor w=&amp;quot;56&amp;quot; h=&amp;quot;56&amp;quot;&amp;gt;&lt;br /&gt;
               &amp;lt;!-- tag defines the circle for the cursor --&amp;gt;&lt;br /&gt;
                &amp;lt;itemgra&amp;gt;&lt;br /&gt;
                    &amp;lt;circle color=&amp;quot;#ff0000&amp;quot; radius=&amp;quot;42&amp;quot; width=&amp;quot;6&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;0&amp;quot; y=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/circle&amp;gt;&lt;br /&gt;
                   &amp;lt;circle color=&amp;quot;#ffffff&amp;quot; radius=&amp;quot;48&amp;quot; width=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;0&amp;quot; y=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/circle&amp;gt;&lt;br /&gt;
                   &amp;lt;circle color=&amp;quot;#ffffff&amp;quot; radius=&amp;quot;36&amp;quot; width=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;0&amp;quot; y=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/circle&amp;gt;&lt;br /&gt;
                &amp;lt;/itemgra&amp;gt;&lt;br /&gt;
               &amp;lt;!-- tag defines the dot when the vehicle is not moving --&amp;gt;&lt;br /&gt;
                &amp;lt;itemgra speed_range=&amp;quot;-2&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;polyline color=&amp;quot;#ff0000&amp;quot; width=&amp;quot;6&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;1&amp;quot; y=&amp;quot;1&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;1&amp;quot; y=&amp;quot;-1&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;-1&amp;quot; y=&amp;quot;-1&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;-1&amp;quot; y=&amp;quot;-1&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/polyline&amp;gt;&lt;br /&gt;
                  &amp;lt;circle color=&amp;quot;#ffffff&amp;quot; radius=&amp;quot;9&amp;quot; width=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;0&amp;quot; y=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/circle&amp;gt;&lt;br /&gt;
                &amp;lt;/itemgra&amp;gt;&lt;br /&gt;
                &amp;lt;!-- This itemgra-tag defines the arrow when the vehicle moves --&amp;gt;&lt;br /&gt;
                &amp;lt;itemgra speed_range=&amp;quot;3-&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;polyline color=&amp;quot;#ff0000&amp;quot; width=&amp;quot;6&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;-7&amp;quot; y=&amp;quot;-10&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;0&amp;quot; y=&amp;quot;12&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;7&amp;quot; y=&amp;quot;-10&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/polyline&amp;gt;&lt;br /&gt;
                  &amp;lt;polyline color=&amp;quot;#ffffff&amp;quot; width=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;+10&amp;quot; y=&amp;quot;-10&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;3&amp;quot; y=&amp;quot;15&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/polyline&amp;gt;&lt;br /&gt;
                    &amp;lt;polyline color=&amp;quot;#ffffff&amp;quot; width=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;-10&amp;quot; y=&amp;quot;-10&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;-3&amp;quot; y=&amp;quot;15&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/polyline&amp;gt;&lt;br /&gt;
                &amp;lt;/itemgra&amp;gt;&lt;br /&gt;
        &amp;lt;/cursor&amp;gt;&lt;br /&gt;
    &amp;lt;/vehicle&amp;gt;&lt;br /&gt;
The following screenshot show Navit with a red cursor on a blue track:&lt;br /&gt;
&lt;br /&gt;
[[Image:navit_color_cursor.png|200px|thumb|Red Cursor Color on blue track - vehicle not moving]]&lt;br /&gt;
&lt;br /&gt;
=== Speech ===&lt;br /&gt;
Navit can speak if you install [http://espeak.sourceforge.net/ eSpeak] + [http://www.freebsoft.org/speechd speech-dispatcher] and updates your navit.xml file.&lt;br /&gt;
&lt;br /&gt;
If you want navit using your language, and setting LC_MESSAGES fails due to missing glibc locale, set the enviroment variable LANGUAGE. For instance running&lt;br /&gt;
  LANGUAGE=de navit&lt;br /&gt;
will set the ui and output to german.&lt;br /&gt;
&lt;br /&gt;
For SHR there is a big german localization patch see [[Configure SHR for German-speaking use]].&lt;br /&gt;
&lt;br /&gt;
One way to configure speech output:&lt;br /&gt;
&lt;br /&gt;
* mokoTTS aims to integrate these packages in OM:&lt;br /&gt;
http://projects.openmoko.org/projects/mokotts/&lt;br /&gt;
&lt;br /&gt;
install espeak, dotconf, and then speech-dispatcher.&lt;br /&gt;
note: running 2008.8 updating from zecke's &amp;quot;testing&amp;quot; repo does not require &amp;quot;dotconf&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Speech Language ====&lt;br /&gt;
To change the speech tag in navit.xml:&lt;br /&gt;
  &amp;lt;speech type=&amp;quot;cmdline&amp;quot; data=&amp;quot;spd-say '%s'&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;'''spd-say -l fr '%s''''&amp;quot; for using the French voice for example.&lt;br /&gt;
* &amp;quot;'''spd-say -l de '%s''''&amp;quot; for using the German voice for example.&lt;br /&gt;
&lt;br /&gt;
{{Note|You can check speech dispatcher output from the shell.}}&lt;br /&gt;
Example for German:&lt;br /&gt;
  spd-say -l=de &amp;quot;Dies ist die Winterstraße 23&amp;quot;&lt;br /&gt;
The speech-dispatcher is blocking the audio after suspend. So after a suspend you will hear no ringtone, when a phone call is coming in and you cannot listen do audio files.&lt;br /&gt;
A solution is to disable starting of speech-dispatcher with:&lt;br /&gt;
  update-rc.d -f speech-dispatcher remove&lt;br /&gt;
Then the speech-dispatcher should be started if and only if navit is running and shut down when navit is closed.&lt;br /&gt;
&lt;br /&gt;
Furthermore navit should be started indirect with a script &amp;lt;tt&amp;gt;navit.sh&amp;lt;/tt&amp;gt; instead of a direct start with the binary located in &amp;lt;tt&amp;gt;/usr/bin/navit&amp;lt;/tt&amp;gt;. The script &amp;lt;tt&amp;gt;navit.sh&amp;lt;/tt&amp;gt; listed below starts speech-dispatcher before navit, and stops it afterwards. See http://lists.openmoko.org/nabble.html#nabble-td1088795&lt;br /&gt;
&lt;br /&gt;
The following script is doing the suggested procedure. This script includes a language fix for Austria (see [[Configure SHR for German-speaking use]]).&lt;br /&gt;
  export LANG=de_AT.utf8&amp;lt;tt&amp;gt;spd-say --language=de Output-String&amp;lt;/tt&amp;gt; You can replace the --language by -l }&lt;br /&gt;
Replace '''&amp;lt;tt&amp;gt;de_AT&amp;lt;/tt&amp;gt;''' in this line with the appropriate language variable in the following script &amp;lt;tt&amp;gt;navit.sh&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#! /bin/sh&lt;br /&gt;
#&lt;br /&gt;
# Copyright Matthias Hentges &amp;lt;devel@hentges.net&amp;gt; (c) 2008&lt;br /&gt;
# License: GPL (see http://www.gnu.org/licenses/gpl.txt for a copy of the license)&lt;br /&gt;
#&lt;br /&gt;
# Filename: navit.sh&lt;br /&gt;
# Date: 20080105 (YMD)&lt;br /&gt;
#&lt;br /&gt;
#################################################################################&lt;br /&gt;
#&lt;br /&gt;
# 20080105 - v0.0.1	- Initial release&lt;br /&gt;
# 20090818 -            - Zoff &amp;lt;zoff@zoff.cc&amp;gt; addons and fixes&lt;br /&gt;
#&lt;br /&gt;
#&lt;br /&gt;
#################################################################################&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#################################################################################&lt;br /&gt;
#&lt;br /&gt;
# On devices with low memory (&amp;lt; 512Mb?) Navit will segfault on start.&lt;br /&gt;
# This can be worked around by doing&lt;br /&gt;
# &amp;quot;echo 1 &amp;gt; /proc/sys/vm/overcommit_memory&amp;quot;&lt;br /&gt;
#&lt;br /&gt;
#################################################################################&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
. /etc/profile&lt;br /&gt;
&lt;br /&gt;
set|grep LC&lt;br /&gt;
&lt;br /&gt;
#### Stop the speech dispatcher ####&lt;br /&gt;
/etc/init.d/speech-dispatcher stop&lt;br /&gt;
&lt;br /&gt;
#### Language Fix #################&lt;br /&gt;
set|grep LC&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
export LC_ALL=''&lt;br /&gt;
unset LC_ALL&lt;br /&gt;
export LANG=de_AT.utf8&lt;br /&gt;
&lt;br /&gt;
set|grep LC&lt;br /&gt;
&lt;br /&gt;
#### Start the speech dispatcher ####&lt;br /&gt;
/etc/init.d/speech-dispatcher start &amp;amp;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
set|grep LC&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# need cpu and display&lt;br /&gt;
mdbus -s org.freesmartphone.ousaged /org/freesmartphone/Usage org.freesmartphone.Usage.SetResourcePolicy Display enabled&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if test &amp;quot;`cat /proc/meminfo | grep ^MemTotal | awk '{print $2}'`&amp;quot; -lt &amp;quot;500000&amp;quot;&lt;br /&gt;
then&lt;br /&gt;
	if test &amp;quot;$USER&amp;quot; = &amp;quot;root&amp;quot;&lt;br /&gt;
	then&lt;br /&gt;
		echo &amp;quot;Enabling low-mem workaround...&amp;quot;&lt;br /&gt;
		echo 1 &amp;gt; /proc/sys/vm/overcommit_memory&lt;br /&gt;
	else&lt;br /&gt;
		echo &amp;quot;I need root-privs to enable the low-mem workaround!&amp;quot;&lt;br /&gt;
	fi&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
######### Start NAVIT NOW ############&lt;br /&gt;
&lt;br /&gt;
navit $*&lt;br /&gt;
	&lt;br /&gt;
#### Stop the speech dispatcher ####&lt;br /&gt;
&lt;br /&gt;
/etc/init.d/speech-dispatcher stop&lt;br /&gt;
&lt;br /&gt;
# release cpu and display&lt;br /&gt;
mdbus -s org.freesmartphone.ousaged /org/freesmartphone/Usage org.freesmartphone.Usage.SetResourcePolicy Display auto&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Save the &amp;lt;tt&amp;gt;navit.sh&amp;lt;/tt&amp;gt; script in:&lt;br /&gt;
  /usr/bin/navit.sh&lt;br /&gt;
Make the script executable:&lt;br /&gt;
  chmod u+x /usr/bin/navit.sh&lt;br /&gt;
Now you have to edit the desktop icon, so that it starts this script &amp;lt;tt&amp;gt;navit.sh&amp;lt;/tt&amp;gt; instead of the binary &amp;lt;tt&amp;gt;/usr/bin/navit&amp;lt;/tt&amp;gt;.&lt;br /&gt;
  nano /usr/share/applications/navit.desktop&lt;br /&gt;
Edit the line with &amp;lt;tt&amp;gt;Exec=...&amp;lt;/tt&amp;gt;, so that it starts the script &amp;lt;tt&amp;gt;navit.sh&amp;lt;/tt&amp;gt; instead of the navit binary.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[Desktop Entry]&lt;br /&gt;
Version=1.0&lt;br /&gt;
Name=Navit&lt;br /&gt;
Name[de]=Navit&lt;br /&gt;
Name[fr]=Navit&lt;br /&gt;
Comment=The open source vector based navigation program with routing engine&lt;br /&gt;
Comment[de]=Ein vektorbasiertes Navigationsprogramm&lt;br /&gt;
Comment[fr]=Le logiciel opensource de navigation vectorielle&lt;br /&gt;
Exec=/usr/bin/navit.sh&lt;br /&gt;
Icon=navit&lt;br /&gt;
StartupNotify=true&lt;br /&gt;
Terminal=false&lt;br /&gt;
Type=Application&lt;br /&gt;
Categories=GTK;Utility;Geography;&lt;br /&gt;
GenericName=Navit&lt;br /&gt;
GenericName[de]=Navit&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Alternatively''', you can make speech-dispatcher restart on resume, see http://trac.shr-project.org/trac/ticket/494&lt;br /&gt;
&lt;br /&gt;
=== Script to download OSM maps ===&lt;br /&gt;
[[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&lt;br /&gt;
dlOSM.sh &amp;lt;minimum latitude&amp;gt; &amp;lt;maximum latitude&amp;gt; &amp;lt;minimum longitude&amp;gt; &amp;lt;maximum longitude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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...&lt;br /&gt;
&lt;br /&gt;
dlOSM.sh:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/usr/bin/python&lt;br /&gt;
&lt;br /&gt;
import os&lt;br /&gt;
import sys&lt;br /&gt;
#import math&lt;br /&gt;
&lt;br /&gt;
def doIt(cmd):&lt;br /&gt;
  os.system(cmd)&lt;br /&gt;
&lt;br /&gt;
def getOsms(basename, minLat, maxLat, minLon, maxLon):&lt;br /&gt;
  '''basename - base name of map, maps are named {basename}{count}.osm&lt;br /&gt;
  minLat - latitude of the west side of the map&lt;br /&gt;
  maxLat - latitude of the east side of the map&lt;br /&gt;
  minLon - longitude of the north side of the map&lt;br /&gt;
  maxLon - longitude of the south side of the map'''&lt;br /&gt;
&lt;br /&gt;
  wgetCmdTemplate = 'wget -O %s%s.osm http://api.openstreetmap.org/api/0.6/map?bbox=%s,%s,%s,%s'&lt;br /&gt;
&lt;br /&gt;
  currLat = minLat&lt;br /&gt;
  mapCount = 0&lt;br /&gt;
  while currLat &amp;lt; maxLat:&lt;br /&gt;
    nextLat = min(currLat + 0.1, maxLat)&lt;br /&gt;
&lt;br /&gt;
    currLon = minLon&lt;br /&gt;
    while currLon &amp;lt; maxLon:&lt;br /&gt;
      nextLon = min(currLon + 0.1, maxLon)&lt;br /&gt;
&lt;br /&gt;
      doIt(wgetCmdTemplate % (basename, mapCount, currLon, currLat, nextLon, nextLat))&lt;br /&gt;
&lt;br /&gt;
      currLon = nextLon&lt;br /&gt;
      mapCount = mapCount + 1&lt;br /&gt;
&lt;br /&gt;
    currLat = nextLat&lt;br /&gt;
&lt;br /&gt;
(minLat, maxLat, minLon, maxLon) = map(float, sys.argv[1:])&lt;br /&gt;
getOsms('map', minLat, maxLat, minLon, maxLon)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;onlyinclude&amp;gt;&lt;br /&gt;
{{ApplicationBox|&lt;br /&gt;
Name=[[Navit]]|&lt;br /&gt;
Description=Navit is a car navigation system with routing engine.|&lt;br /&gt;
Screenshot=Screenshot-3.png|&lt;br /&gt;
Homepage=http://navit.sourceforge.net|&lt;br /&gt;
TestedOn=|&lt;br /&gt;
PackageName=&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:GPS Applications]]&lt;/div&gt;</summary>
		<author><name>Niebert</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Navit</id>
		<title>Navit</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Navit"/>
				<updated>2010-12-28T13:29:12Z</updated>
		
		<summary type="html">&lt;p&gt;Niebert: /* Speech Language */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Application|Navit}}&lt;br /&gt;
&lt;br /&gt;
As described on the [http://navit.sourceforge.net/ Navit home page],&lt;br /&gt;
&lt;br /&gt;
&amp;lt;i&amp;gt;&amp;quot;'''Navit''' is a car navigation system with routing engine.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
The current vehicle position is either read from gpsd or directly from NMEA GPS sensors.&amp;quot;&amp;lt;/i&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Some people say Navit is also a good choice for pedestrian and bicycle navigation.&lt;br /&gt;
&lt;br /&gt;
[[Image:Navit-2241.png|thumb|Navit-r2241]]&lt;br /&gt;
&lt;br /&gt;
== Acknowledgment ==&lt;br /&gt;
&lt;br /&gt;
Thanks to [[User:Alessandro | Alessandro]], stefan_schmidt, cp15 and all Navit developers I have done a small (&amp;quot;not really working&amp;quot;) preview of Navit on Neo1973 at [http://www.telemobilityforum.com/eng/ Telemobility Forum 2007]. Thanks to [http://gfoss.it GFoss] guys to invite me.&lt;br /&gt;
''[[User:Tyrael | Tyrael]]''&lt;br /&gt;
&lt;br /&gt;
==Setting up Navit==&lt;br /&gt;
&lt;br /&gt;
===Install Navit===&lt;br /&gt;
&lt;br /&gt;
==== Map Size ====&lt;br /&gt;
Of you use e.g. entire Germany in an rectangle form it will have more than 500MB.&lt;br /&gt;
Navit on FR works with maps in the size of less that 350MB. So split the larger areas in portions with a smaller size than 350MB. Otherwise Navit will not be able to process the maps.&lt;br /&gt;
&lt;br /&gt;
Change navit.xml to modify the used map bin-file, e.g. germany1.bin to germany2.bin&lt;br /&gt;
&lt;br /&gt;
==== Navit on FSO (OM2008.x,SHR,...) ====&lt;br /&gt;
&lt;br /&gt;
You can now simply add a feed from there : http://download.navit-project.org/navit/openmoko/svn/&lt;br /&gt;
&lt;br /&gt;
Essentially, to enable this directory as [[Om_2008.8_Installer#How to add a Repository ?|feed]] and install or update navit do:&lt;br /&gt;
* Only for the first time:&lt;br /&gt;
 echo src navit http://download.navit-project.org/navit/openmoko/svn &amp;gt; /etc/opkg/navit-feed.conf&lt;br /&gt;
 opkg update&lt;br /&gt;
&lt;br /&gt;
* Always:&lt;br /&gt;
 opkg install navit&lt;br /&gt;
&lt;br /&gt;
Navit will be auto-updated when you run opkg upgrade later&lt;br /&gt;
&lt;br /&gt;
Navit might not be able to use gpsd at startup:&lt;br /&gt;
 navit:plugin_load:can't load '/usr/lib/navit/vehicle/&lt;br /&gt;
 libvehicle_gpsd.so', Error 'libgps.so.16: cannot open shared object  &lt;br /&gt;
 file: No such file or directory'&lt;br /&gt;
 navit:vehicle_new:invalid type 'gpsd'&lt;br /&gt;
&lt;br /&gt;
to solve this issue (necessary for SHR):&lt;br /&gt;
&lt;br /&gt;
 opkg install libgps17&lt;br /&gt;
 ln -s /usr/lib/libgps.so.17 /usr/lib/libgps.so.16&lt;br /&gt;
&lt;br /&gt;
====Navit on Debian====&lt;br /&gt;
Navit is now in Debian [http://packages.debian.org/source/testing/navit testing] and [http://packages.debian.org/source/unstable/navit unstable].&lt;br /&gt;
&lt;br /&gt;
Add the following line to &amp;lt;tt&amp;gt;/etc/apt/sources.list&amp;lt;/tt&amp;gt; with e.g. editor &amp;lt;tt&amp;gt;vi&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;nano&amp;lt;/tt&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
     deb http://ftp.de.debian.org/debian unstable main&lt;br /&gt;
&lt;br /&gt;
Then update with apt-get:&lt;br /&gt;
&lt;br /&gt;
     apt-get update&lt;br /&gt;
&lt;br /&gt;
The up-to-date source package is available through git at '''git://git.debian.org/git/collab-maint/navit.git''' ([http://git.debian.org/?p=collab-maint/navit.git;a=summary browse]).&lt;br /&gt;
&lt;br /&gt;
====Navit on Android====&lt;br /&gt;
Download current version [http://download.navit-project.org/navit/android_armv4t/svn/ navit-current.apk] on your Android. See [[Android usage]] for installing Apps on your [http://code.google.com/p/android-on-freerunner/wiki/Applications Android on Freerunner].&lt;br /&gt;
&lt;br /&gt;
   see [http://wiki.navit-project.org/index.php/Navit_on_Android Navit on Android] Navit Project Wiki&lt;br /&gt;
&lt;br /&gt;
You can use one download map which you have to copy on the FAT32 partition of your SD card as '''&amp;lt;tt&amp;gt;navitmap.bin&amp;lt;/tt&amp;gt;'''. &lt;br /&gt;
&lt;br /&gt;
During first use after installation, navit for android will ask you, if you want to intall [http://espeak.sourceforge.net/ TTS] (Text to Speech [http://www.speech.cs.cmu.edu/flite/ festival-lite]). If you decide to install TTS then Navit crashes (with version [http://download.navit-project.org/navit/android_armv4t/svn/ navit-svn-3495.apk]).&lt;br /&gt;
&lt;br /&gt;
====Navit on QtMoko====&lt;br /&gt;
You can find some information for installing Navit in the [[QtMoko]] article.&lt;br /&gt;
&lt;br /&gt;
===Set up the maps you want===&lt;br /&gt;
&lt;br /&gt;
====The Easy Way====&lt;br /&gt;
Use [http://maps.navit-project.org/download/ Navit Map Extractor] based on [http://www.openstreetmap.org OpenStreetMap].  Navigate to the region you want, and click &amp;quot;select&amp;quot; to select region, select the area you want, then click download. [[Image:osmdownload.jpg|200px|thumb|Download OpenStreetMaps]] &lt;br /&gt;
&lt;br /&gt;
If you just want the entire planet (as of this writing, ~1.8 GB), it's [http://maps.navit-project.org/planet.bin here].&lt;br /&gt;
&lt;br /&gt;
[http://downloads.cloudmade.com/ CloudMade] also has up-to-date maps from OpenStreetMap by country (by state in the US).&lt;br /&gt;
&lt;br /&gt;
{{Note|Be aware of the map size that can be used on your FR (On Android working with map sizes less than 350MB is O.K. on SHR 450MB also work, so SHR may not have a map size limit)}}&lt;br /&gt;
&lt;br /&gt;
====From the command line====&lt;br /&gt;
'''OpenStreetMap''' - follow directions at http://wiki.navit-project.org/index.php/OpenStreetMaps&lt;br /&gt;
* There are some pre-processed, up-to-date maps that can be grabbed with wget:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;wget -O germany.bin http://maps.navit-project.org/api/map/?bbox=5.185546875,46.845703125,15.46875,55.634765625&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can put a shell script into &amp;lt;tt&amp;gt;/usr/local/bin/update-maps&amp;lt;/tt&amp;gt;&lt;br /&gt;
  #!/bin/sh&lt;br /&gt;
  echo &amp;quot;Update OpenstreetMaps&amp;quot;&lt;br /&gt;
  echo &amp;quot;---------------------&amp;quot;&lt;br /&gt;
  echo &amp;quot;  download and store OSM maps on /media/card/maps&amp;quot;&lt;br /&gt;
  wget -O /media/card/maps/germany.bin http://maps.navit-project.org/api/map/?bbox=5.185546875,46.845703125,15.46875,55.634765625&lt;br /&gt;
  echo &amp;quot;update germany.bin finished&amp;quot;&lt;br /&gt;
You have to make the script executable with:&lt;br /&gt;
  chmod u+x /usr/local/bin/update-maps&lt;br /&gt;
Create a maps-directory (e.g. with path &amp;lt;tt&amp;gt;/media/card/maps/&amp;lt;/tt&amp;gt;) on your SD-card:&lt;br /&gt;
  mkdir /media/card/maps/&lt;br /&gt;
Then you can update with this script all your maps on the SD-card if you have internet connection:&lt;br /&gt;
  update-maps&lt;br /&gt;
* Here's an example to get the maps for the area around Seattle, WA:&lt;br /&gt;
** Find the map coordinates using http://informationfreeway.org/?lat=47.520270037501454&amp;amp;lon=-122.20130713167327&amp;amp;zoom=9&amp;amp;layers=B000F000&lt;br /&gt;
** 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):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;wget -O map1.osm http://www.openstreetmap.org/api/0.5/map?bbox=-122.2,47.5,-122,47.7&lt;br /&gt;
wget -O map2.osm http://www.openstreetmap.org/api/0.5/map?bbox=-122.4,47.5,-122.2,47.7&lt;br /&gt;
wget -O map3.osm http://www.openstreetmap.org/api/0.5/map?bbox=-122.4,47.3,-122.2,47.5&lt;br /&gt;
wget -O map4.osm http://www.openstreetmap.org/api/0.5/map?bbox=-122.2,47.3,-122,47.5&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* 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:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;cat *.osm | osm2navit --dedupe-ways mymap.bin&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Copy the map to the NEO===&lt;br /&gt;
To copy the map using scp (replace ''/directory'' as is appropriate in the following):&lt;br /&gt;
&amp;lt;pre&amp;gt;scp mymap.bin root@neo:/directory&amp;lt;/pre&amp;gt;&lt;br /&gt;
If you copy the map &amp;lt;tt&amp;gt;germany.bin&amp;lt;/tt&amp;gt; to the SD card on the Neo use e.g. in the directory &amp;lt;tt&amp;gt;maps&amp;lt;/tt&amp;gt;:&lt;br /&gt;
  scp germany.bin root@neo:/media/card/maps&lt;br /&gt;
Once it's somewhere on the NEO, Navit needs to know that it's there.&lt;br /&gt;
&amp;lt;pre&amp;gt;mkdir ~/.navit&lt;br /&gt;
cp /usr/share/navit/navit.xml ~/.navit/navit.xml&lt;br /&gt;
vi ~/.navit/navit.xml&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
note that in some version navit includes other xml files from /usr/share/navit, for instance mapsets are now defined in maps.xml.&lt;br /&gt;
&lt;br /&gt;
===Enable Maps in  Navit ===&lt;br /&gt;
Now you must let Navit know the maps you want to use. Several disabled mapset-tags are predefined. &lt;br /&gt;
In the navit.xml file, put the following into a new &amp;lt;mapset&amp;gt; section (and disable the default &amp;lt;mapset&amp;gt; just above - or else it will not work):&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;map type=&amp;quot;binfile&amp;quot; enabled=&amp;quot;yes&amp;quot; data=&amp;quot;/directory&amp;quot; /&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
For example with a &amp;lt;tt&amp;gt;germany.bin&amp;lt;/tt&amp;gt; on the SD-card you use:&lt;br /&gt;
 &amp;lt;mapset enabled=&amp;quot;yes&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;map type=&amp;quot;binfile&amp;quot; enabled=&amp;quot;yes&amp;quot; data=&amp;quot;/media/card/maps/germany.bin&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;/mapset&amp;gt;&lt;br /&gt;
or if you store all downloaded maps in the directory &amp;lt;tt&amp;gt;/media/card/maps&amp;lt;/tt&amp;gt; then add the following lines to &amp;lt;tt&amp;gt;navit.xml&amp;lt;/tt&amp;gt;.&lt;br /&gt;
 &amp;lt;mapset enabled=&amp;quot;yes&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;map type=&amp;quot;binfile&amp;quot; enabled=&amp;quot;yes&amp;quot; data=&amp;quot;/media/card/maps/*.bin&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;/mapset&amp;gt;&lt;br /&gt;
{{Note|this will only load the first map that machtes *.bin (its a bug/feature)!}}&lt;br /&gt;
{{Note|that the bin-file and the map set both have to be enabled}}&lt;br /&gt;
&lt;br /&gt;
Disable unused mapset sections by setting enabled to &amp;lt;tt&amp;gt;no&amp;lt;/tt&amp;gt;, e.g. the pre-installed sample maps at line 370 in &amp;lt;tt&amp;gt;navit.xml&amp;lt;/tt&amp;gt;.&lt;br /&gt;
 &amp;lt;mapset enabled=&amp;quot;no&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xi:include href=&amp;quot;$NAVIT_SHAREDIR/maps/*.xml&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;/mapset&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Run navit&lt;br /&gt;
** Start [[gllin]] (for GTA01)&lt;br /&gt;
** Start [[gpsd]] ( gpsd /tmp/nmeaNP )&lt;br /&gt;
** Start navit&lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
===Tips and Tricks===&lt;br /&gt;
====Center on Vehicle====&lt;br /&gt;
Navit supports a &amp;quot;always center on vehicle&amp;quot; option. &lt;br /&gt;
&lt;br /&gt;
To activate this add&lt;br /&gt;
 follow=&amp;quot;3&amp;quot;&lt;br /&gt;
to the &amp;lt;tt&amp;gt;vehicle&amp;lt;/tt&amp;gt; tag in navit.xml. &lt;br /&gt;
   &amp;lt;vehicle name=&amp;quot;Local GPS&amp;quot; profilename=&amp;quot;car&amp;quot; enabled=&amp;quot;yes&amp;quot; active=&amp;quot;1&amp;quot; follow=&amp;quot;3&amp;quot; &lt;br /&gt;
           source=&amp;quot;gpsd://localhost&amp;quot; gpsd_query=&amp;quot;w+xj&amp;quot; color=&amp;quot;#0000ff&amp;quot;&amp;gt;&lt;br /&gt;
The &amp;quot;3&amp;quot; causes to give the gui time to do something between the repaints (drag the map or browse the menu). When its set to &amp;quot;1&amp;quot; navit does nothing more than repainting the map continuously.&lt;br /&gt;
&lt;br /&gt;
==Routing==&lt;br /&gt;
[[Image:navit_main_menu.png|100px|thumb|Navit Main Menu]]&lt;br /&gt;
[[Image:navit_action_menu.png|100px|thumb|Navit Action Menu]]&lt;br /&gt;
The main menu has 4 submenus&lt;br /&gt;
* Action&lt;br /&gt;
* Settings&lt;br /&gt;
* Tools&lt;br /&gt;
* Route&lt;br /&gt;
Normally you would assume the entering a town can be found under the submenu Route, but Town is hidden under submenu Action. Route will provide the description of the route as text and a height profile of your trip. Tools was not working on 08/2009 Version of navit on SHR (see [[SHR User Manual]]).&lt;br /&gt;
&lt;br /&gt;
===Preselect Country of Destination===&lt;br /&gt;
Normally you have to select the the country first before choosing the town and street name. It might be more convenient for you if you preselect the country already with your settings.&lt;br /&gt;
The article [[Configure SHR for German-speaking use]] had a preselection of the country &amp;quot;Austria&amp;quot; in Navit. Adapt the localization for your country and maps in Navit, so that do not need to select the country anymore.&lt;br /&gt;
&lt;br /&gt;
Actually Navit derives the preselected country from the calling environments's locale (see [[Localization]]). Make sure, that LC_ALL ist '''not''' set though. Otherwise navit fails to interprete gpsd output and you end up with strange gps coordinates. When starting from gui (e.g. illume) you can achieve this by supplying an executable script /usr/local/bin/navit which might look like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
#export LANG=xx_YY.UTF-8   # Uncomment this line and replace xx_YY, if &lt;br /&gt;
                           # your gui's locale is not setup accordingly. &lt;br /&gt;
unset LC_ALL&lt;br /&gt;
exec /usr/bin/navit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
So a valid locale environment preselecting search for German cities would look like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@om-gta02 ~ $ locale&lt;br /&gt;
LANG=de_DE.UTF-8&lt;br /&gt;
LC_CTYPE=&amp;quot;de_DE.UTF-8&amp;quot;&lt;br /&gt;
LC_NUMERIC=&amp;quot;de_DE.UTF-8&amp;quot;&lt;br /&gt;
...&lt;br /&gt;
LC_MEASUREMENT=&amp;quot;de_DE.UTF-8&amp;quot;&lt;br /&gt;
LC_IDENTIFICATION=&amp;quot;de_DE.UTF-8&amp;quot;&lt;br /&gt;
LC_ALL=&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note that there's a limited number of [http://wiki.navit-project.org/index.php/OpenStreetMaps#Known_countries_by_osm2navit countries supported by osm2navit] and Navit's search function.&lt;br /&gt;
&lt;br /&gt;
===Select Destination===&lt;br /&gt;
[[Image:navit_select_country.png|100px|thumb|Select Country]]&lt;br /&gt;
&lt;br /&gt;
You can the select your destination in the main menu:&lt;br /&gt;
* via '''Bookmarks''', if you saved the previous location or&lt;br /&gt;
* via '''Town''', if you want to enter a new destination. If you use a destination more frequently, just save the location as bookmark.  &lt;br /&gt;
&lt;br /&gt;
When you click in the main menu on &amp;lt;i&amp;gt;Action&amp;lt;/i&amp;gt; the &amp;lt;i&amp;gt;Action&amp;lt;/i&amp;gt; menu appears with 4 subitems.&lt;br /&gt;
* Bookmarks of previous locations (stored in &amp;lt;tt&amp;gt;/home/root/.navit/destinations.txt&amp;lt;/tt&amp;gt;&lt;br /&gt;
* a globe showing a location as destination,&lt;br /&gt;
* a vehicle that shows the current GPS position of the vehicle. If the freerunner receives no GPS signal the locations of the vehicle is set to 0.0.0N and 0.0.0E. &lt;br /&gt;
* Town is the action to enter a destination.&lt;br /&gt;
* Quit navit is the last action in this submenu.&lt;br /&gt;
&lt;br /&gt;
Select the icon &amp;lt;i&amp;gt;Town&amp;lt;/i&amp;gt; in the main menu (if you see the map, you can get to the main menu just by clicking on the map).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Select Country====&lt;br /&gt;
[[Image:navit_country_selected.png|100px|thumb|Country Options]]&lt;br /&gt;
[[Image:navit_destination_details.png|100px|thumb|Enter Bookmark Details]]&lt;br /&gt;
&lt;br /&gt;
Before you can search for City you have to select a Country. To do that, click on the icon in the left upper corner of the search field (could look like a white square with blue top-left quadrant).&lt;br /&gt;
&lt;br /&gt;
Just type in the first letter of the country (e.g. &amp;quot;G&amp;quot;) and Navit makes suggestions (e.g. Gabon, Germany).&lt;br /&gt;
&lt;br /&gt;
====Enter Town====&lt;br /&gt;
&lt;br /&gt;
When you have selected the country (e.g. Germany) the flag appears and you can select the town.&lt;br /&gt;
Then you can save the town as bookmark and enter more details like streets to the selected town.&lt;br /&gt;
&lt;br /&gt;
The search is still a little buggy.&lt;br /&gt;
&lt;br /&gt;
====Enter Street====&lt;br /&gt;
You can enter the street and streetnumber and save it as bookmark when you use the destination often. &lt;br /&gt;
&lt;br /&gt;
====Bookmarks====&lt;br /&gt;
Navigation and planning of routes with Navit can be organized with bookmarks.&lt;br /&gt;
* set a bookmark as current position &lt;br /&gt;
* set a bookmark as destination&lt;br /&gt;
Then you can see the suggested route in blue on the map. &lt;br /&gt;
&lt;br /&gt;
Bookmarks are stored in:&lt;br /&gt;
  /home/root/.navit/bookmark.txt&lt;br /&gt;
&lt;br /&gt;
The GPS-location (if GPS-signal is available) will be highlighted with a small blue circle. The color of the circle can be defined via editing the &amp;lt;tt&amp;gt;navit.xml&amp;lt;/tt&amp;gt; (see [http://wiki.openmoko.org/wiki/Navit#Set_Cursor_Color select cursor color]).&lt;br /&gt;
* a dot in the blue circle is indicating that your are not moving,&lt;br /&gt;
* an arrowhead is indicating the direction, when you are moving.&lt;br /&gt;
Then routing can start and in the map the route is highlighted.&lt;br /&gt;
&lt;br /&gt;
====Screenshots in Navit Documentation====&lt;br /&gt;
The screenshots are made with &amp;lt;tt&amp;gt;gpe-scap&amp;lt;/tt&amp;gt;, that can be installed by:&lt;br /&gt;
  opkg install gpe-scap&lt;br /&gt;
if not installed already. Navigation through your installed application navit and login via ssh on your Freerunner &lt;br /&gt;
  ssh -l root 192.168.0.202&lt;br /&gt;
assuming that your Freerunner has the IP 192.168.0.202.&lt;br /&gt;
Any time you want to make a screenshot just start via your desktop computer &lt;br /&gt;
  gpe-scap&lt;br /&gt;
and save the screenshot to you freerunner.&lt;br /&gt;
Download the screenshot to your desktop computer with&lt;br /&gt;
  desktop# sftp://root@192.168.0.202&lt;br /&gt;
&lt;br /&gt;
== News ==&lt;br /&gt;
A deeper look into configuring Navit can be found in the [http://wiki.navit-project.org/index.php/Configuring_Navit Navit-Wiki].&lt;br /&gt;
&lt;br /&gt;
=== Getting the display right ===&lt;br /&gt;
&lt;br /&gt;
If using SHR the keyboard in country/town/street search mode does not fit on the street, make sure your gui configuration is set to the following line:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;gui type=&amp;quot;internal&amp;quot; font_size=&amp;quot;350&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The example line provided for freerunners hides some important icons. Namely, instead of typing your city name first, you will first have to click the button on the top left, to go into country search mode. Enter your country name, then the city name, in order to enable the search function. This requires your map data to be searchable.&lt;br /&gt;
&lt;br /&gt;
You can start in fullscreen mode with fullscreen=&amp;quot;1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;gui type=&amp;quot;internal&amp;quot; font_size=&amp;quot;350&amp;quot; fullscreen=&amp;quot;1&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you want to enable &amp;quot;+&amp;quot; and &amp;quot;-&amp;quot; as Zoom-In and Zoom-Out buttons on the bottom of the map enable the button with the following xml-tags:&lt;br /&gt;
 &amp;lt;osd enabled=&amp;quot;yes&amp;quot; type=&amp;quot;button&amp;quot; x=&amp;quot;-96&amp;quot; y=&amp;quot;-96&amp;quot; command=&amp;quot;zoom_in()&amp;quot;  src=&amp;quot;zoom_in.xpm&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;osd enabled=&amp;quot;yes&amp;quot; type=&amp;quot;button&amp;quot; x=&amp;quot;0&amp;quot;   y=&amp;quot;-96&amp;quot; command=&amp;quot;zoom_out()&amp;quot; src=&amp;quot;zoom_out.xpm&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can find sample Layouts here:&lt;br /&gt;
[http://wiki.navit-project.org/index.php/OSD_Layouts Sample Layouts from navit-wiki]&lt;br /&gt;
&lt;br /&gt;
=== Set Cursor Color ===&lt;br /&gt;
[[Image:red_cursor.png|90px|thumb|Red Cursor]]&lt;br /&gt;
If you navigate, the route is marked in blue color on the map. The current position of the vehicle is displayed by a blue circle. The circle is sometimes difficult to see on the blue track. If you want to change the color, size  of the vehicle cursor edit the vehicle XML-environment in navit.xml (e.g. replace blue color #0000FF with red color #FF0000 -- for details of  [http://html-color-codes.info Color Codes] select color, copy and paste code in &amp;lt;tt&amp;gt;navit.xml&amp;lt;/tt&amp;gt;)  &lt;br /&gt;
&lt;br /&gt;
     &amp;lt;vehicle name=&amp;quot;Local GPS&amp;quot; profilename=&amp;quot;car&amp;quot; enabled=&amp;quot;yes&amp;quot; active=&amp;quot;1&amp;quot; source=&amp;quot;gpsd://localhost&amp;quot; gpsd_query=&amp;quot;w+xj&amp;quot; color=&amp;quot;#0000ff&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;!-- Navit can write a tracklog in several formats (gpx, nmea or textfile): --&amp;gt;&lt;br /&gt;
        &amp;lt;!-- &amp;lt;log type=&amp;quot;gpx&amp;quot; data=&amp;quot;track_%Y%m%d-%i.gpx&amp;quot; flush_size=&amp;quot;1000&amp;quot; flush_time=&amp;quot;30&amp;quot;/&amp;gt; --&amp;gt;&lt;br /&gt;
            &amp;lt;cursor w=&amp;quot;56&amp;quot; h=&amp;quot;56&amp;quot;&amp;gt;&lt;br /&gt;
               &amp;lt;!-- tag defines the circle for the cursor --&amp;gt;&lt;br /&gt;
                &amp;lt;itemgra&amp;gt;&lt;br /&gt;
                    &amp;lt;circle color=&amp;quot;#ff0000&amp;quot; radius=&amp;quot;42&amp;quot; width=&amp;quot;6&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;0&amp;quot; y=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/circle&amp;gt;&lt;br /&gt;
                   &amp;lt;circle color=&amp;quot;#ffffff&amp;quot; radius=&amp;quot;48&amp;quot; width=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;0&amp;quot; y=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/circle&amp;gt;&lt;br /&gt;
                   &amp;lt;circle color=&amp;quot;#ffffff&amp;quot; radius=&amp;quot;36&amp;quot; width=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;0&amp;quot; y=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/circle&amp;gt;&lt;br /&gt;
                &amp;lt;/itemgra&amp;gt;&lt;br /&gt;
               &amp;lt;!-- tag defines the dot when the vehicle is not moving --&amp;gt;&lt;br /&gt;
                &amp;lt;itemgra speed_range=&amp;quot;-2&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;polyline color=&amp;quot;#ff0000&amp;quot; width=&amp;quot;6&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;1&amp;quot; y=&amp;quot;1&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;1&amp;quot; y=&amp;quot;-1&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;-1&amp;quot; y=&amp;quot;-1&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;-1&amp;quot; y=&amp;quot;-1&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/polyline&amp;gt;&lt;br /&gt;
                  &amp;lt;circle color=&amp;quot;#ffffff&amp;quot; radius=&amp;quot;9&amp;quot; width=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;0&amp;quot; y=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/circle&amp;gt;&lt;br /&gt;
                &amp;lt;/itemgra&amp;gt;&lt;br /&gt;
                &amp;lt;!-- This itemgra-tag defines the arrow when the vehicle moves --&amp;gt;&lt;br /&gt;
                &amp;lt;itemgra speed_range=&amp;quot;3-&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;polyline color=&amp;quot;#ff0000&amp;quot; width=&amp;quot;6&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;-7&amp;quot; y=&amp;quot;-10&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;0&amp;quot; y=&amp;quot;12&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;7&amp;quot; y=&amp;quot;-10&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/polyline&amp;gt;&lt;br /&gt;
                  &amp;lt;polyline color=&amp;quot;#ffffff&amp;quot; width=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;+10&amp;quot; y=&amp;quot;-10&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;3&amp;quot; y=&amp;quot;15&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/polyline&amp;gt;&lt;br /&gt;
                    &amp;lt;polyline color=&amp;quot;#ffffff&amp;quot; width=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;-10&amp;quot; y=&amp;quot;-10&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;-3&amp;quot; y=&amp;quot;15&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/polyline&amp;gt;&lt;br /&gt;
                &amp;lt;/itemgra&amp;gt;&lt;br /&gt;
        &amp;lt;/cursor&amp;gt;&lt;br /&gt;
    &amp;lt;/vehicle&amp;gt;&lt;br /&gt;
The following screenshot show Navit with a red cursor on a blue track:&lt;br /&gt;
&lt;br /&gt;
[[Image:navit_color_cursor.png|200px|thumb|Red Cursor Color on blue track - vehicle not moving]]&lt;br /&gt;
&lt;br /&gt;
=== Speech ===&lt;br /&gt;
Navit can speak if you install [http://espeak.sourceforge.net/ eSpeak] + [http://www.freebsoft.org/speechd speech-dispatcher] and updates your navit.xml file.&lt;br /&gt;
&lt;br /&gt;
If you want navit using your language, and setting LC_MESSAGES fails due to missing glibc locale, set the enviroment variable LANGUAGE. For instance running&lt;br /&gt;
  LANGUAGE=de navit&lt;br /&gt;
will set the ui and output to german.&lt;br /&gt;
&lt;br /&gt;
For SHR there is a big german localization patch see [[Configure SHR for German-speaking use]].&lt;br /&gt;
&lt;br /&gt;
One way to configure speech output:&lt;br /&gt;
&lt;br /&gt;
* mokoTTS aims to integrate these packages in OM:&lt;br /&gt;
http://projects.openmoko.org/projects/mokotts/&lt;br /&gt;
&lt;br /&gt;
install espeak, dotconf, and then speech-dispatcher.&lt;br /&gt;
note: running 2008.8 updating from zecke's &amp;quot;testing&amp;quot; repo does not require &amp;quot;dotconf&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Speech Language ====&lt;br /&gt;
To change the speech tag in navit.xml:&lt;br /&gt;
  &amp;lt;speech type=&amp;quot;cmdline&amp;quot; data=&amp;quot;spd-say '%s'&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;'''spd-say -l fr '%s''''&amp;quot; for using the French voice for example.&lt;br /&gt;
* &amp;quot;'''spd-say -l de '%s''''&amp;quot; for using the German voice for example.&lt;br /&gt;
&lt;br /&gt;
{{Note|You can check speech dispatcher output from the shell.}}&lt;br /&gt;
Example for German:&lt;br /&gt;
  spd-say -l=de &amp;quot;Dies ist die Winterstraße 23&amp;quot;&lt;br /&gt;
The speech-dispatcher is blocking the audio after suspend. So after a suspend you will hear no ringtone, when a phone call is coming in and you cannot listen do audio files.&lt;br /&gt;
A solution is to disable starting of speech-dispatcher with:&lt;br /&gt;
  update-rc.d -f speech-dispatcher remove&lt;br /&gt;
Then the speech-dispatcher should be started if and only if navit is running and shut down when navit is closed.&lt;br /&gt;
&lt;br /&gt;
Furthermore navit should be started indirect with a script &amp;lt;tt&amp;gt;navit.sh&amp;lt;/tt&amp;gt; instead of a direct start with the binary located in &amp;lt;tt&amp;gt;/usr/bin/navit&amp;lt;/tt&amp;gt;. The script &amp;lt;tt&amp;gt;navit.sh&amp;lt;/tt&amp;gt; listed below starts speech-dispatcher before navit, and stops it afterwards. See http://lists.openmoko.org/nabble.html#nabble-td1088795&lt;br /&gt;
&lt;br /&gt;
The following script is doing the suggested procedure. This script includes a language fix for Austria (see [[Configure SHR for German-speaking use]]).&lt;br /&gt;
  export LANG=de_AT.utf8&lt;br /&gt;
Replace '''&amp;lt;tt&amp;gt;de_AT&amp;lt;/tt&amp;gt;''' in this line with the appropriate language variable in the following script &amp;lt;tt&amp;gt;navit.sh&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&amp;lt;pre&amp;gt;Hallo Patsy,spd-say -l de '%s'&lt;br /&gt;
#! /bin/sh&lt;br /&gt;
#&lt;br /&gt;
# Copyright Matthias Hentges &amp;lt;devel@hentges.net&amp;gt; (c) 2008&lt;br /&gt;
# License: GPL (see http://www.gnu.org/licenses/gpl.txt for a copy of the license)&lt;br /&gt;
#&lt;br /&gt;
# Filename: navit.sh&lt;br /&gt;
# Date: 20080105 (YMD)&lt;br /&gt;
#&lt;br /&gt;
#################################################################################&lt;br /&gt;
#&lt;br /&gt;
# 20080105 - v0.0.1	- Initial release&lt;br /&gt;
# 20090818 -            - Zoff &amp;lt;zoff@zoff.cc&amp;gt; addons and fixes&lt;br /&gt;
#&lt;br /&gt;
#&lt;br /&gt;
#################################################################################&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#################################################################################&lt;br /&gt;
#&lt;br /&gt;
# On devices with low memory (&amp;lt; 512Mb?) Navit will segfault on start.&lt;br /&gt;
# This can be worked around by doing&lt;br /&gt;
# &amp;quot;echo 1 &amp;gt; /proc/sys/vm/overcommit_memory&amp;quot;&lt;br /&gt;
#&lt;br /&gt;
#################################################################################&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
. /etc/profile&lt;br /&gt;
&lt;br /&gt;
set|grep LC&lt;br /&gt;
&lt;br /&gt;
#### Stop the speech dispatcher ####&lt;br /&gt;
/etc/init.d/speech-dispatcher stop&lt;br /&gt;
&lt;br /&gt;
#### Language Fix #################&lt;br /&gt;
set|grep LC&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
export LC_ALL=''&lt;br /&gt;
unset LC_ALL&lt;br /&gt;
export LANG=de_AT.utf8&lt;br /&gt;
&lt;br /&gt;
set|grep LC&lt;br /&gt;
&lt;br /&gt;
#### Start the speech dispatcher ####&lt;br /&gt;
/etc/init.d/speech-dispatcher start &amp;amp;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
set|grep LC&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# need cpu and display&lt;br /&gt;
mdbus -s org.freesmartphone.ousaged /org/freesmartphone/Usage org.freesmartphone.Usage.SetResourcePolicy Display enabled&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if test &amp;quot;`cat /proc/meminfo | grep ^MemTotal | awk '{print $2}'`&amp;quot; -lt &amp;quot;500000&amp;quot;&lt;br /&gt;
then&lt;br /&gt;
	if test &amp;quot;$USER&amp;quot; = &amp;quot;root&amp;quot;&lt;br /&gt;
	then&lt;br /&gt;
		echo &amp;quot;Enabling low-mem workaround...&amp;quot;&lt;br /&gt;
		echo 1 &amp;gt; /proc/sys/vm/overcommit_memory&lt;br /&gt;
	else&lt;br /&gt;
		echo &amp;quot;I need root-privs to enable the low-mem workaround!&amp;quot;&lt;br /&gt;
	fi&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
######### Start NAVIT NOW ############&lt;br /&gt;
&lt;br /&gt;
navit $*&lt;br /&gt;
	&lt;br /&gt;
#### Stop the speech dispatcher ####&lt;br /&gt;
&lt;br /&gt;
/etc/init.d/speech-dispatcher stop&lt;br /&gt;
&lt;br /&gt;
# release cpu and display&lt;br /&gt;
mdbus -s org.freesmartphone.ousaged /org/freesmartphone/Usage org.freesmartphone.Usage.SetResourcePolicy Display auto&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Save the &amp;lt;tt&amp;gt;navit.sh&amp;lt;/tt&amp;gt; script in:&lt;br /&gt;
  /usr/bin/navit.sh&lt;br /&gt;
Make the script executable:&lt;br /&gt;
  chmod u+x /usr/bin/navit.sh&lt;br /&gt;
Now you have to edit the desktop icon, so that it starts this script &amp;lt;tt&amp;gt;navit.sh&amp;lt;/tt&amp;gt; instead of the binary &amp;lt;tt&amp;gt;/usr/bin/navit&amp;lt;/tt&amp;gt;.&lt;br /&gt;
  nano /usr/share/applications/navit.desktop&lt;br /&gt;
Edit the line with &amp;lt;tt&amp;gt;Exec=...&amp;lt;/tt&amp;gt;, so that it starts the script &amp;lt;tt&amp;gt;navit.sh&amp;lt;/tt&amp;gt; instead of the navit binary.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[Desktop Entry]&lt;br /&gt;
Version=1.0&lt;br /&gt;
Name=Navit&lt;br /&gt;
Name[de]=Navit&lt;br /&gt;
Name[fr]=Navit&lt;br /&gt;
Comment=The open source vector based navigation program with routing engine&lt;br /&gt;
Comment[de]=Ein vektorbasiertes Navigationsprogramm&lt;br /&gt;
Comment[fr]=Le logiciel opensource de navigation vectorielle&lt;br /&gt;
Exec=/usr/bin/navit.sh&lt;br /&gt;
Icon=navit&lt;br /&gt;
StartupNotify=true&lt;br /&gt;
Terminal=false&lt;br /&gt;
Type=Application&lt;br /&gt;
Categories=GTK;Utility;Geography;&lt;br /&gt;
GenericName=Navit&lt;br /&gt;
GenericName[de]=Navit&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Alternatively''', you can make speech-dispatcher restart on resume, see http://trac.shr-project.org/trac/ticket/494&lt;br /&gt;
&lt;br /&gt;
=== Script to download OSM maps ===&lt;br /&gt;
[[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&lt;br /&gt;
dlOSM.sh &amp;lt;minimum latitude&amp;gt; &amp;lt;maximum latitude&amp;gt; &amp;lt;minimum longitude&amp;gt; &amp;lt;maximum longitude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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...&lt;br /&gt;
&lt;br /&gt;
dlOSM.sh:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/usr/bin/python&lt;br /&gt;
&lt;br /&gt;
import os&lt;br /&gt;
import sys&lt;br /&gt;
#import math&lt;br /&gt;
&lt;br /&gt;
def doIt(cmd):&lt;br /&gt;
  os.system(cmd)&lt;br /&gt;
&lt;br /&gt;
def getOsms(basename, minLat, maxLat, minLon, maxLon):&lt;br /&gt;
  '''basename - base name of map, maps are named {basename}{count}.osm&lt;br /&gt;
  minLat - latitude of the west side of the map&lt;br /&gt;
  maxLat - latitude of the east side of the map&lt;br /&gt;
  minLon - longitude of the north side of the map&lt;br /&gt;
  maxLon - longitude of the south side of the map'''&lt;br /&gt;
&lt;br /&gt;
  wgetCmdTemplate = 'wget -O %s%s.osm http://api.openstreetmap.org/api/0.6/map?bbox=%s,%s,%s,%s'&lt;br /&gt;
&lt;br /&gt;
  currLat = minLat&lt;br /&gt;
  mapCount = 0&lt;br /&gt;
  while currLat &amp;lt; maxLat:&lt;br /&gt;
    nextLat = min(currLat + 0.1, maxLat)&lt;br /&gt;
&lt;br /&gt;
    currLon = minLon&lt;br /&gt;
    while currLon &amp;lt; maxLon:&lt;br /&gt;
      nextLon = min(currLon + 0.1, maxLon)&lt;br /&gt;
&lt;br /&gt;
      doIt(wgetCmdTemplate % (basename, mapCount, currLon, currLat, nextLon, nextLat))&lt;br /&gt;
&lt;br /&gt;
      currLon = nextLon&lt;br /&gt;
      mapCount = mapCount + 1&lt;br /&gt;
&lt;br /&gt;
    currLat = nextLat&lt;br /&gt;
&lt;br /&gt;
(minLat, maxLat, minLon, maxLon) = map(float, sys.argv[1:])&lt;br /&gt;
getOsms('map', minLat, maxLat, minLon, maxLon)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;onlyinclude&amp;gt;&lt;br /&gt;
{{ApplicationBox|&lt;br /&gt;
Name=[[Navit]]|&lt;br /&gt;
Description=Navit is a car navigation system with routing engine.|&lt;br /&gt;
Screenshot=Screenshot-3.png|&lt;br /&gt;
Homepage=http://navit.sourceforge.net|&lt;br /&gt;
TestedOn=|&lt;br /&gt;
PackageName=&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:GPS Applications]]&lt;/div&gt;</summary>
		<author><name>Niebert</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Navit</id>
		<title>Navit</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Navit"/>
				<updated>2010-12-28T13:28:44Z</updated>
		
		<summary type="html">&lt;p&gt;Niebert: /* Speech Language */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Application|Navit}}&lt;br /&gt;
&lt;br /&gt;
As described on the [http://navit.sourceforge.net/ Navit home page],&lt;br /&gt;
&lt;br /&gt;
&amp;lt;i&amp;gt;&amp;quot;'''Navit''' is a car navigation system with routing engine.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
The current vehicle position is either read from gpsd or directly from NMEA GPS sensors.&amp;quot;&amp;lt;/i&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Some people say Navit is also a good choice for pedestrian and bicycle navigation.&lt;br /&gt;
&lt;br /&gt;
[[Image:Navit-2241.png|thumb|Navit-r2241]]&lt;br /&gt;
&lt;br /&gt;
== Acknowledgment ==&lt;br /&gt;
&lt;br /&gt;
Thanks to [[User:Alessandro | Alessandro]], stefan_schmidt, cp15 and all Navit developers I have done a small (&amp;quot;not really working&amp;quot;) preview of Navit on Neo1973 at [http://www.telemobilityforum.com/eng/ Telemobility Forum 2007]. Thanks to [http://gfoss.it GFoss] guys to invite me.&lt;br /&gt;
''[[User:Tyrael | Tyrael]]''&lt;br /&gt;
&lt;br /&gt;
==Setting up Navit==&lt;br /&gt;
&lt;br /&gt;
===Install Navit===&lt;br /&gt;
&lt;br /&gt;
==== Map Size ====&lt;br /&gt;
Of you use e.g. entire Germany in an rectangle form it will have more than 500MB.&lt;br /&gt;
Navit on FR works with maps in the size of less that 350MB. So split the larger areas in portions with a smaller size than 350MB. Otherwise Navit will not be able to process the maps.&lt;br /&gt;
&lt;br /&gt;
Change navit.xml to modify the used map bin-file, e.g. germany1.bin to germany2.bin&lt;br /&gt;
&lt;br /&gt;
==== Navit on FSO (OM2008.x,SHR,...) ====&lt;br /&gt;
&lt;br /&gt;
You can now simply add a feed from there : http://download.navit-project.org/navit/openmoko/svn/&lt;br /&gt;
&lt;br /&gt;
Essentially, to enable this directory as [[Om_2008.8_Installer#How to add a Repository ?|feed]] and install or update navit do:&lt;br /&gt;
* Only for the first time:&lt;br /&gt;
 echo src navit http://download.navit-project.org/navit/openmoko/svn &amp;gt; /etc/opkg/navit-feed.conf&lt;br /&gt;
 opkg update&lt;br /&gt;
&lt;br /&gt;
* Always:&lt;br /&gt;
 opkg install navit&lt;br /&gt;
&lt;br /&gt;
Navit will be auto-updated when you run opkg upgrade later&lt;br /&gt;
&lt;br /&gt;
Navit might not be able to use gpsd at startup:&lt;br /&gt;
 navit:plugin_load:can't load '/usr/lib/navit/vehicle/&lt;br /&gt;
 libvehicle_gpsd.so', Error 'libgps.so.16: cannot open shared object  &lt;br /&gt;
 file: No such file or directory'&lt;br /&gt;
 navit:vehicle_new:invalid type 'gpsd'&lt;br /&gt;
&lt;br /&gt;
to solve this issue (necessary for SHR):&lt;br /&gt;
&lt;br /&gt;
 opkg install libgps17&lt;br /&gt;
 ln -s /usr/lib/libgps.so.17 /usr/lib/libgps.so.16&lt;br /&gt;
&lt;br /&gt;
====Navit on Debian====&lt;br /&gt;
Navit is now in Debian [http://packages.debian.org/source/testing/navit testing] and [http://packages.debian.org/source/unstable/navit unstable].&lt;br /&gt;
&lt;br /&gt;
Add the following line to &amp;lt;tt&amp;gt;/etc/apt/sources.list&amp;lt;/tt&amp;gt; with e.g. editor &amp;lt;tt&amp;gt;vi&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;nano&amp;lt;/tt&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
     deb http://ftp.de.debian.org/debian unstable main&lt;br /&gt;
&lt;br /&gt;
Then update with apt-get:&lt;br /&gt;
&lt;br /&gt;
     apt-get update&lt;br /&gt;
&lt;br /&gt;
The up-to-date source package is available through git at '''git://git.debian.org/git/collab-maint/navit.git''' ([http://git.debian.org/?p=collab-maint/navit.git;a=summary browse]).&lt;br /&gt;
&lt;br /&gt;
====Navit on Android====&lt;br /&gt;
Download current version [http://download.navit-project.org/navit/android_armv4t/svn/ navit-current.apk] on your Android. See [[Android usage]] for installing Apps on your [http://code.google.com/p/android-on-freerunner/wiki/Applications Android on Freerunner].&lt;br /&gt;
&lt;br /&gt;
   see [http://wiki.navit-project.org/index.php/Navit_on_Android Navit on Android] Navit Project Wiki&lt;br /&gt;
&lt;br /&gt;
You can use one download map which you have to copy on the FAT32 partition of your SD card as '''&amp;lt;tt&amp;gt;navitmap.bin&amp;lt;/tt&amp;gt;'''. &lt;br /&gt;
&lt;br /&gt;
During first use after installation, navit for android will ask you, if you want to intall [http://espeak.sourceforge.net/ TTS] (Text to Speech [http://www.speech.cs.cmu.edu/flite/ festival-lite]). If you decide to install TTS then Navit crashes (with version [http://download.navit-project.org/navit/android_armv4t/svn/ navit-svn-3495.apk]).&lt;br /&gt;
&lt;br /&gt;
====Navit on QtMoko====&lt;br /&gt;
You can find some information for installing Navit in the [[QtMoko]] article.&lt;br /&gt;
&lt;br /&gt;
===Set up the maps you want===&lt;br /&gt;
&lt;br /&gt;
====The Easy Way====&lt;br /&gt;
Use [http://maps.navit-project.org/download/ Navit Map Extractor] based on [http://www.openstreetmap.org OpenStreetMap].  Navigate to the region you want, and click &amp;quot;select&amp;quot; to select region, select the area you want, then click download. [[Image:osmdownload.jpg|200px|thumb|Download OpenStreetMaps]] &lt;br /&gt;
&lt;br /&gt;
If you just want the entire planet (as of this writing, ~1.8 GB), it's [http://maps.navit-project.org/planet.bin here].&lt;br /&gt;
&lt;br /&gt;
[http://downloads.cloudmade.com/ CloudMade] also has up-to-date maps from OpenStreetMap by country (by state in the US).&lt;br /&gt;
&lt;br /&gt;
{{Note|Be aware of the map size that can be used on your FR (On Android working with map sizes less than 350MB is O.K. on SHR 450MB also work, so SHR may not have a map size limit)}}&lt;br /&gt;
&lt;br /&gt;
====From the command line====&lt;br /&gt;
'''OpenStreetMap''' - follow directions at http://wiki.navit-project.org/index.php/OpenStreetMaps&lt;br /&gt;
* There are some pre-processed, up-to-date maps that can be grabbed with wget:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;wget -O germany.bin http://maps.navit-project.org/api/map/?bbox=5.185546875,46.845703125,15.46875,55.634765625&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can put a shell script into &amp;lt;tt&amp;gt;/usr/local/bin/update-maps&amp;lt;/tt&amp;gt;&lt;br /&gt;
  #!/bin/sh&lt;br /&gt;
  echo &amp;quot;Update OpenstreetMaps&amp;quot;&lt;br /&gt;
  echo &amp;quot;---------------------&amp;quot;&lt;br /&gt;
  echo &amp;quot;  download and store OSM maps on /media/card/maps&amp;quot;&lt;br /&gt;
  wget -O /media/card/maps/germany.bin http://maps.navit-project.org/api/map/?bbox=5.185546875,46.845703125,15.46875,55.634765625&lt;br /&gt;
  echo &amp;quot;update germany.bin finished&amp;quot;&lt;br /&gt;
You have to make the script executable with:&lt;br /&gt;
  chmod u+x /usr/local/bin/update-maps&lt;br /&gt;
Create a maps-directory (e.g. with path &amp;lt;tt&amp;gt;/media/card/maps/&amp;lt;/tt&amp;gt;) on your SD-card:&lt;br /&gt;
  mkdir /media/card/maps/&lt;br /&gt;
Then you can update with this script all your maps on the SD-card if you have internet connection:&lt;br /&gt;
  update-maps&lt;br /&gt;
* Here's an example to get the maps for the area around Seattle, WA:&lt;br /&gt;
** Find the map coordinates using http://informationfreeway.org/?lat=47.520270037501454&amp;amp;lon=-122.20130713167327&amp;amp;zoom=9&amp;amp;layers=B000F000&lt;br /&gt;
** 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):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;wget -O map1.osm http://www.openstreetmap.org/api/0.5/map?bbox=-122.2,47.5,-122,47.7&lt;br /&gt;
wget -O map2.osm http://www.openstreetmap.org/api/0.5/map?bbox=-122.4,47.5,-122.2,47.7&lt;br /&gt;
wget -O map3.osm http://www.openstreetmap.org/api/0.5/map?bbox=-122.4,47.3,-122.2,47.5&lt;br /&gt;
wget -O map4.osm http://www.openstreetmap.org/api/0.5/map?bbox=-122.2,47.3,-122,47.5&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* 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:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;cat *.osm | osm2navit --dedupe-ways mymap.bin&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Copy the map to the NEO===&lt;br /&gt;
To copy the map using scp (replace ''/directory'' as is appropriate in the following):&lt;br /&gt;
&amp;lt;pre&amp;gt;scp mymap.bin root@neo:/directory&amp;lt;/pre&amp;gt;&lt;br /&gt;
If you copy the map &amp;lt;tt&amp;gt;germany.bin&amp;lt;/tt&amp;gt; to the SD card on the Neo use e.g. in the directory &amp;lt;tt&amp;gt;maps&amp;lt;/tt&amp;gt;:&lt;br /&gt;
  scp germany.bin root@neo:/media/card/maps&lt;br /&gt;
Once it's somewhere on the NEO, Navit needs to know that it's there.&lt;br /&gt;
&amp;lt;pre&amp;gt;mkdir ~/.navit&lt;br /&gt;
cp /usr/share/navit/navit.xml ~/.navit/navit.xml&lt;br /&gt;
vi ~/.navit/navit.xml&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
note that in some version navit includes other xml files from /usr/share/navit, for instance mapsets are now defined in maps.xml.&lt;br /&gt;
&lt;br /&gt;
===Enable Maps in  Navit ===&lt;br /&gt;
Now you must let Navit know the maps you want to use. Several disabled mapset-tags are predefined. &lt;br /&gt;
In the navit.xml file, put the following into a new &amp;lt;mapset&amp;gt; section (and disable the default &amp;lt;mapset&amp;gt; just above - or else it will not work):&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;map type=&amp;quot;binfile&amp;quot; enabled=&amp;quot;yes&amp;quot; data=&amp;quot;/directory&amp;quot; /&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
For example with a &amp;lt;tt&amp;gt;germany.bin&amp;lt;/tt&amp;gt; on the SD-card you use:&lt;br /&gt;
 &amp;lt;mapset enabled=&amp;quot;yes&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;map type=&amp;quot;binfile&amp;quot; enabled=&amp;quot;yes&amp;quot; data=&amp;quot;/media/card/maps/germany.bin&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;/mapset&amp;gt;&lt;br /&gt;
or if you store all downloaded maps in the directory &amp;lt;tt&amp;gt;/media/card/maps&amp;lt;/tt&amp;gt; then add the following lines to &amp;lt;tt&amp;gt;navit.xml&amp;lt;/tt&amp;gt;.&lt;br /&gt;
 &amp;lt;mapset enabled=&amp;quot;yes&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;map type=&amp;quot;binfile&amp;quot; enabled=&amp;quot;yes&amp;quot; data=&amp;quot;/media/card/maps/*.bin&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;/mapset&amp;gt;&lt;br /&gt;
{{Note|this will only load the first map that machtes *.bin (its a bug/feature)!}}&lt;br /&gt;
{{Note|that the bin-file and the map set both have to be enabled}}&lt;br /&gt;
&lt;br /&gt;
Disable unused mapset sections by setting enabled to &amp;lt;tt&amp;gt;no&amp;lt;/tt&amp;gt;, e.g. the pre-installed sample maps at line 370 in &amp;lt;tt&amp;gt;navit.xml&amp;lt;/tt&amp;gt;.&lt;br /&gt;
 &amp;lt;mapset enabled=&amp;quot;no&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xi:include href=&amp;quot;$NAVIT_SHAREDIR/maps/*.xml&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;/mapset&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Run navit&lt;br /&gt;
** Start [[gllin]] (for GTA01)&lt;br /&gt;
** Start [[gpsd]] ( gpsd /tmp/nmeaNP )&lt;br /&gt;
** Start navit&lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
===Tips and Tricks===&lt;br /&gt;
====Center on Vehicle====&lt;br /&gt;
Navit supports a &amp;quot;always center on vehicle&amp;quot; option. &lt;br /&gt;
&lt;br /&gt;
To activate this add&lt;br /&gt;
 follow=&amp;quot;3&amp;quot;&lt;br /&gt;
to the &amp;lt;tt&amp;gt;vehicle&amp;lt;/tt&amp;gt; tag in navit.xml. &lt;br /&gt;
   &amp;lt;vehicle name=&amp;quot;Local GPS&amp;quot; profilename=&amp;quot;car&amp;quot; enabled=&amp;quot;yes&amp;quot; active=&amp;quot;1&amp;quot; follow=&amp;quot;3&amp;quot; &lt;br /&gt;
           source=&amp;quot;gpsd://localhost&amp;quot; gpsd_query=&amp;quot;w+xj&amp;quot; color=&amp;quot;#0000ff&amp;quot;&amp;gt;&lt;br /&gt;
The &amp;quot;3&amp;quot; causes to give the gui time to do something between the repaints (drag the map or browse the menu). When its set to &amp;quot;1&amp;quot; navit does nothing more than repainting the map continuously.&lt;br /&gt;
&lt;br /&gt;
==Routing==&lt;br /&gt;
[[Image:navit_main_menu.png|100px|thumb|Navit Main Menu]]&lt;br /&gt;
[[Image:navit_action_menu.png|100px|thumb|Navit Action Menu]]&lt;br /&gt;
The main menu has 4 submenus&lt;br /&gt;
* Action&lt;br /&gt;
* Settings&lt;br /&gt;
* Tools&lt;br /&gt;
* Route&lt;br /&gt;
Normally you would assume the entering a town can be found under the submenu Route, but Town is hidden under submenu Action. Route will provide the description of the route as text and a height profile of your trip. Tools was not working on 08/2009 Version of navit on SHR (see [[SHR User Manual]]).&lt;br /&gt;
&lt;br /&gt;
===Preselect Country of Destination===&lt;br /&gt;
Normally you have to select the the country first before choosing the town and street name. It might be more convenient for you if you preselect the country already with your settings.&lt;br /&gt;
The article [[Configure SHR for German-speaking use]] had a preselection of the country &amp;quot;Austria&amp;quot; in Navit. Adapt the localization for your country and maps in Navit, so that do not need to select the country anymore.&lt;br /&gt;
&lt;br /&gt;
Actually Navit derives the preselected country from the calling environments's locale (see [[Localization]]). Make sure, that LC_ALL ist '''not''' set though. Otherwise navit fails to interprete gpsd output and you end up with strange gps coordinates. When starting from gui (e.g. illume) you can achieve this by supplying an executable script /usr/local/bin/navit which might look like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
#export LANG=xx_YY.UTF-8   # Uncomment this line and replace xx_YY, if &lt;br /&gt;
                           # your gui's locale is not setup accordingly. &lt;br /&gt;
unset LC_ALL&lt;br /&gt;
exec /usr/bin/navit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
So a valid locale environment preselecting search for German cities would look like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@om-gta02 ~ $ locale&lt;br /&gt;
LANG=de_DE.UTF-8&lt;br /&gt;
LC_CTYPE=&amp;quot;de_DE.UTF-8&amp;quot;&lt;br /&gt;
LC_NUMERIC=&amp;quot;de_DE.UTF-8&amp;quot;&lt;br /&gt;
...&lt;br /&gt;
LC_MEASUREMENT=&amp;quot;de_DE.UTF-8&amp;quot;&lt;br /&gt;
LC_IDENTIFICATION=&amp;quot;de_DE.UTF-8&amp;quot;&lt;br /&gt;
LC_ALL=&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note that there's a limited number of [http://wiki.navit-project.org/index.php/OpenStreetMaps#Known_countries_by_osm2navit countries supported by osm2navit] and Navit's search function.&lt;br /&gt;
&lt;br /&gt;
===Select Destination===&lt;br /&gt;
[[Image:navit_select_country.png|100px|thumb|Select Country]]&lt;br /&gt;
&lt;br /&gt;
You can the select your destination in the main menu:&lt;br /&gt;
* via '''Bookmarks''', if you saved the previous location or&lt;br /&gt;
* via '''Town''', if you want to enter a new destination. If you use a destination more frequently, just save the location as bookmark.  &lt;br /&gt;
&lt;br /&gt;
When you click in the main menu on &amp;lt;i&amp;gt;Action&amp;lt;/i&amp;gt; the &amp;lt;i&amp;gt;Action&amp;lt;/i&amp;gt; menu appears with 4 subitems.&lt;br /&gt;
* Bookmarks of previous locations (stored in &amp;lt;tt&amp;gt;/home/root/.navit/destinations.txt&amp;lt;/tt&amp;gt;&lt;br /&gt;
* a globe showing a location as destination,&lt;br /&gt;
* a vehicle that shows the current GPS position of the vehicle. If the freerunner receives no GPS signal the locations of the vehicle is set to 0.0.0N and 0.0.0E. &lt;br /&gt;
* Town is the action to enter a destination.&lt;br /&gt;
* Quit navit is the last action in this submenu.&lt;br /&gt;
&lt;br /&gt;
Select the icon &amp;lt;i&amp;gt;Town&amp;lt;/i&amp;gt; in the main menu (if you see the map, you can get to the main menu just by clicking on the map).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Select Country====&lt;br /&gt;
[[Image:navit_country_selected.png|100px|thumb|Country Options]]&lt;br /&gt;
[[Image:navit_destination_details.png|100px|thumb|Enter Bookmark Details]]&lt;br /&gt;
&lt;br /&gt;
Before you can search for City you have to select a Country. To do that, click on the icon in the left upper corner of the search field (could look like a white square with blue top-left quadrant).&lt;br /&gt;
&lt;br /&gt;
Just type in the first letter of the country (e.g. &amp;quot;G&amp;quot;) and Navit makes suggestions (e.g. Gabon, Germany).&lt;br /&gt;
&lt;br /&gt;
====Enter Town====&lt;br /&gt;
&lt;br /&gt;
When you have selected the country (e.g. Germany) the flag appears and you can select the town.&lt;br /&gt;
Then you can save the town as bookmark and enter more details like streets to the selected town.&lt;br /&gt;
&lt;br /&gt;
The search is still a little buggy.&lt;br /&gt;
&lt;br /&gt;
====Enter Street====&lt;br /&gt;
You can enter the street and streetnumber and save it as bookmark when you use the destination often. &lt;br /&gt;
&lt;br /&gt;
====Bookmarks====&lt;br /&gt;
Navigation and planning of routes with Navit can be organized with bookmarks.&lt;br /&gt;
* set a bookmark as current position &lt;br /&gt;
* set a bookmark as destination&lt;br /&gt;
Then you can see the suggested route in blue on the map. &lt;br /&gt;
&lt;br /&gt;
Bookmarks are stored in:&lt;br /&gt;
  /home/root/.navit/bookmark.txt&lt;br /&gt;
&lt;br /&gt;
The GPS-location (if GPS-signal is available) will be highlighted with a small blue circle. The color of the circle can be defined via editing the &amp;lt;tt&amp;gt;navit.xml&amp;lt;/tt&amp;gt; (see [http://wiki.openmoko.org/wiki/Navit#Set_Cursor_Color select cursor color]).&lt;br /&gt;
* a dot in the blue circle is indicating that your are not moving,&lt;br /&gt;
* an arrowhead is indicating the direction, when you are moving.&lt;br /&gt;
Then routing can start and in the map the route is highlighted.&lt;br /&gt;
&lt;br /&gt;
====Screenshots in Navit Documentation====&lt;br /&gt;
The screenshots are made with &amp;lt;tt&amp;gt;gpe-scap&amp;lt;/tt&amp;gt;, that can be installed by:&lt;br /&gt;
  opkg install gpe-scap&lt;br /&gt;
if not installed already. Navigation through your installed application navit and login via ssh on your Freerunner &lt;br /&gt;
  ssh -l root 192.168.0.202&lt;br /&gt;
assuming that your Freerunner has the IP 192.168.0.202.&lt;br /&gt;
Any time you want to make a screenshot just start via your desktop computer &lt;br /&gt;
  gpe-scap&lt;br /&gt;
and save the screenshot to you freerunner.&lt;br /&gt;
Download the screenshot to your desktop computer with&lt;br /&gt;
  desktop# sftp://root@192.168.0.202&lt;br /&gt;
&lt;br /&gt;
== News ==&lt;br /&gt;
A deeper look into configuring Navit can be found in the [http://wiki.navit-project.org/index.php/Configuring_Navit Navit-Wiki].&lt;br /&gt;
&lt;br /&gt;
=== Getting the display right ===&lt;br /&gt;
&lt;br /&gt;
If using SHR the keyboard in country/town/street search mode does not fit on the street, make sure your gui configuration is set to the following line:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;gui type=&amp;quot;internal&amp;quot; font_size=&amp;quot;350&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The example line provided for freerunners hides some important icons. Namely, instead of typing your city name first, you will first have to click the button on the top left, to go into country search mode. Enter your country name, then the city name, in order to enable the search function. This requires your map data to be searchable.&lt;br /&gt;
&lt;br /&gt;
You can start in fullscreen mode with fullscreen=&amp;quot;1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;gui type=&amp;quot;internal&amp;quot; font_size=&amp;quot;350&amp;quot; fullscreen=&amp;quot;1&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you want to enable &amp;quot;+&amp;quot; and &amp;quot;-&amp;quot; as Zoom-In and Zoom-Out buttons on the bottom of the map enable the button with the following xml-tags:&lt;br /&gt;
 &amp;lt;osd enabled=&amp;quot;yes&amp;quot; type=&amp;quot;button&amp;quot; x=&amp;quot;-96&amp;quot; y=&amp;quot;-96&amp;quot; command=&amp;quot;zoom_in()&amp;quot;  src=&amp;quot;zoom_in.xpm&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;osd enabled=&amp;quot;yes&amp;quot; type=&amp;quot;button&amp;quot; x=&amp;quot;0&amp;quot;   y=&amp;quot;-96&amp;quot; command=&amp;quot;zoom_out()&amp;quot; src=&amp;quot;zoom_out.xpm&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can find sample Layouts here:&lt;br /&gt;
[http://wiki.navit-project.org/index.php/OSD_Layouts Sample Layouts from navit-wiki]&lt;br /&gt;
&lt;br /&gt;
=== Set Cursor Color ===&lt;br /&gt;
[[Image:red_cursor.png|90px|thumb|Red Cursor]]&lt;br /&gt;
If you navigate, the route is marked in blue color on the map. The current position of the vehicle is displayed by a blue circle. The circle is sometimes difficult to see on the blue track. If you want to change the color, size  of the vehicle cursor edit the vehicle XML-environment in navit.xml (e.g. replace blue color #0000FF with red color #FF0000 -- for details of  [http://html-color-codes.info Color Codes] select color, copy and paste code in &amp;lt;tt&amp;gt;navit.xml&amp;lt;/tt&amp;gt;)  &lt;br /&gt;
&lt;br /&gt;
     &amp;lt;vehicle name=&amp;quot;Local GPS&amp;quot; profilename=&amp;quot;car&amp;quot; enabled=&amp;quot;yes&amp;quot; active=&amp;quot;1&amp;quot; source=&amp;quot;gpsd://localhost&amp;quot; gpsd_query=&amp;quot;w+xj&amp;quot; color=&amp;quot;#0000ff&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;!-- Navit can write a tracklog in several formats (gpx, nmea or textfile): --&amp;gt;&lt;br /&gt;
        &amp;lt;!-- &amp;lt;log type=&amp;quot;gpx&amp;quot; data=&amp;quot;track_%Y%m%d-%i.gpx&amp;quot; flush_size=&amp;quot;1000&amp;quot; flush_time=&amp;quot;30&amp;quot;/&amp;gt; --&amp;gt;&lt;br /&gt;
            &amp;lt;cursor w=&amp;quot;56&amp;quot; h=&amp;quot;56&amp;quot;&amp;gt;&lt;br /&gt;
               &amp;lt;!-- tag defines the circle for the cursor --&amp;gt;&lt;br /&gt;
                &amp;lt;itemgra&amp;gt;&lt;br /&gt;
                    &amp;lt;circle color=&amp;quot;#ff0000&amp;quot; radius=&amp;quot;42&amp;quot; width=&amp;quot;6&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;0&amp;quot; y=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/circle&amp;gt;&lt;br /&gt;
                   &amp;lt;circle color=&amp;quot;#ffffff&amp;quot; radius=&amp;quot;48&amp;quot; width=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;0&amp;quot; y=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/circle&amp;gt;&lt;br /&gt;
                   &amp;lt;circle color=&amp;quot;#ffffff&amp;quot; radius=&amp;quot;36&amp;quot; width=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;0&amp;quot; y=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/circle&amp;gt;&lt;br /&gt;
                &amp;lt;/itemgra&amp;gt;&lt;br /&gt;
               &amp;lt;!-- tag defines the dot when the vehicle is not moving --&amp;gt;&lt;br /&gt;
                &amp;lt;itemgra speed_range=&amp;quot;-2&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;polyline color=&amp;quot;#ff0000&amp;quot; width=&amp;quot;6&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;1&amp;quot; y=&amp;quot;1&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;1&amp;quot; y=&amp;quot;-1&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;-1&amp;quot; y=&amp;quot;-1&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;-1&amp;quot; y=&amp;quot;-1&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/polyline&amp;gt;&lt;br /&gt;
                  &amp;lt;circle color=&amp;quot;#ffffff&amp;quot; radius=&amp;quot;9&amp;quot; width=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;0&amp;quot; y=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/circle&amp;gt;&lt;br /&gt;
                &amp;lt;/itemgra&amp;gt;&lt;br /&gt;
                &amp;lt;!-- This itemgra-tag defines the arrow when the vehicle moves --&amp;gt;&lt;br /&gt;
                &amp;lt;itemgra speed_range=&amp;quot;3-&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;polyline color=&amp;quot;#ff0000&amp;quot; width=&amp;quot;6&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;-7&amp;quot; y=&amp;quot;-10&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;0&amp;quot; y=&amp;quot;12&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;7&amp;quot; y=&amp;quot;-10&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/polyline&amp;gt;&lt;br /&gt;
                  &amp;lt;polyline color=&amp;quot;#ffffff&amp;quot; width=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;+10&amp;quot; y=&amp;quot;-10&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;3&amp;quot; y=&amp;quot;15&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/polyline&amp;gt;&lt;br /&gt;
                    &amp;lt;polyline color=&amp;quot;#ffffff&amp;quot; width=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;-10&amp;quot; y=&amp;quot;-10&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;-3&amp;quot; y=&amp;quot;15&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/polyline&amp;gt;&lt;br /&gt;
                &amp;lt;/itemgra&amp;gt;&lt;br /&gt;
        &amp;lt;/cursor&amp;gt;&lt;br /&gt;
    &amp;lt;/vehicle&amp;gt;&lt;br /&gt;
The following screenshot show Navit with a red cursor on a blue track:&lt;br /&gt;
&lt;br /&gt;
[[Image:navit_color_cursor.png|200px|thumb|Red Cursor Color on blue track - vehicle not moving]]&lt;br /&gt;
&lt;br /&gt;
=== Speech ===&lt;br /&gt;
Navit can speak if you install [http://espeak.sourceforge.net/ eSpeak] + [http://www.freebsoft.org/speechd speech-dispatcher] and updates your navit.xml file.&lt;br /&gt;
&lt;br /&gt;
If you want navit using your language, and setting LC_MESSAGES fails due to missing glibc locale, set the enviroment variable LANGUAGE. For instance running&lt;br /&gt;
  LANGUAGE=de navit&lt;br /&gt;
will set the ui and output to german.&lt;br /&gt;
&lt;br /&gt;
For SHR there is a big german localization patch see [[Configure SHR for German-speaking use]].&lt;br /&gt;
&lt;br /&gt;
One way to configure speech output:&lt;br /&gt;
&lt;br /&gt;
* mokoTTS aims to integrate these packages in OM:&lt;br /&gt;
http://projects.openmoko.org/projects/mokotts/&lt;br /&gt;
&lt;br /&gt;
install espeak, dotconf, and then speech-dispatcher.&lt;br /&gt;
note: running 2008.8 updating from zecke's &amp;quot;testing&amp;quot; repo does not require &amp;quot;dotconf&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Speech Language ====&lt;br /&gt;
To change the speech tag in navit.xml:&lt;br /&gt;
  &amp;lt;speech type=&amp;quot;cmdline&amp;quot; data=&amp;quot;spd-say '%s'&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;'''spd-say -l fr '%s''''&amp;quot; for using the French voice for example.&lt;br /&gt;
* &amp;quot;'''spd-say -l de '%s''''&amp;quot; for using the German voice for example.&lt;br /&gt;
&lt;br /&gt;
{{Note|You can check speech dispatcher output from the shell.}}&lt;br /&gt;
Example for German:&lt;br /&gt;
  spd-say --language=de &amp;quot;Dies ist die Winterstraße 23&amp;quot;&lt;br /&gt;
The speech-dispatcher is blocking the audio after suspend. So after a suspend you will hear no ringtone, when a phone call is coming in and you cannot listen do audio files.&lt;br /&gt;
A solution is to disable starting of speech-dispatcher with:&lt;br /&gt;
  update-rc.d -f speech-dispatcher remove&lt;br /&gt;
Then the speech-dispatcher should be started if and only if navit is running and shut down when navit is closed.&lt;br /&gt;
&lt;br /&gt;
Furthermore navit should be started indirect with a script &amp;lt;tt&amp;gt;navit.sh&amp;lt;/tt&amp;gt; instead of a direct start with the binary located in &amp;lt;tt&amp;gt;/usr/bin/navit&amp;lt;/tt&amp;gt;. The script &amp;lt;tt&amp;gt;navit.sh&amp;lt;/tt&amp;gt; listed below starts speech-dispatcher before navit, and stops it afterwards. See http://lists.openmoko.org/nabble.html#nabble-td1088795&lt;br /&gt;
&lt;br /&gt;
The following script is doing the suggested procedure. This script includes a language fix for Austria (see [[Configure SHR for German-speaking use]]).&lt;br /&gt;
  export LANG=de_AT.utf8&lt;br /&gt;
Replace '''&amp;lt;tt&amp;gt;de_AT&amp;lt;/tt&amp;gt;''' in this line with the appropriate language variable in the following script &amp;lt;tt&amp;gt;navit.sh&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&amp;lt;pre&amp;gt;Hallo Patsy,spd-say -l de '%s'&lt;br /&gt;
#! /bin/sh&lt;br /&gt;
#&lt;br /&gt;
# Copyright Matthias Hentges &amp;lt;devel@hentges.net&amp;gt; (c) 2008&lt;br /&gt;
# License: GPL (see http://www.gnu.org/licenses/gpl.txt for a copy of the license)&lt;br /&gt;
#&lt;br /&gt;
# Filename: navit.sh&lt;br /&gt;
# Date: 20080105 (YMD)&lt;br /&gt;
#&lt;br /&gt;
#################################################################################&lt;br /&gt;
#&lt;br /&gt;
# 20080105 - v0.0.1	- Initial release&lt;br /&gt;
# 20090818 -            - Zoff &amp;lt;zoff@zoff.cc&amp;gt; addons and fixes&lt;br /&gt;
#&lt;br /&gt;
#&lt;br /&gt;
#################################################################################&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#################################################################################&lt;br /&gt;
#&lt;br /&gt;
# On devices with low memory (&amp;lt; 512Mb?) Navit will segfault on start.&lt;br /&gt;
# This can be worked around by doing&lt;br /&gt;
# &amp;quot;echo 1 &amp;gt; /proc/sys/vm/overcommit_memory&amp;quot;&lt;br /&gt;
#&lt;br /&gt;
#################################################################################&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
. /etc/profile&lt;br /&gt;
&lt;br /&gt;
set|grep LC&lt;br /&gt;
&lt;br /&gt;
#### Stop the speech dispatcher ####&lt;br /&gt;
/etc/init.d/speech-dispatcher stop&lt;br /&gt;
&lt;br /&gt;
#### Language Fix #################&lt;br /&gt;
set|grep LC&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
export LC_ALL=''&lt;br /&gt;
unset LC_ALL&lt;br /&gt;
export LANG=de_AT.utf8&lt;br /&gt;
&lt;br /&gt;
set|grep LC&lt;br /&gt;
&lt;br /&gt;
#### Start the speech dispatcher ####&lt;br /&gt;
/etc/init.d/speech-dispatcher start &amp;amp;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
set|grep LC&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# need cpu and display&lt;br /&gt;
mdbus -s org.freesmartphone.ousaged /org/freesmartphone/Usage org.freesmartphone.Usage.SetResourcePolicy Display enabled&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if test &amp;quot;`cat /proc/meminfo | grep ^MemTotal | awk '{print $2}'`&amp;quot; -lt &amp;quot;500000&amp;quot;&lt;br /&gt;
then&lt;br /&gt;
	if test &amp;quot;$USER&amp;quot; = &amp;quot;root&amp;quot;&lt;br /&gt;
	then&lt;br /&gt;
		echo &amp;quot;Enabling low-mem workaround...&amp;quot;&lt;br /&gt;
		echo 1 &amp;gt; /proc/sys/vm/overcommit_memory&lt;br /&gt;
	else&lt;br /&gt;
		echo &amp;quot;I need root-privs to enable the low-mem workaround!&amp;quot;&lt;br /&gt;
	fi&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
######### Start NAVIT NOW ############&lt;br /&gt;
&lt;br /&gt;
navit $*&lt;br /&gt;
	&lt;br /&gt;
#### Stop the speech dispatcher ####&lt;br /&gt;
&lt;br /&gt;
/etc/init.d/speech-dispatcher stop&lt;br /&gt;
&lt;br /&gt;
# release cpu and display&lt;br /&gt;
mdbus -s org.freesmartphone.ousaged /org/freesmartphone/Usage org.freesmartphone.Usage.SetResourcePolicy Display auto&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Save the &amp;lt;tt&amp;gt;navit.sh&amp;lt;/tt&amp;gt; script in:&lt;br /&gt;
  /usr/bin/navit.sh&lt;br /&gt;
Make the script executable:&lt;br /&gt;
  chmod u+x /usr/bin/navit.sh&lt;br /&gt;
Now you have to edit the desktop icon, so that it starts this script &amp;lt;tt&amp;gt;navit.sh&amp;lt;/tt&amp;gt; instead of the binary &amp;lt;tt&amp;gt;/usr/bin/navit&amp;lt;/tt&amp;gt;.&lt;br /&gt;
  nano /usr/share/applications/navit.desktop&lt;br /&gt;
Edit the line with &amp;lt;tt&amp;gt;Exec=...&amp;lt;/tt&amp;gt;, so that it starts the script &amp;lt;tt&amp;gt;navit.sh&amp;lt;/tt&amp;gt; instead of the navit binary.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[Desktop Entry]&lt;br /&gt;
Version=1.0&lt;br /&gt;
Name=Navit&lt;br /&gt;
Name[de]=Navit&lt;br /&gt;
Name[fr]=Navit&lt;br /&gt;
Comment=The open source vector based navigation program with routing engine&lt;br /&gt;
Comment[de]=Ein vektorbasiertes Navigationsprogramm&lt;br /&gt;
Comment[fr]=Le logiciel opensource de navigation vectorielle&lt;br /&gt;
Exec=/usr/bin/navit.sh&lt;br /&gt;
Icon=navit&lt;br /&gt;
StartupNotify=true&lt;br /&gt;
Terminal=false&lt;br /&gt;
Type=Application&lt;br /&gt;
Categories=GTK;Utility;Geography;&lt;br /&gt;
GenericName=Navit&lt;br /&gt;
GenericName[de]=Navit&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Alternatively''', you can make speech-dispatcher restart on resume, see http://trac.shr-project.org/trac/ticket/494&lt;br /&gt;
&lt;br /&gt;
=== Script to download OSM maps ===&lt;br /&gt;
[[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&lt;br /&gt;
dlOSM.sh &amp;lt;minimum latitude&amp;gt; &amp;lt;maximum latitude&amp;gt; &amp;lt;minimum longitude&amp;gt; &amp;lt;maximum longitude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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...&lt;br /&gt;
&lt;br /&gt;
dlOSM.sh:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/usr/bin/python&lt;br /&gt;
&lt;br /&gt;
import os&lt;br /&gt;
import sys&lt;br /&gt;
#import math&lt;br /&gt;
&lt;br /&gt;
def doIt(cmd):&lt;br /&gt;
  os.system(cmd)&lt;br /&gt;
&lt;br /&gt;
def getOsms(basename, minLat, maxLat, minLon, maxLon):&lt;br /&gt;
  '''basename - base name of map, maps are named {basename}{count}.osm&lt;br /&gt;
  minLat - latitude of the west side of the map&lt;br /&gt;
  maxLat - latitude of the east side of the map&lt;br /&gt;
  minLon - longitude of the north side of the map&lt;br /&gt;
  maxLon - longitude of the south side of the map'''&lt;br /&gt;
&lt;br /&gt;
  wgetCmdTemplate = 'wget -O %s%s.osm http://api.openstreetmap.org/api/0.6/map?bbox=%s,%s,%s,%s'&lt;br /&gt;
&lt;br /&gt;
  currLat = minLat&lt;br /&gt;
  mapCount = 0&lt;br /&gt;
  while currLat &amp;lt; maxLat:&lt;br /&gt;
    nextLat = min(currLat + 0.1, maxLat)&lt;br /&gt;
&lt;br /&gt;
    currLon = minLon&lt;br /&gt;
    while currLon &amp;lt; maxLon:&lt;br /&gt;
      nextLon = min(currLon + 0.1, maxLon)&lt;br /&gt;
&lt;br /&gt;
      doIt(wgetCmdTemplate % (basename, mapCount, currLon, currLat, nextLon, nextLat))&lt;br /&gt;
&lt;br /&gt;
      currLon = nextLon&lt;br /&gt;
      mapCount = mapCount + 1&lt;br /&gt;
&lt;br /&gt;
    currLat = nextLat&lt;br /&gt;
&lt;br /&gt;
(minLat, maxLat, minLon, maxLon) = map(float, sys.argv[1:])&lt;br /&gt;
getOsms('map', minLat, maxLat, minLon, maxLon)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;onlyinclude&amp;gt;&lt;br /&gt;
{{ApplicationBox|&lt;br /&gt;
Name=[[Navit]]|&lt;br /&gt;
Description=Navit is a car navigation system with routing engine.|&lt;br /&gt;
Screenshot=Screenshot-3.png|&lt;br /&gt;
Homepage=http://navit.sourceforge.net|&lt;br /&gt;
TestedOn=|&lt;br /&gt;
PackageName=&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:GPS Applications]]&lt;/div&gt;</summary>
		<author><name>Niebert</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Navit</id>
		<title>Navit</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Navit"/>
				<updated>2010-12-28T13:28:27Z</updated>
		
		<summary type="html">&lt;p&gt;Niebert: /* Speech Language */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Application|Navit}}&lt;br /&gt;
&lt;br /&gt;
As described on the [http://navit.sourceforge.net/ Navit home page],&lt;br /&gt;
&lt;br /&gt;
&amp;lt;i&amp;gt;&amp;quot;'''Navit''' is a car navigation system with routing engine.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
The current vehicle position is either read from gpsd or directly from NMEA GPS sensors.&amp;quot;&amp;lt;/i&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Some people say Navit is also a good choice for pedestrian and bicycle navigation.&lt;br /&gt;
&lt;br /&gt;
[[Image:Navit-2241.png|thumb|Navit-r2241]]&lt;br /&gt;
&lt;br /&gt;
== Acknowledgment ==&lt;br /&gt;
&lt;br /&gt;
Thanks to [[User:Alessandro | Alessandro]], stefan_schmidt, cp15 and all Navit developers I have done a small (&amp;quot;not really working&amp;quot;) preview of Navit on Neo1973 at [http://www.telemobilityforum.com/eng/ Telemobility Forum 2007]. Thanks to [http://gfoss.it GFoss] guys to invite me.&lt;br /&gt;
''[[User:Tyrael | Tyrael]]''&lt;br /&gt;
&lt;br /&gt;
==Setting up Navit==&lt;br /&gt;
&lt;br /&gt;
===Install Navit===&lt;br /&gt;
&lt;br /&gt;
==== Map Size ====&lt;br /&gt;
Of you use e.g. entire Germany in an rectangle form it will have more than 500MB.&lt;br /&gt;
Navit on FR works with maps in the size of less that 350MB. So split the larger areas in portions with a smaller size than 350MB. Otherwise Navit will not be able to process the maps.&lt;br /&gt;
&lt;br /&gt;
Change navit.xml to modify the used map bin-file, e.g. germany1.bin to germany2.bin&lt;br /&gt;
&lt;br /&gt;
==== Navit on FSO (OM2008.x,SHR,...) ====&lt;br /&gt;
&lt;br /&gt;
You can now simply add a feed from there : http://download.navit-project.org/navit/openmoko/svn/&lt;br /&gt;
&lt;br /&gt;
Essentially, to enable this directory as [[Om_2008.8_Installer#How to add a Repository ?|feed]] and install or update navit do:&lt;br /&gt;
* Only for the first time:&lt;br /&gt;
 echo src navit http://download.navit-project.org/navit/openmoko/svn &amp;gt; /etc/opkg/navit-feed.conf&lt;br /&gt;
 opkg update&lt;br /&gt;
&lt;br /&gt;
* Always:&lt;br /&gt;
 opkg install navit&lt;br /&gt;
&lt;br /&gt;
Navit will be auto-updated when you run opkg upgrade later&lt;br /&gt;
&lt;br /&gt;
Navit might not be able to use gpsd at startup:&lt;br /&gt;
 navit:plugin_load:can't load '/usr/lib/navit/vehicle/&lt;br /&gt;
 libvehicle_gpsd.so', Error 'libgps.so.16: cannot open shared object  &lt;br /&gt;
 file: No such file or directory'&lt;br /&gt;
 navit:vehicle_new:invalid type 'gpsd'&lt;br /&gt;
&lt;br /&gt;
to solve this issue (necessary for SHR):&lt;br /&gt;
&lt;br /&gt;
 opkg install libgps17&lt;br /&gt;
 ln -s /usr/lib/libgps.so.17 /usr/lib/libgps.so.16&lt;br /&gt;
&lt;br /&gt;
====Navit on Debian====&lt;br /&gt;
Navit is now in Debian [http://packages.debian.org/source/testing/navit testing] and [http://packages.debian.org/source/unstable/navit unstable].&lt;br /&gt;
&lt;br /&gt;
Add the following line to &amp;lt;tt&amp;gt;/etc/apt/sources.list&amp;lt;/tt&amp;gt; with e.g. editor &amp;lt;tt&amp;gt;vi&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;nano&amp;lt;/tt&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
     deb http://ftp.de.debian.org/debian unstable main&lt;br /&gt;
&lt;br /&gt;
Then update with apt-get:&lt;br /&gt;
&lt;br /&gt;
     apt-get update&lt;br /&gt;
&lt;br /&gt;
The up-to-date source package is available through git at '''git://git.debian.org/git/collab-maint/navit.git''' ([http://git.debian.org/?p=collab-maint/navit.git;a=summary browse]).&lt;br /&gt;
&lt;br /&gt;
====Navit on Android====&lt;br /&gt;
Download current version [http://download.navit-project.org/navit/android_armv4t/svn/ navit-current.apk] on your Android. See [[Android usage]] for installing Apps on your [http://code.google.com/p/android-on-freerunner/wiki/Applications Android on Freerunner].&lt;br /&gt;
&lt;br /&gt;
   see [http://wiki.navit-project.org/index.php/Navit_on_Android Navit on Android] Navit Project Wiki&lt;br /&gt;
&lt;br /&gt;
You can use one download map which you have to copy on the FAT32 partition of your SD card as '''&amp;lt;tt&amp;gt;navitmap.bin&amp;lt;/tt&amp;gt;'''. &lt;br /&gt;
&lt;br /&gt;
During first use after installation, navit for android will ask you, if you want to intall [http://espeak.sourceforge.net/ TTS] (Text to Speech [http://www.speech.cs.cmu.edu/flite/ festival-lite]). If you decide to install TTS then Navit crashes (with version [http://download.navit-project.org/navit/android_armv4t/svn/ navit-svn-3495.apk]).&lt;br /&gt;
&lt;br /&gt;
====Navit on QtMoko====&lt;br /&gt;
You can find some information for installing Navit in the [[QtMoko]] article.&lt;br /&gt;
&lt;br /&gt;
===Set up the maps you want===&lt;br /&gt;
&lt;br /&gt;
====The Easy Way====&lt;br /&gt;
Use [http://maps.navit-project.org/download/ Navit Map Extractor] based on [http://www.openstreetmap.org OpenStreetMap].  Navigate to the region you want, and click &amp;quot;select&amp;quot; to select region, select the area you want, then click download. [[Image:osmdownload.jpg|200px|thumb|Download OpenStreetMaps]] &lt;br /&gt;
&lt;br /&gt;
If you just want the entire planet (as of this writing, ~1.8 GB), it's [http://maps.navit-project.org/planet.bin here].&lt;br /&gt;
&lt;br /&gt;
[http://downloads.cloudmade.com/ CloudMade] also has up-to-date maps from OpenStreetMap by country (by state in the US).&lt;br /&gt;
&lt;br /&gt;
{{Note|Be aware of the map size that can be used on your FR (On Android working with map sizes less than 350MB is O.K. on SHR 450MB also work, so SHR may not have a map size limit)}}&lt;br /&gt;
&lt;br /&gt;
====From the command line====&lt;br /&gt;
'''OpenStreetMap''' - follow directions at http://wiki.navit-project.org/index.php/OpenStreetMaps&lt;br /&gt;
* There are some pre-processed, up-to-date maps that can be grabbed with wget:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;wget -O germany.bin http://maps.navit-project.org/api/map/?bbox=5.185546875,46.845703125,15.46875,55.634765625&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can put a shell script into &amp;lt;tt&amp;gt;/usr/local/bin/update-maps&amp;lt;/tt&amp;gt;&lt;br /&gt;
  #!/bin/sh&lt;br /&gt;
  echo &amp;quot;Update OpenstreetMaps&amp;quot;&lt;br /&gt;
  echo &amp;quot;---------------------&amp;quot;&lt;br /&gt;
  echo &amp;quot;  download and store OSM maps on /media/card/maps&amp;quot;&lt;br /&gt;
  wget -O /media/card/maps/germany.bin http://maps.navit-project.org/api/map/?bbox=5.185546875,46.845703125,15.46875,55.634765625&lt;br /&gt;
  echo &amp;quot;update germany.bin finished&amp;quot;&lt;br /&gt;
You have to make the script executable with:&lt;br /&gt;
  chmod u+x /usr/local/bin/update-maps&lt;br /&gt;
Create a maps-directory (e.g. with path &amp;lt;tt&amp;gt;/media/card/maps/&amp;lt;/tt&amp;gt;) on your SD-card:&lt;br /&gt;
  mkdir /media/card/maps/&lt;br /&gt;
Then you can update with this script all your maps on the SD-card if you have internet connection:&lt;br /&gt;
  update-maps&lt;br /&gt;
* Here's an example to get the maps for the area around Seattle, WA:&lt;br /&gt;
** Find the map coordinates using http://informationfreeway.org/?lat=47.520270037501454&amp;amp;lon=-122.20130713167327&amp;amp;zoom=9&amp;amp;layers=B000F000&lt;br /&gt;
** 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):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;wget -O map1.osm http://www.openstreetmap.org/api/0.5/map?bbox=-122.2,47.5,-122,47.7&lt;br /&gt;
wget -O map2.osm http://www.openstreetmap.org/api/0.5/map?bbox=-122.4,47.5,-122.2,47.7&lt;br /&gt;
wget -O map3.osm http://www.openstreetmap.org/api/0.5/map?bbox=-122.4,47.3,-122.2,47.5&lt;br /&gt;
wget -O map4.osm http://www.openstreetmap.org/api/0.5/map?bbox=-122.2,47.3,-122,47.5&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* 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:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;cat *.osm | osm2navit --dedupe-ways mymap.bin&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Copy the map to the NEO===&lt;br /&gt;
To copy the map using scp (replace ''/directory'' as is appropriate in the following):&lt;br /&gt;
&amp;lt;pre&amp;gt;scp mymap.bin root@neo:/directory&amp;lt;/pre&amp;gt;&lt;br /&gt;
If you copy the map &amp;lt;tt&amp;gt;germany.bin&amp;lt;/tt&amp;gt; to the SD card on the Neo use e.g. in the directory &amp;lt;tt&amp;gt;maps&amp;lt;/tt&amp;gt;:&lt;br /&gt;
  scp germany.bin root@neo:/media/card/maps&lt;br /&gt;
Once it's somewhere on the NEO, Navit needs to know that it's there.&lt;br /&gt;
&amp;lt;pre&amp;gt;mkdir ~/.navit&lt;br /&gt;
cp /usr/share/navit/navit.xml ~/.navit/navit.xml&lt;br /&gt;
vi ~/.navit/navit.xml&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
note that in some version navit includes other xml files from /usr/share/navit, for instance mapsets are now defined in maps.xml.&lt;br /&gt;
&lt;br /&gt;
===Enable Maps in  Navit ===&lt;br /&gt;
Now you must let Navit know the maps you want to use. Several disabled mapset-tags are predefined. &lt;br /&gt;
In the navit.xml file, put the following into a new &amp;lt;mapset&amp;gt; section (and disable the default &amp;lt;mapset&amp;gt; just above - or else it will not work):&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;map type=&amp;quot;binfile&amp;quot; enabled=&amp;quot;yes&amp;quot; data=&amp;quot;/directory&amp;quot; /&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
For example with a &amp;lt;tt&amp;gt;germany.bin&amp;lt;/tt&amp;gt; on the SD-card you use:&lt;br /&gt;
 &amp;lt;mapset enabled=&amp;quot;yes&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;map type=&amp;quot;binfile&amp;quot; enabled=&amp;quot;yes&amp;quot; data=&amp;quot;/media/card/maps/germany.bin&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;/mapset&amp;gt;&lt;br /&gt;
or if you store all downloaded maps in the directory &amp;lt;tt&amp;gt;/media/card/maps&amp;lt;/tt&amp;gt; then add the following lines to &amp;lt;tt&amp;gt;navit.xml&amp;lt;/tt&amp;gt;.&lt;br /&gt;
 &amp;lt;mapset enabled=&amp;quot;yes&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;map type=&amp;quot;binfile&amp;quot; enabled=&amp;quot;yes&amp;quot; data=&amp;quot;/media/card/maps/*.bin&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;/mapset&amp;gt;&lt;br /&gt;
{{Note|this will only load the first map that machtes *.bin (its a bug/feature)!}}&lt;br /&gt;
{{Note|that the bin-file and the map set both have to be enabled}}&lt;br /&gt;
&lt;br /&gt;
Disable unused mapset sections by setting enabled to &amp;lt;tt&amp;gt;no&amp;lt;/tt&amp;gt;, e.g. the pre-installed sample maps at line 370 in &amp;lt;tt&amp;gt;navit.xml&amp;lt;/tt&amp;gt;.&lt;br /&gt;
 &amp;lt;mapset enabled=&amp;quot;no&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xi:include href=&amp;quot;$NAVIT_SHAREDIR/maps/*.xml&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;/mapset&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Run navit&lt;br /&gt;
** Start [[gllin]] (for GTA01)&lt;br /&gt;
** Start [[gpsd]] ( gpsd /tmp/nmeaNP )&lt;br /&gt;
** Start navit&lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
===Tips and Tricks===&lt;br /&gt;
====Center on Vehicle====&lt;br /&gt;
Navit supports a &amp;quot;always center on vehicle&amp;quot; option. &lt;br /&gt;
&lt;br /&gt;
To activate this add&lt;br /&gt;
 follow=&amp;quot;3&amp;quot;&lt;br /&gt;
to the &amp;lt;tt&amp;gt;vehicle&amp;lt;/tt&amp;gt; tag in navit.xml. &lt;br /&gt;
   &amp;lt;vehicle name=&amp;quot;Local GPS&amp;quot; profilename=&amp;quot;car&amp;quot; enabled=&amp;quot;yes&amp;quot; active=&amp;quot;1&amp;quot; follow=&amp;quot;3&amp;quot; &lt;br /&gt;
           source=&amp;quot;gpsd://localhost&amp;quot; gpsd_query=&amp;quot;w+xj&amp;quot; color=&amp;quot;#0000ff&amp;quot;&amp;gt;&lt;br /&gt;
The &amp;quot;3&amp;quot; causes to give the gui time to do something between the repaints (drag the map or browse the menu). When its set to &amp;quot;1&amp;quot; navit does nothing more than repainting the map continuously.&lt;br /&gt;
&lt;br /&gt;
==Routing==&lt;br /&gt;
[[Image:navit_main_menu.png|100px|thumb|Navit Main Menu]]&lt;br /&gt;
[[Image:navit_action_menu.png|100px|thumb|Navit Action Menu]]&lt;br /&gt;
The main menu has 4 submenus&lt;br /&gt;
* Action&lt;br /&gt;
* Settings&lt;br /&gt;
* Tools&lt;br /&gt;
* Route&lt;br /&gt;
Normally you would assume the entering a town can be found under the submenu Route, but Town is hidden under submenu Action. Route will provide the description of the route as text and a height profile of your trip. Tools was not working on 08/2009 Version of navit on SHR (see [[SHR User Manual]]).&lt;br /&gt;
&lt;br /&gt;
===Preselect Country of Destination===&lt;br /&gt;
Normally you have to select the the country first before choosing the town and street name. It might be more convenient for you if you preselect the country already with your settings.&lt;br /&gt;
The article [[Configure SHR for German-speaking use]] had a preselection of the country &amp;quot;Austria&amp;quot; in Navit. Adapt the localization for your country and maps in Navit, so that do not need to select the country anymore.&lt;br /&gt;
&lt;br /&gt;
Actually Navit derives the preselected country from the calling environments's locale (see [[Localization]]). Make sure, that LC_ALL ist '''not''' set though. Otherwise navit fails to interprete gpsd output and you end up with strange gps coordinates. When starting from gui (e.g. illume) you can achieve this by supplying an executable script /usr/local/bin/navit which might look like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
#export LANG=xx_YY.UTF-8   # Uncomment this line and replace xx_YY, if &lt;br /&gt;
                           # your gui's locale is not setup accordingly. &lt;br /&gt;
unset LC_ALL&lt;br /&gt;
exec /usr/bin/navit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
So a valid locale environment preselecting search for German cities would look like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@om-gta02 ~ $ locale&lt;br /&gt;
LANG=de_DE.UTF-8&lt;br /&gt;
LC_CTYPE=&amp;quot;de_DE.UTF-8&amp;quot;&lt;br /&gt;
LC_NUMERIC=&amp;quot;de_DE.UTF-8&amp;quot;&lt;br /&gt;
...&lt;br /&gt;
LC_MEASUREMENT=&amp;quot;de_DE.UTF-8&amp;quot;&lt;br /&gt;
LC_IDENTIFICATION=&amp;quot;de_DE.UTF-8&amp;quot;&lt;br /&gt;
LC_ALL=&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note that there's a limited number of [http://wiki.navit-project.org/index.php/OpenStreetMaps#Known_countries_by_osm2navit countries supported by osm2navit] and Navit's search function.&lt;br /&gt;
&lt;br /&gt;
===Select Destination===&lt;br /&gt;
[[Image:navit_select_country.png|100px|thumb|Select Country]]&lt;br /&gt;
&lt;br /&gt;
You can the select your destination in the main menu:&lt;br /&gt;
* via '''Bookmarks''', if you saved the previous location or&lt;br /&gt;
* via '''Town''', if you want to enter a new destination. If you use a destination more frequently, just save the location as bookmark.  &lt;br /&gt;
&lt;br /&gt;
When you click in the main menu on &amp;lt;i&amp;gt;Action&amp;lt;/i&amp;gt; the &amp;lt;i&amp;gt;Action&amp;lt;/i&amp;gt; menu appears with 4 subitems.&lt;br /&gt;
* Bookmarks of previous locations (stored in &amp;lt;tt&amp;gt;/home/root/.navit/destinations.txt&amp;lt;/tt&amp;gt;&lt;br /&gt;
* a globe showing a location as destination,&lt;br /&gt;
* a vehicle that shows the current GPS position of the vehicle. If the freerunner receives no GPS signal the locations of the vehicle is set to 0.0.0N and 0.0.0E. &lt;br /&gt;
* Town is the action to enter a destination.&lt;br /&gt;
* Quit navit is the last action in this submenu.&lt;br /&gt;
&lt;br /&gt;
Select the icon &amp;lt;i&amp;gt;Town&amp;lt;/i&amp;gt; in the main menu (if you see the map, you can get to the main menu just by clicking on the map).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Select Country====&lt;br /&gt;
[[Image:navit_country_selected.png|100px|thumb|Country Options]]&lt;br /&gt;
[[Image:navit_destination_details.png|100px|thumb|Enter Bookmark Details]]&lt;br /&gt;
&lt;br /&gt;
Before you can search for City you have to select a Country. To do that, click on the icon in the left upper corner of the search field (could look like a white square with blue top-left quadrant).&lt;br /&gt;
&lt;br /&gt;
Just type in the first letter of the country (e.g. &amp;quot;G&amp;quot;) and Navit makes suggestions (e.g. Gabon, Germany).&lt;br /&gt;
&lt;br /&gt;
====Enter Town====&lt;br /&gt;
&lt;br /&gt;
When you have selected the country (e.g. Germany) the flag appears and you can select the town.&lt;br /&gt;
Then you can save the town as bookmark and enter more details like streets to the selected town.&lt;br /&gt;
&lt;br /&gt;
The search is still a little buggy.&lt;br /&gt;
&lt;br /&gt;
====Enter Street====&lt;br /&gt;
You can enter the street and streetnumber and save it as bookmark when you use the destination often. &lt;br /&gt;
&lt;br /&gt;
====Bookmarks====&lt;br /&gt;
Navigation and planning of routes with Navit can be organized with bookmarks.&lt;br /&gt;
* set a bookmark as current position &lt;br /&gt;
* set a bookmark as destination&lt;br /&gt;
Then you can see the suggested route in blue on the map. &lt;br /&gt;
&lt;br /&gt;
Bookmarks are stored in:&lt;br /&gt;
  /home/root/.navit/bookmark.txt&lt;br /&gt;
&lt;br /&gt;
The GPS-location (if GPS-signal is available) will be highlighted with a small blue circle. The color of the circle can be defined via editing the &amp;lt;tt&amp;gt;navit.xml&amp;lt;/tt&amp;gt; (see [http://wiki.openmoko.org/wiki/Navit#Set_Cursor_Color select cursor color]).&lt;br /&gt;
* a dot in the blue circle is indicating that your are not moving,&lt;br /&gt;
* an arrowhead is indicating the direction, when you are moving.&lt;br /&gt;
Then routing can start and in the map the route is highlighted.&lt;br /&gt;
&lt;br /&gt;
====Screenshots in Navit Documentation====&lt;br /&gt;
The screenshots are made with &amp;lt;tt&amp;gt;gpe-scap&amp;lt;/tt&amp;gt;, that can be installed by:&lt;br /&gt;
  opkg install gpe-scap&lt;br /&gt;
if not installed already. Navigation through your installed application navit and login via ssh on your Freerunner &lt;br /&gt;
  ssh -l root 192.168.0.202&lt;br /&gt;
assuming that your Freerunner has the IP 192.168.0.202.&lt;br /&gt;
Any time you want to make a screenshot just start via your desktop computer &lt;br /&gt;
  gpe-scap&lt;br /&gt;
and save the screenshot to you freerunner.&lt;br /&gt;
Download the screenshot to your desktop computer with&lt;br /&gt;
  desktop# sftp://root@192.168.0.202&lt;br /&gt;
&lt;br /&gt;
== News ==&lt;br /&gt;
A deeper look into configuring Navit can be found in the [http://wiki.navit-project.org/index.php/Configuring_Navit Navit-Wiki].&lt;br /&gt;
&lt;br /&gt;
=== Getting the display right ===&lt;br /&gt;
&lt;br /&gt;
If using SHR the keyboard in country/town/street search mode does not fit on the street, make sure your gui configuration is set to the following line:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;gui type=&amp;quot;internal&amp;quot; font_size=&amp;quot;350&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The example line provided for freerunners hides some important icons. Namely, instead of typing your city name first, you will first have to click the button on the top left, to go into country search mode. Enter your country name, then the city name, in order to enable the search function. This requires your map data to be searchable.&lt;br /&gt;
&lt;br /&gt;
You can start in fullscreen mode with fullscreen=&amp;quot;1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;gui type=&amp;quot;internal&amp;quot; font_size=&amp;quot;350&amp;quot; fullscreen=&amp;quot;1&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you want to enable &amp;quot;+&amp;quot; and &amp;quot;-&amp;quot; as Zoom-In and Zoom-Out buttons on the bottom of the map enable the button with the following xml-tags:&lt;br /&gt;
 &amp;lt;osd enabled=&amp;quot;yes&amp;quot; type=&amp;quot;button&amp;quot; x=&amp;quot;-96&amp;quot; y=&amp;quot;-96&amp;quot; command=&amp;quot;zoom_in()&amp;quot;  src=&amp;quot;zoom_in.xpm&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;osd enabled=&amp;quot;yes&amp;quot; type=&amp;quot;button&amp;quot; x=&amp;quot;0&amp;quot;   y=&amp;quot;-96&amp;quot; command=&amp;quot;zoom_out()&amp;quot; src=&amp;quot;zoom_out.xpm&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can find sample Layouts here:&lt;br /&gt;
[http://wiki.navit-project.org/index.php/OSD_Layouts Sample Layouts from navit-wiki]&lt;br /&gt;
&lt;br /&gt;
=== Set Cursor Color ===&lt;br /&gt;
[[Image:red_cursor.png|90px|thumb|Red Cursor]]&lt;br /&gt;
If you navigate, the route is marked in blue color on the map. The current position of the vehicle is displayed by a blue circle. The circle is sometimes difficult to see on the blue track. If you want to change the color, size  of the vehicle cursor edit the vehicle XML-environment in navit.xml (e.g. replace blue color #0000FF with red color #FF0000 -- for details of  [http://html-color-codes.info Color Codes] select color, copy and paste code in &amp;lt;tt&amp;gt;navit.xml&amp;lt;/tt&amp;gt;)  &lt;br /&gt;
&lt;br /&gt;
     &amp;lt;vehicle name=&amp;quot;Local GPS&amp;quot; profilename=&amp;quot;car&amp;quot; enabled=&amp;quot;yes&amp;quot; active=&amp;quot;1&amp;quot; source=&amp;quot;gpsd://localhost&amp;quot; gpsd_query=&amp;quot;w+xj&amp;quot; color=&amp;quot;#0000ff&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;!-- Navit can write a tracklog in several formats (gpx, nmea or textfile): --&amp;gt;&lt;br /&gt;
        &amp;lt;!-- &amp;lt;log type=&amp;quot;gpx&amp;quot; data=&amp;quot;track_%Y%m%d-%i.gpx&amp;quot; flush_size=&amp;quot;1000&amp;quot; flush_time=&amp;quot;30&amp;quot;/&amp;gt; --&amp;gt;&lt;br /&gt;
            &amp;lt;cursor w=&amp;quot;56&amp;quot; h=&amp;quot;56&amp;quot;&amp;gt;&lt;br /&gt;
               &amp;lt;!-- tag defines the circle for the cursor --&amp;gt;&lt;br /&gt;
                &amp;lt;itemgra&amp;gt;&lt;br /&gt;
                    &amp;lt;circle color=&amp;quot;#ff0000&amp;quot; radius=&amp;quot;42&amp;quot; width=&amp;quot;6&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;0&amp;quot; y=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/circle&amp;gt;&lt;br /&gt;
                   &amp;lt;circle color=&amp;quot;#ffffff&amp;quot; radius=&amp;quot;48&amp;quot; width=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;0&amp;quot; y=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/circle&amp;gt;&lt;br /&gt;
                   &amp;lt;circle color=&amp;quot;#ffffff&amp;quot; radius=&amp;quot;36&amp;quot; width=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;0&amp;quot; y=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/circle&amp;gt;&lt;br /&gt;
                &amp;lt;/itemgra&amp;gt;&lt;br /&gt;
               &amp;lt;!-- tag defines the dot when the vehicle is not moving --&amp;gt;&lt;br /&gt;
                &amp;lt;itemgra speed_range=&amp;quot;-2&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;polyline color=&amp;quot;#ff0000&amp;quot; width=&amp;quot;6&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;1&amp;quot; y=&amp;quot;1&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;1&amp;quot; y=&amp;quot;-1&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;-1&amp;quot; y=&amp;quot;-1&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;-1&amp;quot; y=&amp;quot;-1&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/polyline&amp;gt;&lt;br /&gt;
                  &amp;lt;circle color=&amp;quot;#ffffff&amp;quot; radius=&amp;quot;9&amp;quot; width=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;0&amp;quot; y=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/circle&amp;gt;&lt;br /&gt;
                &amp;lt;/itemgra&amp;gt;&lt;br /&gt;
                &amp;lt;!-- This itemgra-tag defines the arrow when the vehicle moves --&amp;gt;&lt;br /&gt;
                &amp;lt;itemgra speed_range=&amp;quot;3-&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;polyline color=&amp;quot;#ff0000&amp;quot; width=&amp;quot;6&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;-7&amp;quot; y=&amp;quot;-10&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;0&amp;quot; y=&amp;quot;12&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;7&amp;quot; y=&amp;quot;-10&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/polyline&amp;gt;&lt;br /&gt;
                  &amp;lt;polyline color=&amp;quot;#ffffff&amp;quot; width=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;+10&amp;quot; y=&amp;quot;-10&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;3&amp;quot; y=&amp;quot;15&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/polyline&amp;gt;&lt;br /&gt;
                    &amp;lt;polyline color=&amp;quot;#ffffff&amp;quot; width=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;-10&amp;quot; y=&amp;quot;-10&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;-3&amp;quot; y=&amp;quot;15&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/polyline&amp;gt;&lt;br /&gt;
                &amp;lt;/itemgra&amp;gt;&lt;br /&gt;
        &amp;lt;/cursor&amp;gt;&lt;br /&gt;
    &amp;lt;/vehicle&amp;gt;&lt;br /&gt;
The following screenshot show Navit with a red cursor on a blue track:&lt;br /&gt;
&lt;br /&gt;
[[Image:navit_color_cursor.png|200px|thumb|Red Cursor Color on blue track - vehicle not moving]]&lt;br /&gt;
&lt;br /&gt;
=== Speech ===&lt;br /&gt;
Navit can speak if you install [http://espeak.sourceforge.net/ eSpeak] + [http://www.freebsoft.org/speechd speech-dispatcher] and updates your navit.xml file.&lt;br /&gt;
&lt;br /&gt;
If you want navit using your language, and setting LC_MESSAGES fails due to missing glibc locale, set the enviroment variable LANGUAGE. For instance running&lt;br /&gt;
  LANGUAGE=de navit&lt;br /&gt;
will set the ui and output to german.&lt;br /&gt;
&lt;br /&gt;
For SHR there is a big german localization patch see [[Configure SHR for German-speaking use]].&lt;br /&gt;
&lt;br /&gt;
One way to configure speech output:&lt;br /&gt;
&lt;br /&gt;
* mokoTTS aims to integrate these packages in OM:&lt;br /&gt;
http://projects.openmoko.org/projects/mokotts/&lt;br /&gt;
&lt;br /&gt;
install espeak, dotconf, and then speech-dispatcher.&lt;br /&gt;
note: running 2008.8 updating from zecke's &amp;quot;testing&amp;quot; repo does not require &amp;quot;dotconf&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Speech Language ====&lt;br /&gt;
To change the speech tag in navit.xml:&lt;br /&gt;
  &amp;lt;speech type=&amp;quot;cmdline&amp;quot; data=&amp;quot;spd-say '%s'&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;'''spd-say -l fr '%s''''&amp;quot; for using the French voice for example.&lt;br /&gt;
* &amp;quot;'''spd-say -l de '%s''''&amp;quot; for using the German voice for example.&lt;br /&gt;
&lt;br /&gt;
{{Note|You can check speech dispatcher output from the shell.}}&lt;br /&gt;
Example for German:&lt;br /&gt;
  spd-say --language=de \&amp;quot;Dies ist die Winterstraße 23\&amp;quot;&lt;br /&gt;
The speech-dispatcher is blocking the audio after suspend. So after a suspend you will hear no ringtone, when a phone call is coming in and you cannot listen do audio files.&lt;br /&gt;
A solution is to disable starting of speech-dispatcher with:&lt;br /&gt;
  update-rc.d -f speech-dispatcher remove&lt;br /&gt;
Then the speech-dispatcher should be started if and only if navit is running and shut down when navit is closed.&lt;br /&gt;
&lt;br /&gt;
Furthermore navit should be started indirect with a script &amp;lt;tt&amp;gt;navit.sh&amp;lt;/tt&amp;gt; instead of a direct start with the binary located in &amp;lt;tt&amp;gt;/usr/bin/navit&amp;lt;/tt&amp;gt;. The script &amp;lt;tt&amp;gt;navit.sh&amp;lt;/tt&amp;gt; listed below starts speech-dispatcher before navit, and stops it afterwards. See http://lists.openmoko.org/nabble.html#nabble-td1088795&lt;br /&gt;
&lt;br /&gt;
The following script is doing the suggested procedure. This script includes a language fix for Austria (see [[Configure SHR for German-speaking use]]).&lt;br /&gt;
  export LANG=de_AT.utf8&lt;br /&gt;
Replace '''&amp;lt;tt&amp;gt;de_AT&amp;lt;/tt&amp;gt;''' in this line with the appropriate language variable in the following script &amp;lt;tt&amp;gt;navit.sh&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&amp;lt;pre&amp;gt;Hallo Patsy,spd-say -l de '%s'&lt;br /&gt;
#! /bin/sh&lt;br /&gt;
#&lt;br /&gt;
# Copyright Matthias Hentges &amp;lt;devel@hentges.net&amp;gt; (c) 2008&lt;br /&gt;
# License: GPL (see http://www.gnu.org/licenses/gpl.txt for a copy of the license)&lt;br /&gt;
#&lt;br /&gt;
# Filename: navit.sh&lt;br /&gt;
# Date: 20080105 (YMD)&lt;br /&gt;
#&lt;br /&gt;
#################################################################################&lt;br /&gt;
#&lt;br /&gt;
# 20080105 - v0.0.1	- Initial release&lt;br /&gt;
# 20090818 -            - Zoff &amp;lt;zoff@zoff.cc&amp;gt; addons and fixes&lt;br /&gt;
#&lt;br /&gt;
#&lt;br /&gt;
#################################################################################&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#################################################################################&lt;br /&gt;
#&lt;br /&gt;
# On devices with low memory (&amp;lt; 512Mb?) Navit will segfault on start.&lt;br /&gt;
# This can be worked around by doing&lt;br /&gt;
# &amp;quot;echo 1 &amp;gt; /proc/sys/vm/overcommit_memory&amp;quot;&lt;br /&gt;
#&lt;br /&gt;
#################################################################################&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
. /etc/profile&lt;br /&gt;
&lt;br /&gt;
set|grep LC&lt;br /&gt;
&lt;br /&gt;
#### Stop the speech dispatcher ####&lt;br /&gt;
/etc/init.d/speech-dispatcher stop&lt;br /&gt;
&lt;br /&gt;
#### Language Fix #################&lt;br /&gt;
set|grep LC&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
export LC_ALL=''&lt;br /&gt;
unset LC_ALL&lt;br /&gt;
export LANG=de_AT.utf8&lt;br /&gt;
&lt;br /&gt;
set|grep LC&lt;br /&gt;
&lt;br /&gt;
#### Start the speech dispatcher ####&lt;br /&gt;
/etc/init.d/speech-dispatcher start &amp;amp;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
set|grep LC&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# need cpu and display&lt;br /&gt;
mdbus -s org.freesmartphone.ousaged /org/freesmartphone/Usage org.freesmartphone.Usage.SetResourcePolicy Display enabled&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if test &amp;quot;`cat /proc/meminfo | grep ^MemTotal | awk '{print $2}'`&amp;quot; -lt &amp;quot;500000&amp;quot;&lt;br /&gt;
then&lt;br /&gt;
	if test &amp;quot;$USER&amp;quot; = &amp;quot;root&amp;quot;&lt;br /&gt;
	then&lt;br /&gt;
		echo &amp;quot;Enabling low-mem workaround...&amp;quot;&lt;br /&gt;
		echo 1 &amp;gt; /proc/sys/vm/overcommit_memory&lt;br /&gt;
	else&lt;br /&gt;
		echo &amp;quot;I need root-privs to enable the low-mem workaround!&amp;quot;&lt;br /&gt;
	fi&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
######### Start NAVIT NOW ############&lt;br /&gt;
&lt;br /&gt;
navit $*&lt;br /&gt;
	&lt;br /&gt;
#### Stop the speech dispatcher ####&lt;br /&gt;
&lt;br /&gt;
/etc/init.d/speech-dispatcher stop&lt;br /&gt;
&lt;br /&gt;
# release cpu and display&lt;br /&gt;
mdbus -s org.freesmartphone.ousaged /org/freesmartphone/Usage org.freesmartphone.Usage.SetResourcePolicy Display auto&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Save the &amp;lt;tt&amp;gt;navit.sh&amp;lt;/tt&amp;gt; script in:&lt;br /&gt;
  /usr/bin/navit.sh&lt;br /&gt;
Make the script executable:&lt;br /&gt;
  chmod u+x /usr/bin/navit.sh&lt;br /&gt;
Now you have to edit the desktop icon, so that it starts this script &amp;lt;tt&amp;gt;navit.sh&amp;lt;/tt&amp;gt; instead of the binary &amp;lt;tt&amp;gt;/usr/bin/navit&amp;lt;/tt&amp;gt;.&lt;br /&gt;
  nano /usr/share/applications/navit.desktop&lt;br /&gt;
Edit the line with &amp;lt;tt&amp;gt;Exec=...&amp;lt;/tt&amp;gt;, so that it starts the script &amp;lt;tt&amp;gt;navit.sh&amp;lt;/tt&amp;gt; instead of the navit binary.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[Desktop Entry]&lt;br /&gt;
Version=1.0&lt;br /&gt;
Name=Navit&lt;br /&gt;
Name[de]=Navit&lt;br /&gt;
Name[fr]=Navit&lt;br /&gt;
Comment=The open source vector based navigation program with routing engine&lt;br /&gt;
Comment[de]=Ein vektorbasiertes Navigationsprogramm&lt;br /&gt;
Comment[fr]=Le logiciel opensource de navigation vectorielle&lt;br /&gt;
Exec=/usr/bin/navit.sh&lt;br /&gt;
Icon=navit&lt;br /&gt;
StartupNotify=true&lt;br /&gt;
Terminal=false&lt;br /&gt;
Type=Application&lt;br /&gt;
Categories=GTK;Utility;Geography;&lt;br /&gt;
GenericName=Navit&lt;br /&gt;
GenericName[de]=Navit&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Alternatively''', you can make speech-dispatcher restart on resume, see http://trac.shr-project.org/trac/ticket/494&lt;br /&gt;
&lt;br /&gt;
=== Script to download OSM maps ===&lt;br /&gt;
[[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&lt;br /&gt;
dlOSM.sh &amp;lt;minimum latitude&amp;gt; &amp;lt;maximum latitude&amp;gt; &amp;lt;minimum longitude&amp;gt; &amp;lt;maximum longitude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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...&lt;br /&gt;
&lt;br /&gt;
dlOSM.sh:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/usr/bin/python&lt;br /&gt;
&lt;br /&gt;
import os&lt;br /&gt;
import sys&lt;br /&gt;
#import math&lt;br /&gt;
&lt;br /&gt;
def doIt(cmd):&lt;br /&gt;
  os.system(cmd)&lt;br /&gt;
&lt;br /&gt;
def getOsms(basename, minLat, maxLat, minLon, maxLon):&lt;br /&gt;
  '''basename - base name of map, maps are named {basename}{count}.osm&lt;br /&gt;
  minLat - latitude of the west side of the map&lt;br /&gt;
  maxLat - latitude of the east side of the map&lt;br /&gt;
  minLon - longitude of the north side of the map&lt;br /&gt;
  maxLon - longitude of the south side of the map'''&lt;br /&gt;
&lt;br /&gt;
  wgetCmdTemplate = 'wget -O %s%s.osm http://api.openstreetmap.org/api/0.6/map?bbox=%s,%s,%s,%s'&lt;br /&gt;
&lt;br /&gt;
  currLat = minLat&lt;br /&gt;
  mapCount = 0&lt;br /&gt;
  while currLat &amp;lt; maxLat:&lt;br /&gt;
    nextLat = min(currLat + 0.1, maxLat)&lt;br /&gt;
&lt;br /&gt;
    currLon = minLon&lt;br /&gt;
    while currLon &amp;lt; maxLon:&lt;br /&gt;
      nextLon = min(currLon + 0.1, maxLon)&lt;br /&gt;
&lt;br /&gt;
      doIt(wgetCmdTemplate % (basename, mapCount, currLon, currLat, nextLon, nextLat))&lt;br /&gt;
&lt;br /&gt;
      currLon = nextLon&lt;br /&gt;
      mapCount = mapCount + 1&lt;br /&gt;
&lt;br /&gt;
    currLat = nextLat&lt;br /&gt;
&lt;br /&gt;
(minLat, maxLat, minLon, maxLon) = map(float, sys.argv[1:])&lt;br /&gt;
getOsms('map', minLat, maxLat, minLon, maxLon)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;onlyinclude&amp;gt;&lt;br /&gt;
{{ApplicationBox|&lt;br /&gt;
Name=[[Navit]]|&lt;br /&gt;
Description=Navit is a car navigation system with routing engine.|&lt;br /&gt;
Screenshot=Screenshot-3.png|&lt;br /&gt;
Homepage=http://navit.sourceforge.net|&lt;br /&gt;
TestedOn=|&lt;br /&gt;
PackageName=&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:GPS Applications]]&lt;/div&gt;</summary>
		<author><name>Niebert</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Navit</id>
		<title>Navit</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Navit"/>
				<updated>2010-12-28T13:27:40Z</updated>
		
		<summary type="html">&lt;p&gt;Niebert: /* Speech Language */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Application|Navit}}&lt;br /&gt;
&lt;br /&gt;
As described on the [http://navit.sourceforge.net/ Navit home page],&lt;br /&gt;
&lt;br /&gt;
&amp;lt;i&amp;gt;&amp;quot;'''Navit''' is a car navigation system with routing engine.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
The current vehicle position is either read from gpsd or directly from NMEA GPS sensors.&amp;quot;&amp;lt;/i&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Some people say Navit is also a good choice for pedestrian and bicycle navigation.&lt;br /&gt;
&lt;br /&gt;
[[Image:Navit-2241.png|thumb|Navit-r2241]]&lt;br /&gt;
&lt;br /&gt;
== Acknowledgment ==&lt;br /&gt;
&lt;br /&gt;
Thanks to [[User:Alessandro | Alessandro]], stefan_schmidt, cp15 and all Navit developers I have done a small (&amp;quot;not really working&amp;quot;) preview of Navit on Neo1973 at [http://www.telemobilityforum.com/eng/ Telemobility Forum 2007]. Thanks to [http://gfoss.it GFoss] guys to invite me.&lt;br /&gt;
''[[User:Tyrael | Tyrael]]''&lt;br /&gt;
&lt;br /&gt;
==Setting up Navit==&lt;br /&gt;
&lt;br /&gt;
===Install Navit===&lt;br /&gt;
&lt;br /&gt;
==== Map Size ====&lt;br /&gt;
Of you use e.g. entire Germany in an rectangle form it will have more than 500MB.&lt;br /&gt;
Navit on FR works with maps in the size of less that 350MB. So split the larger areas in portions with a smaller size than 350MB. Otherwise Navit will not be able to process the maps.&lt;br /&gt;
&lt;br /&gt;
Change navit.xml to modify the used map bin-file, e.g. germany1.bin to germany2.bin&lt;br /&gt;
&lt;br /&gt;
==== Navit on FSO (OM2008.x,SHR,...) ====&lt;br /&gt;
&lt;br /&gt;
You can now simply add a feed from there : http://download.navit-project.org/navit/openmoko/svn/&lt;br /&gt;
&lt;br /&gt;
Essentially, to enable this directory as [[Om_2008.8_Installer#How to add a Repository ?|feed]] and install or update navit do:&lt;br /&gt;
* Only for the first time:&lt;br /&gt;
 echo src navit http://download.navit-project.org/navit/openmoko/svn &amp;gt; /etc/opkg/navit-feed.conf&lt;br /&gt;
 opkg update&lt;br /&gt;
&lt;br /&gt;
* Always:&lt;br /&gt;
 opkg install navit&lt;br /&gt;
&lt;br /&gt;
Navit will be auto-updated when you run opkg upgrade later&lt;br /&gt;
&lt;br /&gt;
Navit might not be able to use gpsd at startup:&lt;br /&gt;
 navit:plugin_load:can't load '/usr/lib/navit/vehicle/&lt;br /&gt;
 libvehicle_gpsd.so', Error 'libgps.so.16: cannot open shared object  &lt;br /&gt;
 file: No such file or directory'&lt;br /&gt;
 navit:vehicle_new:invalid type 'gpsd'&lt;br /&gt;
&lt;br /&gt;
to solve this issue (necessary for SHR):&lt;br /&gt;
&lt;br /&gt;
 opkg install libgps17&lt;br /&gt;
 ln -s /usr/lib/libgps.so.17 /usr/lib/libgps.so.16&lt;br /&gt;
&lt;br /&gt;
====Navit on Debian====&lt;br /&gt;
Navit is now in Debian [http://packages.debian.org/source/testing/navit testing] and [http://packages.debian.org/source/unstable/navit unstable].&lt;br /&gt;
&lt;br /&gt;
Add the following line to &amp;lt;tt&amp;gt;/etc/apt/sources.list&amp;lt;/tt&amp;gt; with e.g. editor &amp;lt;tt&amp;gt;vi&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;nano&amp;lt;/tt&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
     deb http://ftp.de.debian.org/debian unstable main&lt;br /&gt;
&lt;br /&gt;
Then update with apt-get:&lt;br /&gt;
&lt;br /&gt;
     apt-get update&lt;br /&gt;
&lt;br /&gt;
The up-to-date source package is available through git at '''git://git.debian.org/git/collab-maint/navit.git''' ([http://git.debian.org/?p=collab-maint/navit.git;a=summary browse]).&lt;br /&gt;
&lt;br /&gt;
====Navit on Android====&lt;br /&gt;
Download current version [http://download.navit-project.org/navit/android_armv4t/svn/ navit-current.apk] on your Android. See [[Android usage]] for installing Apps on your [http://code.google.com/p/android-on-freerunner/wiki/Applications Android on Freerunner].&lt;br /&gt;
&lt;br /&gt;
   see [http://wiki.navit-project.org/index.php/Navit_on_Android Navit on Android] Navit Project Wiki&lt;br /&gt;
&lt;br /&gt;
You can use one download map which you have to copy on the FAT32 partition of your SD card as '''&amp;lt;tt&amp;gt;navitmap.bin&amp;lt;/tt&amp;gt;'''. &lt;br /&gt;
&lt;br /&gt;
During first use after installation, navit for android will ask you, if you want to intall [http://espeak.sourceforge.net/ TTS] (Text to Speech [http://www.speech.cs.cmu.edu/flite/ festival-lite]). If you decide to install TTS then Navit crashes (with version [http://download.navit-project.org/navit/android_armv4t/svn/ navit-svn-3495.apk]).&lt;br /&gt;
&lt;br /&gt;
====Navit on QtMoko====&lt;br /&gt;
You can find some information for installing Navit in the [[QtMoko]] article.&lt;br /&gt;
&lt;br /&gt;
===Set up the maps you want===&lt;br /&gt;
&lt;br /&gt;
====The Easy Way====&lt;br /&gt;
Use [http://maps.navit-project.org/download/ Navit Map Extractor] based on [http://www.openstreetmap.org OpenStreetMap].  Navigate to the region you want, and click &amp;quot;select&amp;quot; to select region, select the area you want, then click download. [[Image:osmdownload.jpg|200px|thumb|Download OpenStreetMaps]] &lt;br /&gt;
&lt;br /&gt;
If you just want the entire planet (as of this writing, ~1.8 GB), it's [http://maps.navit-project.org/planet.bin here].&lt;br /&gt;
&lt;br /&gt;
[http://downloads.cloudmade.com/ CloudMade] also has up-to-date maps from OpenStreetMap by country (by state in the US).&lt;br /&gt;
&lt;br /&gt;
{{Note|Be aware of the map size that can be used on your FR (On Android working with map sizes less than 350MB is O.K. on SHR 450MB also work, so SHR may not have a map size limit)}}&lt;br /&gt;
&lt;br /&gt;
====From the command line====&lt;br /&gt;
'''OpenStreetMap''' - follow directions at http://wiki.navit-project.org/index.php/OpenStreetMaps&lt;br /&gt;
* There are some pre-processed, up-to-date maps that can be grabbed with wget:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;wget -O germany.bin http://maps.navit-project.org/api/map/?bbox=5.185546875,46.845703125,15.46875,55.634765625&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can put a shell script into &amp;lt;tt&amp;gt;/usr/local/bin/update-maps&amp;lt;/tt&amp;gt;&lt;br /&gt;
  #!/bin/sh&lt;br /&gt;
  echo &amp;quot;Update OpenstreetMaps&amp;quot;&lt;br /&gt;
  echo &amp;quot;---------------------&amp;quot;&lt;br /&gt;
  echo &amp;quot;  download and store OSM maps on /media/card/maps&amp;quot;&lt;br /&gt;
  wget -O /media/card/maps/germany.bin http://maps.navit-project.org/api/map/?bbox=5.185546875,46.845703125,15.46875,55.634765625&lt;br /&gt;
  echo &amp;quot;update germany.bin finished&amp;quot;&lt;br /&gt;
You have to make the script executable with:&lt;br /&gt;
  chmod u+x /usr/local/bin/update-maps&lt;br /&gt;
Create a maps-directory (e.g. with path &amp;lt;tt&amp;gt;/media/card/maps/&amp;lt;/tt&amp;gt;) on your SD-card:&lt;br /&gt;
  mkdir /media/card/maps/&lt;br /&gt;
Then you can update with this script all your maps on the SD-card if you have internet connection:&lt;br /&gt;
  update-maps&lt;br /&gt;
* Here's an example to get the maps for the area around Seattle, WA:&lt;br /&gt;
** Find the map coordinates using http://informationfreeway.org/?lat=47.520270037501454&amp;amp;lon=-122.20130713167327&amp;amp;zoom=9&amp;amp;layers=B000F000&lt;br /&gt;
** 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):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;wget -O map1.osm http://www.openstreetmap.org/api/0.5/map?bbox=-122.2,47.5,-122,47.7&lt;br /&gt;
wget -O map2.osm http://www.openstreetmap.org/api/0.5/map?bbox=-122.4,47.5,-122.2,47.7&lt;br /&gt;
wget -O map3.osm http://www.openstreetmap.org/api/0.5/map?bbox=-122.4,47.3,-122.2,47.5&lt;br /&gt;
wget -O map4.osm http://www.openstreetmap.org/api/0.5/map?bbox=-122.2,47.3,-122,47.5&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* 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:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;cat *.osm | osm2navit --dedupe-ways mymap.bin&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Copy the map to the NEO===&lt;br /&gt;
To copy the map using scp (replace ''/directory'' as is appropriate in the following):&lt;br /&gt;
&amp;lt;pre&amp;gt;scp mymap.bin root@neo:/directory&amp;lt;/pre&amp;gt;&lt;br /&gt;
If you copy the map &amp;lt;tt&amp;gt;germany.bin&amp;lt;/tt&amp;gt; to the SD card on the Neo use e.g. in the directory &amp;lt;tt&amp;gt;maps&amp;lt;/tt&amp;gt;:&lt;br /&gt;
  scp germany.bin root@neo:/media/card/maps&lt;br /&gt;
Once it's somewhere on the NEO, Navit needs to know that it's there.&lt;br /&gt;
&amp;lt;pre&amp;gt;mkdir ~/.navit&lt;br /&gt;
cp /usr/share/navit/navit.xml ~/.navit/navit.xml&lt;br /&gt;
vi ~/.navit/navit.xml&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
note that in some version navit includes other xml files from /usr/share/navit, for instance mapsets are now defined in maps.xml.&lt;br /&gt;
&lt;br /&gt;
===Enable Maps in  Navit ===&lt;br /&gt;
Now you must let Navit know the maps you want to use. Several disabled mapset-tags are predefined. &lt;br /&gt;
In the navit.xml file, put the following into a new &amp;lt;mapset&amp;gt; section (and disable the default &amp;lt;mapset&amp;gt; just above - or else it will not work):&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;map type=&amp;quot;binfile&amp;quot; enabled=&amp;quot;yes&amp;quot; data=&amp;quot;/directory&amp;quot; /&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
For example with a &amp;lt;tt&amp;gt;germany.bin&amp;lt;/tt&amp;gt; on the SD-card you use:&lt;br /&gt;
 &amp;lt;mapset enabled=&amp;quot;yes&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;map type=&amp;quot;binfile&amp;quot; enabled=&amp;quot;yes&amp;quot; data=&amp;quot;/media/card/maps/germany.bin&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;/mapset&amp;gt;&lt;br /&gt;
or if you store all downloaded maps in the directory &amp;lt;tt&amp;gt;/media/card/maps&amp;lt;/tt&amp;gt; then add the following lines to &amp;lt;tt&amp;gt;navit.xml&amp;lt;/tt&amp;gt;.&lt;br /&gt;
 &amp;lt;mapset enabled=&amp;quot;yes&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;map type=&amp;quot;binfile&amp;quot; enabled=&amp;quot;yes&amp;quot; data=&amp;quot;/media/card/maps/*.bin&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;/mapset&amp;gt;&lt;br /&gt;
{{Note|this will only load the first map that machtes *.bin (its a bug/feature)!}}&lt;br /&gt;
{{Note|that the bin-file and the map set both have to be enabled}}&lt;br /&gt;
&lt;br /&gt;
Disable unused mapset sections by setting enabled to &amp;lt;tt&amp;gt;no&amp;lt;/tt&amp;gt;, e.g. the pre-installed sample maps at line 370 in &amp;lt;tt&amp;gt;navit.xml&amp;lt;/tt&amp;gt;.&lt;br /&gt;
 &amp;lt;mapset enabled=&amp;quot;no&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xi:include href=&amp;quot;$NAVIT_SHAREDIR/maps/*.xml&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;/mapset&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Run navit&lt;br /&gt;
** Start [[gllin]] (for GTA01)&lt;br /&gt;
** Start [[gpsd]] ( gpsd /tmp/nmeaNP )&lt;br /&gt;
** Start navit&lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
===Tips and Tricks===&lt;br /&gt;
====Center on Vehicle====&lt;br /&gt;
Navit supports a &amp;quot;always center on vehicle&amp;quot; option. &lt;br /&gt;
&lt;br /&gt;
To activate this add&lt;br /&gt;
 follow=&amp;quot;3&amp;quot;&lt;br /&gt;
to the &amp;lt;tt&amp;gt;vehicle&amp;lt;/tt&amp;gt; tag in navit.xml. &lt;br /&gt;
   &amp;lt;vehicle name=&amp;quot;Local GPS&amp;quot; profilename=&amp;quot;car&amp;quot; enabled=&amp;quot;yes&amp;quot; active=&amp;quot;1&amp;quot; follow=&amp;quot;3&amp;quot; &lt;br /&gt;
           source=&amp;quot;gpsd://localhost&amp;quot; gpsd_query=&amp;quot;w+xj&amp;quot; color=&amp;quot;#0000ff&amp;quot;&amp;gt;&lt;br /&gt;
The &amp;quot;3&amp;quot; causes to give the gui time to do something between the repaints (drag the map or browse the menu). When its set to &amp;quot;1&amp;quot; navit does nothing more than repainting the map continuously.&lt;br /&gt;
&lt;br /&gt;
==Routing==&lt;br /&gt;
[[Image:navit_main_menu.png|100px|thumb|Navit Main Menu]]&lt;br /&gt;
[[Image:navit_action_menu.png|100px|thumb|Navit Action Menu]]&lt;br /&gt;
The main menu has 4 submenus&lt;br /&gt;
* Action&lt;br /&gt;
* Settings&lt;br /&gt;
* Tools&lt;br /&gt;
* Route&lt;br /&gt;
Normally you would assume the entering a town can be found under the submenu Route, but Town is hidden under submenu Action. Route will provide the description of the route as text and a height profile of your trip. Tools was not working on 08/2009 Version of navit on SHR (see [[SHR User Manual]]).&lt;br /&gt;
&lt;br /&gt;
===Preselect Country of Destination===&lt;br /&gt;
Normally you have to select the the country first before choosing the town and street name. It might be more convenient for you if you preselect the country already with your settings.&lt;br /&gt;
The article [[Configure SHR for German-speaking use]] had a preselection of the country &amp;quot;Austria&amp;quot; in Navit. Adapt the localization for your country and maps in Navit, so that do not need to select the country anymore.&lt;br /&gt;
&lt;br /&gt;
Actually Navit derives the preselected country from the calling environments's locale (see [[Localization]]). Make sure, that LC_ALL ist '''not''' set though. Otherwise navit fails to interprete gpsd output and you end up with strange gps coordinates. When starting from gui (e.g. illume) you can achieve this by supplying an executable script /usr/local/bin/navit which might look like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
#export LANG=xx_YY.UTF-8   # Uncomment this line and replace xx_YY, if &lt;br /&gt;
                           # your gui's locale is not setup accordingly. &lt;br /&gt;
unset LC_ALL&lt;br /&gt;
exec /usr/bin/navit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
So a valid locale environment preselecting search for German cities would look like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@om-gta02 ~ $ locale&lt;br /&gt;
LANG=de_DE.UTF-8&lt;br /&gt;
LC_CTYPE=&amp;quot;de_DE.UTF-8&amp;quot;&lt;br /&gt;
LC_NUMERIC=&amp;quot;de_DE.UTF-8&amp;quot;&lt;br /&gt;
...&lt;br /&gt;
LC_MEASUREMENT=&amp;quot;de_DE.UTF-8&amp;quot;&lt;br /&gt;
LC_IDENTIFICATION=&amp;quot;de_DE.UTF-8&amp;quot;&lt;br /&gt;
LC_ALL=&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note that there's a limited number of [http://wiki.navit-project.org/index.php/OpenStreetMaps#Known_countries_by_osm2navit countries supported by osm2navit] and Navit's search function.&lt;br /&gt;
&lt;br /&gt;
===Select Destination===&lt;br /&gt;
[[Image:navit_select_country.png|100px|thumb|Select Country]]&lt;br /&gt;
&lt;br /&gt;
You can the select your destination in the main menu:&lt;br /&gt;
* via '''Bookmarks''', if you saved the previous location or&lt;br /&gt;
* via '''Town''', if you want to enter a new destination. If you use a destination more frequently, just save the location as bookmark.  &lt;br /&gt;
&lt;br /&gt;
When you click in the main menu on &amp;lt;i&amp;gt;Action&amp;lt;/i&amp;gt; the &amp;lt;i&amp;gt;Action&amp;lt;/i&amp;gt; menu appears with 4 subitems.&lt;br /&gt;
* Bookmarks of previous locations (stored in &amp;lt;tt&amp;gt;/home/root/.navit/destinations.txt&amp;lt;/tt&amp;gt;&lt;br /&gt;
* a globe showing a location as destination,&lt;br /&gt;
* a vehicle that shows the current GPS position of the vehicle. If the freerunner receives no GPS signal the locations of the vehicle is set to 0.0.0N and 0.0.0E. &lt;br /&gt;
* Town is the action to enter a destination.&lt;br /&gt;
* Quit navit is the last action in this submenu.&lt;br /&gt;
&lt;br /&gt;
Select the icon &amp;lt;i&amp;gt;Town&amp;lt;/i&amp;gt; in the main menu (if you see the map, you can get to the main menu just by clicking on the map).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Select Country====&lt;br /&gt;
[[Image:navit_country_selected.png|100px|thumb|Country Options]]&lt;br /&gt;
[[Image:navit_destination_details.png|100px|thumb|Enter Bookmark Details]]&lt;br /&gt;
&lt;br /&gt;
Before you can search for City you have to select a Country. To do that, click on the icon in the left upper corner of the search field (could look like a white square with blue top-left quadrant).&lt;br /&gt;
&lt;br /&gt;
Just type in the first letter of the country (e.g. &amp;quot;G&amp;quot;) and Navit makes suggestions (e.g. Gabon, Germany).&lt;br /&gt;
&lt;br /&gt;
====Enter Town====&lt;br /&gt;
&lt;br /&gt;
When you have selected the country (e.g. Germany) the flag appears and you can select the town.&lt;br /&gt;
Then you can save the town as bookmark and enter more details like streets to the selected town.&lt;br /&gt;
&lt;br /&gt;
The search is still a little buggy.&lt;br /&gt;
&lt;br /&gt;
====Enter Street====&lt;br /&gt;
You can enter the street and streetnumber and save it as bookmark when you use the destination often. &lt;br /&gt;
&lt;br /&gt;
====Bookmarks====&lt;br /&gt;
Navigation and planning of routes with Navit can be organized with bookmarks.&lt;br /&gt;
* set a bookmark as current position &lt;br /&gt;
* set a bookmark as destination&lt;br /&gt;
Then you can see the suggested route in blue on the map. &lt;br /&gt;
&lt;br /&gt;
Bookmarks are stored in:&lt;br /&gt;
  /home/root/.navit/bookmark.txt&lt;br /&gt;
&lt;br /&gt;
The GPS-location (if GPS-signal is available) will be highlighted with a small blue circle. The color of the circle can be defined via editing the &amp;lt;tt&amp;gt;navit.xml&amp;lt;/tt&amp;gt; (see [http://wiki.openmoko.org/wiki/Navit#Set_Cursor_Color select cursor color]).&lt;br /&gt;
* a dot in the blue circle is indicating that your are not moving,&lt;br /&gt;
* an arrowhead is indicating the direction, when you are moving.&lt;br /&gt;
Then routing can start and in the map the route is highlighted.&lt;br /&gt;
&lt;br /&gt;
====Screenshots in Navit Documentation====&lt;br /&gt;
The screenshots are made with &amp;lt;tt&amp;gt;gpe-scap&amp;lt;/tt&amp;gt;, that can be installed by:&lt;br /&gt;
  opkg install gpe-scap&lt;br /&gt;
if not installed already. Navigation through your installed application navit and login via ssh on your Freerunner &lt;br /&gt;
  ssh -l root 192.168.0.202&lt;br /&gt;
assuming that your Freerunner has the IP 192.168.0.202.&lt;br /&gt;
Any time you want to make a screenshot just start via your desktop computer &lt;br /&gt;
  gpe-scap&lt;br /&gt;
and save the screenshot to you freerunner.&lt;br /&gt;
Download the screenshot to your desktop computer with&lt;br /&gt;
  desktop# sftp://root@192.168.0.202&lt;br /&gt;
&lt;br /&gt;
== News ==&lt;br /&gt;
A deeper look into configuring Navit can be found in the [http://wiki.navit-project.org/index.php/Configuring_Navit Navit-Wiki].&lt;br /&gt;
&lt;br /&gt;
=== Getting the display right ===&lt;br /&gt;
&lt;br /&gt;
If using SHR the keyboard in country/town/street search mode does not fit on the street, make sure your gui configuration is set to the following line:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;gui type=&amp;quot;internal&amp;quot; font_size=&amp;quot;350&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The example line provided for freerunners hides some important icons. Namely, instead of typing your city name first, you will first have to click the button on the top left, to go into country search mode. Enter your country name, then the city name, in order to enable the search function. This requires your map data to be searchable.&lt;br /&gt;
&lt;br /&gt;
You can start in fullscreen mode with fullscreen=&amp;quot;1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;gui type=&amp;quot;internal&amp;quot; font_size=&amp;quot;350&amp;quot; fullscreen=&amp;quot;1&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you want to enable &amp;quot;+&amp;quot; and &amp;quot;-&amp;quot; as Zoom-In and Zoom-Out buttons on the bottom of the map enable the button with the following xml-tags:&lt;br /&gt;
 &amp;lt;osd enabled=&amp;quot;yes&amp;quot; type=&amp;quot;button&amp;quot; x=&amp;quot;-96&amp;quot; y=&amp;quot;-96&amp;quot; command=&amp;quot;zoom_in()&amp;quot;  src=&amp;quot;zoom_in.xpm&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;osd enabled=&amp;quot;yes&amp;quot; type=&amp;quot;button&amp;quot; x=&amp;quot;0&amp;quot;   y=&amp;quot;-96&amp;quot; command=&amp;quot;zoom_out()&amp;quot; src=&amp;quot;zoom_out.xpm&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can find sample Layouts here:&lt;br /&gt;
[http://wiki.navit-project.org/index.php/OSD_Layouts Sample Layouts from navit-wiki]&lt;br /&gt;
&lt;br /&gt;
=== Set Cursor Color ===&lt;br /&gt;
[[Image:red_cursor.png|90px|thumb|Red Cursor]]&lt;br /&gt;
If you navigate, the route is marked in blue color on the map. The current position of the vehicle is displayed by a blue circle. The circle is sometimes difficult to see on the blue track. If you want to change the color, size  of the vehicle cursor edit the vehicle XML-environment in navit.xml (e.g. replace blue color #0000FF with red color #FF0000 -- for details of  [http://html-color-codes.info Color Codes] select color, copy and paste code in &amp;lt;tt&amp;gt;navit.xml&amp;lt;/tt&amp;gt;)  &lt;br /&gt;
&lt;br /&gt;
     &amp;lt;vehicle name=&amp;quot;Local GPS&amp;quot; profilename=&amp;quot;car&amp;quot; enabled=&amp;quot;yes&amp;quot; active=&amp;quot;1&amp;quot; source=&amp;quot;gpsd://localhost&amp;quot; gpsd_query=&amp;quot;w+xj&amp;quot; color=&amp;quot;#0000ff&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;!-- Navit can write a tracklog in several formats (gpx, nmea or textfile): --&amp;gt;&lt;br /&gt;
        &amp;lt;!-- &amp;lt;log type=&amp;quot;gpx&amp;quot; data=&amp;quot;track_%Y%m%d-%i.gpx&amp;quot; flush_size=&amp;quot;1000&amp;quot; flush_time=&amp;quot;30&amp;quot;/&amp;gt; --&amp;gt;&lt;br /&gt;
            &amp;lt;cursor w=&amp;quot;56&amp;quot; h=&amp;quot;56&amp;quot;&amp;gt;&lt;br /&gt;
               &amp;lt;!-- tag defines the circle for the cursor --&amp;gt;&lt;br /&gt;
                &amp;lt;itemgra&amp;gt;&lt;br /&gt;
                    &amp;lt;circle color=&amp;quot;#ff0000&amp;quot; radius=&amp;quot;42&amp;quot; width=&amp;quot;6&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;0&amp;quot; y=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/circle&amp;gt;&lt;br /&gt;
                   &amp;lt;circle color=&amp;quot;#ffffff&amp;quot; radius=&amp;quot;48&amp;quot; width=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;0&amp;quot; y=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/circle&amp;gt;&lt;br /&gt;
                   &amp;lt;circle color=&amp;quot;#ffffff&amp;quot; radius=&amp;quot;36&amp;quot; width=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;0&amp;quot; y=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/circle&amp;gt;&lt;br /&gt;
                &amp;lt;/itemgra&amp;gt;&lt;br /&gt;
               &amp;lt;!-- tag defines the dot when the vehicle is not moving --&amp;gt;&lt;br /&gt;
                &amp;lt;itemgra speed_range=&amp;quot;-2&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;polyline color=&amp;quot;#ff0000&amp;quot; width=&amp;quot;6&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;1&amp;quot; y=&amp;quot;1&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;1&amp;quot; y=&amp;quot;-1&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;-1&amp;quot; y=&amp;quot;-1&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;-1&amp;quot; y=&amp;quot;-1&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/polyline&amp;gt;&lt;br /&gt;
                  &amp;lt;circle color=&amp;quot;#ffffff&amp;quot; radius=&amp;quot;9&amp;quot; width=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;0&amp;quot; y=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/circle&amp;gt;&lt;br /&gt;
                &amp;lt;/itemgra&amp;gt;&lt;br /&gt;
                &amp;lt;!-- This itemgra-tag defines the arrow when the vehicle moves --&amp;gt;&lt;br /&gt;
                &amp;lt;itemgra speed_range=&amp;quot;3-&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;polyline color=&amp;quot;#ff0000&amp;quot; width=&amp;quot;6&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;-7&amp;quot; y=&amp;quot;-10&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;0&amp;quot; y=&amp;quot;12&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;7&amp;quot; y=&amp;quot;-10&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/polyline&amp;gt;&lt;br /&gt;
                  &amp;lt;polyline color=&amp;quot;#ffffff&amp;quot; width=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;+10&amp;quot; y=&amp;quot;-10&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;3&amp;quot; y=&amp;quot;15&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/polyline&amp;gt;&lt;br /&gt;
                    &amp;lt;polyline color=&amp;quot;#ffffff&amp;quot; width=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;-10&amp;quot; y=&amp;quot;-10&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;-3&amp;quot; y=&amp;quot;15&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/polyline&amp;gt;&lt;br /&gt;
                &amp;lt;/itemgra&amp;gt;&lt;br /&gt;
        &amp;lt;/cursor&amp;gt;&lt;br /&gt;
    &amp;lt;/vehicle&amp;gt;&lt;br /&gt;
The following screenshot show Navit with a red cursor on a blue track:&lt;br /&gt;
&lt;br /&gt;
[[Image:navit_color_cursor.png|200px|thumb|Red Cursor Color on blue track - vehicle not moving]]&lt;br /&gt;
&lt;br /&gt;
=== Speech ===&lt;br /&gt;
Navit can speak if you install [http://espeak.sourceforge.net/ eSpeak] + [http://www.freebsoft.org/speechd speech-dispatcher] and updates your navit.xml file.&lt;br /&gt;
&lt;br /&gt;
If you want navit using your language, and setting LC_MESSAGES fails due to missing glibc locale, set the enviroment variable LANGUAGE. For instance running&lt;br /&gt;
  LANGUAGE=de navit&lt;br /&gt;
will set the ui and output to german.&lt;br /&gt;
&lt;br /&gt;
For SHR there is a big german localization patch see [[Configure SHR for German-speaking use]].&lt;br /&gt;
&lt;br /&gt;
One way to configure speech output:&lt;br /&gt;
&lt;br /&gt;
* mokoTTS aims to integrate these packages in OM:&lt;br /&gt;
http://projects.openmoko.org/projects/mokotts/&lt;br /&gt;
&lt;br /&gt;
install espeak, dotconf, and then speech-dispatcher.&lt;br /&gt;
note: running 2008.8 updating from zecke's &amp;quot;testing&amp;quot; repo does not require &amp;quot;dotconf&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Speech Language ====&lt;br /&gt;
To change the speech tag in navit.xml:&lt;br /&gt;
  &amp;lt;speech type=&amp;quot;cmdline&amp;quot; data=&amp;quot;spd-say '%s'&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;'''spd-say -l fr '%s''''&amp;quot; for using the French voice for example.&lt;br /&gt;
* &amp;quot;'''spd-say -l de '%s''''&amp;quot; for using the German voice for example.&lt;br /&gt;
&lt;br /&gt;
{{Note|You can check speech dispatcher output from the shell &amp;lt;tt&amp;gt;spd-say --language=de Output-String&amp;lt;/tt&amp;gt; You can replace the --language by -l }}&lt;br /&gt;
Example:&lt;br /&gt;
  spd-say --language=de \&amp;quot;Dies ist die Winterstraße 23\&amp;quot;&lt;br /&gt;
The speech-dispatcher is blocking the audio after suspend. So after a suspend you will hear no ringtone, when a phone call is coming in and you cannot listen do audio files.&lt;br /&gt;
A solution is to disable starting of speech-dispatcher with:&lt;br /&gt;
  update-rc.d -f speech-dispatcher remove&lt;br /&gt;
Then the speech-dispatcher should be started if and only if navit is running and shut down when navit is closed.&lt;br /&gt;
&lt;br /&gt;
Furthermore navit should be started indirect with a script &amp;lt;tt&amp;gt;navit.sh&amp;lt;/tt&amp;gt; instead of a direct start with the binary located in &amp;lt;tt&amp;gt;/usr/bin/navit&amp;lt;/tt&amp;gt;. The script &amp;lt;tt&amp;gt;navit.sh&amp;lt;/tt&amp;gt; listed below starts speech-dispatcher before navit, and stops it afterwards. See http://lists.openmoko.org/nabble.html#nabble-td1088795&lt;br /&gt;
&lt;br /&gt;
The following script is doing the suggested procedure. This script includes a language fix for Austria (see [[Configure SHR for German-speaking use]]).&lt;br /&gt;
  export LANG=de_AT.utf8&lt;br /&gt;
Replace '''&amp;lt;tt&amp;gt;de_AT&amp;lt;/tt&amp;gt;''' in this line with the appropriate language variable in the following script &amp;lt;tt&amp;gt;navit.sh&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&amp;lt;pre&amp;gt;Hallo Patsy,spd-say -l de '%s'&lt;br /&gt;
#! /bin/sh&lt;br /&gt;
#&lt;br /&gt;
# Copyright Matthias Hentges &amp;lt;devel@hentges.net&amp;gt; (c) 2008&lt;br /&gt;
# License: GPL (see http://www.gnu.org/licenses/gpl.txt for a copy of the license)&lt;br /&gt;
#&lt;br /&gt;
# Filename: navit.sh&lt;br /&gt;
# Date: 20080105 (YMD)&lt;br /&gt;
#&lt;br /&gt;
#################################################################################&lt;br /&gt;
#&lt;br /&gt;
# 20080105 - v0.0.1	- Initial release&lt;br /&gt;
# 20090818 -            - Zoff &amp;lt;zoff@zoff.cc&amp;gt; addons and fixes&lt;br /&gt;
#&lt;br /&gt;
#&lt;br /&gt;
#################################################################################&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#################################################################################&lt;br /&gt;
#&lt;br /&gt;
# On devices with low memory (&amp;lt; 512Mb?) Navit will segfault on start.&lt;br /&gt;
# This can be worked around by doing&lt;br /&gt;
# &amp;quot;echo 1 &amp;gt; /proc/sys/vm/overcommit_memory&amp;quot;&lt;br /&gt;
#&lt;br /&gt;
#################################################################################&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
. /etc/profile&lt;br /&gt;
&lt;br /&gt;
set|grep LC&lt;br /&gt;
&lt;br /&gt;
#### Stop the speech dispatcher ####&lt;br /&gt;
/etc/init.d/speech-dispatcher stop&lt;br /&gt;
&lt;br /&gt;
#### Language Fix #################&lt;br /&gt;
set|grep LC&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
export LC_ALL=''&lt;br /&gt;
unset LC_ALL&lt;br /&gt;
export LANG=de_AT.utf8&lt;br /&gt;
&lt;br /&gt;
set|grep LC&lt;br /&gt;
&lt;br /&gt;
#### Start the speech dispatcher ####&lt;br /&gt;
/etc/init.d/speech-dispatcher start &amp;amp;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
set|grep LC&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# need cpu and display&lt;br /&gt;
mdbus -s org.freesmartphone.ousaged /org/freesmartphone/Usage org.freesmartphone.Usage.SetResourcePolicy Display enabled&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if test &amp;quot;`cat /proc/meminfo | grep ^MemTotal | awk '{print $2}'`&amp;quot; -lt &amp;quot;500000&amp;quot;&lt;br /&gt;
then&lt;br /&gt;
	if test &amp;quot;$USER&amp;quot; = &amp;quot;root&amp;quot;&lt;br /&gt;
	then&lt;br /&gt;
		echo &amp;quot;Enabling low-mem workaround...&amp;quot;&lt;br /&gt;
		echo 1 &amp;gt; /proc/sys/vm/overcommit_memory&lt;br /&gt;
	else&lt;br /&gt;
		echo &amp;quot;I need root-privs to enable the low-mem workaround!&amp;quot;&lt;br /&gt;
	fi&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
######### Start NAVIT NOW ############&lt;br /&gt;
&lt;br /&gt;
navit $*&lt;br /&gt;
	&lt;br /&gt;
#### Stop the speech dispatcher ####&lt;br /&gt;
&lt;br /&gt;
/etc/init.d/speech-dispatcher stop&lt;br /&gt;
&lt;br /&gt;
# release cpu and display&lt;br /&gt;
mdbus -s org.freesmartphone.ousaged /org/freesmartphone/Usage org.freesmartphone.Usage.SetResourcePolicy Display auto&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Save the &amp;lt;tt&amp;gt;navit.sh&amp;lt;/tt&amp;gt; script in:&lt;br /&gt;
  /usr/bin/navit.sh&lt;br /&gt;
Make the script executable:&lt;br /&gt;
  chmod u+x /usr/bin/navit.sh&lt;br /&gt;
Now you have to edit the desktop icon, so that it starts this script &amp;lt;tt&amp;gt;navit.sh&amp;lt;/tt&amp;gt; instead of the binary &amp;lt;tt&amp;gt;/usr/bin/navit&amp;lt;/tt&amp;gt;.&lt;br /&gt;
  nano /usr/share/applications/navit.desktop&lt;br /&gt;
Edit the line with &amp;lt;tt&amp;gt;Exec=...&amp;lt;/tt&amp;gt;, so that it starts the script &amp;lt;tt&amp;gt;navit.sh&amp;lt;/tt&amp;gt; instead of the navit binary.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[Desktop Entry]&lt;br /&gt;
Version=1.0&lt;br /&gt;
Name=Navit&lt;br /&gt;
Name[de]=Navit&lt;br /&gt;
Name[fr]=Navit&lt;br /&gt;
Comment=The open source vector based navigation program with routing engine&lt;br /&gt;
Comment[de]=Ein vektorbasiertes Navigationsprogramm&lt;br /&gt;
Comment[fr]=Le logiciel opensource de navigation vectorielle&lt;br /&gt;
Exec=/usr/bin/navit.sh&lt;br /&gt;
Icon=navit&lt;br /&gt;
StartupNotify=true&lt;br /&gt;
Terminal=false&lt;br /&gt;
Type=Application&lt;br /&gt;
Categories=GTK;Utility;Geography;&lt;br /&gt;
GenericName=Navit&lt;br /&gt;
GenericName[de]=Navit&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Alternatively''', you can make speech-dispatcher restart on resume, see http://trac.shr-project.org/trac/ticket/494&lt;br /&gt;
&lt;br /&gt;
=== Script to download OSM maps ===&lt;br /&gt;
[[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&lt;br /&gt;
dlOSM.sh &amp;lt;minimum latitude&amp;gt; &amp;lt;maximum latitude&amp;gt; &amp;lt;minimum longitude&amp;gt; &amp;lt;maximum longitude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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...&lt;br /&gt;
&lt;br /&gt;
dlOSM.sh:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/usr/bin/python&lt;br /&gt;
&lt;br /&gt;
import os&lt;br /&gt;
import sys&lt;br /&gt;
#import math&lt;br /&gt;
&lt;br /&gt;
def doIt(cmd):&lt;br /&gt;
  os.system(cmd)&lt;br /&gt;
&lt;br /&gt;
def getOsms(basename, minLat, maxLat, minLon, maxLon):&lt;br /&gt;
  '''basename - base name of map, maps are named {basename}{count}.osm&lt;br /&gt;
  minLat - latitude of the west side of the map&lt;br /&gt;
  maxLat - latitude of the east side of the map&lt;br /&gt;
  minLon - longitude of the north side of the map&lt;br /&gt;
  maxLon - longitude of the south side of the map'''&lt;br /&gt;
&lt;br /&gt;
  wgetCmdTemplate = 'wget -O %s%s.osm http://api.openstreetmap.org/api/0.6/map?bbox=%s,%s,%s,%s'&lt;br /&gt;
&lt;br /&gt;
  currLat = minLat&lt;br /&gt;
  mapCount = 0&lt;br /&gt;
  while currLat &amp;lt; maxLat:&lt;br /&gt;
    nextLat = min(currLat + 0.1, maxLat)&lt;br /&gt;
&lt;br /&gt;
    currLon = minLon&lt;br /&gt;
    while currLon &amp;lt; maxLon:&lt;br /&gt;
      nextLon = min(currLon + 0.1, maxLon)&lt;br /&gt;
&lt;br /&gt;
      doIt(wgetCmdTemplate % (basename, mapCount, currLon, currLat, nextLon, nextLat))&lt;br /&gt;
&lt;br /&gt;
      currLon = nextLon&lt;br /&gt;
      mapCount = mapCount + 1&lt;br /&gt;
&lt;br /&gt;
    currLat = nextLat&lt;br /&gt;
&lt;br /&gt;
(minLat, maxLat, minLon, maxLon) = map(float, sys.argv[1:])&lt;br /&gt;
getOsms('map', minLat, maxLat, minLon, maxLon)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;onlyinclude&amp;gt;&lt;br /&gt;
{{ApplicationBox|&lt;br /&gt;
Name=[[Navit]]|&lt;br /&gt;
Description=Navit is a car navigation system with routing engine.|&lt;br /&gt;
Screenshot=Screenshot-3.png|&lt;br /&gt;
Homepage=http://navit.sourceforge.net|&lt;br /&gt;
TestedOn=|&lt;br /&gt;
PackageName=&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:GPS Applications]]&lt;/div&gt;</summary>
		<author><name>Niebert</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Navit</id>
		<title>Navit</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Navit"/>
				<updated>2010-12-28T13:27:08Z</updated>
		
		<summary type="html">&lt;p&gt;Niebert: /* Speech Language */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Application|Navit}}&lt;br /&gt;
&lt;br /&gt;
As described on the [http://navit.sourceforge.net/ Navit home page],&lt;br /&gt;
&lt;br /&gt;
&amp;lt;i&amp;gt;&amp;quot;'''Navit''' is a car navigation system with routing engine.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
The current vehicle position is either read from gpsd or directly from NMEA GPS sensors.&amp;quot;&amp;lt;/i&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Some people say Navit is also a good choice for pedestrian and bicycle navigation.&lt;br /&gt;
&lt;br /&gt;
[[Image:Navit-2241.png|thumb|Navit-r2241]]&lt;br /&gt;
&lt;br /&gt;
== Acknowledgment ==&lt;br /&gt;
&lt;br /&gt;
Thanks to [[User:Alessandro | Alessandro]], stefan_schmidt, cp15 and all Navit developers I have done a small (&amp;quot;not really working&amp;quot;) preview of Navit on Neo1973 at [http://www.telemobilityforum.com/eng/ Telemobility Forum 2007]. Thanks to [http://gfoss.it GFoss] guys to invite me.&lt;br /&gt;
''[[User:Tyrael | Tyrael]]''&lt;br /&gt;
&lt;br /&gt;
==Setting up Navit==&lt;br /&gt;
&lt;br /&gt;
===Install Navit===&lt;br /&gt;
&lt;br /&gt;
==== Map Size ====&lt;br /&gt;
Of you use e.g. entire Germany in an rectangle form it will have more than 500MB.&lt;br /&gt;
Navit on FR works with maps in the size of less that 350MB. So split the larger areas in portions with a smaller size than 350MB. Otherwise Navit will not be able to process the maps.&lt;br /&gt;
&lt;br /&gt;
Change navit.xml to modify the used map bin-file, e.g. germany1.bin to germany2.bin&lt;br /&gt;
&lt;br /&gt;
==== Navit on FSO (OM2008.x,SHR,...) ====&lt;br /&gt;
&lt;br /&gt;
You can now simply add a feed from there : http://download.navit-project.org/navit/openmoko/svn/&lt;br /&gt;
&lt;br /&gt;
Essentially, to enable this directory as [[Om_2008.8_Installer#How to add a Repository ?|feed]] and install or update navit do:&lt;br /&gt;
* Only for the first time:&lt;br /&gt;
 echo src navit http://download.navit-project.org/navit/openmoko/svn &amp;gt; /etc/opkg/navit-feed.conf&lt;br /&gt;
 opkg update&lt;br /&gt;
&lt;br /&gt;
* Always:&lt;br /&gt;
 opkg install navit&lt;br /&gt;
&lt;br /&gt;
Navit will be auto-updated when you run opkg upgrade later&lt;br /&gt;
&lt;br /&gt;
Navit might not be able to use gpsd at startup:&lt;br /&gt;
 navit:plugin_load:can't load '/usr/lib/navit/vehicle/&lt;br /&gt;
 libvehicle_gpsd.so', Error 'libgps.so.16: cannot open shared object  &lt;br /&gt;
 file: No such file or directory'&lt;br /&gt;
 navit:vehicle_new:invalid type 'gpsd'&lt;br /&gt;
&lt;br /&gt;
to solve this issue (necessary for SHR):&lt;br /&gt;
&lt;br /&gt;
 opkg install libgps17&lt;br /&gt;
 ln -s /usr/lib/libgps.so.17 /usr/lib/libgps.so.16&lt;br /&gt;
&lt;br /&gt;
====Navit on Debian====&lt;br /&gt;
Navit is now in Debian [http://packages.debian.org/source/testing/navit testing] and [http://packages.debian.org/source/unstable/navit unstable].&lt;br /&gt;
&lt;br /&gt;
Add the following line to &amp;lt;tt&amp;gt;/etc/apt/sources.list&amp;lt;/tt&amp;gt; with e.g. editor &amp;lt;tt&amp;gt;vi&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;nano&amp;lt;/tt&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
     deb http://ftp.de.debian.org/debian unstable main&lt;br /&gt;
&lt;br /&gt;
Then update with apt-get:&lt;br /&gt;
&lt;br /&gt;
     apt-get update&lt;br /&gt;
&lt;br /&gt;
The up-to-date source package is available through git at '''git://git.debian.org/git/collab-maint/navit.git''' ([http://git.debian.org/?p=collab-maint/navit.git;a=summary browse]).&lt;br /&gt;
&lt;br /&gt;
====Navit on Android====&lt;br /&gt;
Download current version [http://download.navit-project.org/navit/android_armv4t/svn/ navit-current.apk] on your Android. See [[Android usage]] for installing Apps on your [http://code.google.com/p/android-on-freerunner/wiki/Applications Android on Freerunner].&lt;br /&gt;
&lt;br /&gt;
   see [http://wiki.navit-project.org/index.php/Navit_on_Android Navit on Android] Navit Project Wiki&lt;br /&gt;
&lt;br /&gt;
You can use one download map which you have to copy on the FAT32 partition of your SD card as '''&amp;lt;tt&amp;gt;navitmap.bin&amp;lt;/tt&amp;gt;'''. &lt;br /&gt;
&lt;br /&gt;
During first use after installation, navit for android will ask you, if you want to intall [http://espeak.sourceforge.net/ TTS] (Text to Speech [http://www.speech.cs.cmu.edu/flite/ festival-lite]). If you decide to install TTS then Navit crashes (with version [http://download.navit-project.org/navit/android_armv4t/svn/ navit-svn-3495.apk]).&lt;br /&gt;
&lt;br /&gt;
====Navit on QtMoko====&lt;br /&gt;
You can find some information for installing Navit in the [[QtMoko]] article.&lt;br /&gt;
&lt;br /&gt;
===Set up the maps you want===&lt;br /&gt;
&lt;br /&gt;
====The Easy Way====&lt;br /&gt;
Use [http://maps.navit-project.org/download/ Navit Map Extractor] based on [http://www.openstreetmap.org OpenStreetMap].  Navigate to the region you want, and click &amp;quot;select&amp;quot; to select region, select the area you want, then click download. [[Image:osmdownload.jpg|200px|thumb|Download OpenStreetMaps]] &lt;br /&gt;
&lt;br /&gt;
If you just want the entire planet (as of this writing, ~1.8 GB), it's [http://maps.navit-project.org/planet.bin here].&lt;br /&gt;
&lt;br /&gt;
[http://downloads.cloudmade.com/ CloudMade] also has up-to-date maps from OpenStreetMap by country (by state in the US).&lt;br /&gt;
&lt;br /&gt;
{{Note|Be aware of the map size that can be used on your FR (On Android working with map sizes less than 350MB is O.K. on SHR 450MB also work, so SHR may not have a map size limit)}}&lt;br /&gt;
&lt;br /&gt;
====From the command line====&lt;br /&gt;
'''OpenStreetMap''' - follow directions at http://wiki.navit-project.org/index.php/OpenStreetMaps&lt;br /&gt;
* There are some pre-processed, up-to-date maps that can be grabbed with wget:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;wget -O germany.bin http://maps.navit-project.org/api/map/?bbox=5.185546875,46.845703125,15.46875,55.634765625&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can put a shell script into &amp;lt;tt&amp;gt;/usr/local/bin/update-maps&amp;lt;/tt&amp;gt;&lt;br /&gt;
  #!/bin/sh&lt;br /&gt;
  echo &amp;quot;Update OpenstreetMaps&amp;quot;&lt;br /&gt;
  echo &amp;quot;---------------------&amp;quot;&lt;br /&gt;
  echo &amp;quot;  download and store OSM maps on /media/card/maps&amp;quot;&lt;br /&gt;
  wget -O /media/card/maps/germany.bin http://maps.navit-project.org/api/map/?bbox=5.185546875,46.845703125,15.46875,55.634765625&lt;br /&gt;
  echo &amp;quot;update germany.bin finished&amp;quot;&lt;br /&gt;
You have to make the script executable with:&lt;br /&gt;
  chmod u+x /usr/local/bin/update-maps&lt;br /&gt;
Create a maps-directory (e.g. with path &amp;lt;tt&amp;gt;/media/card/maps/&amp;lt;/tt&amp;gt;) on your SD-card:&lt;br /&gt;
  mkdir /media/card/maps/&lt;br /&gt;
Then you can update with this script all your maps on the SD-card if you have internet connection:&lt;br /&gt;
  update-maps&lt;br /&gt;
* Here's an example to get the maps for the area around Seattle, WA:&lt;br /&gt;
** Find the map coordinates using http://informationfreeway.org/?lat=47.520270037501454&amp;amp;lon=-122.20130713167327&amp;amp;zoom=9&amp;amp;layers=B000F000&lt;br /&gt;
** 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):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;wget -O map1.osm http://www.openstreetmap.org/api/0.5/map?bbox=-122.2,47.5,-122,47.7&lt;br /&gt;
wget -O map2.osm http://www.openstreetmap.org/api/0.5/map?bbox=-122.4,47.5,-122.2,47.7&lt;br /&gt;
wget -O map3.osm http://www.openstreetmap.org/api/0.5/map?bbox=-122.4,47.3,-122.2,47.5&lt;br /&gt;
wget -O map4.osm http://www.openstreetmap.org/api/0.5/map?bbox=-122.2,47.3,-122,47.5&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* 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:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;cat *.osm | osm2navit --dedupe-ways mymap.bin&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Copy the map to the NEO===&lt;br /&gt;
To copy the map using scp (replace ''/directory'' as is appropriate in the following):&lt;br /&gt;
&amp;lt;pre&amp;gt;scp mymap.bin root@neo:/directory&amp;lt;/pre&amp;gt;&lt;br /&gt;
If you copy the map &amp;lt;tt&amp;gt;germany.bin&amp;lt;/tt&amp;gt; to the SD card on the Neo use e.g. in the directory &amp;lt;tt&amp;gt;maps&amp;lt;/tt&amp;gt;:&lt;br /&gt;
  scp germany.bin root@neo:/media/card/maps&lt;br /&gt;
Once it's somewhere on the NEO, Navit needs to know that it's there.&lt;br /&gt;
&amp;lt;pre&amp;gt;mkdir ~/.navit&lt;br /&gt;
cp /usr/share/navit/navit.xml ~/.navit/navit.xml&lt;br /&gt;
vi ~/.navit/navit.xml&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
note that in some version navit includes other xml files from /usr/share/navit, for instance mapsets are now defined in maps.xml.&lt;br /&gt;
&lt;br /&gt;
===Enable Maps in  Navit ===&lt;br /&gt;
Now you must let Navit know the maps you want to use. Several disabled mapset-tags are predefined. &lt;br /&gt;
In the navit.xml file, put the following into a new &amp;lt;mapset&amp;gt; section (and disable the default &amp;lt;mapset&amp;gt; just above - or else it will not work):&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;map type=&amp;quot;binfile&amp;quot; enabled=&amp;quot;yes&amp;quot; data=&amp;quot;/directory&amp;quot; /&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
For example with a &amp;lt;tt&amp;gt;germany.bin&amp;lt;/tt&amp;gt; on the SD-card you use:&lt;br /&gt;
 &amp;lt;mapset enabled=&amp;quot;yes&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;map type=&amp;quot;binfile&amp;quot; enabled=&amp;quot;yes&amp;quot; data=&amp;quot;/media/card/maps/germany.bin&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;/mapset&amp;gt;&lt;br /&gt;
or if you store all downloaded maps in the directory &amp;lt;tt&amp;gt;/media/card/maps&amp;lt;/tt&amp;gt; then add the following lines to &amp;lt;tt&amp;gt;navit.xml&amp;lt;/tt&amp;gt;.&lt;br /&gt;
 &amp;lt;mapset enabled=&amp;quot;yes&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;map type=&amp;quot;binfile&amp;quot; enabled=&amp;quot;yes&amp;quot; data=&amp;quot;/media/card/maps/*.bin&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;/mapset&amp;gt;&lt;br /&gt;
{{Note|this will only load the first map that machtes *.bin (its a bug/feature)!}}&lt;br /&gt;
{{Note|that the bin-file and the map set both have to be enabled}}&lt;br /&gt;
&lt;br /&gt;
Disable unused mapset sections by setting enabled to &amp;lt;tt&amp;gt;no&amp;lt;/tt&amp;gt;, e.g. the pre-installed sample maps at line 370 in &amp;lt;tt&amp;gt;navit.xml&amp;lt;/tt&amp;gt;.&lt;br /&gt;
 &amp;lt;mapset enabled=&amp;quot;no&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xi:include href=&amp;quot;$NAVIT_SHAREDIR/maps/*.xml&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;/mapset&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Run navit&lt;br /&gt;
** Start [[gllin]] (for GTA01)&lt;br /&gt;
** Start [[gpsd]] ( gpsd /tmp/nmeaNP )&lt;br /&gt;
** Start navit&lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
===Tips and Tricks===&lt;br /&gt;
====Center on Vehicle====&lt;br /&gt;
Navit supports a &amp;quot;always center on vehicle&amp;quot; option. &lt;br /&gt;
&lt;br /&gt;
To activate this add&lt;br /&gt;
 follow=&amp;quot;3&amp;quot;&lt;br /&gt;
to the &amp;lt;tt&amp;gt;vehicle&amp;lt;/tt&amp;gt; tag in navit.xml. &lt;br /&gt;
   &amp;lt;vehicle name=&amp;quot;Local GPS&amp;quot; profilename=&amp;quot;car&amp;quot; enabled=&amp;quot;yes&amp;quot; active=&amp;quot;1&amp;quot; follow=&amp;quot;3&amp;quot; &lt;br /&gt;
           source=&amp;quot;gpsd://localhost&amp;quot; gpsd_query=&amp;quot;w+xj&amp;quot; color=&amp;quot;#0000ff&amp;quot;&amp;gt;&lt;br /&gt;
The &amp;quot;3&amp;quot; causes to give the gui time to do something between the repaints (drag the map or browse the menu). When its set to &amp;quot;1&amp;quot; navit does nothing more than repainting the map continuously.&lt;br /&gt;
&lt;br /&gt;
==Routing==&lt;br /&gt;
[[Image:navit_main_menu.png|100px|thumb|Navit Main Menu]]&lt;br /&gt;
[[Image:navit_action_menu.png|100px|thumb|Navit Action Menu]]&lt;br /&gt;
The main menu has 4 submenus&lt;br /&gt;
* Action&lt;br /&gt;
* Settings&lt;br /&gt;
* Tools&lt;br /&gt;
* Route&lt;br /&gt;
Normally you would assume the entering a town can be found under the submenu Route, but Town is hidden under submenu Action. Route will provide the description of the route as text and a height profile of your trip. Tools was not working on 08/2009 Version of navit on SHR (see [[SHR User Manual]]).&lt;br /&gt;
&lt;br /&gt;
===Preselect Country of Destination===&lt;br /&gt;
Normally you have to select the the country first before choosing the town and street name. It might be more convenient for you if you preselect the country already with your settings.&lt;br /&gt;
The article [[Configure SHR for German-speaking use]] had a preselection of the country &amp;quot;Austria&amp;quot; in Navit. Adapt the localization for your country and maps in Navit, so that do not need to select the country anymore.&lt;br /&gt;
&lt;br /&gt;
Actually Navit derives the preselected country from the calling environments's locale (see [[Localization]]). Make sure, that LC_ALL ist '''not''' set though. Otherwise navit fails to interprete gpsd output and you end up with strange gps coordinates. When starting from gui (e.g. illume) you can achieve this by supplying an executable script /usr/local/bin/navit which might look like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
#export LANG=xx_YY.UTF-8   # Uncomment this line and replace xx_YY, if &lt;br /&gt;
                           # your gui's locale is not setup accordingly. &lt;br /&gt;
unset LC_ALL&lt;br /&gt;
exec /usr/bin/navit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
So a valid locale environment preselecting search for German cities would look like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@om-gta02 ~ $ locale&lt;br /&gt;
LANG=de_DE.UTF-8&lt;br /&gt;
LC_CTYPE=&amp;quot;de_DE.UTF-8&amp;quot;&lt;br /&gt;
LC_NUMERIC=&amp;quot;de_DE.UTF-8&amp;quot;&lt;br /&gt;
...&lt;br /&gt;
LC_MEASUREMENT=&amp;quot;de_DE.UTF-8&amp;quot;&lt;br /&gt;
LC_IDENTIFICATION=&amp;quot;de_DE.UTF-8&amp;quot;&lt;br /&gt;
LC_ALL=&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note that there's a limited number of [http://wiki.navit-project.org/index.php/OpenStreetMaps#Known_countries_by_osm2navit countries supported by osm2navit] and Navit's search function.&lt;br /&gt;
&lt;br /&gt;
===Select Destination===&lt;br /&gt;
[[Image:navit_select_country.png|100px|thumb|Select Country]]&lt;br /&gt;
&lt;br /&gt;
You can the select your destination in the main menu:&lt;br /&gt;
* via '''Bookmarks''', if you saved the previous location or&lt;br /&gt;
* via '''Town''', if you want to enter a new destination. If you use a destination more frequently, just save the location as bookmark.  &lt;br /&gt;
&lt;br /&gt;
When you click in the main menu on &amp;lt;i&amp;gt;Action&amp;lt;/i&amp;gt; the &amp;lt;i&amp;gt;Action&amp;lt;/i&amp;gt; menu appears with 4 subitems.&lt;br /&gt;
* Bookmarks of previous locations (stored in &amp;lt;tt&amp;gt;/home/root/.navit/destinations.txt&amp;lt;/tt&amp;gt;&lt;br /&gt;
* a globe showing a location as destination,&lt;br /&gt;
* a vehicle that shows the current GPS position of the vehicle. If the freerunner receives no GPS signal the locations of the vehicle is set to 0.0.0N and 0.0.0E. &lt;br /&gt;
* Town is the action to enter a destination.&lt;br /&gt;
* Quit navit is the last action in this submenu.&lt;br /&gt;
&lt;br /&gt;
Select the icon &amp;lt;i&amp;gt;Town&amp;lt;/i&amp;gt; in the main menu (if you see the map, you can get to the main menu just by clicking on the map).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Select Country====&lt;br /&gt;
[[Image:navit_country_selected.png|100px|thumb|Country Options]]&lt;br /&gt;
[[Image:navit_destination_details.png|100px|thumb|Enter Bookmark Details]]&lt;br /&gt;
&lt;br /&gt;
Before you can search for City you have to select a Country. To do that, click on the icon in the left upper corner of the search field (could look like a white square with blue top-left quadrant).&lt;br /&gt;
&lt;br /&gt;
Just type in the first letter of the country (e.g. &amp;quot;G&amp;quot;) and Navit makes suggestions (e.g. Gabon, Germany).&lt;br /&gt;
&lt;br /&gt;
====Enter Town====&lt;br /&gt;
&lt;br /&gt;
When you have selected the country (e.g. Germany) the flag appears and you can select the town.&lt;br /&gt;
Then you can save the town as bookmark and enter more details like streets to the selected town.&lt;br /&gt;
&lt;br /&gt;
The search is still a little buggy.&lt;br /&gt;
&lt;br /&gt;
====Enter Street====&lt;br /&gt;
You can enter the street and streetnumber and save it as bookmark when you use the destination often. &lt;br /&gt;
&lt;br /&gt;
====Bookmarks====&lt;br /&gt;
Navigation and planning of routes with Navit can be organized with bookmarks.&lt;br /&gt;
* set a bookmark as current position &lt;br /&gt;
* set a bookmark as destination&lt;br /&gt;
Then you can see the suggested route in blue on the map. &lt;br /&gt;
&lt;br /&gt;
Bookmarks are stored in:&lt;br /&gt;
  /home/root/.navit/bookmark.txt&lt;br /&gt;
&lt;br /&gt;
The GPS-location (if GPS-signal is available) will be highlighted with a small blue circle. The color of the circle can be defined via editing the &amp;lt;tt&amp;gt;navit.xml&amp;lt;/tt&amp;gt; (see [http://wiki.openmoko.org/wiki/Navit#Set_Cursor_Color select cursor color]).&lt;br /&gt;
* a dot in the blue circle is indicating that your are not moving,&lt;br /&gt;
* an arrowhead is indicating the direction, when you are moving.&lt;br /&gt;
Then routing can start and in the map the route is highlighted.&lt;br /&gt;
&lt;br /&gt;
====Screenshots in Navit Documentation====&lt;br /&gt;
The screenshots are made with &amp;lt;tt&amp;gt;gpe-scap&amp;lt;/tt&amp;gt;, that can be installed by:&lt;br /&gt;
  opkg install gpe-scap&lt;br /&gt;
if not installed already. Navigation through your installed application navit and login via ssh on your Freerunner &lt;br /&gt;
  ssh -l root 192.168.0.202&lt;br /&gt;
assuming that your Freerunner has the IP 192.168.0.202.&lt;br /&gt;
Any time you want to make a screenshot just start via your desktop computer &lt;br /&gt;
  gpe-scap&lt;br /&gt;
and save the screenshot to you freerunner.&lt;br /&gt;
Download the screenshot to your desktop computer with&lt;br /&gt;
  desktop# sftp://root@192.168.0.202&lt;br /&gt;
&lt;br /&gt;
== News ==&lt;br /&gt;
A deeper look into configuring Navit can be found in the [http://wiki.navit-project.org/index.php/Configuring_Navit Navit-Wiki].&lt;br /&gt;
&lt;br /&gt;
=== Getting the display right ===&lt;br /&gt;
&lt;br /&gt;
If using SHR the keyboard in country/town/street search mode does not fit on the street, make sure your gui configuration is set to the following line:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;gui type=&amp;quot;internal&amp;quot; font_size=&amp;quot;350&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The example line provided for freerunners hides some important icons. Namely, instead of typing your city name first, you will first have to click the button on the top left, to go into country search mode. Enter your country name, then the city name, in order to enable the search function. This requires your map data to be searchable.&lt;br /&gt;
&lt;br /&gt;
You can start in fullscreen mode with fullscreen=&amp;quot;1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;gui type=&amp;quot;internal&amp;quot; font_size=&amp;quot;350&amp;quot; fullscreen=&amp;quot;1&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you want to enable &amp;quot;+&amp;quot; and &amp;quot;-&amp;quot; as Zoom-In and Zoom-Out buttons on the bottom of the map enable the button with the following xml-tags:&lt;br /&gt;
 &amp;lt;osd enabled=&amp;quot;yes&amp;quot; type=&amp;quot;button&amp;quot; x=&amp;quot;-96&amp;quot; y=&amp;quot;-96&amp;quot; command=&amp;quot;zoom_in()&amp;quot;  src=&amp;quot;zoom_in.xpm&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;osd enabled=&amp;quot;yes&amp;quot; type=&amp;quot;button&amp;quot; x=&amp;quot;0&amp;quot;   y=&amp;quot;-96&amp;quot; command=&amp;quot;zoom_out()&amp;quot; src=&amp;quot;zoom_out.xpm&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can find sample Layouts here:&lt;br /&gt;
[http://wiki.navit-project.org/index.php/OSD_Layouts Sample Layouts from navit-wiki]&lt;br /&gt;
&lt;br /&gt;
=== Set Cursor Color ===&lt;br /&gt;
[[Image:red_cursor.png|90px|thumb|Red Cursor]]&lt;br /&gt;
If you navigate, the route is marked in blue color on the map. The current position of the vehicle is displayed by a blue circle. The circle is sometimes difficult to see on the blue track. If you want to change the color, size  of the vehicle cursor edit the vehicle XML-environment in navit.xml (e.g. replace blue color #0000FF with red color #FF0000 -- for details of  [http://html-color-codes.info Color Codes] select color, copy and paste code in &amp;lt;tt&amp;gt;navit.xml&amp;lt;/tt&amp;gt;)  &lt;br /&gt;
&lt;br /&gt;
     &amp;lt;vehicle name=&amp;quot;Local GPS&amp;quot; profilename=&amp;quot;car&amp;quot; enabled=&amp;quot;yes&amp;quot; active=&amp;quot;1&amp;quot; source=&amp;quot;gpsd://localhost&amp;quot; gpsd_query=&amp;quot;w+xj&amp;quot; color=&amp;quot;#0000ff&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;!-- Navit can write a tracklog in several formats (gpx, nmea or textfile): --&amp;gt;&lt;br /&gt;
        &amp;lt;!-- &amp;lt;log type=&amp;quot;gpx&amp;quot; data=&amp;quot;track_%Y%m%d-%i.gpx&amp;quot; flush_size=&amp;quot;1000&amp;quot; flush_time=&amp;quot;30&amp;quot;/&amp;gt; --&amp;gt;&lt;br /&gt;
            &amp;lt;cursor w=&amp;quot;56&amp;quot; h=&amp;quot;56&amp;quot;&amp;gt;&lt;br /&gt;
               &amp;lt;!-- tag defines the circle for the cursor --&amp;gt;&lt;br /&gt;
                &amp;lt;itemgra&amp;gt;&lt;br /&gt;
                    &amp;lt;circle color=&amp;quot;#ff0000&amp;quot; radius=&amp;quot;42&amp;quot; width=&amp;quot;6&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;0&amp;quot; y=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/circle&amp;gt;&lt;br /&gt;
                   &amp;lt;circle color=&amp;quot;#ffffff&amp;quot; radius=&amp;quot;48&amp;quot; width=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;0&amp;quot; y=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/circle&amp;gt;&lt;br /&gt;
                   &amp;lt;circle color=&amp;quot;#ffffff&amp;quot; radius=&amp;quot;36&amp;quot; width=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;0&amp;quot; y=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/circle&amp;gt;&lt;br /&gt;
                &amp;lt;/itemgra&amp;gt;&lt;br /&gt;
               &amp;lt;!-- tag defines the dot when the vehicle is not moving --&amp;gt;&lt;br /&gt;
                &amp;lt;itemgra speed_range=&amp;quot;-2&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;polyline color=&amp;quot;#ff0000&amp;quot; width=&amp;quot;6&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;1&amp;quot; y=&amp;quot;1&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;1&amp;quot; y=&amp;quot;-1&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;-1&amp;quot; y=&amp;quot;-1&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;-1&amp;quot; y=&amp;quot;-1&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/polyline&amp;gt;&lt;br /&gt;
                  &amp;lt;circle color=&amp;quot;#ffffff&amp;quot; radius=&amp;quot;9&amp;quot; width=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;0&amp;quot; y=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/circle&amp;gt;&lt;br /&gt;
                &amp;lt;/itemgra&amp;gt;&lt;br /&gt;
                &amp;lt;!-- This itemgra-tag defines the arrow when the vehicle moves --&amp;gt;&lt;br /&gt;
                &amp;lt;itemgra speed_range=&amp;quot;3-&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;polyline color=&amp;quot;#ff0000&amp;quot; width=&amp;quot;6&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;-7&amp;quot; y=&amp;quot;-10&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;0&amp;quot; y=&amp;quot;12&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;7&amp;quot; y=&amp;quot;-10&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/polyline&amp;gt;&lt;br /&gt;
                  &amp;lt;polyline color=&amp;quot;#ffffff&amp;quot; width=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;+10&amp;quot; y=&amp;quot;-10&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;3&amp;quot; y=&amp;quot;15&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/polyline&amp;gt;&lt;br /&gt;
                    &amp;lt;polyline color=&amp;quot;#ffffff&amp;quot; width=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;-10&amp;quot; y=&amp;quot;-10&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;-3&amp;quot; y=&amp;quot;15&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/polyline&amp;gt;&lt;br /&gt;
                &amp;lt;/itemgra&amp;gt;&lt;br /&gt;
        &amp;lt;/cursor&amp;gt;&lt;br /&gt;
    &amp;lt;/vehicle&amp;gt;&lt;br /&gt;
The following screenshot show Navit with a red cursor on a blue track:&lt;br /&gt;
&lt;br /&gt;
[[Image:navit_color_cursor.png|200px|thumb|Red Cursor Color on blue track - vehicle not moving]]&lt;br /&gt;
&lt;br /&gt;
=== Speech ===&lt;br /&gt;
Navit can speak if you install [http://espeak.sourceforge.net/ eSpeak] + [http://www.freebsoft.org/speechd speech-dispatcher] and updates your navit.xml file.&lt;br /&gt;
&lt;br /&gt;
If you want navit using your language, and setting LC_MESSAGES fails due to missing glibc locale, set the enviroment variable LANGUAGE. For instance running&lt;br /&gt;
  LANGUAGE=de navit&lt;br /&gt;
will set the ui and output to german.&lt;br /&gt;
&lt;br /&gt;
For SHR there is a big german localization patch see [[Configure SHR for German-speaking use]].&lt;br /&gt;
&lt;br /&gt;
One way to configure speech output:&lt;br /&gt;
&lt;br /&gt;
* mokoTTS aims to integrate these packages in OM:&lt;br /&gt;
http://projects.openmoko.org/projects/mokotts/&lt;br /&gt;
&lt;br /&gt;
install espeak, dotconf, and then speech-dispatcher.&lt;br /&gt;
note: running 2008.8 updating from zecke's &amp;quot;testing&amp;quot; repo does not require &amp;quot;dotconf&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Speech Language ====&lt;br /&gt;
To change the speech tag in navit.xml:&lt;br /&gt;
  &amp;lt;speech type=&amp;quot;cmdline&amp;quot; data=&amp;quot;spd-say '%s'&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;'''spd-say -l fr '%s''''&amp;quot; for using the French voice for example.&lt;br /&gt;
* &amp;quot;'''spd-say -l de '%s''''&amp;quot; for using the German voice for example.&lt;br /&gt;
&lt;br /&gt;
{{Note|You can check speech dispatcher output from the shell&lt;br /&gt;
  spd-say --language=de Output-String&lt;br /&gt;
You can replace the --language by -l }}&lt;br /&gt;
Example:&lt;br /&gt;
  spd-say --language=de \&amp;quot;Dies ist die Winterstraße 23\&amp;quot;&lt;br /&gt;
The speech-dispatcher is blocking the audio after suspend. So after a suspend you will hear no ringtone, when a phone call is coming in and you cannot listen do audio files.&lt;br /&gt;
A solution is to disable starting of speech-dispatcher with:&lt;br /&gt;
  update-rc.d -f speech-dispatcher remove&lt;br /&gt;
Then the speech-dispatcher should be started if and only if navit is running and shut down when navit is closed.&lt;br /&gt;
&lt;br /&gt;
Furthermore navit should be started indirect with a script &amp;lt;tt&amp;gt;navit.sh&amp;lt;/tt&amp;gt; instead of a direct start with the binary located in &amp;lt;tt&amp;gt;/usr/bin/navit&amp;lt;/tt&amp;gt;. The script &amp;lt;tt&amp;gt;navit.sh&amp;lt;/tt&amp;gt; listed below starts speech-dispatcher before navit, and stops it afterwards. See http://lists.openmoko.org/nabble.html#nabble-td1088795&lt;br /&gt;
&lt;br /&gt;
The following script is doing the suggested procedure. This script includes a language fix for Austria (see [[Configure SHR for German-speaking use]]).&lt;br /&gt;
  export LANG=de_AT.utf8&lt;br /&gt;
Replace '''&amp;lt;tt&amp;gt;de_AT&amp;lt;/tt&amp;gt;''' in this line with the appropriate language variable in the following script &amp;lt;tt&amp;gt;navit.sh&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&amp;lt;pre&amp;gt;Hallo Patsy,spd-say -l de '%s'&lt;br /&gt;
#! /bin/sh&lt;br /&gt;
#&lt;br /&gt;
# Copyright Matthias Hentges &amp;lt;devel@hentges.net&amp;gt; (c) 2008&lt;br /&gt;
# License: GPL (see http://www.gnu.org/licenses/gpl.txt for a copy of the license)&lt;br /&gt;
#&lt;br /&gt;
# Filename: navit.sh&lt;br /&gt;
# Date: 20080105 (YMD)&lt;br /&gt;
#&lt;br /&gt;
#################################################################################&lt;br /&gt;
#&lt;br /&gt;
# 20080105 - v0.0.1	- Initial release&lt;br /&gt;
# 20090818 -            - Zoff &amp;lt;zoff@zoff.cc&amp;gt; addons and fixes&lt;br /&gt;
#&lt;br /&gt;
#&lt;br /&gt;
#################################################################################&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#################################################################################&lt;br /&gt;
#&lt;br /&gt;
# On devices with low memory (&amp;lt; 512Mb?) Navit will segfault on start.&lt;br /&gt;
# This can be worked around by doing&lt;br /&gt;
# &amp;quot;echo 1 &amp;gt; /proc/sys/vm/overcommit_memory&amp;quot;&lt;br /&gt;
#&lt;br /&gt;
#################################################################################&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
. /etc/profile&lt;br /&gt;
&lt;br /&gt;
set|grep LC&lt;br /&gt;
&lt;br /&gt;
#### Stop the speech dispatcher ####&lt;br /&gt;
/etc/init.d/speech-dispatcher stop&lt;br /&gt;
&lt;br /&gt;
#### Language Fix #################&lt;br /&gt;
set|grep LC&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
export LC_ALL=''&lt;br /&gt;
unset LC_ALL&lt;br /&gt;
export LANG=de_AT.utf8&lt;br /&gt;
&lt;br /&gt;
set|grep LC&lt;br /&gt;
&lt;br /&gt;
#### Start the speech dispatcher ####&lt;br /&gt;
/etc/init.d/speech-dispatcher start &amp;amp;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
set|grep LC&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# need cpu and display&lt;br /&gt;
mdbus -s org.freesmartphone.ousaged /org/freesmartphone/Usage org.freesmartphone.Usage.SetResourcePolicy Display enabled&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if test &amp;quot;`cat /proc/meminfo | grep ^MemTotal | awk '{print $2}'`&amp;quot; -lt &amp;quot;500000&amp;quot;&lt;br /&gt;
then&lt;br /&gt;
	if test &amp;quot;$USER&amp;quot; = &amp;quot;root&amp;quot;&lt;br /&gt;
	then&lt;br /&gt;
		echo &amp;quot;Enabling low-mem workaround...&amp;quot;&lt;br /&gt;
		echo 1 &amp;gt; /proc/sys/vm/overcommit_memory&lt;br /&gt;
	else&lt;br /&gt;
		echo &amp;quot;I need root-privs to enable the low-mem workaround!&amp;quot;&lt;br /&gt;
	fi&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
######### Start NAVIT NOW ############&lt;br /&gt;
&lt;br /&gt;
navit $*&lt;br /&gt;
	&lt;br /&gt;
#### Stop the speech dispatcher ####&lt;br /&gt;
&lt;br /&gt;
/etc/init.d/speech-dispatcher stop&lt;br /&gt;
&lt;br /&gt;
# release cpu and display&lt;br /&gt;
mdbus -s org.freesmartphone.ousaged /org/freesmartphone/Usage org.freesmartphone.Usage.SetResourcePolicy Display auto&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Save the &amp;lt;tt&amp;gt;navit.sh&amp;lt;/tt&amp;gt; script in:&lt;br /&gt;
  /usr/bin/navit.sh&lt;br /&gt;
Make the script executable:&lt;br /&gt;
  chmod u+x /usr/bin/navit.sh&lt;br /&gt;
Now you have to edit the desktop icon, so that it starts this script &amp;lt;tt&amp;gt;navit.sh&amp;lt;/tt&amp;gt; instead of the binary &amp;lt;tt&amp;gt;/usr/bin/navit&amp;lt;/tt&amp;gt;.&lt;br /&gt;
  nano /usr/share/applications/navit.desktop&lt;br /&gt;
Edit the line with &amp;lt;tt&amp;gt;Exec=...&amp;lt;/tt&amp;gt;, so that it starts the script &amp;lt;tt&amp;gt;navit.sh&amp;lt;/tt&amp;gt; instead of the navit binary.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[Desktop Entry]&lt;br /&gt;
Version=1.0&lt;br /&gt;
Name=Navit&lt;br /&gt;
Name[de]=Navit&lt;br /&gt;
Name[fr]=Navit&lt;br /&gt;
Comment=The open source vector based navigation program with routing engine&lt;br /&gt;
Comment[de]=Ein vektorbasiertes Navigationsprogramm&lt;br /&gt;
Comment[fr]=Le logiciel opensource de navigation vectorielle&lt;br /&gt;
Exec=/usr/bin/navit.sh&lt;br /&gt;
Icon=navit&lt;br /&gt;
StartupNotify=true&lt;br /&gt;
Terminal=false&lt;br /&gt;
Type=Application&lt;br /&gt;
Categories=GTK;Utility;Geography;&lt;br /&gt;
GenericName=Navit&lt;br /&gt;
GenericName[de]=Navit&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Alternatively''', you can make speech-dispatcher restart on resume, see http://trac.shr-project.org/trac/ticket/494&lt;br /&gt;
&lt;br /&gt;
=== Script to download OSM maps ===&lt;br /&gt;
[[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&lt;br /&gt;
dlOSM.sh &amp;lt;minimum latitude&amp;gt; &amp;lt;maximum latitude&amp;gt; &amp;lt;minimum longitude&amp;gt; &amp;lt;maximum longitude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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...&lt;br /&gt;
&lt;br /&gt;
dlOSM.sh:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/usr/bin/python&lt;br /&gt;
&lt;br /&gt;
import os&lt;br /&gt;
import sys&lt;br /&gt;
#import math&lt;br /&gt;
&lt;br /&gt;
def doIt(cmd):&lt;br /&gt;
  os.system(cmd)&lt;br /&gt;
&lt;br /&gt;
def getOsms(basename, minLat, maxLat, minLon, maxLon):&lt;br /&gt;
  '''basename - base name of map, maps are named {basename}{count}.osm&lt;br /&gt;
  minLat - latitude of the west side of the map&lt;br /&gt;
  maxLat - latitude of the east side of the map&lt;br /&gt;
  minLon - longitude of the north side of the map&lt;br /&gt;
  maxLon - longitude of the south side of the map'''&lt;br /&gt;
&lt;br /&gt;
  wgetCmdTemplate = 'wget -O %s%s.osm http://api.openstreetmap.org/api/0.6/map?bbox=%s,%s,%s,%s'&lt;br /&gt;
&lt;br /&gt;
  currLat = minLat&lt;br /&gt;
  mapCount = 0&lt;br /&gt;
  while currLat &amp;lt; maxLat:&lt;br /&gt;
    nextLat = min(currLat + 0.1, maxLat)&lt;br /&gt;
&lt;br /&gt;
    currLon = minLon&lt;br /&gt;
    while currLon &amp;lt; maxLon:&lt;br /&gt;
      nextLon = min(currLon + 0.1, maxLon)&lt;br /&gt;
&lt;br /&gt;
      doIt(wgetCmdTemplate % (basename, mapCount, currLon, currLat, nextLon, nextLat))&lt;br /&gt;
&lt;br /&gt;
      currLon = nextLon&lt;br /&gt;
      mapCount = mapCount + 1&lt;br /&gt;
&lt;br /&gt;
    currLat = nextLat&lt;br /&gt;
&lt;br /&gt;
(minLat, maxLat, minLon, maxLon) = map(float, sys.argv[1:])&lt;br /&gt;
getOsms('map', minLat, maxLat, minLon, maxLon)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;onlyinclude&amp;gt;&lt;br /&gt;
{{ApplicationBox|&lt;br /&gt;
Name=[[Navit]]|&lt;br /&gt;
Description=Navit is a car navigation system with routing engine.|&lt;br /&gt;
Screenshot=Screenshot-3.png|&lt;br /&gt;
Homepage=http://navit.sourceforge.net|&lt;br /&gt;
TestedOn=|&lt;br /&gt;
PackageName=&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:GPS Applications]]&lt;/div&gt;</summary>
		<author><name>Niebert</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Navit</id>
		<title>Navit</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Navit"/>
				<updated>2010-12-28T13:26:46Z</updated>
		
		<summary type="html">&lt;p&gt;Niebert: /* Speech Language */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Application|Navit}}&lt;br /&gt;
&lt;br /&gt;
As described on the [http://navit.sourceforge.net/ Navit home page],&lt;br /&gt;
&lt;br /&gt;
&amp;lt;i&amp;gt;&amp;quot;'''Navit''' is a car navigation system with routing engine.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
The current vehicle position is either read from gpsd or directly from NMEA GPS sensors.&amp;quot;&amp;lt;/i&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Some people say Navit is also a good choice for pedestrian and bicycle navigation.&lt;br /&gt;
&lt;br /&gt;
[[Image:Navit-2241.png|thumb|Navit-r2241]]&lt;br /&gt;
&lt;br /&gt;
== Acknowledgment ==&lt;br /&gt;
&lt;br /&gt;
Thanks to [[User:Alessandro | Alessandro]], stefan_schmidt, cp15 and all Navit developers I have done a small (&amp;quot;not really working&amp;quot;) preview of Navit on Neo1973 at [http://www.telemobilityforum.com/eng/ Telemobility Forum 2007]. Thanks to [http://gfoss.it GFoss] guys to invite me.&lt;br /&gt;
''[[User:Tyrael | Tyrael]]''&lt;br /&gt;
&lt;br /&gt;
==Setting up Navit==&lt;br /&gt;
&lt;br /&gt;
===Install Navit===&lt;br /&gt;
&lt;br /&gt;
==== Map Size ====&lt;br /&gt;
Of you use e.g. entire Germany in an rectangle form it will have more than 500MB.&lt;br /&gt;
Navit on FR works with maps in the size of less that 350MB. So split the larger areas in portions with a smaller size than 350MB. Otherwise Navit will not be able to process the maps.&lt;br /&gt;
&lt;br /&gt;
Change navit.xml to modify the used map bin-file, e.g. germany1.bin to germany2.bin&lt;br /&gt;
&lt;br /&gt;
==== Navit on FSO (OM2008.x,SHR,...) ====&lt;br /&gt;
&lt;br /&gt;
You can now simply add a feed from there : http://download.navit-project.org/navit/openmoko/svn/&lt;br /&gt;
&lt;br /&gt;
Essentially, to enable this directory as [[Om_2008.8_Installer#How to add a Repository ?|feed]] and install or update navit do:&lt;br /&gt;
* Only for the first time:&lt;br /&gt;
 echo src navit http://download.navit-project.org/navit/openmoko/svn &amp;gt; /etc/opkg/navit-feed.conf&lt;br /&gt;
 opkg update&lt;br /&gt;
&lt;br /&gt;
* Always:&lt;br /&gt;
 opkg install navit&lt;br /&gt;
&lt;br /&gt;
Navit will be auto-updated when you run opkg upgrade later&lt;br /&gt;
&lt;br /&gt;
Navit might not be able to use gpsd at startup:&lt;br /&gt;
 navit:plugin_load:can't load '/usr/lib/navit/vehicle/&lt;br /&gt;
 libvehicle_gpsd.so', Error 'libgps.so.16: cannot open shared object  &lt;br /&gt;
 file: No such file or directory'&lt;br /&gt;
 navit:vehicle_new:invalid type 'gpsd'&lt;br /&gt;
&lt;br /&gt;
to solve this issue (necessary for SHR):&lt;br /&gt;
&lt;br /&gt;
 opkg install libgps17&lt;br /&gt;
 ln -s /usr/lib/libgps.so.17 /usr/lib/libgps.so.16&lt;br /&gt;
&lt;br /&gt;
====Navit on Debian====&lt;br /&gt;
Navit is now in Debian [http://packages.debian.org/source/testing/navit testing] and [http://packages.debian.org/source/unstable/navit unstable].&lt;br /&gt;
&lt;br /&gt;
Add the following line to &amp;lt;tt&amp;gt;/etc/apt/sources.list&amp;lt;/tt&amp;gt; with e.g. editor &amp;lt;tt&amp;gt;vi&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;nano&amp;lt;/tt&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
     deb http://ftp.de.debian.org/debian unstable main&lt;br /&gt;
&lt;br /&gt;
Then update with apt-get:&lt;br /&gt;
&lt;br /&gt;
     apt-get update&lt;br /&gt;
&lt;br /&gt;
The up-to-date source package is available through git at '''git://git.debian.org/git/collab-maint/navit.git''' ([http://git.debian.org/?p=collab-maint/navit.git;a=summary browse]).&lt;br /&gt;
&lt;br /&gt;
====Navit on Android====&lt;br /&gt;
Download current version [http://download.navit-project.org/navit/android_armv4t/svn/ navit-current.apk] on your Android. See [[Android usage]] for installing Apps on your [http://code.google.com/p/android-on-freerunner/wiki/Applications Android on Freerunner].&lt;br /&gt;
&lt;br /&gt;
   see [http://wiki.navit-project.org/index.php/Navit_on_Android Navit on Android] Navit Project Wiki&lt;br /&gt;
&lt;br /&gt;
You can use one download map which you have to copy on the FAT32 partition of your SD card as '''&amp;lt;tt&amp;gt;navitmap.bin&amp;lt;/tt&amp;gt;'''. &lt;br /&gt;
&lt;br /&gt;
During first use after installation, navit for android will ask you, if you want to intall [http://espeak.sourceforge.net/ TTS] (Text to Speech [http://www.speech.cs.cmu.edu/flite/ festival-lite]). If you decide to install TTS then Navit crashes (with version [http://download.navit-project.org/navit/android_armv4t/svn/ navit-svn-3495.apk]).&lt;br /&gt;
&lt;br /&gt;
====Navit on QtMoko====&lt;br /&gt;
You can find some information for installing Navit in the [[QtMoko]] article.&lt;br /&gt;
&lt;br /&gt;
===Set up the maps you want===&lt;br /&gt;
&lt;br /&gt;
====The Easy Way====&lt;br /&gt;
Use [http://maps.navit-project.org/download/ Navit Map Extractor] based on [http://www.openstreetmap.org OpenStreetMap].  Navigate to the region you want, and click &amp;quot;select&amp;quot; to select region, select the area you want, then click download. [[Image:osmdownload.jpg|200px|thumb|Download OpenStreetMaps]] &lt;br /&gt;
&lt;br /&gt;
If you just want the entire planet (as of this writing, ~1.8 GB), it's [http://maps.navit-project.org/planet.bin here].&lt;br /&gt;
&lt;br /&gt;
[http://downloads.cloudmade.com/ CloudMade] also has up-to-date maps from OpenStreetMap by country (by state in the US).&lt;br /&gt;
&lt;br /&gt;
{{Note|Be aware of the map size that can be used on your FR (On Android working with map sizes less than 350MB is O.K. on SHR 450MB also work, so SHR may not have a map size limit)}}&lt;br /&gt;
&lt;br /&gt;
====From the command line====&lt;br /&gt;
'''OpenStreetMap''' - follow directions at http://wiki.navit-project.org/index.php/OpenStreetMaps&lt;br /&gt;
* There are some pre-processed, up-to-date maps that can be grabbed with wget:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;wget -O germany.bin http://maps.navit-project.org/api/map/?bbox=5.185546875,46.845703125,15.46875,55.634765625&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can put a shell script into &amp;lt;tt&amp;gt;/usr/local/bin/update-maps&amp;lt;/tt&amp;gt;&lt;br /&gt;
  #!/bin/sh&lt;br /&gt;
  echo &amp;quot;Update OpenstreetMaps&amp;quot;&lt;br /&gt;
  echo &amp;quot;---------------------&amp;quot;&lt;br /&gt;
  echo &amp;quot;  download and store OSM maps on /media/card/maps&amp;quot;&lt;br /&gt;
  wget -O /media/card/maps/germany.bin http://maps.navit-project.org/api/map/?bbox=5.185546875,46.845703125,15.46875,55.634765625&lt;br /&gt;
  echo &amp;quot;update germany.bin finished&amp;quot;&lt;br /&gt;
You have to make the script executable with:&lt;br /&gt;
  chmod u+x /usr/local/bin/update-maps&lt;br /&gt;
Create a maps-directory (e.g. with path &amp;lt;tt&amp;gt;/media/card/maps/&amp;lt;/tt&amp;gt;) on your SD-card:&lt;br /&gt;
  mkdir /media/card/maps/&lt;br /&gt;
Then you can update with this script all your maps on the SD-card if you have internet connection:&lt;br /&gt;
  update-maps&lt;br /&gt;
* Here's an example to get the maps for the area around Seattle, WA:&lt;br /&gt;
** Find the map coordinates using http://informationfreeway.org/?lat=47.520270037501454&amp;amp;lon=-122.20130713167327&amp;amp;zoom=9&amp;amp;layers=B000F000&lt;br /&gt;
** 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):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;wget -O map1.osm http://www.openstreetmap.org/api/0.5/map?bbox=-122.2,47.5,-122,47.7&lt;br /&gt;
wget -O map2.osm http://www.openstreetmap.org/api/0.5/map?bbox=-122.4,47.5,-122.2,47.7&lt;br /&gt;
wget -O map3.osm http://www.openstreetmap.org/api/0.5/map?bbox=-122.4,47.3,-122.2,47.5&lt;br /&gt;
wget -O map4.osm http://www.openstreetmap.org/api/0.5/map?bbox=-122.2,47.3,-122,47.5&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* 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:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;cat *.osm | osm2navit --dedupe-ways mymap.bin&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Copy the map to the NEO===&lt;br /&gt;
To copy the map using scp (replace ''/directory'' as is appropriate in the following):&lt;br /&gt;
&amp;lt;pre&amp;gt;scp mymap.bin root@neo:/directory&amp;lt;/pre&amp;gt;&lt;br /&gt;
If you copy the map &amp;lt;tt&amp;gt;germany.bin&amp;lt;/tt&amp;gt; to the SD card on the Neo use e.g. in the directory &amp;lt;tt&amp;gt;maps&amp;lt;/tt&amp;gt;:&lt;br /&gt;
  scp germany.bin root@neo:/media/card/maps&lt;br /&gt;
Once it's somewhere on the NEO, Navit needs to know that it's there.&lt;br /&gt;
&amp;lt;pre&amp;gt;mkdir ~/.navit&lt;br /&gt;
cp /usr/share/navit/navit.xml ~/.navit/navit.xml&lt;br /&gt;
vi ~/.navit/navit.xml&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
note that in some version navit includes other xml files from /usr/share/navit, for instance mapsets are now defined in maps.xml.&lt;br /&gt;
&lt;br /&gt;
===Enable Maps in  Navit ===&lt;br /&gt;
Now you must let Navit know the maps you want to use. Several disabled mapset-tags are predefined. &lt;br /&gt;
In the navit.xml file, put the following into a new &amp;lt;mapset&amp;gt; section (and disable the default &amp;lt;mapset&amp;gt; just above - or else it will not work):&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;map type=&amp;quot;binfile&amp;quot; enabled=&amp;quot;yes&amp;quot; data=&amp;quot;/directory&amp;quot; /&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
For example with a &amp;lt;tt&amp;gt;germany.bin&amp;lt;/tt&amp;gt; on the SD-card you use:&lt;br /&gt;
 &amp;lt;mapset enabled=&amp;quot;yes&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;map type=&amp;quot;binfile&amp;quot; enabled=&amp;quot;yes&amp;quot; data=&amp;quot;/media/card/maps/germany.bin&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;/mapset&amp;gt;&lt;br /&gt;
or if you store all downloaded maps in the directory &amp;lt;tt&amp;gt;/media/card/maps&amp;lt;/tt&amp;gt; then add the following lines to &amp;lt;tt&amp;gt;navit.xml&amp;lt;/tt&amp;gt;.&lt;br /&gt;
 &amp;lt;mapset enabled=&amp;quot;yes&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;map type=&amp;quot;binfile&amp;quot; enabled=&amp;quot;yes&amp;quot; data=&amp;quot;/media/card/maps/*.bin&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;/mapset&amp;gt;&lt;br /&gt;
{{Note|this will only load the first map that machtes *.bin (its a bug/feature)!}}&lt;br /&gt;
{{Note|that the bin-file and the map set both have to be enabled}}&lt;br /&gt;
&lt;br /&gt;
Disable unused mapset sections by setting enabled to &amp;lt;tt&amp;gt;no&amp;lt;/tt&amp;gt;, e.g. the pre-installed sample maps at line 370 in &amp;lt;tt&amp;gt;navit.xml&amp;lt;/tt&amp;gt;.&lt;br /&gt;
 &amp;lt;mapset enabled=&amp;quot;no&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xi:include href=&amp;quot;$NAVIT_SHAREDIR/maps/*.xml&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;/mapset&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Run navit&lt;br /&gt;
** Start [[gllin]] (for GTA01)&lt;br /&gt;
** Start [[gpsd]] ( gpsd /tmp/nmeaNP )&lt;br /&gt;
** Start navit&lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
===Tips and Tricks===&lt;br /&gt;
====Center on Vehicle====&lt;br /&gt;
Navit supports a &amp;quot;always center on vehicle&amp;quot; option. &lt;br /&gt;
&lt;br /&gt;
To activate this add&lt;br /&gt;
 follow=&amp;quot;3&amp;quot;&lt;br /&gt;
to the &amp;lt;tt&amp;gt;vehicle&amp;lt;/tt&amp;gt; tag in navit.xml. &lt;br /&gt;
   &amp;lt;vehicle name=&amp;quot;Local GPS&amp;quot; profilename=&amp;quot;car&amp;quot; enabled=&amp;quot;yes&amp;quot; active=&amp;quot;1&amp;quot; follow=&amp;quot;3&amp;quot; &lt;br /&gt;
           source=&amp;quot;gpsd://localhost&amp;quot; gpsd_query=&amp;quot;w+xj&amp;quot; color=&amp;quot;#0000ff&amp;quot;&amp;gt;&lt;br /&gt;
The &amp;quot;3&amp;quot; causes to give the gui time to do something between the repaints (drag the map or browse the menu). When its set to &amp;quot;1&amp;quot; navit does nothing more than repainting the map continuously.&lt;br /&gt;
&lt;br /&gt;
==Routing==&lt;br /&gt;
[[Image:navit_main_menu.png|100px|thumb|Navit Main Menu]]&lt;br /&gt;
[[Image:navit_action_menu.png|100px|thumb|Navit Action Menu]]&lt;br /&gt;
The main menu has 4 submenus&lt;br /&gt;
* Action&lt;br /&gt;
* Settings&lt;br /&gt;
* Tools&lt;br /&gt;
* Route&lt;br /&gt;
Normally you would assume the entering a town can be found under the submenu Route, but Town is hidden under submenu Action. Route will provide the description of the route as text and a height profile of your trip. Tools was not working on 08/2009 Version of navit on SHR (see [[SHR User Manual]]).&lt;br /&gt;
&lt;br /&gt;
===Preselect Country of Destination===&lt;br /&gt;
Normally you have to select the the country first before choosing the town and street name. It might be more convenient for you if you preselect the country already with your settings.&lt;br /&gt;
The article [[Configure SHR for German-speaking use]] had a preselection of the country &amp;quot;Austria&amp;quot; in Navit. Adapt the localization for your country and maps in Navit, so that do not need to select the country anymore.&lt;br /&gt;
&lt;br /&gt;
Actually Navit derives the preselected country from the calling environments's locale (see [[Localization]]). Make sure, that LC_ALL ist '''not''' set though. Otherwise navit fails to interprete gpsd output and you end up with strange gps coordinates. When starting from gui (e.g. illume) you can achieve this by supplying an executable script /usr/local/bin/navit which might look like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
#export LANG=xx_YY.UTF-8   # Uncomment this line and replace xx_YY, if &lt;br /&gt;
                           # your gui's locale is not setup accordingly. &lt;br /&gt;
unset LC_ALL&lt;br /&gt;
exec /usr/bin/navit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
So a valid locale environment preselecting search for German cities would look like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@om-gta02 ~ $ locale&lt;br /&gt;
LANG=de_DE.UTF-8&lt;br /&gt;
LC_CTYPE=&amp;quot;de_DE.UTF-8&amp;quot;&lt;br /&gt;
LC_NUMERIC=&amp;quot;de_DE.UTF-8&amp;quot;&lt;br /&gt;
...&lt;br /&gt;
LC_MEASUREMENT=&amp;quot;de_DE.UTF-8&amp;quot;&lt;br /&gt;
LC_IDENTIFICATION=&amp;quot;de_DE.UTF-8&amp;quot;&lt;br /&gt;
LC_ALL=&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note that there's a limited number of [http://wiki.navit-project.org/index.php/OpenStreetMaps#Known_countries_by_osm2navit countries supported by osm2navit] and Navit's search function.&lt;br /&gt;
&lt;br /&gt;
===Select Destination===&lt;br /&gt;
[[Image:navit_select_country.png|100px|thumb|Select Country]]&lt;br /&gt;
&lt;br /&gt;
You can the select your destination in the main menu:&lt;br /&gt;
* via '''Bookmarks''', if you saved the previous location or&lt;br /&gt;
* via '''Town''', if you want to enter a new destination. If you use a destination more frequently, just save the location as bookmark.  &lt;br /&gt;
&lt;br /&gt;
When you click in the main menu on &amp;lt;i&amp;gt;Action&amp;lt;/i&amp;gt; the &amp;lt;i&amp;gt;Action&amp;lt;/i&amp;gt; menu appears with 4 subitems.&lt;br /&gt;
* Bookmarks of previous locations (stored in &amp;lt;tt&amp;gt;/home/root/.navit/destinations.txt&amp;lt;/tt&amp;gt;&lt;br /&gt;
* a globe showing a location as destination,&lt;br /&gt;
* a vehicle that shows the current GPS position of the vehicle. If the freerunner receives no GPS signal the locations of the vehicle is set to 0.0.0N and 0.0.0E. &lt;br /&gt;
* Town is the action to enter a destination.&lt;br /&gt;
* Quit navit is the last action in this submenu.&lt;br /&gt;
&lt;br /&gt;
Select the icon &amp;lt;i&amp;gt;Town&amp;lt;/i&amp;gt; in the main menu (if you see the map, you can get to the main menu just by clicking on the map).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Select Country====&lt;br /&gt;
[[Image:navit_country_selected.png|100px|thumb|Country Options]]&lt;br /&gt;
[[Image:navit_destination_details.png|100px|thumb|Enter Bookmark Details]]&lt;br /&gt;
&lt;br /&gt;
Before you can search for City you have to select a Country. To do that, click on the icon in the left upper corner of the search field (could look like a white square with blue top-left quadrant).&lt;br /&gt;
&lt;br /&gt;
Just type in the first letter of the country (e.g. &amp;quot;G&amp;quot;) and Navit makes suggestions (e.g. Gabon, Germany).&lt;br /&gt;
&lt;br /&gt;
====Enter Town====&lt;br /&gt;
&lt;br /&gt;
When you have selected the country (e.g. Germany) the flag appears and you can select the town.&lt;br /&gt;
Then you can save the town as bookmark and enter more details like streets to the selected town.&lt;br /&gt;
&lt;br /&gt;
The search is still a little buggy.&lt;br /&gt;
&lt;br /&gt;
====Enter Street====&lt;br /&gt;
You can enter the street and streetnumber and save it as bookmark when you use the destination often. &lt;br /&gt;
&lt;br /&gt;
====Bookmarks====&lt;br /&gt;
Navigation and planning of routes with Navit can be organized with bookmarks.&lt;br /&gt;
* set a bookmark as current position &lt;br /&gt;
* set a bookmark as destination&lt;br /&gt;
Then you can see the suggested route in blue on the map. &lt;br /&gt;
&lt;br /&gt;
Bookmarks are stored in:&lt;br /&gt;
  /home/root/.navit/bookmark.txt&lt;br /&gt;
&lt;br /&gt;
The GPS-location (if GPS-signal is available) will be highlighted with a small blue circle. The color of the circle can be defined via editing the &amp;lt;tt&amp;gt;navit.xml&amp;lt;/tt&amp;gt; (see [http://wiki.openmoko.org/wiki/Navit#Set_Cursor_Color select cursor color]).&lt;br /&gt;
* a dot in the blue circle is indicating that your are not moving,&lt;br /&gt;
* an arrowhead is indicating the direction, when you are moving.&lt;br /&gt;
Then routing can start and in the map the route is highlighted.&lt;br /&gt;
&lt;br /&gt;
====Screenshots in Navit Documentation====&lt;br /&gt;
The screenshots are made with &amp;lt;tt&amp;gt;gpe-scap&amp;lt;/tt&amp;gt;, that can be installed by:&lt;br /&gt;
  opkg install gpe-scap&lt;br /&gt;
if not installed already. Navigation through your installed application navit and login via ssh on your Freerunner &lt;br /&gt;
  ssh -l root 192.168.0.202&lt;br /&gt;
assuming that your Freerunner has the IP 192.168.0.202.&lt;br /&gt;
Any time you want to make a screenshot just start via your desktop computer &lt;br /&gt;
  gpe-scap&lt;br /&gt;
and save the screenshot to you freerunner.&lt;br /&gt;
Download the screenshot to your desktop computer with&lt;br /&gt;
  desktop# sftp://root@192.168.0.202&lt;br /&gt;
&lt;br /&gt;
== News ==&lt;br /&gt;
A deeper look into configuring Navit can be found in the [http://wiki.navit-project.org/index.php/Configuring_Navit Navit-Wiki].&lt;br /&gt;
&lt;br /&gt;
=== Getting the display right ===&lt;br /&gt;
&lt;br /&gt;
If using SHR the keyboard in country/town/street search mode does not fit on the street, make sure your gui configuration is set to the following line:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;gui type=&amp;quot;internal&amp;quot; font_size=&amp;quot;350&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The example line provided for freerunners hides some important icons. Namely, instead of typing your city name first, you will first have to click the button on the top left, to go into country search mode. Enter your country name, then the city name, in order to enable the search function. This requires your map data to be searchable.&lt;br /&gt;
&lt;br /&gt;
You can start in fullscreen mode with fullscreen=&amp;quot;1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;gui type=&amp;quot;internal&amp;quot; font_size=&amp;quot;350&amp;quot; fullscreen=&amp;quot;1&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you want to enable &amp;quot;+&amp;quot; and &amp;quot;-&amp;quot; as Zoom-In and Zoom-Out buttons on the bottom of the map enable the button with the following xml-tags:&lt;br /&gt;
 &amp;lt;osd enabled=&amp;quot;yes&amp;quot; type=&amp;quot;button&amp;quot; x=&amp;quot;-96&amp;quot; y=&amp;quot;-96&amp;quot; command=&amp;quot;zoom_in()&amp;quot;  src=&amp;quot;zoom_in.xpm&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;osd enabled=&amp;quot;yes&amp;quot; type=&amp;quot;button&amp;quot; x=&amp;quot;0&amp;quot;   y=&amp;quot;-96&amp;quot; command=&amp;quot;zoom_out()&amp;quot; src=&amp;quot;zoom_out.xpm&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can find sample Layouts here:&lt;br /&gt;
[http://wiki.navit-project.org/index.php/OSD_Layouts Sample Layouts from navit-wiki]&lt;br /&gt;
&lt;br /&gt;
=== Set Cursor Color ===&lt;br /&gt;
[[Image:red_cursor.png|90px|thumb|Red Cursor]]&lt;br /&gt;
If you navigate, the route is marked in blue color on the map. The current position of the vehicle is displayed by a blue circle. The circle is sometimes difficult to see on the blue track. If you want to change the color, size  of the vehicle cursor edit the vehicle XML-environment in navit.xml (e.g. replace blue color #0000FF with red color #FF0000 -- for details of  [http://html-color-codes.info Color Codes] select color, copy and paste code in &amp;lt;tt&amp;gt;navit.xml&amp;lt;/tt&amp;gt;)  &lt;br /&gt;
&lt;br /&gt;
     &amp;lt;vehicle name=&amp;quot;Local GPS&amp;quot; profilename=&amp;quot;car&amp;quot; enabled=&amp;quot;yes&amp;quot; active=&amp;quot;1&amp;quot; source=&amp;quot;gpsd://localhost&amp;quot; gpsd_query=&amp;quot;w+xj&amp;quot; color=&amp;quot;#0000ff&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;!-- Navit can write a tracklog in several formats (gpx, nmea or textfile): --&amp;gt;&lt;br /&gt;
        &amp;lt;!-- &amp;lt;log type=&amp;quot;gpx&amp;quot; data=&amp;quot;track_%Y%m%d-%i.gpx&amp;quot; flush_size=&amp;quot;1000&amp;quot; flush_time=&amp;quot;30&amp;quot;/&amp;gt; --&amp;gt;&lt;br /&gt;
            &amp;lt;cursor w=&amp;quot;56&amp;quot; h=&amp;quot;56&amp;quot;&amp;gt;&lt;br /&gt;
               &amp;lt;!-- tag defines the circle for the cursor --&amp;gt;&lt;br /&gt;
                &amp;lt;itemgra&amp;gt;&lt;br /&gt;
                    &amp;lt;circle color=&amp;quot;#ff0000&amp;quot; radius=&amp;quot;42&amp;quot; width=&amp;quot;6&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;0&amp;quot; y=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/circle&amp;gt;&lt;br /&gt;
                   &amp;lt;circle color=&amp;quot;#ffffff&amp;quot; radius=&amp;quot;48&amp;quot; width=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;0&amp;quot; y=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/circle&amp;gt;&lt;br /&gt;
                   &amp;lt;circle color=&amp;quot;#ffffff&amp;quot; radius=&amp;quot;36&amp;quot; width=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;0&amp;quot; y=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/circle&amp;gt;&lt;br /&gt;
                &amp;lt;/itemgra&amp;gt;&lt;br /&gt;
               &amp;lt;!-- tag defines the dot when the vehicle is not moving --&amp;gt;&lt;br /&gt;
                &amp;lt;itemgra speed_range=&amp;quot;-2&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;polyline color=&amp;quot;#ff0000&amp;quot; width=&amp;quot;6&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;1&amp;quot; y=&amp;quot;1&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;1&amp;quot; y=&amp;quot;-1&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;-1&amp;quot; y=&amp;quot;-1&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;-1&amp;quot; y=&amp;quot;-1&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/polyline&amp;gt;&lt;br /&gt;
                  &amp;lt;circle color=&amp;quot;#ffffff&amp;quot; radius=&amp;quot;9&amp;quot; width=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;0&amp;quot; y=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/circle&amp;gt;&lt;br /&gt;
                &amp;lt;/itemgra&amp;gt;&lt;br /&gt;
                &amp;lt;!-- This itemgra-tag defines the arrow when the vehicle moves --&amp;gt;&lt;br /&gt;
                &amp;lt;itemgra speed_range=&amp;quot;3-&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;polyline color=&amp;quot;#ff0000&amp;quot; width=&amp;quot;6&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;-7&amp;quot; y=&amp;quot;-10&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;0&amp;quot; y=&amp;quot;12&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;7&amp;quot; y=&amp;quot;-10&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/polyline&amp;gt;&lt;br /&gt;
                  &amp;lt;polyline color=&amp;quot;#ffffff&amp;quot; width=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;+10&amp;quot; y=&amp;quot;-10&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;3&amp;quot; y=&amp;quot;15&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/polyline&amp;gt;&lt;br /&gt;
                    &amp;lt;polyline color=&amp;quot;#ffffff&amp;quot; width=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;-10&amp;quot; y=&amp;quot;-10&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;coord x=&amp;quot;-3&amp;quot; y=&amp;quot;15&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/polyline&amp;gt;&lt;br /&gt;
                &amp;lt;/itemgra&amp;gt;&lt;br /&gt;
        &amp;lt;/cursor&amp;gt;&lt;br /&gt;
    &amp;lt;/vehicle&amp;gt;&lt;br /&gt;
The following screenshot show Navit with a red cursor on a blue track:&lt;br /&gt;
&lt;br /&gt;
[[Image:navit_color_cursor.png|200px|thumb|Red Cursor Color on blue track - vehicle not moving]]&lt;br /&gt;
&lt;br /&gt;
=== Speech ===&lt;br /&gt;
Navit can speak if you install [http://espeak.sourceforge.net/ eSpeak] + [http://www.freebsoft.org/speechd speech-dispatcher] and updates your navit.xml file.&lt;br /&gt;
&lt;br /&gt;
If you want navit using your language, and setting LC_MESSAGES fails due to missing glibc locale, set the enviroment variable LANGUAGE. For instance running&lt;br /&gt;
  LANGUAGE=de navit&lt;br /&gt;
will set the ui and output to german.&lt;br /&gt;
&lt;br /&gt;
For SHR there is a big german localization patch see [[Configure SHR for German-speaking use]].&lt;br /&gt;
&lt;br /&gt;
One way to configure speech output:&lt;br /&gt;
&lt;br /&gt;
* mokoTTS aims to integrate these packages in OM:&lt;br /&gt;
http://projects.openmoko.org/projects/mokotts/&lt;br /&gt;
&lt;br /&gt;
install espeak, dotconf, and then speech-dispatcher.&lt;br /&gt;
note: running 2008.8 updating from zecke's &amp;quot;testing&amp;quot; repo does not require &amp;quot;dotconf&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Speech Language ====&lt;br /&gt;
To change the speech tag in navit.xml:&lt;br /&gt;
  &amp;lt;speech type=&amp;quot;cmdline&amp;quot; data=&amp;quot;spd-say '%s'&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;'''spd-say -l fr '%s''''&amp;quot; for using the French voice for example.&lt;br /&gt;
* &amp;quot;'''spd-say -l de '%s''''&amp;quot; for using the German voice for example.&lt;br /&gt;
&lt;br /&gt;
{{Note|You can check speech dispatcher output from the shell&lt;br /&gt;
  spd-say --language=de &amp;lt;Output-String&amp;gt;&lt;br /&gt;
You can replace the --language by -l}}&lt;br /&gt;
Example&lt;br /&gt;
  spd-say --language=de \&amp;quot;Dies ist die Winterstraße 23\&amp;quot;&lt;br /&gt;
The speech-dispatcher is blocking the audio after suspend. So after a suspend you will hear no ringtone, when a phone call is coming in and you cannot listen do audio files.&lt;br /&gt;
A solution is to disable starting of speech-dispatcher with:&lt;br /&gt;
  update-rc.d -f speech-dispatcher remove&lt;br /&gt;
Then the speech-dispatcher should be started if and only if navit is running and shut down when navit is closed.&lt;br /&gt;
&lt;br /&gt;
Furthermore navit should be started indirect with a script &amp;lt;tt&amp;gt;navit.sh&amp;lt;/tt&amp;gt; instead of a direct start with the binary located in &amp;lt;tt&amp;gt;/usr/bin/navit&amp;lt;/tt&amp;gt;. The script &amp;lt;tt&amp;gt;navit.sh&amp;lt;/tt&amp;gt; listed below starts speech-dispatcher before navit, and stops it afterwards. See http://lists.openmoko.org/nabble.html#nabble-td1088795&lt;br /&gt;
&lt;br /&gt;
The following script is doing the suggested procedure. This script includes a language fix for Austria (see [[Configure SHR for German-speaking use]]).&lt;br /&gt;
  export LANG=de_AT.utf8&lt;br /&gt;
Replace '''&amp;lt;tt&amp;gt;de_AT&amp;lt;/tt&amp;gt;''' in this line with the appropriate language variable in the following script &amp;lt;tt&amp;gt;navit.sh&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&amp;lt;pre&amp;gt;Hallo Patsy,spd-say -l de '%s'&lt;br /&gt;
#! /bin/sh&lt;br /&gt;
#&lt;br /&gt;
# Copyright Matthias Hentges &amp;lt;devel@hentges.net&amp;gt; (c) 2008&lt;br /&gt;
# License: GPL (see http://www.gnu.org/licenses/gpl.txt for a copy of the license)&lt;br /&gt;
#&lt;br /&gt;
# Filename: navit.sh&lt;br /&gt;
# Date: 20080105 (YMD)&lt;br /&gt;
#&lt;br /&gt;
#################################################################################&lt;br /&gt;
#&lt;br /&gt;
# 20080105 - v0.0.1	- Initial release&lt;br /&gt;
# 20090818 -            - Zoff &amp;lt;zoff@zoff.cc&amp;gt; addons and fixes&lt;br /&gt;
#&lt;br /&gt;
#&lt;br /&gt;
#################################################################################&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#################################################################################&lt;br /&gt;
#&lt;br /&gt;
# On devices with low memory (&amp;lt; 512Mb?) Navit will segfault on start.&lt;br /&gt;
# This can be worked around by doing&lt;br /&gt;
# &amp;quot;echo 1 &amp;gt; /proc/sys/vm/overcommit_memory&amp;quot;&lt;br /&gt;
#&lt;br /&gt;
#################################################################################&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
. /etc/profile&lt;br /&gt;
&lt;br /&gt;
set|grep LC&lt;br /&gt;
&lt;br /&gt;
#### Stop the speech dispatcher ####&lt;br /&gt;
/etc/init.d/speech-dispatcher stop&lt;br /&gt;
&lt;br /&gt;
#### Language Fix #################&lt;br /&gt;
set|grep LC&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
export LC_ALL=''&lt;br /&gt;
unset LC_ALL&lt;br /&gt;
export LANG=de_AT.utf8&lt;br /&gt;
&lt;br /&gt;
set|grep LC&lt;br /&gt;
&lt;br /&gt;
#### Start the speech dispatcher ####&lt;br /&gt;
/etc/init.d/speech-dispatcher start &amp;amp;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
set|grep LC&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# need cpu and display&lt;br /&gt;
mdbus -s org.freesmartphone.ousaged /org/freesmartphone/Usage org.freesmartphone.Usage.SetResourcePolicy Display enabled&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if test &amp;quot;`cat /proc/meminfo | grep ^MemTotal | awk '{print $2}'`&amp;quot; -lt &amp;quot;500000&amp;quot;&lt;br /&gt;
then&lt;br /&gt;
	if test &amp;quot;$USER&amp;quot; = &amp;quot;root&amp;quot;&lt;br /&gt;
	then&lt;br /&gt;
		echo &amp;quot;Enabling low-mem workaround...&amp;quot;&lt;br /&gt;
		echo 1 &amp;gt; /proc/sys/vm/overcommit_memory&lt;br /&gt;
	else&lt;br /&gt;
		echo &amp;quot;I need root-privs to enable the low-mem workaround!&amp;quot;&lt;br /&gt;
	fi&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
######### Start NAVIT NOW ############&lt;br /&gt;
&lt;br /&gt;
navit $*&lt;br /&gt;
	&lt;br /&gt;
#### Stop the speech dispatcher ####&lt;br /&gt;
&lt;br /&gt;
/etc/init.d/speech-dispatcher stop&lt;br /&gt;
&lt;br /&gt;
# release cpu and display&lt;br /&gt;
mdbus -s org.freesmartphone.ousaged /org/freesmartphone/Usage org.freesmartphone.Usage.SetResourcePolicy Display auto&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Save the &amp;lt;tt&amp;gt;navit.sh&amp;lt;/tt&amp;gt; script in:&lt;br /&gt;
  /usr/bin/navit.sh&lt;br /&gt;
Make the script executable:&lt;br /&gt;
  chmod u+x /usr/bin/navit.sh&lt;br /&gt;
Now you have to edit the desktop icon, so that it starts this script &amp;lt;tt&amp;gt;navit.sh&amp;lt;/tt&amp;gt; instead of the binary &amp;lt;tt&amp;gt;/usr/bin/navit&amp;lt;/tt&amp;gt;.&lt;br /&gt;
  nano /usr/share/applications/navit.desktop&lt;br /&gt;
Edit the line with &amp;lt;tt&amp;gt;Exec=...&amp;lt;/tt&amp;gt;, so that it starts the script &amp;lt;tt&amp;gt;navit.sh&amp;lt;/tt&amp;gt; instead of the navit binary.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[Desktop Entry]&lt;br /&gt;
Version=1.0&lt;br /&gt;
Name=Navit&lt;br /&gt;
Name[de]=Navit&lt;br /&gt;
Name[fr]=Navit&lt;br /&gt;
Comment=The open source vector based navigation program with routing engine&lt;br /&gt;
Comment[de]=Ein vektorbasiertes Navigationsprogramm&lt;br /&gt;
Comment[fr]=Le logiciel opensource de navigation vectorielle&lt;br /&gt;
Exec=/usr/bin/navit.sh&lt;br /&gt;
Icon=navit&lt;br /&gt;
StartupNotify=true&lt;br /&gt;
Terminal=false&lt;br /&gt;
Type=Application&lt;br /&gt;
Categories=GTK;Utility;Geography;&lt;br /&gt;
GenericName=Navit&lt;br /&gt;
GenericName[de]=Navit&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Alternatively''', you can make speech-dispatcher restart on resume, see http://trac.shr-project.org/trac/ticket/494&lt;br /&gt;
&lt;br /&gt;
=== Script to download OSM maps ===&lt;br /&gt;
[[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&lt;br /&gt;
dlOSM.sh &amp;lt;minimum latitude&amp;gt; &amp;lt;maximum latitude&amp;gt; &amp;lt;minimum longitude&amp;gt; &amp;lt;maximum longitude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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...&lt;br /&gt;
&lt;br /&gt;
dlOSM.sh:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/usr/bin/python&lt;br /&gt;
&lt;br /&gt;
import os&lt;br /&gt;
import sys&lt;br /&gt;
#import math&lt;br /&gt;
&lt;br /&gt;
def doIt(cmd):&lt;br /&gt;
  os.system(cmd)&lt;br /&gt;
&lt;br /&gt;
def getOsms(basename, minLat, maxLat, minLon, maxLon):&lt;br /&gt;
  '''basename - base name of map, maps are named {basename}{count}.osm&lt;br /&gt;
  minLat - latitude of the west side of the map&lt;br /&gt;
  maxLat - latitude of the east side of the map&lt;br /&gt;
  minLon - longitude of the north side of the map&lt;br /&gt;
  maxLon - longitude of the south side of the map'''&lt;br /&gt;
&lt;br /&gt;
  wgetCmdTemplate = 'wget -O %s%s.osm http://api.openstreetmap.org/api/0.6/map?bbox=%s,%s,%s,%s'&lt;br /&gt;
&lt;br /&gt;
  currLat = minLat&lt;br /&gt;
  mapCount = 0&lt;br /&gt;
  while currLat &amp;lt; maxLat:&lt;br /&gt;
    nextLat = min(currLat + 0.1, maxLat)&lt;br /&gt;
&lt;br /&gt;
    currLon = minLon&lt;br /&gt;
    while currLon &amp;lt; maxLon:&lt;br /&gt;
      nextLon = min(currLon + 0.1, maxLon)&lt;br /&gt;
&lt;br /&gt;
      doIt(wgetCmdTemplate % (basename, mapCount, currLon, currLat, nextLon, nextLat))&lt;br /&gt;
&lt;br /&gt;
      currLon = nextLon&lt;br /&gt;
      mapCount = mapCount + 1&lt;br /&gt;
&lt;br /&gt;
    currLat = nextLat&lt;br /&gt;
&lt;br /&gt;
(minLat, maxLat, minLon, maxLon) = map(float, sys.argv[1:])&lt;br /&gt;
getOsms('map', minLat, maxLat, minLon, maxLon)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;onlyinclude&amp;gt;&lt;br /&gt;
{{ApplicationBox|&lt;br /&gt;
Name=[[Navit]]|&lt;br /&gt;
Description=Navit is a car navigation system with routing engine.|&lt;br /&gt;
Screenshot=Screenshot-3.png|&lt;br /&gt;
Homepage=http://navit.sourceforge.net|&lt;br /&gt;
TestedOn=|&lt;br /&gt;
PackageName=&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:GPS Applications]]&lt;/div&gt;</summary>
		<author><name>Niebert</name></author>	</entry>

	</feed>