<?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=Michaelshiloh&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=Michaelshiloh&amp;feedformat=atom"/>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Special:Contributions/Michaelshiloh"/>
		<updated>2013-06-19T09:52:44Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.19.6</generator>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Om_2009</id>
		<title>Om 2009</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Om_2009"/>
				<updated>2009-05-21T23:15:48Z</updated>
		
		<summary type="html">&lt;p&gt;Michaelshiloh: /* Bug List and Known Issues */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:Paroli.png|thumb|Screenshot of Paroli, the GSM app of OM2009]]&lt;br /&gt;
'''Om 2009''' is the next version of the official Openmoko distribution. It is currently under developement and should be released in Summer 2009 to replace [[Om 2008]]. It will be based on [[FSO|freesmartphone.org]] milestone 5.5 framework and use [[Paroli]] as GSM software&lt;br /&gt;
&lt;br /&gt;
=== Features Status ===&lt;br /&gt;
&lt;br /&gt;
Below is the feature list for Om 2009. It's broken down into features that have been implemented and need testing, and features that still need to be finished. Since [[Paroli]] is the chosen phone application, many of the features come straight from Paroli project.&lt;br /&gt;
&lt;br /&gt;
==== Implemented ====&lt;br /&gt;
&lt;br /&gt;
* incoming and outgoing phone calls&lt;br /&gt;
* sms incoming and outgoing&lt;br /&gt;
* simple phone book (no images)&lt;br /&gt;
* call log&lt;br /&gt;
* charging&lt;br /&gt;
* suspend and resume&lt;br /&gt;
* resume speed &amp;lt; 2 seconds - this is close but waiting on a kernel bug&lt;br /&gt;
* battery indicator - works for gta02 battery&lt;br /&gt;
* gsm indicator&lt;br /&gt;
* switch to elementary&lt;br /&gt;
* wifi GUI&lt;br /&gt;
* scrolling in UI - fixed by migrating from etk to elementary&lt;br /&gt;
* switching  profiles&lt;br /&gt;
* in-call volume adjustment&lt;br /&gt;
* settings tool (this needs to be enabled by editing /etc/paroli/paroli.cfg)&lt;br /&gt;
&lt;br /&gt;
==== Not Yet Implemented or Broken ====&lt;br /&gt;
&lt;br /&gt;
* boot time &amp;lt; 2 minutes - currently examining ways to speed this up&lt;br /&gt;
** install udev-static devices - caveat you loose bind-home&lt;br /&gt;
** use readahead to cache python dirs before starting framework and paroli&lt;br /&gt;
** use readahead to cache dirs for X&lt;br /&gt;
** remove uneeded startup programs ( ie portmap )&lt;br /&gt;
** prime GSM during init for paroli's use&lt;br /&gt;
* screen lock&lt;br /&gt;
** currently X screen saver is used during screen blank&lt;br /&gt;
* user changeable ring tones - works via command line&lt;br /&gt;
* bluetooth - support in FSO milestone 5.5, needs GUI&lt;br /&gt;
* led indication for missed calls or sms&lt;br /&gt;
* GTA01: battery indicator doesn't work for gta01 battery&lt;br /&gt;
&lt;br /&gt;
==== Bug List and Known Issues ====&lt;br /&gt;
&lt;br /&gt;
* gsm0710muxd: &amp;quot;Modem does not respond to AT commands&amp;quot; [http://docs.openmoko.org/trac/ticket/2257 #2257]&lt;br /&gt;
* oeventsd rules ignored [http://trac.freesmartphone.org/ticket/381 FSO #381]&lt;br /&gt;
* After some received call or sms, the phone does not suspend anymore [http://trac.freesmartphone.org/ticket/435 FSO #435]&lt;br /&gt;
* Problem at Display-&amp;gt;Profile: can't get back to illume, and illume, paroli or paroli-illume all look exactly the same&lt;br /&gt;
** WORKAROUND: Reboot. The first time it boots there is a problem but it's OK after that.&lt;br /&gt;
&lt;br /&gt;
== Installing ==&lt;br /&gt;
&lt;br /&gt;
* If you've not updated your GSM chip firmware, it's Moko8 and REALLY needs to be updated. See [[GSM/Flashing#uSD-card_Image_.28GTA02_only.29|GSM flashing]]&lt;br /&gt;
* Also update to the latest versions of [[qi]] or [[Bootloader|uboot]] bootloaders&lt;br /&gt;
* You can add a bind-home directory to the first partition (must be ext2 or ext3 ) of your SD card. On the OM2009 boot it will be mounted as /home/root. This way you can reflash your phone without losing anything in your home directory ( [[Paroli]] contacts and settings, maps, etc )&lt;br /&gt;
&lt;br /&gt;
The latest OM2009 and qi/uboot images are available at http://downloads.openmoko.org/distro/testing/&lt;br /&gt;
&lt;br /&gt;
Installing OM2009 is simple as flashing an image. Actually that's what you need to do.. &lt;br /&gt;
&lt;br /&gt;
# Download! You need the correct fso-paroli-image and uImage.bin files for your device. There are also rootfs tarballs for installing onto an SD card. [http://downloads.openmoko.org/distro/testing/NeoFreerunner Freerunner] or [http://downloads.openmoko.org/distro/testing/Neo1973 Neo1973]&lt;br /&gt;
# Flash! Detailed instructions for [[Flashing_the_Neo_Freerunner|Freerunner]] and [[Flashing_the_Neo_1973|Neo1973]].&lt;br /&gt;
# Start! The image will boot into fullscreen Paroli and all of the features listed above will be available. To learn more about Paroli, see [[Paroli]]&lt;br /&gt;
&lt;br /&gt;
== Using OM2009 ==&lt;br /&gt;
'''Write your best tips here!!'''&lt;br /&gt;
* To learn to use Paroli, the phone software, go to http://wiki.openmoko.org/wiki/Paroli#FAQ&lt;br /&gt;
* To have log directory that isn't cleared when you reboot, the /var/log symlink needs to be turned into a directory:&lt;br /&gt;
 rm /var/log&lt;br /&gt;
 mkdir /var/log&lt;br /&gt;
&lt;br /&gt;
== Development ==&lt;br /&gt;
'' When we set the very limited goals of OM2009 we had two goals in mind:''&lt;br /&gt;
 &lt;br /&gt;
''1. Give those members of the community who only wanted a daily phone, a distro they could use''&amp;lt;br&amp;gt;&lt;br /&gt;
''2. Introduce technology that would allow the community to come together and improve on these basics'' &lt;br /&gt;
 &lt;br /&gt;
''Community interaction, open development and user driven decision making are at the core of Om2009. Going forward this will be an effort with the community for the community. I invite you to join the effort to make om2009 with paroli the best Om-labeled distribution for the Freerunner. ''&lt;br /&gt;
&lt;br /&gt;
'''How can you help?'''&lt;br /&gt;
 &lt;br /&gt;
''Test the distro, let us know about bugs you find, or even fix them and send us patches.''&lt;br /&gt;
 &lt;br /&gt;
''Tell us about your experiences using om2009, what should we change, where can we improve?''&lt;br /&gt;
 &lt;br /&gt;
''Paroli has come a long way but it still needs a lot of love and optimizing, so if you are into python or efl, check out the code from git.paroli.org, join #paroli on irc and let's get crackin'. There is lots of things to do, opimd needs to be integrated and improved, the UI needs polishing, overall speed can be increased etc etc''&lt;br /&gt;
 &lt;br /&gt;
''More into Chat and email? Feel like writing a jabber/irc/xxx or email client that really fits the screen? Or do you know of one? Let's hear about it. This device has a lot of potential and we are so close to reaching the far corners, the kernel is in good shape, the framework is doing great and telephony apps such as paroli or the shr suite are steadily improving.''&lt;br /&gt;
 &lt;br /&gt;
''So, get your Freerunner in shape again. Flash it with a nice current distro and let it do what it was meant to do :)''&lt;br /&gt;
 &lt;br /&gt;
''Let's make Om2009 a community product, something all of us can be proud of and say &amp;quot;we did this&amp;quot;.''&lt;br /&gt;
&lt;br /&gt;
Mirko/Openmoko at http://lists.openmoko.org/pipermail/community/2009-May/048061.html)&lt;br /&gt;
 &lt;br /&gt;
* [http://n2.nabble.com/Om2009-release-plan-tp2410042p2410042.html OM2009 release plan]&lt;br /&gt;
&lt;br /&gt;
* [[Om_2009_get_active]]&lt;br /&gt;
* [[Paroli-issues]]&lt;br /&gt;
&lt;br /&gt;
* Paroli: http://www.paroli-project.org/ and [[Paroli]]&lt;br /&gt;
* FSO: http://www.freesmartphone.org and [[OpenmokoFramework]]&lt;br /&gt;
&lt;br /&gt;
* BUILDS: [http://downloads.openmoko.org/distro/testing/ Testing] and [http://downloads.openmoko.org/distro/unstable/ Daily/unstable]&lt;br /&gt;
&lt;br /&gt;
=== Reporting Bugs ===&lt;br /&gt;
&lt;br /&gt;
Please enable debugging as [[Om_2009#Using_OM2009|instructed above]]. Attaching frameworkd.log and paroli.log will aid in solving the bug. &lt;br /&gt;
&lt;br /&gt;
Please search the bug list for you issue before adding it to trac. Some of these issues might be [[Paroli]] or FSO issue so you can also check their tracs for solutions or discussions.&lt;br /&gt;
&lt;br /&gt;
* https://docs.openmoko.org/trac (Use the Om2009 tag so that we can track it against this release.)&lt;br /&gt;
* http://trac.freesmartphone.org/wiki&lt;br /&gt;
* http://www.paroli-project.org/trac&lt;br /&gt;
&lt;br /&gt;
[[Category:Om 2009| ]]&lt;/div&gt;</summary>
		<author><name>Michaelshiloh</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Download</id>
		<title>Download</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Download"/>
				<updated>2009-05-06T01:11:50Z</updated>
		
		<summary type="html">&lt;p&gt;Michaelshiloh: /* Om 2008.12 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|Download}}&lt;br /&gt;
This page lists various images you can try out on your Openmoko supported smartphone and some [[#Other downloads]].&lt;br /&gt;
&lt;br /&gt;
See [[Distributions]] for a more descriptive comparison. Then see [[Development Branches Policy]] when you want to know where the really bleeding edge is.&lt;br /&gt;
&lt;br /&gt;
{|align=right&lt;br /&gt;
|__TOC__&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Installation instructions ==&lt;br /&gt;
&lt;br /&gt;
See [[Flashing the Neo FreeRunner]] for installation instructions. Neo 1973 users: [[Getting Started with your Neo1973]]. If you want to install a system to a microSD card, see [[Booting from SD]].&lt;br /&gt;
&lt;br /&gt;
The release directories can contain up to four files:&lt;br /&gt;
&lt;br /&gt;
* a Root FileSystem image. These are the files with '''rootfs''' in their name. They come both as a .jffs2 ready-to-flash image, and as a .tar.gz ready-to-cp tarball.&lt;br /&gt;
* a Kernel image (files with '''uimage''' in their name).&lt;br /&gt;
* a u-boot bootloader (file with '''u-boot''' in the name).&lt;br /&gt;
* a splash image file.&lt;br /&gt;
&lt;br /&gt;
Also, the archive directory contains two identical versions of most files, one having the date in the filename. For those convenience ?&lt;br /&gt;
&lt;br /&gt;
One usually needs only to flash the phone with the root filesystem and the kernel image. The splash image is eyecandy. The u-Boot bootloader is a critical component, you don't want to install a new version of that systematically, but there have been improvements since the one released in shipping phones.&lt;br /&gt;
&lt;br /&gt;
== Openmoko Inc. driven release targets ==&lt;br /&gt;
=== Om 2009 ===&lt;br /&gt;
Om 2009 is the 2009 release of Om. It is under development but you can download beta images&lt;br /&gt;
[http://downloads.openmoko.org/distro/testing/NeoFreerunner/ here]&lt;br /&gt;
&lt;br /&gt;
{{Main|Om2009}}&lt;br /&gt;
&lt;br /&gt;
=== Om 2008.12 ===&lt;br /&gt;
Om 2008.12 is an updated release of Om 2008.8. &lt;br /&gt;
You can download the image [http://downloads.openmoko.org/distro/releases/Om2008.12/ here]&lt;br /&gt;
&lt;br /&gt;
{{Main|Om 2008.12 Update}}&lt;br /&gt;
&lt;br /&gt;
=== Om 2008.9 (ASU) ===&lt;br /&gt;
&lt;br /&gt;
Om 2008.9 is an updated release of Om 2008.8.&lt;br /&gt;
You can download the image [http://downloads.openmoko.org/distro/releases/Om2008.9/ here]&lt;br /&gt;
&lt;br /&gt;
{{Main|Om 2008.9 Update}}&lt;br /&gt;
&lt;br /&gt;
'''Neo FreeRunner images'''&lt;br /&gt;
&lt;br /&gt;
There is no need to reflash if you have installed Om 2008.8 and used ''opkg update &amp;amp;&amp;amp; opkg upgrade''. &lt;br /&gt;
Comment about naming scheme on the [http://lists.openmoko.org/pipermail/community/2008-September/031003.html community mailinglist]&lt;br /&gt;
&lt;br /&gt;
=== The bleeding edge: Om &amp;quot;base / empty&amp;quot; images ===&lt;br /&gt;
&lt;br /&gt;
The ''org.openmoko.dev'' branch does not have any applications preinstalled other than settings and installer, and it is unstable for now.&lt;br /&gt;
&lt;br /&gt;
Images for ''testing'' are at:&lt;br /&gt;
http://downloads.openmoko.org/distro/unstable/&lt;br /&gt;
To get packages from ''testing'', use this ''/etc/opkg/testing.conf'' :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
src/gz testing-all http://downloads.openmoko.org/repository/testing/all&lt;br /&gt;
src/gz testing-arm http://downloads.openmoko.org/repository/testing/armv4t&lt;br /&gt;
src/gz testing-neo http://downloads.openmoko.org/repository/testing/neo1973&lt;br /&gt;
src/gz testing-gta02 http://downloads.openmoko.org/repository/testing/om-gta02&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;!-- unused: src/gz testing-i686 http://downloads.openmoko.org/repository/testing/i686 --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''unstable'' comes from the same branch, compiled with the AUTOREV flag. There are no images, but packages are at http://downloads.openmoko.org/repository/unstable/&lt;br /&gt;
&lt;br /&gt;
Reference: See [http://lists.openmoko.org/pipermail/community/2008-August/027997.html &amp;quot;Repository and Images&amp;quot; announcement] for details on other &amp;quot;Base image&amp;quot;, &amp;quot;testing&amp;quot; and &amp;quot;unstable&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Once you have this base image, you can install the GTK+ telephony apps including gsmd, or Qtopia, or Mickey's framework. Check out the [[FDOM]] page for an idea of what to install.&lt;br /&gt;
&lt;br /&gt;
=== Om 2007.2 images (GTK) ===&lt;br /&gt;
&lt;br /&gt;
{{Main|Om 2007.2}}&lt;br /&gt;
&lt;br /&gt;
Openmoko '''discontinued support''' for this release.&lt;br /&gt;
Two external developers still offer their own builds.&lt;br /&gt;
&lt;br /&gt;
==== Celtune ====&lt;br /&gt;
&lt;br /&gt;
Celtune offers different Images and a huge amount of packages (2007.2, pyneo, fso) for neo1973, freerunner and others. Celtune images can be found [http://rabenfrost.net/celtune/ here].&lt;br /&gt;
&lt;br /&gt;
==== ScaredyCat ====&lt;br /&gt;
&lt;br /&gt;
[http://blog.automated.it/category/openmoko/ Andy Powell] maintains images based on the 2007.2 software stack for the gta01 and gta02. A. Powell's ScaredyCat images can be found [http://buildhost.automated.it/OM2007.2/ here].&lt;br /&gt;
&lt;br /&gt;
=== FSO images (freesmartphone.org) ===&lt;br /&gt;
&lt;br /&gt;
{{Main|OpenmokoFramework}}&lt;br /&gt;
&lt;br /&gt;
The file system will be in a jffs2 &amp;quot;summary&amp;quot; file. A file with the extension &amp;quot;.jffs2.summary&amp;quot; can be flashed to the FreeRunner just like an ordinary jffs2 file.&lt;br /&gt;
&lt;br /&gt;
* [http://git.freesmartphone.org/ Browse the source]&lt;br /&gt;
&lt;br /&gt;
* [[OpenmokoFramework/Status_Update_6|newest status update]]&lt;br /&gt;
&lt;br /&gt;
* [http://downloads.freesmartphone.org/fso-stable/milestone5/ Downloads]&lt;br /&gt;
&lt;br /&gt;
=== Android ===&lt;br /&gt;
Android now can run on Openmoko FreeRunner.&lt;br /&gt;
About the Image, you can check [[Android]] page , to get the detail information.&lt;br /&gt;
Android imagescan be found [http://people.openmoko.org/sean_mcneil/ here].&lt;br /&gt;
&lt;br /&gt;
== Openmoko Community driven release targets ==&lt;br /&gt;
&lt;br /&gt;
=== FDOM ===&lt;br /&gt;
&lt;br /&gt;
{{Main|FDOM - a Fat and Dirty OM based distribution}}&lt;br /&gt;
&lt;br /&gt;
Download images: http://compartida.net/openmoko/FDOM/&lt;br /&gt;
&lt;br /&gt;
=== SHR images (Stable Hybrid Release) ===&lt;br /&gt;
{{Main|SHR}}&lt;br /&gt;
The Stable Hybrid Release (SHR) is intended to be a community driven distribution composed of the FSO and some basic applications, that can be configured to use several different graphical toolkits, for example GTK or EFL. SHR is based on the FSO build. At first, SHR was introduced in order to use the Openmoko2007.2 GTK software in combination with the new FSO, but things have changed. &lt;br /&gt;
&lt;br /&gt;
Download images (unstable currently recommended):&lt;br /&gt;
* [http://build.shr-project.org/shr-testing/images/om-gta02 Neo Freerunner testing]&lt;br /&gt;
* [http://build.shr-project.org/shr-testing/images/om-gta01 Neo 1973 testing]&lt;br /&gt;
* [http://build.shr-project.org/shr-unstable/images/om-gta02 Neo Freerunner unstable]&lt;br /&gt;
* [http://build.shr-project.org/shr-unstable/images/om-gta01 Neo 1973 unstable]&lt;br /&gt;
&lt;br /&gt;
== Non-Openmoko distributions ==&lt;br /&gt;
&lt;br /&gt;
=== Qt Extended (formerly Qtopia) images ===&lt;br /&gt;
&lt;br /&gt;
:''Main article: [[Qtopia / Qt Extended on FreeRunner|Qt Extended]]''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Images are available on the [http://qtextended.org/modules/mydownloads/viewcat.php?cid=6&amp;amp;orderby=dateD Qt Extended download page], make sure your browser sends referrer Header when downloading. (Note: direct linking to the files does not work.)&lt;br /&gt;
&lt;br /&gt;
'''Neo FreeRunner'''&lt;br /&gt;
&lt;br /&gt;
* Qt Extended flash image for FIC Neo Freerunner (gta02) version 4.4.2 can be downloaded [http://qtextended.org/modules/mydownloads/visit.php?lid=98 here]. (The tarball contains rootfs and kernel)&lt;br /&gt;
* If you need to also download mwester's daily kernel (needed for previous version 4.4.1) you can find it [http://moko.mwester.net/dl.html#kernels here].&lt;br /&gt;
&lt;br /&gt;
'''Neo 1973'''&lt;br /&gt;
&lt;br /&gt;
* Qt Extended flash image for FIC Neo 1973 (gta01) version 4.4.2 can be downloaded [http://qtextended.org/modules/mydownloads/visit.php?lid=99 here]. (The tarball contains rootfs and kernel)&lt;br /&gt;
&lt;br /&gt;
* A alternate Neo 1973 image can be downloaded [http://buildhost.automated.it/OM2007.2/openmoko-qtopia-image-om-gta01.tar.gz here]&lt;br /&gt;
&lt;br /&gt;
'''More Qtopia downloads'''&lt;br /&gt;
&lt;br /&gt;
Addtional packages can be added from the Trolltech feed for this image, found at&lt;br /&gt;
http://qtopia.net/packages/feed/4.3.2/neo/&lt;br /&gt;
To get to these packages, you need to add the feed as a source in the Qtopia package manager.&lt;br /&gt;
&lt;br /&gt;
=== Debian images ===&lt;br /&gt;
&lt;br /&gt;
{{Main|Debian}}&lt;br /&gt;
&lt;br /&gt;
=== Hackable:1 images ===&lt;br /&gt;
&lt;br /&gt;
{{Main|Hackable:1}}&lt;br /&gt;
&lt;br /&gt;
== Other downloads ==&lt;br /&gt;
&lt;br /&gt;
=== Applications repositories ===&lt;br /&gt;
&lt;br /&gt;
If you are looking for a specific application instead of a full filesystem image:&lt;br /&gt;
* {{Main|Community Repository}}&lt;br /&gt;
* {{Main|Users Repositories}}&lt;br /&gt;
&lt;br /&gt;
=== CAD files ===&lt;br /&gt;
You can download CAD files [http://downloads.openmoko.org/developer/CAD/ here].&lt;br /&gt;
&lt;br /&gt;
=== Schematics ===&lt;br /&gt;
&lt;br /&gt;
You can download the schematics of [[Neo 1973]] (GTA01) and [[Neo FreeRunner]] (GTA02) [http://downloads.openmoko.org/developer/schematics/ here]&lt;br /&gt;
&lt;br /&gt;
=== Press material ===&lt;br /&gt;
&lt;br /&gt;
Download Neo FreeRunner photos in various sizes for print and web use [http://openmoko.com/press-press-material.html here]&lt;br /&gt;
&lt;br /&gt;
=== Tiddlywiki version of wiki.openmoko.org ===&lt;br /&gt;
If you want to carry this wiki along with you and to use it offline, then download&lt;br /&gt;
it [http://om-tiddlywiki.projects.openmoko.org/openmokowiki.html here] and store it locally, then browse through the pages which you think you need to have, click  &amp;quot;save changes&amp;quot;, so next time you open it all articles you have fetched previously will be available to you.&lt;br /&gt;
&lt;br /&gt;
[[Category:Distributions]]&lt;/div&gt;</summary>
		<author><name>Michaelshiloh</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Qtopia_/_Qt_Extended_on_FreeRunner</id>
		<title>Qtopia / Qt Extended on FreeRunner</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Qtopia_/_Qt_Extended_on_FreeRunner"/>
				<updated>2008-12-25T04:07:43Z</updated>
		
		<summary type="html">&lt;p&gt;Michaelshiloh: /* Test Qtopia */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|Qtopia_on_FreeRunner}}&lt;br /&gt;
&lt;br /&gt;
This page provides instructions on how to install Qtopia/Qt Extended (proper, not the [[ASU]] or [[QtopiaOnX11]] efforts) on the GTA02 (FreeRunner) phone.  It is similar to the [[Qtopia on Neo1973]] page.&lt;br /&gt;
&lt;br /&gt;
{|align=right&lt;br /&gt;
|__TOC__&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Current status ==&lt;br /&gt;
&lt;br /&gt;
On 31 October 2008, Trolltech released the [http://qtextended.org/modules/mydownloads/visit.php?lid=98 Qtopia ROM flash image containing the rootfs] for the Openmoko Neo FreeRunner (gta02) containing the Qtopia 4.4.2 release (GPL version). This runs on the [http://qtextended.org/modules/mydownloads/visit.php?lid=91 mwebster ROM flash image containing the kernel]. At release time, 4.4.2 &amp;amp; current mwester's kernel mismatched, please clarify the previous sentence. Hypnotize has released [http://lists.openmoko.org/pipermail/community/2008-November/035245.html Qt Extended 4.4.2 images for the Neo FreeRunner] that work better.&lt;br /&gt;
&lt;br /&gt;
This image can successfully make and receive calls and text messages. It can read all contacts from the SIM card (which the updated 2007.2 does not appear to be able to do). It contains apps that appear to be more stable than the ones found in the 2007.2 image.  It has multiple input methods that appear to be more mature.  It does have a webkit based web browser and an GPS &amp;quot;Mapping Demo&amp;quot; application.&lt;br /&gt;
&lt;br /&gt;
There are other third-party GPS applications available:&lt;br /&gt;
* [http://blog.wolfman.com/articles/2008/08/27/porting-xgps-to-qtopia-for-the-freerunner xgps]&lt;br /&gt;
* [http://www.linux4.be/fr/roadmap.html RoadMap (experimental)]&lt;br /&gt;
&lt;br /&gt;
([[TangoGPS]] does not work on QtExtended, because it depends upon an Xserver)&lt;br /&gt;
&lt;br /&gt;
You can find all the Qtopia images [http://qtextended.org/modules/mydownloads/viewcat.php?cid=6 here] (including Qtextended/Qtopia 4.4 for FreeRunner and Neo1973!)&lt;br /&gt;
&lt;br /&gt;
=== What is in the latest release (QtExtended 4.4.2)? ===&lt;br /&gt;
Qtopia 4.4 has been released with the name of [http://doc.trolltech.com/qtextended4.4/release-4-4-2.html QtExtended 4.4].&lt;br /&gt;
* a [http://n2.nabble.com/qtopia-update-tp832851p832888.html browser] based on webkit&lt;br /&gt;
* [http://n2.nabble.com/-qtopia--rotate-screen--tp841805p841841.html screen rotation in the settings application] (so no automatic rotation)&lt;br /&gt;
* [http://n2.nabble.com/Echo-issue-on-OM2008.08-potentially-solved-tp791642.html noise reduction]&lt;br /&gt;
* GPS api&lt;br /&gt;
* usb net/storage switching&lt;br /&gt;
* Gtalk support&lt;br /&gt;
* [http://n2.nabble.com/forum/Permalink.jtp?root=841805&amp;amp;post=1083388&amp;amp;page=y better support for non-english languages in the keyboard]&lt;br /&gt;
&lt;br /&gt;
== Option 1: Flashing Qtopia to FreeRunner ==&lt;br /&gt;
&lt;br /&gt;
Download the image mentioned above and follow the instructions here: [[Flashing the Neo FreeRunner]]&lt;br /&gt;
&lt;br /&gt;
== Option 2: Dual-Booting between Qtopia and 2007.2 (Qtopia boots from MicroSD card) ==&lt;br /&gt;
&lt;br /&gt;
Installation Requirements:&lt;br /&gt;
&lt;br /&gt;
# SSH shell access to 2007.2 based image of the FreeRunner through USB interface or WLAN.&lt;br /&gt;
# A Desktop Linux distro (to unpack the .jffs2 image, I ran Ubuntu under VMWare)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Preparing the SD card ===&lt;br /&gt;
&lt;br /&gt;
See the [[Booting from SD#Prepare the SD card| Preparing the SD Card]] section of the [[Booting from SD]] page for partitioning and formatting instructions.  After you complete the &amp;quot;Formatting the SD Card&amp;quot; steps, return here and execute the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mount /dev/mmcblk0p1 /media/card&lt;br /&gt;
mkdir /media/card/boot&lt;br /&gt;
&lt;br /&gt;
mkdir /media/mmcblk0p2&lt;br /&gt;
mount /dev/mmcblk0p2 /media/mmcblk0p2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will set you up properly for the installation of the root filesystem and the kernel in the steps below.&lt;br /&gt;
&lt;br /&gt;
=== Installing Qtopia ===&lt;br /&gt;
&lt;br /&gt;
==== Unpacking the Qtopia Root Filesystem Image ====&lt;br /&gt;
&lt;br /&gt;
Download the Qtopia FLASH image from [[Latest Images#Qtopia images]] to your Linux box and extract its contents:&lt;br /&gt;
&lt;br /&gt;
tar xzf qtopia-4.3.2-gta02-flash-*.tgz&lt;br /&gt;
&lt;br /&gt;
You should now have two files:&lt;br /&gt;
#uImage-2.6.24+git18+9c058ff0d2641df3c36fc3300acb72078d2c41d4-r0-om-gta02.bin&lt;br /&gt;
#qtopia-4.3.2-gta02-rootfs-07172049.jffs2&lt;br /&gt;
Now, mount the root file system from the jffs2 using the commands found [[Userspace root image#Mounting the JFFS2 image on a loop back device (Block Memory MTD Emulation) |here]].  However, in the mount command, substitute the image filename for &amp;quot;/dev/mtdblock0&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==== Creating a compressed tarball ====&lt;br /&gt;
&lt;br /&gt;
Next, tar up the root filesystem:&lt;br /&gt;
&lt;br /&gt;
# tar czf qtopia-4.3.2-gta02-rootfs-07172049.tar.gz -C &amp;lt;mountpoint&amp;gt; .&lt;br /&gt;
&lt;br /&gt;
Where ''&amp;lt;mountpoint&amp;gt;'' is the location where the jff2 filesystem was mounted.  Note the space and the period after the mountpoint.&lt;br /&gt;
&lt;br /&gt;
==== Installing Root Filesystem ====&lt;br /&gt;
&lt;br /&gt;
Transfer this compressed tarball to the second partition of the MicroSD that is mounted on the FreeRunner:&lt;br /&gt;
&lt;br /&gt;
scp qtopia-4.3.2-gta02-rootfs-07172049.tar.gz root@192.168.0.202:/media/mmcblk0p2/&lt;br /&gt;
&lt;br /&gt;
Log in to your FreeRunner and unpack the root filesystem:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /media/mmcblk0p2&lt;br /&gt;
tar xzf qtopia-4.3.2-gta02-rootfs-07172049.tar.gz&lt;br /&gt;
rm qtopia-4.3.2-gta02-rootfs-07172049.tar.gz&lt;br /&gt;
rm -f /media/mmcblk0p2/boot/*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''Note:''''' the last step removes the kernel image from the second partition.  For some reason, U-Boot cannot find the uImage.bin file in the first partition if a kernel image exists in the second partition boot/ directory.&lt;br /&gt;
&lt;br /&gt;
==== Installing Kernel ====&lt;br /&gt;
&lt;br /&gt;
From your Linux box, rename &amp;lt;tt&amp;gt;uImage-2.6.24+git18+9c058ff0d2641df3c36fc3300acb72078d2c41d4-r0-om-gta02.bin&amp;lt;/tt&amp;gt; to &amp;lt;tt&amp;gt;uImage.bin&amp;lt;/tt&amp;gt; and copy it to the boot directory on the first partition of the MicroSD card.  Depending on the version of U-Boot you have installed, this may not work.  To prevent any possible issues, copy it to the &amp;lt;tt&amp;gt;/media/card&amp;lt;/tt&amp;gt; directory as well. There is plenty of room on the first partition to have &amp;lt;tt&amp;gt;uImage.bin&amp;lt;/tt&amp;gt; in both locations.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mv uImage-2.6.24+git18+9c058ff0d2641df3c36fc3300acb72078d2c41d4-r0-om-gta02.bin uImage.bin&lt;br /&gt;
scp uImage.bin root@192.168.0.202:/media/card/boot/&lt;br /&gt;
scp uImage.bin root@192.168.0.202:/media/card/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Pointing Qtopia to the SD Card ====&lt;br /&gt;
&lt;br /&gt;
Lorn Potter on the mailing lists pointed this out:&lt;br /&gt;
&lt;br /&gt;
Qtopia was designed to be run from the root partition on a flash chip, not from a removable sd card.&lt;br /&gt;
&lt;br /&gt;
You would have to edit the etc/default/Trolltech/Storage.conf file to make it forget about the sd /dev node, to be able to run it this way&lt;br /&gt;
&lt;br /&gt;
Another user's solution to this is the following:&lt;br /&gt;
&lt;br /&gt;
Edit this file: /opt/Qtopia/etc/default/Trolltech/Storage.conf&lt;br /&gt;
And change the [MountPoint0] section so it resembles this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[MountPoint0]&lt;br /&gt;
Name[] = SD Card&lt;br /&gt;
Path=/dev/mmcblk0p1&lt;br /&gt;
Removable = 0&lt;br /&gt;
Applications = 0&lt;br /&gt;
Documents = 0&lt;br /&gt;
ContentDatabase = 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Simplified complete procedure using Ubuntu computer and microSD to USB adapter ===&lt;br /&gt;
&lt;br /&gt;
This procedure was developed with:&lt;br /&gt;
&lt;br /&gt;
* Ubuntu 8.10&lt;br /&gt;
* SanDisk microSD to USB adapter&lt;br /&gt;
* Qt Extended 4.4.2 2008/10/31&lt;br /&gt;
&lt;br /&gt;
==== Prepare microSD card ====&lt;br /&gt;
&lt;br /&gt;
Create an 8 MB partition for the kernel and use the remaining space for the root file system.&lt;br /&gt;
&lt;br /&gt;
Insert microSD card into adapter, and plug adapter into Ubuntu computer. If any partitions on the microSD card mount automatically, unmount them.&lt;br /&gt;
&lt;br /&gt;
CAUTION: Make sure you know which device your microSD card is. You don't want to perform these steps on your main hard disk!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo umount /dev/sdb1&lt;br /&gt;
&lt;br /&gt;
sudo fdisk /dev/sdb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I assume you know how to use fdisk. Delete any existing partitions, then create two new partitions, the first of size +8M, the second using all remaining space. Set the file system type of the first partition to FAT16 (type '6'). Your partition table should look like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  /dev/sdb1               1           9        9040+   6  FAT16&lt;br /&gt;
  /dev/sdb2              10         984      982800   83  Linux&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Save your partition table and quit fdisk. Format the partitions appropriately:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo mkfs.vfat /dev/sdb1&lt;br /&gt;
sudo mkfs.ext3 /dev/sdb2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Get the latest version of Qtopia ====&lt;br /&gt;
&lt;br /&gt;
Visit [http://qtextended.org/modules/mydownloads/viewcat.php?cid=6:Qtopia] and get the appropriate file. The Qtopia ROM flash images contain both the file system and the kernel image:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget http://qtextended.org/modules/mydownloads/visit.php?lid=98&lt;br /&gt;
tar -zxvf qtextended-4.4.2-gta02-flash.tgz&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Copy the kernel image to the microSD card ====&lt;br /&gt;
&lt;br /&gt;
First mount the first partition, which is the boot partition, of the microSD card, and make a /boot subdirectory:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo mkdir /media/card&lt;br /&gt;
sudo mount /dev/sdb1 /media/card&lt;br /&gt;
sudo mkdir /media/card/boot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Depending on your version of U-Boot, the kernel image might be expected at the root of the boot partition, or in the /boot directory. Also, the image file name might be expected to have a .bin extension, or not. We create all four variations:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo cp testing-om-gta02-20081029.uImage.bin /media/card/uImage.bin&lt;br /&gt;
sudo cp testing-om-gta02-20081029.uImage.bin /media/card/uImage&lt;br /&gt;
sudo cp testing-om-gta02-20081029.uImage.bin /media/card/boot/uImage.bin&lt;br /&gt;
sudo cp testing-om-gta02-20081029.uImage.bin /media/card/boot/uImage&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wait for data to be written to the microSD card and unmount the first partition:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sync&lt;br /&gt;
sudo umount /dev/sdb1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Copy the jffs2 root file system to the microSD card ====&lt;br /&gt;
&lt;br /&gt;
First we need to make a fake MTD device in RAM so that we can mount the jffs2 root file system:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo modprobe mtd &lt;br /&gt;
sudo modprobe jffs2  &lt;br /&gt;
sudo modprobe mtdram total_size=59024 # default is 4 MByte - set to max.&lt;br /&gt;
sudo modprobe mtdchar &lt;br /&gt;
sudo modprobe mtdblock&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Next we're going to copy onto this fake device. Make sure there are no other MTD devices on your computer and change the device numbers below as necessary:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cat /proc/mtd&lt;br /&gt;
  dev:    size   erasesize  name&lt;br /&gt;
    mtd0: 039a4000 00020000 &amp;quot;mtdram test device&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now copy the jffs2 file system to the fake MTD device:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo dd if=qtextended-4.4.2-gta02-rootfs-10302135.jffs2 of=/dev/mtd0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create a mount point, mount the fake MTD device, and check that the contents seem right:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo mkdir /mnt/tmp&lt;br /&gt;
sudo mount -t jffs2 /dev/mtdblock0 /mnt/tmp&lt;br /&gt;
ls /mnt/tmp&lt;br /&gt;
  bin/   dev/  home/  media/  opt/   sbin/  tmp@	var/&lt;br /&gt;
  boot/  etc/  lib/   mnt/    proc/  sys/   usr/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mount the second partition of the microSD card and copy the root file system to it:&lt;br /&gt;
copy root file system to sd card using tar&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo mkdir /media/rootfs&lt;br /&gt;
sudo mount /dev/sdb2 /media/rootfs&lt;br /&gt;
cd /mnt/tmp&lt;br /&gt;
sudo tar -cf - . | (cd /media/rootfs &amp;amp;&amp;amp; sudo tar -xpvf -)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Warnings about &amp;quot;implausibly old time stamp&amp;quot; don't seem to cause any trouble.&lt;br /&gt;
&lt;br /&gt;
Use &amp;quot;sync&amp;quot; to make sure that all data is written to the microSD card:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sync&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Inspect contents of second partition:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  ls /media/rootfs&lt;br /&gt;
  bin/   dev/  home/  media/  opt/   sbin/  tmp@	var/&lt;br /&gt;
  boot/  etc/  lib/   mnt/    proc/  sys/   usr/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: There was a report that some versions of U-Boot cannot find the kernel image file in the first partition if a kernel image exists in the second partition boot/ directory. I have not confirmed this but there is no need for it so it seems safest to delete it now:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo rm -f /media/rootfs/boot/*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wait for data to be written to the microSD card and unmount the second partition:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sync&lt;br /&gt;
sudo umount /dev/sdb2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Test Qtopia ====&lt;br /&gt;
&lt;br /&gt;
Remove the microSD card from the USB adapter, install it in the Neo FreeRunner, boot into U-Boot, and select the option to boot from microSD card.&lt;br /&gt;
&lt;br /&gt;
== Option 3: updating from source ==&lt;br /&gt;
&lt;br /&gt;
{{note|This will upgrade only opt/Qtopia directory, you should use opkg update/upgrade for the rest}}&lt;br /&gt;
Original Qtopia images (the distribution released by Trolltech, not ASU) are rarely released as a rootfs image, but the source code is often updated. If you want to reflash your OM with the latest version of Qtopia you might build it from sources. This has been explained in [http://lists.openmoko.org/pipermail/community/2008-August/024785.html this thread] of the community mailing list. Summing up:&lt;br /&gt;
&lt;br /&gt;
* get the latest toolchain released by trolltech: http://www.qtopia.net/modules/mydownloads/singlefile.php?lid=38 and unzip it on your PC (as root)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /&lt;br /&gt;
wget http://qtopia.net/downloads/neo/arm920t-eabi-ficgta01-toolchain.tgz&lt;br /&gt;
tar xvzf arm920t-eabi-ficgta01-toolchain.tgz&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* get the latest snapshot from trolltech: ftp://ftp.trolltech.com/qtopia/snapshots/&lt;br /&gt;
&lt;br /&gt;
Since qtopia was renamed in qtextended you could find the snapshots on http://qtextended.org/downloads/snapshots/&lt;br /&gt;
&lt;br /&gt;
*  once dowloaded untar it&lt;br /&gt;
&amp;lt;pre&amp;gt;tar xvzf qtopia-opensource-src-4.3.2-snapshot-20080806.tar.gz&amp;lt;/pre&amp;gt;&lt;br /&gt;
* make a &amp;quot;build&amp;quot; dir&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir build&lt;br /&gt;
cd build&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* configure and make:&lt;br /&gt;
&amp;lt;pre&amp;gt;../qtopia-opensource-src-4.3.2-snapshot-20080806/configure -device ficgta01&lt;br /&gt;
make&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This will take some time (couple hours). Note that the option &amp;quot;-device ficgta01&amp;quot; should work for both neo and freerunner. Then:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
will make a root directory into the ''build'' directory. There you can find an ''image'' that directory should be copied to /opt/Qtopia of your phone with scp. once done restart qpe or whole phone.&lt;br /&gt;
&lt;br /&gt;
For compiling qt-extended 4.4.2, you may need to use the following commands:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
* cd build&lt;br /&gt;
* $QTOPIA_DEPOT_PATH/configure -device neo -verbose -build-qt -force-build-qt&lt;br /&gt;
* bin/qbuild image&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This forces building qt as well which resolved problems with the qbuild test using all the system ram.&lt;br /&gt;
&lt;br /&gt;
== Booting into Qtopia ==&lt;br /&gt;
&lt;br /&gt;
Now shutdown the FreeRunner&lt;br /&gt;
&lt;br /&gt;
shutdown -h now&lt;br /&gt;
&lt;br /&gt;
Log into U-Boot in the NAND Flash to boot from the MicroSD card: (instructions from [[Booting the Neo FreeRunner]])&lt;br /&gt;
&lt;br /&gt;
* Press and hold Power button&lt;br /&gt;
* Then while still pressing the Power button, press and hold AUX button for 5 to 8 seconds.&lt;br /&gt;
* A boot menu will appear.&lt;br /&gt;
* Press the AUX button to select &amp;quot;[[Boot from sd card|Boot from MicroSD]]&amp;quot; and then press the Power button to execute.&lt;br /&gt;
&lt;br /&gt;
Qtopia should now boot.&lt;br /&gt;
&lt;br /&gt;
'''''Note:''''' you may get a kernel panic which says that &amp;quot;optional features not supported&amp;quot;.  If this is the case, boot back into 2007.2 and run&lt;br /&gt;
&lt;br /&gt;
umount /dev/mmcblk0p2&lt;br /&gt;
fsck.ext3.e2fsprogs /dev/mmcblk0p2&lt;br /&gt;
&lt;br /&gt;
This will clean up the file system and clear recovery flags in ext3 that ext2 does not support, then try booting from the MicroSD again.&lt;br /&gt;
&lt;br /&gt;
== Internationalization ==&lt;br /&gt;
&lt;br /&gt;
Qtopia comes with support for German and American English, and users from other countries will find that Qtopia's predictive keyboard makes writing in another language near impossible. One way to disable the predictive keyboard is to simply replace /opt/Qtopia/etc/dict/en_US/common.dawg and words.dawg with empty files (after backing them up). Qtopia normally looks in these files for words to suggest, and if it doesn't find any words that fit, it simply shows what you actually wrote.&lt;br /&gt;
&lt;br /&gt;
Adding characters to the keyboard requires modifications to the source code, as described [http://www.qtopia.net/modules/newbb_plus/viewtopic.php?topic_id=512&amp;amp;forum=16 here].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Suspend /Resume ==&lt;br /&gt;
It seems that suspend/resume only works when the FreeRunner has been connected to a powersource (only a few seconds if sufficient). If you boot from battery, it will never suspend until you have plugged it in at least for a couple of seconds.&lt;br /&gt;
&lt;br /&gt;
== Bugs ==&lt;br /&gt;
&lt;br /&gt;
See [http://trolltech.org/developer/task-tracker/index_html?method=front Trolltech's tracker] ([http://trolltech.org/developer/task-tracker/index_html?method=advsearch&amp;amp;searchstr=&amp;amp;bugs=on&amp;amp;sugs=on&amp;amp;product=2&amp;amp;functionalarea=&amp;amp;versionfound=&amp;amp;versionfixed=&amp;amp;priority=-1&amp;amp;status=0&amp;amp;resolution=-1 Qtopia Tracker]).&lt;br /&gt;
&lt;br /&gt;
Bug reports should be sent to qt-bugs@trolltech.com or by web form at http://trolltech.com/bugreport-form.&lt;br /&gt;
&lt;br /&gt;
== Bugs in 4.4.1 ==&lt;br /&gt;
* Boot and Shutdown Splash will not work because splash-write was not compiled into Busybox&lt;br /&gt;
* Timezone &amp;amp; time on latest Qt 4.4.1&lt;br /&gt;
* The first item in a list is missing the top half&lt;br /&gt;
&lt;br /&gt;
[[Category:Qtopia]]&lt;/div&gt;</summary>
		<author><name>Michaelshiloh</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Qtopia_/_Qt_Extended_on_FreeRunner</id>
		<title>Qtopia / Qt Extended on FreeRunner</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Qtopia_/_Qt_Extended_on_FreeRunner"/>
				<updated>2008-12-25T04:04:35Z</updated>
		
		<summary type="html">&lt;p&gt;Michaelshiloh: /* Copy the jffs2 root file system to the microSD card */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|Qtopia_on_FreeRunner}}&lt;br /&gt;
&lt;br /&gt;
This page provides instructions on how to install Qtopia/Qt Extended (proper, not the [[ASU]] or [[QtopiaOnX11]] efforts) on the GTA02 (FreeRunner) phone.  It is similar to the [[Qtopia on Neo1973]] page.&lt;br /&gt;
&lt;br /&gt;
{|align=right&lt;br /&gt;
|__TOC__&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Current status ==&lt;br /&gt;
&lt;br /&gt;
On 31 October 2008, Trolltech released the [http://qtextended.org/modules/mydownloads/visit.php?lid=98 Qtopia ROM flash image containing the rootfs] for the Openmoko Neo FreeRunner (gta02) containing the Qtopia 4.4.2 release (GPL version). This runs on the [http://qtextended.org/modules/mydownloads/visit.php?lid=91 mwebster ROM flash image containing the kernel]. At release time, 4.4.2 &amp;amp; current mwester's kernel mismatched, please clarify the previous sentence. Hypnotize has released [http://lists.openmoko.org/pipermail/community/2008-November/035245.html Qt Extended 4.4.2 images for the Neo FreeRunner] that work better.&lt;br /&gt;
&lt;br /&gt;
This image can successfully make and receive calls and text messages. It can read all contacts from the SIM card (which the updated 2007.2 does not appear to be able to do). It contains apps that appear to be more stable than the ones found in the 2007.2 image.  It has multiple input methods that appear to be more mature.  It does have a webkit based web browser and an GPS &amp;quot;Mapping Demo&amp;quot; application.&lt;br /&gt;
&lt;br /&gt;
There are other third-party GPS applications available:&lt;br /&gt;
* [http://blog.wolfman.com/articles/2008/08/27/porting-xgps-to-qtopia-for-the-freerunner xgps]&lt;br /&gt;
* [http://www.linux4.be/fr/roadmap.html RoadMap (experimental)]&lt;br /&gt;
&lt;br /&gt;
([[TangoGPS]] does not work on QtExtended, because it depends upon an Xserver)&lt;br /&gt;
&lt;br /&gt;
You can find all the Qtopia images [http://qtextended.org/modules/mydownloads/viewcat.php?cid=6 here] (including Qtextended/Qtopia 4.4 for FreeRunner and Neo1973!)&lt;br /&gt;
&lt;br /&gt;
=== What is in the latest release (QtExtended 4.4.2)? ===&lt;br /&gt;
Qtopia 4.4 has been released with the name of [http://doc.trolltech.com/qtextended4.4/release-4-4-2.html QtExtended 4.4].&lt;br /&gt;
* a [http://n2.nabble.com/qtopia-update-tp832851p832888.html browser] based on webkit&lt;br /&gt;
* [http://n2.nabble.com/-qtopia--rotate-screen--tp841805p841841.html screen rotation in the settings application] (so no automatic rotation)&lt;br /&gt;
* [http://n2.nabble.com/Echo-issue-on-OM2008.08-potentially-solved-tp791642.html noise reduction]&lt;br /&gt;
* GPS api&lt;br /&gt;
* usb net/storage switching&lt;br /&gt;
* Gtalk support&lt;br /&gt;
* [http://n2.nabble.com/forum/Permalink.jtp?root=841805&amp;amp;post=1083388&amp;amp;page=y better support for non-english languages in the keyboard]&lt;br /&gt;
&lt;br /&gt;
== Option 1: Flashing Qtopia to FreeRunner ==&lt;br /&gt;
&lt;br /&gt;
Download the image mentioned above and follow the instructions here: [[Flashing the Neo FreeRunner]]&lt;br /&gt;
&lt;br /&gt;
== Option 2: Dual-Booting between Qtopia and 2007.2 (Qtopia boots from MicroSD card) ==&lt;br /&gt;
&lt;br /&gt;
Installation Requirements:&lt;br /&gt;
&lt;br /&gt;
# SSH shell access to 2007.2 based image of the FreeRunner through USB interface or WLAN.&lt;br /&gt;
# A Desktop Linux distro (to unpack the .jffs2 image, I ran Ubuntu under VMWare)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Preparing the SD card ===&lt;br /&gt;
&lt;br /&gt;
See the [[Booting from SD#Prepare the SD card| Preparing the SD Card]] section of the [[Booting from SD]] page for partitioning and formatting instructions.  After you complete the &amp;quot;Formatting the SD Card&amp;quot; steps, return here and execute the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mount /dev/mmcblk0p1 /media/card&lt;br /&gt;
mkdir /media/card/boot&lt;br /&gt;
&lt;br /&gt;
mkdir /media/mmcblk0p2&lt;br /&gt;
mount /dev/mmcblk0p2 /media/mmcblk0p2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will set you up properly for the installation of the root filesystem and the kernel in the steps below.&lt;br /&gt;
&lt;br /&gt;
=== Installing Qtopia ===&lt;br /&gt;
&lt;br /&gt;
==== Unpacking the Qtopia Root Filesystem Image ====&lt;br /&gt;
&lt;br /&gt;
Download the Qtopia FLASH image from [[Latest Images#Qtopia images]] to your Linux box and extract its contents:&lt;br /&gt;
&lt;br /&gt;
tar xzf qtopia-4.3.2-gta02-flash-*.tgz&lt;br /&gt;
&lt;br /&gt;
You should now have two files:&lt;br /&gt;
#uImage-2.6.24+git18+9c058ff0d2641df3c36fc3300acb72078d2c41d4-r0-om-gta02.bin&lt;br /&gt;
#qtopia-4.3.2-gta02-rootfs-07172049.jffs2&lt;br /&gt;
Now, mount the root file system from the jffs2 using the commands found [[Userspace root image#Mounting the JFFS2 image on a loop back device (Block Memory MTD Emulation) |here]].  However, in the mount command, substitute the image filename for &amp;quot;/dev/mtdblock0&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==== Creating a compressed tarball ====&lt;br /&gt;
&lt;br /&gt;
Next, tar up the root filesystem:&lt;br /&gt;
&lt;br /&gt;
# tar czf qtopia-4.3.2-gta02-rootfs-07172049.tar.gz -C &amp;lt;mountpoint&amp;gt; .&lt;br /&gt;
&lt;br /&gt;
Where ''&amp;lt;mountpoint&amp;gt;'' is the location where the jff2 filesystem was mounted.  Note the space and the period after the mountpoint.&lt;br /&gt;
&lt;br /&gt;
==== Installing Root Filesystem ====&lt;br /&gt;
&lt;br /&gt;
Transfer this compressed tarball to the second partition of the MicroSD that is mounted on the FreeRunner:&lt;br /&gt;
&lt;br /&gt;
scp qtopia-4.3.2-gta02-rootfs-07172049.tar.gz root@192.168.0.202:/media/mmcblk0p2/&lt;br /&gt;
&lt;br /&gt;
Log in to your FreeRunner and unpack the root filesystem:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /media/mmcblk0p2&lt;br /&gt;
tar xzf qtopia-4.3.2-gta02-rootfs-07172049.tar.gz&lt;br /&gt;
rm qtopia-4.3.2-gta02-rootfs-07172049.tar.gz&lt;br /&gt;
rm -f /media/mmcblk0p2/boot/*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''Note:''''' the last step removes the kernel image from the second partition.  For some reason, U-Boot cannot find the uImage.bin file in the first partition if a kernel image exists in the second partition boot/ directory.&lt;br /&gt;
&lt;br /&gt;
==== Installing Kernel ====&lt;br /&gt;
&lt;br /&gt;
From your Linux box, rename &amp;lt;tt&amp;gt;uImage-2.6.24+git18+9c058ff0d2641df3c36fc3300acb72078d2c41d4-r0-om-gta02.bin&amp;lt;/tt&amp;gt; to &amp;lt;tt&amp;gt;uImage.bin&amp;lt;/tt&amp;gt; and copy it to the boot directory on the first partition of the MicroSD card.  Depending on the version of U-Boot you have installed, this may not work.  To prevent any possible issues, copy it to the &amp;lt;tt&amp;gt;/media/card&amp;lt;/tt&amp;gt; directory as well. There is plenty of room on the first partition to have &amp;lt;tt&amp;gt;uImage.bin&amp;lt;/tt&amp;gt; in both locations.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mv uImage-2.6.24+git18+9c058ff0d2641df3c36fc3300acb72078d2c41d4-r0-om-gta02.bin uImage.bin&lt;br /&gt;
scp uImage.bin root@192.168.0.202:/media/card/boot/&lt;br /&gt;
scp uImage.bin root@192.168.0.202:/media/card/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Pointing Qtopia to the SD Card ====&lt;br /&gt;
&lt;br /&gt;
Lorn Potter on the mailing lists pointed this out:&lt;br /&gt;
&lt;br /&gt;
Qtopia was designed to be run from the root partition on a flash chip, not from a removable sd card.&lt;br /&gt;
&lt;br /&gt;
You would have to edit the etc/default/Trolltech/Storage.conf file to make it forget about the sd /dev node, to be able to run it this way&lt;br /&gt;
&lt;br /&gt;
Another user's solution to this is the following:&lt;br /&gt;
&lt;br /&gt;
Edit this file: /opt/Qtopia/etc/default/Trolltech/Storage.conf&lt;br /&gt;
And change the [MountPoint0] section so it resembles this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[MountPoint0]&lt;br /&gt;
Name[] = SD Card&lt;br /&gt;
Path=/dev/mmcblk0p1&lt;br /&gt;
Removable = 0&lt;br /&gt;
Applications = 0&lt;br /&gt;
Documents = 0&lt;br /&gt;
ContentDatabase = 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Simplified complete procedure using Ubuntu computer and microSD to USB adapter ===&lt;br /&gt;
&lt;br /&gt;
This procedure was developed with:&lt;br /&gt;
&lt;br /&gt;
* Ubuntu 8.10&lt;br /&gt;
* SanDisk microSD to USB adapter&lt;br /&gt;
* Qt Extended 4.4.2 2008/10/31&lt;br /&gt;
&lt;br /&gt;
==== Prepare microSD card ====&lt;br /&gt;
&lt;br /&gt;
Create an 8 MB partition for the kernel and use the remaining space for the root file system.&lt;br /&gt;
&lt;br /&gt;
Insert microSD card into adapter, and plug adapter into Ubuntu computer. If any partitions on the microSD card mount automatically, unmount them.&lt;br /&gt;
&lt;br /&gt;
CAUTION: Make sure you know which device your microSD card is. You don't want to perform these steps on your main hard disk!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo umount /dev/sdb1&lt;br /&gt;
&lt;br /&gt;
sudo fdisk /dev/sdb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I assume you know how to use fdisk. Delete any existing partitions, then create two new partitions, the first of size +8M, the second using all remaining space. Set the file system type of the first partition to FAT16 (type '6'). Your partition table should look like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  /dev/sdb1               1           9        9040+   6  FAT16&lt;br /&gt;
  /dev/sdb2              10         984      982800   83  Linux&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Save your partition table and quit fdisk. Format the partitions appropriately:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo mkfs.vfat /dev/sdb1&lt;br /&gt;
sudo mkfs.ext3 /dev/sdb2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Get the latest version of Qtopia ====&lt;br /&gt;
&lt;br /&gt;
Visit [http://qtextended.org/modules/mydownloads/viewcat.php?cid=6:Qtopia] and get the appropriate file. The Qtopia ROM flash images contain both the file system and the kernel image:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget http://qtextended.org/modules/mydownloads/visit.php?lid=98&lt;br /&gt;
tar -zxvf qtextended-4.4.2-gta02-flash.tgz&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Copy the kernel image to the microSD card ====&lt;br /&gt;
&lt;br /&gt;
First mount the first partition, which is the boot partition, of the microSD card, and make a /boot subdirectory:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo mkdir /media/card&lt;br /&gt;
sudo mount /dev/sdb1 /media/card&lt;br /&gt;
sudo mkdir /media/card/boot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Depending on your version of U-Boot, the kernel image might be expected at the root of the boot partition, or in the /boot directory. Also, the image file name might be expected to have a .bin extension, or not. We create all four variations:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo cp testing-om-gta02-20081029.uImage.bin /media/card/uImage.bin&lt;br /&gt;
sudo cp testing-om-gta02-20081029.uImage.bin /media/card/uImage&lt;br /&gt;
sudo cp testing-om-gta02-20081029.uImage.bin /media/card/boot/uImage.bin&lt;br /&gt;
sudo cp testing-om-gta02-20081029.uImage.bin /media/card/boot/uImage&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wait for data to be written to the microSD card and unmount the first partition:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sync&lt;br /&gt;
sudo umount /dev/sdb1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Copy the jffs2 root file system to the microSD card ====&lt;br /&gt;
&lt;br /&gt;
First we need to make a fake MTD device in RAM so that we can mount the jffs2 root file system:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo modprobe mtd &lt;br /&gt;
sudo modprobe jffs2  &lt;br /&gt;
sudo modprobe mtdram total_size=59024 # default is 4 MByte - set to max.&lt;br /&gt;
sudo modprobe mtdchar &lt;br /&gt;
sudo modprobe mtdblock&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Next we're going to copy onto this fake device. Make sure there are no other MTD devices on your computer and change the device numbers below as necessary:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cat /proc/mtd&lt;br /&gt;
  dev:    size   erasesize  name&lt;br /&gt;
    mtd0: 039a4000 00020000 &amp;quot;mtdram test device&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now copy the jffs2 file system to the fake MTD device:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo dd if=qtextended-4.4.2-gta02-rootfs-10302135.jffs2 of=/dev/mtd0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create a mount point, mount the fake MTD device, and check that the contents seem right:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo mkdir /mnt/tmp&lt;br /&gt;
sudo mount -t jffs2 /dev/mtdblock0 /mnt/tmp&lt;br /&gt;
ls /mnt/tmp&lt;br /&gt;
  bin/   dev/  home/  media/  opt/   sbin/  tmp@	var/&lt;br /&gt;
  boot/  etc/  lib/   mnt/    proc/  sys/   usr/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mount the second partition of the microSD card and copy the root file system to it:&lt;br /&gt;
copy root file system to sd card using tar&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo mkdir /media/rootfs&lt;br /&gt;
sudo mount /dev/sdb2 /media/rootfs&lt;br /&gt;
cd /mnt/tmp&lt;br /&gt;
sudo tar -cf - . | (cd /media/rootfs &amp;amp;&amp;amp; sudo tar -xpvf -)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Warnings about &amp;quot;implausibly old time stamp&amp;quot; don't seem to cause any trouble.&lt;br /&gt;
&lt;br /&gt;
Use &amp;quot;sync&amp;quot; to make sure that all data is written to the microSD card:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sync&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Inspect contents of second partition:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  ls /media/rootfs&lt;br /&gt;
  bin/   dev/  home/  media/  opt/   sbin/  tmp@	var/&lt;br /&gt;
  boot/  etc/  lib/   mnt/    proc/  sys/   usr/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: There was a report that some versions of U-Boot cannot find the kernel image file in the first partition if a kernel image exists in the second partition boot/ directory. I have not confirmed this but there is no need for it so it seems safest to delete it now:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo rm -f /media/rootfs/boot/*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wait for data to be written to the microSD card and unmount the second partition:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sync&lt;br /&gt;
sudo umount /dev/sdb2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Test Qtopia ====&lt;br /&gt;
&lt;br /&gt;
Remove the microSD card from the USB adapter, install it in the Neo FreeRunner, boot into uBoot, and select the option to boot from microSD card.&lt;br /&gt;
&lt;br /&gt;
== Option 3: updating from source ==&lt;br /&gt;
&lt;br /&gt;
{{note|This will upgrade only opt/Qtopia directory, you should use opkg update/upgrade for the rest}}&lt;br /&gt;
Original Qtopia images (the distribution released by Trolltech, not ASU) are rarely released as a rootfs image, but the source code is often updated. If you want to reflash your OM with the latest version of Qtopia you might build it from sources. This has been explained in [http://lists.openmoko.org/pipermail/community/2008-August/024785.html this thread] of the community mailing list. Summing up:&lt;br /&gt;
&lt;br /&gt;
* get the latest toolchain released by trolltech: http://www.qtopia.net/modules/mydownloads/singlefile.php?lid=38 and unzip it on your PC (as root)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /&lt;br /&gt;
wget http://qtopia.net/downloads/neo/arm920t-eabi-ficgta01-toolchain.tgz&lt;br /&gt;
tar xvzf arm920t-eabi-ficgta01-toolchain.tgz&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* get the latest snapshot from trolltech: ftp://ftp.trolltech.com/qtopia/snapshots/&lt;br /&gt;
&lt;br /&gt;
Since qtopia was renamed in qtextended you could find the snapshots on http://qtextended.org/downloads/snapshots/&lt;br /&gt;
&lt;br /&gt;
*  once dowloaded untar it&lt;br /&gt;
&amp;lt;pre&amp;gt;tar xvzf qtopia-opensource-src-4.3.2-snapshot-20080806.tar.gz&amp;lt;/pre&amp;gt;&lt;br /&gt;
* make a &amp;quot;build&amp;quot; dir&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir build&lt;br /&gt;
cd build&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* configure and make:&lt;br /&gt;
&amp;lt;pre&amp;gt;../qtopia-opensource-src-4.3.2-snapshot-20080806/configure -device ficgta01&lt;br /&gt;
make&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This will take some time (couple hours). Note that the option &amp;quot;-device ficgta01&amp;quot; should work for both neo and freerunner. Then:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
will make a root directory into the ''build'' directory. There you can find an ''image'' that directory should be copied to /opt/Qtopia of your phone with scp. once done restart qpe or whole phone.&lt;br /&gt;
&lt;br /&gt;
For compiling qt-extended 4.4.2, you may need to use the following commands:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
* cd build&lt;br /&gt;
* $QTOPIA_DEPOT_PATH/configure -device neo -verbose -build-qt -force-build-qt&lt;br /&gt;
* bin/qbuild image&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This forces building qt as well which resolved problems with the qbuild test using all the system ram.&lt;br /&gt;
&lt;br /&gt;
== Booting into Qtopia ==&lt;br /&gt;
&lt;br /&gt;
Now shutdown the FreeRunner&lt;br /&gt;
&lt;br /&gt;
shutdown -h now&lt;br /&gt;
&lt;br /&gt;
Log into U-Boot in the NAND Flash to boot from the MicroSD card: (instructions from [[Booting the Neo FreeRunner]])&lt;br /&gt;
&lt;br /&gt;
* Press and hold Power button&lt;br /&gt;
* Then while still pressing the Power button, press and hold AUX button for 5 to 8 seconds.&lt;br /&gt;
* A boot menu will appear.&lt;br /&gt;
* Press the AUX button to select &amp;quot;[[Boot from sd card|Boot from MicroSD]]&amp;quot; and then press the Power button to execute.&lt;br /&gt;
&lt;br /&gt;
Qtopia should now boot.&lt;br /&gt;
&lt;br /&gt;
'''''Note:''''' you may get a kernel panic which says that &amp;quot;optional features not supported&amp;quot;.  If this is the case, boot back into 2007.2 and run&lt;br /&gt;
&lt;br /&gt;
umount /dev/mmcblk0p2&lt;br /&gt;
fsck.ext3.e2fsprogs /dev/mmcblk0p2&lt;br /&gt;
&lt;br /&gt;
This will clean up the file system and clear recovery flags in ext3 that ext2 does not support, then try booting from the MicroSD again.&lt;br /&gt;
&lt;br /&gt;
== Internationalization ==&lt;br /&gt;
&lt;br /&gt;
Qtopia comes with support for German and American English, and users from other countries will find that Qtopia's predictive keyboard makes writing in another language near impossible. One way to disable the predictive keyboard is to simply replace /opt/Qtopia/etc/dict/en_US/common.dawg and words.dawg with empty files (after backing them up). Qtopia normally looks in these files for words to suggest, and if it doesn't find any words that fit, it simply shows what you actually wrote.&lt;br /&gt;
&lt;br /&gt;
Adding characters to the keyboard requires modifications to the source code, as described [http://www.qtopia.net/modules/newbb_plus/viewtopic.php?topic_id=512&amp;amp;forum=16 here].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Suspend /Resume ==&lt;br /&gt;
It seems that suspend/resume only works when the FreeRunner has been connected to a powersource (only a few seconds if sufficient). If you boot from battery, it will never suspend until you have plugged it in at least for a couple of seconds.&lt;br /&gt;
&lt;br /&gt;
== Bugs ==&lt;br /&gt;
&lt;br /&gt;
See [http://trolltech.org/developer/task-tracker/index_html?method=front Trolltech's tracker] ([http://trolltech.org/developer/task-tracker/index_html?method=advsearch&amp;amp;searchstr=&amp;amp;bugs=on&amp;amp;sugs=on&amp;amp;product=2&amp;amp;functionalarea=&amp;amp;versionfound=&amp;amp;versionfixed=&amp;amp;priority=-1&amp;amp;status=0&amp;amp;resolution=-1 Qtopia Tracker]).&lt;br /&gt;
&lt;br /&gt;
Bug reports should be sent to qt-bugs@trolltech.com or by web form at http://trolltech.com/bugreport-form.&lt;br /&gt;
&lt;br /&gt;
== Bugs in 4.4.1 ==&lt;br /&gt;
* Boot and Shutdown Splash will not work because splash-write was not compiled into Busybox&lt;br /&gt;
* Timezone &amp;amp; time on latest Qt 4.4.1&lt;br /&gt;
* The first item in a list is missing the top half&lt;br /&gt;
&lt;br /&gt;
[[Category:Qtopia]]&lt;/div&gt;</summary>
		<author><name>Michaelshiloh</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Qtopia_/_Qt_Extended_on_FreeRunner</id>
		<title>Qtopia / Qt Extended on FreeRunner</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Qtopia_/_Qt_Extended_on_FreeRunner"/>
				<updated>2008-12-25T04:03:42Z</updated>
		
		<summary type="html">&lt;p&gt;Michaelshiloh: /* Copy the jffs2 root file system to the microSD card */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|Qtopia_on_FreeRunner}}&lt;br /&gt;
&lt;br /&gt;
This page provides instructions on how to install Qtopia/Qt Extended (proper, not the [[ASU]] or [[QtopiaOnX11]] efforts) on the GTA02 (FreeRunner) phone.  It is similar to the [[Qtopia on Neo1973]] page.&lt;br /&gt;
&lt;br /&gt;
{|align=right&lt;br /&gt;
|__TOC__&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Current status ==&lt;br /&gt;
&lt;br /&gt;
On 31 October 2008, Trolltech released the [http://qtextended.org/modules/mydownloads/visit.php?lid=98 Qtopia ROM flash image containing the rootfs] for the Openmoko Neo FreeRunner (gta02) containing the Qtopia 4.4.2 release (GPL version). This runs on the [http://qtextended.org/modules/mydownloads/visit.php?lid=91 mwebster ROM flash image containing the kernel]. At release time, 4.4.2 &amp;amp; current mwester's kernel mismatched, please clarify the previous sentence. Hypnotize has released [http://lists.openmoko.org/pipermail/community/2008-November/035245.html Qt Extended 4.4.2 images for the Neo FreeRunner] that work better.&lt;br /&gt;
&lt;br /&gt;
This image can successfully make and receive calls and text messages. It can read all contacts from the SIM card (which the updated 2007.2 does not appear to be able to do). It contains apps that appear to be more stable than the ones found in the 2007.2 image.  It has multiple input methods that appear to be more mature.  It does have a webkit based web browser and an GPS &amp;quot;Mapping Demo&amp;quot; application.&lt;br /&gt;
&lt;br /&gt;
There are other third-party GPS applications available:&lt;br /&gt;
* [http://blog.wolfman.com/articles/2008/08/27/porting-xgps-to-qtopia-for-the-freerunner xgps]&lt;br /&gt;
* [http://www.linux4.be/fr/roadmap.html RoadMap (experimental)]&lt;br /&gt;
&lt;br /&gt;
([[TangoGPS]] does not work on QtExtended, because it depends upon an Xserver)&lt;br /&gt;
&lt;br /&gt;
You can find all the Qtopia images [http://qtextended.org/modules/mydownloads/viewcat.php?cid=6 here] (including Qtextended/Qtopia 4.4 for FreeRunner and Neo1973!)&lt;br /&gt;
&lt;br /&gt;
=== What is in the latest release (QtExtended 4.4.2)? ===&lt;br /&gt;
Qtopia 4.4 has been released with the name of [http://doc.trolltech.com/qtextended4.4/release-4-4-2.html QtExtended 4.4].&lt;br /&gt;
* a [http://n2.nabble.com/qtopia-update-tp832851p832888.html browser] based on webkit&lt;br /&gt;
* [http://n2.nabble.com/-qtopia--rotate-screen--tp841805p841841.html screen rotation in the settings application] (so no automatic rotation)&lt;br /&gt;
* [http://n2.nabble.com/Echo-issue-on-OM2008.08-potentially-solved-tp791642.html noise reduction]&lt;br /&gt;
* GPS api&lt;br /&gt;
* usb net/storage switching&lt;br /&gt;
* Gtalk support&lt;br /&gt;
* [http://n2.nabble.com/forum/Permalink.jtp?root=841805&amp;amp;post=1083388&amp;amp;page=y better support for non-english languages in the keyboard]&lt;br /&gt;
&lt;br /&gt;
== Option 1: Flashing Qtopia to FreeRunner ==&lt;br /&gt;
&lt;br /&gt;
Download the image mentioned above and follow the instructions here: [[Flashing the Neo FreeRunner]]&lt;br /&gt;
&lt;br /&gt;
== Option 2: Dual-Booting between Qtopia and 2007.2 (Qtopia boots from MicroSD card) ==&lt;br /&gt;
&lt;br /&gt;
Installation Requirements:&lt;br /&gt;
&lt;br /&gt;
# SSH shell access to 2007.2 based image of the FreeRunner through USB interface or WLAN.&lt;br /&gt;
# A Desktop Linux distro (to unpack the .jffs2 image, I ran Ubuntu under VMWare)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Preparing the SD card ===&lt;br /&gt;
&lt;br /&gt;
See the [[Booting from SD#Prepare the SD card| Preparing the SD Card]] section of the [[Booting from SD]] page for partitioning and formatting instructions.  After you complete the &amp;quot;Formatting the SD Card&amp;quot; steps, return here and execute the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mount /dev/mmcblk0p1 /media/card&lt;br /&gt;
mkdir /media/card/boot&lt;br /&gt;
&lt;br /&gt;
mkdir /media/mmcblk0p2&lt;br /&gt;
mount /dev/mmcblk0p2 /media/mmcblk0p2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will set you up properly for the installation of the root filesystem and the kernel in the steps below.&lt;br /&gt;
&lt;br /&gt;
=== Installing Qtopia ===&lt;br /&gt;
&lt;br /&gt;
==== Unpacking the Qtopia Root Filesystem Image ====&lt;br /&gt;
&lt;br /&gt;
Download the Qtopia FLASH image from [[Latest Images#Qtopia images]] to your Linux box and extract its contents:&lt;br /&gt;
&lt;br /&gt;
tar xzf qtopia-4.3.2-gta02-flash-*.tgz&lt;br /&gt;
&lt;br /&gt;
You should now have two files:&lt;br /&gt;
#uImage-2.6.24+git18+9c058ff0d2641df3c36fc3300acb72078d2c41d4-r0-om-gta02.bin&lt;br /&gt;
#qtopia-4.3.2-gta02-rootfs-07172049.jffs2&lt;br /&gt;
Now, mount the root file system from the jffs2 using the commands found [[Userspace root image#Mounting the JFFS2 image on a loop back device (Block Memory MTD Emulation) |here]].  However, in the mount command, substitute the image filename for &amp;quot;/dev/mtdblock0&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==== Creating a compressed tarball ====&lt;br /&gt;
&lt;br /&gt;
Next, tar up the root filesystem:&lt;br /&gt;
&lt;br /&gt;
# tar czf qtopia-4.3.2-gta02-rootfs-07172049.tar.gz -C &amp;lt;mountpoint&amp;gt; .&lt;br /&gt;
&lt;br /&gt;
Where ''&amp;lt;mountpoint&amp;gt;'' is the location where the jff2 filesystem was mounted.  Note the space and the period after the mountpoint.&lt;br /&gt;
&lt;br /&gt;
==== Installing Root Filesystem ====&lt;br /&gt;
&lt;br /&gt;
Transfer this compressed tarball to the second partition of the MicroSD that is mounted on the FreeRunner:&lt;br /&gt;
&lt;br /&gt;
scp qtopia-4.3.2-gta02-rootfs-07172049.tar.gz root@192.168.0.202:/media/mmcblk0p2/&lt;br /&gt;
&lt;br /&gt;
Log in to your FreeRunner and unpack the root filesystem:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /media/mmcblk0p2&lt;br /&gt;
tar xzf qtopia-4.3.2-gta02-rootfs-07172049.tar.gz&lt;br /&gt;
rm qtopia-4.3.2-gta02-rootfs-07172049.tar.gz&lt;br /&gt;
rm -f /media/mmcblk0p2/boot/*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''Note:''''' the last step removes the kernel image from the second partition.  For some reason, U-Boot cannot find the uImage.bin file in the first partition if a kernel image exists in the second partition boot/ directory.&lt;br /&gt;
&lt;br /&gt;
==== Installing Kernel ====&lt;br /&gt;
&lt;br /&gt;
From your Linux box, rename &amp;lt;tt&amp;gt;uImage-2.6.24+git18+9c058ff0d2641df3c36fc3300acb72078d2c41d4-r0-om-gta02.bin&amp;lt;/tt&amp;gt; to &amp;lt;tt&amp;gt;uImage.bin&amp;lt;/tt&amp;gt; and copy it to the boot directory on the first partition of the MicroSD card.  Depending on the version of U-Boot you have installed, this may not work.  To prevent any possible issues, copy it to the &amp;lt;tt&amp;gt;/media/card&amp;lt;/tt&amp;gt; directory as well. There is plenty of room on the first partition to have &amp;lt;tt&amp;gt;uImage.bin&amp;lt;/tt&amp;gt; in both locations.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mv uImage-2.6.24+git18+9c058ff0d2641df3c36fc3300acb72078d2c41d4-r0-om-gta02.bin uImage.bin&lt;br /&gt;
scp uImage.bin root@192.168.0.202:/media/card/boot/&lt;br /&gt;
scp uImage.bin root@192.168.0.202:/media/card/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Pointing Qtopia to the SD Card ====&lt;br /&gt;
&lt;br /&gt;
Lorn Potter on the mailing lists pointed this out:&lt;br /&gt;
&lt;br /&gt;
Qtopia was designed to be run from the root partition on a flash chip, not from a removable sd card.&lt;br /&gt;
&lt;br /&gt;
You would have to edit the etc/default/Trolltech/Storage.conf file to make it forget about the sd /dev node, to be able to run it this way&lt;br /&gt;
&lt;br /&gt;
Another user's solution to this is the following:&lt;br /&gt;
&lt;br /&gt;
Edit this file: /opt/Qtopia/etc/default/Trolltech/Storage.conf&lt;br /&gt;
And change the [MountPoint0] section so it resembles this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[MountPoint0]&lt;br /&gt;
Name[] = SD Card&lt;br /&gt;
Path=/dev/mmcblk0p1&lt;br /&gt;
Removable = 0&lt;br /&gt;
Applications = 0&lt;br /&gt;
Documents = 0&lt;br /&gt;
ContentDatabase = 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Simplified complete procedure using Ubuntu computer and microSD to USB adapter ===&lt;br /&gt;
&lt;br /&gt;
This procedure was developed with:&lt;br /&gt;
&lt;br /&gt;
* Ubuntu 8.10&lt;br /&gt;
* SanDisk microSD to USB adapter&lt;br /&gt;
* Qt Extended 4.4.2 2008/10/31&lt;br /&gt;
&lt;br /&gt;
==== Prepare microSD card ====&lt;br /&gt;
&lt;br /&gt;
Create an 8 MB partition for the kernel and use the remaining space for the root file system.&lt;br /&gt;
&lt;br /&gt;
Insert microSD card into adapter, and plug adapter into Ubuntu computer. If any partitions on the microSD card mount automatically, unmount them.&lt;br /&gt;
&lt;br /&gt;
CAUTION: Make sure you know which device your microSD card is. You don't want to perform these steps on your main hard disk!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo umount /dev/sdb1&lt;br /&gt;
&lt;br /&gt;
sudo fdisk /dev/sdb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I assume you know how to use fdisk. Delete any existing partitions, then create two new partitions, the first of size +8M, the second using all remaining space. Set the file system type of the first partition to FAT16 (type '6'). Your partition table should look like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  /dev/sdb1               1           9        9040+   6  FAT16&lt;br /&gt;
  /dev/sdb2              10         984      982800   83  Linux&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Save your partition table and quit fdisk. Format the partitions appropriately:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo mkfs.vfat /dev/sdb1&lt;br /&gt;
sudo mkfs.ext3 /dev/sdb2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Get the latest version of Qtopia ====&lt;br /&gt;
&lt;br /&gt;
Visit [http://qtextended.org/modules/mydownloads/viewcat.php?cid=6:Qtopia] and get the appropriate file. The Qtopia ROM flash images contain both the file system and the kernel image:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget http://qtextended.org/modules/mydownloads/visit.php?lid=98&lt;br /&gt;
tar -zxvf qtextended-4.4.2-gta02-flash.tgz&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Copy the kernel image to the microSD card ====&lt;br /&gt;
&lt;br /&gt;
First mount the first partition, which is the boot partition, of the microSD card, and make a /boot subdirectory:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo mkdir /media/card&lt;br /&gt;
sudo mount /dev/sdb1 /media/card&lt;br /&gt;
sudo mkdir /media/card/boot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Depending on your version of U-Boot, the kernel image might be expected at the root of the boot partition, or in the /boot directory. Also, the image file name might be expected to have a .bin extension, or not. We create all four variations:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo cp testing-om-gta02-20081029.uImage.bin /media/card/uImage.bin&lt;br /&gt;
sudo cp testing-om-gta02-20081029.uImage.bin /media/card/uImage&lt;br /&gt;
sudo cp testing-om-gta02-20081029.uImage.bin /media/card/boot/uImage.bin&lt;br /&gt;
sudo cp testing-om-gta02-20081029.uImage.bin /media/card/boot/uImage&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wait for data to be written to the microSD card and unmount the first partition:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sync&lt;br /&gt;
sudo umount /dev/sdb1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Copy the jffs2 root file system to the microSD card ====&lt;br /&gt;
&lt;br /&gt;
First we need to make a fake MTD device in RAM so that we can mount the jffs2 root file system:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo modprobe mtd &lt;br /&gt;
sudo modprobe jffs2  &lt;br /&gt;
sudo modprobe mtdram total_size=59024 # default is 4 MByte - set to max.&lt;br /&gt;
sudo modprobe mtdchar &lt;br /&gt;
sudo modprobe mtdblock&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Next we're going to copy onto this fake device. Make sure there are no other MTD devices on your computer and change the device numbers below as necessary:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cat /proc/mtd&lt;br /&gt;
  dev:    size   erasesize  name&lt;br /&gt;
    mtd0: 039a4000 00020000 &amp;quot;mtdram test device&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now copy the jffs2 file system to the fake MTD device:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo dd if=qtextended-4.4.2-gta02-rootfs-10302135.jffs2 of=/dev/mtd0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create a mount point, mount the fake MTD device, and check that the contents seem right:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo mkdir /mnt/tmp&lt;br /&gt;
sudo mount -t jffs2 /dev/mtdblock0 /mnt/tmp&lt;br /&gt;
ls /mnt/tmp&lt;br /&gt;
  bin/   dev/  home/  media/  opt/   sbin/  tmp@	var/&lt;br /&gt;
  boot/  etc/  lib/   mnt/    proc/  sys/   usr/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mount the second partition of the microSD card and copy the root file system to it:&lt;br /&gt;
copy root file system to sd card using tar&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo mkdir /media/rootfs&lt;br /&gt;
sudo mount /dev/sdb2 /media/rootfs&lt;br /&gt;
cd /mnt/tmp&lt;br /&gt;
sudo tar -cf - . | (cd /media/rootfs &amp;amp;&amp;amp; sudo tar -xpvf -)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Warnings about &amp;quot;implausibly old time stamp&amp;quot; don't seem to cause any trouble.&lt;br /&gt;
&lt;br /&gt;
Use &amp;quot;sync&amp;quot; to make sure that all data is written to the microSD card:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sync&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Inspect contents of second partition:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  ls /media/rootfs&lt;br /&gt;
  bin/   dev/  home/  media/  opt/   sbin/  tmp@	var/&lt;br /&gt;
  boot/  etc/  lib/   mnt/    proc/  sys/   usr/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: There was a report that some versions of U-Boot cannot find the kernel image file in the first partition if a kernel image exists in the second partition boot/ directory. I have not confirmed this but there is no need for it so it seems safest to delete it now:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo rm -f /media/rootfs/boot/*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wait for data to be written to the microSD card and unmount the second partition:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sync&lt;br /&gt;
umount /dev/sdb2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Test Qtopia ====&lt;br /&gt;
&lt;br /&gt;
Remove the microSD card from the USB adapter, install it in the Neo FreeRunner, boot into uBoot, and select the option to boot from microSD card.&lt;br /&gt;
&lt;br /&gt;
== Option 3: updating from source ==&lt;br /&gt;
&lt;br /&gt;
{{note|This will upgrade only opt/Qtopia directory, you should use opkg update/upgrade for the rest}}&lt;br /&gt;
Original Qtopia images (the distribution released by Trolltech, not ASU) are rarely released as a rootfs image, but the source code is often updated. If you want to reflash your OM with the latest version of Qtopia you might build it from sources. This has been explained in [http://lists.openmoko.org/pipermail/community/2008-August/024785.html this thread] of the community mailing list. Summing up:&lt;br /&gt;
&lt;br /&gt;
* get the latest toolchain released by trolltech: http://www.qtopia.net/modules/mydownloads/singlefile.php?lid=38 and unzip it on your PC (as root)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /&lt;br /&gt;
wget http://qtopia.net/downloads/neo/arm920t-eabi-ficgta01-toolchain.tgz&lt;br /&gt;
tar xvzf arm920t-eabi-ficgta01-toolchain.tgz&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* get the latest snapshot from trolltech: ftp://ftp.trolltech.com/qtopia/snapshots/&lt;br /&gt;
&lt;br /&gt;
Since qtopia was renamed in qtextended you could find the snapshots on http://qtextended.org/downloads/snapshots/&lt;br /&gt;
&lt;br /&gt;
*  once dowloaded untar it&lt;br /&gt;
&amp;lt;pre&amp;gt;tar xvzf qtopia-opensource-src-4.3.2-snapshot-20080806.tar.gz&amp;lt;/pre&amp;gt;&lt;br /&gt;
* make a &amp;quot;build&amp;quot; dir&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir build&lt;br /&gt;
cd build&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* configure and make:&lt;br /&gt;
&amp;lt;pre&amp;gt;../qtopia-opensource-src-4.3.2-snapshot-20080806/configure -device ficgta01&lt;br /&gt;
make&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This will take some time (couple hours). Note that the option &amp;quot;-device ficgta01&amp;quot; should work for both neo and freerunner. Then:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
will make a root directory into the ''build'' directory. There you can find an ''image'' that directory should be copied to /opt/Qtopia of your phone with scp. once done restart qpe or whole phone.&lt;br /&gt;
&lt;br /&gt;
For compiling qt-extended 4.4.2, you may need to use the following commands:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
* cd build&lt;br /&gt;
* $QTOPIA_DEPOT_PATH/configure -device neo -verbose -build-qt -force-build-qt&lt;br /&gt;
* bin/qbuild image&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This forces building qt as well which resolved problems with the qbuild test using all the system ram.&lt;br /&gt;
&lt;br /&gt;
== Booting into Qtopia ==&lt;br /&gt;
&lt;br /&gt;
Now shutdown the FreeRunner&lt;br /&gt;
&lt;br /&gt;
shutdown -h now&lt;br /&gt;
&lt;br /&gt;
Log into U-Boot in the NAND Flash to boot from the MicroSD card: (instructions from [[Booting the Neo FreeRunner]])&lt;br /&gt;
&lt;br /&gt;
* Press and hold Power button&lt;br /&gt;
* Then while still pressing the Power button, press and hold AUX button for 5 to 8 seconds.&lt;br /&gt;
* A boot menu will appear.&lt;br /&gt;
* Press the AUX button to select &amp;quot;[[Boot from sd card|Boot from MicroSD]]&amp;quot; and then press the Power button to execute.&lt;br /&gt;
&lt;br /&gt;
Qtopia should now boot.&lt;br /&gt;
&lt;br /&gt;
'''''Note:''''' you may get a kernel panic which says that &amp;quot;optional features not supported&amp;quot;.  If this is the case, boot back into 2007.2 and run&lt;br /&gt;
&lt;br /&gt;
umount /dev/mmcblk0p2&lt;br /&gt;
fsck.ext3.e2fsprogs /dev/mmcblk0p2&lt;br /&gt;
&lt;br /&gt;
This will clean up the file system and clear recovery flags in ext3 that ext2 does not support, then try booting from the MicroSD again.&lt;br /&gt;
&lt;br /&gt;
== Internationalization ==&lt;br /&gt;
&lt;br /&gt;
Qtopia comes with support for German and American English, and users from other countries will find that Qtopia's predictive keyboard makes writing in another language near impossible. One way to disable the predictive keyboard is to simply replace /opt/Qtopia/etc/dict/en_US/common.dawg and words.dawg with empty files (after backing them up). Qtopia normally looks in these files for words to suggest, and if it doesn't find any words that fit, it simply shows what you actually wrote.&lt;br /&gt;
&lt;br /&gt;
Adding characters to the keyboard requires modifications to the source code, as described [http://www.qtopia.net/modules/newbb_plus/viewtopic.php?topic_id=512&amp;amp;forum=16 here].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Suspend /Resume ==&lt;br /&gt;
It seems that suspend/resume only works when the FreeRunner has been connected to a powersource (only a few seconds if sufficient). If you boot from battery, it will never suspend until you have plugged it in at least for a couple of seconds.&lt;br /&gt;
&lt;br /&gt;
== Bugs ==&lt;br /&gt;
&lt;br /&gt;
See [http://trolltech.org/developer/task-tracker/index_html?method=front Trolltech's tracker] ([http://trolltech.org/developer/task-tracker/index_html?method=advsearch&amp;amp;searchstr=&amp;amp;bugs=on&amp;amp;sugs=on&amp;amp;product=2&amp;amp;functionalarea=&amp;amp;versionfound=&amp;amp;versionfixed=&amp;amp;priority=-1&amp;amp;status=0&amp;amp;resolution=-1 Qtopia Tracker]).&lt;br /&gt;
&lt;br /&gt;
Bug reports should be sent to qt-bugs@trolltech.com or by web form at http://trolltech.com/bugreport-form.&lt;br /&gt;
&lt;br /&gt;
== Bugs in 4.4.1 ==&lt;br /&gt;
* Boot and Shutdown Splash will not work because splash-write was not compiled into Busybox&lt;br /&gt;
* Timezone &amp;amp; time on latest Qt 4.4.1&lt;br /&gt;
* The first item in a list is missing the top half&lt;br /&gt;
&lt;br /&gt;
[[Category:Qtopia]]&lt;/div&gt;</summary>
		<author><name>Michaelshiloh</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Qtopia_/_Qt_Extended_on_FreeRunner</id>
		<title>Qtopia / Qt Extended on FreeRunner</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Qtopia_/_Qt_Extended_on_FreeRunner"/>
				<updated>2008-12-25T04:02:28Z</updated>
		
		<summary type="html">&lt;p&gt;Michaelshiloh: /* Copy the jffs2 root file system to the microSD card */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|Qtopia_on_FreeRunner}}&lt;br /&gt;
&lt;br /&gt;
This page provides instructions on how to install Qtopia/Qt Extended (proper, not the [[ASU]] or [[QtopiaOnX11]] efforts) on the GTA02 (FreeRunner) phone.  It is similar to the [[Qtopia on Neo1973]] page.&lt;br /&gt;
&lt;br /&gt;
{|align=right&lt;br /&gt;
|__TOC__&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Current status ==&lt;br /&gt;
&lt;br /&gt;
On 31 October 2008, Trolltech released the [http://qtextended.org/modules/mydownloads/visit.php?lid=98 Qtopia ROM flash image containing the rootfs] for the Openmoko Neo FreeRunner (gta02) containing the Qtopia 4.4.2 release (GPL version). This runs on the [http://qtextended.org/modules/mydownloads/visit.php?lid=91 mwebster ROM flash image containing the kernel]. At release time, 4.4.2 &amp;amp; current mwester's kernel mismatched, please clarify the previous sentence. Hypnotize has released [http://lists.openmoko.org/pipermail/community/2008-November/035245.html Qt Extended 4.4.2 images for the Neo FreeRunner] that work better.&lt;br /&gt;
&lt;br /&gt;
This image can successfully make and receive calls and text messages. It can read all contacts from the SIM card (which the updated 2007.2 does not appear to be able to do). It contains apps that appear to be more stable than the ones found in the 2007.2 image.  It has multiple input methods that appear to be more mature.  It does have a webkit based web browser and an GPS &amp;quot;Mapping Demo&amp;quot; application.&lt;br /&gt;
&lt;br /&gt;
There are other third-party GPS applications available:&lt;br /&gt;
* [http://blog.wolfman.com/articles/2008/08/27/porting-xgps-to-qtopia-for-the-freerunner xgps]&lt;br /&gt;
* [http://www.linux4.be/fr/roadmap.html RoadMap (experimental)]&lt;br /&gt;
&lt;br /&gt;
([[TangoGPS]] does not work on QtExtended, because it depends upon an Xserver)&lt;br /&gt;
&lt;br /&gt;
You can find all the Qtopia images [http://qtextended.org/modules/mydownloads/viewcat.php?cid=6 here] (including Qtextended/Qtopia 4.4 for FreeRunner and Neo1973!)&lt;br /&gt;
&lt;br /&gt;
=== What is in the latest release (QtExtended 4.4.2)? ===&lt;br /&gt;
Qtopia 4.4 has been released with the name of [http://doc.trolltech.com/qtextended4.4/release-4-4-2.html QtExtended 4.4].&lt;br /&gt;
* a [http://n2.nabble.com/qtopia-update-tp832851p832888.html browser] based on webkit&lt;br /&gt;
* [http://n2.nabble.com/-qtopia--rotate-screen--tp841805p841841.html screen rotation in the settings application] (so no automatic rotation)&lt;br /&gt;
* [http://n2.nabble.com/Echo-issue-on-OM2008.08-potentially-solved-tp791642.html noise reduction]&lt;br /&gt;
* GPS api&lt;br /&gt;
* usb net/storage switching&lt;br /&gt;
* Gtalk support&lt;br /&gt;
* [http://n2.nabble.com/forum/Permalink.jtp?root=841805&amp;amp;post=1083388&amp;amp;page=y better support for non-english languages in the keyboard]&lt;br /&gt;
&lt;br /&gt;
== Option 1: Flashing Qtopia to FreeRunner ==&lt;br /&gt;
&lt;br /&gt;
Download the image mentioned above and follow the instructions here: [[Flashing the Neo FreeRunner]]&lt;br /&gt;
&lt;br /&gt;
== Option 2: Dual-Booting between Qtopia and 2007.2 (Qtopia boots from MicroSD card) ==&lt;br /&gt;
&lt;br /&gt;
Installation Requirements:&lt;br /&gt;
&lt;br /&gt;
# SSH shell access to 2007.2 based image of the FreeRunner through USB interface or WLAN.&lt;br /&gt;
# A Desktop Linux distro (to unpack the .jffs2 image, I ran Ubuntu under VMWare)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Preparing the SD card ===&lt;br /&gt;
&lt;br /&gt;
See the [[Booting from SD#Prepare the SD card| Preparing the SD Card]] section of the [[Booting from SD]] page for partitioning and formatting instructions.  After you complete the &amp;quot;Formatting the SD Card&amp;quot; steps, return here and execute the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mount /dev/mmcblk0p1 /media/card&lt;br /&gt;
mkdir /media/card/boot&lt;br /&gt;
&lt;br /&gt;
mkdir /media/mmcblk0p2&lt;br /&gt;
mount /dev/mmcblk0p2 /media/mmcblk0p2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will set you up properly for the installation of the root filesystem and the kernel in the steps below.&lt;br /&gt;
&lt;br /&gt;
=== Installing Qtopia ===&lt;br /&gt;
&lt;br /&gt;
==== Unpacking the Qtopia Root Filesystem Image ====&lt;br /&gt;
&lt;br /&gt;
Download the Qtopia FLASH image from [[Latest Images#Qtopia images]] to your Linux box and extract its contents:&lt;br /&gt;
&lt;br /&gt;
tar xzf qtopia-4.3.2-gta02-flash-*.tgz&lt;br /&gt;
&lt;br /&gt;
You should now have two files:&lt;br /&gt;
#uImage-2.6.24+git18+9c058ff0d2641df3c36fc3300acb72078d2c41d4-r0-om-gta02.bin&lt;br /&gt;
#qtopia-4.3.2-gta02-rootfs-07172049.jffs2&lt;br /&gt;
Now, mount the root file system from the jffs2 using the commands found [[Userspace root image#Mounting the JFFS2 image on a loop back device (Block Memory MTD Emulation) |here]].  However, in the mount command, substitute the image filename for &amp;quot;/dev/mtdblock0&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==== Creating a compressed tarball ====&lt;br /&gt;
&lt;br /&gt;
Next, tar up the root filesystem:&lt;br /&gt;
&lt;br /&gt;
# tar czf qtopia-4.3.2-gta02-rootfs-07172049.tar.gz -C &amp;lt;mountpoint&amp;gt; .&lt;br /&gt;
&lt;br /&gt;
Where ''&amp;lt;mountpoint&amp;gt;'' is the location where the jff2 filesystem was mounted.  Note the space and the period after the mountpoint.&lt;br /&gt;
&lt;br /&gt;
==== Installing Root Filesystem ====&lt;br /&gt;
&lt;br /&gt;
Transfer this compressed tarball to the second partition of the MicroSD that is mounted on the FreeRunner:&lt;br /&gt;
&lt;br /&gt;
scp qtopia-4.3.2-gta02-rootfs-07172049.tar.gz root@192.168.0.202:/media/mmcblk0p2/&lt;br /&gt;
&lt;br /&gt;
Log in to your FreeRunner and unpack the root filesystem:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /media/mmcblk0p2&lt;br /&gt;
tar xzf qtopia-4.3.2-gta02-rootfs-07172049.tar.gz&lt;br /&gt;
rm qtopia-4.3.2-gta02-rootfs-07172049.tar.gz&lt;br /&gt;
rm -f /media/mmcblk0p2/boot/*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''Note:''''' the last step removes the kernel image from the second partition.  For some reason, U-Boot cannot find the uImage.bin file in the first partition if a kernel image exists in the second partition boot/ directory.&lt;br /&gt;
&lt;br /&gt;
==== Installing Kernel ====&lt;br /&gt;
&lt;br /&gt;
From your Linux box, rename &amp;lt;tt&amp;gt;uImage-2.6.24+git18+9c058ff0d2641df3c36fc3300acb72078d2c41d4-r0-om-gta02.bin&amp;lt;/tt&amp;gt; to &amp;lt;tt&amp;gt;uImage.bin&amp;lt;/tt&amp;gt; and copy it to the boot directory on the first partition of the MicroSD card.  Depending on the version of U-Boot you have installed, this may not work.  To prevent any possible issues, copy it to the &amp;lt;tt&amp;gt;/media/card&amp;lt;/tt&amp;gt; directory as well. There is plenty of room on the first partition to have &amp;lt;tt&amp;gt;uImage.bin&amp;lt;/tt&amp;gt; in both locations.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mv uImage-2.6.24+git18+9c058ff0d2641df3c36fc3300acb72078d2c41d4-r0-om-gta02.bin uImage.bin&lt;br /&gt;
scp uImage.bin root@192.168.0.202:/media/card/boot/&lt;br /&gt;
scp uImage.bin root@192.168.0.202:/media/card/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Pointing Qtopia to the SD Card ====&lt;br /&gt;
&lt;br /&gt;
Lorn Potter on the mailing lists pointed this out:&lt;br /&gt;
&lt;br /&gt;
Qtopia was designed to be run from the root partition on a flash chip, not from a removable sd card.&lt;br /&gt;
&lt;br /&gt;
You would have to edit the etc/default/Trolltech/Storage.conf file to make it forget about the sd /dev node, to be able to run it this way&lt;br /&gt;
&lt;br /&gt;
Another user's solution to this is the following:&lt;br /&gt;
&lt;br /&gt;
Edit this file: /opt/Qtopia/etc/default/Trolltech/Storage.conf&lt;br /&gt;
And change the [MountPoint0] section so it resembles this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[MountPoint0]&lt;br /&gt;
Name[] = SD Card&lt;br /&gt;
Path=/dev/mmcblk0p1&lt;br /&gt;
Removable = 0&lt;br /&gt;
Applications = 0&lt;br /&gt;
Documents = 0&lt;br /&gt;
ContentDatabase = 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Simplified complete procedure using Ubuntu computer and microSD to USB adapter ===&lt;br /&gt;
&lt;br /&gt;
This procedure was developed with:&lt;br /&gt;
&lt;br /&gt;
* Ubuntu 8.10&lt;br /&gt;
* SanDisk microSD to USB adapter&lt;br /&gt;
* Qt Extended 4.4.2 2008/10/31&lt;br /&gt;
&lt;br /&gt;
==== Prepare microSD card ====&lt;br /&gt;
&lt;br /&gt;
Create an 8 MB partition for the kernel and use the remaining space for the root file system.&lt;br /&gt;
&lt;br /&gt;
Insert microSD card into adapter, and plug adapter into Ubuntu computer. If any partitions on the microSD card mount automatically, unmount them.&lt;br /&gt;
&lt;br /&gt;
CAUTION: Make sure you know which device your microSD card is. You don't want to perform these steps on your main hard disk!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo umount /dev/sdb1&lt;br /&gt;
&lt;br /&gt;
sudo fdisk /dev/sdb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I assume you know how to use fdisk. Delete any existing partitions, then create two new partitions, the first of size +8M, the second using all remaining space. Set the file system type of the first partition to FAT16 (type '6'). Your partition table should look like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  /dev/sdb1               1           9        9040+   6  FAT16&lt;br /&gt;
  /dev/sdb2              10         984      982800   83  Linux&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Save your partition table and quit fdisk. Format the partitions appropriately:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo mkfs.vfat /dev/sdb1&lt;br /&gt;
sudo mkfs.ext3 /dev/sdb2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Get the latest version of Qtopia ====&lt;br /&gt;
&lt;br /&gt;
Visit [http://qtextended.org/modules/mydownloads/viewcat.php?cid=6:Qtopia] and get the appropriate file. The Qtopia ROM flash images contain both the file system and the kernel image:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget http://qtextended.org/modules/mydownloads/visit.php?lid=98&lt;br /&gt;
tar -zxvf qtextended-4.4.2-gta02-flash.tgz&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Copy the kernel image to the microSD card ====&lt;br /&gt;
&lt;br /&gt;
First mount the first partition, which is the boot partition, of the microSD card, and make a /boot subdirectory:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo mkdir /media/card&lt;br /&gt;
sudo mount /dev/sdb1 /media/card&lt;br /&gt;
sudo mkdir /media/card/boot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Depending on your version of U-Boot, the kernel image might be expected at the root of the boot partition, or in the /boot directory. Also, the image file name might be expected to have a .bin extension, or not. We create all four variations:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo cp testing-om-gta02-20081029.uImage.bin /media/card/uImage.bin&lt;br /&gt;
sudo cp testing-om-gta02-20081029.uImage.bin /media/card/uImage&lt;br /&gt;
sudo cp testing-om-gta02-20081029.uImage.bin /media/card/boot/uImage.bin&lt;br /&gt;
sudo cp testing-om-gta02-20081029.uImage.bin /media/card/boot/uImage&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wait for data to be written to the microSD card and unmount the first partition:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sync&lt;br /&gt;
sudo umount /dev/sdb1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Copy the jffs2 root file system to the microSD card ====&lt;br /&gt;
&lt;br /&gt;
First we need to make a fake MTD device in RAM so that we can mount the jffs2 root file system:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo modprobe mtd &lt;br /&gt;
sudo modprobe jffs2  &lt;br /&gt;
sudo modprobe mtdram total_size=59024 # default is 4 MByte - set to max.&lt;br /&gt;
sudo modprobe mtdchar &lt;br /&gt;
sudo modprobe mtdblock&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Next we're going to copy onto this fake device. Make sure there are no other MTD devices on your computer and change the device numbers below as necessary:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cat /proc/mtd&lt;br /&gt;
  dev:    size   erasesize  name&lt;br /&gt;
    mtd0: 039a4000 00020000 &amp;quot;mtdram test device&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now copy the jffs2 file system to the fake MTD device:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo dd if=qtextended-4.4.2-gta02-rootfs-10302135.jffs2 of=/dev/mtd0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create a mount point, mount the fake MTD device, and check that the contents seem right:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo mkdir /mnt/tmp&lt;br /&gt;
sudo mount -t jffs2 /dev/mtdblock0 /mnt/tmp&lt;br /&gt;
ls /mnt/tmp&lt;br /&gt;
  bin/   dev/  home/  media/  opt/   sbin/  tmp@	var/&lt;br /&gt;
  boot/  etc/  lib/   mnt/    proc/  sys/   usr/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mount the second partition of the microSD card and copy the root file system to it:&lt;br /&gt;
copy root file system to sd card using tar&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo mkdir /media/rootfs&lt;br /&gt;
sudo mount /dev/sdb2 /media/rootfs&lt;br /&gt;
cd /mnt/tmp&lt;br /&gt;
sudo tar -cf - . | (cd /media/rootfs &amp;amp;&amp;amp; sudo tar -xpvf -)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Warnings about &amp;quot;implausibly old time stamp&amp;quot; don't seem to cause any trouble.&lt;br /&gt;
&lt;br /&gt;
Use &amp;quot;sync&amp;quot; to make sure that all data is written to the microSD card:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sync&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Inspect contents of second partition:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  ls /media/rootfs&lt;br /&gt;
  bin/   dev/  home/  media/  opt/   sbin/  tmp@	var/&lt;br /&gt;
  boot/  etc/  lib/   mnt/    proc/  sys/   usr/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: There was a report that some versions of U-Boot cannot find the kernel image file in the first partition if a kernel image exists in the second partition boot/ directory. I have not confirmed this but there is no need for it so it seems safest to delete it now:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo rm -f /media/rootfs/boot/*&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wait for data to be written to the microSD card and unmount the second partition:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sync&lt;br /&gt;
umount /dev/sdb2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Test Qtopia ====&lt;br /&gt;
&lt;br /&gt;
Remove the microSD card from the USB adapter, install it in the Neo FreeRunner, boot into uBoot, and select the option to boot from microSD card.&lt;br /&gt;
&lt;br /&gt;
== Option 3: updating from source ==&lt;br /&gt;
&lt;br /&gt;
{{note|This will upgrade only opt/Qtopia directory, you should use opkg update/upgrade for the rest}}&lt;br /&gt;
Original Qtopia images (the distribution released by Trolltech, not ASU) are rarely released as a rootfs image, but the source code is often updated. If you want to reflash your OM with the latest version of Qtopia you might build it from sources. This has been explained in [http://lists.openmoko.org/pipermail/community/2008-August/024785.html this thread] of the community mailing list. Summing up:&lt;br /&gt;
&lt;br /&gt;
* get the latest toolchain released by trolltech: http://www.qtopia.net/modules/mydownloads/singlefile.php?lid=38 and unzip it on your PC (as root)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /&lt;br /&gt;
wget http://qtopia.net/downloads/neo/arm920t-eabi-ficgta01-toolchain.tgz&lt;br /&gt;
tar xvzf arm920t-eabi-ficgta01-toolchain.tgz&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* get the latest snapshot from trolltech: ftp://ftp.trolltech.com/qtopia/snapshots/&lt;br /&gt;
&lt;br /&gt;
Since qtopia was renamed in qtextended you could find the snapshots on http://qtextended.org/downloads/snapshots/&lt;br /&gt;
&lt;br /&gt;
*  once dowloaded untar it&lt;br /&gt;
&amp;lt;pre&amp;gt;tar xvzf qtopia-opensource-src-4.3.2-snapshot-20080806.tar.gz&amp;lt;/pre&amp;gt;&lt;br /&gt;
* make a &amp;quot;build&amp;quot; dir&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir build&lt;br /&gt;
cd build&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* configure and make:&lt;br /&gt;
&amp;lt;pre&amp;gt;../qtopia-opensource-src-4.3.2-snapshot-20080806/configure -device ficgta01&lt;br /&gt;
make&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This will take some time (couple hours). Note that the option &amp;quot;-device ficgta01&amp;quot; should work for both neo and freerunner. Then:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
will make a root directory into the ''build'' directory. There you can find an ''image'' that directory should be copied to /opt/Qtopia of your phone with scp. once done restart qpe or whole phone.&lt;br /&gt;
&lt;br /&gt;
For compiling qt-extended 4.4.2, you may need to use the following commands:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
* cd build&lt;br /&gt;
* $QTOPIA_DEPOT_PATH/configure -device neo -verbose -build-qt -force-build-qt&lt;br /&gt;
* bin/qbuild image&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This forces building qt as well which resolved problems with the qbuild test using all the system ram.&lt;br /&gt;
&lt;br /&gt;
== Booting into Qtopia ==&lt;br /&gt;
&lt;br /&gt;
Now shutdown the FreeRunner&lt;br /&gt;
&lt;br /&gt;
shutdown -h now&lt;br /&gt;
&lt;br /&gt;
Log into U-Boot in the NAND Flash to boot from the MicroSD card: (instructions from [[Booting the Neo FreeRunner]])&lt;br /&gt;
&lt;br /&gt;
* Press and hold Power button&lt;br /&gt;
* Then while still pressing the Power button, press and hold AUX button for 5 to 8 seconds.&lt;br /&gt;
* A boot menu will appear.&lt;br /&gt;
* Press the AUX button to select &amp;quot;[[Boot from sd card|Boot from MicroSD]]&amp;quot; and then press the Power button to execute.&lt;br /&gt;
&lt;br /&gt;
Qtopia should now boot.&lt;br /&gt;
&lt;br /&gt;
'''''Note:''''' you may get a kernel panic which says that &amp;quot;optional features not supported&amp;quot;.  If this is the case, boot back into 2007.2 and run&lt;br /&gt;
&lt;br /&gt;
umount /dev/mmcblk0p2&lt;br /&gt;
fsck.ext3.e2fsprogs /dev/mmcblk0p2&lt;br /&gt;
&lt;br /&gt;
This will clean up the file system and clear recovery flags in ext3 that ext2 does not support, then try booting from the MicroSD again.&lt;br /&gt;
&lt;br /&gt;
== Internationalization ==&lt;br /&gt;
&lt;br /&gt;
Qtopia comes with support for German and American English, and users from other countries will find that Qtopia's predictive keyboard makes writing in another language near impossible. One way to disable the predictive keyboard is to simply replace /opt/Qtopia/etc/dict/en_US/common.dawg and words.dawg with empty files (after backing them up). Qtopia normally looks in these files for words to suggest, and if it doesn't find any words that fit, it simply shows what you actually wrote.&lt;br /&gt;
&lt;br /&gt;
Adding characters to the keyboard requires modifications to the source code, as described [http://www.qtopia.net/modules/newbb_plus/viewtopic.php?topic_id=512&amp;amp;forum=16 here].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Suspend /Resume ==&lt;br /&gt;
It seems that suspend/resume only works when the FreeRunner has been connected to a powersource (only a few seconds if sufficient). If you boot from battery, it will never suspend until you have plugged it in at least for a couple of seconds.&lt;br /&gt;
&lt;br /&gt;
== Bugs ==&lt;br /&gt;
&lt;br /&gt;
See [http://trolltech.org/developer/task-tracker/index_html?method=front Trolltech's tracker] ([http://trolltech.org/developer/task-tracker/index_html?method=advsearch&amp;amp;searchstr=&amp;amp;bugs=on&amp;amp;sugs=on&amp;amp;product=2&amp;amp;functionalarea=&amp;amp;versionfound=&amp;amp;versionfixed=&amp;amp;priority=-1&amp;amp;status=0&amp;amp;resolution=-1 Qtopia Tracker]).&lt;br /&gt;
&lt;br /&gt;
Bug reports should be sent to qt-bugs@trolltech.com or by web form at http://trolltech.com/bugreport-form.&lt;br /&gt;
&lt;br /&gt;
== Bugs in 4.4.1 ==&lt;br /&gt;
* Boot and Shutdown Splash will not work because splash-write was not compiled into Busybox&lt;br /&gt;
* Timezone &amp;amp; time on latest Qt 4.4.1&lt;br /&gt;
* The first item in a list is missing the top half&lt;br /&gt;
&lt;br /&gt;
[[Category:Qtopia]]&lt;/div&gt;</summary>
		<author><name>Michaelshiloh</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Qtopia_/_Qt_Extended_on_FreeRunner</id>
		<title>Qtopia / Qt Extended on FreeRunner</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Qtopia_/_Qt_Extended_on_FreeRunner"/>
				<updated>2008-12-25T03:58:17Z</updated>
		
		<summary type="html">&lt;p&gt;Michaelshiloh: /* Copy the kernel image to the microSD card */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|Qtopia_on_FreeRunner}}&lt;br /&gt;
&lt;br /&gt;
This page provides instructions on how to install Qtopia/Qt Extended (proper, not the [[ASU]] or [[QtopiaOnX11]] efforts) on the GTA02 (FreeRunner) phone.  It is similar to the [[Qtopia on Neo1973]] page.&lt;br /&gt;
&lt;br /&gt;
{|align=right&lt;br /&gt;
|__TOC__&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Current status ==&lt;br /&gt;
&lt;br /&gt;
On 31 October 2008, Trolltech released the [http://qtextended.org/modules/mydownloads/visit.php?lid=98 Qtopia ROM flash image containing the rootfs] for the Openmoko Neo FreeRunner (gta02) containing the Qtopia 4.4.2 release (GPL version). This runs on the [http://qtextended.org/modules/mydownloads/visit.php?lid=91 mwebster ROM flash image containing the kernel]. At release time, 4.4.2 &amp;amp; current mwester's kernel mismatched, please clarify the previous sentence. Hypnotize has released [http://lists.openmoko.org/pipermail/community/2008-November/035245.html Qt Extended 4.4.2 images for the Neo FreeRunner] that work better.&lt;br /&gt;
&lt;br /&gt;
This image can successfully make and receive calls and text messages. It can read all contacts from the SIM card (which the updated 2007.2 does not appear to be able to do). It contains apps that appear to be more stable than the ones found in the 2007.2 image.  It has multiple input methods that appear to be more mature.  It does have a webkit based web browser and an GPS &amp;quot;Mapping Demo&amp;quot; application.&lt;br /&gt;
&lt;br /&gt;
There are other third-party GPS applications available:&lt;br /&gt;
* [http://blog.wolfman.com/articles/2008/08/27/porting-xgps-to-qtopia-for-the-freerunner xgps]&lt;br /&gt;
* [http://www.linux4.be/fr/roadmap.html RoadMap (experimental)]&lt;br /&gt;
&lt;br /&gt;
([[TangoGPS]] does not work on QtExtended, because it depends upon an Xserver)&lt;br /&gt;
&lt;br /&gt;
You can find all the Qtopia images [http://qtextended.org/modules/mydownloads/viewcat.php?cid=6 here] (including Qtextended/Qtopia 4.4 for FreeRunner and Neo1973!)&lt;br /&gt;
&lt;br /&gt;
=== What is in the latest release (QtExtended 4.4.2)? ===&lt;br /&gt;
Qtopia 4.4 has been released with the name of [http://doc.trolltech.com/qtextended4.4/release-4-4-2.html QtExtended 4.4].&lt;br /&gt;
* a [http://n2.nabble.com/qtopia-update-tp832851p832888.html browser] based on webkit&lt;br /&gt;
* [http://n2.nabble.com/-qtopia--rotate-screen--tp841805p841841.html screen rotation in the settings application] (so no automatic rotation)&lt;br /&gt;
* [http://n2.nabble.com/Echo-issue-on-OM2008.08-potentially-solved-tp791642.html noise reduction]&lt;br /&gt;
* GPS api&lt;br /&gt;
* usb net/storage switching&lt;br /&gt;
* Gtalk support&lt;br /&gt;
* [http://n2.nabble.com/forum/Permalink.jtp?root=841805&amp;amp;post=1083388&amp;amp;page=y better support for non-english languages in the keyboard]&lt;br /&gt;
&lt;br /&gt;
== Option 1: Flashing Qtopia to FreeRunner ==&lt;br /&gt;
&lt;br /&gt;
Download the image mentioned above and follow the instructions here: [[Flashing the Neo FreeRunner]]&lt;br /&gt;
&lt;br /&gt;
== Option 2: Dual-Booting between Qtopia and 2007.2 (Qtopia boots from MicroSD card) ==&lt;br /&gt;
&lt;br /&gt;
Installation Requirements:&lt;br /&gt;
&lt;br /&gt;
# SSH shell access to 2007.2 based image of the FreeRunner through USB interface or WLAN.&lt;br /&gt;
# A Desktop Linux distro (to unpack the .jffs2 image, I ran Ubuntu under VMWare)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Preparing the SD card ===&lt;br /&gt;
&lt;br /&gt;
See the [[Booting from SD#Prepare the SD card| Preparing the SD Card]] section of the [[Booting from SD]] page for partitioning and formatting instructions.  After you complete the &amp;quot;Formatting the SD Card&amp;quot; steps, return here and execute the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mount /dev/mmcblk0p1 /media/card&lt;br /&gt;
mkdir /media/card/boot&lt;br /&gt;
&lt;br /&gt;
mkdir /media/mmcblk0p2&lt;br /&gt;
mount /dev/mmcblk0p2 /media/mmcblk0p2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will set you up properly for the installation of the root filesystem and the kernel in the steps below.&lt;br /&gt;
&lt;br /&gt;
=== Installing Qtopia ===&lt;br /&gt;
&lt;br /&gt;
==== Unpacking the Qtopia Root Filesystem Image ====&lt;br /&gt;
&lt;br /&gt;
Download the Qtopia FLASH image from [[Latest Images#Qtopia images]] to your Linux box and extract its contents:&lt;br /&gt;
&lt;br /&gt;
tar xzf qtopia-4.3.2-gta02-flash-*.tgz&lt;br /&gt;
&lt;br /&gt;
You should now have two files:&lt;br /&gt;
#uImage-2.6.24+git18+9c058ff0d2641df3c36fc3300acb72078d2c41d4-r0-om-gta02.bin&lt;br /&gt;
#qtopia-4.3.2-gta02-rootfs-07172049.jffs2&lt;br /&gt;
Now, mount the root file system from the jffs2 using the commands found [[Userspace root image#Mounting the JFFS2 image on a loop back device (Block Memory MTD Emulation) |here]].  However, in the mount command, substitute the image filename for &amp;quot;/dev/mtdblock0&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==== Creating a compressed tarball ====&lt;br /&gt;
&lt;br /&gt;
Next, tar up the root filesystem:&lt;br /&gt;
&lt;br /&gt;
# tar czf qtopia-4.3.2-gta02-rootfs-07172049.tar.gz -C &amp;lt;mountpoint&amp;gt; .&lt;br /&gt;
&lt;br /&gt;
Where ''&amp;lt;mountpoint&amp;gt;'' is the location where the jff2 filesystem was mounted.  Note the space and the period after the mountpoint.&lt;br /&gt;
&lt;br /&gt;
==== Installing Root Filesystem ====&lt;br /&gt;
&lt;br /&gt;
Transfer this compressed tarball to the second partition of the MicroSD that is mounted on the FreeRunner:&lt;br /&gt;
&lt;br /&gt;
scp qtopia-4.3.2-gta02-rootfs-07172049.tar.gz root@192.168.0.202:/media/mmcblk0p2/&lt;br /&gt;
&lt;br /&gt;
Log in to your FreeRunner and unpack the root filesystem:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /media/mmcblk0p2&lt;br /&gt;
tar xzf qtopia-4.3.2-gta02-rootfs-07172049.tar.gz&lt;br /&gt;
rm qtopia-4.3.2-gta02-rootfs-07172049.tar.gz&lt;br /&gt;
rm -f /media/mmcblk0p2/boot/*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''Note:''''' the last step removes the kernel image from the second partition.  For some reason, U-Boot cannot find the uImage.bin file in the first partition if a kernel image exists in the second partition boot/ directory.&lt;br /&gt;
&lt;br /&gt;
==== Installing Kernel ====&lt;br /&gt;
&lt;br /&gt;
From your Linux box, rename &amp;lt;tt&amp;gt;uImage-2.6.24+git18+9c058ff0d2641df3c36fc3300acb72078d2c41d4-r0-om-gta02.bin&amp;lt;/tt&amp;gt; to &amp;lt;tt&amp;gt;uImage.bin&amp;lt;/tt&amp;gt; and copy it to the boot directory on the first partition of the MicroSD card.  Depending on the version of U-Boot you have installed, this may not work.  To prevent any possible issues, copy it to the &amp;lt;tt&amp;gt;/media/card&amp;lt;/tt&amp;gt; directory as well. There is plenty of room on the first partition to have &amp;lt;tt&amp;gt;uImage.bin&amp;lt;/tt&amp;gt; in both locations.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mv uImage-2.6.24+git18+9c058ff0d2641df3c36fc3300acb72078d2c41d4-r0-om-gta02.bin uImage.bin&lt;br /&gt;
scp uImage.bin root@192.168.0.202:/media/card/boot/&lt;br /&gt;
scp uImage.bin root@192.168.0.202:/media/card/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Pointing Qtopia to the SD Card ====&lt;br /&gt;
&lt;br /&gt;
Lorn Potter on the mailing lists pointed this out:&lt;br /&gt;
&lt;br /&gt;
Qtopia was designed to be run from the root partition on a flash chip, not from a removable sd card.&lt;br /&gt;
&lt;br /&gt;
You would have to edit the etc/default/Trolltech/Storage.conf file to make it forget about the sd /dev node, to be able to run it this way&lt;br /&gt;
&lt;br /&gt;
Another user's solution to this is the following:&lt;br /&gt;
&lt;br /&gt;
Edit this file: /opt/Qtopia/etc/default/Trolltech/Storage.conf&lt;br /&gt;
And change the [MountPoint0] section so it resembles this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[MountPoint0]&lt;br /&gt;
Name[] = SD Card&lt;br /&gt;
Path=/dev/mmcblk0p1&lt;br /&gt;
Removable = 0&lt;br /&gt;
Applications = 0&lt;br /&gt;
Documents = 0&lt;br /&gt;
ContentDatabase = 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Simplified complete procedure using Ubuntu computer and microSD to USB adapter ===&lt;br /&gt;
&lt;br /&gt;
This procedure was developed with:&lt;br /&gt;
&lt;br /&gt;
* Ubuntu 8.10&lt;br /&gt;
* SanDisk microSD to USB adapter&lt;br /&gt;
* Qt Extended 4.4.2 2008/10/31&lt;br /&gt;
&lt;br /&gt;
==== Prepare microSD card ====&lt;br /&gt;
&lt;br /&gt;
Create an 8 MB partition for the kernel and use the remaining space for the root file system.&lt;br /&gt;
&lt;br /&gt;
Insert microSD card into adapter, and plug adapter into Ubuntu computer. If any partitions on the microSD card mount automatically, unmount them.&lt;br /&gt;
&lt;br /&gt;
CAUTION: Make sure you know which device your microSD card is. You don't want to perform these steps on your main hard disk!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo umount /dev/sdb1&lt;br /&gt;
&lt;br /&gt;
sudo fdisk /dev/sdb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I assume you know how to use fdisk. Delete any existing partitions, then create two new partitions, the first of size +8M, the second using all remaining space. Set the file system type of the first partition to FAT16 (type '6'). Your partition table should look like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  /dev/sdb1               1           9        9040+   6  FAT16&lt;br /&gt;
  /dev/sdb2              10         984      982800   83  Linux&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Save your partition table and quit fdisk. Format the partitions appropriately:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo mkfs.vfat /dev/sdb1&lt;br /&gt;
sudo mkfs.ext3 /dev/sdb2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Get the latest version of Qtopia ====&lt;br /&gt;
&lt;br /&gt;
Visit [http://qtextended.org/modules/mydownloads/viewcat.php?cid=6:Qtopia] and get the appropriate file. The Qtopia ROM flash images contain both the file system and the kernel image:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget http://qtextended.org/modules/mydownloads/visit.php?lid=98&lt;br /&gt;
tar -zxvf qtextended-4.4.2-gta02-flash.tgz&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Copy the kernel image to the microSD card ====&lt;br /&gt;
&lt;br /&gt;
First mount the first partition, which is the boot partition, of the microSD card, and make a /boot subdirectory:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo mkdir /media/card&lt;br /&gt;
sudo mount /dev/sdb1 /media/card&lt;br /&gt;
sudo mkdir /media/card/boot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Depending on your version of U-Boot, the kernel image might be expected at the root of the boot partition, or in the /boot directory. Also, the image file name might be expected to have a .bin extension, or not. We create all four variations:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo cp testing-om-gta02-20081029.uImage.bin /media/card/uImage.bin&lt;br /&gt;
sudo cp testing-om-gta02-20081029.uImage.bin /media/card/uImage&lt;br /&gt;
sudo cp testing-om-gta02-20081029.uImage.bin /media/card/boot/uImage.bin&lt;br /&gt;
sudo cp testing-om-gta02-20081029.uImage.bin /media/card/boot/uImage&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wait for data to be written to the microSD card and unmount the first partition:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sync&lt;br /&gt;
sudo umount /dev/sdb1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Copy the jffs2 root file system to the microSD card ====&lt;br /&gt;
&lt;br /&gt;
First we need to make a fake MTD device in RAM so that we can mount the jffs2 root file system:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo modprobe mtd &lt;br /&gt;
sudo modprobe jffs2  &lt;br /&gt;
sudo modprobe mtdram total_size=59024 # default is 4 MByte - set to max.&lt;br /&gt;
sudo modprobe mtdchar &lt;br /&gt;
sudo modprobe mtdblock&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Next we're going to copy onto this fake device. Make sure there are no other MTD devices on your computer and change the device numbers below as necessary:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cat /proc/mtd&lt;br /&gt;
  dev:    size   erasesize  name&lt;br /&gt;
    mtd0: 039a4000 00020000 &amp;quot;mtdram test device&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now copy the jffs2 file system to the fake MTD device:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo dd if=qtextended-4.4.2-gta02-rootfs-10302135.jffs2 of=/dev/mtd0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create a mount point, mount the fake MTD device, and check that the contents seem right:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo mkdir /mnt/tmp&lt;br /&gt;
sudo mount -t jffs2 /dev/mtdblock0 /mnt/tmp&lt;br /&gt;
ls /mnt/tmp&lt;br /&gt;
  bin/   dev/  home/  media/  opt/   sbin/  tmp@	var/&lt;br /&gt;
  boot/  etc/  lib/   mnt/    proc/  sys/   usr/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mount the second partition of the microSD card and copy the root file system to it:&lt;br /&gt;
copy root file system to sd card using tar&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo mkdir /media/rootfs&lt;br /&gt;
sudo mount /dev/sdb2 /media/rootfs&lt;br /&gt;
cd /mnt/tmp&lt;br /&gt;
sudo tar -cf - . | (cd /media/rootfs &amp;amp;&amp;amp; sudo tar -xpvf -)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Use &amp;quot;sync&amp;quot; to make sure that all data is written to the microSD card:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sync&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Inspect contents of second partition:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  ls /media/rootfs&lt;br /&gt;
  bin/   dev/  home/  media/  opt/   sbin/  tmp@	var/&lt;br /&gt;
  boot/  etc/  lib/   mnt/    proc/  sys/   usr/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: There was a report that some versions of U-Boot cannot find the kernel image file in the first partition if a kernel image exists in the second partition boot/ directory. I have not confirmed this but there is no need for it so it seems safest to delete it now:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo rm -f /media/rootfs/boot/*&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wait for data to be written to the microSD card and unmount the second partition:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sync&lt;br /&gt;
umount /dev/sdb2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Test Qtopia ====&lt;br /&gt;
&lt;br /&gt;
Remove the microSD card from the USB adapter, install it in the Neo FreeRunner, boot into uBoot, and select the option to boot from microSD card.&lt;br /&gt;
&lt;br /&gt;
== Option 3: updating from source ==&lt;br /&gt;
&lt;br /&gt;
{{note|This will upgrade only opt/Qtopia directory, you should use opkg update/upgrade for the rest}}&lt;br /&gt;
Original Qtopia images (the distribution released by Trolltech, not ASU) are rarely released as a rootfs image, but the source code is often updated. If you want to reflash your OM with the latest version of Qtopia you might build it from sources. This has been explained in [http://lists.openmoko.org/pipermail/community/2008-August/024785.html this thread] of the community mailing list. Summing up:&lt;br /&gt;
&lt;br /&gt;
* get the latest toolchain released by trolltech: http://www.qtopia.net/modules/mydownloads/singlefile.php?lid=38 and unzip it on your PC (as root)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /&lt;br /&gt;
wget http://qtopia.net/downloads/neo/arm920t-eabi-ficgta01-toolchain.tgz&lt;br /&gt;
tar xvzf arm920t-eabi-ficgta01-toolchain.tgz&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* get the latest snapshot from trolltech: ftp://ftp.trolltech.com/qtopia/snapshots/&lt;br /&gt;
&lt;br /&gt;
Since qtopia was renamed in qtextended you could find the snapshots on http://qtextended.org/downloads/snapshots/&lt;br /&gt;
&lt;br /&gt;
*  once dowloaded untar it&lt;br /&gt;
&amp;lt;pre&amp;gt;tar xvzf qtopia-opensource-src-4.3.2-snapshot-20080806.tar.gz&amp;lt;/pre&amp;gt;&lt;br /&gt;
* make a &amp;quot;build&amp;quot; dir&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir build&lt;br /&gt;
cd build&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* configure and make:&lt;br /&gt;
&amp;lt;pre&amp;gt;../qtopia-opensource-src-4.3.2-snapshot-20080806/configure -device ficgta01&lt;br /&gt;
make&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This will take some time (couple hours). Note that the option &amp;quot;-device ficgta01&amp;quot; should work for both neo and freerunner. Then:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
will make a root directory into the ''build'' directory. There you can find an ''image'' that directory should be copied to /opt/Qtopia of your phone with scp. once done restart qpe or whole phone.&lt;br /&gt;
&lt;br /&gt;
For compiling qt-extended 4.4.2, you may need to use the following commands:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
* cd build&lt;br /&gt;
* $QTOPIA_DEPOT_PATH/configure -device neo -verbose -build-qt -force-build-qt&lt;br /&gt;
* bin/qbuild image&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This forces building qt as well which resolved problems with the qbuild test using all the system ram.&lt;br /&gt;
&lt;br /&gt;
== Booting into Qtopia ==&lt;br /&gt;
&lt;br /&gt;
Now shutdown the FreeRunner&lt;br /&gt;
&lt;br /&gt;
shutdown -h now&lt;br /&gt;
&lt;br /&gt;
Log into U-Boot in the NAND Flash to boot from the MicroSD card: (instructions from [[Booting the Neo FreeRunner]])&lt;br /&gt;
&lt;br /&gt;
* Press and hold Power button&lt;br /&gt;
* Then while still pressing the Power button, press and hold AUX button for 5 to 8 seconds.&lt;br /&gt;
* A boot menu will appear.&lt;br /&gt;
* Press the AUX button to select &amp;quot;[[Boot from sd card|Boot from MicroSD]]&amp;quot; and then press the Power button to execute.&lt;br /&gt;
&lt;br /&gt;
Qtopia should now boot.&lt;br /&gt;
&lt;br /&gt;
'''''Note:''''' you may get a kernel panic which says that &amp;quot;optional features not supported&amp;quot;.  If this is the case, boot back into 2007.2 and run&lt;br /&gt;
&lt;br /&gt;
umount /dev/mmcblk0p2&lt;br /&gt;
fsck.ext3.e2fsprogs /dev/mmcblk0p2&lt;br /&gt;
&lt;br /&gt;
This will clean up the file system and clear recovery flags in ext3 that ext2 does not support, then try booting from the MicroSD again.&lt;br /&gt;
&lt;br /&gt;
== Internationalization ==&lt;br /&gt;
&lt;br /&gt;
Qtopia comes with support for German and American English, and users from other countries will find that Qtopia's predictive keyboard makes writing in another language near impossible. One way to disable the predictive keyboard is to simply replace /opt/Qtopia/etc/dict/en_US/common.dawg and words.dawg with empty files (after backing them up). Qtopia normally looks in these files for words to suggest, and if it doesn't find any words that fit, it simply shows what you actually wrote.&lt;br /&gt;
&lt;br /&gt;
Adding characters to the keyboard requires modifications to the source code, as described [http://www.qtopia.net/modules/newbb_plus/viewtopic.php?topic_id=512&amp;amp;forum=16 here].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Suspend /Resume ==&lt;br /&gt;
It seems that suspend/resume only works when the FreeRunner has been connected to a powersource (only a few seconds if sufficient). If you boot from battery, it will never suspend until you have plugged it in at least for a couple of seconds.&lt;br /&gt;
&lt;br /&gt;
== Bugs ==&lt;br /&gt;
&lt;br /&gt;
See [http://trolltech.org/developer/task-tracker/index_html?method=front Trolltech's tracker] ([http://trolltech.org/developer/task-tracker/index_html?method=advsearch&amp;amp;searchstr=&amp;amp;bugs=on&amp;amp;sugs=on&amp;amp;product=2&amp;amp;functionalarea=&amp;amp;versionfound=&amp;amp;versionfixed=&amp;amp;priority=-1&amp;amp;status=0&amp;amp;resolution=-1 Qtopia Tracker]).&lt;br /&gt;
&lt;br /&gt;
Bug reports should be sent to qt-bugs@trolltech.com or by web form at http://trolltech.com/bugreport-form.&lt;br /&gt;
&lt;br /&gt;
== Bugs in 4.4.1 ==&lt;br /&gt;
* Boot and Shutdown Splash will not work because splash-write was not compiled into Busybox&lt;br /&gt;
* Timezone &amp;amp; time on latest Qt 4.4.1&lt;br /&gt;
* The first item in a list is missing the top half&lt;br /&gt;
&lt;br /&gt;
[[Category:Qtopia]]&lt;/div&gt;</summary>
		<author><name>Michaelshiloh</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Qtopia_/_Qt_Extended_on_FreeRunner</id>
		<title>Qtopia / Qt Extended on FreeRunner</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Qtopia_/_Qt_Extended_on_FreeRunner"/>
				<updated>2008-12-25T03:57:51Z</updated>
		
		<summary type="html">&lt;p&gt;Michaelshiloh: /* Copy the kernel image to the microSD card */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|Qtopia_on_FreeRunner}}&lt;br /&gt;
&lt;br /&gt;
This page provides instructions on how to install Qtopia/Qt Extended (proper, not the [[ASU]] or [[QtopiaOnX11]] efforts) on the GTA02 (FreeRunner) phone.  It is similar to the [[Qtopia on Neo1973]] page.&lt;br /&gt;
&lt;br /&gt;
{|align=right&lt;br /&gt;
|__TOC__&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Current status ==&lt;br /&gt;
&lt;br /&gt;
On 31 October 2008, Trolltech released the [http://qtextended.org/modules/mydownloads/visit.php?lid=98 Qtopia ROM flash image containing the rootfs] for the Openmoko Neo FreeRunner (gta02) containing the Qtopia 4.4.2 release (GPL version). This runs on the [http://qtextended.org/modules/mydownloads/visit.php?lid=91 mwebster ROM flash image containing the kernel]. At release time, 4.4.2 &amp;amp; current mwester's kernel mismatched, please clarify the previous sentence. Hypnotize has released [http://lists.openmoko.org/pipermail/community/2008-November/035245.html Qt Extended 4.4.2 images for the Neo FreeRunner] that work better.&lt;br /&gt;
&lt;br /&gt;
This image can successfully make and receive calls and text messages. It can read all contacts from the SIM card (which the updated 2007.2 does not appear to be able to do). It contains apps that appear to be more stable than the ones found in the 2007.2 image.  It has multiple input methods that appear to be more mature.  It does have a webkit based web browser and an GPS &amp;quot;Mapping Demo&amp;quot; application.&lt;br /&gt;
&lt;br /&gt;
There are other third-party GPS applications available:&lt;br /&gt;
* [http://blog.wolfman.com/articles/2008/08/27/porting-xgps-to-qtopia-for-the-freerunner xgps]&lt;br /&gt;
* [http://www.linux4.be/fr/roadmap.html RoadMap (experimental)]&lt;br /&gt;
&lt;br /&gt;
([[TangoGPS]] does not work on QtExtended, because it depends upon an Xserver)&lt;br /&gt;
&lt;br /&gt;
You can find all the Qtopia images [http://qtextended.org/modules/mydownloads/viewcat.php?cid=6 here] (including Qtextended/Qtopia 4.4 for FreeRunner and Neo1973!)&lt;br /&gt;
&lt;br /&gt;
=== What is in the latest release (QtExtended 4.4.2)? ===&lt;br /&gt;
Qtopia 4.4 has been released with the name of [http://doc.trolltech.com/qtextended4.4/release-4-4-2.html QtExtended 4.4].&lt;br /&gt;
* a [http://n2.nabble.com/qtopia-update-tp832851p832888.html browser] based on webkit&lt;br /&gt;
* [http://n2.nabble.com/-qtopia--rotate-screen--tp841805p841841.html screen rotation in the settings application] (so no automatic rotation)&lt;br /&gt;
* [http://n2.nabble.com/Echo-issue-on-OM2008.08-potentially-solved-tp791642.html noise reduction]&lt;br /&gt;
* GPS api&lt;br /&gt;
* usb net/storage switching&lt;br /&gt;
* Gtalk support&lt;br /&gt;
* [http://n2.nabble.com/forum/Permalink.jtp?root=841805&amp;amp;post=1083388&amp;amp;page=y better support for non-english languages in the keyboard]&lt;br /&gt;
&lt;br /&gt;
== Option 1: Flashing Qtopia to FreeRunner ==&lt;br /&gt;
&lt;br /&gt;
Download the image mentioned above and follow the instructions here: [[Flashing the Neo FreeRunner]]&lt;br /&gt;
&lt;br /&gt;
== Option 2: Dual-Booting between Qtopia and 2007.2 (Qtopia boots from MicroSD card) ==&lt;br /&gt;
&lt;br /&gt;
Installation Requirements:&lt;br /&gt;
&lt;br /&gt;
# SSH shell access to 2007.2 based image of the FreeRunner through USB interface or WLAN.&lt;br /&gt;
# A Desktop Linux distro (to unpack the .jffs2 image, I ran Ubuntu under VMWare)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Preparing the SD card ===&lt;br /&gt;
&lt;br /&gt;
See the [[Booting from SD#Prepare the SD card| Preparing the SD Card]] section of the [[Booting from SD]] page for partitioning and formatting instructions.  After you complete the &amp;quot;Formatting the SD Card&amp;quot; steps, return here and execute the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mount /dev/mmcblk0p1 /media/card&lt;br /&gt;
mkdir /media/card/boot&lt;br /&gt;
&lt;br /&gt;
mkdir /media/mmcblk0p2&lt;br /&gt;
mount /dev/mmcblk0p2 /media/mmcblk0p2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will set you up properly for the installation of the root filesystem and the kernel in the steps below.&lt;br /&gt;
&lt;br /&gt;
=== Installing Qtopia ===&lt;br /&gt;
&lt;br /&gt;
==== Unpacking the Qtopia Root Filesystem Image ====&lt;br /&gt;
&lt;br /&gt;
Download the Qtopia FLASH image from [[Latest Images#Qtopia images]] to your Linux box and extract its contents:&lt;br /&gt;
&lt;br /&gt;
tar xzf qtopia-4.3.2-gta02-flash-*.tgz&lt;br /&gt;
&lt;br /&gt;
You should now have two files:&lt;br /&gt;
#uImage-2.6.24+git18+9c058ff0d2641df3c36fc3300acb72078d2c41d4-r0-om-gta02.bin&lt;br /&gt;
#qtopia-4.3.2-gta02-rootfs-07172049.jffs2&lt;br /&gt;
Now, mount the root file system from the jffs2 using the commands found [[Userspace root image#Mounting the JFFS2 image on a loop back device (Block Memory MTD Emulation) |here]].  However, in the mount command, substitute the image filename for &amp;quot;/dev/mtdblock0&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==== Creating a compressed tarball ====&lt;br /&gt;
&lt;br /&gt;
Next, tar up the root filesystem:&lt;br /&gt;
&lt;br /&gt;
# tar czf qtopia-4.3.2-gta02-rootfs-07172049.tar.gz -C &amp;lt;mountpoint&amp;gt; .&lt;br /&gt;
&lt;br /&gt;
Where ''&amp;lt;mountpoint&amp;gt;'' is the location where the jff2 filesystem was mounted.  Note the space and the period after the mountpoint.&lt;br /&gt;
&lt;br /&gt;
==== Installing Root Filesystem ====&lt;br /&gt;
&lt;br /&gt;
Transfer this compressed tarball to the second partition of the MicroSD that is mounted on the FreeRunner:&lt;br /&gt;
&lt;br /&gt;
scp qtopia-4.3.2-gta02-rootfs-07172049.tar.gz root@192.168.0.202:/media/mmcblk0p2/&lt;br /&gt;
&lt;br /&gt;
Log in to your FreeRunner and unpack the root filesystem:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /media/mmcblk0p2&lt;br /&gt;
tar xzf qtopia-4.3.2-gta02-rootfs-07172049.tar.gz&lt;br /&gt;
rm qtopia-4.3.2-gta02-rootfs-07172049.tar.gz&lt;br /&gt;
rm -f /media/mmcblk0p2/boot/*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''Note:''''' the last step removes the kernel image from the second partition.  For some reason, U-Boot cannot find the uImage.bin file in the first partition if a kernel image exists in the second partition boot/ directory.&lt;br /&gt;
&lt;br /&gt;
==== Installing Kernel ====&lt;br /&gt;
&lt;br /&gt;
From your Linux box, rename &amp;lt;tt&amp;gt;uImage-2.6.24+git18+9c058ff0d2641df3c36fc3300acb72078d2c41d4-r0-om-gta02.bin&amp;lt;/tt&amp;gt; to &amp;lt;tt&amp;gt;uImage.bin&amp;lt;/tt&amp;gt; and copy it to the boot directory on the first partition of the MicroSD card.  Depending on the version of U-Boot you have installed, this may not work.  To prevent any possible issues, copy it to the &amp;lt;tt&amp;gt;/media/card&amp;lt;/tt&amp;gt; directory as well. There is plenty of room on the first partition to have &amp;lt;tt&amp;gt;uImage.bin&amp;lt;/tt&amp;gt; in both locations.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mv uImage-2.6.24+git18+9c058ff0d2641df3c36fc3300acb72078d2c41d4-r0-om-gta02.bin uImage.bin&lt;br /&gt;
scp uImage.bin root@192.168.0.202:/media/card/boot/&lt;br /&gt;
scp uImage.bin root@192.168.0.202:/media/card/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Pointing Qtopia to the SD Card ====&lt;br /&gt;
&lt;br /&gt;
Lorn Potter on the mailing lists pointed this out:&lt;br /&gt;
&lt;br /&gt;
Qtopia was designed to be run from the root partition on a flash chip, not from a removable sd card.&lt;br /&gt;
&lt;br /&gt;
You would have to edit the etc/default/Trolltech/Storage.conf file to make it forget about the sd /dev node, to be able to run it this way&lt;br /&gt;
&lt;br /&gt;
Another user's solution to this is the following:&lt;br /&gt;
&lt;br /&gt;
Edit this file: /opt/Qtopia/etc/default/Trolltech/Storage.conf&lt;br /&gt;
And change the [MountPoint0] section so it resembles this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[MountPoint0]&lt;br /&gt;
Name[] = SD Card&lt;br /&gt;
Path=/dev/mmcblk0p1&lt;br /&gt;
Removable = 0&lt;br /&gt;
Applications = 0&lt;br /&gt;
Documents = 0&lt;br /&gt;
ContentDatabase = 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Simplified complete procedure using Ubuntu computer and microSD to USB adapter ===&lt;br /&gt;
&lt;br /&gt;
This procedure was developed with:&lt;br /&gt;
&lt;br /&gt;
* Ubuntu 8.10&lt;br /&gt;
* SanDisk microSD to USB adapter&lt;br /&gt;
* Qt Extended 4.4.2 2008/10/31&lt;br /&gt;
&lt;br /&gt;
==== Prepare microSD card ====&lt;br /&gt;
&lt;br /&gt;
Create an 8 MB partition for the kernel and use the remaining space for the root file system.&lt;br /&gt;
&lt;br /&gt;
Insert microSD card into adapter, and plug adapter into Ubuntu computer. If any partitions on the microSD card mount automatically, unmount them.&lt;br /&gt;
&lt;br /&gt;
CAUTION: Make sure you know which device your microSD card is. You don't want to perform these steps on your main hard disk!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo umount /dev/sdb1&lt;br /&gt;
&lt;br /&gt;
sudo fdisk /dev/sdb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I assume you know how to use fdisk. Delete any existing partitions, then create two new partitions, the first of size +8M, the second using all remaining space. Set the file system type of the first partition to FAT16 (type '6'). Your partition table should look like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  /dev/sdb1               1           9        9040+   6  FAT16&lt;br /&gt;
  /dev/sdb2              10         984      982800   83  Linux&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Save your partition table and quit fdisk. Format the partitions appropriately:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo mkfs.vfat /dev/sdb1&lt;br /&gt;
sudo mkfs.ext3 /dev/sdb2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Get the latest version of Qtopia ====&lt;br /&gt;
&lt;br /&gt;
Visit [http://qtextended.org/modules/mydownloads/viewcat.php?cid=6:Qtopia] and get the appropriate file. The Qtopia ROM flash images contain both the file system and the kernel image:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget http://qtextended.org/modules/mydownloads/visit.php?lid=98&lt;br /&gt;
tar -zxvf qtextended-4.4.2-gta02-flash.tgz&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Copy the kernel image to the microSD card ====&lt;br /&gt;
&lt;br /&gt;
First mount the first partition, which is the boot partition, of the microSD card, and make a /boot subdirectory:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo mkdir /media/card&lt;br /&gt;
sudo mount /dev/sdb1 /media/card&lt;br /&gt;
sudo mkdir /media/card/boot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Depending on your version of U-Boot, the kernel image might be expected at the root of the boot partition, or in the /boot directory. Also, the image file name might be expected to have a .bin extension, or not. We create all four variations:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo cp testing-om-gta02-20081029.uImage.bin /media/card/uImage.bin&lt;br /&gt;
sudo cp testing-om-gta02-20081029.uImage.bin /media/card/uImage&lt;br /&gt;
sudo cp testing-om-gta02-20081029.uImage.bin /media/card/boot/uImage.bin&lt;br /&gt;
sudo cp testing-om-gta02-20081029.uImage.bin /media/card/boot/uImage&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wait for data to be written to the microSD card and unmount the first partition:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sync&lt;br /&gt;
sudo umount /dev/sdb2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Copy the jffs2 root file system to the microSD card ====&lt;br /&gt;
&lt;br /&gt;
First we need to make a fake MTD device in RAM so that we can mount the jffs2 root file system:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo modprobe mtd &lt;br /&gt;
sudo modprobe jffs2  &lt;br /&gt;
sudo modprobe mtdram total_size=59024 # default is 4 MByte - set to max.&lt;br /&gt;
sudo modprobe mtdchar &lt;br /&gt;
sudo modprobe mtdblock&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Next we're going to copy onto this fake device. Make sure there are no other MTD devices on your computer and change the device numbers below as necessary:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cat /proc/mtd&lt;br /&gt;
  dev:    size   erasesize  name&lt;br /&gt;
    mtd0: 039a4000 00020000 &amp;quot;mtdram test device&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now copy the jffs2 file system to the fake MTD device:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo dd if=qtextended-4.4.2-gta02-rootfs-10302135.jffs2 of=/dev/mtd0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create a mount point, mount the fake MTD device, and check that the contents seem right:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo mkdir /mnt/tmp&lt;br /&gt;
sudo mount -t jffs2 /dev/mtdblock0 /mnt/tmp&lt;br /&gt;
ls /mnt/tmp&lt;br /&gt;
  bin/   dev/  home/  media/  opt/   sbin/  tmp@	var/&lt;br /&gt;
  boot/  etc/  lib/   mnt/    proc/  sys/   usr/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mount the second partition of the microSD card and copy the root file system to it:&lt;br /&gt;
copy root file system to sd card using tar&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo mkdir /media/rootfs&lt;br /&gt;
sudo mount /dev/sdb2 /media/rootfs&lt;br /&gt;
cd /mnt/tmp&lt;br /&gt;
sudo tar -cf - . | (cd /media/rootfs &amp;amp;&amp;amp; sudo tar -xpvf -)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Use &amp;quot;sync&amp;quot; to make sure that all data is written to the microSD card:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sync&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Inspect contents of second partition:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  ls /media/rootfs&lt;br /&gt;
  bin/   dev/  home/  media/  opt/   sbin/  tmp@	var/&lt;br /&gt;
  boot/  etc/  lib/   mnt/    proc/  sys/   usr/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: There was a report that some versions of U-Boot cannot find the kernel image file in the first partition if a kernel image exists in the second partition boot/ directory. I have not confirmed this but there is no need for it so it seems safest to delete it now:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo rm -f /media/rootfs/boot/*&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wait for data to be written to the microSD card and unmount the second partition:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sync&lt;br /&gt;
umount /dev/sdb2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Test Qtopia ====&lt;br /&gt;
&lt;br /&gt;
Remove the microSD card from the USB adapter, install it in the Neo FreeRunner, boot into uBoot, and select the option to boot from microSD card.&lt;br /&gt;
&lt;br /&gt;
== Option 3: updating from source ==&lt;br /&gt;
&lt;br /&gt;
{{note|This will upgrade only opt/Qtopia directory, you should use opkg update/upgrade for the rest}}&lt;br /&gt;
Original Qtopia images (the distribution released by Trolltech, not ASU) are rarely released as a rootfs image, but the source code is often updated. If you want to reflash your OM with the latest version of Qtopia you might build it from sources. This has been explained in [http://lists.openmoko.org/pipermail/community/2008-August/024785.html this thread] of the community mailing list. Summing up:&lt;br /&gt;
&lt;br /&gt;
* get the latest toolchain released by trolltech: http://www.qtopia.net/modules/mydownloads/singlefile.php?lid=38 and unzip it on your PC (as root)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /&lt;br /&gt;
wget http://qtopia.net/downloads/neo/arm920t-eabi-ficgta01-toolchain.tgz&lt;br /&gt;
tar xvzf arm920t-eabi-ficgta01-toolchain.tgz&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* get the latest snapshot from trolltech: ftp://ftp.trolltech.com/qtopia/snapshots/&lt;br /&gt;
&lt;br /&gt;
Since qtopia was renamed in qtextended you could find the snapshots on http://qtextended.org/downloads/snapshots/&lt;br /&gt;
&lt;br /&gt;
*  once dowloaded untar it&lt;br /&gt;
&amp;lt;pre&amp;gt;tar xvzf qtopia-opensource-src-4.3.2-snapshot-20080806.tar.gz&amp;lt;/pre&amp;gt;&lt;br /&gt;
* make a &amp;quot;build&amp;quot; dir&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir build&lt;br /&gt;
cd build&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* configure and make:&lt;br /&gt;
&amp;lt;pre&amp;gt;../qtopia-opensource-src-4.3.2-snapshot-20080806/configure -device ficgta01&lt;br /&gt;
make&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This will take some time (couple hours). Note that the option &amp;quot;-device ficgta01&amp;quot; should work for both neo and freerunner. Then:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
will make a root directory into the ''build'' directory. There you can find an ''image'' that directory should be copied to /opt/Qtopia of your phone with scp. once done restart qpe or whole phone.&lt;br /&gt;
&lt;br /&gt;
For compiling qt-extended 4.4.2, you may need to use the following commands:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
* cd build&lt;br /&gt;
* $QTOPIA_DEPOT_PATH/configure -device neo -verbose -build-qt -force-build-qt&lt;br /&gt;
* bin/qbuild image&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This forces building qt as well which resolved problems with the qbuild test using all the system ram.&lt;br /&gt;
&lt;br /&gt;
== Booting into Qtopia ==&lt;br /&gt;
&lt;br /&gt;
Now shutdown the FreeRunner&lt;br /&gt;
&lt;br /&gt;
shutdown -h now&lt;br /&gt;
&lt;br /&gt;
Log into U-Boot in the NAND Flash to boot from the MicroSD card: (instructions from [[Booting the Neo FreeRunner]])&lt;br /&gt;
&lt;br /&gt;
* Press and hold Power button&lt;br /&gt;
* Then while still pressing the Power button, press and hold AUX button for 5 to 8 seconds.&lt;br /&gt;
* A boot menu will appear.&lt;br /&gt;
* Press the AUX button to select &amp;quot;[[Boot from sd card|Boot from MicroSD]]&amp;quot; and then press the Power button to execute.&lt;br /&gt;
&lt;br /&gt;
Qtopia should now boot.&lt;br /&gt;
&lt;br /&gt;
'''''Note:''''' you may get a kernel panic which says that &amp;quot;optional features not supported&amp;quot;.  If this is the case, boot back into 2007.2 and run&lt;br /&gt;
&lt;br /&gt;
umount /dev/mmcblk0p2&lt;br /&gt;
fsck.ext3.e2fsprogs /dev/mmcblk0p2&lt;br /&gt;
&lt;br /&gt;
This will clean up the file system and clear recovery flags in ext3 that ext2 does not support, then try booting from the MicroSD again.&lt;br /&gt;
&lt;br /&gt;
== Internationalization ==&lt;br /&gt;
&lt;br /&gt;
Qtopia comes with support for German and American English, and users from other countries will find that Qtopia's predictive keyboard makes writing in another language near impossible. One way to disable the predictive keyboard is to simply replace /opt/Qtopia/etc/dict/en_US/common.dawg and words.dawg with empty files (after backing them up). Qtopia normally looks in these files for words to suggest, and if it doesn't find any words that fit, it simply shows what you actually wrote.&lt;br /&gt;
&lt;br /&gt;
Adding characters to the keyboard requires modifications to the source code, as described [http://www.qtopia.net/modules/newbb_plus/viewtopic.php?topic_id=512&amp;amp;forum=16 here].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Suspend /Resume ==&lt;br /&gt;
It seems that suspend/resume only works when the FreeRunner has been connected to a powersource (only a few seconds if sufficient). If you boot from battery, it will never suspend until you have plugged it in at least for a couple of seconds.&lt;br /&gt;
&lt;br /&gt;
== Bugs ==&lt;br /&gt;
&lt;br /&gt;
See [http://trolltech.org/developer/task-tracker/index_html?method=front Trolltech's tracker] ([http://trolltech.org/developer/task-tracker/index_html?method=advsearch&amp;amp;searchstr=&amp;amp;bugs=on&amp;amp;sugs=on&amp;amp;product=2&amp;amp;functionalarea=&amp;amp;versionfound=&amp;amp;versionfixed=&amp;amp;priority=-1&amp;amp;status=0&amp;amp;resolution=-1 Qtopia Tracker]).&lt;br /&gt;
&lt;br /&gt;
Bug reports should be sent to qt-bugs@trolltech.com or by web form at http://trolltech.com/bugreport-form.&lt;br /&gt;
&lt;br /&gt;
== Bugs in 4.4.1 ==&lt;br /&gt;
* Boot and Shutdown Splash will not work because splash-write was not compiled into Busybox&lt;br /&gt;
* Timezone &amp;amp; time on latest Qt 4.4.1&lt;br /&gt;
* The first item in a list is missing the top half&lt;br /&gt;
&lt;br /&gt;
[[Category:Qtopia]]&lt;/div&gt;</summary>
		<author><name>Michaelshiloh</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Qtopia_/_Qt_Extended_on_FreeRunner</id>
		<title>Qtopia / Qt Extended on FreeRunner</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Qtopia_/_Qt_Extended_on_FreeRunner"/>
				<updated>2008-12-25T03:56:26Z</updated>
		
		<summary type="html">&lt;p&gt;Michaelshiloh: /* Copy the kernel image to the microSD card */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|Qtopia_on_FreeRunner}}&lt;br /&gt;
&lt;br /&gt;
This page provides instructions on how to install Qtopia/Qt Extended (proper, not the [[ASU]] or [[QtopiaOnX11]] efforts) on the GTA02 (FreeRunner) phone.  It is similar to the [[Qtopia on Neo1973]] page.&lt;br /&gt;
&lt;br /&gt;
{|align=right&lt;br /&gt;
|__TOC__&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Current status ==&lt;br /&gt;
&lt;br /&gt;
On 31 October 2008, Trolltech released the [http://qtextended.org/modules/mydownloads/visit.php?lid=98 Qtopia ROM flash image containing the rootfs] for the Openmoko Neo FreeRunner (gta02) containing the Qtopia 4.4.2 release (GPL version). This runs on the [http://qtextended.org/modules/mydownloads/visit.php?lid=91 mwebster ROM flash image containing the kernel]. At release time, 4.4.2 &amp;amp; current mwester's kernel mismatched, please clarify the previous sentence. Hypnotize has released [http://lists.openmoko.org/pipermail/community/2008-November/035245.html Qt Extended 4.4.2 images for the Neo FreeRunner] that work better.&lt;br /&gt;
&lt;br /&gt;
This image can successfully make and receive calls and text messages. It can read all contacts from the SIM card (which the updated 2007.2 does not appear to be able to do). It contains apps that appear to be more stable than the ones found in the 2007.2 image.  It has multiple input methods that appear to be more mature.  It does have a webkit based web browser and an GPS &amp;quot;Mapping Demo&amp;quot; application.&lt;br /&gt;
&lt;br /&gt;
There are other third-party GPS applications available:&lt;br /&gt;
* [http://blog.wolfman.com/articles/2008/08/27/porting-xgps-to-qtopia-for-the-freerunner xgps]&lt;br /&gt;
* [http://www.linux4.be/fr/roadmap.html RoadMap (experimental)]&lt;br /&gt;
&lt;br /&gt;
([[TangoGPS]] does not work on QtExtended, because it depends upon an Xserver)&lt;br /&gt;
&lt;br /&gt;
You can find all the Qtopia images [http://qtextended.org/modules/mydownloads/viewcat.php?cid=6 here] (including Qtextended/Qtopia 4.4 for FreeRunner and Neo1973!)&lt;br /&gt;
&lt;br /&gt;
=== What is in the latest release (QtExtended 4.4.2)? ===&lt;br /&gt;
Qtopia 4.4 has been released with the name of [http://doc.trolltech.com/qtextended4.4/release-4-4-2.html QtExtended 4.4].&lt;br /&gt;
* a [http://n2.nabble.com/qtopia-update-tp832851p832888.html browser] based on webkit&lt;br /&gt;
* [http://n2.nabble.com/-qtopia--rotate-screen--tp841805p841841.html screen rotation in the settings application] (so no automatic rotation)&lt;br /&gt;
* [http://n2.nabble.com/Echo-issue-on-OM2008.08-potentially-solved-tp791642.html noise reduction]&lt;br /&gt;
* GPS api&lt;br /&gt;
* usb net/storage switching&lt;br /&gt;
* Gtalk support&lt;br /&gt;
* [http://n2.nabble.com/forum/Permalink.jtp?root=841805&amp;amp;post=1083388&amp;amp;page=y better support for non-english languages in the keyboard]&lt;br /&gt;
&lt;br /&gt;
== Option 1: Flashing Qtopia to FreeRunner ==&lt;br /&gt;
&lt;br /&gt;
Download the image mentioned above and follow the instructions here: [[Flashing the Neo FreeRunner]]&lt;br /&gt;
&lt;br /&gt;
== Option 2: Dual-Booting between Qtopia and 2007.2 (Qtopia boots from MicroSD card) ==&lt;br /&gt;
&lt;br /&gt;
Installation Requirements:&lt;br /&gt;
&lt;br /&gt;
# SSH shell access to 2007.2 based image of the FreeRunner through USB interface or WLAN.&lt;br /&gt;
# A Desktop Linux distro (to unpack the .jffs2 image, I ran Ubuntu under VMWare)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Preparing the SD card ===&lt;br /&gt;
&lt;br /&gt;
See the [[Booting from SD#Prepare the SD card| Preparing the SD Card]] section of the [[Booting from SD]] page for partitioning and formatting instructions.  After you complete the &amp;quot;Formatting the SD Card&amp;quot; steps, return here and execute the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mount /dev/mmcblk0p1 /media/card&lt;br /&gt;
mkdir /media/card/boot&lt;br /&gt;
&lt;br /&gt;
mkdir /media/mmcblk0p2&lt;br /&gt;
mount /dev/mmcblk0p2 /media/mmcblk0p2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will set you up properly for the installation of the root filesystem and the kernel in the steps below.&lt;br /&gt;
&lt;br /&gt;
=== Installing Qtopia ===&lt;br /&gt;
&lt;br /&gt;
==== Unpacking the Qtopia Root Filesystem Image ====&lt;br /&gt;
&lt;br /&gt;
Download the Qtopia FLASH image from [[Latest Images#Qtopia images]] to your Linux box and extract its contents:&lt;br /&gt;
&lt;br /&gt;
tar xzf qtopia-4.3.2-gta02-flash-*.tgz&lt;br /&gt;
&lt;br /&gt;
You should now have two files:&lt;br /&gt;
#uImage-2.6.24+git18+9c058ff0d2641df3c36fc3300acb72078d2c41d4-r0-om-gta02.bin&lt;br /&gt;
#qtopia-4.3.2-gta02-rootfs-07172049.jffs2&lt;br /&gt;
Now, mount the root file system from the jffs2 using the commands found [[Userspace root image#Mounting the JFFS2 image on a loop back device (Block Memory MTD Emulation) |here]].  However, in the mount command, substitute the image filename for &amp;quot;/dev/mtdblock0&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==== Creating a compressed tarball ====&lt;br /&gt;
&lt;br /&gt;
Next, tar up the root filesystem:&lt;br /&gt;
&lt;br /&gt;
# tar czf qtopia-4.3.2-gta02-rootfs-07172049.tar.gz -C &amp;lt;mountpoint&amp;gt; .&lt;br /&gt;
&lt;br /&gt;
Where ''&amp;lt;mountpoint&amp;gt;'' is the location where the jff2 filesystem was mounted.  Note the space and the period after the mountpoint.&lt;br /&gt;
&lt;br /&gt;
==== Installing Root Filesystem ====&lt;br /&gt;
&lt;br /&gt;
Transfer this compressed tarball to the second partition of the MicroSD that is mounted on the FreeRunner:&lt;br /&gt;
&lt;br /&gt;
scp qtopia-4.3.2-gta02-rootfs-07172049.tar.gz root@192.168.0.202:/media/mmcblk0p2/&lt;br /&gt;
&lt;br /&gt;
Log in to your FreeRunner and unpack the root filesystem:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /media/mmcblk0p2&lt;br /&gt;
tar xzf qtopia-4.3.2-gta02-rootfs-07172049.tar.gz&lt;br /&gt;
rm qtopia-4.3.2-gta02-rootfs-07172049.tar.gz&lt;br /&gt;
rm -f /media/mmcblk0p2/boot/*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''Note:''''' the last step removes the kernel image from the second partition.  For some reason, U-Boot cannot find the uImage.bin file in the first partition if a kernel image exists in the second partition boot/ directory.&lt;br /&gt;
&lt;br /&gt;
==== Installing Kernel ====&lt;br /&gt;
&lt;br /&gt;
From your Linux box, rename &amp;lt;tt&amp;gt;uImage-2.6.24+git18+9c058ff0d2641df3c36fc3300acb72078d2c41d4-r0-om-gta02.bin&amp;lt;/tt&amp;gt; to &amp;lt;tt&amp;gt;uImage.bin&amp;lt;/tt&amp;gt; and copy it to the boot directory on the first partition of the MicroSD card.  Depending on the version of U-Boot you have installed, this may not work.  To prevent any possible issues, copy it to the &amp;lt;tt&amp;gt;/media/card&amp;lt;/tt&amp;gt; directory as well. There is plenty of room on the first partition to have &amp;lt;tt&amp;gt;uImage.bin&amp;lt;/tt&amp;gt; in both locations.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mv uImage-2.6.24+git18+9c058ff0d2641df3c36fc3300acb72078d2c41d4-r0-om-gta02.bin uImage.bin&lt;br /&gt;
scp uImage.bin root@192.168.0.202:/media/card/boot/&lt;br /&gt;
scp uImage.bin root@192.168.0.202:/media/card/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Pointing Qtopia to the SD Card ====&lt;br /&gt;
&lt;br /&gt;
Lorn Potter on the mailing lists pointed this out:&lt;br /&gt;
&lt;br /&gt;
Qtopia was designed to be run from the root partition on a flash chip, not from a removable sd card.&lt;br /&gt;
&lt;br /&gt;
You would have to edit the etc/default/Trolltech/Storage.conf file to make it forget about the sd /dev node, to be able to run it this way&lt;br /&gt;
&lt;br /&gt;
Another user's solution to this is the following:&lt;br /&gt;
&lt;br /&gt;
Edit this file: /opt/Qtopia/etc/default/Trolltech/Storage.conf&lt;br /&gt;
And change the [MountPoint0] section so it resembles this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[MountPoint0]&lt;br /&gt;
Name[] = SD Card&lt;br /&gt;
Path=/dev/mmcblk0p1&lt;br /&gt;
Removable = 0&lt;br /&gt;
Applications = 0&lt;br /&gt;
Documents = 0&lt;br /&gt;
ContentDatabase = 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Simplified complete procedure using Ubuntu computer and microSD to USB adapter ===&lt;br /&gt;
&lt;br /&gt;
This procedure was developed with:&lt;br /&gt;
&lt;br /&gt;
* Ubuntu 8.10&lt;br /&gt;
* SanDisk microSD to USB adapter&lt;br /&gt;
* Qt Extended 4.4.2 2008/10/31&lt;br /&gt;
&lt;br /&gt;
==== Prepare microSD card ====&lt;br /&gt;
&lt;br /&gt;
Create an 8 MB partition for the kernel and use the remaining space for the root file system.&lt;br /&gt;
&lt;br /&gt;
Insert microSD card into adapter, and plug adapter into Ubuntu computer. If any partitions on the microSD card mount automatically, unmount them.&lt;br /&gt;
&lt;br /&gt;
CAUTION: Make sure you know which device your microSD card is. You don't want to perform these steps on your main hard disk!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo umount /dev/sdb1&lt;br /&gt;
&lt;br /&gt;
sudo fdisk /dev/sdb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I assume you know how to use fdisk. Delete any existing partitions, then create two new partitions, the first of size +8M, the second using all remaining space. Set the file system type of the first partition to FAT16 (type '6'). Your partition table should look like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  /dev/sdb1               1           9        9040+   6  FAT16&lt;br /&gt;
  /dev/sdb2              10         984      982800   83  Linux&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Save your partition table and quit fdisk. Format the partitions appropriately:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo mkfs.vfat /dev/sdb1&lt;br /&gt;
sudo mkfs.ext3 /dev/sdb2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Get the latest version of Qtopia ====&lt;br /&gt;
&lt;br /&gt;
Visit [http://qtextended.org/modules/mydownloads/viewcat.php?cid=6:Qtopia] and get the appropriate file. The Qtopia ROM flash images contain both the file system and the kernel image:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget http://qtextended.org/modules/mydownloads/visit.php?lid=98&lt;br /&gt;
tar -zxvf qtextended-4.4.2-gta02-flash.tgz&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Copy the kernel image to the microSD card ====&lt;br /&gt;
&lt;br /&gt;
First mount the first partition, which is the boot partition, of the microSD card, and make a /boot subdirectory:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo mkdir /media/card&lt;br /&gt;
sudo mount /dev/sdb1 /media/card&lt;br /&gt;
sudo mkdir /media/card/boot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Depending on your version of U-Boot, the kernel image might be expected at the root of the boot partition, or in the /boot directory. Also, the image file name might be expected to have a .bin extension, or not. We create all four variations:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo cp testing-om-gta02-20081029.uImage.bin /media/card/uImage.bin&lt;br /&gt;
sudo cp testing-om-gta02-20081029.uImage.bin /media/card/uImage&lt;br /&gt;
sudo cp testing-om-gta02-20081029.uImage.bin /media/card/boot/uImage.bin&lt;br /&gt;
sudo cp testing-om-gta02-20081029.uImage.bin /media/card/boot/uImage&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wait for data to be written to the microSD card and unmount the first partition:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sync&lt;br /&gt;
umount /dev/sdb2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Copy the jffs2 root file system to the microSD card ====&lt;br /&gt;
&lt;br /&gt;
First we need to make a fake MTD device in RAM so that we can mount the jffs2 root file system:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo modprobe mtd &lt;br /&gt;
sudo modprobe jffs2  &lt;br /&gt;
sudo modprobe mtdram total_size=59024 # default is 4 MByte - set to max.&lt;br /&gt;
sudo modprobe mtdchar &lt;br /&gt;
sudo modprobe mtdblock&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Next we're going to copy onto this fake device. Make sure there are no other MTD devices on your computer and change the device numbers below as necessary:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cat /proc/mtd&lt;br /&gt;
  dev:    size   erasesize  name&lt;br /&gt;
    mtd0: 039a4000 00020000 &amp;quot;mtdram test device&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now copy the jffs2 file system to the fake MTD device:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo dd if=qtextended-4.4.2-gta02-rootfs-10302135.jffs2 of=/dev/mtd0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create a mount point, mount the fake MTD device, and check that the contents seem right:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo mkdir /mnt/tmp&lt;br /&gt;
sudo mount -t jffs2 /dev/mtdblock0 /mnt/tmp&lt;br /&gt;
ls /mnt/tmp&lt;br /&gt;
  bin/   dev/  home/  media/  opt/   sbin/  tmp@	var/&lt;br /&gt;
  boot/  etc/  lib/   mnt/    proc/  sys/   usr/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mount the second partition of the microSD card and copy the root file system to it:&lt;br /&gt;
copy root file system to sd card using tar&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo mkdir /media/rootfs&lt;br /&gt;
sudo mount /dev/sdb2 /media/rootfs&lt;br /&gt;
cd /mnt/tmp&lt;br /&gt;
sudo tar -cf - . | (cd /media/rootfs &amp;amp;&amp;amp; sudo tar -xpvf -)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Use &amp;quot;sync&amp;quot; to make sure that all data is written to the microSD card:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sync&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Inspect contents of second partition:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  ls /media/rootfs&lt;br /&gt;
  bin/   dev/  home/  media/  opt/   sbin/  tmp@	var/&lt;br /&gt;
  boot/  etc/  lib/   mnt/    proc/  sys/   usr/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: There was a report that some versions of U-Boot cannot find the kernel image file in the first partition if a kernel image exists in the second partition boot/ directory. I have not confirmed this but there is no need for it so it seems safest to delete it now:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo rm -f /media/rootfs/boot/*&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wait for data to be written to the microSD card and unmount the second partition:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sync&lt;br /&gt;
umount /dev/sdb2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Test Qtopia ====&lt;br /&gt;
&lt;br /&gt;
Remove the microSD card from the USB adapter, install it in the Neo FreeRunner, boot into uBoot, and select the option to boot from microSD card.&lt;br /&gt;
&lt;br /&gt;
== Option 3: updating from source ==&lt;br /&gt;
&lt;br /&gt;
{{note|This will upgrade only opt/Qtopia directory, you should use opkg update/upgrade for the rest}}&lt;br /&gt;
Original Qtopia images (the distribution released by Trolltech, not ASU) are rarely released as a rootfs image, but the source code is often updated. If you want to reflash your OM with the latest version of Qtopia you might build it from sources. This has been explained in [http://lists.openmoko.org/pipermail/community/2008-August/024785.html this thread] of the community mailing list. Summing up:&lt;br /&gt;
&lt;br /&gt;
* get the latest toolchain released by trolltech: http://www.qtopia.net/modules/mydownloads/singlefile.php?lid=38 and unzip it on your PC (as root)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /&lt;br /&gt;
wget http://qtopia.net/downloads/neo/arm920t-eabi-ficgta01-toolchain.tgz&lt;br /&gt;
tar xvzf arm920t-eabi-ficgta01-toolchain.tgz&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* get the latest snapshot from trolltech: ftp://ftp.trolltech.com/qtopia/snapshots/&lt;br /&gt;
&lt;br /&gt;
Since qtopia was renamed in qtextended you could find the snapshots on http://qtextended.org/downloads/snapshots/&lt;br /&gt;
&lt;br /&gt;
*  once dowloaded untar it&lt;br /&gt;
&amp;lt;pre&amp;gt;tar xvzf qtopia-opensource-src-4.3.2-snapshot-20080806.tar.gz&amp;lt;/pre&amp;gt;&lt;br /&gt;
* make a &amp;quot;build&amp;quot; dir&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir build&lt;br /&gt;
cd build&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* configure and make:&lt;br /&gt;
&amp;lt;pre&amp;gt;../qtopia-opensource-src-4.3.2-snapshot-20080806/configure -device ficgta01&lt;br /&gt;
make&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This will take some time (couple hours). Note that the option &amp;quot;-device ficgta01&amp;quot; should work for both neo and freerunner. Then:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
will make a root directory into the ''build'' directory. There you can find an ''image'' that directory should be copied to /opt/Qtopia of your phone with scp. once done restart qpe or whole phone.&lt;br /&gt;
&lt;br /&gt;
For compiling qt-extended 4.4.2, you may need to use the following commands:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
* cd build&lt;br /&gt;
* $QTOPIA_DEPOT_PATH/configure -device neo -verbose -build-qt -force-build-qt&lt;br /&gt;
* bin/qbuild image&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This forces building qt as well which resolved problems with the qbuild test using all the system ram.&lt;br /&gt;
&lt;br /&gt;
== Booting into Qtopia ==&lt;br /&gt;
&lt;br /&gt;
Now shutdown the FreeRunner&lt;br /&gt;
&lt;br /&gt;
shutdown -h now&lt;br /&gt;
&lt;br /&gt;
Log into U-Boot in the NAND Flash to boot from the MicroSD card: (instructions from [[Booting the Neo FreeRunner]])&lt;br /&gt;
&lt;br /&gt;
* Press and hold Power button&lt;br /&gt;
* Then while still pressing the Power button, press and hold AUX button for 5 to 8 seconds.&lt;br /&gt;
* A boot menu will appear.&lt;br /&gt;
* Press the AUX button to select &amp;quot;[[Boot from sd card|Boot from MicroSD]]&amp;quot; and then press the Power button to execute.&lt;br /&gt;
&lt;br /&gt;
Qtopia should now boot.&lt;br /&gt;
&lt;br /&gt;
'''''Note:''''' you may get a kernel panic which says that &amp;quot;optional features not supported&amp;quot;.  If this is the case, boot back into 2007.2 and run&lt;br /&gt;
&lt;br /&gt;
umount /dev/mmcblk0p2&lt;br /&gt;
fsck.ext3.e2fsprogs /dev/mmcblk0p2&lt;br /&gt;
&lt;br /&gt;
This will clean up the file system and clear recovery flags in ext3 that ext2 does not support, then try booting from the MicroSD again.&lt;br /&gt;
&lt;br /&gt;
== Internationalization ==&lt;br /&gt;
&lt;br /&gt;
Qtopia comes with support for German and American English, and users from other countries will find that Qtopia's predictive keyboard makes writing in another language near impossible. One way to disable the predictive keyboard is to simply replace /opt/Qtopia/etc/dict/en_US/common.dawg and words.dawg with empty files (after backing them up). Qtopia normally looks in these files for words to suggest, and if it doesn't find any words that fit, it simply shows what you actually wrote.&lt;br /&gt;
&lt;br /&gt;
Adding characters to the keyboard requires modifications to the source code, as described [http://www.qtopia.net/modules/newbb_plus/viewtopic.php?topic_id=512&amp;amp;forum=16 here].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Suspend /Resume ==&lt;br /&gt;
It seems that suspend/resume only works when the FreeRunner has been connected to a powersource (only a few seconds if sufficient). If you boot from battery, it will never suspend until you have plugged it in at least for a couple of seconds.&lt;br /&gt;
&lt;br /&gt;
== Bugs ==&lt;br /&gt;
&lt;br /&gt;
See [http://trolltech.org/developer/task-tracker/index_html?method=front Trolltech's tracker] ([http://trolltech.org/developer/task-tracker/index_html?method=advsearch&amp;amp;searchstr=&amp;amp;bugs=on&amp;amp;sugs=on&amp;amp;product=2&amp;amp;functionalarea=&amp;amp;versionfound=&amp;amp;versionfixed=&amp;amp;priority=-1&amp;amp;status=0&amp;amp;resolution=-1 Qtopia Tracker]).&lt;br /&gt;
&lt;br /&gt;
Bug reports should be sent to qt-bugs@trolltech.com or by web form at http://trolltech.com/bugreport-form.&lt;br /&gt;
&lt;br /&gt;
== Bugs in 4.4.1 ==&lt;br /&gt;
* Boot and Shutdown Splash will not work because splash-write was not compiled into Busybox&lt;br /&gt;
* Timezone &amp;amp; time on latest Qt 4.4.1&lt;br /&gt;
* The first item in a list is missing the top half&lt;br /&gt;
&lt;br /&gt;
[[Category:Qtopia]]&lt;/div&gt;</summary>
		<author><name>Michaelshiloh</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Qtopia_/_Qt_Extended_on_FreeRunner</id>
		<title>Qtopia / Qt Extended on FreeRunner</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Qtopia_/_Qt_Extended_on_FreeRunner"/>
				<updated>2008-12-25T03:53:55Z</updated>
		
		<summary type="html">&lt;p&gt;Michaelshiloh: /* Get the latest version of Qtopia */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|Qtopia_on_FreeRunner}}&lt;br /&gt;
&lt;br /&gt;
This page provides instructions on how to install Qtopia/Qt Extended (proper, not the [[ASU]] or [[QtopiaOnX11]] efforts) on the GTA02 (FreeRunner) phone.  It is similar to the [[Qtopia on Neo1973]] page.&lt;br /&gt;
&lt;br /&gt;
{|align=right&lt;br /&gt;
|__TOC__&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Current status ==&lt;br /&gt;
&lt;br /&gt;
On 31 October 2008, Trolltech released the [http://qtextended.org/modules/mydownloads/visit.php?lid=98 Qtopia ROM flash image containing the rootfs] for the Openmoko Neo FreeRunner (gta02) containing the Qtopia 4.4.2 release (GPL version). This runs on the [http://qtextended.org/modules/mydownloads/visit.php?lid=91 mwebster ROM flash image containing the kernel]. At release time, 4.4.2 &amp;amp; current mwester's kernel mismatched, please clarify the previous sentence. Hypnotize has released [http://lists.openmoko.org/pipermail/community/2008-November/035245.html Qt Extended 4.4.2 images for the Neo FreeRunner] that work better.&lt;br /&gt;
&lt;br /&gt;
This image can successfully make and receive calls and text messages. It can read all contacts from the SIM card (which the updated 2007.2 does not appear to be able to do). It contains apps that appear to be more stable than the ones found in the 2007.2 image.  It has multiple input methods that appear to be more mature.  It does have a webkit based web browser and an GPS &amp;quot;Mapping Demo&amp;quot; application.&lt;br /&gt;
&lt;br /&gt;
There are other third-party GPS applications available:&lt;br /&gt;
* [http://blog.wolfman.com/articles/2008/08/27/porting-xgps-to-qtopia-for-the-freerunner xgps]&lt;br /&gt;
* [http://www.linux4.be/fr/roadmap.html RoadMap (experimental)]&lt;br /&gt;
&lt;br /&gt;
([[TangoGPS]] does not work on QtExtended, because it depends upon an Xserver)&lt;br /&gt;
&lt;br /&gt;
You can find all the Qtopia images [http://qtextended.org/modules/mydownloads/viewcat.php?cid=6 here] (including Qtextended/Qtopia 4.4 for FreeRunner and Neo1973!)&lt;br /&gt;
&lt;br /&gt;
=== What is in the latest release (QtExtended 4.4.2)? ===&lt;br /&gt;
Qtopia 4.4 has been released with the name of [http://doc.trolltech.com/qtextended4.4/release-4-4-2.html QtExtended 4.4].&lt;br /&gt;
* a [http://n2.nabble.com/qtopia-update-tp832851p832888.html browser] based on webkit&lt;br /&gt;
* [http://n2.nabble.com/-qtopia--rotate-screen--tp841805p841841.html screen rotation in the settings application] (so no automatic rotation)&lt;br /&gt;
* [http://n2.nabble.com/Echo-issue-on-OM2008.08-potentially-solved-tp791642.html noise reduction]&lt;br /&gt;
* GPS api&lt;br /&gt;
* usb net/storage switching&lt;br /&gt;
* Gtalk support&lt;br /&gt;
* [http://n2.nabble.com/forum/Permalink.jtp?root=841805&amp;amp;post=1083388&amp;amp;page=y better support for non-english languages in the keyboard]&lt;br /&gt;
&lt;br /&gt;
== Option 1: Flashing Qtopia to FreeRunner ==&lt;br /&gt;
&lt;br /&gt;
Download the image mentioned above and follow the instructions here: [[Flashing the Neo FreeRunner]]&lt;br /&gt;
&lt;br /&gt;
== Option 2: Dual-Booting between Qtopia and 2007.2 (Qtopia boots from MicroSD card) ==&lt;br /&gt;
&lt;br /&gt;
Installation Requirements:&lt;br /&gt;
&lt;br /&gt;
# SSH shell access to 2007.2 based image of the FreeRunner through USB interface or WLAN.&lt;br /&gt;
# A Desktop Linux distro (to unpack the .jffs2 image, I ran Ubuntu under VMWare)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Preparing the SD card ===&lt;br /&gt;
&lt;br /&gt;
See the [[Booting from SD#Prepare the SD card| Preparing the SD Card]] section of the [[Booting from SD]] page for partitioning and formatting instructions.  After you complete the &amp;quot;Formatting the SD Card&amp;quot; steps, return here and execute the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mount /dev/mmcblk0p1 /media/card&lt;br /&gt;
mkdir /media/card/boot&lt;br /&gt;
&lt;br /&gt;
mkdir /media/mmcblk0p2&lt;br /&gt;
mount /dev/mmcblk0p2 /media/mmcblk0p2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will set you up properly for the installation of the root filesystem and the kernel in the steps below.&lt;br /&gt;
&lt;br /&gt;
=== Installing Qtopia ===&lt;br /&gt;
&lt;br /&gt;
==== Unpacking the Qtopia Root Filesystem Image ====&lt;br /&gt;
&lt;br /&gt;
Download the Qtopia FLASH image from [[Latest Images#Qtopia images]] to your Linux box and extract its contents:&lt;br /&gt;
&lt;br /&gt;
tar xzf qtopia-4.3.2-gta02-flash-*.tgz&lt;br /&gt;
&lt;br /&gt;
You should now have two files:&lt;br /&gt;
#uImage-2.6.24+git18+9c058ff0d2641df3c36fc3300acb72078d2c41d4-r0-om-gta02.bin&lt;br /&gt;
#qtopia-4.3.2-gta02-rootfs-07172049.jffs2&lt;br /&gt;
Now, mount the root file system from the jffs2 using the commands found [[Userspace root image#Mounting the JFFS2 image on a loop back device (Block Memory MTD Emulation) |here]].  However, in the mount command, substitute the image filename for &amp;quot;/dev/mtdblock0&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==== Creating a compressed tarball ====&lt;br /&gt;
&lt;br /&gt;
Next, tar up the root filesystem:&lt;br /&gt;
&lt;br /&gt;
# tar czf qtopia-4.3.2-gta02-rootfs-07172049.tar.gz -C &amp;lt;mountpoint&amp;gt; .&lt;br /&gt;
&lt;br /&gt;
Where ''&amp;lt;mountpoint&amp;gt;'' is the location where the jff2 filesystem was mounted.  Note the space and the period after the mountpoint.&lt;br /&gt;
&lt;br /&gt;
==== Installing Root Filesystem ====&lt;br /&gt;
&lt;br /&gt;
Transfer this compressed tarball to the second partition of the MicroSD that is mounted on the FreeRunner:&lt;br /&gt;
&lt;br /&gt;
scp qtopia-4.3.2-gta02-rootfs-07172049.tar.gz root@192.168.0.202:/media/mmcblk0p2/&lt;br /&gt;
&lt;br /&gt;
Log in to your FreeRunner and unpack the root filesystem:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /media/mmcblk0p2&lt;br /&gt;
tar xzf qtopia-4.3.2-gta02-rootfs-07172049.tar.gz&lt;br /&gt;
rm qtopia-4.3.2-gta02-rootfs-07172049.tar.gz&lt;br /&gt;
rm -f /media/mmcblk0p2/boot/*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''Note:''''' the last step removes the kernel image from the second partition.  For some reason, U-Boot cannot find the uImage.bin file in the first partition if a kernel image exists in the second partition boot/ directory.&lt;br /&gt;
&lt;br /&gt;
==== Installing Kernel ====&lt;br /&gt;
&lt;br /&gt;
From your Linux box, rename &amp;lt;tt&amp;gt;uImage-2.6.24+git18+9c058ff0d2641df3c36fc3300acb72078d2c41d4-r0-om-gta02.bin&amp;lt;/tt&amp;gt; to &amp;lt;tt&amp;gt;uImage.bin&amp;lt;/tt&amp;gt; and copy it to the boot directory on the first partition of the MicroSD card.  Depending on the version of U-Boot you have installed, this may not work.  To prevent any possible issues, copy it to the &amp;lt;tt&amp;gt;/media/card&amp;lt;/tt&amp;gt; directory as well. There is plenty of room on the first partition to have &amp;lt;tt&amp;gt;uImage.bin&amp;lt;/tt&amp;gt; in both locations.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mv uImage-2.6.24+git18+9c058ff0d2641df3c36fc3300acb72078d2c41d4-r0-om-gta02.bin uImage.bin&lt;br /&gt;
scp uImage.bin root@192.168.0.202:/media/card/boot/&lt;br /&gt;
scp uImage.bin root@192.168.0.202:/media/card/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Pointing Qtopia to the SD Card ====&lt;br /&gt;
&lt;br /&gt;
Lorn Potter on the mailing lists pointed this out:&lt;br /&gt;
&lt;br /&gt;
Qtopia was designed to be run from the root partition on a flash chip, not from a removable sd card.&lt;br /&gt;
&lt;br /&gt;
You would have to edit the etc/default/Trolltech/Storage.conf file to make it forget about the sd /dev node, to be able to run it this way&lt;br /&gt;
&lt;br /&gt;
Another user's solution to this is the following:&lt;br /&gt;
&lt;br /&gt;
Edit this file: /opt/Qtopia/etc/default/Trolltech/Storage.conf&lt;br /&gt;
And change the [MountPoint0] section so it resembles this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[MountPoint0]&lt;br /&gt;
Name[] = SD Card&lt;br /&gt;
Path=/dev/mmcblk0p1&lt;br /&gt;
Removable = 0&lt;br /&gt;
Applications = 0&lt;br /&gt;
Documents = 0&lt;br /&gt;
ContentDatabase = 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Simplified complete procedure using Ubuntu computer and microSD to USB adapter ===&lt;br /&gt;
&lt;br /&gt;
This procedure was developed with:&lt;br /&gt;
&lt;br /&gt;
* Ubuntu 8.10&lt;br /&gt;
* SanDisk microSD to USB adapter&lt;br /&gt;
* Qt Extended 4.4.2 2008/10/31&lt;br /&gt;
&lt;br /&gt;
==== Prepare microSD card ====&lt;br /&gt;
&lt;br /&gt;
Create an 8 MB partition for the kernel and use the remaining space for the root file system.&lt;br /&gt;
&lt;br /&gt;
Insert microSD card into adapter, and plug adapter into Ubuntu computer. If any partitions on the microSD card mount automatically, unmount them.&lt;br /&gt;
&lt;br /&gt;
CAUTION: Make sure you know which device your microSD card is. You don't want to perform these steps on your main hard disk!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo umount /dev/sdb1&lt;br /&gt;
&lt;br /&gt;
sudo fdisk /dev/sdb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I assume you know how to use fdisk. Delete any existing partitions, then create two new partitions, the first of size +8M, the second using all remaining space. Set the file system type of the first partition to FAT16 (type '6'). Your partition table should look like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  /dev/sdb1               1           9        9040+   6  FAT16&lt;br /&gt;
  /dev/sdb2              10         984      982800   83  Linux&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Save your partition table and quit fdisk. Format the partitions appropriately:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo mkfs.vfat /dev/sdb1&lt;br /&gt;
sudo mkfs.ext3 /dev/sdb2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Get the latest version of Qtopia ====&lt;br /&gt;
&lt;br /&gt;
Visit [http://qtextended.org/modules/mydownloads/viewcat.php?cid=6:Qtopia] and get the appropriate file. The Qtopia ROM flash images contain both the file system and the kernel image:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget http://qtextended.org/modules/mydownloads/visit.php?lid=98&lt;br /&gt;
tar -zxvf qtextended-4.4.2-gta02-flash.tgz&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Copy the kernel image to the microSD card ====&lt;br /&gt;
&lt;br /&gt;
First mount the first partition, which is the boot partition, of the microSD card:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo mkdir /media/boot&lt;br /&gt;
sudo mount /dev/sdb1 /media/boot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Depending on your version of U-Boot, the kernel image might be expected at the root of the boot partition, or in the /boot directory. Also, the image file name might be expected to have a .bin extension, or not. We create all four variations:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo cp testing-om-gta02-20081029.uImage.bin /media/card/uImage.bin&lt;br /&gt;
sudo cp testing-om-gta02-20081029.uImage.bin /media/card/uImage&lt;br /&gt;
sudo cp testing-om-gta02-20081029.uImage.bin /media/card/boot/uImage.bin&lt;br /&gt;
sudo cp testing-om-gta02-20081029.uImage.bin /media/card/boot/uImage&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wait for data to be written to the microSD card and unmount the first partition:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sync&lt;br /&gt;
umount /dev/sdb2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Copy the jffs2 root file system to the microSD card ====&lt;br /&gt;
&lt;br /&gt;
First we need to make a fake MTD device in RAM so that we can mount the jffs2 root file system:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo modprobe mtd &lt;br /&gt;
sudo modprobe jffs2  &lt;br /&gt;
sudo modprobe mtdram total_size=59024 # default is 4 MByte - set to max.&lt;br /&gt;
sudo modprobe mtdchar &lt;br /&gt;
sudo modprobe mtdblock&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Next we're going to copy onto this fake device. Make sure there are no other MTD devices on your computer and change the device numbers below as necessary:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cat /proc/mtd&lt;br /&gt;
  dev:    size   erasesize  name&lt;br /&gt;
    mtd0: 039a4000 00020000 &amp;quot;mtdram test device&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now copy the jffs2 file system to the fake MTD device:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo dd if=qtextended-4.4.2-gta02-rootfs-10302135.jffs2 of=/dev/mtd0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create a mount point, mount the fake MTD device, and check that the contents seem right:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo mkdir /mnt/tmp&lt;br /&gt;
sudo mount -t jffs2 /dev/mtdblock0 /mnt/tmp&lt;br /&gt;
ls /mnt/tmp&lt;br /&gt;
  bin/   dev/  home/  media/  opt/   sbin/  tmp@	var/&lt;br /&gt;
  boot/  etc/  lib/   mnt/    proc/  sys/   usr/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mount the second partition of the microSD card and copy the root file system to it:&lt;br /&gt;
copy root file system to sd card using tar&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo mkdir /media/rootfs&lt;br /&gt;
sudo mount /dev/sdb2 /media/rootfs&lt;br /&gt;
cd /mnt/tmp&lt;br /&gt;
sudo tar -cf - . | (cd /media/rootfs &amp;amp;&amp;amp; sudo tar -xpvf -)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Use &amp;quot;sync&amp;quot; to make sure that all data is written to the microSD card:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sync&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Inspect contents of second partition:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  ls /media/rootfs&lt;br /&gt;
  bin/   dev/  home/  media/  opt/   sbin/  tmp@	var/&lt;br /&gt;
  boot/  etc/  lib/   mnt/    proc/  sys/   usr/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: There was a report that some versions of U-Boot cannot find the kernel image file in the first partition if a kernel image exists in the second partition boot/ directory. I have not confirmed this but there is no need for it so it seems safest to delete it now:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo rm -f /media/rootfs/boot/*&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wait for data to be written to the microSD card and unmount the second partition:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sync&lt;br /&gt;
umount /dev/sdb2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Test Qtopia ====&lt;br /&gt;
&lt;br /&gt;
Remove the microSD card from the USB adapter, install it in the Neo FreeRunner, boot into uBoot, and select the option to boot from microSD card.&lt;br /&gt;
&lt;br /&gt;
== Option 3: updating from source ==&lt;br /&gt;
&lt;br /&gt;
{{note|This will upgrade only opt/Qtopia directory, you should use opkg update/upgrade for the rest}}&lt;br /&gt;
Original Qtopia images (the distribution released by Trolltech, not ASU) are rarely released as a rootfs image, but the source code is often updated. If you want to reflash your OM with the latest version of Qtopia you might build it from sources. This has been explained in [http://lists.openmoko.org/pipermail/community/2008-August/024785.html this thread] of the community mailing list. Summing up:&lt;br /&gt;
&lt;br /&gt;
* get the latest toolchain released by trolltech: http://www.qtopia.net/modules/mydownloads/singlefile.php?lid=38 and unzip it on your PC (as root)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /&lt;br /&gt;
wget http://qtopia.net/downloads/neo/arm920t-eabi-ficgta01-toolchain.tgz&lt;br /&gt;
tar xvzf arm920t-eabi-ficgta01-toolchain.tgz&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* get the latest snapshot from trolltech: ftp://ftp.trolltech.com/qtopia/snapshots/&lt;br /&gt;
&lt;br /&gt;
Since qtopia was renamed in qtextended you could find the snapshots on http://qtextended.org/downloads/snapshots/&lt;br /&gt;
&lt;br /&gt;
*  once dowloaded untar it&lt;br /&gt;
&amp;lt;pre&amp;gt;tar xvzf qtopia-opensource-src-4.3.2-snapshot-20080806.tar.gz&amp;lt;/pre&amp;gt;&lt;br /&gt;
* make a &amp;quot;build&amp;quot; dir&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir build&lt;br /&gt;
cd build&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* configure and make:&lt;br /&gt;
&amp;lt;pre&amp;gt;../qtopia-opensource-src-4.3.2-snapshot-20080806/configure -device ficgta01&lt;br /&gt;
make&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This will take some time (couple hours). Note that the option &amp;quot;-device ficgta01&amp;quot; should work for both neo and freerunner. Then:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
will make a root directory into the ''build'' directory. There you can find an ''image'' that directory should be copied to /opt/Qtopia of your phone with scp. once done restart qpe or whole phone.&lt;br /&gt;
&lt;br /&gt;
For compiling qt-extended 4.4.2, you may need to use the following commands:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
* cd build&lt;br /&gt;
* $QTOPIA_DEPOT_PATH/configure -device neo -verbose -build-qt -force-build-qt&lt;br /&gt;
* bin/qbuild image&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This forces building qt as well which resolved problems with the qbuild test using all the system ram.&lt;br /&gt;
&lt;br /&gt;
== Booting into Qtopia ==&lt;br /&gt;
&lt;br /&gt;
Now shutdown the FreeRunner&lt;br /&gt;
&lt;br /&gt;
shutdown -h now&lt;br /&gt;
&lt;br /&gt;
Log into U-Boot in the NAND Flash to boot from the MicroSD card: (instructions from [[Booting the Neo FreeRunner]])&lt;br /&gt;
&lt;br /&gt;
* Press and hold Power button&lt;br /&gt;
* Then while still pressing the Power button, press and hold AUX button for 5 to 8 seconds.&lt;br /&gt;
* A boot menu will appear.&lt;br /&gt;
* Press the AUX button to select &amp;quot;[[Boot from sd card|Boot from MicroSD]]&amp;quot; and then press the Power button to execute.&lt;br /&gt;
&lt;br /&gt;
Qtopia should now boot.&lt;br /&gt;
&lt;br /&gt;
'''''Note:''''' you may get a kernel panic which says that &amp;quot;optional features not supported&amp;quot;.  If this is the case, boot back into 2007.2 and run&lt;br /&gt;
&lt;br /&gt;
umount /dev/mmcblk0p2&lt;br /&gt;
fsck.ext3.e2fsprogs /dev/mmcblk0p2&lt;br /&gt;
&lt;br /&gt;
This will clean up the file system and clear recovery flags in ext3 that ext2 does not support, then try booting from the MicroSD again.&lt;br /&gt;
&lt;br /&gt;
== Internationalization ==&lt;br /&gt;
&lt;br /&gt;
Qtopia comes with support for German and American English, and users from other countries will find that Qtopia's predictive keyboard makes writing in another language near impossible. One way to disable the predictive keyboard is to simply replace /opt/Qtopia/etc/dict/en_US/common.dawg and words.dawg with empty files (after backing them up). Qtopia normally looks in these files for words to suggest, and if it doesn't find any words that fit, it simply shows what you actually wrote.&lt;br /&gt;
&lt;br /&gt;
Adding characters to the keyboard requires modifications to the source code, as described [http://www.qtopia.net/modules/newbb_plus/viewtopic.php?topic_id=512&amp;amp;forum=16 here].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Suspend /Resume ==&lt;br /&gt;
It seems that suspend/resume only works when the FreeRunner has been connected to a powersource (only a few seconds if sufficient). If you boot from battery, it will never suspend until you have plugged it in at least for a couple of seconds.&lt;br /&gt;
&lt;br /&gt;
== Bugs ==&lt;br /&gt;
&lt;br /&gt;
See [http://trolltech.org/developer/task-tracker/index_html?method=front Trolltech's tracker] ([http://trolltech.org/developer/task-tracker/index_html?method=advsearch&amp;amp;searchstr=&amp;amp;bugs=on&amp;amp;sugs=on&amp;amp;product=2&amp;amp;functionalarea=&amp;amp;versionfound=&amp;amp;versionfixed=&amp;amp;priority=-1&amp;amp;status=0&amp;amp;resolution=-1 Qtopia Tracker]).&lt;br /&gt;
&lt;br /&gt;
Bug reports should be sent to qt-bugs@trolltech.com or by web form at http://trolltech.com/bugreport-form.&lt;br /&gt;
&lt;br /&gt;
== Bugs in 4.4.1 ==&lt;br /&gt;
* Boot and Shutdown Splash will not work because splash-write was not compiled into Busybox&lt;br /&gt;
* Timezone &amp;amp; time on latest Qt 4.4.1&lt;br /&gt;
* The first item in a list is missing the top half&lt;br /&gt;
&lt;br /&gt;
[[Category:Qtopia]]&lt;/div&gt;</summary>
		<author><name>Michaelshiloh</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Qtopia_/_Qt_Extended_on_FreeRunner</id>
		<title>Qtopia / Qt Extended on FreeRunner</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Qtopia_/_Qt_Extended_on_FreeRunner"/>
				<updated>2008-12-25T03:42:26Z</updated>
		
		<summary type="html">&lt;p&gt;Michaelshiloh: /* Prepare microSD card */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|Qtopia_on_FreeRunner}}&lt;br /&gt;
&lt;br /&gt;
This page provides instructions on how to install Qtopia/Qt Extended (proper, not the [[ASU]] or [[QtopiaOnX11]] efforts) on the GTA02 (FreeRunner) phone.  It is similar to the [[Qtopia on Neo1973]] page.&lt;br /&gt;
&lt;br /&gt;
{|align=right&lt;br /&gt;
|__TOC__&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Current status ==&lt;br /&gt;
&lt;br /&gt;
On 31 October 2008, Trolltech released the [http://qtextended.org/modules/mydownloads/visit.php?lid=98 Qtopia ROM flash image containing the rootfs] for the Openmoko Neo FreeRunner (gta02) containing the Qtopia 4.4.2 release (GPL version). This runs on the [http://qtextended.org/modules/mydownloads/visit.php?lid=91 mwebster ROM flash image containing the kernel]. At release time, 4.4.2 &amp;amp; current mwester's kernel mismatched, please clarify the previous sentence. Hypnotize has released [http://lists.openmoko.org/pipermail/community/2008-November/035245.html Qt Extended 4.4.2 images for the Neo FreeRunner] that work better.&lt;br /&gt;
&lt;br /&gt;
This image can successfully make and receive calls and text messages. It can read all contacts from the SIM card (which the updated 2007.2 does not appear to be able to do). It contains apps that appear to be more stable than the ones found in the 2007.2 image.  It has multiple input methods that appear to be more mature.  It does have a webkit based web browser and an GPS &amp;quot;Mapping Demo&amp;quot; application.&lt;br /&gt;
&lt;br /&gt;
There are other third-party GPS applications available:&lt;br /&gt;
* [http://blog.wolfman.com/articles/2008/08/27/porting-xgps-to-qtopia-for-the-freerunner xgps]&lt;br /&gt;
* [http://www.linux4.be/fr/roadmap.html RoadMap (experimental)]&lt;br /&gt;
&lt;br /&gt;
([[TangoGPS]] does not work on QtExtended, because it depends upon an Xserver)&lt;br /&gt;
&lt;br /&gt;
You can find all the Qtopia images [http://qtextended.org/modules/mydownloads/viewcat.php?cid=6 here] (including Qtextended/Qtopia 4.4 for FreeRunner and Neo1973!)&lt;br /&gt;
&lt;br /&gt;
=== What is in the latest release (QtExtended 4.4.2)? ===&lt;br /&gt;
Qtopia 4.4 has been released with the name of [http://doc.trolltech.com/qtextended4.4/release-4-4-2.html QtExtended 4.4].&lt;br /&gt;
* a [http://n2.nabble.com/qtopia-update-tp832851p832888.html browser] based on webkit&lt;br /&gt;
* [http://n2.nabble.com/-qtopia--rotate-screen--tp841805p841841.html screen rotation in the settings application] (so no automatic rotation)&lt;br /&gt;
* [http://n2.nabble.com/Echo-issue-on-OM2008.08-potentially-solved-tp791642.html noise reduction]&lt;br /&gt;
* GPS api&lt;br /&gt;
* usb net/storage switching&lt;br /&gt;
* Gtalk support&lt;br /&gt;
* [http://n2.nabble.com/forum/Permalink.jtp?root=841805&amp;amp;post=1083388&amp;amp;page=y better support for non-english languages in the keyboard]&lt;br /&gt;
&lt;br /&gt;
== Option 1: Flashing Qtopia to FreeRunner ==&lt;br /&gt;
&lt;br /&gt;
Download the image mentioned above and follow the instructions here: [[Flashing the Neo FreeRunner]]&lt;br /&gt;
&lt;br /&gt;
== Option 2: Dual-Booting between Qtopia and 2007.2 (Qtopia boots from MicroSD card) ==&lt;br /&gt;
&lt;br /&gt;
Installation Requirements:&lt;br /&gt;
&lt;br /&gt;
# SSH shell access to 2007.2 based image of the FreeRunner through USB interface or WLAN.&lt;br /&gt;
# A Desktop Linux distro (to unpack the .jffs2 image, I ran Ubuntu under VMWare)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Preparing the SD card ===&lt;br /&gt;
&lt;br /&gt;
See the [[Booting from SD#Prepare the SD card| Preparing the SD Card]] section of the [[Booting from SD]] page for partitioning and formatting instructions.  After you complete the &amp;quot;Formatting the SD Card&amp;quot; steps, return here and execute the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mount /dev/mmcblk0p1 /media/card&lt;br /&gt;
mkdir /media/card/boot&lt;br /&gt;
&lt;br /&gt;
mkdir /media/mmcblk0p2&lt;br /&gt;
mount /dev/mmcblk0p2 /media/mmcblk0p2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will set you up properly for the installation of the root filesystem and the kernel in the steps below.&lt;br /&gt;
&lt;br /&gt;
=== Installing Qtopia ===&lt;br /&gt;
&lt;br /&gt;
==== Unpacking the Qtopia Root Filesystem Image ====&lt;br /&gt;
&lt;br /&gt;
Download the Qtopia FLASH image from [[Latest Images#Qtopia images]] to your Linux box and extract its contents:&lt;br /&gt;
&lt;br /&gt;
tar xzf qtopia-4.3.2-gta02-flash-*.tgz&lt;br /&gt;
&lt;br /&gt;
You should now have two files:&lt;br /&gt;
#uImage-2.6.24+git18+9c058ff0d2641df3c36fc3300acb72078d2c41d4-r0-om-gta02.bin&lt;br /&gt;
#qtopia-4.3.2-gta02-rootfs-07172049.jffs2&lt;br /&gt;
Now, mount the root file system from the jffs2 using the commands found [[Userspace root image#Mounting the JFFS2 image on a loop back device (Block Memory MTD Emulation) |here]].  However, in the mount command, substitute the image filename for &amp;quot;/dev/mtdblock0&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==== Creating a compressed tarball ====&lt;br /&gt;
&lt;br /&gt;
Next, tar up the root filesystem:&lt;br /&gt;
&lt;br /&gt;
# tar czf qtopia-4.3.2-gta02-rootfs-07172049.tar.gz -C &amp;lt;mountpoint&amp;gt; .&lt;br /&gt;
&lt;br /&gt;
Where ''&amp;lt;mountpoint&amp;gt;'' is the location where the jff2 filesystem was mounted.  Note the space and the period after the mountpoint.&lt;br /&gt;
&lt;br /&gt;
==== Installing Root Filesystem ====&lt;br /&gt;
&lt;br /&gt;
Transfer this compressed tarball to the second partition of the MicroSD that is mounted on the FreeRunner:&lt;br /&gt;
&lt;br /&gt;
scp qtopia-4.3.2-gta02-rootfs-07172049.tar.gz root@192.168.0.202:/media/mmcblk0p2/&lt;br /&gt;
&lt;br /&gt;
Log in to your FreeRunner and unpack the root filesystem:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /media/mmcblk0p2&lt;br /&gt;
tar xzf qtopia-4.3.2-gta02-rootfs-07172049.tar.gz&lt;br /&gt;
rm qtopia-4.3.2-gta02-rootfs-07172049.tar.gz&lt;br /&gt;
rm -f /media/mmcblk0p2/boot/*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''Note:''''' the last step removes the kernel image from the second partition.  For some reason, U-Boot cannot find the uImage.bin file in the first partition if a kernel image exists in the second partition boot/ directory.&lt;br /&gt;
&lt;br /&gt;
==== Installing Kernel ====&lt;br /&gt;
&lt;br /&gt;
From your Linux box, rename &amp;lt;tt&amp;gt;uImage-2.6.24+git18+9c058ff0d2641df3c36fc3300acb72078d2c41d4-r0-om-gta02.bin&amp;lt;/tt&amp;gt; to &amp;lt;tt&amp;gt;uImage.bin&amp;lt;/tt&amp;gt; and copy it to the boot directory on the first partition of the MicroSD card.  Depending on the version of U-Boot you have installed, this may not work.  To prevent any possible issues, copy it to the &amp;lt;tt&amp;gt;/media/card&amp;lt;/tt&amp;gt; directory as well. There is plenty of room on the first partition to have &amp;lt;tt&amp;gt;uImage.bin&amp;lt;/tt&amp;gt; in both locations.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mv uImage-2.6.24+git18+9c058ff0d2641df3c36fc3300acb72078d2c41d4-r0-om-gta02.bin uImage.bin&lt;br /&gt;
scp uImage.bin root@192.168.0.202:/media/card/boot/&lt;br /&gt;
scp uImage.bin root@192.168.0.202:/media/card/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Pointing Qtopia to the SD Card ====&lt;br /&gt;
&lt;br /&gt;
Lorn Potter on the mailing lists pointed this out:&lt;br /&gt;
&lt;br /&gt;
Qtopia was designed to be run from the root partition on a flash chip, not from a removable sd card.&lt;br /&gt;
&lt;br /&gt;
You would have to edit the etc/default/Trolltech/Storage.conf file to make it forget about the sd /dev node, to be able to run it this way&lt;br /&gt;
&lt;br /&gt;
Another user's solution to this is the following:&lt;br /&gt;
&lt;br /&gt;
Edit this file: /opt/Qtopia/etc/default/Trolltech/Storage.conf&lt;br /&gt;
And change the [MountPoint0] section so it resembles this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[MountPoint0]&lt;br /&gt;
Name[] = SD Card&lt;br /&gt;
Path=/dev/mmcblk0p1&lt;br /&gt;
Removable = 0&lt;br /&gt;
Applications = 0&lt;br /&gt;
Documents = 0&lt;br /&gt;
ContentDatabase = 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Simplified complete procedure using Ubuntu computer and microSD to USB adapter ===&lt;br /&gt;
&lt;br /&gt;
This procedure was developed with:&lt;br /&gt;
&lt;br /&gt;
* Ubuntu 8.10&lt;br /&gt;
* SanDisk microSD to USB adapter&lt;br /&gt;
* Qt Extended 4.4.2 2008/10/31&lt;br /&gt;
&lt;br /&gt;
==== Prepare microSD card ====&lt;br /&gt;
&lt;br /&gt;
Create an 8 MB partition for the kernel and use the remaining space for the root file system.&lt;br /&gt;
&lt;br /&gt;
Insert microSD card into adapter, and plug adapter into Ubuntu computer. If any partitions on the microSD card mount automatically, unmount them.&lt;br /&gt;
&lt;br /&gt;
CAUTION: Make sure you know which device your microSD card is. You don't want to perform these steps on your main hard disk!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo umount /dev/sdb1&lt;br /&gt;
&lt;br /&gt;
sudo fdisk /dev/sdb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I assume you know how to use fdisk. Delete any existing partitions, then create two new partitions, the first of size +8M, the second using all remaining space. Set the file system type of the first partition to FAT16 (type '6'). Your partition table should look like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  /dev/sdb1               1           9        9040+   6  FAT16&lt;br /&gt;
  /dev/sdb2              10         984      982800   83  Linux&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Save your partition table and quit fdisk. Format the partitions appropriately:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo mkfs.vfat /dev/sdb1&lt;br /&gt;
sudo mkfs.ext3 /dev/sdb2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Get the latest version of Qtopia ====&lt;br /&gt;
&lt;br /&gt;
Visit [http://qtextended.org/modules/mydownloads/viewcat.php?cid=6:Qtopia] and get the appropriate file. The Qtopia ROM flash images contain both the file system and the kernel image:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget http://qtextended.org/modules/mydownloads/visit.php?lid=98&lt;br /&gt;
tar -zxvf qtextended-4.4.2-gta02-flash.tgz&lt;br /&gt;
cd qtextended-4.4.2-gta02-flash&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Copy the kernel image to the microSD card ====&lt;br /&gt;
&lt;br /&gt;
First mount the first partition, which is the boot partition, of the microSD card:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo mkdir /media/boot&lt;br /&gt;
sudo mount /dev/sdb1 /media/boot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Depending on your version of U-Boot, the kernel image might be expected at the root of the boot partition, or in the /boot directory. Also, the image file name might be expected to have a .bin extension, or not. We create all four variations:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo cp testing-om-gta02-20081029.uImage.bin /media/card/uImage.bin&lt;br /&gt;
sudo cp testing-om-gta02-20081029.uImage.bin /media/card/uImage&lt;br /&gt;
sudo cp testing-om-gta02-20081029.uImage.bin /media/card/boot/uImage.bin&lt;br /&gt;
sudo cp testing-om-gta02-20081029.uImage.bin /media/card/boot/uImage&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wait for data to be written to the microSD card and unmount the first partition:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sync&lt;br /&gt;
umount /dev/sdb2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Copy the jffs2 root file system to the microSD card ====&lt;br /&gt;
&lt;br /&gt;
First we need to make a fake MTD device in RAM so that we can mount the jffs2 root file system:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo modprobe mtd &lt;br /&gt;
sudo modprobe jffs2  &lt;br /&gt;
sudo modprobe mtdram total_size=59024 # default is 4 MByte - set to max.&lt;br /&gt;
sudo modprobe mtdchar &lt;br /&gt;
sudo modprobe mtdblock&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Next we're going to copy onto this fake device. Make sure there are no other MTD devices on your computer and change the device numbers below as necessary:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cat /proc/mtd&lt;br /&gt;
  dev:    size   erasesize  name&lt;br /&gt;
    mtd0: 039a4000 00020000 &amp;quot;mtdram test device&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now copy the jffs2 file system to the fake MTD device:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo dd if=qtextended-4.4.2-gta02-rootfs-10302135.jffs2 of=/dev/mtd0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create a mount point, mount the fake MTD device, and check that the contents seem right:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo mkdir /mnt/tmp&lt;br /&gt;
sudo mount -t jffs2 /dev/mtdblock0 /mnt/tmp&lt;br /&gt;
ls /mnt/tmp&lt;br /&gt;
  bin/   dev/  home/  media/  opt/   sbin/  tmp@	var/&lt;br /&gt;
  boot/  etc/  lib/   mnt/    proc/  sys/   usr/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mount the second partition of the microSD card and copy the root file system to it:&lt;br /&gt;
copy root file system to sd card using tar&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo mkdir /media/rootfs&lt;br /&gt;
sudo mount /dev/sdb2 /media/rootfs&lt;br /&gt;
cd /mnt/tmp&lt;br /&gt;
sudo tar -cf - . | (cd /media/rootfs &amp;amp;&amp;amp; sudo tar -xpvf -)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Use &amp;quot;sync&amp;quot; to make sure that all data is written to the microSD card:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sync&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Inspect contents of second partition:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  ls /media/rootfs&lt;br /&gt;
  bin/   dev/  home/  media/  opt/   sbin/  tmp@	var/&lt;br /&gt;
  boot/  etc/  lib/   mnt/    proc/  sys/   usr/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: There was a report that some versions of U-Boot cannot find the kernel image file in the first partition if a kernel image exists in the second partition boot/ directory. I have not confirmed this but there is no need for it so it seems safest to delete it now:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo rm -f /media/rootfs/boot/*&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wait for data to be written to the microSD card and unmount the second partition:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sync&lt;br /&gt;
umount /dev/sdb2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Test Qtopia ====&lt;br /&gt;
&lt;br /&gt;
Remove the microSD card from the USB adapter, install it in the Neo FreeRunner, boot into uBoot, and select the option to boot from microSD card.&lt;br /&gt;
&lt;br /&gt;
== Option 3: updating from source ==&lt;br /&gt;
&lt;br /&gt;
{{note|This will upgrade only opt/Qtopia directory, you should use opkg update/upgrade for the rest}}&lt;br /&gt;
Original Qtopia images (the distribution released by Trolltech, not ASU) are rarely released as a rootfs image, but the source code is often updated. If you want to reflash your OM with the latest version of Qtopia you might build it from sources. This has been explained in [http://lists.openmoko.org/pipermail/community/2008-August/024785.html this thread] of the community mailing list. Summing up:&lt;br /&gt;
&lt;br /&gt;
* get the latest toolchain released by trolltech: http://www.qtopia.net/modules/mydownloads/singlefile.php?lid=38 and unzip it on your PC (as root)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /&lt;br /&gt;
wget http://qtopia.net/downloads/neo/arm920t-eabi-ficgta01-toolchain.tgz&lt;br /&gt;
tar xvzf arm920t-eabi-ficgta01-toolchain.tgz&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* get the latest snapshot from trolltech: ftp://ftp.trolltech.com/qtopia/snapshots/&lt;br /&gt;
&lt;br /&gt;
Since qtopia was renamed in qtextended you could find the snapshots on http://qtextended.org/downloads/snapshots/&lt;br /&gt;
&lt;br /&gt;
*  once dowloaded untar it&lt;br /&gt;
&amp;lt;pre&amp;gt;tar xvzf qtopia-opensource-src-4.3.2-snapshot-20080806.tar.gz&amp;lt;/pre&amp;gt;&lt;br /&gt;
* make a &amp;quot;build&amp;quot; dir&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir build&lt;br /&gt;
cd build&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* configure and make:&lt;br /&gt;
&amp;lt;pre&amp;gt;../qtopia-opensource-src-4.3.2-snapshot-20080806/configure -device ficgta01&lt;br /&gt;
make&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This will take some time (couple hours). Note that the option &amp;quot;-device ficgta01&amp;quot; should work for both neo and freerunner. Then:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
will make a root directory into the ''build'' directory. There you can find an ''image'' that directory should be copied to /opt/Qtopia of your phone with scp. once done restart qpe or whole phone.&lt;br /&gt;
&lt;br /&gt;
For compiling qt-extended 4.4.2, you may need to use the following commands:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
* cd build&lt;br /&gt;
* $QTOPIA_DEPOT_PATH/configure -device neo -verbose -build-qt -force-build-qt&lt;br /&gt;
* bin/qbuild image&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This forces building qt as well which resolved problems with the qbuild test using all the system ram.&lt;br /&gt;
&lt;br /&gt;
== Booting into Qtopia ==&lt;br /&gt;
&lt;br /&gt;
Now shutdown the FreeRunner&lt;br /&gt;
&lt;br /&gt;
shutdown -h now&lt;br /&gt;
&lt;br /&gt;
Log into U-Boot in the NAND Flash to boot from the MicroSD card: (instructions from [[Booting the Neo FreeRunner]])&lt;br /&gt;
&lt;br /&gt;
* Press and hold Power button&lt;br /&gt;
* Then while still pressing the Power button, press and hold AUX button for 5 to 8 seconds.&lt;br /&gt;
* A boot menu will appear.&lt;br /&gt;
* Press the AUX button to select &amp;quot;[[Boot from sd card|Boot from MicroSD]]&amp;quot; and then press the Power button to execute.&lt;br /&gt;
&lt;br /&gt;
Qtopia should now boot.&lt;br /&gt;
&lt;br /&gt;
'''''Note:''''' you may get a kernel panic which says that &amp;quot;optional features not supported&amp;quot;.  If this is the case, boot back into 2007.2 and run&lt;br /&gt;
&lt;br /&gt;
umount /dev/mmcblk0p2&lt;br /&gt;
fsck.ext3.e2fsprogs /dev/mmcblk0p2&lt;br /&gt;
&lt;br /&gt;
This will clean up the file system and clear recovery flags in ext3 that ext2 does not support, then try booting from the MicroSD again.&lt;br /&gt;
&lt;br /&gt;
== Internationalization ==&lt;br /&gt;
&lt;br /&gt;
Qtopia comes with support for German and American English, and users from other countries will find that Qtopia's predictive keyboard makes writing in another language near impossible. One way to disable the predictive keyboard is to simply replace /opt/Qtopia/etc/dict/en_US/common.dawg and words.dawg with empty files (after backing them up). Qtopia normally looks in these files for words to suggest, and if it doesn't find any words that fit, it simply shows what you actually wrote.&lt;br /&gt;
&lt;br /&gt;
Adding characters to the keyboard requires modifications to the source code, as described [http://www.qtopia.net/modules/newbb_plus/viewtopic.php?topic_id=512&amp;amp;forum=16 here].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Suspend /Resume ==&lt;br /&gt;
It seems that suspend/resume only works when the FreeRunner has been connected to a powersource (only a few seconds if sufficient). If you boot from battery, it will never suspend until you have plugged it in at least for a couple of seconds.&lt;br /&gt;
&lt;br /&gt;
== Bugs ==&lt;br /&gt;
&lt;br /&gt;
See [http://trolltech.org/developer/task-tracker/index_html?method=front Trolltech's tracker] ([http://trolltech.org/developer/task-tracker/index_html?method=advsearch&amp;amp;searchstr=&amp;amp;bugs=on&amp;amp;sugs=on&amp;amp;product=2&amp;amp;functionalarea=&amp;amp;versionfound=&amp;amp;versionfixed=&amp;amp;priority=-1&amp;amp;status=0&amp;amp;resolution=-1 Qtopia Tracker]).&lt;br /&gt;
&lt;br /&gt;
Bug reports should be sent to qt-bugs@trolltech.com or by web form at http://trolltech.com/bugreport-form.&lt;br /&gt;
&lt;br /&gt;
== Bugs in 4.4.1 ==&lt;br /&gt;
* Boot and Shutdown Splash will not work because splash-write was not compiled into Busybox&lt;br /&gt;
* Timezone &amp;amp; time on latest Qt 4.4.1&lt;br /&gt;
* The first item in a list is missing the top half&lt;br /&gt;
&lt;br /&gt;
[[Category:Qtopia]]&lt;/div&gt;</summary>
		<author><name>Michaelshiloh</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Qtopia_/_Qt_Extended_on_FreeRunner</id>
		<title>Qtopia / Qt Extended on FreeRunner</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Qtopia_/_Qt_Extended_on_FreeRunner"/>
				<updated>2008-12-25T03:06:26Z</updated>
		
		<summary type="html">&lt;p&gt;Michaelshiloh: /* Simplified complete procedure using Ubuntu desktop and micro SD to USB adapter */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|Qtopia_on_FreeRunner}}&lt;br /&gt;
&lt;br /&gt;
This page provides instructions on how to install Qtopia/Qt Extended (proper, not the [[ASU]] or [[QtopiaOnX11]] efforts) on the GTA02 (FreeRunner) phone.  It is similar to the [[Qtopia on Neo1973]] page.&lt;br /&gt;
&lt;br /&gt;
{|align=right&lt;br /&gt;
|__TOC__&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Current status ==&lt;br /&gt;
&lt;br /&gt;
On 31 October 2008, Trolltech released the [http://qtextended.org/modules/mydownloads/visit.php?lid=98 Qtopia ROM flash image containing the rootfs] for the Openmoko Neo FreeRunner (gta02) containing the Qtopia 4.4.2 release (GPL version). This runs on the [http://qtextended.org/modules/mydownloads/visit.php?lid=91 mwebster ROM flash image containing the kernel]. At release time, 4.4.2 &amp;amp; current mwester's kernel mismatched, please clarify the previous sentence. Hypnotize has released [http://lists.openmoko.org/pipermail/community/2008-November/035245.html Qt Extended 4.4.2 images for the Neo FreeRunner] that work better.&lt;br /&gt;
&lt;br /&gt;
This image can successfully make and receive calls and text messages. It can read all contacts from the SIM card (which the updated 2007.2 does not appear to be able to do). It contains apps that appear to be more stable than the ones found in the 2007.2 image.  It has multiple input methods that appear to be more mature.  It does have a webkit based web browser and an GPS &amp;quot;Mapping Demo&amp;quot; application.&lt;br /&gt;
&lt;br /&gt;
There are other third-party GPS applications available:&lt;br /&gt;
* [http://blog.wolfman.com/articles/2008/08/27/porting-xgps-to-qtopia-for-the-freerunner xgps]&lt;br /&gt;
* [http://www.linux4.be/fr/roadmap.html RoadMap (experimental)]&lt;br /&gt;
&lt;br /&gt;
([[TangoGPS]] does not work on QtExtended, because it depends upon an Xserver)&lt;br /&gt;
&lt;br /&gt;
You can find all the Qtopia images [http://qtextended.org/modules/mydownloads/viewcat.php?cid=6 here] (including Qtextended/Qtopia 4.4 for FreeRunner and Neo1973!)&lt;br /&gt;
&lt;br /&gt;
=== What is in the latest release (QtExtended 4.4.2)? ===&lt;br /&gt;
Qtopia 4.4 has been released with the name of [http://doc.trolltech.com/qtextended4.4/release-4-4-2.html QtExtended 4.4].&lt;br /&gt;
* a [http://n2.nabble.com/qtopia-update-tp832851p832888.html browser] based on webkit&lt;br /&gt;
* [http://n2.nabble.com/-qtopia--rotate-screen--tp841805p841841.html screen rotation in the settings application] (so no automatic rotation)&lt;br /&gt;
* [http://n2.nabble.com/Echo-issue-on-OM2008.08-potentially-solved-tp791642.html noise reduction]&lt;br /&gt;
* GPS api&lt;br /&gt;
* usb net/storage switching&lt;br /&gt;
* Gtalk support&lt;br /&gt;
* [http://n2.nabble.com/forum/Permalink.jtp?root=841805&amp;amp;post=1083388&amp;amp;page=y better support for non-english languages in the keyboard]&lt;br /&gt;
&lt;br /&gt;
== Option 1: Flashing Qtopia to FreeRunner ==&lt;br /&gt;
&lt;br /&gt;
Download the image mentioned above and follow the instructions here: [[Flashing the Neo FreeRunner]]&lt;br /&gt;
&lt;br /&gt;
== Option 2: Dual-Booting between Qtopia and 2007.2 (Qtopia boots from MicroSD card) ==&lt;br /&gt;
&lt;br /&gt;
Installation Requirements:&lt;br /&gt;
&lt;br /&gt;
# SSH shell access to 2007.2 based image of the FreeRunner through USB interface or WLAN.&lt;br /&gt;
# A Desktop Linux distro (to unpack the .jffs2 image, I ran Ubuntu under VMWare)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Preparing the SD card ===&lt;br /&gt;
&lt;br /&gt;
See the [[Booting from SD#Prepare the SD card| Preparing the SD Card]] section of the [[Booting from SD]] page for partitioning and formatting instructions.  After you complete the &amp;quot;Formatting the SD Card&amp;quot; steps, return here and execute the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mount /dev/mmcblk0p1 /media/card&lt;br /&gt;
mkdir /media/card/boot&lt;br /&gt;
&lt;br /&gt;
mkdir /media/mmcblk0p2&lt;br /&gt;
mount /dev/mmcblk0p2 /media/mmcblk0p2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will set you up properly for the installation of the root filesystem and the kernel in the steps below.&lt;br /&gt;
&lt;br /&gt;
=== Installing Qtopia ===&lt;br /&gt;
&lt;br /&gt;
==== Unpacking the Qtopia Root Filesystem Image ====&lt;br /&gt;
&lt;br /&gt;
Download the Qtopia FLASH image from [[Latest Images#Qtopia images]] to your Linux box and extract its contents:&lt;br /&gt;
&lt;br /&gt;
tar xzf qtopia-4.3.2-gta02-flash-*.tgz&lt;br /&gt;
&lt;br /&gt;
You should now have two files:&lt;br /&gt;
#uImage-2.6.24+git18+9c058ff0d2641df3c36fc3300acb72078d2c41d4-r0-om-gta02.bin&lt;br /&gt;
#qtopia-4.3.2-gta02-rootfs-07172049.jffs2&lt;br /&gt;
Now, mount the root file system from the jffs2 using the commands found [[Userspace root image#Mounting the JFFS2 image on a loop back device (Block Memory MTD Emulation) |here]].  However, in the mount command, substitute the image filename for &amp;quot;/dev/mtdblock0&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==== Creating a compressed tarball ====&lt;br /&gt;
&lt;br /&gt;
Next, tar up the root filesystem:&lt;br /&gt;
&lt;br /&gt;
# tar czf qtopia-4.3.2-gta02-rootfs-07172049.tar.gz -C &amp;lt;mountpoint&amp;gt; .&lt;br /&gt;
&lt;br /&gt;
Where ''&amp;lt;mountpoint&amp;gt;'' is the location where the jff2 filesystem was mounted.  Note the space and the period after the mountpoint.&lt;br /&gt;
&lt;br /&gt;
==== Installing Root Filesystem ====&lt;br /&gt;
&lt;br /&gt;
Transfer this compressed tarball to the second partition of the MicroSD that is mounted on the FreeRunner:&lt;br /&gt;
&lt;br /&gt;
scp qtopia-4.3.2-gta02-rootfs-07172049.tar.gz root@192.168.0.202:/media/mmcblk0p2/&lt;br /&gt;
&lt;br /&gt;
Log in to your FreeRunner and unpack the root filesystem:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /media/mmcblk0p2&lt;br /&gt;
tar xzf qtopia-4.3.2-gta02-rootfs-07172049.tar.gz&lt;br /&gt;
rm qtopia-4.3.2-gta02-rootfs-07172049.tar.gz&lt;br /&gt;
rm -f /media/mmcblk0p2/boot/*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''Note:''''' the last step removes the kernel image from the second partition.  For some reason, U-Boot cannot find the uImage.bin file in the first partition if a kernel image exists in the second partition boot/ directory.&lt;br /&gt;
&lt;br /&gt;
==== Installing Kernel ====&lt;br /&gt;
&lt;br /&gt;
From your Linux box, rename &amp;lt;tt&amp;gt;uImage-2.6.24+git18+9c058ff0d2641df3c36fc3300acb72078d2c41d4-r0-om-gta02.bin&amp;lt;/tt&amp;gt; to &amp;lt;tt&amp;gt;uImage.bin&amp;lt;/tt&amp;gt; and copy it to the boot directory on the first partition of the MicroSD card.  Depending on the version of U-Boot you have installed, this may not work.  To prevent any possible issues, copy it to the &amp;lt;tt&amp;gt;/media/card&amp;lt;/tt&amp;gt; directory as well. There is plenty of room on the first partition to have &amp;lt;tt&amp;gt;uImage.bin&amp;lt;/tt&amp;gt; in both locations.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mv uImage-2.6.24+git18+9c058ff0d2641df3c36fc3300acb72078d2c41d4-r0-om-gta02.bin uImage.bin&lt;br /&gt;
scp uImage.bin root@192.168.0.202:/media/card/boot/&lt;br /&gt;
scp uImage.bin root@192.168.0.202:/media/card/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Pointing Qtopia to the SD Card ====&lt;br /&gt;
&lt;br /&gt;
Lorn Potter on the mailing lists pointed this out:&lt;br /&gt;
&lt;br /&gt;
Qtopia was designed to be run from the root partition on a flash chip, not from a removable sd card.&lt;br /&gt;
&lt;br /&gt;
You would have to edit the etc/default/Trolltech/Storage.conf file to make it forget about the sd /dev node, to be able to run it this way&lt;br /&gt;
&lt;br /&gt;
Another user's solution to this is the following:&lt;br /&gt;
&lt;br /&gt;
Edit this file: /opt/Qtopia/etc/default/Trolltech/Storage.conf&lt;br /&gt;
And change the [MountPoint0] section so it resembles this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[MountPoint0]&lt;br /&gt;
Name[] = SD Card&lt;br /&gt;
Path=/dev/mmcblk0p1&lt;br /&gt;
Removable = 0&lt;br /&gt;
Applications = 0&lt;br /&gt;
Documents = 0&lt;br /&gt;
ContentDatabase = 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Simplified complete procedure using Ubuntu computer and microSD to USB adapter ===&lt;br /&gt;
&lt;br /&gt;
This procedure was developed with:&lt;br /&gt;
&lt;br /&gt;
* Ubuntu 8.10&lt;br /&gt;
* SanDisk microSD to USB adapter&lt;br /&gt;
* Qt Extended 4.4.2 2008/10/31&lt;br /&gt;
&lt;br /&gt;
==== Prepare microSD card ====&lt;br /&gt;
&lt;br /&gt;
Create an 8 MB partition for the kernel and use the remaining space for the root file system.&lt;br /&gt;
&lt;br /&gt;
Insert microSD card into adapter, and plug adapter into Ubuntu computer. If the microSD card mounts automatically, unmount it.&lt;br /&gt;
&lt;br /&gt;
CAUTION: Make sure you know which device your microSD card is. You don't want to perform these steps on your main hard disk!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo umount /dev/sdb1&lt;br /&gt;
&lt;br /&gt;
sudo fdisk /dev/sdb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I assume you know how to use fdisk. Delete any existing partitions, then create two new partitions, the first of size +8M, the second using all remaining space. Set the file system type of the first partition to FAT16 (type '6'). Your partition table should look like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  /dev/sdb1               1           9        9040+   6  FAT16&lt;br /&gt;
  /dev/sdb2              10         984      982800   83  Linux&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Save your partition table and quit fdisk. Format the partitions appropriately:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo mkfs.vfat /dev/sdb1&lt;br /&gt;
sudo mkfs.ext3 /dev/sdb2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Get the latest version of Qtopia ====&lt;br /&gt;
&lt;br /&gt;
Visit [http://qtextended.org/modules/mydownloads/viewcat.php?cid=6:Qtopia] and get the appropriate file. The Qtopia ROM flash images contain both the file system and the kernel image:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget http://qtextended.org/modules/mydownloads/visit.php?lid=98&lt;br /&gt;
tar -zxvf qtextended-4.4.2-gta02-flash.tgz&lt;br /&gt;
cd qtextended-4.4.2-gta02-flash&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Copy the kernel image to the microSD card ====&lt;br /&gt;
&lt;br /&gt;
First mount the first partition, which is the boot partition, of the microSD card:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo mkdir /media/boot&lt;br /&gt;
sudo mount /dev/sdb1 /media/boot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Depending on your version of U-Boot, the kernel image might be expected at the root of the boot partition, or in the /boot directory. Also, the image file name might be expected to have a .bin extension, or not. We create all four variations:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo cp testing-om-gta02-20081029.uImage.bin /media/card/uImage.bin&lt;br /&gt;
sudo cp testing-om-gta02-20081029.uImage.bin /media/card/uImage&lt;br /&gt;
sudo cp testing-om-gta02-20081029.uImage.bin /media/card/boot/uImage.bin&lt;br /&gt;
sudo cp testing-om-gta02-20081029.uImage.bin /media/card/boot/uImage&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wait for data to be written to the microSD card and unmount the first partition:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sync&lt;br /&gt;
umount /dev/sdb2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Copy the jffs2 root file system to the microSD card ====&lt;br /&gt;
&lt;br /&gt;
First we need to make a fake MTD device in RAM so that we can mount the jffs2 root file system:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo modprobe mtd &lt;br /&gt;
sudo modprobe jffs2  &lt;br /&gt;
sudo modprobe mtdram total_size=59024 # default is 4 MByte - set to max.&lt;br /&gt;
sudo modprobe mtdchar &lt;br /&gt;
sudo modprobe mtdblock&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Next we're going to copy onto this fake device. Make sure there are no other MTD devices on your computer and change the device numbers below as necessary:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cat /proc/mtd&lt;br /&gt;
  dev:    size   erasesize  name&lt;br /&gt;
    mtd0: 039a4000 00020000 &amp;quot;mtdram test device&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now copy the jffs2 file system to the fake MTD device:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo dd if=qtextended-4.4.2-gta02-rootfs-10302135.jffs2 of=/dev/mtd0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create a mount point, mount the fake MTD device, and check that the contents seem right:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo mkdir /mnt/tmp&lt;br /&gt;
sudo mount -t jffs2 /dev/mtdblock0 /mnt/tmp&lt;br /&gt;
ls /mnt/tmp&lt;br /&gt;
  bin/   dev/  home/  media/  opt/   sbin/  tmp@	var/&lt;br /&gt;
  boot/  etc/  lib/   mnt/    proc/  sys/   usr/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mount the second partition of the microSD card and copy the root file system to it:&lt;br /&gt;
copy root file system to sd card using tar&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo mkdir /media/rootfs&lt;br /&gt;
sudo mount /dev/sdb2 /media/rootfs&lt;br /&gt;
cd /mnt/tmp&lt;br /&gt;
sudo tar -cf - . | (cd /media/rootfs &amp;amp;&amp;amp; sudo tar -xpvf -)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Use &amp;quot;sync&amp;quot; to make sure that all data is written to the microSD card:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sync&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Inspect contents of second partition:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  ls /media/rootfs&lt;br /&gt;
  bin/   dev/  home/  media/  opt/   sbin/  tmp@	var/&lt;br /&gt;
  boot/  etc/  lib/   mnt/    proc/  sys/   usr/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: There was a report that some versions of U-Boot cannot find the kernel image file in the first partition if a kernel image exists in the second partition boot/ directory. I have not confirmed this but there is no need for it so it seems safest to delete it now:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo rm -f /media/rootfs/boot/*&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wait for data to be written to the microSD card and unmount the second partition:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sync&lt;br /&gt;
umount /dev/sdb2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Test Qtopia ====&lt;br /&gt;
&lt;br /&gt;
Remove the microSD card from the USB adapter, install it in the Neo FreeRunner, boot into uBoot, and select the option to boot from microSD card.&lt;br /&gt;
&lt;br /&gt;
== Option 3: updating from source ==&lt;br /&gt;
&lt;br /&gt;
{{note|This will upgrade only opt/Qtopia directory, you should use opkg update/upgrade for the rest}}&lt;br /&gt;
Original Qtopia images (the distribution released by Trolltech, not ASU) are rarely released as a rootfs image, but the source code is often updated. If you want to reflash your OM with the latest version of Qtopia you might build it from sources. This has been explained in [http://lists.openmoko.org/pipermail/community/2008-August/024785.html this thread] of the community mailing list. Summing up:&lt;br /&gt;
&lt;br /&gt;
* get the latest toolchain released by trolltech: http://www.qtopia.net/modules/mydownloads/singlefile.php?lid=38 and unzip it on your PC (as root)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /&lt;br /&gt;
wget http://qtopia.net/downloads/neo/arm920t-eabi-ficgta01-toolchain.tgz&lt;br /&gt;
tar xvzf arm920t-eabi-ficgta01-toolchain.tgz&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* get the latest snapshot from trolltech: ftp://ftp.trolltech.com/qtopia/snapshots/&lt;br /&gt;
&lt;br /&gt;
Since qtopia was renamed in qtextended you could find the snapshots on http://qtextended.org/downloads/snapshots/&lt;br /&gt;
&lt;br /&gt;
*  once dowloaded untar it&lt;br /&gt;
&amp;lt;pre&amp;gt;tar xvzf qtopia-opensource-src-4.3.2-snapshot-20080806.tar.gz&amp;lt;/pre&amp;gt;&lt;br /&gt;
* make a &amp;quot;build&amp;quot; dir&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir build&lt;br /&gt;
cd build&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* configure and make:&lt;br /&gt;
&amp;lt;pre&amp;gt;../qtopia-opensource-src-4.3.2-snapshot-20080806/configure -device ficgta01&lt;br /&gt;
make&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This will take some time (couple hours). Note that the option &amp;quot;-device ficgta01&amp;quot; should work for both neo and freerunner. Then:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
will make a root directory into the ''build'' directory. There you can find an ''image'' that directory should be copied to /opt/Qtopia of your phone with scp. once done restart qpe or whole phone.&lt;br /&gt;
&lt;br /&gt;
For compiling qt-extended 4.4.2, you may need to use the following commands:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
* cd build&lt;br /&gt;
* $QTOPIA_DEPOT_PATH/configure -device neo -verbose -build-qt -force-build-qt&lt;br /&gt;
* bin/qbuild image&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This forces building qt as well which resolved problems with the qbuild test using all the system ram.&lt;br /&gt;
&lt;br /&gt;
== Booting into Qtopia ==&lt;br /&gt;
&lt;br /&gt;
Now shutdown the FreeRunner&lt;br /&gt;
&lt;br /&gt;
shutdown -h now&lt;br /&gt;
&lt;br /&gt;
Log into U-Boot in the NAND Flash to boot from the MicroSD card: (instructions from [[Booting the Neo FreeRunner]])&lt;br /&gt;
&lt;br /&gt;
* Press and hold Power button&lt;br /&gt;
* Then while still pressing the Power button, press and hold AUX button for 5 to 8 seconds.&lt;br /&gt;
* A boot menu will appear.&lt;br /&gt;
* Press the AUX button to select &amp;quot;[[Boot from sd card|Boot from MicroSD]]&amp;quot; and then press the Power button to execute.&lt;br /&gt;
&lt;br /&gt;
Qtopia should now boot.&lt;br /&gt;
&lt;br /&gt;
'''''Note:''''' you may get a kernel panic which says that &amp;quot;optional features not supported&amp;quot;.  If this is the case, boot back into 2007.2 and run&lt;br /&gt;
&lt;br /&gt;
umount /dev/mmcblk0p2&lt;br /&gt;
fsck.ext3.e2fsprogs /dev/mmcblk0p2&lt;br /&gt;
&lt;br /&gt;
This will clean up the file system and clear recovery flags in ext3 that ext2 does not support, then try booting from the MicroSD again.&lt;br /&gt;
&lt;br /&gt;
== Internationalization ==&lt;br /&gt;
&lt;br /&gt;
Qtopia comes with support for German and American English, and users from other countries will find that Qtopia's predictive keyboard makes writing in another language near impossible. One way to disable the predictive keyboard is to simply replace /opt/Qtopia/etc/dict/en_US/common.dawg and words.dawg with empty files (after backing them up). Qtopia normally looks in these files for words to suggest, and if it doesn't find any words that fit, it simply shows what you actually wrote.&lt;br /&gt;
&lt;br /&gt;
Adding characters to the keyboard requires modifications to the source code, as described [http://www.qtopia.net/modules/newbb_plus/viewtopic.php?topic_id=512&amp;amp;forum=16 here].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Suspend /Resume ==&lt;br /&gt;
It seems that suspend/resume only works when the FreeRunner has been connected to a powersource (only a few seconds if sufficient). If you boot from battery, it will never suspend until you have plugged it in at least for a couple of seconds.&lt;br /&gt;
&lt;br /&gt;
== Bugs ==&lt;br /&gt;
&lt;br /&gt;
See [http://trolltech.org/developer/task-tracker/index_html?method=front Trolltech's tracker] ([http://trolltech.org/developer/task-tracker/index_html?method=advsearch&amp;amp;searchstr=&amp;amp;bugs=on&amp;amp;sugs=on&amp;amp;product=2&amp;amp;functionalarea=&amp;amp;versionfound=&amp;amp;versionfixed=&amp;amp;priority=-1&amp;amp;status=0&amp;amp;resolution=-1 Qtopia Tracker]).&lt;br /&gt;
&lt;br /&gt;
Bug reports should be sent to qt-bugs@trolltech.com or by web form at http://trolltech.com/bugreport-form.&lt;br /&gt;
&lt;br /&gt;
== Bugs in 4.4.1 ==&lt;br /&gt;
* Boot and Shutdown Splash will not work because splash-write was not compiled into Busybox&lt;br /&gt;
* Timezone &amp;amp; time on latest Qt 4.4.1&lt;br /&gt;
* The first item in a list is missing the top half&lt;br /&gt;
&lt;br /&gt;
[[Category:Qtopia]]&lt;/div&gt;</summary>
		<author><name>Michaelshiloh</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Qtopia_/_Qt_Extended_on_FreeRunner</id>
		<title>Qtopia / Qt Extended on FreeRunner</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Qtopia_/_Qt_Extended_on_FreeRunner"/>
				<updated>2008-12-25T02:14:41Z</updated>
		
		<summary type="html">&lt;p&gt;Michaelshiloh: added section&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|Qtopia_on_FreeRunner}}&lt;br /&gt;
&lt;br /&gt;
This page provides instructions on how to install Qtopia/Qt Extended (proper, not the [[ASU]] or [[QtopiaOnX11]] efforts) on the GTA02 (FreeRunner) phone.  It is similar to the [[Qtopia on Neo1973]] page.&lt;br /&gt;
&lt;br /&gt;
{|align=right&lt;br /&gt;
|__TOC__&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Current status ==&lt;br /&gt;
&lt;br /&gt;
On 31 October 2008, Trolltech released the [http://qtextended.org/modules/mydownloads/visit.php?lid=98 Qtopia ROM flash image containing the rootfs] for the Openmoko Neo FreeRunner (gta02) containing the Qtopia 4.4.2 release (GPL version). This runs on the [http://qtextended.org/modules/mydownloads/visit.php?lid=91 mwebster ROM flash image containing the kernel]. At release time, 4.4.2 &amp;amp; current mwester's kernel mismatched, please clarify the previous sentence. Hypnotize has released [http://lists.openmoko.org/pipermail/community/2008-November/035245.html Qt Extended 4.4.2 images for the Neo FreeRunner] that work better.&lt;br /&gt;
&lt;br /&gt;
This image can successfully make and receive calls and text messages. It can read all contacts from the SIM card (which the updated 2007.2 does not appear to be able to do). It contains apps that appear to be more stable than the ones found in the 2007.2 image.  It has multiple input methods that appear to be more mature.  It does have a webkit based web browser and an GPS &amp;quot;Mapping Demo&amp;quot; application.&lt;br /&gt;
&lt;br /&gt;
There are other third-party GPS applications available:&lt;br /&gt;
* [http://blog.wolfman.com/articles/2008/08/27/porting-xgps-to-qtopia-for-the-freerunner xgps]&lt;br /&gt;
* [http://www.linux4.be/fr/roadmap.html RoadMap (experimental)]&lt;br /&gt;
&lt;br /&gt;
([[TangoGPS]] does not work on QtExtended, because it depends upon an Xserver)&lt;br /&gt;
&lt;br /&gt;
You can find all the Qtopia images [http://qtextended.org/modules/mydownloads/viewcat.php?cid=6 here] (including Qtextended/Qtopia 4.4 for FreeRunner and Neo1973!)&lt;br /&gt;
&lt;br /&gt;
=== What is in the latest release (QtExtended 4.4.2)? ===&lt;br /&gt;
Qtopia 4.4 has been released with the name of [http://doc.trolltech.com/qtextended4.4/release-4-4-2.html QtExtended 4.4].&lt;br /&gt;
* a [http://n2.nabble.com/qtopia-update-tp832851p832888.html browser] based on webkit&lt;br /&gt;
* [http://n2.nabble.com/-qtopia--rotate-screen--tp841805p841841.html screen rotation in the settings application] (so no automatic rotation)&lt;br /&gt;
* [http://n2.nabble.com/Echo-issue-on-OM2008.08-potentially-solved-tp791642.html noise reduction]&lt;br /&gt;
* GPS api&lt;br /&gt;
* usb net/storage switching&lt;br /&gt;
* Gtalk support&lt;br /&gt;
* [http://n2.nabble.com/forum/Permalink.jtp?root=841805&amp;amp;post=1083388&amp;amp;page=y better support for non-english languages in the keyboard]&lt;br /&gt;
&lt;br /&gt;
== Option 1: Flashing Qtopia to FreeRunner ==&lt;br /&gt;
&lt;br /&gt;
Download the image mentioned above and follow the instructions here: [[Flashing the Neo FreeRunner]]&lt;br /&gt;
&lt;br /&gt;
== Option 2: Dual-Booting between Qtopia and 2007.2 (Qtopia boots from MicroSD card) ==&lt;br /&gt;
&lt;br /&gt;
Installation Requirements:&lt;br /&gt;
&lt;br /&gt;
# SSH shell access to 2007.2 based image of the FreeRunner through USB interface or WLAN.&lt;br /&gt;
# A Desktop Linux distro (to unpack the .jffs2 image, I ran Ubuntu under VMWare)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Preparing the SD card ===&lt;br /&gt;
&lt;br /&gt;
See the [[Booting from SD#Prepare the SD card| Preparing the SD Card]] section of the [[Booting from SD]] page for partitioning and formatting instructions.  After you complete the &amp;quot;Formatting the SD Card&amp;quot; steps, return here and execute the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mount /dev/mmcblk0p1 /media/card&lt;br /&gt;
mkdir /media/card/boot&lt;br /&gt;
&lt;br /&gt;
mkdir /media/mmcblk0p2&lt;br /&gt;
mount /dev/mmcblk0p2 /media/mmcblk0p2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will set you up properly for the installation of the root filesystem and the kernel in the steps below.&lt;br /&gt;
&lt;br /&gt;
=== Installing Qtopia ===&lt;br /&gt;
&lt;br /&gt;
==== Unpacking the Qtopia Root Filesystem Image ====&lt;br /&gt;
&lt;br /&gt;
Download the Qtopia FLASH image from [[Latest Images#Qtopia images]] to your Linux box and extract its contents:&lt;br /&gt;
&lt;br /&gt;
tar xzf qtopia-4.3.2-gta02-flash-*.tgz&lt;br /&gt;
&lt;br /&gt;
You should now have two files:&lt;br /&gt;
#uImage-2.6.24+git18+9c058ff0d2641df3c36fc3300acb72078d2c41d4-r0-om-gta02.bin&lt;br /&gt;
#qtopia-4.3.2-gta02-rootfs-07172049.jffs2&lt;br /&gt;
Now, mount the root file system from the jffs2 using the commands found [[Userspace root image#Mounting the JFFS2 image on a loop back device (Block Memory MTD Emulation) |here]].  However, in the mount command, substitute the image filename for &amp;quot;/dev/mtdblock0&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==== Creating a compressed tarball ====&lt;br /&gt;
&lt;br /&gt;
Next, tar up the root filesystem:&lt;br /&gt;
&lt;br /&gt;
# tar czf qtopia-4.3.2-gta02-rootfs-07172049.tar.gz -C &amp;lt;mountpoint&amp;gt; .&lt;br /&gt;
&lt;br /&gt;
Where ''&amp;lt;mountpoint&amp;gt;'' is the location where the jff2 filesystem was mounted.  Note the space and the period after the mountpoint.&lt;br /&gt;
&lt;br /&gt;
==== Installing Root Filesystem ====&lt;br /&gt;
&lt;br /&gt;
Transfer this compressed tarball to the second partition of the MicroSD that is mounted on the FreeRunner:&lt;br /&gt;
&lt;br /&gt;
scp qtopia-4.3.2-gta02-rootfs-07172049.tar.gz root@192.168.0.202:/media/mmcblk0p2/&lt;br /&gt;
&lt;br /&gt;
Log in to your FreeRunner and unpack the root filesystem:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /media/mmcblk0p2&lt;br /&gt;
tar xzf qtopia-4.3.2-gta02-rootfs-07172049.tar.gz&lt;br /&gt;
rm qtopia-4.3.2-gta02-rootfs-07172049.tar.gz&lt;br /&gt;
rm -f /media/mmcblk0p2/boot/*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''Note:''''' the last step removes the kernel image from the second partition.  For some reason, U-Boot cannot find the uImage.bin file in the first partition if a kernel image exists in the second partition boot/ directory.&lt;br /&gt;
&lt;br /&gt;
==== Installing Kernel ====&lt;br /&gt;
&lt;br /&gt;
From your Linux box, rename &amp;lt;tt&amp;gt;uImage-2.6.24+git18+9c058ff0d2641df3c36fc3300acb72078d2c41d4-r0-om-gta02.bin&amp;lt;/tt&amp;gt; to &amp;lt;tt&amp;gt;uImage.bin&amp;lt;/tt&amp;gt; and copy it to the boot directory on the first partition of the MicroSD card.  Depending on the version of U-Boot you have installed, this may not work.  To prevent any possible issues, copy it to the &amp;lt;tt&amp;gt;/media/card&amp;lt;/tt&amp;gt; directory as well. There is plenty of room on the first partition to have &amp;lt;tt&amp;gt;uImage.bin&amp;lt;/tt&amp;gt; in both locations.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mv uImage-2.6.24+git18+9c058ff0d2641df3c36fc3300acb72078d2c41d4-r0-om-gta02.bin uImage.bin&lt;br /&gt;
scp uImage.bin root@192.168.0.202:/media/card/boot/&lt;br /&gt;
scp uImage.bin root@192.168.0.202:/media/card/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Pointing Qtopia to the SD Card ====&lt;br /&gt;
&lt;br /&gt;
Lorn Potter on the mailing lists pointed this out:&lt;br /&gt;
&lt;br /&gt;
Qtopia was designed to be run from the root partition on a flash chip, not from a removable sd card.&lt;br /&gt;
&lt;br /&gt;
You would have to edit the etc/default/Trolltech/Storage.conf file to make it forget about the sd /dev node, to be able to run it this way&lt;br /&gt;
&lt;br /&gt;
Another user's solution to this is the following:&lt;br /&gt;
&lt;br /&gt;
Edit this file: /opt/Qtopia/etc/default/Trolltech/Storage.conf&lt;br /&gt;
And change the [MountPoint0] section so it resembles this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[MountPoint0]&lt;br /&gt;
Name[] = SD Card&lt;br /&gt;
Path=/dev/mmcblk0p1&lt;br /&gt;
Removable = 0&lt;br /&gt;
Applications = 0&lt;br /&gt;
Documents = 0&lt;br /&gt;
ContentDatabase = 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Simplified complete procedure using Ubuntu desktop and micro SD to USB adapter ===&lt;br /&gt;
&lt;br /&gt;
== Option 3: updating from source ==&lt;br /&gt;
&lt;br /&gt;
{{note|This will upgrade only opt/Qtopia directory, you should use opkg update/upgrade for the rest}}&lt;br /&gt;
Original Qtopia images (the distribution released by Trolltech, not ASU) are rarely released as a rootfs image, but the source code is often updated. If you want to reflash your OM with the latest version of Qtopia you might build it from sources. This has been explained in [http://lists.openmoko.org/pipermail/community/2008-August/024785.html this thread] of the community mailing list. Summing up:&lt;br /&gt;
&lt;br /&gt;
* get the latest toolchain released by trolltech: http://www.qtopia.net/modules/mydownloads/singlefile.php?lid=38 and unzip it on your PC (as root)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /&lt;br /&gt;
wget http://qtopia.net/downloads/neo/arm920t-eabi-ficgta01-toolchain.tgz&lt;br /&gt;
tar xvzf arm920t-eabi-ficgta01-toolchain.tgz&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* get the latest snapshot from trolltech: ftp://ftp.trolltech.com/qtopia/snapshots/&lt;br /&gt;
&lt;br /&gt;
Since qtopia was renamed in qtextended you could find the snapshots on http://qtextended.org/downloads/snapshots/&lt;br /&gt;
&lt;br /&gt;
*  once dowloaded untar it&lt;br /&gt;
&amp;lt;pre&amp;gt;tar xvzf qtopia-opensource-src-4.3.2-snapshot-20080806.tar.gz&amp;lt;/pre&amp;gt;&lt;br /&gt;
* make a &amp;quot;build&amp;quot; dir&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir build&lt;br /&gt;
cd build&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* configure and make:&lt;br /&gt;
&amp;lt;pre&amp;gt;../qtopia-opensource-src-4.3.2-snapshot-20080806/configure -device ficgta01&lt;br /&gt;
make&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This will take some time (couple hours). Note that the option &amp;quot;-device ficgta01&amp;quot; should work for both neo and freerunner. Then:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
will make a root directory into the ''build'' directory. There you can find an ''image'' that directory should be copied to /opt/Qtopia of your phone with scp. once done restart qpe or whole phone.&lt;br /&gt;
&lt;br /&gt;
For compiling qt-extended 4.4.2, you may need to use the following commands:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
* cd build&lt;br /&gt;
* $QTOPIA_DEPOT_PATH/configure -device neo -verbose -build-qt -force-build-qt&lt;br /&gt;
* bin/qbuild image&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This forces building qt as well which resolved problems with the qbuild test using all the system ram.&lt;br /&gt;
&lt;br /&gt;
== Booting into Qtopia ==&lt;br /&gt;
&lt;br /&gt;
Now shutdown the FreeRunner&lt;br /&gt;
&lt;br /&gt;
shutdown -h now&lt;br /&gt;
&lt;br /&gt;
Log into U-Boot in the NAND Flash to boot from the MicroSD card: (instructions from [[Booting the Neo FreeRunner]])&lt;br /&gt;
&lt;br /&gt;
* Press and hold Power button&lt;br /&gt;
* Then while still pressing the Power button, press and hold AUX button for 5 to 8 seconds.&lt;br /&gt;
* A boot menu will appear.&lt;br /&gt;
* Press the AUX button to select &amp;quot;[[Boot from sd card|Boot from MicroSD]]&amp;quot; and then press the Power button to execute.&lt;br /&gt;
&lt;br /&gt;
Qtopia should now boot.&lt;br /&gt;
&lt;br /&gt;
'''''Note:''''' you may get a kernel panic which says that &amp;quot;optional features not supported&amp;quot;.  If this is the case, boot back into 2007.2 and run&lt;br /&gt;
&lt;br /&gt;
umount /dev/mmcblk0p2&lt;br /&gt;
fsck.ext3.e2fsprogs /dev/mmcblk0p2&lt;br /&gt;
&lt;br /&gt;
This will clean up the file system and clear recovery flags in ext3 that ext2 does not support, then try booting from the MicroSD again.&lt;br /&gt;
&lt;br /&gt;
== Internationalization ==&lt;br /&gt;
&lt;br /&gt;
Qtopia comes with support for German and American English, and users from other countries will find that Qtopia's predictive keyboard makes writing in another language near impossible. One way to disable the predictive keyboard is to simply replace /opt/Qtopia/etc/dict/en_US/common.dawg and words.dawg with empty files (after backing them up). Qtopia normally looks in these files for words to suggest, and if it doesn't find any words that fit, it simply shows what you actually wrote.&lt;br /&gt;
&lt;br /&gt;
Adding characters to the keyboard requires modifications to the source code, as described [http://www.qtopia.net/modules/newbb_plus/viewtopic.php?topic_id=512&amp;amp;forum=16 here].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Suspend /Resume ==&lt;br /&gt;
It seems that suspend/resume only works when the FreeRunner has been connected to a powersource (only a few seconds if sufficient). If you boot from battery, it will never suspend until you have plugged it in at least for a couple of seconds.&lt;br /&gt;
&lt;br /&gt;
== Bugs ==&lt;br /&gt;
&lt;br /&gt;
See [http://trolltech.org/developer/task-tracker/index_html?method=front Trolltech's tracker] ([http://trolltech.org/developer/task-tracker/index_html?method=advsearch&amp;amp;searchstr=&amp;amp;bugs=on&amp;amp;sugs=on&amp;amp;product=2&amp;amp;functionalarea=&amp;amp;versionfound=&amp;amp;versionfixed=&amp;amp;priority=-1&amp;amp;status=0&amp;amp;resolution=-1 Qtopia Tracker]).&lt;br /&gt;
&lt;br /&gt;
Bug reports should be sent to qt-bugs@trolltech.com or by web form at http://trolltech.com/bugreport-form.&lt;br /&gt;
&lt;br /&gt;
== Bugs in 4.4.1 ==&lt;br /&gt;
* Boot and Shutdown Splash will not work because splash-write was not compiled into Busybox&lt;br /&gt;
* Timezone &amp;amp; time on latest Qt 4.4.1&lt;br /&gt;
* The first item in a list is missing the top half&lt;br /&gt;
&lt;br /&gt;
[[Category:Qtopia]]&lt;/div&gt;</summary>
		<author><name>Michaelshiloh</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/File:Nokia-charging-stand.jpg</id>
		<title>File:Nokia-charging-stand.jpg</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/File:Nokia-charging-stand.jpg"/>
				<updated>2008-10-14T18:28:32Z</updated>
		
		<summary type="html">&lt;p&gt;Michaelshiloh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Charger for Nokia BL-5C. There are several important points to note:&lt;br /&gt;
&lt;br /&gt;
1. This is just a charging stand and does not include a charger&lt;br /&gt;
2. No one has actually tried using this&lt;br /&gt;
&lt;br /&gt;
[[Category:Battery]]&lt;/div&gt;</summary>
		<author><name>Michaelshiloh</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Neo_FreeRunner_Battery</id>
		<title>Neo FreeRunner Battery</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Neo_FreeRunner_Battery"/>
				<updated>2008-10-12T16:34:21Z</updated>
		
		<summary type="html">&lt;p&gt;Michaelshiloh: /* GTA02 1200 mAh Smart Battery */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Neo FreeRunner Menu}}&lt;br /&gt;
=== GTA02 1200 mAh Smart Battery ===&lt;br /&gt;
&lt;br /&gt;
*Internally, uses the SANYO 1200mAh cell (note that the Sanyo cell by itself does not have the Coulomb-counter and thus can not be used as a replacement for the Neo FreeRunner battery)&lt;br /&gt;
*Battery Technical information: [http://people.openmoko.org/tony_tu/GTA02/hardware/GTA02/CT-GTA02.pdf Detailed Battery Information]&lt;br /&gt;
&lt;br /&gt;
* 1200mAh Smart Battery with Coulomb-counter and protection circuit&lt;br /&gt;
* The Smart Battery keeps track of maximum and current capacity for precise prediction of remaining battery power and time until shutdown, based on actual power dissipation.&lt;br /&gt;
&lt;br /&gt;
For more information, see the GTA01 battery info at [[Neo1973 Battery]]&lt;br /&gt;
&lt;br /&gt;
=== Notes about expected battery life ===&lt;br /&gt;
Battery life is a work in progress. The power saving software is in a very rudimentary state. At the moment 12h is about the most (note though a [http://lists.openmoko.org/pipermail/community/2008-July/020339.html recent result of at least 21h], mostly in suspend, with multiple short wakeups, on the predecessor device GTA01). A week standby and 6 hours talk, 20 hours mp3 might be attainable when power saving software is complete.&lt;br /&gt;
&lt;br /&gt;
== Known Issues ==&lt;br /&gt;
&lt;br /&gt;
=== Make sure your battery never discharges completely. ===&lt;br /&gt;
&lt;br /&gt;
This is an issue because the internal charging circuitry can not be turned on until the FreeRunner has booted, and booting through USB power alone does not work.&lt;br /&gt;
&lt;br /&gt;
==== What to do if your battery has become completely discharged ====&lt;br /&gt;
&lt;br /&gt;
See the workarounds [[Neo_FreeRunner_Hardware_Issues#Can.27t_boot_with_discharged_or_missing_battery|here]].&lt;br /&gt;
&lt;br /&gt;
==== More tricks ====&lt;br /&gt;
&lt;br /&gt;
''Q: Does anyone know WHY it don't charge when it is off? My logic says that it is very important to have the option charge the battery when it is flat.''&lt;br /&gt;
&lt;br /&gt;
A: I can't give you a simple answer. Charging is controlled by the PCF50633 &lt;br /&gt;
chip, based on configuration values that are written to it by u-boot, &lt;br /&gt;
Linux, and userspace programs. Some of these settings are preserved &lt;br /&gt;
across a power-cycle (the PCF50633 has a small backup battery that's &lt;br /&gt;
also used to keep the RTC running) so the behavior at startup depends on &lt;br /&gt;
the software that you used during your last session.&lt;br /&gt;
&lt;br /&gt;
Another complication is that some Freerunners are capable of starting up &lt;br /&gt;
without a battery while others are not (possibly due to different &lt;br /&gt;
capacitor values on the internal power rails).&lt;br /&gt;
&lt;br /&gt;
I can give a few hints:&lt;br /&gt;
* The current (Sep. 2nd, 2008) u-boot has a bug that means it will not properly charge from the wall charger. Try a USB cable into a PC instead.&lt;br /&gt;
* Try booting through NOR u-boot instead (hold aux and then power) with both the wall charger or a 500mA USB connection, then try booting Linux.&lt;br /&gt;
* Try to boot into the NAND u-boot menu (hold power and then aux) and then select &amp;quot;power off&amp;quot;. This may leave the device in a state were it will charge. Wait 15 minutes and then try to boot Linux.&lt;br /&gt;
* If the device shuts off during one of the above attempts, let it sit for a few minutes and then try that same item once again&lt;br /&gt;
&lt;br /&gt;
Kudos to Mike Montour on the&lt;br /&gt;
[http://lists.openmoko.org/pipermail/community/2008-September/029243.html  Community mailing list].&lt;br /&gt;
&lt;br /&gt;
== Compatible Replacement Batteries ==&lt;br /&gt;
&lt;br /&gt;
Other known FreeRunner-compatible batteries include the BL-series (BL-4X, BL-5X) from Nokia, and their third-party equivalents.&lt;br /&gt;
These may not work to revive a device and may not report charge information.&lt;br /&gt;
It is probably a good idea to check that your battery is not greater than the stock battery's voltage of 3.7V (the above suggests that 4.5VDC should be fine) unless you know what you are doing.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
!Battery Model&lt;br /&gt;
!Capacity (mAh)&lt;br /&gt;
!Charge info reported&lt;br /&gt;
!Notes&lt;br /&gt;
|-&lt;br /&gt;
|NOKIA BL-4&lt;br /&gt;
|&lt;br /&gt;
|no&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|NOKIA BL-4C&lt;br /&gt;
|750&lt;br /&gt;
|no&lt;br /&gt;
|Slightly thinner than original.&lt;br /&gt;
|-&lt;br /&gt;
|NOKIA BL-5B&lt;br /&gt;
|760/890&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|NOKIA BL-5C&lt;br /&gt;
|950&lt;br /&gt;
|no&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|NOKIA BL-6C&lt;br /&gt;
|1070&lt;br /&gt;
|no&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|NOKIA BR-6C&lt;br /&gt;
|?&lt;br /&gt;
|no&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Alien Charging of Battery ==&lt;br /&gt;
&lt;br /&gt;
Nokia devices (phones and stand-alone chargers) usually will not charge&lt;br /&gt;
non-Nokia batteries, most likely because they can't be sure they have&lt;br /&gt;
the correct charging parameters (and of course Nokia isn't interested in supporting use of alien batteries with their phones).&lt;br /&gt;
&lt;br /&gt;
Most after-market or no-name brands of Nokia-compatible chargers don't&lt;br /&gt;
test the make of the battery, most likely because adding the capability&lt;br /&gt;
to perform this test would add to the cost of the charger and limit it's universal character (that's not the interest of second source manufacturers).&lt;br /&gt;
&lt;br /&gt;
Thus:&lt;br /&gt;
* You can use a Nokia or Nokia-compatible BL-4C, BL-5C, or BL-6C in the Neo&lt;br /&gt;
* You can charge the Neo battery in a Nokia-compatible charger that is not Nokia branded&lt;br /&gt;
* You can NOT charge the Neo battery in a Nokia branded phone or charger&lt;br /&gt;
&lt;br /&gt;
For more information about USB battery chargers that can be used with the Neo FreeRunner see&lt;br /&gt;
{{main|USB charger}}&lt;br /&gt;
&lt;br /&gt;
== DIY external battery pack from a Minty case ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Mintyboost:'''&lt;br /&gt;
&lt;br /&gt;
Charge from a couple of AA batteries: [http://www.ladyada.net/make/mintyboost/ Minty Boost!], [http://www.millions.ca/~stacy/mintyboost/ report on a Neo FreeRunner application].&lt;br /&gt;
&lt;br /&gt;
Adding the 47k resistor to the minty boost so that the Freerunner fast charges at 1A is a poor idea for a couple reasons, the biggest one being that the minty boost can't supply 1A the max is 600mA. as far as I know, there is no magic resistor to identify a 500mA charger to the Freerunner, it depends on USB host  telling it that it can provide 500mA. Second, the ID pin is in the USB micro connector, so you would either need to put a micro connector on your minty boost (with the correct resistor installed) or use a hacked cable.&lt;br /&gt;
&lt;br /&gt;
Even if the Linear Technology step up voltage converter is supposed to be able to do 600mA, the AA cells seem to have a problem with supplying 500mA. They get a little toasty :-). One powerpack built using D cells doesn't seem to have any issues with supplying 500mA.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Battery]]&lt;br /&gt;
[[Category:Neo FreeRunner Hardware]]&lt;/div&gt;</summary>
		<author><name>Michaelshiloh</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/FreeRunner/Buttons_and_LEDs</id>
		<title>FreeRunner/Buttons and LEDs</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/FreeRunner/Buttons_and_LEDs"/>
				<updated>2008-10-12T00:06:12Z</updated>
		
		<summary type="html">&lt;p&gt;Michaelshiloh: /* Blink LEDs by user-definable beat */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is the Software specification for the Openmoko Neo FreeRunner Button and LEDs.&lt;br /&gt;
&lt;br /&gt;
{{InProgress}}&lt;br /&gt;
&lt;br /&gt;
=Taxonomy=&lt;br /&gt;
&lt;br /&gt;
==What's currently implemented==&lt;br /&gt;
 /sys/devices/platform/gta02-led.0/leds/gta02-aux:red/&lt;br /&gt;
 /sys/devices/platform/gta02-led.0/leds/gta02-power:blue/&lt;br /&gt;
 /sys/devices/platform/gta02-led.0/leds/gta02-power:orange/&lt;br /&gt;
Those are all userspace directories for controlling the LEDs. echo 0 &amp;gt; brightness will turn the LED off. echo 1 &amp;gt; brightness will turn it on.&lt;br /&gt;
trigger currently does nothing.&lt;br /&gt;
&lt;br /&gt;
==Buttons==&lt;br /&gt;
* AUX = Button on the left side of the device, upper area&lt;br /&gt;
* POWER = Button on the right side of the device, center area (right below the USB socket)&lt;br /&gt;
&lt;br /&gt;
==Leds==&lt;br /&gt;
{| border=1 cellspacing=0 cellpadding=5&lt;br /&gt;
| EVENT&lt;br /&gt;
|style=&amp;quot;background:#FF0000;color:white;&amp;quot;| '''red'''&lt;br /&gt;
| behind AUX button&lt;br /&gt;
|-&lt;br /&gt;
| HEARTBEAT&lt;br /&gt;
|style=&amp;quot;background:#FF8040;color:white;&amp;quot;| '''orange'''&lt;br /&gt;
| behind POWER button&lt;br /&gt;
|-&lt;br /&gt;
| WIRELESS / BLUETOOTH&lt;br /&gt;
|style=&amp;quot;background:#0000FF;color:white;&amp;quot;| '''blue'''&lt;br /&gt;
| behind POWER button&lt;br /&gt;
|-&lt;br /&gt;
| MIXING TWO LEDS&lt;br /&gt;
|style=&amp;quot;background:#80409F;color:white;&amp;quot;| '''purple'''&lt;br /&gt;
| behind POWER button if turning on the blue and the orang buttons together&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Modes==&lt;br /&gt;
* OFF = Device has no power or has been shutdown&lt;br /&gt;
* ON = Device is fully powered&lt;br /&gt;
* ON+CHARGING = Device is fully powered and has been connected to a USB host or Openmoko charger.&lt;br /&gt;
* LOCK = Device is fully powered, but has screen lock displayed&lt;br /&gt;
* SUSPEND = Device has been suspended to low-power mode&lt;br /&gt;
&lt;br /&gt;
=Basic Button Usage=&lt;br /&gt;
&lt;br /&gt;
This is grouped by mode:&lt;br /&gt;
&lt;br /&gt;
==Mode: OFF==&lt;br /&gt;
&lt;br /&gt;
* To switch the device on: Press and hold POWER until the boot logo appears.&lt;br /&gt;
* To enter the &amp;quot;normal&amp;quot; (NAND) boot menu: Press and hold POWER, one second later press and hold AUX.&lt;br /&gt;
* To enter the &amp;quot;rescue&amp;quot; (NOR) boot menu: Press and hold AUX, then press and hold POWER.&lt;br /&gt;
&lt;br /&gt;
==Mode: ON==&lt;br /&gt;
&lt;br /&gt;
* To suspend the device: Press POWER.&lt;br /&gt;
* To shut down the device: Press and hold POWER for 4 seconds. If the device hangs, press and hold POWER for 8 seconds. If it still hangs, remove the battery and disconnect from USB.&lt;br /&gt;
* To go to the home screen: Press AUX.&lt;br /&gt;
* To display the profile screen: Press and hold AUX until it appears.&lt;br /&gt;
&lt;br /&gt;
==Mode: SUSPEND==&lt;br /&gt;
&lt;br /&gt;
* To wakeup the device: Press POWER.&lt;br /&gt;
&lt;br /&gt;
=Basic LED Usage=&lt;br /&gt;
&lt;br /&gt;
LEDs are very useful in broadcasting valuable basic status information to the user in a way that the user does not have to unlock the device, enable the screen or turning the screen saver off and subsequently search the screen for basic status information.&lt;br /&gt;
&lt;br /&gt;
''This is grouped by mode:''&lt;br /&gt;
&lt;br /&gt;
==Mode: OFF==&lt;br /&gt;
&lt;br /&gt;
* All LEDs will be turned off.&lt;br /&gt;
&lt;br /&gt;
==Mode: ON==&lt;br /&gt;
&lt;br /&gt;
* HEARTBEAT will emit a short blink every 4 seconds.&lt;br /&gt;
* If Bluetooth is powered on, WIRELESS will emit a short blink every 2 seconds.&lt;br /&gt;
* If Wifi is powered on, WIRELESS will emit a long blink every 2 seconds.&lt;br /&gt;
* If Bluetooth and Wifi are powered on, WIRELESS will be lit continuosly.&lt;br /&gt;
&lt;br /&gt;
==Mode: ON+CHARGING==&lt;br /&gt;
&lt;br /&gt;
''Same as ON, with the exception of''&lt;br /&gt;
* HEARTBEAT will increase blinking as the charge level of the battery increases.&lt;br /&gt;
* HEARTBEAT will be continuosly lit, if the battery has been fully charged.&lt;br /&gt;
&lt;br /&gt;
==Mode: SUSPEND==&lt;br /&gt;
&lt;br /&gt;
* All LEDs will be turned off.&lt;br /&gt;
&lt;br /&gt;
=Advanced Button/LED Usage=&lt;br /&gt;
&lt;br /&gt;
* In ON-Mode, EVENT will blink every 2 seconds if there's an event that needs your attention.&lt;br /&gt;
* The more events, the faster EVENT will blink.&lt;br /&gt;
* Pressing AUX will acknowledge the event with the topmost priority and display it to you.&lt;br /&gt;
* EVENT will stop to blink once all events have been acknowledged.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=A first rules implementation=&lt;br /&gt;
A C implementation of these rules has been [http://lists.openmoko.org/pipermail/openmoko-devel/2008-July/003458.html done by smurfy - phil] and is available at http://www.smurfy.de/files/neo/openmoko-led-v1.tar.gz&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Implementations of other LED behaviors =&lt;br /&gt;
&lt;br /&gt;
== Blink LEDs to a user-definable rhythm ==&lt;br /&gt;
&lt;br /&gt;
A Python Script For Blinking Leds By Beats. This script reads beats from a file and blinks FreeRunners LEDs accordingly.&lt;br /&gt;
 &lt;br /&gt;
File format is human readable text, consisting of a simple sequence of integer quartet (4 numbers).  The first number representing status of blue power-led, second means status of orange power-led and third means status of red aux-led. 0=OFF, 1=ON. (If blue=1 and orange=1 then power=lila. This has nothing to do with this python script or this file format.) The last number represents the duration in milliseconds to hold that situation of leds.  Any non digit characters in the file count as a separators between numbers, but are otherwise ignored.&lt;br /&gt;
&lt;br /&gt;
It requires packages python-core and python-re from opkg.&lt;br /&gt;
==== Led blinker ====&lt;br /&gt;
&lt;br /&gt;
 #!/usr/bin/python&lt;br /&gt;
 &amp;quot;&amp;quot;&amp;quot;Led Blinker Player&lt;br /&gt;
 &lt;br /&gt;
 Usage: python leds.py [filename]&lt;br /&gt;
 &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
 import sys&lt;br /&gt;
 import time&lt;br /&gt;
 import re&lt;br /&gt;
 &lt;br /&gt;
 def loadFromTextFile(filename):&lt;br /&gt;
    infile = open(filename)&lt;br /&gt;
    contents = infile.read()&lt;br /&gt;
    return re.findall(&amp;quot;(\d+)\D*(\d+)\D*(\d+)\D*(\d+)&amp;quot;, contents)&lt;br /&gt;
 &lt;br /&gt;
 def playNote(blue_value, orange_value, red_value, duration):&lt;br /&gt;
    blue.write(str(blue_value) + &amp;quot;\n&amp;quot;)&lt;br /&gt;
    orange.write(str(orange_value) + &amp;quot;\n&amp;quot;)&lt;br /&gt;
    red.write(str(red_value) + &amp;quot;\n&amp;quot;)&lt;br /&gt;
    time.sleep(float(duration) / 1000.0)&lt;br /&gt;
 &lt;br /&gt;
 def playFile(filename):&lt;br /&gt;
    global blue, orange, red &lt;br /&gt;
    notes = loadFromTextFile(filename)&lt;br /&gt;
    blue = open(&amp;quot;/sys/class/leds/gta02-power:blue/brightness&amp;quot;, &amp;quot;w&amp;quot;, 1)&lt;br /&gt;
    orange = open(&amp;quot;/sys/class/leds/gta02-power:orange/brightness&amp;quot;, &amp;quot;w&amp;quot;, 1)&lt;br /&gt;
    red = open(&amp;quot;/sys/class/leds/gta02-aux:red/brightness&amp;quot;, &amp;quot;w&amp;quot;, 1)&lt;br /&gt;
 &lt;br /&gt;
    for first,second,third, duration in notes:&lt;br /&gt;
        playNote(first,second,third,duration)&lt;br /&gt;
 &lt;br /&gt;
    playNote(0, 0, 0, 0)&lt;br /&gt;
    blue.close()&lt;br /&gt;
    orange.close()&lt;br /&gt;
    red.close()&lt;br /&gt;
 &lt;br /&gt;
 if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
    playFile(sys.argv[1])&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Example Beat ====&lt;br /&gt;
The following is an example &amp;quot;fireworks&amp;quot;-file that can be used to test the led blinker.&lt;br /&gt;
&lt;br /&gt;
 1 0 0 100&lt;br /&gt;
 1 0 1 100&lt;br /&gt;
 1 1 0 100&lt;br /&gt;
 0 1 0 100&lt;br /&gt;
 0 1 1 100&lt;br /&gt;
 0 0 1 100&lt;br /&gt;
 1 1 1 100&lt;br /&gt;
 1 0 0 100&lt;br /&gt;
 1 0 1 100&lt;br /&gt;
 1 1 0 100&lt;br /&gt;
 0 1 0 100&lt;br /&gt;
 0 1 1 100&lt;br /&gt;
 0 0 1 100&lt;br /&gt;
 1 1 1 100&lt;br /&gt;
 1 0 0 100&lt;br /&gt;
 1 0 1 100&lt;br /&gt;
 1 1 0 100&lt;br /&gt;
 0 1 0 100&lt;br /&gt;
 0 1 1 100&lt;br /&gt;
 0 0 1 100&lt;br /&gt;
 1 1 1 100&lt;br /&gt;
&lt;br /&gt;
== Charge State and Wi-Fi transfer ==&lt;br /&gt;
&lt;br /&gt;
Seba has written a script called ledd which indicates charging state and transferring data over&lt;br /&gt;
wifi on the LEDs. It is available [http://openmoko.opendevice.org/~dos/ledd here].&lt;br /&gt;
&lt;br /&gt;
== Power Status ==&lt;br /&gt;
&lt;br /&gt;
This Perl Script&lt;br /&gt;
uses the blue and orange LEDs under the power button to show battery power status.  &lt;br /&gt;
&lt;br /&gt;
Install perl using &amp;quot;opkg install perl&amp;quot; to use this script.  The script will indicate high battery with blue, medium battery by purple (blue + orange), and low battery by orange.  Adjust values for your needs.  &lt;br /&gt;
&lt;br /&gt;
You can have it autostart by saving the script as /etc/init.d/lights.pl&amp;lt;br&amp;gt;&lt;br /&gt;
then creating a shell script /etc/init.d/startlights.sh with just one line:&lt;br /&gt;
 /etc/init.d/lights.pl &amp;amp;&lt;br /&gt;
and then create a symlink to it to auto start by running&lt;br /&gt;
 ln -s /etc/init.d/startlights.sh /etc/rc5.d/S15startlights&lt;br /&gt;
&lt;br /&gt;
Don't forget to &amp;quot;chmod +x&amp;quot; all those scripts :)&lt;br /&gt;
&lt;br /&gt;
lights.pl:&lt;br /&gt;
&lt;br /&gt;
 #!/usr/bin/perl&lt;br /&gt;
 my $high_thresh = 75;&lt;br /&gt;
 my $low_thresh = 30;&lt;br /&gt;
 while(1) {&lt;br /&gt;
     my $command = `apm`;&lt;br /&gt;
     if ($command =~ m/battery .*: (\d*)%/) {&lt;br /&gt;
         print(&amp;quot;Value: &amp;quot; . $1 . &amp;quot;\n&amp;quot;);&lt;br /&gt;
     }&lt;br /&gt;
     if($1 &amp;lt; $low_thresh) {&lt;br /&gt;
         print(&amp;quot;Low Battery\n&amp;quot;);&lt;br /&gt;
         $command = `echo 1 &amp;gt; /sys/devices/platform/gta02-led.0/leds/gta02-power:orange/brightness`;&lt;br /&gt;
         $command = `echo 0 &amp;gt; /sys/devices/platform/gta02-led.0/leds/gta02-power:blue/brightness`;&lt;br /&gt;
     } &lt;br /&gt;
     if($1 &amp;gt; $high_thresh) {&lt;br /&gt;
         print(&amp;quot;High Battery\n&amp;quot;);&lt;br /&gt;
         $command = `echo 1 &amp;gt; /sys/devices/platform/gta02-led.0/leds/gta02-power:blue/brightness`;&lt;br /&gt;
         $command = `echo 0 &amp;gt; /sys/devices/platform/gta02-led.0/leds/gta02-power:orange/brightness`;&lt;br /&gt;
     }&lt;br /&gt;
     if(($1 &amp;lt;= $high_thresh) &amp;amp;&amp;amp; ($1 &amp;gt;= $low_thresh)){&lt;br /&gt;
         print(&amp;quot;Mid Battery\n&amp;quot;);&lt;br /&gt;
         $command = `echo 1 &amp;gt; /sys/devices/platform/gta02-led.0/leds/gta02-power:blue/brightness`;&lt;br /&gt;
         $command = `echo 1 &amp;gt; /sys/devices/platform/gta02-led.0/leds/gta02-power:orange/brightness`;&lt;br /&gt;
     }&lt;br /&gt;
     sleep(15);&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-nvanfossen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Neo FreeRunner Hardware]]&lt;/div&gt;</summary>
		<author><name>Michaelshiloh</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/FreeRunner/Buttons_and_LEDs</id>
		<title>FreeRunner/Buttons and LEDs</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/FreeRunner/Buttons_and_LEDs"/>
				<updated>2008-10-12T00:05:35Z</updated>
		
		<summary type="html">&lt;p&gt;Michaelshiloh: /* Led Power Status Perl Script */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is the Software specification for the Openmoko Neo FreeRunner Button and LEDs.&lt;br /&gt;
&lt;br /&gt;
{{InProgress}}&lt;br /&gt;
&lt;br /&gt;
=Taxonomy=&lt;br /&gt;
&lt;br /&gt;
==What's currently implemented==&lt;br /&gt;
 /sys/devices/platform/gta02-led.0/leds/gta02-aux:red/&lt;br /&gt;
 /sys/devices/platform/gta02-led.0/leds/gta02-power:blue/&lt;br /&gt;
 /sys/devices/platform/gta02-led.0/leds/gta02-power:orange/&lt;br /&gt;
Those are all userspace directories for controlling the LEDs. echo 0 &amp;gt; brightness will turn the LED off. echo 1 &amp;gt; brightness will turn it on.&lt;br /&gt;
trigger currently does nothing.&lt;br /&gt;
&lt;br /&gt;
==Buttons==&lt;br /&gt;
* AUX = Button on the left side of the device, upper area&lt;br /&gt;
* POWER = Button on the right side of the device, center area (right below the USB socket)&lt;br /&gt;
&lt;br /&gt;
==Leds==&lt;br /&gt;
{| border=1 cellspacing=0 cellpadding=5&lt;br /&gt;
| EVENT&lt;br /&gt;
|style=&amp;quot;background:#FF0000;color:white;&amp;quot;| '''red'''&lt;br /&gt;
| behind AUX button&lt;br /&gt;
|-&lt;br /&gt;
| HEARTBEAT&lt;br /&gt;
|style=&amp;quot;background:#FF8040;color:white;&amp;quot;| '''orange'''&lt;br /&gt;
| behind POWER button&lt;br /&gt;
|-&lt;br /&gt;
| WIRELESS / BLUETOOTH&lt;br /&gt;
|style=&amp;quot;background:#0000FF;color:white;&amp;quot;| '''blue'''&lt;br /&gt;
| behind POWER button&lt;br /&gt;
|-&lt;br /&gt;
| MIXING TWO LEDS&lt;br /&gt;
|style=&amp;quot;background:#80409F;color:white;&amp;quot;| '''purple'''&lt;br /&gt;
| behind POWER button if turning on the blue and the orang buttons together&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Modes==&lt;br /&gt;
* OFF = Device has no power or has been shutdown&lt;br /&gt;
* ON = Device is fully powered&lt;br /&gt;
* ON+CHARGING = Device is fully powered and has been connected to a USB host or Openmoko charger.&lt;br /&gt;
* LOCK = Device is fully powered, but has screen lock displayed&lt;br /&gt;
* SUSPEND = Device has been suspended to low-power mode&lt;br /&gt;
&lt;br /&gt;
=Basic Button Usage=&lt;br /&gt;
&lt;br /&gt;
This is grouped by mode:&lt;br /&gt;
&lt;br /&gt;
==Mode: OFF==&lt;br /&gt;
&lt;br /&gt;
* To switch the device on: Press and hold POWER until the boot logo appears.&lt;br /&gt;
* To enter the &amp;quot;normal&amp;quot; (NAND) boot menu: Press and hold POWER, one second later press and hold AUX.&lt;br /&gt;
* To enter the &amp;quot;rescue&amp;quot; (NOR) boot menu: Press and hold AUX, then press and hold POWER.&lt;br /&gt;
&lt;br /&gt;
==Mode: ON==&lt;br /&gt;
&lt;br /&gt;
* To suspend the device: Press POWER.&lt;br /&gt;
* To shut down the device: Press and hold POWER for 4 seconds. If the device hangs, press and hold POWER for 8 seconds. If it still hangs, remove the battery and disconnect from USB.&lt;br /&gt;
* To go to the home screen: Press AUX.&lt;br /&gt;
* To display the profile screen: Press and hold AUX until it appears.&lt;br /&gt;
&lt;br /&gt;
==Mode: SUSPEND==&lt;br /&gt;
&lt;br /&gt;
* To wakeup the device: Press POWER.&lt;br /&gt;
&lt;br /&gt;
=Basic LED Usage=&lt;br /&gt;
&lt;br /&gt;
LEDs are very useful in broadcasting valuable basic status information to the user in a way that the user does not have to unlock the device, enable the screen or turning the screen saver off and subsequently search the screen for basic status information.&lt;br /&gt;
&lt;br /&gt;
''This is grouped by mode:''&lt;br /&gt;
&lt;br /&gt;
==Mode: OFF==&lt;br /&gt;
&lt;br /&gt;
* All LEDs will be turned off.&lt;br /&gt;
&lt;br /&gt;
==Mode: ON==&lt;br /&gt;
&lt;br /&gt;
* HEARTBEAT will emit a short blink every 4 seconds.&lt;br /&gt;
* If Bluetooth is powered on, WIRELESS will emit a short blink every 2 seconds.&lt;br /&gt;
* If Wifi is powered on, WIRELESS will emit a long blink every 2 seconds.&lt;br /&gt;
* If Bluetooth and Wifi are powered on, WIRELESS will be lit continuosly.&lt;br /&gt;
&lt;br /&gt;
==Mode: ON+CHARGING==&lt;br /&gt;
&lt;br /&gt;
''Same as ON, with the exception of''&lt;br /&gt;
* HEARTBEAT will increase blinking as the charge level of the battery increases.&lt;br /&gt;
* HEARTBEAT will be continuosly lit, if the battery has been fully charged.&lt;br /&gt;
&lt;br /&gt;
==Mode: SUSPEND==&lt;br /&gt;
&lt;br /&gt;
* All LEDs will be turned off.&lt;br /&gt;
&lt;br /&gt;
=Advanced Button/LED Usage=&lt;br /&gt;
&lt;br /&gt;
* In ON-Mode, EVENT will blink every 2 seconds if there's an event that needs your attention.&lt;br /&gt;
* The more events, the faster EVENT will blink.&lt;br /&gt;
* Pressing AUX will acknowledge the event with the topmost priority and display it to you.&lt;br /&gt;
* EVENT will stop to blink once all events have been acknowledged.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=A first rules implementation=&lt;br /&gt;
A C implementation of these rules has been [http://lists.openmoko.org/pipermail/openmoko-devel/2008-July/003458.html done by smurfy - phil] and is available at http://www.smurfy.de/files/neo/openmoko-led-v1.tar.gz&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Implementations of other LED behaviors =&lt;br /&gt;
&lt;br /&gt;
== Blink LEDs by user-definable beat ==&lt;br /&gt;
&lt;br /&gt;
A Python Script For Blinking Leds By Beats. This script reads beats from a file and blinks FreeRunners LEDs accordingly.&lt;br /&gt;
 &lt;br /&gt;
File format is human readable text, consisting of a simple sequence of integer quartet (4 numbers).  The first number representing status of blue power-led, second means status of orange power-led and third means status of red aux-led. 0=OFF, 1=ON. (If blue=1 and orange=1 then power=lila. This has nothing to do with this python script or this file format.) The last number represents the duration in milliseconds to hold that situation of leds.  Any non digit characters in the file count as a separators between numbers, but are otherwise ignored.&lt;br /&gt;
&lt;br /&gt;
It requires packages python-core and python-re from opkg.&lt;br /&gt;
==== Led blinker ====&lt;br /&gt;
&lt;br /&gt;
 #!/usr/bin/python&lt;br /&gt;
 &amp;quot;&amp;quot;&amp;quot;Led Blinker Player&lt;br /&gt;
 &lt;br /&gt;
 Usage: python leds.py [filename]&lt;br /&gt;
 &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
 import sys&lt;br /&gt;
 import time&lt;br /&gt;
 import re&lt;br /&gt;
 &lt;br /&gt;
 def loadFromTextFile(filename):&lt;br /&gt;
    infile = open(filename)&lt;br /&gt;
    contents = infile.read()&lt;br /&gt;
    return re.findall(&amp;quot;(\d+)\D*(\d+)\D*(\d+)\D*(\d+)&amp;quot;, contents)&lt;br /&gt;
 &lt;br /&gt;
 def playNote(blue_value, orange_value, red_value, duration):&lt;br /&gt;
    blue.write(str(blue_value) + &amp;quot;\n&amp;quot;)&lt;br /&gt;
    orange.write(str(orange_value) + &amp;quot;\n&amp;quot;)&lt;br /&gt;
    red.write(str(red_value) + &amp;quot;\n&amp;quot;)&lt;br /&gt;
    time.sleep(float(duration) / 1000.0)&lt;br /&gt;
 &lt;br /&gt;
 def playFile(filename):&lt;br /&gt;
    global blue, orange, red &lt;br /&gt;
    notes = loadFromTextFile(filename)&lt;br /&gt;
    blue = open(&amp;quot;/sys/class/leds/gta02-power:blue/brightness&amp;quot;, &amp;quot;w&amp;quot;, 1)&lt;br /&gt;
    orange = open(&amp;quot;/sys/class/leds/gta02-power:orange/brightness&amp;quot;, &amp;quot;w&amp;quot;, 1)&lt;br /&gt;
    red = open(&amp;quot;/sys/class/leds/gta02-aux:red/brightness&amp;quot;, &amp;quot;w&amp;quot;, 1)&lt;br /&gt;
 &lt;br /&gt;
    for first,second,third, duration in notes:&lt;br /&gt;
        playNote(first,second,third,duration)&lt;br /&gt;
 &lt;br /&gt;
    playNote(0, 0, 0, 0)&lt;br /&gt;
    blue.close()&lt;br /&gt;
    orange.close()&lt;br /&gt;
    red.close()&lt;br /&gt;
 &lt;br /&gt;
 if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
    playFile(sys.argv[1])&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Example Beat ====&lt;br /&gt;
The following is an example &amp;quot;fireworks&amp;quot;-file that can be used to test the led blinker.&lt;br /&gt;
&lt;br /&gt;
 1 0 0 100&lt;br /&gt;
 1 0 1 100&lt;br /&gt;
 1 1 0 100&lt;br /&gt;
 0 1 0 100&lt;br /&gt;
 0 1 1 100&lt;br /&gt;
 0 0 1 100&lt;br /&gt;
 1 1 1 100&lt;br /&gt;
 1 0 0 100&lt;br /&gt;
 1 0 1 100&lt;br /&gt;
 1 1 0 100&lt;br /&gt;
 0 1 0 100&lt;br /&gt;
 0 1 1 100&lt;br /&gt;
 0 0 1 100&lt;br /&gt;
 1 1 1 100&lt;br /&gt;
 1 0 0 100&lt;br /&gt;
 1 0 1 100&lt;br /&gt;
 1 1 0 100&lt;br /&gt;
 0 1 0 100&lt;br /&gt;
 0 1 1 100&lt;br /&gt;
 0 0 1 100&lt;br /&gt;
 1 1 1 100&lt;br /&gt;
&lt;br /&gt;
== Charge State and Wi-Fi transfer ==&lt;br /&gt;
&lt;br /&gt;
Seba has written a script called ledd which indicates charging state and transferring data over&lt;br /&gt;
wifi on the LEDs. It is available [http://openmoko.opendevice.org/~dos/ledd here].&lt;br /&gt;
&lt;br /&gt;
== Power Status ==&lt;br /&gt;
&lt;br /&gt;
This Perl Script&lt;br /&gt;
uses the blue and orange LEDs under the power button to show battery power status.  &lt;br /&gt;
&lt;br /&gt;
Install perl using &amp;quot;opkg install perl&amp;quot; to use this script.  The script will indicate high battery with blue, medium battery by purple (blue + orange), and low battery by orange.  Adjust values for your needs.  &lt;br /&gt;
&lt;br /&gt;
You can have it autostart by saving the script as /etc/init.d/lights.pl&amp;lt;br&amp;gt;&lt;br /&gt;
then creating a shell script /etc/init.d/startlights.sh with just one line:&lt;br /&gt;
 /etc/init.d/lights.pl &amp;amp;&lt;br /&gt;
and then create a symlink to it to auto start by running&lt;br /&gt;
 ln -s /etc/init.d/startlights.sh /etc/rc5.d/S15startlights&lt;br /&gt;
&lt;br /&gt;
Don't forget to &amp;quot;chmod +x&amp;quot; all those scripts :)&lt;br /&gt;
&lt;br /&gt;
lights.pl:&lt;br /&gt;
&lt;br /&gt;
 #!/usr/bin/perl&lt;br /&gt;
 my $high_thresh = 75;&lt;br /&gt;
 my $low_thresh = 30;&lt;br /&gt;
 while(1) {&lt;br /&gt;
     my $command = `apm`;&lt;br /&gt;
     if ($command =~ m/battery .*: (\d*)%/) {&lt;br /&gt;
         print(&amp;quot;Value: &amp;quot; . $1 . &amp;quot;\n&amp;quot;);&lt;br /&gt;
     }&lt;br /&gt;
     if($1 &amp;lt; $low_thresh) {&lt;br /&gt;
         print(&amp;quot;Low Battery\n&amp;quot;);&lt;br /&gt;
         $command = `echo 1 &amp;gt; /sys/devices/platform/gta02-led.0/leds/gta02-power:orange/brightness`;&lt;br /&gt;
         $command = `echo 0 &amp;gt; /sys/devices/platform/gta02-led.0/leds/gta02-power:blue/brightness`;&lt;br /&gt;
     } &lt;br /&gt;
     if($1 &amp;gt; $high_thresh) {&lt;br /&gt;
         print(&amp;quot;High Battery\n&amp;quot;);&lt;br /&gt;
         $command = `echo 1 &amp;gt; /sys/devices/platform/gta02-led.0/leds/gta02-power:blue/brightness`;&lt;br /&gt;
         $command = `echo 0 &amp;gt; /sys/devices/platform/gta02-led.0/leds/gta02-power:orange/brightness`;&lt;br /&gt;
     }&lt;br /&gt;
     if(($1 &amp;lt;= $high_thresh) &amp;amp;&amp;amp; ($1 &amp;gt;= $low_thresh)){&lt;br /&gt;
         print(&amp;quot;Mid Battery\n&amp;quot;);&lt;br /&gt;
         $command = `echo 1 &amp;gt; /sys/devices/platform/gta02-led.0/leds/gta02-power:blue/brightness`;&lt;br /&gt;
         $command = `echo 1 &amp;gt; /sys/devices/platform/gta02-led.0/leds/gta02-power:orange/brightness`;&lt;br /&gt;
     }&lt;br /&gt;
     sleep(15);&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-nvanfossen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Neo FreeRunner Hardware]]&lt;/div&gt;</summary>
		<author><name>Michaelshiloh</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/FreeRunner/Buttons_and_LEDs</id>
		<title>FreeRunner/Buttons and LEDs</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/FreeRunner/Buttons_and_LEDs"/>
				<updated>2008-10-12T00:03:10Z</updated>
		
		<summary type="html">&lt;p&gt;Michaelshiloh: /* Python Script For Blinking Leds By Beats */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is the Software specification for the Openmoko Neo FreeRunner Button and LEDs.&lt;br /&gt;
&lt;br /&gt;
{{InProgress}}&lt;br /&gt;
&lt;br /&gt;
=Taxonomy=&lt;br /&gt;
&lt;br /&gt;
==What's currently implemented==&lt;br /&gt;
 /sys/devices/platform/gta02-led.0/leds/gta02-aux:red/&lt;br /&gt;
 /sys/devices/platform/gta02-led.0/leds/gta02-power:blue/&lt;br /&gt;
 /sys/devices/platform/gta02-led.0/leds/gta02-power:orange/&lt;br /&gt;
Those are all userspace directories for controlling the LEDs. echo 0 &amp;gt; brightness will turn the LED off. echo 1 &amp;gt; brightness will turn it on.&lt;br /&gt;
trigger currently does nothing.&lt;br /&gt;
&lt;br /&gt;
==Buttons==&lt;br /&gt;
* AUX = Button on the left side of the device, upper area&lt;br /&gt;
* POWER = Button on the right side of the device, center area (right below the USB socket)&lt;br /&gt;
&lt;br /&gt;
==Leds==&lt;br /&gt;
{| border=1 cellspacing=0 cellpadding=5&lt;br /&gt;
| EVENT&lt;br /&gt;
|style=&amp;quot;background:#FF0000;color:white;&amp;quot;| '''red'''&lt;br /&gt;
| behind AUX button&lt;br /&gt;
|-&lt;br /&gt;
| HEARTBEAT&lt;br /&gt;
|style=&amp;quot;background:#FF8040;color:white;&amp;quot;| '''orange'''&lt;br /&gt;
| behind POWER button&lt;br /&gt;
|-&lt;br /&gt;
| WIRELESS / BLUETOOTH&lt;br /&gt;
|style=&amp;quot;background:#0000FF;color:white;&amp;quot;| '''blue'''&lt;br /&gt;
| behind POWER button&lt;br /&gt;
|-&lt;br /&gt;
| MIXING TWO LEDS&lt;br /&gt;
|style=&amp;quot;background:#80409F;color:white;&amp;quot;| '''purple'''&lt;br /&gt;
| behind POWER button if turning on the blue and the orang buttons together&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Modes==&lt;br /&gt;
* OFF = Device has no power or has been shutdown&lt;br /&gt;
* ON = Device is fully powered&lt;br /&gt;
* ON+CHARGING = Device is fully powered and has been connected to a USB host or Openmoko charger.&lt;br /&gt;
* LOCK = Device is fully powered, but has screen lock displayed&lt;br /&gt;
* SUSPEND = Device has been suspended to low-power mode&lt;br /&gt;
&lt;br /&gt;
=Basic Button Usage=&lt;br /&gt;
&lt;br /&gt;
This is grouped by mode:&lt;br /&gt;
&lt;br /&gt;
==Mode: OFF==&lt;br /&gt;
&lt;br /&gt;
* To switch the device on: Press and hold POWER until the boot logo appears.&lt;br /&gt;
* To enter the &amp;quot;normal&amp;quot; (NAND) boot menu: Press and hold POWER, one second later press and hold AUX.&lt;br /&gt;
* To enter the &amp;quot;rescue&amp;quot; (NOR) boot menu: Press and hold AUX, then press and hold POWER.&lt;br /&gt;
&lt;br /&gt;
==Mode: ON==&lt;br /&gt;
&lt;br /&gt;
* To suspend the device: Press POWER.&lt;br /&gt;
* To shut down the device: Press and hold POWER for 4 seconds. If the device hangs, press and hold POWER for 8 seconds. If it still hangs, remove the battery and disconnect from USB.&lt;br /&gt;
* To go to the home screen: Press AUX.&lt;br /&gt;
* To display the profile screen: Press and hold AUX until it appears.&lt;br /&gt;
&lt;br /&gt;
==Mode: SUSPEND==&lt;br /&gt;
&lt;br /&gt;
* To wakeup the device: Press POWER.&lt;br /&gt;
&lt;br /&gt;
=Basic LED Usage=&lt;br /&gt;
&lt;br /&gt;
LEDs are very useful in broadcasting valuable basic status information to the user in a way that the user does not have to unlock the device, enable the screen or turning the screen saver off and subsequently search the screen for basic status information.&lt;br /&gt;
&lt;br /&gt;
''This is grouped by mode:''&lt;br /&gt;
&lt;br /&gt;
==Mode: OFF==&lt;br /&gt;
&lt;br /&gt;
* All LEDs will be turned off.&lt;br /&gt;
&lt;br /&gt;
==Mode: ON==&lt;br /&gt;
&lt;br /&gt;
* HEARTBEAT will emit a short blink every 4 seconds.&lt;br /&gt;
* If Bluetooth is powered on, WIRELESS will emit a short blink every 2 seconds.&lt;br /&gt;
* If Wifi is powered on, WIRELESS will emit a long blink every 2 seconds.&lt;br /&gt;
* If Bluetooth and Wifi are powered on, WIRELESS will be lit continuosly.&lt;br /&gt;
&lt;br /&gt;
==Mode: ON+CHARGING==&lt;br /&gt;
&lt;br /&gt;
''Same as ON, with the exception of''&lt;br /&gt;
* HEARTBEAT will increase blinking as the charge level of the battery increases.&lt;br /&gt;
* HEARTBEAT will be continuosly lit, if the battery has been fully charged.&lt;br /&gt;
&lt;br /&gt;
==Mode: SUSPEND==&lt;br /&gt;
&lt;br /&gt;
* All LEDs will be turned off.&lt;br /&gt;
&lt;br /&gt;
=Advanced Button/LED Usage=&lt;br /&gt;
&lt;br /&gt;
* In ON-Mode, EVENT will blink every 2 seconds if there's an event that needs your attention.&lt;br /&gt;
* The more events, the faster EVENT will blink.&lt;br /&gt;
* Pressing AUX will acknowledge the event with the topmost priority and display it to you.&lt;br /&gt;
* EVENT will stop to blink once all events have been acknowledged.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=A first rules implementation=&lt;br /&gt;
A C implementation of these rules has been [http://lists.openmoko.org/pipermail/openmoko-devel/2008-July/003458.html done by smurfy - phil] and is available at http://www.smurfy.de/files/neo/openmoko-led-v1.tar.gz&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Implementations of other LED behaviors =&lt;br /&gt;
&lt;br /&gt;
== Blink LEDs by user-definable beat ==&lt;br /&gt;
&lt;br /&gt;
A Python Script For Blinking Leds By Beats. This script reads beats from a file and blinks FreeRunners LEDs accordingly.&lt;br /&gt;
 &lt;br /&gt;
File format is human readable text, consisting of a simple sequence of integer quartet (4 numbers).  The first number representing status of blue power-led, second means status of orange power-led and third means status of red aux-led. 0=OFF, 1=ON. (If blue=1 and orange=1 then power=lila. This has nothing to do with this python script or this file format.) The last number represents the duration in milliseconds to hold that situation of leds.  Any non digit characters in the file count as a separators between numbers, but are otherwise ignored.&lt;br /&gt;
&lt;br /&gt;
It requires packages python-core and python-re from opkg.&lt;br /&gt;
==== Led blinker ====&lt;br /&gt;
&lt;br /&gt;
 #!/usr/bin/python&lt;br /&gt;
 &amp;quot;&amp;quot;&amp;quot;Led Blinker Player&lt;br /&gt;
 &lt;br /&gt;
 Usage: python leds.py [filename]&lt;br /&gt;
 &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
 import sys&lt;br /&gt;
 import time&lt;br /&gt;
 import re&lt;br /&gt;
 &lt;br /&gt;
 def loadFromTextFile(filename):&lt;br /&gt;
    infile = open(filename)&lt;br /&gt;
    contents = infile.read()&lt;br /&gt;
    return re.findall(&amp;quot;(\d+)\D*(\d+)\D*(\d+)\D*(\d+)&amp;quot;, contents)&lt;br /&gt;
 &lt;br /&gt;
 def playNote(blue_value, orange_value, red_value, duration):&lt;br /&gt;
    blue.write(str(blue_value) + &amp;quot;\n&amp;quot;)&lt;br /&gt;
    orange.write(str(orange_value) + &amp;quot;\n&amp;quot;)&lt;br /&gt;
    red.write(str(red_value) + &amp;quot;\n&amp;quot;)&lt;br /&gt;
    time.sleep(float(duration) / 1000.0)&lt;br /&gt;
 &lt;br /&gt;
 def playFile(filename):&lt;br /&gt;
    global blue, orange, red &lt;br /&gt;
    notes = loadFromTextFile(filename)&lt;br /&gt;
    blue = open(&amp;quot;/sys/class/leds/gta02-power:blue/brightness&amp;quot;, &amp;quot;w&amp;quot;, 1)&lt;br /&gt;
    orange = open(&amp;quot;/sys/class/leds/gta02-power:orange/brightness&amp;quot;, &amp;quot;w&amp;quot;, 1)&lt;br /&gt;
    red = open(&amp;quot;/sys/class/leds/gta02-aux:red/brightness&amp;quot;, &amp;quot;w&amp;quot;, 1)&lt;br /&gt;
 &lt;br /&gt;
    for first,second,third, duration in notes:&lt;br /&gt;
        playNote(first,second,third,duration)&lt;br /&gt;
 &lt;br /&gt;
    playNote(0, 0, 0, 0)&lt;br /&gt;
    blue.close()&lt;br /&gt;
    orange.close()&lt;br /&gt;
    red.close()&lt;br /&gt;
 &lt;br /&gt;
 if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
    playFile(sys.argv[1])&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Example Beat ====&lt;br /&gt;
The following is an example &amp;quot;fireworks&amp;quot;-file that can be used to test the led blinker.&lt;br /&gt;
&lt;br /&gt;
 1 0 0 100&lt;br /&gt;
 1 0 1 100&lt;br /&gt;
 1 1 0 100&lt;br /&gt;
 0 1 0 100&lt;br /&gt;
 0 1 1 100&lt;br /&gt;
 0 0 1 100&lt;br /&gt;
 1 1 1 100&lt;br /&gt;
 1 0 0 100&lt;br /&gt;
 1 0 1 100&lt;br /&gt;
 1 1 0 100&lt;br /&gt;
 0 1 0 100&lt;br /&gt;
 0 1 1 100&lt;br /&gt;
 0 0 1 100&lt;br /&gt;
 1 1 1 100&lt;br /&gt;
 1 0 0 100&lt;br /&gt;
 1 0 1 100&lt;br /&gt;
 1 1 0 100&lt;br /&gt;
 0 1 0 100&lt;br /&gt;
 0 1 1 100&lt;br /&gt;
 0 0 1 100&lt;br /&gt;
 1 1 1 100&lt;br /&gt;
&lt;br /&gt;
== Charge State and Wi-Fi transfer ==&lt;br /&gt;
&lt;br /&gt;
Seba has written a script called ledd which indicates charging state and transferring data over&lt;br /&gt;
wifi on the LEDs. It is available [http://openmoko.opendevice.org/~dos/ledd here].&lt;br /&gt;
&lt;br /&gt;
=Led Power Status Perl Script=&lt;br /&gt;
&lt;br /&gt;
Use the blue and orange LED's under the power button to show battery power status.  Install perl using &amp;quot;opkg install perl&amp;quot; to use this script.  The script will indicate high battery with blue, medium battery by purple (blue + orange), and low battery by orange.  Adjust values for your needs.  &lt;br /&gt;
&lt;br /&gt;
You can have it autostart by saving the script as /etc/init.d/lights.pl&amp;lt;br&amp;gt;&lt;br /&gt;
then creating a shell script /etc/init.d/startlights.sh with just one line:&lt;br /&gt;
 /etc/init.d/lights.pl &amp;amp;&lt;br /&gt;
and then create a symlink to it to auto start by running&lt;br /&gt;
 ln -s /etc/init.d/startlights.sh /etc/rc5.d/S15startlights&lt;br /&gt;
&lt;br /&gt;
Don't forget to &amp;quot;chmod +x&amp;quot; all those scripts :)&lt;br /&gt;
&lt;br /&gt;
lights.pl:&lt;br /&gt;
&lt;br /&gt;
 #!/usr/bin/perl&lt;br /&gt;
 my $high_thresh = 75;&lt;br /&gt;
 my $low_thresh = 30;&lt;br /&gt;
 while(1) {&lt;br /&gt;
     my $command = `apm`;&lt;br /&gt;
     if ($command =~ m/battery .*: (\d*)%/) {&lt;br /&gt;
         print(&amp;quot;Value: &amp;quot; . $1 . &amp;quot;\n&amp;quot;);&lt;br /&gt;
     }&lt;br /&gt;
     if($1 &amp;lt; $low_thresh) {&lt;br /&gt;
         print(&amp;quot;Low Battery\n&amp;quot;);&lt;br /&gt;
         $command = `echo 1 &amp;gt; /sys/devices/platform/gta02-led.0/leds/gta02-power:orange/brightness`;&lt;br /&gt;
         $command = `echo 0 &amp;gt; /sys/devices/platform/gta02-led.0/leds/gta02-power:blue/brightness`;&lt;br /&gt;
     } &lt;br /&gt;
     if($1 &amp;gt; $high_thresh) {&lt;br /&gt;
         print(&amp;quot;High Battery\n&amp;quot;);&lt;br /&gt;
         $command = `echo 1 &amp;gt; /sys/devices/platform/gta02-led.0/leds/gta02-power:blue/brightness`;&lt;br /&gt;
         $command = `echo 0 &amp;gt; /sys/devices/platform/gta02-led.0/leds/gta02-power:orange/brightness`;&lt;br /&gt;
     }&lt;br /&gt;
     if(($1 &amp;lt;= $high_thresh) &amp;amp;&amp;amp; ($1 &amp;gt;= $low_thresh)){&lt;br /&gt;
         print(&amp;quot;Mid Battery\n&amp;quot;);&lt;br /&gt;
         $command = `echo 1 &amp;gt; /sys/devices/platform/gta02-led.0/leds/gta02-power:blue/brightness`;&lt;br /&gt;
         $command = `echo 1 &amp;gt; /sys/devices/platform/gta02-led.0/leds/gta02-power:orange/brightness`;&lt;br /&gt;
     }&lt;br /&gt;
     sleep(15);&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-nvanfossen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Neo FreeRunner Hardware]]&lt;/div&gt;</summary>
		<author><name>Michaelshiloh</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/FAQ</id>
		<title>FAQ</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/FAQ"/>
				<updated>2008-10-11T23:53:39Z</updated>
		
		<summary type="html">&lt;p&gt;Michaelshiloh: /* What can I do with the Neo FreeRunner? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|FAQ}}&lt;br /&gt;
&lt;br /&gt;
== Getting Started with your Neo FreeRunner == &amp;lt;!-- Do not rename section! This section is linked from pages which linked to Getting_Started_FAQ. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== I just received my Neo FreeRunner. Where should I start?===&lt;br /&gt;
&lt;br /&gt;
See [[Getting_Started_with_your_Neo_FreeRunner|Getting Started with your Neo FreeRunner]]&lt;br /&gt;
&lt;br /&gt;
=== I have a problem or a question. Where should I go? ===&lt;br /&gt;
&lt;br /&gt;
First place to check is this FAQ. &lt;br /&gt;
&lt;br /&gt;
If your question isn't answered here, you should search the archives of the [http://lists.openmoko.org/mailman/listinfo/community community] or [http://lists.openmoko.org/mailman/listinfo/support support] mailing lists&lt;br /&gt;
&lt;br /&gt;
Next, try a larger Google search. &lt;br /&gt;
&lt;br /&gt;
If you still haven't found the answer to your question, post it on the appropriate list, [http://lists.openmoko.org/mailman/listinfo/community community] or [http://lists.openmoko.org/mailman/listinfo/support support]. &lt;br /&gt;
&lt;br /&gt;
Provide detailed information about what you are trying to find out, and use&lt;br /&gt;
the Subject line to summarize your question. More tips to asking effective&lt;br /&gt;
questions can be found&lt;br /&gt;
[[http://www.catb.org/~esr/faqs/smart-questions.html|here]]&lt;br /&gt;
&lt;br /&gt;
If your question requires confidentiality, you are welcome to contact [mailto:michael@openmoko.org Michael Shiloh] directly.&lt;br /&gt;
&lt;br /&gt;
You might also look for [[Openmoko_Local_Groups|local Openmoko users]] to find&lt;br /&gt;
some local support. A few minutes with a live person might solve a simple&lt;br /&gt;
misunderstanding that would take hours to understand via email. (If a local&lt;br /&gt;
club doesn't exist, this might be the perfect opportunity to start one!)&lt;br /&gt;
&lt;br /&gt;
=== I'd like to develop a custom product or application based on Openmoko and/or the Neo FreeRunner. How should I proceed? ===&lt;br /&gt;
&lt;br /&gt;
Send mail to michael@openmoko.org or to steve@openmoko.com&lt;br /&gt;
&lt;br /&gt;
=== Where are the latest downloads? ===&lt;br /&gt;
&lt;br /&gt;
Right [[Download|here]].&lt;br /&gt;
&lt;br /&gt;
==Openmoko==&lt;br /&gt;
&lt;br /&gt;
===What is Openmoko?===&lt;br /&gt;
Openmoko is two things:&lt;br /&gt;
&lt;br /&gt;
Openmoko is a Linux distribution designed for open mobile computing platforms, such as, but not limited to, cellphones.&lt;br /&gt;
&lt;br /&gt;
Openmoko is the company behind the Openmoko Linux distribution. Openmoko also manufactures mobile computing platforms, such as the Neo FreeRunner.&lt;br /&gt;
&lt;br /&gt;
===What is the purpose of this project?===&lt;br /&gt;
&lt;br /&gt;
By providing a completely open source Linux distribution, and by opening the schematics and CAD files, Openmoko's goal is to nurture explosive innovation (such as occurred with the Personal Computer) in the field of connected mobile computing, cellphones, and ubiquitous computing.&lt;br /&gt;
&lt;br /&gt;
===How do I join the Openmoko project? ===&lt;br /&gt;
&lt;br /&gt;
Join one or more of the mailing lists. A great place to start is the community list.&lt;br /&gt;
&lt;br /&gt;
Browse the wiki, and help improve it.&lt;br /&gt;
&lt;br /&gt;
Start or join an [[http://projects.openmoko.org/ Openmoko project]].&lt;br /&gt;
&lt;br /&gt;
Start or join a local group near you.&lt;br /&gt;
&lt;br /&gt;
===I'm not a programmer, but I have other skills. Can I still be of use? ===&lt;br /&gt;
&lt;br /&gt;
Absolutely. If you're a visual artist, you can help us with icons and other visuals. Musicians can help contribute ringtones and other sounds. Marketing? Sales? Information visualization? Join the community mailing lists, introduce yourself, and you'll soon find a place to put your skills to good use.&lt;br /&gt;
&lt;br /&gt;
== Neo FreeRunner - Introductory/Overview/Conceptual Information==&lt;br /&gt;
&lt;br /&gt;
=== What is the [[Neo FreeRunner]]? === &lt;br /&gt;
&lt;br /&gt;
The [[Neo FreeRunner]] is an open cellphone designed for the Openmoko Linux distribution. By open we mean that (a) all chips have been chosen to allow their drivers to be completely open sourced and (b) the schematics and the plastic (CAD) files are available as well.&lt;br /&gt;
&lt;br /&gt;
For more details, see [[Neo FreeRunner|Neo FreeRunner specifications]]&lt;br /&gt;
&lt;br /&gt;
=== What can I do with the Neo FreeRunner? ===&lt;br /&gt;
&lt;br /&gt;
The Neo FreeRunner is designed for everyday use by end users and for continued software development and improvements by the Openmoko team and the Openmoko community.&lt;br /&gt;
&lt;br /&gt;
The Openmoko software is not yet ready for everyday use.&lt;br /&gt;
&lt;br /&gt;
The question is almost what can you NOT do with this phone - eventually there will be a huge range of free software applications allowing both end users and developers to get much more out of this phone than a standard &amp;quot;locked&amp;quot; mobile phone using features like the integrated GPS, bluetooth, wifi and accelerometers.&lt;br /&gt;
&lt;br /&gt;
=== What are the buttons on the Neo FreeRunner for? ===&lt;br /&gt;
=== What are the LEDs on the Neo FreeRunner for? ===&lt;br /&gt;
&lt;br /&gt;
There are two buttons on the Neo FreeRunner: One just below the USB socket, and one on the other side, near the top. Both buttons are clear, and both have LEDs behind them. &lt;br /&gt;
&lt;br /&gt;
All buttons and LEDs are software-controlled; that is, their behavior depends on what the installed software implements.&lt;br /&gt;
&lt;br /&gt;
See [[FreeRunner/Buttons and LEDs|here]] for more details, along with some programs which implement a variety of behaviors.&lt;br /&gt;
&lt;br /&gt;
=== What are the benefits of an &amp;quot;open&amp;quot; phone over a &amp;quot;closed&amp;quot; phone? ===&lt;br /&gt;
&lt;br /&gt;
In a conventional closed phone, the handset maker and the mobile network operator work together to provide a service to you that best suits their business model.    The capabilities of a modern smartphone equipped with GPS, Wifi and bluetooth are amazing yet unfortunately inaccessible: many features are &amp;quot;locked down&amp;quot; because they do not suit the network operator.    Up until now it has been difficult to buy a phone on which you have freedom to install sofware which is not controlled by the network operators - Openmoko changes that!&lt;br /&gt;
&lt;br /&gt;
A list of examples of &amp;quot;closed&amp;quot; behaviour has been started here - [[Problems of typical &amp;quot;closed&amp;quot; phones]]&lt;br /&gt;
&lt;br /&gt;
=== What can we expect in future Neos? ===&lt;br /&gt;
&lt;br /&gt;
Please join one of the [http://lists.openmoko.org mailing lists] to follow and participate in this discussion.&lt;br /&gt;
&lt;br /&gt;
=== Purchasing / Shipping / Versions ===&lt;br /&gt;
&lt;br /&gt;
==== Where can I buy the [[Neo FreeRunner]]? How much?====&lt;br /&gt;
&lt;br /&gt;
http://www.openmoko.com. We sell both directly and through a growing list of distributors.&lt;br /&gt;
&lt;br /&gt;
If you buy directly from the Openmoko webshop you will pay USD $399 for the [[Neo FreeRunner]], USD $99 for the debug board. You can also purchase boxes of 10 FreeRunners at a price of USD $369 each. If you don't have a need for 10 units, you can join an existing or form a new group at [[Group_sales]].&lt;br /&gt;
&lt;br /&gt;
==== On what bands does the Neo FreeRunner operate? Will it work in my area? ====&lt;br /&gt;
&lt;br /&gt;
* The Neo FreeRunner is a tri-band GSM phone. It is available in a 850/1800/1900MHz version for North America and a 900/1800/1900MHz version for the rest of the world.&lt;br /&gt;
&lt;br /&gt;
==== Do I need the debug board? ==== &lt;br /&gt;
&lt;br /&gt;
With the Neo FreeRunner and NO debug board you can do:&lt;br /&gt;
* Kernel development&lt;br /&gt;
* Application development&lt;br /&gt;
* U-boot updates(equivalent to PC BIOS). Neo 1973 users should only use a tested image to avoid the possibility of bricking the Neo 1973. Neo FreeRunner users do not have this concern, as a bad u-boot can always be updated using the failsafe u-boot in NOR flash&lt;br /&gt;
* Kernel and/or rootfs updates using [[Dfu-util]].&lt;br /&gt;
&lt;br /&gt;
With a debug board you can additionally do:&lt;br /&gt;
* Use JTAG to debug u-boot, device drivers, or the kernel&lt;br /&gt;
* Use the kernel console&lt;br /&gt;
* Neo 1973 users can unbrick their device if they flash a wrong or non-working u-boot image.&lt;br /&gt;
* Neo FreeRunner users can update u-boot in NOR flash&lt;br /&gt;
&lt;br /&gt;
In summary, it is rare for a Neo FreeRunner user to require a debug board.&lt;br /&gt;
&lt;br /&gt;
To emphasize, the debug board is '''not''' required in order to develop applications, system software, or even kernel or device drivers. The debug board is '''not''' required in order to gain access to the source code or the development tools.&lt;br /&gt;
&lt;br /&gt;
==== Where do I ask a shipping related question? ==== &lt;br /&gt;
&lt;br /&gt;
Visit [http://www.openmoko.com/ openmoko.com]&lt;br /&gt;
&lt;br /&gt;
=== How do I find out what version of hardware I have? ===&lt;br /&gt;
&lt;br /&gt;
:cat /proc/cpuinfo&lt;br /&gt;
&lt;br /&gt;
Search for the line that says &amp;quot;Revision&amp;quot;. There will be 4 digits, of the form &amp;quot;0350&amp;quot;. The '5' in this example indicates hardware revision 5.&lt;br /&gt;
&lt;br /&gt;
== Neo FreeRunner Known Issues==&lt;br /&gt;
&lt;br /&gt;
=== Software issues, distribution-wise ===&lt;br /&gt;
&lt;br /&gt;
Issues relating to software are in the &amp;quot;known issues&amp;quot; section for each distribution. Navigate there via the distributions page - [[Distributions]].&lt;br /&gt;
&lt;br /&gt;
=== Firmware and hardware issues ===&lt;br /&gt;
&lt;br /&gt;
Issues relating to firmware and hardware are in [[Neo_FreeRunner_Hardware_Issues|Neo FreeRunner Hardware Issues]].&lt;br /&gt;
&lt;br /&gt;
Note that some issues might involve a combination of hardware and software.&lt;br /&gt;
&lt;br /&gt;
=== Selected, commonly-encountered issues ===&lt;br /&gt;
&lt;br /&gt;
Some selected known issues that are commonly encountered and reported on mailing lists are described below.&lt;br /&gt;
&lt;br /&gt;
==== My FreeRunner won't register with my cellphone network. What should I do?====&lt;br /&gt;
&lt;br /&gt;
Please see [[Neo_FreeRunner_Hardware_Issues#Some_SIMs_Don.27t_Work|some SIMs don't work]].&lt;br /&gt;
&lt;br /&gt;
==== SIM compatibility: It looks like my SIM card is not working; how do I run diagnostics? ====&lt;br /&gt;
&lt;br /&gt;
Here is how to check: follow [[Manually_using_GSM]] until you get an OK prompt. &lt;br /&gt;
&lt;br /&gt;
For more detailed documentation, please refer to [[FreeRunner_unable_to_work_with_3G_SIM_cards]] and [[Carriers]].&lt;br /&gt;
&lt;br /&gt;
==== I read somewhere that a GSM firmware update is available to fix this problem====&lt;br /&gt;
&lt;br /&gt;
The GSM firmware update is applicable only to the Neo 1973. Any fixes in the update are already implemented in the GSM firmware in the Neo FreeRunner.&lt;br /&gt;
&lt;br /&gt;
==== Why won't the FreeRunner boot even with the charger connected? ====&lt;br /&gt;
&lt;br /&gt;
See [[Neo_FreeRunner_Hardware_Issues#Can.27t_boot_with_discharged_or_missing_battery|Can't boot with discharged or missing battery]].&lt;br /&gt;
 &lt;br /&gt;
==== Flashing (dfu-util) -- dfu-util does not find the phone. ====&lt;br /&gt;
&lt;br /&gt;
In brief, you need to boot the phone into the NAND or NOR u-boot menu before dfu-util will be able to connect. dfu-util uses the USB DFU (Universal Serial Bus Device Firmware Upgrade) protocol, which is only available at the u-boot menu, and '''not''' Ethernet over USB, which is what is available when the phone has booted fully. &lt;br /&gt;
&lt;br /&gt;
Tip: If you're just trying out different distributions, you don't need to flash them with dfu-util; you can try out new distributions by putting them on the microSD card and booting from the card instead. If you'd like to do this instead of flashing, see [[Booting from SD]].&lt;br /&gt;
&lt;br /&gt;
To get the u-boot menu:&lt;br /&gt;
# Press and hold the AUX button &lt;br /&gt;
# Press the Power button until the phone powers on and displays the boot menu&lt;br /&gt;
# Release both buttons &lt;br /&gt;
# Press and release AUX to move the lightbar, so that the menu will not time out and boot the phone). &lt;br /&gt;
&lt;br /&gt;
Also see the wiki pages/sections:&lt;br /&gt;
* [[Booting the Neo FreeRunner]]&lt;br /&gt;
* [[Bootloader#Device Firmware Upgrade]]&lt;br /&gt;
* [[Flashing the Neo FreeRunner]]&lt;br /&gt;
* [[Dfu-util]]&lt;br /&gt;
&lt;br /&gt;
==== Why do I experience poor audio quality or buzzing noises during calls?====&lt;br /&gt;
See [http://wiki.openmoko.org/wiki/Neo_FreeRunner_Hardware_Issues#Poor_Audio_Quality this issue on the FreeRunner Hardware Issues page]&lt;br /&gt;
&lt;br /&gt;
====Suspend/resume may corrupt SD card's partition table====&lt;br /&gt;
&lt;br /&gt;
See [http://wiki.openmoko.org/wiki/Neo_FreeRunner_Hardware_Issues#Suspend.2Fresume_corrupts_SD_card.27s_partition_table this issue on the FreeRunner Hardware Issues page]. See ticket [https://docs.openmoko.org/trac/ticket/1802 #1802].&lt;br /&gt;
&lt;br /&gt;
==Hardware and Usage-related Questions==&lt;br /&gt;
&lt;br /&gt;
=== Booting ===&lt;br /&gt;
&lt;br /&gt;
==== How do I boot into U-boot? How do I select NAND or NOR FLASH? ====&lt;br /&gt;
&lt;br /&gt;
See [[Booting_the_Neo_FreeRunner|here]]&lt;br /&gt;
&lt;br /&gt;
=== Battery and Battery Charging===&lt;br /&gt;
&lt;br /&gt;
==== What is the expected battery life? ====&lt;br /&gt;
See [[Neo FreeRunner (GTA02) Battery#Notes_about_expected_battery_life]] and more battery information in [[Neo_FreeRunner_(GTA02)_Battery]]&lt;br /&gt;
&lt;br /&gt;
==== How do I enable fast charge mode for anything but the official mains charger? ====&lt;br /&gt;
See [[Forcing fast charge mode]].&lt;br /&gt;
&lt;br /&gt;
==== Can the Neo FreeRunner charge when turned off? When suspended? ====&lt;br /&gt;
&lt;br /&gt;
The Neo FreeRunner can '''not''' charge when turned off.&lt;br /&gt;
&lt;br /&gt;
The Neo FreeRunner '''can''' charge when suspended.&lt;br /&gt;
&lt;br /&gt;
==== Can the Neo charge and use devices on a USB hub at the same time? ====&lt;br /&gt;
&lt;br /&gt;
See [[USB_host#Providing_power_to_run_and_charge_the_Neo_while_in_host_mode|here]]&lt;br /&gt;
&lt;br /&gt;
===Wireless Connectivity===&lt;br /&gt;
&lt;br /&gt;
====What kind of wireless connectivity does the FreeRunner have? ====&lt;br /&gt;
&lt;br /&gt;
The FreeRunner has the following connectivity options:&lt;br /&gt;
* Tri-band GSM (850/1800/1900 MHz in North America, and 900/1800/1900 MHz, commonly referred to as &amp;quot;European tri-band&amp;quot;, for other parts of the world). For a list of compatible service providers, see [[Neo1973 compatible cellphone providers]].&lt;br /&gt;
* GPRS Class12/CS4 2.5G (Not EDGE)&lt;br /&gt;
* Bluetooth 2.0 EDR&lt;br /&gt;
* WiFi: Atheros AR6K in [[GTA02#.22Phase_2.22_.28GTA02.2C_.22Mass_Market.22.29|GTA02]]. (No 3G in year 2007 models)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== GSM/GPRS information ====&lt;br /&gt;
&lt;br /&gt;
The following pages contain very useful information:&lt;br /&gt;
&lt;br /&gt;
* [[Gsmd|GSM Daemon]]&lt;br /&gt;
&lt;br /&gt;
* [[GSM|General GSM page]]&lt;br /&gt;
&lt;br /&gt;
* [[Hardware:AT_Commands|AT commands]]&lt;br /&gt;
&lt;br /&gt;
* [http://freeyourphone.de/portal_v1/viewtopic.php?f=21&amp;amp;t=295#p2956 Useful script for GPRS]&lt;br /&gt;
&lt;br /&gt;
==== How do I get the WLAN (802.11, Wi-Fi, wireless network) working? ====&lt;br /&gt;
&lt;br /&gt;
See [[Neo FreeRunner Wifi]]&lt;br /&gt;
&lt;br /&gt;
==== How do I get the GPS working? ====&lt;br /&gt;
&lt;br /&gt;
See [[GTA02 GPS]]&lt;br /&gt;
&lt;br /&gt;
==== It takes a long time (10min+) before the FreeRunner gets the first GPS data/readings ====&lt;br /&gt;
&lt;br /&gt;
See [[GPS Problems]].&lt;br /&gt;
&lt;br /&gt;
==== How do I get Bluetooth working manually? ====&lt;br /&gt;
&lt;br /&gt;
See [[Manually_using_Bluetooth]]&lt;br /&gt;
&lt;br /&gt;
==== How do I use an external Bluetooth keyboard with the FreeRunner ? ====&lt;br /&gt;
..TBA..&lt;br /&gt;
&lt;br /&gt;
====Can I bridge to an Ethernet (wired or unwired) network via a suitable Bluetooth enabled router? ====&lt;br /&gt;
&lt;br /&gt;
Yes - see [http://gentoo-wiki.com/HOWTO_Configure_a_bluetooth_network_access_point this howto for how to configure a linux computer to act as such a router] and [[Bluetooth Support]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== USB ===&lt;br /&gt;
&lt;br /&gt;
==== How do I connect a USB memory-stick etc? ====&lt;br /&gt;
&lt;br /&gt;
This requires an adapter Mini-B 5-pole =&amp;gt; Type A jack or an adapter jack =&amp;gt; jack. See [[USB host]] for more information.&lt;br /&gt;
&lt;br /&gt;
====Once I have such an adapter, can I use it to connect 2 Neos to each other?====&lt;br /&gt;
&lt;br /&gt;
This question is equivalent to '''How to connect two [Unix/Linux] computers via USB cable and what sort of special cable is needed?''' -&amp;gt; http://www.linuxquestions.org/questions/linux-general-1/connecting-two-computers-with-a-usb-cable-data-cable-411073&lt;br /&gt;
&lt;br /&gt;
It should work if one Neo is set to Host mode and the other one set to Device mode. One Neo could give power to the USB-port it the other Neo's battery is low. ''(I have to verify this)''&lt;br /&gt;
&lt;br /&gt;
==== How do I use an external USB keyboard with the FreeRunner ? ====&lt;br /&gt;
&lt;br /&gt;
Run:&lt;br /&gt;
 echo &amp;quot;host&amp;quot; &amp;gt; /sys/devices/platform/s3c2410-ohci/usb_mode&lt;br /&gt;
 echo &amp;quot;1&amp;quot; &amp;gt; /sys/devices/platform/neo1973-pm-host.0/hostmode&lt;br /&gt;
&lt;br /&gt;
These commands will put the FreeRunner into powered USB host mode. After this, just plug in the keyboard and it'll work. Personally, I've made a .desktop file to switch into and out of host mode. &lt;br /&gt;
&lt;br /&gt;
To switch back to unpowered device mode just run:&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;device&amp;quot; &amp;gt; /sys/devices/platform/s3c2410-ohci/usb_mode&lt;br /&gt;
 echo &amp;quot;0&amp;quot; &amp;gt; /sys/devices/platform/neo1973-pm-host.0/hostmode&lt;br /&gt;
&lt;br /&gt;
Finally you will need a &lt;br /&gt;
USB Type A Female to Female adapter. For more details see&lt;br /&gt;
[[Specialized_USB_cables#Attaching_the_Neo_.28acting_as_a_USB_host.29_to_a_USB_device|here]]&lt;br /&gt;
&lt;br /&gt;
=== Display ===&lt;br /&gt;
&lt;br /&gt;
==== Can the phone play VGA video? ====&lt;br /&gt;
&lt;br /&gt;
No, it can do about 20 fps QVGA with software, and something beetween QVGA and VGA playing MPEG-4 using hardware (at resonable fps). Scaling is also done with GPU hardware.&lt;br /&gt;
&lt;br /&gt;
==== How to change the background picture of the root window? ====&lt;br /&gt;
&lt;br /&gt;
{{Note|This probably differs for each distribution? Need to insert, or link to, relevant info for each. --[[User:Eddsouza|eddsouza]] 09:29, 7 September 2008 (UTC)}}&lt;br /&gt;
&lt;br /&gt;
Look at [[Today/2007.2#Adjust_UI_components_at_runtime]].&lt;br /&gt;
&lt;br /&gt;
=== Storage ===&lt;br /&gt;
&lt;br /&gt;
==== What microSDHC-cards are supported? ====&lt;br /&gt;
&lt;br /&gt;
See [[Supported_microSD_cards|here]]&lt;br /&gt;
&lt;br /&gt;
===System-level information===&lt;br /&gt;
&lt;br /&gt;
==== What hardware signals are available?====&lt;br /&gt;
&lt;br /&gt;
To simplify extending the hardware, various signals of interest are brought out via the JTAG connector and can be easily accessed with the debug board:&lt;br /&gt;
&lt;br /&gt;
(TBA: List of signals)&lt;br /&gt;
&lt;br /&gt;
Some additional signals that did not fit on the JTAG connector are brought out to solder pads:&lt;br /&gt;
&lt;br /&gt;
(TBA: List of signals)&lt;br /&gt;
&lt;br /&gt;
==== Is the JTAG interface that comes with GTA01 compatible with GTA02?====&lt;br /&gt;
&lt;br /&gt;
Yes&lt;br /&gt;
&lt;br /&gt;
==== How do I get low-level hardware-related functions, like power up device, dump register? ====&lt;br /&gt;
&lt;br /&gt;
See [[GTA02_sysfs]]&lt;br /&gt;
&lt;br /&gt;
=== Inputs ===&lt;br /&gt;
&lt;br /&gt;
==== How can I type a '/' in the software keyboard? ====&lt;br /&gt;
&lt;br /&gt;
See [[Switching Keyboards]]&lt;br /&gt;
&lt;br /&gt;
==== How do I get a QWERTY layout software keyboard?====&lt;br /&gt;
&lt;br /&gt;
See [[Switching Keyboards]]&lt;br /&gt;
&lt;br /&gt;
=== Miscellaneous ===&lt;br /&gt;
&lt;br /&gt;
====Will Openmoko &amp;quot;Just Work&amp;quot; with Mac OS X? ====&lt;br /&gt;
&lt;br /&gt;
There has been some discussion of this on the mailing list. There is motivation, and there are interested developers. &lt;br /&gt;
Not being a Mac OS X user, I don't know enough&lt;br /&gt;
to summarize the discussion to answer this question. Can someone please fill in?&lt;br /&gt;
&lt;br /&gt;
For IP over USB cable connectivity, it is planned to improve/adapt the AJZaurusUSB driver, allowing ssh into the Openmoko.&lt;br /&gt;
&lt;br /&gt;
It is expected that (Bluetooth/UB) SyncML based interoperation for&lt;br /&gt;
contacts and events can easily be achieved by a patch&lt;br /&gt;
to the Apple iSync configuration tables.&lt;br /&gt;
&lt;br /&gt;
There is an open source implementation of Cocoa (GNUstep) that aims to run MacOS X compatible applications (sort of&lt;br /&gt;
PPC/x86/ARM universal binaries) on Openmoko devices: mySTEP.&lt;br /&gt;
&lt;br /&gt;
==Software==&lt;br /&gt;
&lt;br /&gt;
===General Questions===&lt;br /&gt;
&lt;br /&gt;
====Is it completely free software/open source? ====&lt;br /&gt;
&lt;br /&gt;
Yes. All software that runs on the main CPU and can be updated by the user is available in source.&lt;br /&gt;
&lt;br /&gt;
Firmware in &amp;quot;black box&amp;quot; hardware modules that can not be modified by users is not available in source form. Effectively, these modules are &amp;quot;hardware only&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
This allows, for example, that the driver for the GSM module be completely open sourced without violating any FCC rules.&lt;br /&gt;
&lt;br /&gt;
====Can the software do/connect to/... ====&lt;br /&gt;
&lt;br /&gt;
Reviews of the latest &amp;quot;bleeding edge&amp;quot; daily builds of the Openmoko software stack can be seen [[Snapshot_review|here]]&lt;br /&gt;
&lt;br /&gt;
At the moment, the answer to many other questions is &amp;quot;no&amp;quot;. The phone is at the moment a small Linux box with a touchscreen, a working dialer and some prototype apps.  Most do not function in any way that would be suitable for end-users.  If you want to add a feature or application request, then look over the existing [[Applications]] and either add one, or add a feature request to the applications page.&lt;br /&gt;
&lt;br /&gt;
==== Does Openmoko run on any other hardware? ====&lt;br /&gt;
&lt;br /&gt;
You can run it on your [[How_to_run_Openmoko_Apps_on_PC|PC]].  You may be able to run it on other [[Openmoko-supported_hardware | mobile platforms]]&lt;br /&gt;
&lt;br /&gt;
==== Can Java applications from other mobile phones run on the FreeRunner? ====&lt;br /&gt;
&lt;br /&gt;
I think a lot of work must still be done, but [[Java|this]] wiki page has some information&lt;br /&gt;
&lt;br /&gt;
===Distributions===&lt;br /&gt;
&lt;br /&gt;
====What is the stock distribution image that comes on the Neo FreeRunner?====&lt;br /&gt;
&lt;br /&gt;
The 2007.2 distribution - see [[Distributions#2007.2| 2007.2 factory default software image]]&lt;br /&gt;
&lt;br /&gt;
=====Are there any known issues with the factory-installed 2007.2 image on the Neo FreeRunner?=====&lt;br /&gt;
&lt;br /&gt;
Yes, see [[Om_2007.2#Known_Issues|2007.2 Known Issues]]&lt;br /&gt;
&lt;br /&gt;
===== Where can I download and reinstall the factory default image? =====&lt;br /&gt;
&lt;br /&gt;
See [[Flashing_the_Neo_FreeRunner|Flashing the Neo FreeRunner]]&lt;br /&gt;
&lt;br /&gt;
====What alternate distributions are available for the Neo FreeRunner?====&lt;br /&gt;
&lt;br /&gt;
See [[Distributions|Distributions]]&lt;br /&gt;
&lt;br /&gt;
==== How do I find out what image versions are in use on the phone? ====&lt;br /&gt;
&lt;br /&gt;
You can run the commands given below on the phone (in an SSH session from your host PC, or in the Terminal application on the phone itself)&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;5&amp;quot; align=&amp;quot;left&amp;quot;&lt;br /&gt;
! To find out&lt;br /&gt;
! Run&lt;br /&gt;
|- &lt;br /&gt;
| Kernel version that is currently running&lt;br /&gt;
| &lt;br /&gt;
  uname -a&lt;br /&gt;
|-&lt;br /&gt;
| The version of the root filesystem that you are currently using&lt;br /&gt;
| &lt;br /&gt;
  cat /etc/version &lt;br /&gt;
or &lt;br /&gt;
  cat /etc/om-version&lt;br /&gt;
|-&lt;br /&gt;
| The versions of u-boot on the phone (The FreeRunner has one u-boot image in NOR memory, and one in NAND - see [[Booting the Neo FreeRunner]] for more information)&lt;br /&gt;
| &lt;br /&gt;
  grep  Bootloader /dev/mtdblock0  (yields the NOR u-boot version)&lt;br /&gt;
or&lt;br /&gt;
  grep  Bootloader /dev/mtdblock1  (yields the NAND u-boot version)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
====Where do I get the latest version of the official Openmoko image, 2008.8 (also known as ASU)?====&lt;br /&gt;
&lt;br /&gt;
See [[Download#Om_2008.8_images_.28ASU.29| download Om 2008.8 images]]&lt;br /&gt;
&lt;br /&gt;
===== Why are the buttons in TangoGPS too large? The zoom out is missing! =====&lt;br /&gt;
&lt;br /&gt;
There is no GTK engine or theme installed with the ASU build.  Fortunately, this is easy to fix!&lt;br /&gt;
&lt;br /&gt;
At a terminal:&lt;br /&gt;
:&amp;lt;tt&amp;gt;# opkg install moko-gtk-theme moko-gtk-engine&amp;lt;/tt&amp;gt;&lt;br /&gt;
:&amp;lt;tt&amp;gt;# ln -s /usr/share/themes/Moko/gtk-2.0/gtkrc /home/root/.gtkrc-2.0&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now you have pretty colors and widgets, but the font is too big.  Edit &amp;lt;tt&amp;gt;/usr/share/themes/Moko/gtk-2.0/gtkrc&amp;lt;/tt&amp;gt; in your favorite text editor and add the following line:&lt;br /&gt;
:&amp;lt;tt&amp;gt;gtk-font-name = &amp;quot;Sans 4&amp;quot;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To use the openmoko icon theme, install it with:&lt;br /&gt;
:&amp;lt;tt&amp;gt;# opkg install openmoko-icon-theme-standard2&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and enable it editing the &amp;lt;tt&amp;gt;/usr/share/themes/Moko/gtk-2.0/gtkrc&amp;lt;/tt&amp;gt; adding the line:&lt;br /&gt;
:&amp;lt;tt&amp;gt;gtk-icon-theme-name=&amp;quot;openmoko-standard&amp;quot;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You shouldn't even need to restart the device, although you will need to restart any GTK-based programs.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Can the Neo FreeRunner dual boot? Multiple boot?====&lt;br /&gt;
&lt;br /&gt;
Since the Neo FreeRunner can boot from the micro SD card, you can install and boot from as many distributions as will fit on your card. See [[Boot_from_sd_card|Booting from SD]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====How do I install Debian on the Neo FreeRunner?====&lt;br /&gt;
&lt;br /&gt;
See [[Debian#Installation|Debian Installation]]&lt;br /&gt;
&lt;br /&gt;
=====Are there any known issues with Debian on the Neo FreeRunner?=====&lt;br /&gt;
&lt;br /&gt;
See [[Debian#Known_Issues|Debian Known Issues]]&lt;br /&gt;
&lt;br /&gt;
=====How do I replace the matchbox window manager with the xfce window manager?=====&lt;br /&gt;
&lt;br /&gt;
Replace the matchbox-wm line in zhone-session with xfwm4 to start the xfce-wm.&lt;br /&gt;
&lt;br /&gt;
Here's my (Fox Mulder) /usr/bin/zhone-session file which works with xfwm and matchbox keyboard popup:&lt;br /&gt;
&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 &lt;br /&gt;
 #zhone &amp;amp;&lt;br /&gt;
 exec startxfce4 &amp;amp;&lt;br /&gt;
 matchbox-keyboard-toggle &amp;amp;&lt;br /&gt;
 #exec matchbox-window-manager -use_titlebar yes&lt;br /&gt;
 exec xfwm4&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Applications ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====What software is on the phone?====&lt;br /&gt;
&lt;br /&gt;
At the moment, almost no 'end-user' applications are present and working in a usable state.&lt;br /&gt;
It is possible to make and receive calls in some software revisions, this frequently breaks though.&lt;br /&gt;
&lt;br /&gt;
====What software can be installed on the phone?====&lt;br /&gt;
&lt;br /&gt;
Pretty much any that can be cross-compiled for the ARM architecture.&lt;br /&gt;
&lt;br /&gt;
====Will it be possible to use popular VoIP applications on the Openmoko platform? ====&lt;br /&gt;
&lt;br /&gt;
Since it has WiFi the FreeRunner should be a good platform for VOIP use.    &lt;br /&gt;
&lt;br /&gt;
In either case please check for softphone apps ported to the Openmoko distribution at the [http://projects.openmoko.org/  projects] page. We need to focus efforts on free software. Not convincing non-free software companies to release binaries for our Neos.&lt;br /&gt;
&lt;br /&gt;
====Will it be possible to use popular Instant Messaging applications ? ====&lt;br /&gt;
&lt;br /&gt;
There many Open Source IM clients, many of which have a plugin architecture and so support the use of more than one IM protocol, even simultaneously. One example is [[Pidgin]], formerly called GAIM. GPRS does induce a certain amount of latency but that should not be a problem for simple, text-oriented chat between parties. And the GTA02's WiFi  will make it even better.&lt;br /&gt;
&lt;br /&gt;
==== Does it support Flash so can I watch YouTube? ====&lt;br /&gt;
You don't really need Flash to watch YouTube videos, for example, if you want to watch www.youtube.com/watch?v=k9QLdK6pFCI just install mplayer and use this command: &lt;br /&gt;
 mplayer http://ytpocket.com/getflv.php?id=k9QLdK6pFCI&lt;br /&gt;
or use this small script with the video URL as the first parametre:&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 vid=`echo &amp;quot;$1&amp;quot; | sed 's/.*\?.*=\(.*\)/\1/'`&lt;br /&gt;
 mplayer http://ytpocket.com/getflv.php?id=$vid&lt;br /&gt;
&lt;br /&gt;
=== Package Management===&lt;br /&gt;
&lt;br /&gt;
==== How do I install and manage software on Openmoko? ====&lt;br /&gt;
&lt;br /&gt;
See [http://handhelds.org/moin/moin.cgi/Ipkg here]&lt;br /&gt;
&lt;br /&gt;
==== What about opkg? ====&lt;br /&gt;
&lt;br /&gt;
See [[Opkg|here]]&lt;br /&gt;
&lt;br /&gt;
==== What is the meaning of the error codes from ipkg? ====&lt;br /&gt;
&lt;br /&gt;
See [[Opkg#Error_Codes|here]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Does opkg support packages autocompletion ? ====&lt;br /&gt;
&lt;br /&gt;
It's possible now, see [http://tropfacile.info/?/Linux/28-Openmoko-Opkg-Autocompletion-With-Packages-Names The opkg autocompletion]&lt;br /&gt;
&lt;br /&gt;
===Development===&lt;br /&gt;
&lt;br /&gt;
====How can I compile programs for the Neo FreeRunner? ====&lt;br /&gt;
&lt;br /&gt;
See [[Toolchain]].&lt;br /&gt;
&lt;br /&gt;
====Is there an emulator available for Openmoko? ====&lt;br /&gt;
&lt;br /&gt;
For a lot of testing and development work you can simply run Openmoko directly on your PC.&lt;br /&gt;
&lt;br /&gt;
=====QEMU=====&lt;br /&gt;
&lt;br /&gt;
QEMU can emulate the Neo 1973 and the Neo FreeRunner. The [[MokoMakefile]] has support for automatically building, flashing, and running [[Openmoko under QEMU|the Neo emulator]].&lt;br /&gt;
&lt;br /&gt;
*Ubuntu users can follow the instructions in [[Automatic_emulation_in_Ubuntu]]&lt;br /&gt;
&lt;br /&gt;
*Users of other Linux distributions can try the following:&lt;br /&gt;
:&amp;quot;make qemu” will build qemu-neo1973, download the latest official openmoko images, flash the images into the virtual NAND flash, and run the emulator.&lt;br /&gt;
&lt;br /&gt;
See [[Qemu]] for more advanced information on running Openmoko in Qemu.&lt;br /&gt;
&lt;br /&gt;
=====Xoo=====&lt;br /&gt;
&lt;br /&gt;
[http://projects.o-hand.com/xoo Xoo]. Koen says: &amp;quot;Xoo should be enough for most applications people will develop, since most don't need access to the GSM uart directly. If you're hardcore you could use qemu + xoo, but that still doesn't emulate all the hardware quirks (e.g. unaligned access)&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Update: Stefan Schmidt has resized the [[Neo1973]] Mock-up and written a small description for xoo. In his words:&lt;br /&gt;
&lt;br /&gt;
It's not really usable at all, as you need a really high screen resolution to fit the whole picture on your screen. And of course the dpi are wrong. Even no buttons because I can't remember where they are at the case.&lt;br /&gt;
&lt;br /&gt;
http://www.datenfreihafen.org/~stefan/OpenMoko/neo1973-xoo-device.tar.bz2&lt;br /&gt;
&lt;br /&gt;
Start with 'xoo --device /path/to/neo1973.xml'&lt;br /&gt;
&lt;br /&gt;
Some more details [[Getting_Openmoko_working_on_host_with_Xoo|here]].&lt;br /&gt;
&lt;br /&gt;
=====Xephyr=====&lt;br /&gt;
&lt;br /&gt;
Or use Xephyr directly with locally compiled programs (e.g. matchbox svn + openmoko):&lt;br /&gt;
 Xephyr -screen 480x640 -nolisten tcp -ac :1 &amp;amp;&lt;br /&gt;
 export DISPLAY=:1&lt;br /&gt;
 export LD_LIBRARY_PATH=/usr/local/lib&lt;br /&gt;
 matchbox-window-manager -display $DISPLAY -use_titlebar no \&lt;br /&gt;
  -use_super_modal yes -use_lowlight yes -use_dialog_mode static \&lt;br /&gt;
  -use_cursor yes &amp;amp;&lt;br /&gt;
 matchbox-panel --geometry=480x44 --end-applets=clock &amp;amp;&lt;br /&gt;
 openmoko-footer &amp;amp;&lt;br /&gt;
 openmoko-taskmanager &amp;amp;&lt;br /&gt;
&lt;br /&gt;
====Where can I find some type of tutorial for a 'Hello, world' on Openmoko? ====&lt;br /&gt;
&lt;br /&gt;
This should get you started:&lt;br /&gt;
* [[Building_a_hello_world_application]]&lt;br /&gt;
* http://www.gtk.org/documentation.html#Tutorials&lt;br /&gt;
&lt;br /&gt;
====Can PalmOS apps applications be ported to run on Openmoko? ====&lt;br /&gt;
&lt;br /&gt;
Making legacy apps written for the &amp;quot;Garnet&amp;quot; OS (née &amp;quot;Palm OS&amp;quot;) run on Linux&lt;br /&gt;
is decidedly non-trivial.&lt;br /&gt;
&lt;br /&gt;
PalmOS apps are in general very hard to simply 'port'. Particularly well-designed programs may make it possible.&lt;br /&gt;
&lt;br /&gt;
The ACCESS Linux Platform will include Garnet on Host (GHost), a PalmOS emulator that will support M6800 (68k) and ARM PalmOS applications. This part (GarnetVM and the .prc loader) will however be closed-source and likely under a restrictive license (fact confirmed by ACCESS Co. employees), making it rather unusable. In addition GarnetVM depends on Hiker and other packages.&lt;br /&gt;
&lt;br /&gt;
It is possible that POSE, an emulator that simulates a Palm device on a Linux host could be used to allow 68k based applications to run.  This emulator has been around a long time; one expects that it will also run on Openmoko, but this has to be considered a short-term bandaid rather than a long-term solution.&lt;br /&gt;
&lt;br /&gt;
Hopefully emulation will be necessary only for M68000 code (pre-PalmOS 5) while native ARM programs can run natively under Linux, provided a proper set of PalmOS libraries and a .prc executable loader.&lt;br /&gt;
&lt;br /&gt;
==== Does it support Java? ====&lt;br /&gt;
It will have eventually, if you help us to get it working. Some good places to keep track of would be [http://projects.openmoko.org/projects/java-pkg/ projects.openmoko.org] and [https://phoneme.dev.java.net/ PhoneME].&lt;br /&gt;
&lt;br /&gt;
Project [[https://wiki.evolvis.org/jalimo/index.php/Jalimo Jalimo]] is a project aiming to provide a Java stack on mobile devices. There is a [https://wiki.evolvis.org/jalimo/index.php/Openmoko port of Jalimo] for Openmoko.&lt;br /&gt;
The [[Debian]] distribution supports CacaoVM and JamVM through apt-get. See [[Java]] for more infos.&lt;br /&gt;
&lt;br /&gt;
==== Does it support Ruby? ====&lt;br /&gt;
&lt;br /&gt;
For Ruby 1.9, please refer to http://blog.sparkymat.net/2008/08/10/ruby-19-on-openmoko/&lt;br /&gt;
&lt;br /&gt;
For Ruby 1.8.6, please refer to http://blog.wolfman.com/articles/2008/08/10/ruby-1-8-6-on-openmoko-freerunner&lt;br /&gt;
&lt;br /&gt;
==== Does it support Python? ====&lt;br /&gt;
&lt;br /&gt;
Yes, with some caveats. See [[Python]] for more information.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====How do I dump details about X11 configuration and extensions? ====&lt;br /&gt;
&lt;br /&gt;
Run the command xdpyinfo. Generally, you would do this via an SSH session to the phone, so you may need to first &lt;br /&gt;
&lt;br /&gt;
 export DISPLAY=&amp;quot;:0.0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
and then run&lt;br /&gt;
&lt;br /&gt;
 xdpyinfo&lt;br /&gt;
&lt;br /&gt;
For an example invocation, see [http://lists.openmoko.org/pipermail/community/2007-January/001353.html xdpyinfo output].&lt;br /&gt;
&lt;br /&gt;
== Distribution Customization ==&lt;br /&gt;
&lt;br /&gt;
{{Note| Suggestion: this should be split off into a separate page, since many of the questions below aren't really overview-level but specialized; a question like &amp;quot;How do I customize a distribution?&amp;quot; could be added to the Software - Distributions part, linking to the new page. --[[User:Eddsouza|eddsouza]] 07:35, 7 September 2008 (UTC)}}&lt;br /&gt;
&lt;br /&gt;
=== Compilation &amp;amp; packaging ===&lt;br /&gt;
==== What is the 'overlay' approach to bitbake development? ====&lt;br /&gt;
:You can create a local overlay for the bitbake build chain and develop in the overlay as described in [[Application_Development_Crash_Course| Application Development Crash Course]].&lt;br /&gt;
&lt;br /&gt;
==== Which .bb files are related with the Openmoko? ====&lt;br /&gt;
==== Are there any configuration files for Openmoko? ====&lt;br /&gt;
==== How can I port an application written with autotools to Openmoko? ====&lt;br /&gt;
After you source the [[Toolchain|Openmoko toolchain]] variables, the Openmoko processor compiler becomes the default compiler. You can compile any GNU - like project just typing ''./configure --host i686'' and then ''make'' - it will produce libraries and executables as expected. Just these executables will not run on your i686 host - they will run on Openmoko ARM processor. Use scp to upload the executables to your phone.&lt;br /&gt;
&lt;br /&gt;
==== How can I add an application written with autotools to the openmoko tree? ====&lt;br /&gt;
&lt;br /&gt;
==== How can I make changes in the openmoko applications? ====&lt;br /&gt;
==== How can I submit my changes? ====&lt;br /&gt;
==== Can I use the mokomakefile in the development process? How? ====&lt;br /&gt;
&lt;br /&gt;
:Yes, [[MokoMakefile]] can be used in the development process.  See [[MokoMakefile#Developing_with_MokoMakefile| Developing with MokoMakefile]].&lt;br /&gt;
&lt;br /&gt;
==== What's the way to include/exclude a newly added package to/from the final rootfs? ====&lt;br /&gt;
==== Where do the final ipk &amp;amp; binary files reside? ====&lt;br /&gt;
:ipk files are in &lt;br /&gt;
 ./build/tmp/deploy/glibc/ipk/&lt;br /&gt;
:binary images are in&lt;br /&gt;
 ./build/tmp/deploy/glibc/images/fic-gta01/&lt;br /&gt;
&lt;br /&gt;
==== How can I add an application to the applications list? ====&lt;br /&gt;
==== How can I assign an image to my new application to be seen in the applications list? ====&lt;br /&gt;
The Openmoko project tree contains the folder 'data' where you can put any 128*128 icon. You need to mention the icon in two places in this folder: &lt;br /&gt;
* Makefile.am must contain the line dist_appicon_DATA = &amp;lt;icon_name&amp;gt;.png&lt;br /&gt;
* The &amp;lt;application_name&amp;gt;.desktop file that must be in this folder should contain the Icon=&amp;lt;icon_name&amp;gt; (without file type).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Misc==&lt;br /&gt;
&lt;br /&gt;
===On the lists on lists.openmoko.org, should replies be added above or below the original text? ===&lt;br /&gt;
&lt;br /&gt;
Please reply UNDER post.&lt;br /&gt;
&lt;br /&gt;
===How can I find out if a question or topic has already been discussed on the mailing lists? ===&lt;br /&gt;
&lt;br /&gt;
By searching the mailing list archives. For example, using Google searches:&lt;br /&gt;
&lt;br /&gt;
 site:openmoko.org text&lt;br /&gt;
&lt;br /&gt;
For example, to search for accelerometer:&lt;br /&gt;
&lt;br /&gt;
 site:openmoko.org accelerometer&lt;br /&gt;
&lt;br /&gt;
If you only want to read the &amp;quot;official&amp;quot; mails from FIC people or from Openmoko people:&lt;br /&gt;
&lt;br /&gt;
 site:openmoko.org text &amp;quot;at fic.com.tw&amp;quot;&lt;br /&gt;
 site:openmoko.org text &amp;quot;at openmoko.org&amp;quot;&lt;br /&gt;
&lt;br /&gt;
For example to search for &amp;quot;release date&amp;quot; from FIC people:&lt;br /&gt;
&lt;br /&gt;
 site:openmoko.org &amp;quot;release date&amp;quot; &amp;quot;at fic.com.tw&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Alternatively you can use the [http://www.google.com/coop/cse?cx=018430699993342716089%3Aszsaurhronw custom Openmoko search engine] that is using [http://www.google.com/coop/ Google Co-op].&lt;br /&gt;
&lt;br /&gt;
===how many dead pixels may the LCM have before calling it defect? ===&lt;br /&gt;
&lt;br /&gt;
The answer for the display used in GTA01 and GTA02 is '2'&lt;br /&gt;
&lt;br /&gt;
=== how many visits does this wiki have? ===&lt;br /&gt;
See this [[Wiki_statistic_numbers|wiki's statistics]] page.&lt;br /&gt;
&lt;br /&gt;
=Historical=&lt;br /&gt;
The Neo1973 was last available in Febuary 2008. &lt;br /&gt;
&lt;br /&gt;
==Neo1973 Hardware== &lt;br /&gt;
&lt;br /&gt;
===What are the hardware specifications of Neo 1973 ? ===&lt;br /&gt;
&lt;br /&gt;
See page [[Neo1973_Hardware]] and category [[:Category:Neo1973 Hardware | Neo1973 Hardware]] and [[Disassembling Neo1973]]&lt;br /&gt;
&lt;br /&gt;
===How do I input text? ===&lt;br /&gt;
&lt;br /&gt;
Use provided keyboard app.&lt;br /&gt;
&lt;br /&gt;
Use Bluetooth keyboard.&lt;br /&gt;
&lt;br /&gt;
For more methods and ideas see [[Wishlist:Text_Input]].&lt;br /&gt;
&lt;br /&gt;
===Can I record calls and/or play audio files in calls? ===&lt;br /&gt;
&lt;br /&gt;
Yes, audio path from GSM to/from mic and speakers is completely controllable by user. For example recording calls (both sides) and implementing an [[Answering Machine]] is possible. Also using text-&amp;gt;speech should be possible or modifying outgoing voice. Currently there is no software bundled in phone to do this.&lt;br /&gt;
There are only 2 A/D inputs and three D/A outputs (one dedicated to the earpiece). This means that stereo audio playback cannot happen at the same time as the [[Answering Machine]] functionality, amongst other things. See the audio page. [[Neo1973_Audio_Subsystem|Neo1973 Audio Subsystem]]&lt;br /&gt;
&lt;br /&gt;
===What is the battery life? ===&lt;br /&gt;
&lt;br /&gt;
There has been no word on this so far, but see [[Neo1973 Power Management#Approximate_power_draw_of_various_subsystems|these estimates]] for a rough idea.  More information about the battery [[Neo1973 Battery|here]].&lt;br /&gt;
&lt;br /&gt;
=== USB ===&lt;br /&gt;
&lt;br /&gt;
====What can I do with the USB port on the Neo? ====&lt;br /&gt;
Charge the phone, communicate with it over USB-serial, or USB-networking.&lt;br /&gt;
&lt;br /&gt;
Plug external devices, such as wifi, cameras, or mass-storage devices.&lt;br /&gt;
&lt;br /&gt;
====What can't I do with the USB? ====&lt;br /&gt;
&lt;br /&gt;
The only limitation on current hardware seems to be no usb 2.0 support, which means slower communication with 2.0 devices.&lt;br /&gt;
&lt;br /&gt;
====Why is only USB 1.1 provided? ====&lt;br /&gt;
&lt;br /&gt;
The processor has USB 1.1 built in. One with USB2 built in would have been more expensive, and might not be open.&lt;br /&gt;
&lt;br /&gt;
The FreeRunner has the same processor as the Neo1973.&lt;br /&gt;
&lt;br /&gt;
====What are the details of the USB port on the Neo? How does it compare to USB On-The-Go? ====&lt;br /&gt;
&lt;br /&gt;
The Neo will have mini-USB-B, and will be able to function as either a host or a device. It will NOT be USB On-The-Go.  OTG is a complex specification, and it comprises way more than just&lt;br /&gt;
an AB socket, but also electrical and software components which cannot be provide by the S3C2410.&lt;br /&gt;
&lt;br /&gt;
You will need a special Mini-B to regular-B cable (note that this won't actually comply with the USB standard:  a compliant cable has to have an A or Mini-A plug on one end, and B or Mini-B on the other).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Application Developer]]&lt;br /&gt;
[[Category:Basic End User]]&lt;br /&gt;
[[Category:FAQ]]&lt;/div&gt;</summary>
		<author><name>Michaelshiloh</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/FAQ</id>
		<title>FAQ</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/FAQ"/>
				<updated>2008-10-09T22:17:16Z</updated>
		
		<summary type="html">&lt;p&gt;Michaelshiloh: /* How do I connect a USB memory-stick etc? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|FAQ}}&lt;br /&gt;
&lt;br /&gt;
== Getting Started with your Neo FreeRunner == &amp;lt;!-- Do not rename section! This section is linked from pages which linked to Getting_Started_FAQ. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== I just received my Neo FreeRunner. Where should I start?===&lt;br /&gt;
&lt;br /&gt;
See [[Getting_Started_with_your_Neo_FreeRunner|Getting Started with your Neo FreeRunner]]&lt;br /&gt;
&lt;br /&gt;
=== I have a problem or a question. Where should I go? ===&lt;br /&gt;
&lt;br /&gt;
First place to check is this FAQ. &lt;br /&gt;
&lt;br /&gt;
If your question isn't answered here, you should search the archives of the [http://lists.openmoko.org/mailman/listinfo/community community] or [http://lists.openmoko.org/mailman/listinfo/support support] mailing lists&lt;br /&gt;
&lt;br /&gt;
Next, try a larger Google search. &lt;br /&gt;
&lt;br /&gt;
If you still haven't found the answer to your question, post it on the appropriate list, [http://lists.openmoko.org/mailman/listinfo/community community] or [http://lists.openmoko.org/mailman/listinfo/support support]. &lt;br /&gt;
&lt;br /&gt;
Provide detailed information about what you are trying to find out, and use&lt;br /&gt;
the Subject line to summarize your question. More tips to asking effective&lt;br /&gt;
questions can be found&lt;br /&gt;
[[http://www.catb.org/~esr/faqs/smart-questions.html|here]]&lt;br /&gt;
&lt;br /&gt;
If your question requires confidentiality, you are welcome to contact [mailto:michael@openmoko.org Michael Shiloh] directly.&lt;br /&gt;
&lt;br /&gt;
You might also look for [[Openmoko_Local_Groups|local Openmoko users]] to find&lt;br /&gt;
some local support. A few minutes with a live person might solve a simple&lt;br /&gt;
misunderstanding that would take hours to understand via email. (If a local&lt;br /&gt;
club doesn't exist, this might be the perfect opportunity to start one!)&lt;br /&gt;
&lt;br /&gt;
=== I'd like to develop a custom product or application based on Openmoko and/or the Neo FreeRunner. How should I proceed? ===&lt;br /&gt;
&lt;br /&gt;
Send mail to michael@openmoko.org or to steve@openmoko.com&lt;br /&gt;
&lt;br /&gt;
=== Where are the latest downloads? ===&lt;br /&gt;
&lt;br /&gt;
Right [[Download|here]].&lt;br /&gt;
&lt;br /&gt;
==Openmoko==&lt;br /&gt;
&lt;br /&gt;
===What is Openmoko?===&lt;br /&gt;
Openmoko is two things:&lt;br /&gt;
&lt;br /&gt;
Openmoko is a Linux distribution designed for open mobile computing platforms, such as, but not limited to, cellphones.&lt;br /&gt;
&lt;br /&gt;
Openmoko is the company behind the Openmoko Linux distribution. Openmoko also manufactures mobile computing platforms, such as the Neo FreeRunner.&lt;br /&gt;
&lt;br /&gt;
===What is the purpose of this project?===&lt;br /&gt;
&lt;br /&gt;
By providing a completely open source Linux distribution, and by opening the schematics and CAD files, Openmoko's goal is to nurture explosive innovation (such as occurred with the Personal Computer) in the field of connected mobile computing, cellphones, and ubiquitous computing.&lt;br /&gt;
&lt;br /&gt;
===How do I join the Openmoko project? ===&lt;br /&gt;
&lt;br /&gt;
Join one or more of the mailing lists. A great place to start is the community list.&lt;br /&gt;
&lt;br /&gt;
Browse the wiki, and help improve it.&lt;br /&gt;
&lt;br /&gt;
Start or join an [[http://projects.openmoko.org/ Openmoko project]].&lt;br /&gt;
&lt;br /&gt;
Start or join a local group near you.&lt;br /&gt;
&lt;br /&gt;
===I'm not a programmer, but I have other skills. Can I still be of use? ===&lt;br /&gt;
&lt;br /&gt;
Absolutely. If you're a visual artist, you can help us with icons and other visuals. Musicians can help contribute ringtones and other sounds. Marketing? Sales? Information visualization? Join the community mailing lists, introduce yourself, and you'll soon find a place to put your skills to good use.&lt;br /&gt;
&lt;br /&gt;
== Neo FreeRunner - Introductory/Overview/Conceptual Information==&lt;br /&gt;
&lt;br /&gt;
=== What is the [[Neo FreeRunner]]? === &lt;br /&gt;
&lt;br /&gt;
The [[Neo FreeRunner]] is an open cellphone designed for the Openmoko Linux distribution. By open we mean that (a) all chips have been chosen to allow their drivers to be completely open sourced and (b) the schematics and the plastic (CAD) files are available as well.&lt;br /&gt;
&lt;br /&gt;
For more details, see [[Neo FreeRunner|Neo FreeRunner specifications]]&lt;br /&gt;
&lt;br /&gt;
=== What can I do with the Neo FreeRunner? ===&lt;br /&gt;
&lt;br /&gt;
The Neo FreeRunner is designed for everyday use by end users and for continued software development and improvements by the Openmoko team and the Openmoko community.&lt;br /&gt;
&lt;br /&gt;
The Openmoko software is not yet ready for everyday use.&lt;br /&gt;
&lt;br /&gt;
The question is almost what can you NOT do with this phone - eventually there will be a huge range of free software applications allowing both end users and developers to get much more out of this phone than a standard &amp;quot;locked&amp;quot; mobile phone using features like the integrated GPS, bluetooth, wifi and accelerometers.&lt;br /&gt;
&lt;br /&gt;
=== What are the benefits of an &amp;quot;open&amp;quot; phone over a &amp;quot;closed&amp;quot; phone? ===&lt;br /&gt;
&lt;br /&gt;
In a conventional closed phone, the handset maker and the mobile network operator work together to provide a service to you that best suits their business model.    The capabilities of a modern smartphone equipped with GPS, Wifi and bluetooth are amazing yet unfortunately inaccessible: many features are &amp;quot;locked down&amp;quot; because they do not suit the network operator.    Up until now it has been difficult to buy a phone on which you have freedom to install sofware which is not controlled by the network operators - Openmoko changes that!&lt;br /&gt;
&lt;br /&gt;
A list of examples of &amp;quot;closed&amp;quot; behaviour has been started here - [[Problems of typical &amp;quot;closed&amp;quot; phones]]&lt;br /&gt;
&lt;br /&gt;
=== What can we expect in future Neos? ===&lt;br /&gt;
&lt;br /&gt;
Please join one of the [http://lists.openmoko.org mailing lists] to follow and participate in this discussion.&lt;br /&gt;
&lt;br /&gt;
=== Purchasing / Shipping / Versions ===&lt;br /&gt;
&lt;br /&gt;
==== Where can I buy the [[Neo FreeRunner]]? How much?====&lt;br /&gt;
&lt;br /&gt;
http://www.openmoko.com. We sell both directly and through a growing list of distributors.&lt;br /&gt;
&lt;br /&gt;
If you buy directly from the Openmoko webshop you will pay USD $399 for the [[Neo FreeRunner]], USD $99 for the debug board. You can also purchase boxes of 10 FreeRunners at a price of USD $369 each. If you don't have a need for 10 units, you can join an existing or form a new group at [[Group_sales]].&lt;br /&gt;
&lt;br /&gt;
==== On what bands does the Neo FreeRunner operate? Will it work in my area? ====&lt;br /&gt;
&lt;br /&gt;
* The Neo FreeRunner is a tri-band GSM phone. It is available in a 850/1800/1900MHz version for North America and a 900/1800/1900MHz version for the rest of the world.&lt;br /&gt;
&lt;br /&gt;
==== Do I need the debug board? ==== &lt;br /&gt;
&lt;br /&gt;
With the Neo FreeRunner and NO debug board you can do:&lt;br /&gt;
* Kernel development&lt;br /&gt;
* Application development&lt;br /&gt;
* U-boot updates(equivalent to PC BIOS). Neo 1973 users should only use a tested image to avoid the possibility of bricking the Neo 1973. Neo FreeRunner users do not have this concern, as a bad u-boot can always be updated using the failsafe u-boot in NOR flash&lt;br /&gt;
* Kernel and/or rootfs updates using [[Dfu-util]].&lt;br /&gt;
&lt;br /&gt;
With a debug board you can additionally do:&lt;br /&gt;
* Use JTAG to debug u-boot, device drivers, or the kernel&lt;br /&gt;
* Use the kernel console&lt;br /&gt;
* Neo 1973 users can unbrick their device if they flash a wrong or non-working u-boot image.&lt;br /&gt;
* Neo FreeRunner users can update u-boot in NOR flash&lt;br /&gt;
&lt;br /&gt;
In summary, it is rare for a Neo FreeRunner user to require a debug board.&lt;br /&gt;
&lt;br /&gt;
To emphasize, the debug board is '''not''' required in order to develop applications, system software, or even kernel or device drivers. The debug board is '''not''' required in order to gain access to the source code or the development tools.&lt;br /&gt;
&lt;br /&gt;
==== Where do I ask a shipping related question? ==== &lt;br /&gt;
&lt;br /&gt;
Visit [http://www.openmoko.com/ openmoko.com]&lt;br /&gt;
&lt;br /&gt;
=== How do I find out what version of hardware I have? ===&lt;br /&gt;
&lt;br /&gt;
:cat /proc/cpuinfo&lt;br /&gt;
&lt;br /&gt;
Search for the line that says &amp;quot;Revision&amp;quot;. There will be 4 digits, of the form &amp;quot;0350&amp;quot;. The '5' in this example indicates hardware revision 5.&lt;br /&gt;
&lt;br /&gt;
== Neo FreeRunner Known Issues==&lt;br /&gt;
&lt;br /&gt;
=== Software issues, distribution-wise ===&lt;br /&gt;
&lt;br /&gt;
Issues relating to software are in the &amp;quot;known issues&amp;quot; section for each distribution. Navigate there via the distributions page - [[Distributions]].&lt;br /&gt;
&lt;br /&gt;
=== Firmware and hardware issues ===&lt;br /&gt;
&lt;br /&gt;
Issues relating to firmware and hardware are in [[Neo_FreeRunner_Hardware_Issues|Neo FreeRunner Hardware Issues]].&lt;br /&gt;
&lt;br /&gt;
Note that some issues might involve a combination of hardware and software.&lt;br /&gt;
&lt;br /&gt;
=== Selected, commonly-encountered issues ===&lt;br /&gt;
&lt;br /&gt;
Some selected known issues that are commonly encountered and reported on mailing lists are described below.&lt;br /&gt;
&lt;br /&gt;
==== My FreeRunner won't register with my cellphone network. What should I do?====&lt;br /&gt;
&lt;br /&gt;
Please see [[Neo_FreeRunner_Hardware_Issues#Some_SIMs_Don.27t_Work|some SIMs don't work]].&lt;br /&gt;
&lt;br /&gt;
==== SIM compatibility: It looks like my SIM card is not working; how do I run diagnostics? ====&lt;br /&gt;
&lt;br /&gt;
Here is how to check: follow [[Manually_using_GSM]] until you get an OK prompt. &lt;br /&gt;
&lt;br /&gt;
For more detailed documentation, please refer to [[FreeRunner_unable_to_work_with_3G_SIM_cards]] and [[Carriers]].&lt;br /&gt;
&lt;br /&gt;
==== I read somewhere that a GSM firmware update is available to fix this problem====&lt;br /&gt;
&lt;br /&gt;
The GSM firmware update is applicable only to the Neo 1973. Any fixes in the update are already implemented in the GSM firmware in the Neo FreeRunner.&lt;br /&gt;
&lt;br /&gt;
==== Why won't the FreeRunner boot even with the charger connected? ====&lt;br /&gt;
&lt;br /&gt;
See [[Neo_FreeRunner_Hardware_Issues#Can.27t_boot_with_discharged_or_missing_battery|Can't boot with discharged or missing battery]].&lt;br /&gt;
 &lt;br /&gt;
==== Flashing (dfu-util) -- dfu-util does not find the phone. ====&lt;br /&gt;
&lt;br /&gt;
In brief, you need to boot the phone into the NAND or NOR u-boot menu before dfu-util will be able to connect. dfu-util uses the USB DFU (Universal Serial Bus Device Firmware Upgrade) protocol, which is only available at the u-boot menu, and '''not''' Ethernet over USB, which is what is available when the phone has booted fully. &lt;br /&gt;
&lt;br /&gt;
Tip: If you're just trying out different distributions, you don't need to flash them with dfu-util; you can try out new distributions by putting them on the microSD card and booting from the card instead. If you'd like to do this instead of flashing, see [[Booting from SD]].&lt;br /&gt;
&lt;br /&gt;
To get the u-boot menu:&lt;br /&gt;
# Press and hold the AUX button &lt;br /&gt;
# Press the Power button until the phone powers on and displays the boot menu&lt;br /&gt;
# Release both buttons &lt;br /&gt;
# Press and release AUX to move the lightbar, so that the menu will not time out and boot the phone). &lt;br /&gt;
&lt;br /&gt;
Also see the wiki pages/sections:&lt;br /&gt;
* [[Booting the Neo FreeRunner]]&lt;br /&gt;
* [[Bootloader#Device Firmware Upgrade]]&lt;br /&gt;
* [[Flashing the Neo FreeRunner]]&lt;br /&gt;
* [[Dfu-util]]&lt;br /&gt;
&lt;br /&gt;
==== Why do I experience poor audio quality or buzzing noises during calls?====&lt;br /&gt;
See [http://wiki.openmoko.org/wiki/Neo_FreeRunner_Hardware_Issues#Poor_Audio_Quality this issue on the FreeRunner Hardware Issues page]&lt;br /&gt;
&lt;br /&gt;
====Suspend/resume may corrupt SD card's partition table====&lt;br /&gt;
&lt;br /&gt;
See [http://wiki.openmoko.org/wiki/Neo_FreeRunner_Hardware_Issues#Suspend.2Fresume_corrupts_SD_card.27s_partition_table this issue on the FreeRunner Hardware Issues page]. See ticket [https://docs.openmoko.org/trac/ticket/1802 #1802].&lt;br /&gt;
&lt;br /&gt;
==Hardware and Usage-related Questions==&lt;br /&gt;
&lt;br /&gt;
=== Booting ===&lt;br /&gt;
&lt;br /&gt;
==== How do I boot into U-boot? How do I select NAND or NOR FLASH? ====&lt;br /&gt;
&lt;br /&gt;
See [[Booting_the_Neo_FreeRunner|here]]&lt;br /&gt;
&lt;br /&gt;
=== Battery and Battery Charging===&lt;br /&gt;
&lt;br /&gt;
==== What is the expected battery life? ====&lt;br /&gt;
See [[Neo FreeRunner (GTA02) Battery#Notes_about_expected_battery_life]] and more battery information in [[Neo_FreeRunner_(GTA02)_Battery]]&lt;br /&gt;
&lt;br /&gt;
==== How do I enable fast charge mode for anything but the official mains charger? ====&lt;br /&gt;
See [[Forcing fast charge mode]].&lt;br /&gt;
&lt;br /&gt;
==== Can the Neo FreeRunner charge when turned off? When suspended? ====&lt;br /&gt;
&lt;br /&gt;
The Neo FreeRunner can '''not''' charge when turned off.&lt;br /&gt;
&lt;br /&gt;
The Neo FreeRunner '''can''' charge when suspended.&lt;br /&gt;
&lt;br /&gt;
==== Can the Neo charge and use devices on a USB hub at the same time? ====&lt;br /&gt;
&lt;br /&gt;
See [[USB_host#Providing_power_to_run_and_charge_the_Neo_while_in_host_mode|here]]&lt;br /&gt;
&lt;br /&gt;
===Wireless Connectivity===&lt;br /&gt;
&lt;br /&gt;
====What kind of wireless connectivity does the FreeRunner have? ====&lt;br /&gt;
&lt;br /&gt;
The FreeRunner has the following connectivity options:&lt;br /&gt;
* Tri-band GSM (850/1800/1900 MHz in North America, and 900/1800/1900 MHz, commonly referred to as &amp;quot;European tri-band&amp;quot;, for other parts of the world). For a list of compatible service providers, see [[Neo1973 compatible cellphone providers]].&lt;br /&gt;
* GPRS Class12/CS4 2.5G (Not EDGE)&lt;br /&gt;
* Bluetooth 2.0 EDR&lt;br /&gt;
* WiFi: Atheros AR6K in [[GTA02#.22Phase_2.22_.28GTA02.2C_.22Mass_Market.22.29|GTA02]]. (No 3G in year 2007 models)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== GSM/GPRS information ====&lt;br /&gt;
&lt;br /&gt;
The following pages contain very useful information:&lt;br /&gt;
&lt;br /&gt;
* [[Gsmd|GSM Daemon]]&lt;br /&gt;
&lt;br /&gt;
* [[GSM|General GSM page]]&lt;br /&gt;
&lt;br /&gt;
* [[Hardware:AT_Commands|AT commands]]&lt;br /&gt;
&lt;br /&gt;
* [http://freeyourphone.de/portal_v1/viewtopic.php?f=21&amp;amp;t=295#p2956 Useful script for GPRS]&lt;br /&gt;
&lt;br /&gt;
==== How do I get the WLAN (802.11, Wi-Fi, wireless network) working? ====&lt;br /&gt;
&lt;br /&gt;
See [[Neo FreeRunner Wifi]]&lt;br /&gt;
&lt;br /&gt;
==== How do I get the GPS working? ====&lt;br /&gt;
&lt;br /&gt;
See [[GTA02 GPS]]&lt;br /&gt;
&lt;br /&gt;
==== It takes a long time (10min+) before the FreeRunner gets the first GPS data/readings ====&lt;br /&gt;
&lt;br /&gt;
See [[GPS Problems]].&lt;br /&gt;
&lt;br /&gt;
==== How do I get Bluetooth working manually? ====&lt;br /&gt;
&lt;br /&gt;
See [[Manually_using_Bluetooth]]&lt;br /&gt;
&lt;br /&gt;
==== How do I use an external Bluetooth keyboard with the FreeRunner ? ====&lt;br /&gt;
..TBA..&lt;br /&gt;
&lt;br /&gt;
====Can I bridge to an Ethernet (wired or unwired) network via a suitable Bluetooth enabled router? ====&lt;br /&gt;
&lt;br /&gt;
Yes - see [http://gentoo-wiki.com/HOWTO_Configure_a_bluetooth_network_access_point this howto for how to configure a linux computer to act as such a router] and [[Bluetooth Support]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== USB ===&lt;br /&gt;
&lt;br /&gt;
==== How do I connect a USB memory-stick etc? ====&lt;br /&gt;
&lt;br /&gt;
This requires an adapter Mini-B 5-pole =&amp;gt; Type A jack or an adapter jack =&amp;gt; jack. See [[USB host]] for more information.&lt;br /&gt;
&lt;br /&gt;
====Once I have such an adapter, can I use it to connect 2 Neos to each other?====&lt;br /&gt;
&lt;br /&gt;
This question is equivalent to '''How to connect two [Unix/Linux] computers via USB cable and what sort of special cable is needed?''' -&amp;gt; http://www.linuxquestions.org/questions/linux-general-1/connecting-two-computers-with-a-usb-cable-data-cable-411073&lt;br /&gt;
&lt;br /&gt;
It should work if one Neo is set to Host mode and the other one set to Device mode. One Neo could give power to the USB-port it the other Neo's battery is low. ''(I have to verify this)''&lt;br /&gt;
&lt;br /&gt;
==== How do I use an external USB keyboard with the FreeRunner ? ====&lt;br /&gt;
&lt;br /&gt;
Run:&lt;br /&gt;
 echo &amp;quot;host&amp;quot; &amp;gt; /sys/devices/platform/s3c2410-ohci/usb_mode&lt;br /&gt;
 echo &amp;quot;1&amp;quot; &amp;gt; /sys/devices/platform/neo1973-pm-host.0/hostmode&lt;br /&gt;
&lt;br /&gt;
These commands will put the FreeRunner into powered USB host mode. After this, just plug in the keyboard and it'll work. Personally, I've made a .desktop file to switch into and out of host mode. &lt;br /&gt;
&lt;br /&gt;
To switch back to unpowered device mode just run:&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;device&amp;quot; &amp;gt; /sys/devices/platform/s3c2410-ohci/usb_mode&lt;br /&gt;
 echo &amp;quot;0&amp;quot; &amp;gt; /sys/devices/platform/neo1973-pm-host.0/hostmode&lt;br /&gt;
&lt;br /&gt;
Finally you will need a &lt;br /&gt;
USB Type A Female to Female adapter. For more details see&lt;br /&gt;
[[Specialized_USB_cables#Attaching_the_Neo_.28acting_as_a_USB_host.29_to_a_USB_device|here]]&lt;br /&gt;
&lt;br /&gt;
=== Display ===&lt;br /&gt;
&lt;br /&gt;
==== Can the phone play VGA video? ====&lt;br /&gt;
&lt;br /&gt;
No, it can do about 20 fps QVGA with software, and something beetween QVGA and VGA playing MPEG-4 using hardware (at resonable fps). Scaling is also done with GPU hardware.&lt;br /&gt;
&lt;br /&gt;
==== How to change the background picture of the root window? ====&lt;br /&gt;
&lt;br /&gt;
{{Note|This probably differs for each distribution? Need to insert, or link to, relevant info for each. --[[User:Eddsouza|eddsouza]] 09:29, 7 September 2008 (UTC)}}&lt;br /&gt;
&lt;br /&gt;
Look at [[Today/2007.2#Adjust_UI_components_at_runtime]].&lt;br /&gt;
&lt;br /&gt;
=== Storage ===&lt;br /&gt;
&lt;br /&gt;
==== What microSDHC-cards are supported? ====&lt;br /&gt;
&lt;br /&gt;
See [[Supported_microSD_cards|here]]&lt;br /&gt;
&lt;br /&gt;
===System-level information===&lt;br /&gt;
&lt;br /&gt;
==== What hardware signals are available?====&lt;br /&gt;
&lt;br /&gt;
To simplify extending the hardware, various signals of interest are brought out via the JTAG connector and can be easily accessed with the debug board:&lt;br /&gt;
&lt;br /&gt;
(TBA: List of signals)&lt;br /&gt;
&lt;br /&gt;
Some additional signals that did not fit on the JTAG connector are brought out to solder pads:&lt;br /&gt;
&lt;br /&gt;
(TBA: List of signals)&lt;br /&gt;
&lt;br /&gt;
==== Is the JTAG interface that comes with GTA01 compatible with GTA02?====&lt;br /&gt;
&lt;br /&gt;
Yes&lt;br /&gt;
&lt;br /&gt;
==== How do I get low-level hardware-related functions, like power up device, dump register? ====&lt;br /&gt;
&lt;br /&gt;
See [[GTA02_sysfs]]&lt;br /&gt;
&lt;br /&gt;
=== Inputs ===&lt;br /&gt;
&lt;br /&gt;
==== How can I type a '/' in the software keyboard? ====&lt;br /&gt;
&lt;br /&gt;
See [[Switching Keyboards]]&lt;br /&gt;
&lt;br /&gt;
==== How do I get a QWERTY layout software keyboard?====&lt;br /&gt;
&lt;br /&gt;
See [[Switching Keyboards]]&lt;br /&gt;
&lt;br /&gt;
=== Miscellaneous ===&lt;br /&gt;
&lt;br /&gt;
====Will Openmoko &amp;quot;Just Work&amp;quot; with Mac OS X? ====&lt;br /&gt;
&lt;br /&gt;
There has been some discussion of this on the mailing list. There is motivation, and there are interested developers. &lt;br /&gt;
Not being a Mac OS X user, I don't know enough&lt;br /&gt;
to summarize the discussion to answer this question. Can someone please fill in?&lt;br /&gt;
&lt;br /&gt;
For IP over USB cable connectivity, it is planned to improve/adapt the AJZaurusUSB driver, allowing ssh into the Openmoko.&lt;br /&gt;
&lt;br /&gt;
It is expected that (Bluetooth/UB) SyncML based interoperation for&lt;br /&gt;
contacts and events can easily be achieved by a patch&lt;br /&gt;
to the Apple iSync configuration tables.&lt;br /&gt;
&lt;br /&gt;
There is an open source implementation of Cocoa (GNUstep) that aims to run MacOS X compatible applications (sort of&lt;br /&gt;
PPC/x86/ARM universal binaries) on Openmoko devices: mySTEP.&lt;br /&gt;
&lt;br /&gt;
==Software==&lt;br /&gt;
&lt;br /&gt;
===General Questions===&lt;br /&gt;
&lt;br /&gt;
====Is it completely free software/open source? ====&lt;br /&gt;
&lt;br /&gt;
Yes. All software that runs on the main CPU and can be updated by the user is available in source.&lt;br /&gt;
&lt;br /&gt;
Firmware in &amp;quot;black box&amp;quot; hardware modules that can not be modified by users is not available in source form. Effectively, these modules are &amp;quot;hardware only&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
This allows, for example, that the driver for the GSM module be completely open sourced without violating any FCC rules.&lt;br /&gt;
&lt;br /&gt;
====Can the software do/connect to/... ====&lt;br /&gt;
&lt;br /&gt;
Reviews of the latest &amp;quot;bleeding edge&amp;quot; daily builds of the Openmoko software stack can be seen [[Snapshot_review|here]]&lt;br /&gt;
&lt;br /&gt;
At the moment, the answer to many other questions is &amp;quot;no&amp;quot;. The phone is at the moment a small Linux box with a touchscreen, a working dialer and some prototype apps.  Most do not function in any way that would be suitable for end-users.  If you want to add a feature or application request, then look over the existing [[Applications]] and either add one, or add a feature request to the applications page.&lt;br /&gt;
&lt;br /&gt;
==== Does Openmoko run on any other hardware? ====&lt;br /&gt;
&lt;br /&gt;
You can run it on your [[How_to_run_Openmoko_Apps_on_PC|PC]].  You may be able to run it on other [[Openmoko-supported_hardware | mobile platforms]]&lt;br /&gt;
&lt;br /&gt;
==== Can Java applications from other mobile phones run on the FreeRunner? ====&lt;br /&gt;
&lt;br /&gt;
I think a lot of work must still be done, but [[Java|this]] wiki page has some information&lt;br /&gt;
&lt;br /&gt;
===Distributions===&lt;br /&gt;
&lt;br /&gt;
====What is the stock distribution image that comes on the Neo FreeRunner?====&lt;br /&gt;
&lt;br /&gt;
The 2007.2 distribution - see [[Distributions#2007.2| 2007.2 factory default software image]]&lt;br /&gt;
&lt;br /&gt;
=====Are there any known issues with the factory-installed 2007.2 image on the Neo FreeRunner?=====&lt;br /&gt;
&lt;br /&gt;
Yes, see [[Om_2007.2#Known_Issues|2007.2 Known Issues]]&lt;br /&gt;
&lt;br /&gt;
===== Where can I download and reinstall the factory default image? =====&lt;br /&gt;
&lt;br /&gt;
See [[Flashing_the_Neo_FreeRunner|Flashing the Neo FreeRunner]]&lt;br /&gt;
&lt;br /&gt;
====What alternate distributions are available for the Neo FreeRunner?====&lt;br /&gt;
&lt;br /&gt;
See [[Distributions|Distributions]]&lt;br /&gt;
&lt;br /&gt;
==== How do I find out what image versions are in use on the phone? ====&lt;br /&gt;
&lt;br /&gt;
You can run the commands given below on the phone (in an SSH session from your host PC, or in the Terminal application on the phone itself)&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;5&amp;quot; align=&amp;quot;left&amp;quot;&lt;br /&gt;
! To find out&lt;br /&gt;
! Run&lt;br /&gt;
|- &lt;br /&gt;
| Kernel version that is currently running&lt;br /&gt;
| &lt;br /&gt;
  uname -a&lt;br /&gt;
|-&lt;br /&gt;
| The version of the root filesystem that you are currently using&lt;br /&gt;
| &lt;br /&gt;
  cat /etc/version &lt;br /&gt;
or &lt;br /&gt;
  cat /etc/om-version&lt;br /&gt;
|-&lt;br /&gt;
| The versions of u-boot on the phone (The FreeRunner has one u-boot image in NOR memory, and one in NAND - see [[Booting the Neo FreeRunner]] for more information)&lt;br /&gt;
| &lt;br /&gt;
  grep  Bootloader /dev/mtdblock0  (yields the NOR u-boot version)&lt;br /&gt;
or&lt;br /&gt;
  grep  Bootloader /dev/mtdblock1  (yields the NAND u-boot version)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
====Where do I get the latest version of the official Openmoko image, 2008.8 (also known as ASU)?====&lt;br /&gt;
&lt;br /&gt;
See [[Download#Om_2008.8_images_.28ASU.29| download Om 2008.8 images]]&lt;br /&gt;
&lt;br /&gt;
===== Why are the buttons in TangoGPS too large? The zoom out is missing! =====&lt;br /&gt;
&lt;br /&gt;
There is no GTK engine or theme installed with the ASU build.  Fortunately, this is easy to fix!&lt;br /&gt;
&lt;br /&gt;
At a terminal:&lt;br /&gt;
:&amp;lt;tt&amp;gt;# opkg install moko-gtk-theme moko-gtk-engine&amp;lt;/tt&amp;gt;&lt;br /&gt;
:&amp;lt;tt&amp;gt;# ln -s /usr/share/themes/Moko/gtk-2.0/gtkrc /home/root/.gtkrc-2.0&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now you have pretty colors and widgets, but the font is too big.  Edit &amp;lt;tt&amp;gt;/usr/share/themes/Moko/gtk-2.0/gtkrc&amp;lt;/tt&amp;gt; in your favorite text editor and add the following line:&lt;br /&gt;
:&amp;lt;tt&amp;gt;gtk-font-name = &amp;quot;Sans 4&amp;quot;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To use the openmoko icon theme, install it with:&lt;br /&gt;
:&amp;lt;tt&amp;gt;# opkg install openmoko-icon-theme-standard2&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and enable it editing the &amp;lt;tt&amp;gt;/usr/share/themes/Moko/gtk-2.0/gtkrc&amp;lt;/tt&amp;gt; adding the line:&lt;br /&gt;
:&amp;lt;tt&amp;gt;gtk-icon-theme-name=&amp;quot;openmoko-standard&amp;quot;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You shouldn't even need to restart the device, although you will need to restart any GTK-based programs.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Can the Neo FreeRunner dual boot? Multiple boot?====&lt;br /&gt;
&lt;br /&gt;
Since the Neo FreeRunner can boot from the micro SD card, you can install and boot from as many distributions as will fit on your card. See [[Boot_from_sd_card|Booting from SD]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====How do I install Debian on the Neo FreeRunner?====&lt;br /&gt;
&lt;br /&gt;
See [[Debian#Installation|Debian Installation]]&lt;br /&gt;
&lt;br /&gt;
=====Are there any known issues with Debian on the Neo FreeRunner?=====&lt;br /&gt;
&lt;br /&gt;
See [[Debian#Known_Issues|Debian Known Issues]]&lt;br /&gt;
&lt;br /&gt;
=====How do I replace the matchbox window manager with the xfce window manager?=====&lt;br /&gt;
&lt;br /&gt;
Replace the matchbox-wm line in zhone-session with xfwm4 to start the xfce-wm.&lt;br /&gt;
&lt;br /&gt;
Here's my (Fox Mulder) /usr/bin/zhone-session file which works with xfwm and matchbox keyboard popup:&lt;br /&gt;
&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 &lt;br /&gt;
 #zhone &amp;amp;&lt;br /&gt;
 exec startxfce4 &amp;amp;&lt;br /&gt;
 matchbox-keyboard-toggle &amp;amp;&lt;br /&gt;
 #exec matchbox-window-manager -use_titlebar yes&lt;br /&gt;
 exec xfwm4&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Applications ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====What software is on the phone?====&lt;br /&gt;
&lt;br /&gt;
At the moment, almost no 'end-user' applications are present and working in a usable state.&lt;br /&gt;
It is possible to make and receive calls in some software revisions, this frequently breaks though.&lt;br /&gt;
&lt;br /&gt;
====What software can be installed on the phone?====&lt;br /&gt;
&lt;br /&gt;
Pretty much any that can be cross-compiled for the ARM architecture.&lt;br /&gt;
&lt;br /&gt;
====Will it be possible to use popular VoIP applications on the Openmoko platform? ====&lt;br /&gt;
&lt;br /&gt;
Since it has WiFi the FreeRunner should be a good platform for VOIP use.    &lt;br /&gt;
&lt;br /&gt;
In either case please check for softphone apps ported to the Openmoko distribution at the [http://projects.openmoko.org/  projects] page. We need to focus efforts on free software. Not convincing non-free software companies to release binaries for our Neos.&lt;br /&gt;
&lt;br /&gt;
====Will it be possible to use popular Instant Messaging applications ? ====&lt;br /&gt;
&lt;br /&gt;
There many Open Source IM clients, many of which have a plugin architecture and so support the use of more than one IM protocol, even simultaneously. One example is [[Pidgin]], formerly called GAIM. GPRS does induce a certain amount of latency but that should not be a problem for simple, text-oriented chat between parties. And the GTA02's WiFi  will make it even better.&lt;br /&gt;
&lt;br /&gt;
==== Does it support Flash so can I watch YouTube? ====&lt;br /&gt;
You don't really need Flash to watch YouTube videos, for example, if you want to watch www.youtube.com/watch?v=k9QLdK6pFCI just install mplayer and use this command: &lt;br /&gt;
 mplayer http://ytpocket.com/getflv.php?id=k9QLdK6pFCI&lt;br /&gt;
or use this small script with the video URL as the first parametre:&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 vid=`echo &amp;quot;$1&amp;quot; | sed 's/.*\?.*=\(.*\)/\1/'`&lt;br /&gt;
 mplayer http://ytpocket.com/getflv.php?id=$vid&lt;br /&gt;
&lt;br /&gt;
=== Package Management===&lt;br /&gt;
&lt;br /&gt;
==== How do I install and manage software on Openmoko? ====&lt;br /&gt;
&lt;br /&gt;
See [http://handhelds.org/moin/moin.cgi/Ipkg here]&lt;br /&gt;
&lt;br /&gt;
==== What about opkg? ====&lt;br /&gt;
&lt;br /&gt;
See [[Opkg|here]]&lt;br /&gt;
&lt;br /&gt;
==== What is the meaning of the error codes from ipkg? ====&lt;br /&gt;
&lt;br /&gt;
See [[Opkg#Error_Codes|here]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Does opkg support packages autocompletion ? ====&lt;br /&gt;
&lt;br /&gt;
It's possible now, see [http://tropfacile.info/?/Linux/28-Openmoko-Opkg-Autocompletion-With-Packages-Names The opkg autocompletion]&lt;br /&gt;
&lt;br /&gt;
===Development===&lt;br /&gt;
&lt;br /&gt;
====How can I compile programs for the Neo FreeRunner? ====&lt;br /&gt;
&lt;br /&gt;
See [[Toolchain]].&lt;br /&gt;
&lt;br /&gt;
====Is there an emulator available for Openmoko? ====&lt;br /&gt;
&lt;br /&gt;
For a lot of testing and development work you can simply run Openmoko directly on your PC.&lt;br /&gt;
&lt;br /&gt;
=====QEMU=====&lt;br /&gt;
&lt;br /&gt;
QEMU can emulate the Neo 1973 and the Neo FreeRunner. The [[MokoMakefile]] has support for automatically building, flashing, and running [[Openmoko under QEMU|the Neo emulator]].&lt;br /&gt;
&lt;br /&gt;
*Ubuntu users can follow the instructions in [[Automatic_emulation_in_Ubuntu]]&lt;br /&gt;
&lt;br /&gt;
*Users of other Linux distributions can try the following:&lt;br /&gt;
:&amp;quot;make qemu” will build qemu-neo1973, download the latest official openmoko images, flash the images into the virtual NAND flash, and run the emulator.&lt;br /&gt;
&lt;br /&gt;
See [[Qemu]] for more advanced information on running Openmoko in Qemu.&lt;br /&gt;
&lt;br /&gt;
=====Xoo=====&lt;br /&gt;
&lt;br /&gt;
[http://projects.o-hand.com/xoo Xoo]. Koen says: &amp;quot;Xoo should be enough for most applications people will develop, since most don't need access to the GSM uart directly. If you're hardcore you could use qemu + xoo, but that still doesn't emulate all the hardware quirks (e.g. unaligned access)&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Update: Stefan Schmidt has resized the [[Neo1973]] Mock-up and written a small description for xoo. In his words:&lt;br /&gt;
&lt;br /&gt;
It's not really usable at all, as you need a really high screen resolution to fit the whole picture on your screen. And of course the dpi are wrong. Even no buttons because I can't remember where they are at the case.&lt;br /&gt;
&lt;br /&gt;
http://www.datenfreihafen.org/~stefan/OpenMoko/neo1973-xoo-device.tar.bz2&lt;br /&gt;
&lt;br /&gt;
Start with 'xoo --device /path/to/neo1973.xml'&lt;br /&gt;
&lt;br /&gt;
Some more details [[Getting_Openmoko_working_on_host_with_Xoo|here]].&lt;br /&gt;
&lt;br /&gt;
=====Xephyr=====&lt;br /&gt;
&lt;br /&gt;
Or use Xephyr directly with locally compiled programs (e.g. matchbox svn + openmoko):&lt;br /&gt;
 Xephyr -screen 480x640 -nolisten tcp -ac :1 &amp;amp;&lt;br /&gt;
 export DISPLAY=:1&lt;br /&gt;
 export LD_LIBRARY_PATH=/usr/local/lib&lt;br /&gt;
 matchbox-window-manager -display $DISPLAY -use_titlebar no \&lt;br /&gt;
  -use_super_modal yes -use_lowlight yes -use_dialog_mode static \&lt;br /&gt;
  -use_cursor yes &amp;amp;&lt;br /&gt;
 matchbox-panel --geometry=480x44 --end-applets=clock &amp;amp;&lt;br /&gt;
 openmoko-footer &amp;amp;&lt;br /&gt;
 openmoko-taskmanager &amp;amp;&lt;br /&gt;
&lt;br /&gt;
====Where can I find some type of tutorial for a 'Hello, world' on Openmoko? ====&lt;br /&gt;
&lt;br /&gt;
This should get you started:&lt;br /&gt;
* [[Building_a_hello_world_application]]&lt;br /&gt;
* http://www.gtk.org/documentation.html#Tutorials&lt;br /&gt;
&lt;br /&gt;
====Can PalmOS apps applications be ported to run on Openmoko? ====&lt;br /&gt;
&lt;br /&gt;
Making legacy apps written for the &amp;quot;Garnet&amp;quot; OS (née &amp;quot;Palm OS&amp;quot;) run on Linux&lt;br /&gt;
is decidedly non-trivial.&lt;br /&gt;
&lt;br /&gt;
PalmOS apps are in general very hard to simply 'port'. Particularly well-designed programs may make it possible.&lt;br /&gt;
&lt;br /&gt;
The ACCESS Linux Platform will include Garnet on Host (GHost), a PalmOS emulator that will support M6800 (68k) and ARM PalmOS applications. This part (GarnetVM and the .prc loader) will however be closed-source and likely under a restrictive license (fact confirmed by ACCESS Co. employees), making it rather unusable. In addition GarnetVM depends on Hiker and other packages.&lt;br /&gt;
&lt;br /&gt;
It is possible that POSE, an emulator that simulates a Palm device on a Linux host could be used to allow 68k based applications to run.  This emulator has been around a long time; one expects that it will also run on Openmoko, but this has to be considered a short-term bandaid rather than a long-term solution.&lt;br /&gt;
&lt;br /&gt;
Hopefully emulation will be necessary only for M68000 code (pre-PalmOS 5) while native ARM programs can run natively under Linux, provided a proper set of PalmOS libraries and a .prc executable loader.&lt;br /&gt;
&lt;br /&gt;
==== Does it support Java? ====&lt;br /&gt;
It will have eventually, if you help us to get it working. Some good places to keep track of would be [http://projects.openmoko.org/projects/java-pkg/ projects.openmoko.org] and [https://phoneme.dev.java.net/ PhoneME].&lt;br /&gt;
&lt;br /&gt;
Project [[https://wiki.evolvis.org/jalimo/index.php/Jalimo Jalimo]] is a project aiming to provide a Java stack on mobile devices. There is a [https://wiki.evolvis.org/jalimo/index.php/Openmoko port of Jalimo] for Openmoko.&lt;br /&gt;
The [[Debian]] distribution supports CacaoVM and JamVM through apt-get. See [[Java]] for more infos.&lt;br /&gt;
&lt;br /&gt;
==== Does it support Ruby? ====&lt;br /&gt;
&lt;br /&gt;
For Ruby 1.9, please refer to http://blog.sparkymat.net/2008/08/10/ruby-19-on-openmoko/&lt;br /&gt;
&lt;br /&gt;
For Ruby 1.8.6, please refer to http://blog.wolfman.com/articles/2008/08/10/ruby-1-8-6-on-openmoko-freerunner&lt;br /&gt;
&lt;br /&gt;
==== Does it support Python? ====&lt;br /&gt;
&lt;br /&gt;
Yes, with some caveats. See [[Python]] for more information.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====How do I dump details about X11 configuration and extensions? ====&lt;br /&gt;
&lt;br /&gt;
Run the command xdpyinfo. Generally, you would do this via an SSH session to the phone, so you may need to first &lt;br /&gt;
&lt;br /&gt;
 export DISPLAY=&amp;quot;:0.0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
and then run&lt;br /&gt;
&lt;br /&gt;
 xdpyinfo&lt;br /&gt;
&lt;br /&gt;
For an example invocation, see [http://lists.openmoko.org/pipermail/community/2007-January/001353.html xdpyinfo output].&lt;br /&gt;
&lt;br /&gt;
== Distribution Customization ==&lt;br /&gt;
&lt;br /&gt;
{{Note| Suggestion: this should be split off into a separate page, since many of the questions below aren't really overview-level but specialized; a question like &amp;quot;How do I customize a distribution?&amp;quot; could be added to the Software - Distributions part, linking to the new page. --[[User:Eddsouza|eddsouza]] 07:35, 7 September 2008 (UTC)}}&lt;br /&gt;
&lt;br /&gt;
=== Compilation &amp;amp; packaging ===&lt;br /&gt;
==== What is the 'overlay' approach to bitbake development? ====&lt;br /&gt;
:You can create a local overlay for the bitbake build chain and develop in the overlay as described in [[Application_Development_Crash_Course| Application Development Crash Course]].&lt;br /&gt;
&lt;br /&gt;
==== Which .bb files are related with the Openmoko? ====&lt;br /&gt;
==== Are there any configuration files for Openmoko? ====&lt;br /&gt;
==== How can I port an application written with autotools to Openmoko? ====&lt;br /&gt;
After you source the [[Toolchain|Openmoko toolchain]] variables, the Openmoko processor compiler becomes the default compiler. You can compile any GNU - like project just typing ''./configure --host i686'' and then ''make'' - it will produce libraries and executables as expected. Just these executables will not run on your i686 host - they will run on Openmoko ARM processor. Use scp to upload the executables to your phone.&lt;br /&gt;
&lt;br /&gt;
==== How can I add an application written with autotools to the openmoko tree? ====&lt;br /&gt;
&lt;br /&gt;
==== How can I make changes in the openmoko applications? ====&lt;br /&gt;
==== How can I submit my changes? ====&lt;br /&gt;
==== Can I use the mokomakefile in the development process? How? ====&lt;br /&gt;
&lt;br /&gt;
:Yes, [[MokoMakefile]] can be used in the development process.  See [[MokoMakefile#Developing_with_MokoMakefile| Developing with MokoMakefile]].&lt;br /&gt;
&lt;br /&gt;
==== What's the way to include/exclude a newly added package to/from the final rootfs? ====&lt;br /&gt;
==== Where do the final ipk &amp;amp; binary files reside? ====&lt;br /&gt;
:ipk files are in &lt;br /&gt;
 ./build/tmp/deploy/glibc/ipk/&lt;br /&gt;
:binary images are in&lt;br /&gt;
 ./build/tmp/deploy/glibc/images/fic-gta01/&lt;br /&gt;
&lt;br /&gt;
==== How can I add an application to the applications list? ====&lt;br /&gt;
==== How can I assign an image to my new application to be seen in the applications list? ====&lt;br /&gt;
The Openmoko project tree contains the folder 'data' where you can put any 128*128 icon. You need to mention the icon in two places in this folder: &lt;br /&gt;
* Makefile.am must contain the line dist_appicon_DATA = &amp;lt;icon_name&amp;gt;.png&lt;br /&gt;
* The &amp;lt;application_name&amp;gt;.desktop file that must be in this folder should contain the Icon=&amp;lt;icon_name&amp;gt; (without file type).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Misc==&lt;br /&gt;
&lt;br /&gt;
===On the lists on lists.openmoko.org, should replies be added above or below the original text? ===&lt;br /&gt;
&lt;br /&gt;
Please reply UNDER post.&lt;br /&gt;
&lt;br /&gt;
===How can I find out if a question or topic has already been discussed on the mailing lists? ===&lt;br /&gt;
&lt;br /&gt;
By searching the mailing list archives. For example, using Google searches:&lt;br /&gt;
&lt;br /&gt;
 site:openmoko.org text&lt;br /&gt;
&lt;br /&gt;
For example, to search for accelerometer:&lt;br /&gt;
&lt;br /&gt;
 site:openmoko.org accelerometer&lt;br /&gt;
&lt;br /&gt;
If you only want to read the &amp;quot;official&amp;quot; mails from FIC people or from Openmoko people:&lt;br /&gt;
&lt;br /&gt;
 site:openmoko.org text &amp;quot;at fic.com.tw&amp;quot;&lt;br /&gt;
 site:openmoko.org text &amp;quot;at openmoko.org&amp;quot;&lt;br /&gt;
&lt;br /&gt;
For example to search for &amp;quot;release date&amp;quot; from FIC people:&lt;br /&gt;
&lt;br /&gt;
 site:openmoko.org &amp;quot;release date&amp;quot; &amp;quot;at fic.com.tw&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Alternatively you can use the [http://www.google.com/coop/cse?cx=018430699993342716089%3Aszsaurhronw custom Openmoko search engine] that is using [http://www.google.com/coop/ Google Co-op].&lt;br /&gt;
&lt;br /&gt;
===how many dead pixels may the LCM have before calling it defect? ===&lt;br /&gt;
&lt;br /&gt;
The answer for the display used in GTA01 and GTA02 is '2'&lt;br /&gt;
&lt;br /&gt;
=== how many visits does this wiki have? ===&lt;br /&gt;
See this [[Wiki_statistic_numbers|wiki's statistics]] page.&lt;br /&gt;
&lt;br /&gt;
=Historical=&lt;br /&gt;
The Neo1973 was last available in Febuary 2008. &lt;br /&gt;
&lt;br /&gt;
==Neo1973 Hardware== &lt;br /&gt;
&lt;br /&gt;
===What are the hardware specifications of Neo 1973 ? ===&lt;br /&gt;
&lt;br /&gt;
See page [[Neo1973_Hardware]] and category [[:Category:Neo1973 Hardware | Neo1973 Hardware]] and [[Disassembling Neo1973]]&lt;br /&gt;
&lt;br /&gt;
===How do I input text? ===&lt;br /&gt;
&lt;br /&gt;
Use provided keyboard app.&lt;br /&gt;
&lt;br /&gt;
Use Bluetooth keyboard.&lt;br /&gt;
&lt;br /&gt;
For more methods and ideas see [[Wishlist:Text_Input]].&lt;br /&gt;
&lt;br /&gt;
===Can I record calls and/or play audio files in calls? ===&lt;br /&gt;
&lt;br /&gt;
Yes, audio path from GSM to/from mic and speakers is completely controllable by user. For example recording calls (both sides) and implementing an [[Answering Machine]] is possible. Also using text-&amp;gt;speech should be possible or modifying outgoing voice. Currently there is no software bundled in phone to do this.&lt;br /&gt;
There are only 2 A/D inputs and three D/A outputs (one dedicated to the earpiece). This means that stereo audio playback cannot happen at the same time as the [[Answering Machine]] functionality, amongst other things. See the audio page. [[Neo1973_Audio_Subsystem|Neo1973 Audio Subsystem]]&lt;br /&gt;
&lt;br /&gt;
===What is the battery life? ===&lt;br /&gt;
&lt;br /&gt;
There has been no word on this so far, but see [[Neo1973 Power Management#Approximate_power_draw_of_various_subsystems|these estimates]] for a rough idea.  More information about the battery [[Neo1973 Battery|here]].&lt;br /&gt;
&lt;br /&gt;
=== USB ===&lt;br /&gt;
&lt;br /&gt;
====What can I do with the USB port on the Neo? ====&lt;br /&gt;
Charge the phone, communicate with it over USB-serial, or USB-networking.&lt;br /&gt;
&lt;br /&gt;
Plug external devices, such as wifi, cameras, or mass-storage devices.&lt;br /&gt;
&lt;br /&gt;
====What can't I do with the USB? ====&lt;br /&gt;
&lt;br /&gt;
The only limitation on current hardware seems to be no usb 2.0 support, which means slower communication with 2.0 devices.&lt;br /&gt;
&lt;br /&gt;
====Why is only USB 1.1 provided? ====&lt;br /&gt;
&lt;br /&gt;
The processor has USB 1.1 built in. One with USB2 built in would have been more expensive, and might not be open.&lt;br /&gt;
&lt;br /&gt;
The FreeRunner has the same processor as the Neo1973.&lt;br /&gt;
&lt;br /&gt;
====What are the details of the USB port on the Neo? How does it compare to USB On-The-Go? ====&lt;br /&gt;
&lt;br /&gt;
The Neo will have mini-USB-B, and will be able to function as either a host or a device. It will NOT be USB On-The-Go.  OTG is a complex specification, and it comprises way more than just&lt;br /&gt;
an AB socket, but also electrical and software components which cannot be provide by the S3C2410.&lt;br /&gt;
&lt;br /&gt;
You will need a special Mini-B to regular-B cable (note that this won't actually comply with the USB standard:  a compliant cable has to have an A or Mini-A plug on one end, and B or Mini-B on the other).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Application Developer]]&lt;br /&gt;
[[Category:Basic End User]]&lt;br /&gt;
[[Category:FAQ]]&lt;/div&gt;</summary>
		<author><name>Michaelshiloh</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/FAQ</id>
		<title>FAQ</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/FAQ"/>
				<updated>2008-10-09T22:16:50Z</updated>
		
		<summary type="html">&lt;p&gt;Michaelshiloh: /* How do I connect a USB memory-stick etc? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|FAQ}}&lt;br /&gt;
&lt;br /&gt;
== Getting Started with your Neo FreeRunner == &amp;lt;!-- Do not rename section! This section is linked from pages which linked to Getting_Started_FAQ. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== I just received my Neo FreeRunner. Where should I start?===&lt;br /&gt;
&lt;br /&gt;
See [[Getting_Started_with_your_Neo_FreeRunner|Getting Started with your Neo FreeRunner]]&lt;br /&gt;
&lt;br /&gt;
=== I have a problem or a question. Where should I go? ===&lt;br /&gt;
&lt;br /&gt;
First place to check is this FAQ. &lt;br /&gt;
&lt;br /&gt;
If your question isn't answered here, you should search the archives of the [http://lists.openmoko.org/mailman/listinfo/community community] or [http://lists.openmoko.org/mailman/listinfo/support support] mailing lists&lt;br /&gt;
&lt;br /&gt;
Next, try a larger Google search. &lt;br /&gt;
&lt;br /&gt;
If you still haven't found the answer to your question, post it on the appropriate list, [http://lists.openmoko.org/mailman/listinfo/community community] or [http://lists.openmoko.org/mailman/listinfo/support support]. &lt;br /&gt;
&lt;br /&gt;
Provide detailed information about what you are trying to find out, and use&lt;br /&gt;
the Subject line to summarize your question. More tips to asking effective&lt;br /&gt;
questions can be found&lt;br /&gt;
[[http://www.catb.org/~esr/faqs/smart-questions.html|here]]&lt;br /&gt;
&lt;br /&gt;
If your question requires confidentiality, you are welcome to contact [mailto:michael@openmoko.org Michael Shiloh] directly.&lt;br /&gt;
&lt;br /&gt;
You might also look for [[Openmoko_Local_Groups|local Openmoko users]] to find&lt;br /&gt;
some local support. A few minutes with a live person might solve a simple&lt;br /&gt;
misunderstanding that would take hours to understand via email. (If a local&lt;br /&gt;
club doesn't exist, this might be the perfect opportunity to start one!)&lt;br /&gt;
&lt;br /&gt;
=== I'd like to develop a custom product or application based on Openmoko and/or the Neo FreeRunner. How should I proceed? ===&lt;br /&gt;
&lt;br /&gt;
Send mail to michael@openmoko.org or to steve@openmoko.com&lt;br /&gt;
&lt;br /&gt;
=== Where are the latest downloads? ===&lt;br /&gt;
&lt;br /&gt;
Right [[Download|here]].&lt;br /&gt;
&lt;br /&gt;
==Openmoko==&lt;br /&gt;
&lt;br /&gt;
===What is Openmoko?===&lt;br /&gt;
Openmoko is two things:&lt;br /&gt;
&lt;br /&gt;
Openmoko is a Linux distribution designed for open mobile computing platforms, such as, but not limited to, cellphones.&lt;br /&gt;
&lt;br /&gt;
Openmoko is the company behind the Openmoko Linux distribution. Openmoko also manufactures mobile computing platforms, such as the Neo FreeRunner.&lt;br /&gt;
&lt;br /&gt;
===What is the purpose of this project?===&lt;br /&gt;
&lt;br /&gt;
By providing a completely open source Linux distribution, and by opening the schematics and CAD files, Openmoko's goal is to nurture explosive innovation (such as occurred with the Personal Computer) in the field of connected mobile computing, cellphones, and ubiquitous computing.&lt;br /&gt;
&lt;br /&gt;
===How do I join the Openmoko project? ===&lt;br /&gt;
&lt;br /&gt;
Join one or more of the mailing lists. A great place to start is the community list.&lt;br /&gt;
&lt;br /&gt;
Browse the wiki, and help improve it.&lt;br /&gt;
&lt;br /&gt;
Start or join an [[http://projects.openmoko.org/ Openmoko project]].&lt;br /&gt;
&lt;br /&gt;
Start or join a local group near you.&lt;br /&gt;
&lt;br /&gt;
===I'm not a programmer, but I have other skills. Can I still be of use? ===&lt;br /&gt;
&lt;br /&gt;
Absolutely. If you're a visual artist, you can help us with icons and other visuals. Musicians can help contribute ringtones and other sounds. Marketing? Sales? Information visualization? Join the community mailing lists, introduce yourself, and you'll soon find a place to put your skills to good use.&lt;br /&gt;
&lt;br /&gt;
== Neo FreeRunner - Introductory/Overview/Conceptual Information==&lt;br /&gt;
&lt;br /&gt;
=== What is the [[Neo FreeRunner]]? === &lt;br /&gt;
&lt;br /&gt;
The [[Neo FreeRunner]] is an open cellphone designed for the Openmoko Linux distribution. By open we mean that (a) all chips have been chosen to allow their drivers to be completely open sourced and (b) the schematics and the plastic (CAD) files are available as well.&lt;br /&gt;
&lt;br /&gt;
For more details, see [[Neo FreeRunner|Neo FreeRunner specifications]]&lt;br /&gt;
&lt;br /&gt;
=== What can I do with the Neo FreeRunner? ===&lt;br /&gt;
&lt;br /&gt;
The Neo FreeRunner is designed for everyday use by end users and for continued software development and improvements by the Openmoko team and the Openmoko community.&lt;br /&gt;
&lt;br /&gt;
The Openmoko software is not yet ready for everyday use.&lt;br /&gt;
&lt;br /&gt;
The question is almost what can you NOT do with this phone - eventually there will be a huge range of free software applications allowing both end users and developers to get much more out of this phone than a standard &amp;quot;locked&amp;quot; mobile phone using features like the integrated GPS, bluetooth, wifi and accelerometers.&lt;br /&gt;
&lt;br /&gt;
=== What are the benefits of an &amp;quot;open&amp;quot; phone over a &amp;quot;closed&amp;quot; phone? ===&lt;br /&gt;
&lt;br /&gt;
In a conventional closed phone, the handset maker and the mobile network operator work together to provide a service to you that best suits their business model.    The capabilities of a modern smartphone equipped with GPS, Wifi and bluetooth are amazing yet unfortunately inaccessible: many features are &amp;quot;locked down&amp;quot; because they do not suit the network operator.    Up until now it has been difficult to buy a phone on which you have freedom to install sofware which is not controlled by the network operators - Openmoko changes that!&lt;br /&gt;
&lt;br /&gt;
A list of examples of &amp;quot;closed&amp;quot; behaviour has been started here - [[Problems of typical &amp;quot;closed&amp;quot; phones]]&lt;br /&gt;
&lt;br /&gt;
=== What can we expect in future Neos? ===&lt;br /&gt;
&lt;br /&gt;
Please join one of the [http://lists.openmoko.org mailing lists] to follow and participate in this discussion.&lt;br /&gt;
&lt;br /&gt;
=== Purchasing / Shipping / Versions ===&lt;br /&gt;
&lt;br /&gt;
==== Where can I buy the [[Neo FreeRunner]]? How much?====&lt;br /&gt;
&lt;br /&gt;
http://www.openmoko.com. We sell both directly and through a growing list of distributors.&lt;br /&gt;
&lt;br /&gt;
If you buy directly from the Openmoko webshop you will pay USD $399 for the [[Neo FreeRunner]], USD $99 for the debug board. You can also purchase boxes of 10 FreeRunners at a price of USD $369 each. If you don't have a need for 10 units, you can join an existing or form a new group at [[Group_sales]].&lt;br /&gt;
&lt;br /&gt;
==== On what bands does the Neo FreeRunner operate? Will it work in my area? ====&lt;br /&gt;
&lt;br /&gt;
* The Neo FreeRunner is a tri-band GSM phone. It is available in a 850/1800/1900MHz version for North America and a 900/1800/1900MHz version for the rest of the world.&lt;br /&gt;
&lt;br /&gt;
==== Do I need the debug board? ==== &lt;br /&gt;
&lt;br /&gt;
With the Neo FreeRunner and NO debug board you can do:&lt;br /&gt;
* Kernel development&lt;br /&gt;
* Application development&lt;br /&gt;
* U-boot updates(equivalent to PC BIOS). Neo 1973 users should only use a tested image to avoid the possibility of bricking the Neo 1973. Neo FreeRunner users do not have this concern, as a bad u-boot can always be updated using the failsafe u-boot in NOR flash&lt;br /&gt;
* Kernel and/or rootfs updates using [[Dfu-util]].&lt;br /&gt;
&lt;br /&gt;
With a debug board you can additionally do:&lt;br /&gt;
* Use JTAG to debug u-boot, device drivers, or the kernel&lt;br /&gt;
* Use the kernel console&lt;br /&gt;
* Neo 1973 users can unbrick their device if they flash a wrong or non-working u-boot image.&lt;br /&gt;
* Neo FreeRunner users can update u-boot in NOR flash&lt;br /&gt;
&lt;br /&gt;
In summary, it is rare for a Neo FreeRunner user to require a debug board.&lt;br /&gt;
&lt;br /&gt;
To emphasize, the debug board is '''not''' required in order to develop applications, system software, or even kernel or device drivers. The debug board is '''not''' required in order to gain access to the source code or the development tools.&lt;br /&gt;
&lt;br /&gt;
==== Where do I ask a shipping related question? ==== &lt;br /&gt;
&lt;br /&gt;
Visit [http://www.openmoko.com/ openmoko.com]&lt;br /&gt;
&lt;br /&gt;
=== How do I find out what version of hardware I have? ===&lt;br /&gt;
&lt;br /&gt;
:cat /proc/cpuinfo&lt;br /&gt;
&lt;br /&gt;
Search for the line that says &amp;quot;Revision&amp;quot;. There will be 4 digits, of the form &amp;quot;0350&amp;quot;. The '5' in this example indicates hardware revision 5.&lt;br /&gt;
&lt;br /&gt;
== Neo FreeRunner Known Issues==&lt;br /&gt;
&lt;br /&gt;
=== Software issues, distribution-wise ===&lt;br /&gt;
&lt;br /&gt;
Issues relating to software are in the &amp;quot;known issues&amp;quot; section for each distribution. Navigate there via the distributions page - [[Distributions]].&lt;br /&gt;
&lt;br /&gt;
=== Firmware and hardware issues ===&lt;br /&gt;
&lt;br /&gt;
Issues relating to firmware and hardware are in [[Neo_FreeRunner_Hardware_Issues|Neo FreeRunner Hardware Issues]].&lt;br /&gt;
&lt;br /&gt;
Note that some issues might involve a combination of hardware and software.&lt;br /&gt;
&lt;br /&gt;
=== Selected, commonly-encountered issues ===&lt;br /&gt;
&lt;br /&gt;
Some selected known issues that are commonly encountered and reported on mailing lists are described below.&lt;br /&gt;
&lt;br /&gt;
==== My FreeRunner won't register with my cellphone network. What should I do?====&lt;br /&gt;
&lt;br /&gt;
Please see [[Neo_FreeRunner_Hardware_Issues#Some_SIMs_Don.27t_Work|some SIMs don't work]].&lt;br /&gt;
&lt;br /&gt;
==== SIM compatibility: It looks like my SIM card is not working; how do I run diagnostics? ====&lt;br /&gt;
&lt;br /&gt;
Here is how to check: follow [[Manually_using_GSM]] until you get an OK prompt. &lt;br /&gt;
&lt;br /&gt;
For more detailed documentation, please refer to [[FreeRunner_unable_to_work_with_3G_SIM_cards]] and [[Carriers]].&lt;br /&gt;
&lt;br /&gt;
==== I read somewhere that a GSM firmware update is available to fix this problem====&lt;br /&gt;
&lt;br /&gt;
The GSM firmware update is applicable only to the Neo 1973. Any fixes in the update are already implemented in the GSM firmware in the Neo FreeRunner.&lt;br /&gt;
&lt;br /&gt;
==== Why won't the FreeRunner boot even with the charger connected? ====&lt;br /&gt;
&lt;br /&gt;
See [[Neo_FreeRunner_Hardware_Issues#Can.27t_boot_with_discharged_or_missing_battery|Can't boot with discharged or missing battery]].&lt;br /&gt;
 &lt;br /&gt;
==== Flashing (dfu-util) -- dfu-util does not find the phone. ====&lt;br /&gt;
&lt;br /&gt;
In brief, you need to boot the phone into the NAND or NOR u-boot menu before dfu-util will be able to connect. dfu-util uses the USB DFU (Universal Serial Bus Device Firmware Upgrade) protocol, which is only available at the u-boot menu, and '''not''' Ethernet over USB, which is what is available when the phone has booted fully. &lt;br /&gt;
&lt;br /&gt;
Tip: If you're just trying out different distributions, you don't need to flash them with dfu-util; you can try out new distributions by putting them on the microSD card and booting from the card instead. If you'd like to do this instead of flashing, see [[Booting from SD]].&lt;br /&gt;
&lt;br /&gt;
To get the u-boot menu:&lt;br /&gt;
# Press and hold the AUX button &lt;br /&gt;
# Press the Power button until the phone powers on and displays the boot menu&lt;br /&gt;
# Release both buttons &lt;br /&gt;
# Press and release AUX to move the lightbar, so that the menu will not time out and boot the phone). &lt;br /&gt;
&lt;br /&gt;
Also see the wiki pages/sections:&lt;br /&gt;
* [[Booting the Neo FreeRunner]]&lt;br /&gt;
* [[Bootloader#Device Firmware Upgrade]]&lt;br /&gt;
* [[Flashing the Neo FreeRunner]]&lt;br /&gt;
* [[Dfu-util]]&lt;br /&gt;
&lt;br /&gt;
==== Why do I experience poor audio quality or buzzing noises during calls?====&lt;br /&gt;
See [http://wiki.openmoko.org/wiki/Neo_FreeRunner_Hardware_Issues#Poor_Audio_Quality this issue on the FreeRunner Hardware Issues page]&lt;br /&gt;
&lt;br /&gt;
====Suspend/resume may corrupt SD card's partition table====&lt;br /&gt;
&lt;br /&gt;
See [http://wiki.openmoko.org/wiki/Neo_FreeRunner_Hardware_Issues#Suspend.2Fresume_corrupts_SD_card.27s_partition_table this issue on the FreeRunner Hardware Issues page]. See ticket [https://docs.openmoko.org/trac/ticket/1802 #1802].&lt;br /&gt;
&lt;br /&gt;
==Hardware and Usage-related Questions==&lt;br /&gt;
&lt;br /&gt;
=== Booting ===&lt;br /&gt;
&lt;br /&gt;
==== How do I boot into U-boot? How do I select NAND or NOR FLASH? ====&lt;br /&gt;
&lt;br /&gt;
See [[Booting_the_Neo_FreeRunner|here]]&lt;br /&gt;
&lt;br /&gt;
=== Battery and Battery Charging===&lt;br /&gt;
&lt;br /&gt;
==== What is the expected battery life? ====&lt;br /&gt;
See [[Neo FreeRunner (GTA02) Battery#Notes_about_expected_battery_life]] and more battery information in [[Neo_FreeRunner_(GTA02)_Battery]]&lt;br /&gt;
&lt;br /&gt;
==== How do I enable fast charge mode for anything but the official mains charger? ====&lt;br /&gt;
See [[Forcing fast charge mode]].&lt;br /&gt;
&lt;br /&gt;
==== Can the Neo FreeRunner charge when turned off? When suspended? ====&lt;br /&gt;
&lt;br /&gt;
The Neo FreeRunner can '''not''' charge when turned off.&lt;br /&gt;
&lt;br /&gt;
The Neo FreeRunner '''can''' charge when suspended.&lt;br /&gt;
&lt;br /&gt;
==== Can the Neo charge and use devices on a USB hub at the same time? ====&lt;br /&gt;
&lt;br /&gt;
See [[USB_host#Providing_power_to_run_and_charge_the_Neo_while_in_host_mode|here]]&lt;br /&gt;
&lt;br /&gt;
===Wireless Connectivity===&lt;br /&gt;
&lt;br /&gt;
====What kind of wireless connectivity does the FreeRunner have? ====&lt;br /&gt;
&lt;br /&gt;
The FreeRunner has the following connectivity options:&lt;br /&gt;
* Tri-band GSM (850/1800/1900 MHz in North America, and 900/1800/1900 MHz, commonly referred to as &amp;quot;European tri-band&amp;quot;, for other parts of the world). For a list of compatible service providers, see [[Neo1973 compatible cellphone providers]].&lt;br /&gt;
* GPRS Class12/CS4 2.5G (Not EDGE)&lt;br /&gt;
* Bluetooth 2.0 EDR&lt;br /&gt;
* WiFi: Atheros AR6K in [[GTA02#.22Phase_2.22_.28GTA02.2C_.22Mass_Market.22.29|GTA02]]. (No 3G in year 2007 models)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== GSM/GPRS information ====&lt;br /&gt;
&lt;br /&gt;
The following pages contain very useful information:&lt;br /&gt;
&lt;br /&gt;
* [[Gsmd|GSM Daemon]]&lt;br /&gt;
&lt;br /&gt;
* [[GSM|General GSM page]]&lt;br /&gt;
&lt;br /&gt;
* [[Hardware:AT_Commands|AT commands]]&lt;br /&gt;
&lt;br /&gt;
* [http://freeyourphone.de/portal_v1/viewtopic.php?f=21&amp;amp;t=295#p2956 Useful script for GPRS]&lt;br /&gt;
&lt;br /&gt;
==== How do I get the WLAN (802.11, Wi-Fi, wireless network) working? ====&lt;br /&gt;
&lt;br /&gt;
See [[Neo FreeRunner Wifi]]&lt;br /&gt;
&lt;br /&gt;
==== How do I get the GPS working? ====&lt;br /&gt;
&lt;br /&gt;
See [[GTA02 GPS]]&lt;br /&gt;
&lt;br /&gt;
==== It takes a long time (10min+) before the FreeRunner gets the first GPS data/readings ====&lt;br /&gt;
&lt;br /&gt;
See [[GPS Problems]].&lt;br /&gt;
&lt;br /&gt;
==== How do I get Bluetooth working manually? ====&lt;br /&gt;
&lt;br /&gt;
See [[Manually_using_Bluetooth]]&lt;br /&gt;
&lt;br /&gt;
==== How do I use an external Bluetooth keyboard with the FreeRunner ? ====&lt;br /&gt;
..TBA..&lt;br /&gt;
&lt;br /&gt;
====Can I bridge to an Ethernet (wired or unwired) network via a suitable Bluetooth enabled router? ====&lt;br /&gt;
&lt;br /&gt;
Yes - see [http://gentoo-wiki.com/HOWTO_Configure_a_bluetooth_network_access_point this howto for how to configure a linux computer to act as such a router] and [[Bluetooth Support]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== USB ===&lt;br /&gt;
&lt;br /&gt;
==== How do I connect a USB memory-stick etc? ====&lt;br /&gt;
&lt;br /&gt;
This requires an adapter Mini-B 5-pole =&amp;gt; Type A jack or an adapter jack =&amp;gt; jack. See [[USB Host]] for more information.&lt;br /&gt;
&lt;br /&gt;
====Once I have such an adapter, can I use it to connect 2 Neos to each other?====&lt;br /&gt;
&lt;br /&gt;
This question is equivalent to '''How to connect two [Unix/Linux] computers via USB cable and what sort of special cable is needed?''' -&amp;gt; http://www.linuxquestions.org/questions/linux-general-1/connecting-two-computers-with-a-usb-cable-data-cable-411073&lt;br /&gt;
&lt;br /&gt;
It should work if one Neo is set to Host mode and the other one set to Device mode. One Neo could give power to the USB-port it the other Neo's battery is low. ''(I have to verify this)''&lt;br /&gt;
&lt;br /&gt;
==== How do I use an external USB keyboard with the FreeRunner ? ====&lt;br /&gt;
&lt;br /&gt;
Run:&lt;br /&gt;
 echo &amp;quot;host&amp;quot; &amp;gt; /sys/devices/platform/s3c2410-ohci/usb_mode&lt;br /&gt;
 echo &amp;quot;1&amp;quot; &amp;gt; /sys/devices/platform/neo1973-pm-host.0/hostmode&lt;br /&gt;
&lt;br /&gt;
These commands will put the FreeRunner into powered USB host mode. After this, just plug in the keyboard and it'll work. Personally, I've made a .desktop file to switch into and out of host mode. &lt;br /&gt;
&lt;br /&gt;
To switch back to unpowered device mode just run:&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;device&amp;quot; &amp;gt; /sys/devices/platform/s3c2410-ohci/usb_mode&lt;br /&gt;
 echo &amp;quot;0&amp;quot; &amp;gt; /sys/devices/platform/neo1973-pm-host.0/hostmode&lt;br /&gt;
&lt;br /&gt;
Finally you will need a &lt;br /&gt;
USB Type A Female to Female adapter. For more details see&lt;br /&gt;
[[Specialized_USB_cables#Attaching_the_Neo_.28acting_as_a_USB_host.29_to_a_USB_device|here]]&lt;br /&gt;
&lt;br /&gt;
=== Display ===&lt;br /&gt;
&lt;br /&gt;
==== Can the phone play VGA video? ====&lt;br /&gt;
&lt;br /&gt;
No, it can do about 20 fps QVGA with software, and something beetween QVGA and VGA playing MPEG-4 using hardware (at resonable fps). Scaling is also done with GPU hardware.&lt;br /&gt;
&lt;br /&gt;
==== How to change the background picture of the root window? ====&lt;br /&gt;
&lt;br /&gt;
{{Note|This probably differs for each distribution? Need to insert, or link to, relevant info for each. --[[User:Eddsouza|eddsouza]] 09:29, 7 September 2008 (UTC)}}&lt;br /&gt;
&lt;br /&gt;
Look at [[Today/2007.2#Adjust_UI_components_at_runtime]].&lt;br /&gt;
&lt;br /&gt;
=== Storage ===&lt;br /&gt;
&lt;br /&gt;
==== What microSDHC-cards are supported? ====&lt;br /&gt;
&lt;br /&gt;
See [[Supported_microSD_cards|here]]&lt;br /&gt;
&lt;br /&gt;
===System-level information===&lt;br /&gt;
&lt;br /&gt;
==== What hardware signals are available?====&lt;br /&gt;
&lt;br /&gt;
To simplify extending the hardware, various signals of interest are brought out via the JTAG connector and can be easily accessed with the debug board:&lt;br /&gt;
&lt;br /&gt;
(TBA: List of signals)&lt;br /&gt;
&lt;br /&gt;
Some additional signals that did not fit on the JTAG connector are brought out to solder pads:&lt;br /&gt;
&lt;br /&gt;
(TBA: List of signals)&lt;br /&gt;
&lt;br /&gt;
==== Is the JTAG interface that comes with GTA01 compatible with GTA02?====&lt;br /&gt;
&lt;br /&gt;
Yes&lt;br /&gt;
&lt;br /&gt;
==== How do I get low-level hardware-related functions, like power up device, dump register? ====&lt;br /&gt;
&lt;br /&gt;
See [[GTA02_sysfs]]&lt;br /&gt;
&lt;br /&gt;
=== Inputs ===&lt;br /&gt;
&lt;br /&gt;
==== How can I type a '/' in the software keyboard? ====&lt;br /&gt;
&lt;br /&gt;
See [[Switching Keyboards]]&lt;br /&gt;
&lt;br /&gt;
==== How do I get a QWERTY layout software keyboard?====&lt;br /&gt;
&lt;br /&gt;
See [[Switching Keyboards]]&lt;br /&gt;
&lt;br /&gt;
=== Miscellaneous ===&lt;br /&gt;
&lt;br /&gt;
====Will Openmoko &amp;quot;Just Work&amp;quot; with Mac OS X? ====&lt;br /&gt;
&lt;br /&gt;
There has been some discussion of this on the mailing list. There is motivation, and there are interested developers. &lt;br /&gt;
Not being a Mac OS X user, I don't know enough&lt;br /&gt;
to summarize the discussion to answer this question. Can someone please fill in?&lt;br /&gt;
&lt;br /&gt;
For IP over USB cable connectivity, it is planned to improve/adapt the AJZaurusUSB driver, allowing ssh into the Openmoko.&lt;br /&gt;
&lt;br /&gt;
It is expected that (Bluetooth/UB) SyncML based interoperation for&lt;br /&gt;
contacts and events can easily be achieved by a patch&lt;br /&gt;
to the Apple iSync configuration tables.&lt;br /&gt;
&lt;br /&gt;
There is an open source implementation of Cocoa (GNUstep) that aims to run MacOS X compatible applications (sort of&lt;br /&gt;
PPC/x86/ARM universal binaries) on Openmoko devices: mySTEP.&lt;br /&gt;
&lt;br /&gt;
==Software==&lt;br /&gt;
&lt;br /&gt;
===General Questions===&lt;br /&gt;
&lt;br /&gt;
====Is it completely free software/open source? ====&lt;br /&gt;
&lt;br /&gt;
Yes. All software that runs on the main CPU and can be updated by the user is available in source.&lt;br /&gt;
&lt;br /&gt;
Firmware in &amp;quot;black box&amp;quot; hardware modules that can not be modified by users is not available in source form. Effectively, these modules are &amp;quot;hardware only&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
This allows, for example, that the driver for the GSM module be completely open sourced without violating any FCC rules.&lt;br /&gt;
&lt;br /&gt;
====Can the software do/connect to/... ====&lt;br /&gt;
&lt;br /&gt;
Reviews of the latest &amp;quot;bleeding edge&amp;quot; daily builds of the Openmoko software stack can be seen [[Snapshot_review|here]]&lt;br /&gt;
&lt;br /&gt;
At the moment, the answer to many other questions is &amp;quot;no&amp;quot;. The phone is at the moment a small Linux box with a touchscreen, a working dialer and some prototype apps.  Most do not function in any way that would be suitable for end-users.  If you want to add a feature or application request, then look over the existing [[Applications]] and either add one, or add a feature request to the applications page.&lt;br /&gt;
&lt;br /&gt;
==== Does Openmoko run on any other hardware? ====&lt;br /&gt;
&lt;br /&gt;
You can run it on your [[How_to_run_Openmoko_Apps_on_PC|PC]].  You may be able to run it on other [[Openmoko-supported_hardware | mobile platforms]]&lt;br /&gt;
&lt;br /&gt;
==== Can Java applications from other mobile phones run on the FreeRunner? ====&lt;br /&gt;
&lt;br /&gt;
I think a lot of work must still be done, but [[Java|this]] wiki page has some information&lt;br /&gt;
&lt;br /&gt;
===Distributions===&lt;br /&gt;
&lt;br /&gt;
====What is the stock distribution image that comes on the Neo FreeRunner?====&lt;br /&gt;
&lt;br /&gt;
The 2007.2 distribution - see [[Distributions#2007.2| 2007.2 factory default software image]]&lt;br /&gt;
&lt;br /&gt;
=====Are there any known issues with the factory-installed 2007.2 image on the Neo FreeRunner?=====&lt;br /&gt;
&lt;br /&gt;
Yes, see [[Om_2007.2#Known_Issues|2007.2 Known Issues]]&lt;br /&gt;
&lt;br /&gt;
===== Where can I download and reinstall the factory default image? =====&lt;br /&gt;
&lt;br /&gt;
See [[Flashing_the_Neo_FreeRunner|Flashing the Neo FreeRunner]]&lt;br /&gt;
&lt;br /&gt;
====What alternate distributions are available for the Neo FreeRunner?====&lt;br /&gt;
&lt;br /&gt;
See [[Distributions|Distributions]]&lt;br /&gt;
&lt;br /&gt;
==== How do I find out what image versions are in use on the phone? ====&lt;br /&gt;
&lt;br /&gt;
You can run the commands given below on the phone (in an SSH session from your host PC, or in the Terminal application on the phone itself)&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;5&amp;quot; align=&amp;quot;left&amp;quot;&lt;br /&gt;
! To find out&lt;br /&gt;
! Run&lt;br /&gt;
|- &lt;br /&gt;
| Kernel version that is currently running&lt;br /&gt;
| &lt;br /&gt;
  uname -a&lt;br /&gt;
|-&lt;br /&gt;
| The version of the root filesystem that you are currently using&lt;br /&gt;
| &lt;br /&gt;
  cat /etc/version &lt;br /&gt;
or &lt;br /&gt;
  cat /etc/om-version&lt;br /&gt;
|-&lt;br /&gt;
| The versions of u-boot on the phone (The FreeRunner has one u-boot image in NOR memory, and one in NAND - see [[Booting the Neo FreeRunner]] for more information)&lt;br /&gt;
| &lt;br /&gt;
  grep  Bootloader /dev/mtdblock0  (yields the NOR u-boot version)&lt;br /&gt;
or&lt;br /&gt;
  grep  Bootloader /dev/mtdblock1  (yields the NAND u-boot version)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
====Where do I get the latest version of the official Openmoko image, 2008.8 (also known as ASU)?====&lt;br /&gt;
&lt;br /&gt;
See [[Download#Om_2008.8_images_.28ASU.29| download Om 2008.8 images]]&lt;br /&gt;
&lt;br /&gt;
===== Why are the buttons in TangoGPS too large? The zoom out is missing! =====&lt;br /&gt;
&lt;br /&gt;
There is no GTK engine or theme installed with the ASU build.  Fortunately, this is easy to fix!&lt;br /&gt;
&lt;br /&gt;
At a terminal:&lt;br /&gt;
:&amp;lt;tt&amp;gt;# opkg install moko-gtk-theme moko-gtk-engine&amp;lt;/tt&amp;gt;&lt;br /&gt;
:&amp;lt;tt&amp;gt;# ln -s /usr/share/themes/Moko/gtk-2.0/gtkrc /home/root/.gtkrc-2.0&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now you have pretty colors and widgets, but the font is too big.  Edit &amp;lt;tt&amp;gt;/usr/share/themes/Moko/gtk-2.0/gtkrc&amp;lt;/tt&amp;gt; in your favorite text editor and add the following line:&lt;br /&gt;
:&amp;lt;tt&amp;gt;gtk-font-name = &amp;quot;Sans 4&amp;quot;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To use the openmoko icon theme, install it with:&lt;br /&gt;
:&amp;lt;tt&amp;gt;# opkg install openmoko-icon-theme-standard2&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and enable it editing the &amp;lt;tt&amp;gt;/usr/share/themes/Moko/gtk-2.0/gtkrc&amp;lt;/tt&amp;gt; adding the line:&lt;br /&gt;
:&amp;lt;tt&amp;gt;gtk-icon-theme-name=&amp;quot;openmoko-standard&amp;quot;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You shouldn't even need to restart the device, although you will need to restart any GTK-based programs.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Can the Neo FreeRunner dual boot? Multiple boot?====&lt;br /&gt;
&lt;br /&gt;
Since the Neo FreeRunner can boot from the micro SD card, you can install and boot from as many distributions as will fit on your card. See [[Boot_from_sd_card|Booting from SD]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====How do I install Debian on the Neo FreeRunner?====&lt;br /&gt;
&lt;br /&gt;
See [[Debian#Installation|Debian Installation]]&lt;br /&gt;
&lt;br /&gt;
=====Are there any known issues with Debian on the Neo FreeRunner?=====&lt;br /&gt;
&lt;br /&gt;
See [[Debian#Known_Issues|Debian Known Issues]]&lt;br /&gt;
&lt;br /&gt;
=====How do I replace the matchbox window manager with the xfce window manager?=====&lt;br /&gt;
&lt;br /&gt;
Replace the matchbox-wm line in zhone-session with xfwm4 to start the xfce-wm.&lt;br /&gt;
&lt;br /&gt;
Here's my (Fox Mulder) /usr/bin/zhone-session file which works with xfwm and matchbox keyboard popup:&lt;br /&gt;
&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 &lt;br /&gt;
 #zhone &amp;amp;&lt;br /&gt;
 exec startxfce4 &amp;amp;&lt;br /&gt;
 matchbox-keyboard-toggle &amp;amp;&lt;br /&gt;
 #exec matchbox-window-manager -use_titlebar yes&lt;br /&gt;
 exec xfwm4&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Applications ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====What software is on the phone?====&lt;br /&gt;
&lt;br /&gt;
At the moment, almost no 'end-user' applications are present and working in a usable state.&lt;br /&gt;
It is possible to make and receive calls in some software revisions, this frequently breaks though.&lt;br /&gt;
&lt;br /&gt;
====What software can be installed on the phone?====&lt;br /&gt;
&lt;br /&gt;
Pretty much any that can be cross-compiled for the ARM architecture.&lt;br /&gt;
&lt;br /&gt;
====Will it be possible to use popular VoIP applications on the Openmoko platform? ====&lt;br /&gt;
&lt;br /&gt;
Since it has WiFi the FreeRunner should be a good platform for VOIP use.    &lt;br /&gt;
&lt;br /&gt;
In either case please check for softphone apps ported to the Openmoko distribution at the [http://projects.openmoko.org/  projects] page. We need to focus efforts on free software. Not convincing non-free software companies to release binaries for our Neos.&lt;br /&gt;
&lt;br /&gt;
====Will it be possible to use popular Instant Messaging applications ? ====&lt;br /&gt;
&lt;br /&gt;
There many Open Source IM clients, many of which have a plugin architecture and so support the use of more than one IM protocol, even simultaneously. One example is [[Pidgin]], formerly called GAIM. GPRS does induce a certain amount of latency but that should not be a problem for simple, text-oriented chat between parties. And the GTA02's WiFi  will make it even better.&lt;br /&gt;
&lt;br /&gt;
==== Does it support Flash so can I watch YouTube? ====&lt;br /&gt;
You don't really need Flash to watch YouTube videos, for example, if you want to watch www.youtube.com/watch?v=k9QLdK6pFCI just install mplayer and use this command: &lt;br /&gt;
 mplayer http://ytpocket.com/getflv.php?id=k9QLdK6pFCI&lt;br /&gt;
or use this small script with the video URL as the first parametre:&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 vid=`echo &amp;quot;$1&amp;quot; | sed 's/.*\?.*=\(.*\)/\1/'`&lt;br /&gt;
 mplayer http://ytpocket.com/getflv.php?id=$vid&lt;br /&gt;
&lt;br /&gt;
=== Package Management===&lt;br /&gt;
&lt;br /&gt;
==== How do I install and manage software on Openmoko? ====&lt;br /&gt;
&lt;br /&gt;
See [http://handhelds.org/moin/moin.cgi/Ipkg here]&lt;br /&gt;
&lt;br /&gt;
==== What about opkg? ====&lt;br /&gt;
&lt;br /&gt;
See [[Opkg|here]]&lt;br /&gt;
&lt;br /&gt;
==== What is the meaning of the error codes from ipkg? ====&lt;br /&gt;
&lt;br /&gt;
See [[Opkg#Error_Codes|here]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Does opkg support packages autocompletion ? ====&lt;br /&gt;
&lt;br /&gt;
It's possible now, see [http://tropfacile.info/?/Linux/28-Openmoko-Opkg-Autocompletion-With-Packages-Names The opkg autocompletion]&lt;br /&gt;
&lt;br /&gt;
===Development===&lt;br /&gt;
&lt;br /&gt;
====How can I compile programs for the Neo FreeRunner? ====&lt;br /&gt;
&lt;br /&gt;
See [[Toolchain]].&lt;br /&gt;
&lt;br /&gt;
====Is there an emulator available for Openmoko? ====&lt;br /&gt;
&lt;br /&gt;
For a lot of testing and development work you can simply run Openmoko directly on your PC.&lt;br /&gt;
&lt;br /&gt;
=====QEMU=====&lt;br /&gt;
&lt;br /&gt;
QEMU can emulate the Neo 1973 and the Neo FreeRunner. The [[MokoMakefile]] has support for automatically building, flashing, and running [[Openmoko under QEMU|the Neo emulator]].&lt;br /&gt;
&lt;br /&gt;
*Ubuntu users can follow the instructions in [[Automatic_emulation_in_Ubuntu]]&lt;br /&gt;
&lt;br /&gt;
*Users of other Linux distributions can try the following:&lt;br /&gt;
:&amp;quot;make qemu” will build qemu-neo1973, download the latest official openmoko images, flash the images into the virtual NAND flash, and run the emulator.&lt;br /&gt;
&lt;br /&gt;
See [[Qemu]] for more advanced information on running Openmoko in Qemu.&lt;br /&gt;
&lt;br /&gt;
=====Xoo=====&lt;br /&gt;
&lt;br /&gt;
[http://projects.o-hand.com/xoo Xoo]. Koen says: &amp;quot;Xoo should be enough for most applications people will develop, since most don't need access to the GSM uart directly. If you're hardcore you could use qemu + xoo, but that still doesn't emulate all the hardware quirks (e.g. unaligned access)&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Update: Stefan Schmidt has resized the [[Neo1973]] Mock-up and written a small description for xoo. In his words:&lt;br /&gt;
&lt;br /&gt;
It's not really usable at all, as you need a really high screen resolution to fit the whole picture on your screen. And of course the dpi are wrong. Even no buttons because I can't remember where they are at the case.&lt;br /&gt;
&lt;br /&gt;
http://www.datenfreihafen.org/~stefan/OpenMoko/neo1973-xoo-device.tar.bz2&lt;br /&gt;
&lt;br /&gt;
Start with 'xoo --device /path/to/neo1973.xml'&lt;br /&gt;
&lt;br /&gt;
Some more details [[Getting_Openmoko_working_on_host_with_Xoo|here]].&lt;br /&gt;
&lt;br /&gt;
=====Xephyr=====&lt;br /&gt;
&lt;br /&gt;
Or use Xephyr directly with locally compiled programs (e.g. matchbox svn + openmoko):&lt;br /&gt;
 Xephyr -screen 480x640 -nolisten tcp -ac :1 &amp;amp;&lt;br /&gt;
 export DISPLAY=:1&lt;br /&gt;
 export LD_LIBRARY_PATH=/usr/local/lib&lt;br /&gt;
 matchbox-window-manager -display $DISPLAY -use_titlebar no \&lt;br /&gt;
  -use_super_modal yes -use_lowlight yes -use_dialog_mode static \&lt;br /&gt;
  -use_cursor yes &amp;amp;&lt;br /&gt;
 matchbox-panel --geometry=480x44 --end-applets=clock &amp;amp;&lt;br /&gt;
 openmoko-footer &amp;amp;&lt;br /&gt;
 openmoko-taskmanager &amp;amp;&lt;br /&gt;
&lt;br /&gt;
====Where can I find some type of tutorial for a 'Hello, world' on Openmoko? ====&lt;br /&gt;
&lt;br /&gt;
This should get you started:&lt;br /&gt;
* [[Building_a_hello_world_application]]&lt;br /&gt;
* http://www.gtk.org/documentation.html#Tutorials&lt;br /&gt;
&lt;br /&gt;
====Can PalmOS apps applications be ported to run on Openmoko? ====&lt;br /&gt;
&lt;br /&gt;
Making legacy apps written for the &amp;quot;Garnet&amp;quot; OS (née &amp;quot;Palm OS&amp;quot;) run on Linux&lt;br /&gt;
is decidedly non-trivial.&lt;br /&gt;
&lt;br /&gt;
PalmOS apps are in general very hard to simply 'port'. Particularly well-designed programs may make it possible.&lt;br /&gt;
&lt;br /&gt;
The ACCESS Linux Platform will include Garnet on Host (GHost), a PalmOS emulator that will support M6800 (68k) and ARM PalmOS applications. This part (GarnetVM and the .prc loader) will however be closed-source and likely under a restrictive license (fact confirmed by ACCESS Co. employees), making it rather unusable. In addition GarnetVM depends on Hiker and other packages.&lt;br /&gt;
&lt;br /&gt;
It is possible that POSE, an emulator that simulates a Palm device on a Linux host could be used to allow 68k based applications to run.  This emulator has been around a long time; one expects that it will also run on Openmoko, but this has to be considered a short-term bandaid rather than a long-term solution.&lt;br /&gt;
&lt;br /&gt;
Hopefully emulation will be necessary only for M68000 code (pre-PalmOS 5) while native ARM programs can run natively under Linux, provided a proper set of PalmOS libraries and a .prc executable loader.&lt;br /&gt;
&lt;br /&gt;
==== Does it support Java? ====&lt;br /&gt;
It will have eventually, if you help us to get it working. Some good places to keep track of would be [http://projects.openmoko.org/projects/java-pkg/ projects.openmoko.org] and [https://phoneme.dev.java.net/ PhoneME].&lt;br /&gt;
&lt;br /&gt;
Project [[https://wiki.evolvis.org/jalimo/index.php/Jalimo Jalimo]] is a project aiming to provide a Java stack on mobile devices. There is a [https://wiki.evolvis.org/jalimo/index.php/Openmoko port of Jalimo] for Openmoko.&lt;br /&gt;
The [[Debian]] distribution supports CacaoVM and JamVM through apt-get. See [[Java]] for more infos.&lt;br /&gt;
&lt;br /&gt;
==== Does it support Ruby? ====&lt;br /&gt;
&lt;br /&gt;
For Ruby 1.9, please refer to http://blog.sparkymat.net/2008/08/10/ruby-19-on-openmoko/&lt;br /&gt;
&lt;br /&gt;
For Ruby 1.8.6, please refer to http://blog.wolfman.com/articles/2008/08/10/ruby-1-8-6-on-openmoko-freerunner&lt;br /&gt;
&lt;br /&gt;
==== Does it support Python? ====&lt;br /&gt;
&lt;br /&gt;
Yes, with some caveats. See [[Python]] for more information.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====How do I dump details about X11 configuration and extensions? ====&lt;br /&gt;
&lt;br /&gt;
Run the command xdpyinfo. Generally, you would do this via an SSH session to the phone, so you may need to first &lt;br /&gt;
&lt;br /&gt;
 export DISPLAY=&amp;quot;:0.0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
and then run&lt;br /&gt;
&lt;br /&gt;
 xdpyinfo&lt;br /&gt;
&lt;br /&gt;
For an example invocation, see [http://lists.openmoko.org/pipermail/community/2007-January/001353.html xdpyinfo output].&lt;br /&gt;
&lt;br /&gt;
== Distribution Customization ==&lt;br /&gt;
&lt;br /&gt;
{{Note| Suggestion: this should be split off into a separate page, since many of the questions below aren't really overview-level but specialized; a question like &amp;quot;How do I customize a distribution?&amp;quot; could be added to the Software - Distributions part, linking to the new page. --[[User:Eddsouza|eddsouza]] 07:35, 7 September 2008 (UTC)}}&lt;br /&gt;
&lt;br /&gt;
=== Compilation &amp;amp; packaging ===&lt;br /&gt;
==== What is the 'overlay' approach to bitbake development? ====&lt;br /&gt;
:You can create a local overlay for the bitbake build chain and develop in the overlay as described in [[Application_Development_Crash_Course| Application Development Crash Course]].&lt;br /&gt;
&lt;br /&gt;
==== Which .bb files are related with the Openmoko? ====&lt;br /&gt;
==== Are there any configuration files for Openmoko? ====&lt;br /&gt;
==== How can I port an application written with autotools to Openmoko? ====&lt;br /&gt;
After you source the [[Toolchain|Openmoko toolchain]] variables, the Openmoko processor compiler becomes the default compiler. You can compile any GNU - like project just typing ''./configure --host i686'' and then ''make'' - it will produce libraries and executables as expected. Just these executables will not run on your i686 host - they will run on Openmoko ARM processor. Use scp to upload the executables to your phone.&lt;br /&gt;
&lt;br /&gt;
==== How can I add an application written with autotools to the openmoko tree? ====&lt;br /&gt;
&lt;br /&gt;
==== How can I make changes in the openmoko applications? ====&lt;br /&gt;
==== How can I submit my changes? ====&lt;br /&gt;
==== Can I use the mokomakefile in the development process? How? ====&lt;br /&gt;
&lt;br /&gt;
:Yes, [[MokoMakefile]] can be used in the development process.  See [[MokoMakefile#Developing_with_MokoMakefile| Developing with MokoMakefile]].&lt;br /&gt;
&lt;br /&gt;
==== What's the way to include/exclude a newly added package to/from the final rootfs? ====&lt;br /&gt;
==== Where do the final ipk &amp;amp; binary files reside? ====&lt;br /&gt;
:ipk files are in &lt;br /&gt;
 ./build/tmp/deploy/glibc/ipk/&lt;br /&gt;
:binary images are in&lt;br /&gt;
 ./build/tmp/deploy/glibc/images/fic-gta01/&lt;br /&gt;
&lt;br /&gt;
==== How can I add an application to the applications list? ====&lt;br /&gt;
==== How can I assign an image to my new application to be seen in the applications list? ====&lt;br /&gt;
The Openmoko project tree contains the folder 'data' where you can put any 128*128 icon. You need to mention the icon in two places in this folder: &lt;br /&gt;
* Makefile.am must contain the line dist_appicon_DATA = &amp;lt;icon_name&amp;gt;.png&lt;br /&gt;
* The &amp;lt;application_name&amp;gt;.desktop file that must be in this folder should contain the Icon=&amp;lt;icon_name&amp;gt; (without file type).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Misc==&lt;br /&gt;
&lt;br /&gt;
===On the lists on lists.openmoko.org, should replies be added above or below the original text? ===&lt;br /&gt;
&lt;br /&gt;
Please reply UNDER post.&lt;br /&gt;
&lt;br /&gt;
===How can I find out if a question or topic has already been discussed on the mailing lists? ===&lt;br /&gt;
&lt;br /&gt;
By searching the mailing list archives. For example, using Google searches:&lt;br /&gt;
&lt;br /&gt;
 site:openmoko.org text&lt;br /&gt;
&lt;br /&gt;
For example, to search for accelerometer:&lt;br /&gt;
&lt;br /&gt;
 site:openmoko.org accelerometer&lt;br /&gt;
&lt;br /&gt;
If you only want to read the &amp;quot;official&amp;quot; mails from FIC people or from Openmoko people:&lt;br /&gt;
&lt;br /&gt;
 site:openmoko.org text &amp;quot;at fic.com.tw&amp;quot;&lt;br /&gt;
 site:openmoko.org text &amp;quot;at openmoko.org&amp;quot;&lt;br /&gt;
&lt;br /&gt;
For example to search for &amp;quot;release date&amp;quot; from FIC people:&lt;br /&gt;
&lt;br /&gt;
 site:openmoko.org &amp;quot;release date&amp;quot; &amp;quot;at fic.com.tw&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Alternatively you can use the [http://www.google.com/coop/cse?cx=018430699993342716089%3Aszsaurhronw custom Openmoko search engine] that is using [http://www.google.com/coop/ Google Co-op].&lt;br /&gt;
&lt;br /&gt;
===how many dead pixels may the LCM have before calling it defect? ===&lt;br /&gt;
&lt;br /&gt;
The answer for the display used in GTA01 and GTA02 is '2'&lt;br /&gt;
&lt;br /&gt;
=== how many visits does this wiki have? ===&lt;br /&gt;
See this [[Wiki_statistic_numbers|wiki's statistics]] page.&lt;br /&gt;
&lt;br /&gt;
=Historical=&lt;br /&gt;
The Neo1973 was last available in Febuary 2008. &lt;br /&gt;
&lt;br /&gt;
==Neo1973 Hardware== &lt;br /&gt;
&lt;br /&gt;
===What are the hardware specifications of Neo 1973 ? ===&lt;br /&gt;
&lt;br /&gt;
See page [[Neo1973_Hardware]] and category [[:Category:Neo1973 Hardware | Neo1973 Hardware]] and [[Disassembling Neo1973]]&lt;br /&gt;
&lt;br /&gt;
===How do I input text? ===&lt;br /&gt;
&lt;br /&gt;
Use provided keyboard app.&lt;br /&gt;
&lt;br /&gt;
Use Bluetooth keyboard.&lt;br /&gt;
&lt;br /&gt;
For more methods and ideas see [[Wishlist:Text_Input]].&lt;br /&gt;
&lt;br /&gt;
===Can I record calls and/or play audio files in calls? ===&lt;br /&gt;
&lt;br /&gt;
Yes, audio path from GSM to/from mic and speakers is completely controllable by user. For example recording calls (both sides) and implementing an [[Answering Machine]] is possible. Also using text-&amp;gt;speech should be possible or modifying outgoing voice. Currently there is no software bundled in phone to do this.&lt;br /&gt;
There are only 2 A/D inputs and three D/A outputs (one dedicated to the earpiece). This means that stereo audio playback cannot happen at the same time as the [[Answering Machine]] functionality, amongst other things. See the audio page. [[Neo1973_Audio_Subsystem|Neo1973 Audio Subsystem]]&lt;br /&gt;
&lt;br /&gt;
===What is the battery life? ===&lt;br /&gt;
&lt;br /&gt;
There has been no word on this so far, but see [[Neo1973 Power Management#Approximate_power_draw_of_various_subsystems|these estimates]] for a rough idea.  More information about the battery [[Neo1973 Battery|here]].&lt;br /&gt;
&lt;br /&gt;
=== USB ===&lt;br /&gt;
&lt;br /&gt;
====What can I do with the USB port on the Neo? ====&lt;br /&gt;
Charge the phone, communicate with it over USB-serial, or USB-networking.&lt;br /&gt;
&lt;br /&gt;
Plug external devices, such as wifi, cameras, or mass-storage devices.&lt;br /&gt;
&lt;br /&gt;
====What can't I do with the USB? ====&lt;br /&gt;
&lt;br /&gt;
The only limitation on current hardware seems to be no usb 2.0 support, which means slower communication with 2.0 devices.&lt;br /&gt;
&lt;br /&gt;
====Why is only USB 1.1 provided? ====&lt;br /&gt;
&lt;br /&gt;
The processor has USB 1.1 built in. One with USB2 built in would have been more expensive, and might not be open.&lt;br /&gt;
&lt;br /&gt;
The FreeRunner has the same processor as the Neo1973.&lt;br /&gt;
&lt;br /&gt;
====What are the details of the USB port on the Neo? How does it compare to USB On-The-Go? ====&lt;br /&gt;
&lt;br /&gt;
The Neo will have mini-USB-B, and will be able to function as either a host or a device. It will NOT be USB On-The-Go.  OTG is a complex specification, and it comprises way more than just&lt;br /&gt;
an AB socket, but also electrical and software components which cannot be provide by the S3C2410.&lt;br /&gt;
&lt;br /&gt;
You will need a special Mini-B to regular-B cable (note that this won't actually comply with the USB standard:  a compliant cable has to have an A or Mini-A plug on one end, and B or Mini-B on the other).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Application Developer]]&lt;br /&gt;
[[Category:Basic End User]]&lt;br /&gt;
[[Category:FAQ]]&lt;/div&gt;</summary>
		<author><name>Michaelshiloh</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/USB_host</id>
		<title>USB host</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/USB_host"/>
				<updated>2008-10-09T22:15:18Z</updated>
		
		<summary type="html">&lt;p&gt;Michaelshiloh: /* Power Concerns */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|USB host}}&lt;br /&gt;
The mini-USB port on both the Neo 1973 and the Neo FreeRunner supports both USB host and USB device. This opens up a range of possibilities, such as adding USB cameras and USB input devices.&lt;br /&gt;
&lt;br /&gt;
=== Selecting USB host modes ===&lt;br /&gt;
&lt;br /&gt;
By default, the mini-USB port is in device mode. To tell the Neo that it is logically a host¹):&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;host&amp;quot; &amp;gt; /sys/devices/platform/s3c2410-ohci/usb_mode&lt;br /&gt;
&lt;br /&gt;
Independent of the logical mode of the USB port, the Neo FreeRunner can provide 5 volt USB power to an attached USB device. To enable this (not available on Neo 1973):&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;1&amp;quot; &amp;gt; /sys/devices/platform/neo1973-pm-host.0/hostmode&lt;br /&gt;
&lt;br /&gt;
Note: You may want to run &amp;lt;code&amp;gt;ifconfig usb0 down&amp;lt;/code&amp;gt; prior to switching to USB host mode, as the Neo's USB networking may not like having its USB port disappear. You'll probably want to ssh into your Neo over WiFi or Bluetooth before starting all of this, alternatively use an on screen keyboard.&lt;br /&gt;
&lt;br /&gt;
Note that in full USB host mode the FreeRunner will power the external device. To avoid draining the battery use a powered USB hub, then on the FreeRunner enable logical host mode:&lt;br /&gt;
&lt;br /&gt;
~ - echo host &amp;gt; /sys/devices/platform/s3c2410-ohci/usb_mode&lt;br /&gt;
&lt;br /&gt;
but NOT electrical host mode&lt;br /&gt;
&lt;br /&gt;
~ - echo 0 &amp;gt; /sys/devices/platform/neo1973-pm-host.0/hostmode&lt;br /&gt;
&lt;br /&gt;
Note that powered USB hubs do not send power upstream, that is, into the host. If you wish to power or charge the FreeRunner, you will need a [[Specialized USB cables|special USB cable]].&lt;br /&gt;
&lt;br /&gt;
¹)Debian note: You'll need the ohci-hcd module:&lt;br /&gt;
 modprobe ohci-hcd&lt;br /&gt;
&lt;br /&gt;
==== Returning from USB host mode to USB device mode ====&lt;br /&gt;
&lt;br /&gt;
 echo device &amp;gt; /sys/devices/platform/s3c2410-ohci/usb_mode&lt;br /&gt;
 echo 0 &amp;gt; /sys/devices/platform/neo1973-pm-host.0/hostmode&lt;br /&gt;
&lt;br /&gt;
=== Returning to USB device mode ===&lt;br /&gt;
After doing whatever is needed to safely remove your device and unplugging it you can remove the provision of 5 volt power and return to device mode.&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;0&amp;quot; &amp;gt; /sys/devices/platform/neo1973-pm-host.0/hostmode&lt;br /&gt;
 echo &amp;quot;device&amp;quot; &amp;gt; /sys/devices/platform/s3c2410-ohci/usb_mode&lt;br /&gt;
&lt;br /&gt;
You can now safely restart USB networking.&lt;br /&gt;
&lt;br /&gt;
====USB-Mode-Script====&lt;br /&gt;
These simple script is useful to switch the USB-Modes:&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 grep -q 'host' /sys/devices/platform/s3c2410-ohci/usb_mode&lt;br /&gt;
 if [ $? -eq 0 ]&lt;br /&gt;
 then &lt;br /&gt;
  echo &amp;quot;0&amp;quot; &amp;gt; /sys/devices/platform/neo1973-pm-host.0/hostmode&lt;br /&gt;
  echo &amp;quot;device&amp;quot; &amp;gt; /sys/devices/platform/s3c2410-ohci/usb_mode&lt;br /&gt;
  echo USB-Port is in device-mode now.&lt;br /&gt;
 else&lt;br /&gt;
  ifconfig usb0 down&lt;br /&gt;
  echo &amp;quot;host&amp;quot; &amp;gt; /sys/devices/platform/s3c2410-ohci/usb_mode&lt;br /&gt;
  echo &amp;quot;1&amp;quot; &amp;gt; /sys/devices/platform/neo1973-pm-host.0/hostmode&lt;br /&gt;
  echo USB-Port is in host-mode now.&lt;br /&gt;
 fi&lt;br /&gt;
Put it on screen for easy access.&lt;br /&gt;
&lt;br /&gt;
=== Providing power to connected USB devices while in host mode ===&lt;br /&gt;
&lt;br /&gt;
Normally, USB host ports provide power to any connected USB device.&lt;br /&gt;
&lt;br /&gt;
Available power in host mode is the full maximum of 500mA according to USB-specifications on the Neo FreeRunner, and no power is available in host mode on the Neo 1973. If your USB device respects USB-standards and consumes not more than 500mA, you may connect it directly to your Neo FreeRunner.&lt;br /&gt;
&lt;br /&gt;
To provide power to USB devices attached to your Neo 1973, or to provide power to your Neo FreeRunner while USB-device connected, you can provide power by using a (modified [for powering FreeRunner]) powered USB hub (see below), or by manually injecting power into the attached USB device (and Neo FreeRunner) via one of the [[specialized_USB_cables]].&lt;br /&gt;
&lt;br /&gt;
=== Powered USB hubs known to work with the Neo ===&lt;br /&gt;
&lt;br /&gt;
(please add any known to work)&lt;br /&gt;
&lt;br /&gt;
=== Providing power to run and charge the Neo while in host mode ===&lt;br /&gt;
&lt;br /&gt;
A slightly separate issue is power to run and charge the Neo (both types) itself. When the USB port is in device mode, the Neo FreeRunner/1973 can be powered and recharged via the USB port, but when in standard host mode, the Neo FreeRunner is set to provide power and does not charge. Fortunately, control of the direction of power (in or out) is independent of the personality of the USB port (host or device):&lt;br /&gt;
&lt;br /&gt;
To recap, the direction of power can be controlled:&lt;br /&gt;
&lt;br /&gt;
Set to 0 (default), no power is provided at the USB port, charging is enabled, and host 15K pulldowns are removed from D+ and D-:&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;0&amp;quot; &amp;gt; /sys/devices/platform/neo1973-pm-host.0/hostmode&lt;br /&gt;
&lt;br /&gt;
Set to 1, provides up to 500mA USB power at the USB port (FreeRunner only), disables charging from USB, and applies 15K pulldowns to USB D+ and D-:&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;1&amp;quot; &amp;gt; /sys/devices/platform/neo1973-pm-host.0/hostmode&lt;br /&gt;
&lt;br /&gt;
Next, power must somehow be injected. An unmodified powered USB hub only provides power to the connected devices, but not to the connected host, so the only solution here is to modify a USB-hub¹) or to create a custom cable which will inject power into the host. See [[specialized_USB_cables]] for some examples.&lt;br /&gt;
&lt;br /&gt;
Finally, there is the question of charge rate. The charging logic in the Neo will only charge at 100mA by default. Charging at 500mA will take place only if the charging device responds appropriatly to USB negotiation to increase power consumption. Charging at 1000mA will only take place if the Neo detects the appropriate resistor on the ID pins.&lt;br /&gt;
&lt;br /&gt;
You can manually set the charge rate. See [[Forcing_fast_charge_mode]]&lt;br /&gt;
&lt;br /&gt;
¹) often it's sufficient to short a diode in USB-hub to feed power to the host-connector too.&lt;br /&gt;
# Edit 05 Oct. 2008 : Not being able to find any diode on my ([[User:Henrikz|Henrikz]]) USB Hub (Brand: Equip, Type: 4 port, aluminum) I simply connected +5V (pin 1) from one of the downstream ports to pin 1 of the upstream port.&lt;br /&gt;
&lt;br /&gt;
=== Power Concerns ===&lt;br /&gt;
You'll need to force the Neo to go into fast charge mode, since it can't do its usual power negotiation over USB.&lt;br /&gt;
&lt;br /&gt;
 echo -n &amp;quot;fast_cccv&amp;quot; &amp;gt;  /sys/devices/platform/s3c2410-i2c/i2c-adapter/i2c-0/0-0008/chgmode&lt;br /&gt;
&lt;br /&gt;
(Also this should be done by kernel when seeing 47K at ID-pin)&lt;br /&gt;
&lt;br /&gt;
=== Working Examples ===&lt;br /&gt;
&lt;br /&gt;
==== Connecting a USB-Stick ====&lt;br /&gt;
[[Image:connecting-usb-stick-1.jpg|thumb|left]]&lt;br /&gt;
I found this adapter, it has 2 Type A jacks, rather cheap (about 5 &amp;amp;euro;).&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:connecting-usb-stick-2.jpg|thumb|left]]&lt;br /&gt;
I borrowed the cable from a card reader, it has the same pinout like the cable that comes with the Neo.&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:connecting-usb-stick-3.jpg|thumb|left]]&lt;br /&gt;
With the above commands I could mount the memory stick.&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:connecting-usb-stick-4.jpg|thumb|left]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Neo1973 Hardware]]&lt;br /&gt;
[[Category:Neo FreeRunner Hardware]]&lt;br /&gt;
[[Category:USB]]&lt;/div&gt;</summary>
		<author><name>Michaelshiloh</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/USB_host</id>
		<title>USB host</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/USB_host"/>
				<updated>2008-10-09T22:12:11Z</updated>
		
		<summary type="html">&lt;p&gt;Michaelshiloh: /* Selecting USB host modes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|USB host}}&lt;br /&gt;
The mini-USB port on both the Neo 1973 and the Neo FreeRunner supports both USB host and USB device. This opens up a range of possibilities, such as adding USB cameras and USB input devices.&lt;br /&gt;
&lt;br /&gt;
=== Selecting USB host modes ===&lt;br /&gt;
&lt;br /&gt;
By default, the mini-USB port is in device mode. To tell the Neo that it is logically a host¹):&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;host&amp;quot; &amp;gt; /sys/devices/platform/s3c2410-ohci/usb_mode&lt;br /&gt;
&lt;br /&gt;
Independent of the logical mode of the USB port, the Neo FreeRunner can provide 5 volt USB power to an attached USB device. To enable this (not available on Neo 1973):&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;1&amp;quot; &amp;gt; /sys/devices/platform/neo1973-pm-host.0/hostmode&lt;br /&gt;
&lt;br /&gt;
Note: You may want to run &amp;lt;code&amp;gt;ifconfig usb0 down&amp;lt;/code&amp;gt; prior to switching to USB host mode, as the Neo's USB networking may not like having its USB port disappear. You'll probably want to ssh into your Neo over WiFi or Bluetooth before starting all of this, alternatively use an on screen keyboard.&lt;br /&gt;
&lt;br /&gt;
Note that in full USB host mode the FreeRunner will power the external device. To avoid draining the battery use a powered USB hub, then on the FreeRunner enable logical host mode:&lt;br /&gt;
&lt;br /&gt;
~ - echo host &amp;gt; /sys/devices/platform/s3c2410-ohci/usb_mode&lt;br /&gt;
&lt;br /&gt;
but NOT electrical host mode&lt;br /&gt;
&lt;br /&gt;
~ - echo 0 &amp;gt; /sys/devices/platform/neo1973-pm-host.0/hostmode&lt;br /&gt;
&lt;br /&gt;
Note that powered USB hubs do not send power upstream, that is, into the host. If you wish to power or charge the FreeRunner, you will need a [[Specialized USB cables|special USB cable]].&lt;br /&gt;
&lt;br /&gt;
¹)Debian note: You'll need the ohci-hcd module:&lt;br /&gt;
 modprobe ohci-hcd&lt;br /&gt;
&lt;br /&gt;
==== Returning from USB host mode to USB device mode ====&lt;br /&gt;
&lt;br /&gt;
 echo device &amp;gt; /sys/devices/platform/s3c2410-ohci/usb_mode&lt;br /&gt;
 echo 0 &amp;gt; /sys/devices/platform/neo1973-pm-host.0/hostmode&lt;br /&gt;
&lt;br /&gt;
=== Returning to USB device mode ===&lt;br /&gt;
After doing whatever is needed to safely remove your device and unplugging it you can remove the provision of 5 volt power and return to device mode.&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;0&amp;quot; &amp;gt; /sys/devices/platform/neo1973-pm-host.0/hostmode&lt;br /&gt;
 echo &amp;quot;device&amp;quot; &amp;gt; /sys/devices/platform/s3c2410-ohci/usb_mode&lt;br /&gt;
&lt;br /&gt;
You can now safely restart USB networking.&lt;br /&gt;
&lt;br /&gt;
====USB-Mode-Script====&lt;br /&gt;
These simple script is useful to switch the USB-Modes:&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 grep -q 'host' /sys/devices/platform/s3c2410-ohci/usb_mode&lt;br /&gt;
 if [ $? -eq 0 ]&lt;br /&gt;
 then &lt;br /&gt;
  echo &amp;quot;0&amp;quot; &amp;gt; /sys/devices/platform/neo1973-pm-host.0/hostmode&lt;br /&gt;
  echo &amp;quot;device&amp;quot; &amp;gt; /sys/devices/platform/s3c2410-ohci/usb_mode&lt;br /&gt;
  echo USB-Port is in device-mode now.&lt;br /&gt;
 else&lt;br /&gt;
  ifconfig usb0 down&lt;br /&gt;
  echo &amp;quot;host&amp;quot; &amp;gt; /sys/devices/platform/s3c2410-ohci/usb_mode&lt;br /&gt;
  echo &amp;quot;1&amp;quot; &amp;gt; /sys/devices/platform/neo1973-pm-host.0/hostmode&lt;br /&gt;
  echo USB-Port is in host-mode now.&lt;br /&gt;
 fi&lt;br /&gt;
Put it on screen for easy access.&lt;br /&gt;
&lt;br /&gt;
=== Providing power to connected USB devices while in host mode ===&lt;br /&gt;
&lt;br /&gt;
Normally, USB host ports provide power to any connected USB device.&lt;br /&gt;
&lt;br /&gt;
Available power in host mode is the full maximum of 500mA according to USB-specifications on the Neo FreeRunner, and no power is available in host mode on the Neo 1973. If your USB device respects USB-standards and consumes not more than 500mA, you may connect it directly to your Neo FreeRunner.&lt;br /&gt;
&lt;br /&gt;
To provide power to USB devices attached to your Neo 1973, or to provide power to your Neo FreeRunner while USB-device connected, you can provide power by using a (modified [for powering FreeRunner]) powered USB hub (see below), or by manually injecting power into the attached USB device (and Neo FreeRunner) via one of the [[specialized_USB_cables]].&lt;br /&gt;
&lt;br /&gt;
=== Powered USB hubs known to work with the Neo ===&lt;br /&gt;
&lt;br /&gt;
(please add any known to work)&lt;br /&gt;
&lt;br /&gt;
=== Providing power to run and charge the Neo while in host mode ===&lt;br /&gt;
&lt;br /&gt;
A slightly separate issue is power to run and charge the Neo (both types) itself. When the USB port is in device mode, the Neo FreeRunner/1973 can be powered and recharged via the USB port, but when in standard host mode, the Neo FreeRunner is set to provide power and does not charge. Fortunately, control of the direction of power (in or out) is independent of the personality of the USB port (host or device):&lt;br /&gt;
&lt;br /&gt;
To recap, the direction of power can be controlled:&lt;br /&gt;
&lt;br /&gt;
Set to 0 (default), no power is provided at the USB port, charging is enabled, and host 15K pulldowns are removed from D+ and D-:&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;0&amp;quot; &amp;gt; /sys/devices/platform/neo1973-pm-host.0/hostmode&lt;br /&gt;
&lt;br /&gt;
Set to 1, provides up to 500mA USB power at the USB port (FreeRunner only), disables charging from USB, and applies 15K pulldowns to USB D+ and D-:&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;1&amp;quot; &amp;gt; /sys/devices/platform/neo1973-pm-host.0/hostmode&lt;br /&gt;
&lt;br /&gt;
Next, power must somehow be injected. An unmodified powered USB hub only provides power to the connected devices, but not to the connected host, so the only solution here is to modify a USB-hub¹) or to create a custom cable which will inject power into the host. See [[specialized_USB_cables]] for some examples.&lt;br /&gt;
&lt;br /&gt;
Finally, there is the question of charge rate. The charging logic in the Neo will only charge at 100mA by default. Charging at 500mA will take place only if the charging device responds appropriatly to USB negotiation to increase power consumption. Charging at 1000mA will only take place if the Neo detects the appropriate resistor on the ID pins.&lt;br /&gt;
&lt;br /&gt;
You can manually set the charge rate. See [[Forcing_fast_charge_mode]]&lt;br /&gt;
&lt;br /&gt;
¹) often it's sufficient to short a diode in USB-hub to feed power to the host-connector too.&lt;br /&gt;
# Edit 05 Oct. 2008 : Not being able to find any diode on my ([[User:Henrikz|Henrikz]]) USB Hub (Brand: Equip, Type: 4 port, aluminum) I simply connected +5V (pin 1) from one of the downstream ports to pin 1 of the upstream port.&lt;br /&gt;
&lt;br /&gt;
=== Power Concerns ===&lt;br /&gt;
You'll need to force the Neo to go into fast charge mode, since it can't do its usual power negotiation over USB.&lt;br /&gt;
&lt;br /&gt;
 echo -n &amp;quot;fast_cccv&amp;quot; &amp;gt;  /sys/devices/platform/s3c2410-i2c/i2c-adapter/i2c-0/0-0008/chgmode&lt;br /&gt;
&lt;br /&gt;
(Also this should be done by kernel when seeing 47K at ID-pin)&lt;br /&gt;
&lt;br /&gt;
[[Category:Neo1973 Hardware]]&lt;br /&gt;
[[Category:Neo FreeRunner Hardware]]&lt;br /&gt;
[[Category:USB]]&lt;/div&gt;</summary>
		<author><name>Michaelshiloh</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/FAQ</id>
		<title>FAQ</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/FAQ"/>
				<updated>2008-10-09T15:33:20Z</updated>
		
		<summary type="html">&lt;p&gt;Michaelshiloh: /* How do I get the WLAN (802.11, Wi-Fi, wireless network) working? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|FAQ}}&lt;br /&gt;
&lt;br /&gt;
== Getting Started with your Neo FreeRunner == &amp;lt;!-- Do not rename section! This section is linked from pages which linked to Getting_Started_FAQ. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== I just received my Neo FreeRunner. Where should I start?===&lt;br /&gt;
&lt;br /&gt;
See [[Getting_Started_with_your_Neo_FreeRunner|Getting Started with your Neo FreeRunner]]&lt;br /&gt;
&lt;br /&gt;
=== I have a problem or a question. Where should I go? ===&lt;br /&gt;
&lt;br /&gt;
First place to check is this FAQ. &lt;br /&gt;
&lt;br /&gt;
If your question isn't answered here, you should search the archives of the [http://lists.openmoko.org/mailman/listinfo/community community] or [http://lists.openmoko.org/mailman/listinfo/support support] mailing lists&lt;br /&gt;
&lt;br /&gt;
Next, try a larger Google search. &lt;br /&gt;
&lt;br /&gt;
If you still haven't found the answer to your question, post it on the appropriate list, [http://lists.openmoko.org/mailman/listinfo/community community] or [http://lists.openmoko.org/mailman/listinfo/support support]. &lt;br /&gt;
&lt;br /&gt;
Provide detailed information about what you are trying to find out, and use&lt;br /&gt;
the Subject line to summarize your question. More tips to asking effective&lt;br /&gt;
questions can be found&lt;br /&gt;
[[http://www.catb.org/~esr/faqs/smart-questions.html|here]]&lt;br /&gt;
&lt;br /&gt;
If your question requires confidentiality, you are welcome to contact [mailto:michael@openmoko.org Michael Shiloh] directly.&lt;br /&gt;
&lt;br /&gt;
You might also look for [[Openmoko_Local_Groups|local Openmoko users]] to find&lt;br /&gt;
some local support. A few minutes with a live person might solve a simple&lt;br /&gt;
misunderstanding that would take hours to understand via email. (If a local&lt;br /&gt;
club doesn't exist, this might be the perfect opportunity to start one!)&lt;br /&gt;
&lt;br /&gt;
=== I'd like to develop a custom product or application based on Openmoko and/or the Neo FreeRunner. How should I proceed? ===&lt;br /&gt;
&lt;br /&gt;
Send mail to michael@openmoko.org or to steve@openmoko.com&lt;br /&gt;
&lt;br /&gt;
=== Where are the latest downloads? ===&lt;br /&gt;
&lt;br /&gt;
Right [[Download|here]].&lt;br /&gt;
&lt;br /&gt;
==Openmoko==&lt;br /&gt;
&lt;br /&gt;
===What is Openmoko?===&lt;br /&gt;
Openmoko is two things:&lt;br /&gt;
&lt;br /&gt;
Openmoko is a Linux distribution designed for open mobile computing platforms, such as, but not limited to, cellphones.&lt;br /&gt;
&lt;br /&gt;
Openmoko is the company behind the Openmoko Linux distribution. Openmoko also manufactures mobile computing platforms, such as the Neo FreeRunner.&lt;br /&gt;
&lt;br /&gt;
===What is the purpose of this project?===&lt;br /&gt;
&lt;br /&gt;
By providing a completely open source Linux distribution, and by opening the schematics and CAD files, Openmoko's goal is to nurture explosive innovation (such as occurred with the Personal Computer) in the field of connected mobile computing, cellphones, and ubiquitous computing.&lt;br /&gt;
&lt;br /&gt;
===How do I join the Openmoko project? ===&lt;br /&gt;
&lt;br /&gt;
Join one or more of the mailing lists. A great place to start is the community list.&lt;br /&gt;
&lt;br /&gt;
Browse the wiki, and help improve it.&lt;br /&gt;
&lt;br /&gt;
Start or join an [[http://projects.openmoko.org/ Openmoko project]].&lt;br /&gt;
&lt;br /&gt;
Start or join a local group near you.&lt;br /&gt;
&lt;br /&gt;
===I'm not a programmer, but I have other skills. Can I still be of use? ===&lt;br /&gt;
&lt;br /&gt;
Absolutely. If you're a visual artist, you can help us with icons and other visuals. Musicians can help contribute ringtones and other sounds. Marketing? Sales? Information visualization? Join the community mailing lists, introduce yourself, and you'll soon find a place to put your skills to good use.&lt;br /&gt;
&lt;br /&gt;
== Neo FreeRunner - Introductory/Overview/Conceptual Information==&lt;br /&gt;
&lt;br /&gt;
=== What is the [[Neo FreeRunner]]? === &lt;br /&gt;
&lt;br /&gt;
The [[Neo FreeRunner]] is an open cellphone designed for the Openmoko Linux distribution. By open we mean that (a) all chips have been chosen to allow their drivers to be completely open sourced and (b) the schematics and the plastic (CAD) files are available as well.&lt;br /&gt;
&lt;br /&gt;
For more details, see [[Neo FreeRunner|Neo FreeRunner specifications]]&lt;br /&gt;
&lt;br /&gt;
=== What can I do with the Neo FreeRunner? ===&lt;br /&gt;
&lt;br /&gt;
The Neo FreeRunner is designed for everyday use by end users and for continued software development and improvements by the Openmoko team and the Openmoko community.&lt;br /&gt;
&lt;br /&gt;
The Openmoko software is not yet ready for everyday use.&lt;br /&gt;
&lt;br /&gt;
The question is almost what can you NOT do with this phone - eventually there will be a huge range of free software applications allowing both end users and developers to get much more out of this phone than a standard &amp;quot;locked&amp;quot; mobile phone using features like the integrated GPS, bluetooth, wifi and accelerometers.&lt;br /&gt;
&lt;br /&gt;
=== What are the benefits of an &amp;quot;open&amp;quot; phone over a &amp;quot;closed&amp;quot; phone? ===&lt;br /&gt;
&lt;br /&gt;
In a conventional closed phone, the handset maker and the mobile network operator work together to provide a service to you that best suits their business model.    The capabilities of a modern smartphone equipped with GPS, Wifi and bluetooth are amazing yet unfortunately inaccessible: many features are &amp;quot;locked down&amp;quot; because they do not suit the network operator.    Up until now it has been difficult to buy a phone on which you have freedom to install sofware which is not controlled by the network operators - Openmoko changes that!&lt;br /&gt;
&lt;br /&gt;
A list of examples of &amp;quot;closed&amp;quot; behaviour has been started here - [[Problems of typical &amp;quot;closed&amp;quot; phones]]&lt;br /&gt;
&lt;br /&gt;
=== What can we expect in future Neos? ===&lt;br /&gt;
&lt;br /&gt;
Please join one of the [http://lists.openmoko.org mailing lists] to follow and participate in this discussion.&lt;br /&gt;
&lt;br /&gt;
=== Purchasing / Shipping / Versions ===&lt;br /&gt;
&lt;br /&gt;
==== Where can I buy the [[Neo FreeRunner]]? How much?====&lt;br /&gt;
&lt;br /&gt;
http://www.openmoko.com. We sell both directly and through a growing list of distributors.&lt;br /&gt;
&lt;br /&gt;
If you buy directly from the Openmoko webshop you will pay USD $399 for the [[Neo FreeRunner]], USD $99 for the debug board. You can also purchase boxes of 10 FreeRunners at a price of USD $369 each. If you don't have a need for 10 units, you can join an existing or form a new group at [[Group_sales]].&lt;br /&gt;
&lt;br /&gt;
==== On what bands does the Neo FreeRunner operate? Will it work in my area? ====&lt;br /&gt;
&lt;br /&gt;
* The Neo FreeRunner is a tri-band GSM phone. It is available in a 850/1800/1900MHz version for North America and a 900/1800/1900MHz version for the rest of the world.&lt;br /&gt;
&lt;br /&gt;
==== Do I need the debug board? ==== &lt;br /&gt;
&lt;br /&gt;
With the Neo FreeRunner and NO debug board you can do:&lt;br /&gt;
* Kernel development&lt;br /&gt;
* Application development&lt;br /&gt;
* U-boot updates(equivalent to PC BIOS). Neo 1973 users should only use a tested image to avoid the possibility of bricking the Neo 1973. Neo FreeRunner users do not have this concern, as a bad u-boot can always be updated using the failsafe u-boot in NOR flash&lt;br /&gt;
* Kernel and/or rootfs updates using [[Dfu-util]].&lt;br /&gt;
&lt;br /&gt;
With a debug board you can additionally do:&lt;br /&gt;
* Use JTAG to debug u-boot, device drivers, or the kernel&lt;br /&gt;
* Use the kernel console&lt;br /&gt;
* Neo 1973 users can unbrick their device if they flash a wrong or non-working u-boot image.&lt;br /&gt;
* Neo FreeRunner users can update u-boot in NOR flash&lt;br /&gt;
&lt;br /&gt;
In summary, it is rare for a Neo FreeRunner user to require a debug board.&lt;br /&gt;
&lt;br /&gt;
To emphasize, the debug board is '''not''' required in order to develop applications, system software, or even kernel or device drivers. The debug board is '''not''' required in order to gain access to the source code or the development tools.&lt;br /&gt;
&lt;br /&gt;
==== Where do I ask a shipping related question? ==== &lt;br /&gt;
&lt;br /&gt;
Visit [http://www.openmoko.com/ openmoko.com]&lt;br /&gt;
&lt;br /&gt;
=== How do I find out what version of hardware I have? ===&lt;br /&gt;
&lt;br /&gt;
:cat /proc/cpuinfo&lt;br /&gt;
&lt;br /&gt;
Search for the line that says &amp;quot;Revision&amp;quot;. There will be 4 digits, of the form &amp;quot;0350&amp;quot;. The '5' in this example indicates hardware revision 5.&lt;br /&gt;
&lt;br /&gt;
== Neo FreeRunner Known Issues==&lt;br /&gt;
&lt;br /&gt;
=== Software issues, distribution-wise ===&lt;br /&gt;
&lt;br /&gt;
Issues relating to software are in the &amp;quot;known issues&amp;quot; section for each distribution. Navigate there via the distributions page - [[Distributions]].&lt;br /&gt;
&lt;br /&gt;
=== Firmware and hardware issues ===&lt;br /&gt;
&lt;br /&gt;
Issues relating to firmware and hardware are in [[Neo_FreeRunner_Hardware_Issues|Neo FreeRunner Hardware Issues]].&lt;br /&gt;
&lt;br /&gt;
Note that some issues might involve a combination of hardware and software.&lt;br /&gt;
&lt;br /&gt;
=== Selected, commonly-encountered issues ===&lt;br /&gt;
&lt;br /&gt;
Some selected known issues that are commonly encountered and reported on mailing lists are described below.&lt;br /&gt;
&lt;br /&gt;
==== My FreeRunner won't register with my cellphone network. What should I do?====&lt;br /&gt;
&lt;br /&gt;
Please see [[Neo_FreeRunner_Hardware_Issues#Some_SIMs_Don.27t_Work|some SIMs don't work]].&lt;br /&gt;
&lt;br /&gt;
==== SIM compatibility: It looks like my SIM card is not working; how do I run diagnostics? ====&lt;br /&gt;
&lt;br /&gt;
Here is how to check: follow [[Manually_using_GSM]] until you get an OK prompt. &lt;br /&gt;
&lt;br /&gt;
For more detailed documentation, please refer to [[FreeRunner_unable_to_work_with_3G_SIM_cards]] and [[Carriers]].&lt;br /&gt;
&lt;br /&gt;
==== I read somewhere that a GSM firmware update is available to fix this problem====&lt;br /&gt;
&lt;br /&gt;
The GSM firmware update is applicable only to the Neo 1973. Any fixes in the update are already implemented in the GSM firmware in the Neo FreeRunner.&lt;br /&gt;
&lt;br /&gt;
==== Why won't the FreeRunner boot even with the charger connected? ====&lt;br /&gt;
&lt;br /&gt;
See [[Neo_FreeRunner_Hardware_Issues#Can.27t_boot_with_discharged_or_missing_battery|Can't boot with discharged or missing battery]].&lt;br /&gt;
 &lt;br /&gt;
==== Flashing (dfu-util) -- dfu-util does not find the phone. ====&lt;br /&gt;
&lt;br /&gt;
In brief, you need to boot the phone into the NAND or NOR u-boot menu before dfu-util will be able to connect. dfu-util uses the USB DFU (Universal Serial Bus Device Firmware Upgrade) protocol, which is only available at the u-boot menu, and '''not''' Ethernet over USB, which is what is available when the phone has booted fully. &lt;br /&gt;
&lt;br /&gt;
Tip: If you're just trying out different distributions, you don't need to flash them with dfu-util; you can try out new distributions by putting them on the microSD card and booting from the card instead. If you'd like to do this instead of flashing, see [[Booting from SD]].&lt;br /&gt;
&lt;br /&gt;
To get the u-boot menu:&lt;br /&gt;
# Press and hold the AUX button &lt;br /&gt;
# Press the Power button until the phone powers on and displays the boot menu&lt;br /&gt;
# Release both buttons &lt;br /&gt;
# Press and release AUX to move the lightbar, so that the menu will not time out and boot the phone). &lt;br /&gt;
&lt;br /&gt;
Also see the wiki pages/sections:&lt;br /&gt;
* [[Booting the Neo FreeRunner]]&lt;br /&gt;
* [[Bootloader#Device Firmware Upgrade]]&lt;br /&gt;
* [[Flashing the Neo FreeRunner]]&lt;br /&gt;
* [[Dfu-util]]&lt;br /&gt;
&lt;br /&gt;
==== Why do I experience poor audio quality or buzzing noises during calls?====&lt;br /&gt;
See [http://wiki.openmoko.org/wiki/Neo_FreeRunner_Hardware_Issues#Poor_Audio_Quality this issue on the FreeRunner Hardware Issues page]&lt;br /&gt;
&lt;br /&gt;
====Suspend/resume may corrupt SD card's partition table====&lt;br /&gt;
&lt;br /&gt;
See [http://wiki.openmoko.org/wiki/Neo_FreeRunner_Hardware_Issues#Suspend.2Fresume_corrupts_SD_card.27s_partition_table this issue on the FreeRunner Hardware Issues page]. See ticket [https://docs.openmoko.org/trac/ticket/1802 #1802].&lt;br /&gt;
&lt;br /&gt;
==Hardware and Usage-related Questions==&lt;br /&gt;
&lt;br /&gt;
=== Booting ===&lt;br /&gt;
&lt;br /&gt;
==== How do I boot into U-boot? How do I select NAND or NOR FLASH? ====&lt;br /&gt;
&lt;br /&gt;
See [[Booting_the_Neo_FreeRunner|here]]&lt;br /&gt;
&lt;br /&gt;
=== Battery and Battery Charging===&lt;br /&gt;
&lt;br /&gt;
==== What is the expected battery life? ====&lt;br /&gt;
See [[Neo FreeRunner (GTA02) Battery#Notes_about_expected_battery_life]] and more battery information in [[Neo_FreeRunner_(GTA02)_Battery]]&lt;br /&gt;
&lt;br /&gt;
==== How do I enable fast charge mode for anything but the official mains charger? ====&lt;br /&gt;
See [[Forcing fast charge mode]].&lt;br /&gt;
&lt;br /&gt;
==== Can the Neo FreeRunner charge when turned off? When suspended? ====&lt;br /&gt;
&lt;br /&gt;
The Neo FreeRunner can '''not''' charge when turned off.&lt;br /&gt;
&lt;br /&gt;
The Neo FreeRunner '''can''' charge when suspended.&lt;br /&gt;
&lt;br /&gt;
==== Can the Neo charge and use devices on a USB hub at the same time? ====&lt;br /&gt;
&lt;br /&gt;
See [[USB_host#Providing_power_to_run_and_charge_the_Neo_while_in_host_mode|here]]&lt;br /&gt;
&lt;br /&gt;
===Wireless Connectivity===&lt;br /&gt;
&lt;br /&gt;
====What kind of wireless connectivity does the FreeRunner have? ====&lt;br /&gt;
&lt;br /&gt;
The FreeRunner has the following connectivity options:&lt;br /&gt;
* Tri-band GSM (850/1800/1900 MHz in North America, and 900/1800/1900 MHz, commonly referred to as &amp;quot;European tri-band&amp;quot;, for other parts of the world). For a list of compatible service providers, see [[Neo1973 compatible cellphone providers]].&lt;br /&gt;
* GPRS Class12/CS4 2.5G (Not EDGE)&lt;br /&gt;
* Bluetooth 2.0 EDR&lt;br /&gt;
* WiFi: Atheros AR6K in [[GTA02#.22Phase_2.22_.28GTA02.2C_.22Mass_Market.22.29|GTA02]]. (No 3G in year 2007 models)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== GSM/GPRS information ====&lt;br /&gt;
&lt;br /&gt;
The following pages contain very useful information:&lt;br /&gt;
&lt;br /&gt;
* [[Gsmd|GSM Daemon]]&lt;br /&gt;
&lt;br /&gt;
* [[GSM|General GSM page]]&lt;br /&gt;
&lt;br /&gt;
* [[Hardware:AT_Commands|AT commands]]&lt;br /&gt;
&lt;br /&gt;
* [http://freeyourphone.de/portal_v1/viewtopic.php?f=21&amp;amp;t=295#p2956 Useful script for GPRS]&lt;br /&gt;
&lt;br /&gt;
==== How do I get the WLAN (802.11, Wi-Fi, wireless network) working? ====&lt;br /&gt;
&lt;br /&gt;
See [[Neo FreeRunner Wifi]]&lt;br /&gt;
&lt;br /&gt;
==== How do I get the GPS working? ====&lt;br /&gt;
&lt;br /&gt;
See [[GTA02 GPS]]&lt;br /&gt;
&lt;br /&gt;
==== It takes a long time (10min+) before the FreeRunner gets the first GPS data/readings ====&lt;br /&gt;
&lt;br /&gt;
See [[GPS Problems]].&lt;br /&gt;
&lt;br /&gt;
==== How do I get Bluetooth working manually? ====&lt;br /&gt;
&lt;br /&gt;
See [[Manually_using_Bluetooth]]&lt;br /&gt;
&lt;br /&gt;
==== How do I use an external Bluetooth keyboard with the FreeRunner ? ====&lt;br /&gt;
..TBA..&lt;br /&gt;
&lt;br /&gt;
====Can I bridge to an Ethernet (wired or unwired) network via a suitable Bluetooth enabled router? ====&lt;br /&gt;
&lt;br /&gt;
Yes - see [http://gentoo-wiki.com/HOWTO_Configure_a_bluetooth_network_access_point this howto for how to configure a linux computer to act as such a router] and [[Bluetooth Support]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== USB ===&lt;br /&gt;
&lt;br /&gt;
==== How do I connect a USB memory-stick etc? ====&lt;br /&gt;
&lt;br /&gt;
This requires an adapter Mini-B 5-pole =&amp;gt; Type A jack or an adapter jack =&amp;gt; jack. See [[Host Mode]] for more information.&lt;br /&gt;
&lt;br /&gt;
====Once I have such an adapter, can I use it to connect 2 Neos to each other?====&lt;br /&gt;
&lt;br /&gt;
This question is equivalent to '''How to connect two [Unix/Linux] computers via USB cable and what sort of special cable is needed?''' -&amp;gt; http://www.linuxquestions.org/questions/linux-general-1/connecting-two-computers-with-a-usb-cable-data-cable-411073&lt;br /&gt;
&lt;br /&gt;
It should work if one Neo is set to Host mode and the other one set to Device mode. One Neo could give power to the USB-port it the other Neo's battery is low. ''(I have to verify this)''&lt;br /&gt;
&lt;br /&gt;
==== How do I use an external USB keyboard with the FreeRunner ? ====&lt;br /&gt;
&lt;br /&gt;
Run:&lt;br /&gt;
 echo &amp;quot;host&amp;quot; &amp;gt; /sys/devices/platform/s3c2410-ohci/usb_mode&lt;br /&gt;
 echo &amp;quot;1&amp;quot; &amp;gt; /sys/devices/platform/neo1973-pm-host.0/hostmode&lt;br /&gt;
&lt;br /&gt;
These commands will put the FreeRunner into powered USB host mode. After this, just plug in the keyboard and it'll work. Personally, I've made a .desktop file to switch into and out of host mode. &lt;br /&gt;
&lt;br /&gt;
To switch back to unpowered device mode just run:&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;device&amp;quot; &amp;gt; /sys/devices/platform/s3c2410-ohci/usb_mode&lt;br /&gt;
 echo &amp;quot;0&amp;quot; &amp;gt; /sys/devices/platform/neo1973-pm-host.0/hostmode&lt;br /&gt;
&lt;br /&gt;
Finally you will need a &lt;br /&gt;
USB Type A Female to Female adapter. For more details see&lt;br /&gt;
[[Specialized_USB_cables#Attaching_the_Neo_.28acting_as_a_USB_host.29_to_a_USB_device|here]]&lt;br /&gt;
&lt;br /&gt;
=== Display ===&lt;br /&gt;
&lt;br /&gt;
==== Can the phone play VGA video? ====&lt;br /&gt;
&lt;br /&gt;
No, it can do about 20 fps QVGA with software, and something beetween QVGA and VGA playing MPEG-4 using hardware (at resonable fps). Scaling is also done with GPU hardware.&lt;br /&gt;
&lt;br /&gt;
==== How to change the background picture of the root window? ====&lt;br /&gt;
&lt;br /&gt;
{{Note|This probably differs for each distribution? Need to insert, or link to, relevant info for each. --[[User:Eddsouza|eddsouza]] 09:29, 7 September 2008 (UTC)}}&lt;br /&gt;
&lt;br /&gt;
Look at [[Today/2007.2#Adjust_UI_components_at_runtime]].&lt;br /&gt;
&lt;br /&gt;
=== Storage ===&lt;br /&gt;
&lt;br /&gt;
==== What microSDHC-cards are supported? ====&lt;br /&gt;
&lt;br /&gt;
See [[Supported_microSD_cards|here]]&lt;br /&gt;
&lt;br /&gt;
===System-level information===&lt;br /&gt;
&lt;br /&gt;
==== What hardware signals are available?====&lt;br /&gt;
&lt;br /&gt;
To simplify extending the hardware, various signals of interest are brought out via the JTAG connector and can be easily accessed with the debug board:&lt;br /&gt;
&lt;br /&gt;
(TBA: List of signals)&lt;br /&gt;
&lt;br /&gt;
Some additional signals that did not fit on the JTAG connector are brought out to solder pads:&lt;br /&gt;
&lt;br /&gt;
(TBA: List of signals)&lt;br /&gt;
&lt;br /&gt;
==== Is the JTAG interface that comes with GTA01 compatible with GTA02?====&lt;br /&gt;
&lt;br /&gt;
Yes&lt;br /&gt;
&lt;br /&gt;
==== How do I get low-level hardware-related functions, like power up device, dump register? ====&lt;br /&gt;
&lt;br /&gt;
See [[GTA02_sysfs]]&lt;br /&gt;
&lt;br /&gt;
=== Inputs ===&lt;br /&gt;
&lt;br /&gt;
==== How can I type a '/' in the software keyboard? ====&lt;br /&gt;
&lt;br /&gt;
See [[Switching Keyboards]]&lt;br /&gt;
&lt;br /&gt;
==== How do I get a QWERTY layout software keyboard?====&lt;br /&gt;
&lt;br /&gt;
See [[Switching Keyboards]]&lt;br /&gt;
&lt;br /&gt;
=== Miscellaneous ===&lt;br /&gt;
&lt;br /&gt;
====Will Openmoko &amp;quot;Just Work&amp;quot; with Mac OS X? ====&lt;br /&gt;
&lt;br /&gt;
There has been some discussion of this on the mailing list. There is motivation, and there are interested developers. &lt;br /&gt;
Not being a Mac OS X user, I don't know enough&lt;br /&gt;
to summarize the discussion to answer this question. Can someone please fill in?&lt;br /&gt;
&lt;br /&gt;
For IP over USB cable connectivity, it is planned to improve/adapt the AJZaurusUSB driver, allowing ssh into the Openmoko.&lt;br /&gt;
&lt;br /&gt;
It is expected that (Bluetooth/UB) SyncML based interoperation for&lt;br /&gt;
contacts and events can easily be achieved by a patch&lt;br /&gt;
to the Apple iSync configuration tables.&lt;br /&gt;
&lt;br /&gt;
There is an open source implementation of Cocoa (GNUstep) that aims to run MacOS X compatible applications (sort of&lt;br /&gt;
PPC/x86/ARM universal binaries) on Openmoko devices: mySTEP.&lt;br /&gt;
&lt;br /&gt;
==Software==&lt;br /&gt;
&lt;br /&gt;
===General Questions===&lt;br /&gt;
&lt;br /&gt;
====Is it completely free software/open source? ====&lt;br /&gt;
&lt;br /&gt;
Yes. All software that runs on the main CPU and can be updated by the user is available in source.&lt;br /&gt;
&lt;br /&gt;
Firmware in &amp;quot;black box&amp;quot; hardware modules that can not be modified by users is not available in source form. Effectively, these modules are &amp;quot;hardware only&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
This allows, for example, that the driver for the GSM module be completely open sourced without violating any FCC rules.&lt;br /&gt;
&lt;br /&gt;
====Can the software do/connect to/... ====&lt;br /&gt;
&lt;br /&gt;
Reviews of the latest &amp;quot;bleeding edge&amp;quot; daily builds of the Openmoko software stack can be seen [[Snapshot_review|here]]&lt;br /&gt;
&lt;br /&gt;
At the moment, the answer to many other questions is &amp;quot;no&amp;quot;. The phone is at the moment a small Linux box with a touchscreen, a working dialer and some prototype apps.  Most do not function in any way that would be suitable for end-users.  If you want to add a feature or application request, then look over the existing [[Applications]] and either add one, or add a feature request to the applications page.&lt;br /&gt;
&lt;br /&gt;
==== Does Openmoko run on any other hardware? ====&lt;br /&gt;
&lt;br /&gt;
You can run it on your [[How_to_run_Openmoko_Apps_on_PC|PC]].  You may be able to run it on other [[Openmoko-supported_hardware | mobile platforms]]&lt;br /&gt;
&lt;br /&gt;
==== Can Java applications from other mobile phones run on the FreeRunner? ====&lt;br /&gt;
&lt;br /&gt;
I think a lot of work must still be done, but [[Java|this]] wiki page has some information&lt;br /&gt;
&lt;br /&gt;
===Distributions===&lt;br /&gt;
&lt;br /&gt;
====What is the stock distribution image that comes on the Neo FreeRunner?====&lt;br /&gt;
&lt;br /&gt;
The 2007.2 distribution - see [[Distributions#2007.2| 2007.2 factory default software image]]&lt;br /&gt;
&lt;br /&gt;
=====Are there any known issues with the factory-installed 2007.2 image on the Neo FreeRunner?=====&lt;br /&gt;
&lt;br /&gt;
Yes, see [[Om_2007.2#Known_Issues|2007.2 Known Issues]]&lt;br /&gt;
&lt;br /&gt;
===== Where can I download and reinstall the factory default image? =====&lt;br /&gt;
&lt;br /&gt;
See [[Flashing_the_Neo_FreeRunner|Flashing the Neo FreeRunner]]&lt;br /&gt;
&lt;br /&gt;
====What alternate distributions are available for the Neo FreeRunner?====&lt;br /&gt;
&lt;br /&gt;
See [[Distributions|Distributions]]&lt;br /&gt;
&lt;br /&gt;
==== How do I find out what image versions are in use on the phone? ====&lt;br /&gt;
&lt;br /&gt;
You can run the commands given below on the phone (in an SSH session from your host PC, or in the Terminal application on the phone itself)&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;5&amp;quot; align=&amp;quot;left&amp;quot;&lt;br /&gt;
! To find out&lt;br /&gt;
! Run&lt;br /&gt;
|- &lt;br /&gt;
| Kernel version that is currently running&lt;br /&gt;
| &lt;br /&gt;
  uname -a&lt;br /&gt;
|-&lt;br /&gt;
| The version of the root filesystem that you are currently using&lt;br /&gt;
| &lt;br /&gt;
  cat /etc/version &lt;br /&gt;
or &lt;br /&gt;
  cat /etc/om-version&lt;br /&gt;
|-&lt;br /&gt;
| The versions of u-boot on the phone (The FreeRunner has one u-boot image in NOR memory, and one in NAND - see [[Booting the Neo FreeRunner]] for more information)&lt;br /&gt;
| &lt;br /&gt;
  grep  Bootloader /dev/mtdblock0  (yields the NOR u-boot version)&lt;br /&gt;
or&lt;br /&gt;
  grep  Bootloader /dev/mtdblock1  (yields the NAND u-boot version)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
====Where do I get the latest version of the official Openmoko image, 2008.8 (also known as ASU)?====&lt;br /&gt;
&lt;br /&gt;
See [[Download#Om_2008.8_images_.28ASU.29| download Om 2008.8 images]]&lt;br /&gt;
&lt;br /&gt;
===== Why are the buttons in TangoGPS too large? The zoom out is missing! =====&lt;br /&gt;
&lt;br /&gt;
There is no GTK engine or theme installed with the ASU build.  Fortunately, this is easy to fix!&lt;br /&gt;
&lt;br /&gt;
At a terminal:&lt;br /&gt;
:&amp;lt;tt&amp;gt;# opkg install moko-gtk-theme moko-gtk-engine&amp;lt;/tt&amp;gt;&lt;br /&gt;
:&amp;lt;tt&amp;gt;# ln -s /usr/share/themes/Moko/gtk-2.0/gtkrc /home/root/.gtkrc-2.0&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now you have pretty colors and widgets, but the font is too big.  Edit &amp;lt;tt&amp;gt;/usr/share/themes/Moko/gtk-2.0/gtkrc&amp;lt;/tt&amp;gt; in your favorite text editor and add the following line:&lt;br /&gt;
:&amp;lt;tt&amp;gt;gtk-font-name = &amp;quot;Sans 4&amp;quot;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To use the openmoko icon theme, install it with:&lt;br /&gt;
:&amp;lt;tt&amp;gt;# opkg install openmoko-icon-theme-standard2&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and enable it editing the &amp;lt;tt&amp;gt;/usr/share/themes/Moko/gtk-2.0/gtkrc&amp;lt;/tt&amp;gt; adding the line:&lt;br /&gt;
:&amp;lt;tt&amp;gt;gtk-icon-theme-name=&amp;quot;openmoko-standard&amp;quot;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You shouldn't even need to restart the device, although you will need to restart any GTK-based programs.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Can the Neo FreeRunner dual boot? Multiple boot?====&lt;br /&gt;
&lt;br /&gt;
Since the Neo FreeRunner can boot from the micro SD card, you can install and boot from as many distributions as will fit on your card. See [[Boot_from_sd_card|Booting from SD]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====How do I install Debian on the Neo FreeRunner?====&lt;br /&gt;
&lt;br /&gt;
See [[Debian#Installation|Debian Installation]]&lt;br /&gt;
&lt;br /&gt;
=====Are there any known issues with Debian on the Neo FreeRunner?=====&lt;br /&gt;
&lt;br /&gt;
See [[Debian#Known_Issues|Debian Known Issues]]&lt;br /&gt;
&lt;br /&gt;
=====How do I replace the matchbox window manager with the xfce window manager?=====&lt;br /&gt;
&lt;br /&gt;
Replace the matchbox-wm line in zhone-session with xfwm4 to start the xfce-wm.&lt;br /&gt;
&lt;br /&gt;
Here's my (Fox Mulder) /usr/bin/zhone-session file which works with xfwm and matchbox keyboard popup:&lt;br /&gt;
&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 &lt;br /&gt;
 #zhone &amp;amp;&lt;br /&gt;
 exec startxfce4 &amp;amp;&lt;br /&gt;
 matchbox-keyboard-toggle &amp;amp;&lt;br /&gt;
 #exec matchbox-window-manager -use_titlebar yes&lt;br /&gt;
 exec xfwm4&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Applications ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====What software is on the phone?====&lt;br /&gt;
&lt;br /&gt;
At the moment, almost no 'end-user' applications are present and working in a usable state.&lt;br /&gt;
It is possible to make and receive calls in some software revisions, this frequently breaks though.&lt;br /&gt;
&lt;br /&gt;
====What software can be installed on the phone?====&lt;br /&gt;
&lt;br /&gt;
Pretty much any that can be cross-compiled for the ARM architecture.&lt;br /&gt;
&lt;br /&gt;
====Will it be possible to use popular VoIP applications on the Openmoko platform? ====&lt;br /&gt;
&lt;br /&gt;
Since it has WiFi the FreeRunner should be a good platform for VOIP use.    &lt;br /&gt;
&lt;br /&gt;
In either case please check for softphone apps ported to the Openmoko distribution at the [http://projects.openmoko.org/  projects] page. We need to focus efforts on free software. Not convincing non-free software companies to release binaries for our Neos.&lt;br /&gt;
&lt;br /&gt;
====Will it be possible to use popular Instant Messaging applications ? ====&lt;br /&gt;
&lt;br /&gt;
There many Open Source IM clients, many of which have a plugin architecture and so support the use of more than one IM protocol, even simultaneously. One example is [[Pidgin]], formerly called GAIM. GPRS does induce a certain amount of latency but that should not be a problem for simple, text-oriented chat between parties. And the GTA02's WiFi  will make it even better.&lt;br /&gt;
&lt;br /&gt;
==== Does it support Flash so can I watch YouTube? ====&lt;br /&gt;
You don't really need Flash to watch YouTube videos, for example, if you want to watch www.youtube.com/watch?v=k9QLdK6pFCI just install mplayer and use this command: &lt;br /&gt;
 mplayer http://ytpocket.com/getflv.php?id=k9QLdK6pFCI&lt;br /&gt;
or use this small script with the video URL as the first parametre:&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 vid=`echo &amp;quot;$1&amp;quot; | sed 's/.*\?.*=\(.*\)/\1/'`&lt;br /&gt;
 mplayer http://ytpocket.com/getflv.php?id=$vid&lt;br /&gt;
&lt;br /&gt;
=== Package Management===&lt;br /&gt;
&lt;br /&gt;
==== How do I install and manage software on Openmoko? ====&lt;br /&gt;
&lt;br /&gt;
See [http://handhelds.org/moin/moin.cgi/Ipkg here]&lt;br /&gt;
&lt;br /&gt;
==== What about opkg? ====&lt;br /&gt;
&lt;br /&gt;
See [[Opkg|here]]&lt;br /&gt;
&lt;br /&gt;
==== What is the meaning of the error codes from ipkg? ====&lt;br /&gt;
&lt;br /&gt;
See [[Opkg#Error_Codes|here]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Does opkg support packages autocompletion ? ====&lt;br /&gt;
&lt;br /&gt;
It's possible now, see [http://tropfacile.info/?/Linux/28-Openmoko-Opkg-Autocompletion-With-Packages-Names The opkg autocompletion]&lt;br /&gt;
&lt;br /&gt;
===Development===&lt;br /&gt;
&lt;br /&gt;
====How can I compile programs for the Neo FreeRunner? ====&lt;br /&gt;
&lt;br /&gt;
See [[Toolchain]].&lt;br /&gt;
&lt;br /&gt;
====Is there an emulator available for Openmoko? ====&lt;br /&gt;
&lt;br /&gt;
For a lot of testing and development work you can simply run Openmoko directly on your PC.&lt;br /&gt;
&lt;br /&gt;
=====QEMU=====&lt;br /&gt;
&lt;br /&gt;
QEMU can emulate the Neo 1973 and the Neo FreeRunner. The [[MokoMakefile]] has support for automatically building, flashing, and running [[Openmoko under QEMU|the Neo emulator]].&lt;br /&gt;
&lt;br /&gt;
*Ubuntu users can follow the instructions in [[Automatic_emulation_in_Ubuntu]]&lt;br /&gt;
&lt;br /&gt;
*Users of other Linux distributions can try the following:&lt;br /&gt;
:&amp;quot;make qemu” will build qemu-neo1973, download the latest official openmoko images, flash the images into the virtual NAND flash, and run the emulator.&lt;br /&gt;
&lt;br /&gt;
See [[Qemu]] for more advanced information on running Openmoko in Qemu.&lt;br /&gt;
&lt;br /&gt;
=====Xoo=====&lt;br /&gt;
&lt;br /&gt;
[http://projects.o-hand.com/xoo Xoo]. Koen says: &amp;quot;Xoo should be enough for most applications people will develop, since most don't need access to the GSM uart directly. If you're hardcore you could use qemu + xoo, but that still doesn't emulate all the hardware quirks (e.g. unaligned access)&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Update: Stefan Schmidt has resized the [[Neo1973]] Mock-up and written a small description for xoo. In his words:&lt;br /&gt;
&lt;br /&gt;
It's not really usable at all, as you need a really high screen resolution to fit the whole picture on your screen. And of course the dpi are wrong. Even no buttons because I can't remember where they are at the case.&lt;br /&gt;
&lt;br /&gt;
http://www.datenfreihafen.org/~stefan/OpenMoko/neo1973-xoo-device.tar.bz2&lt;br /&gt;
&lt;br /&gt;
Start with 'xoo --device /path/to/neo1973.xml'&lt;br /&gt;
&lt;br /&gt;
Some more details [[Getting_Openmoko_working_on_host_with_Xoo|here]].&lt;br /&gt;
&lt;br /&gt;
=====Xephyr=====&lt;br /&gt;
&lt;br /&gt;
Or use Xephyr directly with locally compiled programs (e.g. matchbox svn + openmoko):&lt;br /&gt;
 Xephyr -screen 480x640 -nolisten tcp -ac :1 &amp;amp;&lt;br /&gt;
 export DISPLAY=:1&lt;br /&gt;
 export LD_LIBRARY_PATH=/usr/local/lib&lt;br /&gt;
 matchbox-window-manager -display $DISPLAY -use_titlebar no \&lt;br /&gt;
  -use_super_modal yes -use_lowlight yes -use_dialog_mode static \&lt;br /&gt;
  -use_cursor yes &amp;amp;&lt;br /&gt;
 matchbox-panel --geometry=480x44 --end-applets=clock &amp;amp;&lt;br /&gt;
 openmoko-footer &amp;amp;&lt;br /&gt;
 openmoko-taskmanager &amp;amp;&lt;br /&gt;
&lt;br /&gt;
====Where can I find some type of tutorial for a 'Hello, world' on Openmoko? ====&lt;br /&gt;
&lt;br /&gt;
This should get you started:&lt;br /&gt;
* [[Building_a_hello_world_application]]&lt;br /&gt;
* http://www.gtk.org/documentation.html#Tutorials&lt;br /&gt;
&lt;br /&gt;
====Can PalmOS apps applications be ported to run on Openmoko? ====&lt;br /&gt;
&lt;br /&gt;
Making legacy apps written for the &amp;quot;Garnet&amp;quot; OS (née &amp;quot;Palm OS&amp;quot;) run on Linux&lt;br /&gt;
is decidedly non-trivial.&lt;br /&gt;
&lt;br /&gt;
PalmOS apps are in general very hard to simply 'port'. Particularly well-designed programs may make it possible.&lt;br /&gt;
&lt;br /&gt;
The ACCESS Linux Platform will include Garnet on Host (GHost), a PalmOS emulator that will support M6800 (68k) and ARM PalmOS applications. This part (GarnetVM and the .prc loader) will however be closed-source and likely under a restrictive license (fact confirmed by ACCESS Co. employees), making it rather unusable. In addition GarnetVM depends on Hiker and other packages.&lt;br /&gt;
&lt;br /&gt;
It is possible that POSE, an emulator that simulates a Palm device on a Linux host could be used to allow 68k based applications to run.  This emulator has been around a long time; one expects that it will also run on Openmoko, but this has to be considered a short-term bandaid rather than a long-term solution.&lt;br /&gt;
&lt;br /&gt;
Hopefully emulation will be necessary only for M68000 code (pre-PalmOS 5) while native ARM programs can run natively under Linux, provided a proper set of PalmOS libraries and a .prc executable loader.&lt;br /&gt;
&lt;br /&gt;
==== Does it support Java? ====&lt;br /&gt;
It will have eventually, if you help us to get it working. Some good places to keep track of would be [http://projects.openmoko.org/projects/java-pkg/ projects.openmoko.org] and [https://phoneme.dev.java.net/ PhoneME].&lt;br /&gt;
&lt;br /&gt;
Project [[https://wiki.evolvis.org/jalimo/index.php/Jalimo Jalimo]] is a project aiming to provide a Java stack on mobile devices. There is a [https://wiki.evolvis.org/jalimo/index.php/Openmoko port of Jalimo] for Openmoko.&lt;br /&gt;
The [[Debian]] distribution supports CacaoVM and JamVM through apt-get. See [[Java]] for more infos.&lt;br /&gt;
&lt;br /&gt;
==== Does it support Ruby? ====&lt;br /&gt;
&lt;br /&gt;
For Ruby 1.9, please refer to http://blog.sparkymat.net/2008/08/10/ruby-19-on-openmoko/&lt;br /&gt;
&lt;br /&gt;
For Ruby 1.8.6, please refer to http://blog.wolfman.com/articles/2008/08/10/ruby-1-8-6-on-openmoko-freerunner&lt;br /&gt;
&lt;br /&gt;
==== Does it support Python? ====&lt;br /&gt;
&lt;br /&gt;
Yes, with some caveats. See [[Python]] for more information.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====How do I dump details about X11 configuration and extensions? ====&lt;br /&gt;
&lt;br /&gt;
Run the command xdpyinfo. Generally, you would do this via an SSH session to the phone, so you may need to first &lt;br /&gt;
&lt;br /&gt;
 export DISPLAY=&amp;quot;:0.0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
and then run&lt;br /&gt;
&lt;br /&gt;
 xdpyinfo&lt;br /&gt;
&lt;br /&gt;
For an example invocation, see [http://lists.openmoko.org/pipermail/community/2007-January/001353.html xdpyinfo output].&lt;br /&gt;
&lt;br /&gt;
== Distribution Customization ==&lt;br /&gt;
&lt;br /&gt;
{{Note| Suggestion: this should be split off into a separate page, since many of the questions below aren't really overview-level but specialized; a question like &amp;quot;How do I customize a distribution?&amp;quot; could be added to the Software - Distributions part, linking to the new page. --[[User:Eddsouza|eddsouza]] 07:35, 7 September 2008 (UTC)}}&lt;br /&gt;
&lt;br /&gt;
=== Compilation &amp;amp; packaging ===&lt;br /&gt;
==== What is the 'overlay' approach to bitbake development? ====&lt;br /&gt;
:You can create a local overlay for the bitbake build chain and develop in the overlay as described in [[Application_Development_Crash_Course| Application Development Crash Course]].&lt;br /&gt;
&lt;br /&gt;
==== Which .bb files are related with the Openmoko? ====&lt;br /&gt;
==== Are there any configuration files for Openmoko? ====&lt;br /&gt;
==== How can I port an application written with autotools to Openmoko? ====&lt;br /&gt;
After you source the [[Toolchain|Openmoko toolchain]] variables, the Openmoko processor compiler becomes the default compiler. You can compile any GNU - like project just typing ''./configure --host i686'' and then ''make'' - it will produce libraries and executables as expected. Just these executables will not run on your i686 host - they will run on Openmoko ARM processor. Use scp to upload the executables to your phone.&lt;br /&gt;
&lt;br /&gt;
==== How can I add an application written with autotools to the openmoko tree? ====&lt;br /&gt;
&lt;br /&gt;
==== How can I make changes in the openmoko applications? ====&lt;br /&gt;
==== How can I submit my changes? ====&lt;br /&gt;
==== Can I use the mokomakefile in the development process? How? ====&lt;br /&gt;
&lt;br /&gt;
:Yes, [[MokoMakefile]] can be used in the development process.  See [[MokoMakefile#Developing_with_MokoMakefile| Developing with MokoMakefile]].&lt;br /&gt;
&lt;br /&gt;
==== What's the way to include/exclude a newly added package to/from the final rootfs? ====&lt;br /&gt;
==== Where do the final ipk &amp;amp; binary files reside? ====&lt;br /&gt;
:ipk files are in &lt;br /&gt;
 ./build/tmp/deploy/glibc/ipk/&lt;br /&gt;
:binary images are in&lt;br /&gt;
 ./build/tmp/deploy/glibc/images/fic-gta01/&lt;br /&gt;
&lt;br /&gt;
==== How can I add an application to the applications list? ====&lt;br /&gt;
==== How can I assign an image to my new application to be seen in the applications list? ====&lt;br /&gt;
The Openmoko project tree contains the folder 'data' where you can put any 128*128 icon. You need to mention the icon in two places in this folder: &lt;br /&gt;
* Makefile.am must contain the line dist_appicon_DATA = &amp;lt;icon_name&amp;gt;.png&lt;br /&gt;
* The &amp;lt;application_name&amp;gt;.desktop file that must be in this folder should contain the Icon=&amp;lt;icon_name&amp;gt; (without file type).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Misc==&lt;br /&gt;
&lt;br /&gt;
===On the lists on lists.openmoko.org, should replies be added above or below the original text? ===&lt;br /&gt;
&lt;br /&gt;
Please reply UNDER post.&lt;br /&gt;
&lt;br /&gt;
===How can I find out if a question or topic has already been discussed on the mailing lists? ===&lt;br /&gt;
&lt;br /&gt;
By searching the mailing list archives. For example, using Google searches:&lt;br /&gt;
&lt;br /&gt;
 site:openmoko.org text&lt;br /&gt;
&lt;br /&gt;
For example, to search for accelerometer:&lt;br /&gt;
&lt;br /&gt;
 site:openmoko.org accelerometer&lt;br /&gt;
&lt;br /&gt;
If you only want to read the &amp;quot;official&amp;quot; mails from FIC people or from Openmoko people:&lt;br /&gt;
&lt;br /&gt;
 site:openmoko.org text &amp;quot;at fic.com.tw&amp;quot;&lt;br /&gt;
 site:openmoko.org text &amp;quot;at openmoko.org&amp;quot;&lt;br /&gt;
&lt;br /&gt;
For example to search for &amp;quot;release date&amp;quot; from FIC people:&lt;br /&gt;
&lt;br /&gt;
 site:openmoko.org &amp;quot;release date&amp;quot; &amp;quot;at fic.com.tw&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Alternatively you can use the [http://www.google.com/coop/cse?cx=018430699993342716089%3Aszsaurhronw custom Openmoko search engine] that is using [http://www.google.com/coop/ Google Co-op].&lt;br /&gt;
&lt;br /&gt;
===how many dead pixels may the LCM have before calling it defect? ===&lt;br /&gt;
&lt;br /&gt;
The answer for the display used in GTA01 and GTA02 is '2'&lt;br /&gt;
&lt;br /&gt;
=== how many visits does this wiki have? ===&lt;br /&gt;
See this [[Wiki_statistic_numbers|wiki's statistics]] page.&lt;br /&gt;
&lt;br /&gt;
=Historical=&lt;br /&gt;
The Neo1973 was last available in Febuary 2008. &lt;br /&gt;
&lt;br /&gt;
==Neo1973 Hardware== &lt;br /&gt;
&lt;br /&gt;
===What are the hardware specifications of Neo 1973 ? ===&lt;br /&gt;
&lt;br /&gt;
See page [[Neo1973_Hardware]] and category [[:Category:Neo1973 Hardware | Neo1973 Hardware]] and [[Disassembling Neo1973]]&lt;br /&gt;
&lt;br /&gt;
===How do I input text? ===&lt;br /&gt;
&lt;br /&gt;
Use provided keyboard app.&lt;br /&gt;
&lt;br /&gt;
Use Bluetooth keyboard.&lt;br /&gt;
&lt;br /&gt;
For more methods and ideas see [[Wishlist:Text_Input]].&lt;br /&gt;
&lt;br /&gt;
===Can I record calls and/or play audio files in calls? ===&lt;br /&gt;
&lt;br /&gt;
Yes, audio path from GSM to/from mic and speakers is completely controllable by user. For example recording calls (both sides) and implementing an [[Answering Machine]] is possible. Also using text-&amp;gt;speech should be possible or modifying outgoing voice. Currently there is no software bundled in phone to do this.&lt;br /&gt;
There are only 2 A/D inputs and three D/A outputs (one dedicated to the earpiece). This means that stereo audio playback cannot happen at the same time as the [[Answering Machine]] functionality, amongst other things. See the audio page. [[Neo1973_Audio_Subsystem|Neo1973 Audio Subsystem]]&lt;br /&gt;
&lt;br /&gt;
===What is the battery life? ===&lt;br /&gt;
&lt;br /&gt;
There has been no word on this so far, but see [[Neo1973 Power Management#Approximate_power_draw_of_various_subsystems|these estimates]] for a rough idea.  More information about the battery [[Neo1973 Battery|here]].&lt;br /&gt;
&lt;br /&gt;
=== USB ===&lt;br /&gt;
&lt;br /&gt;
====What can I do with the USB port on the Neo? ====&lt;br /&gt;
Charge the phone, communicate with it over USB-serial, or USB-networking.&lt;br /&gt;
&lt;br /&gt;
Plug external devices, such as wifi, cameras, or mass-storage devices.&lt;br /&gt;
&lt;br /&gt;
====What can't I do with the USB? ====&lt;br /&gt;
&lt;br /&gt;
The only limitation on current hardware seems to be no usb 2.0 support, which means slower communication with 2.0 devices.&lt;br /&gt;
&lt;br /&gt;
====Why is only USB 1.1 provided? ====&lt;br /&gt;
&lt;br /&gt;
The processor has USB 1.1 built in. One with USB2 built in would have been more expensive, and might not be open.&lt;br /&gt;
&lt;br /&gt;
The FreeRunner has the same processor as the Neo1973.&lt;br /&gt;
&lt;br /&gt;
====What are the details of the USB port on the Neo? How does it compare to USB On-The-Go? ====&lt;br /&gt;
&lt;br /&gt;
The Neo will have mini-USB-B, and will be able to function as either a host or a device. It will NOT be USB On-The-Go.  OTG is a complex specification, and it comprises way more than just&lt;br /&gt;
an AB socket, but also electrical and software components which cannot be provide by the S3C2410.&lt;br /&gt;
&lt;br /&gt;
You will need a special Mini-B to regular-B cable (note that this won't actually comply with the USB standard:  a compliant cable has to have an A or Mini-A plug on one end, and B or Mini-B on the other).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Application Developer]]&lt;br /&gt;
[[Category:Basic End User]]&lt;br /&gt;
[[Category:FAQ]]&lt;/div&gt;</summary>
		<author><name>Michaelshiloh</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Neo_FreeRunner_Wifi</id>
		<title>Neo FreeRunner Wifi</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Neo_FreeRunner_Wifi"/>
				<updated>2008-10-09T15:29:26Z</updated>
		
		<summary type="html">&lt;p&gt;Michaelshiloh: /* Other sample wpa_supplicant.conf files */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|Neo FreeRunner Menu}}&lt;br /&gt;
&lt;br /&gt;
This page documents the [http://en.wikipedia.org/wiki/Wireless_networking wireless networking] solutions commonly known as [http://en.wikipedia.org/wiki/Wireless_LAN WLAN] or WiFi. &lt;br /&gt;
&lt;br /&gt;
There are other ways to enable wireless communications on the Neo, including [[Bluetooth]]. For Bluetooth solutions, see [[How to use bluetooth to transfer data between Neo and Desk-top]] and [[Manually using Bluetooth]].&lt;br /&gt;
&lt;br /&gt;
== Using the GUI on 2008.8 ==&lt;br /&gt;
&lt;br /&gt;
In the Settings application on Om 2008.8, there's a &amp;quot;WiFi&amp;quot; item. It should work fairly well in stable-updated 2008.8 (even with WPA2).&lt;br /&gt;
&lt;br /&gt;
If it says &amp;quot;WiFi unknown&amp;quot;, you can delete the /etc/volatives.cache file and reboot.  It should work after that.[http://docs.openmoko.org/trac/ticket/1734]  After connecting using the GUI, you may also need to run &amp;quot;udhcpc eth0&amp;quot; manually in the terminal to get DNS entries added to your resolv.conf.  You may also need to run &amp;quot;ifdown usb0&amp;quot; to remove the routing issue caused by having both interfaces up at the same time.  Some users have reported that 802.11g modulation needs to be enabled on APs to allow the FreeRunner to connect (The hardware is suppose to support 802.11b/g).&lt;br /&gt;
&lt;br /&gt;
Otherwise there's also [[lint-wifi]].  Refer to the section below, [[#Available Software|&amp;quot;Available Software&amp;quot;]] to find out what else might be available.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== How can I tell what Access Points (APs) are visible to me? ==&lt;br /&gt;
&lt;br /&gt;
You can connect to wireless networks through wireless [http://en.wikipedia.org/wiki/Access_point| access points]. If you want to know the names of all the access points that are currently visible to you, you can perform a scan with this command:&lt;br /&gt;
&lt;br /&gt;
 root@om-gta02:~# '''iwlist eth0 scan'''&lt;br /&gt;
&lt;br /&gt;
If anything is visible you will get a list that looks something like this:&lt;br /&gt;
&lt;br /&gt;
 eth0      Scan completed :&lt;br /&gt;
           Cell 01 - Address: 00:16:B6:DE:77:58&lt;br /&gt;
                     ESSID:&amp;quot;StarvinMarvin&amp;quot;&lt;br /&gt;
                     Mode:Master&lt;br /&gt;
                     Frequency:2.437 GHz (Channel 6)&lt;br /&gt;
                     Quality=9/94  Signal level=-86 dBm  Noise level=-95 dBm&lt;br /&gt;
                     Encryption key:on&lt;br /&gt;
                     Extra:bcn_int=100&lt;br /&gt;
                     Extra:wpa_ie=dd180050f20101000050f20201000050f20201000050f2020000&lt;br /&gt;
           Cell 02 - Address: 00:21:29:AA:10:97&lt;br /&gt;
                     ESSID:&amp;quot;CandT Network&amp;quot;&lt;br /&gt;
                     Mode:Master&lt;br /&gt;
                     Frequency:2.437 GHz (Channel 6)&lt;br /&gt;
                     Quality=39/94  Signal level=-56 dBm  Noise level=-95 dBm&lt;br /&gt;
                     Encryption key:on&lt;br /&gt;
                     Extra:bcn_int=100&lt;br /&gt;
                     Extra:wpa_ie=dd1c0050f20101000050f20202000050f2040050f20201000050f2020000&lt;br /&gt;
                     Extra:rsn_ie=30180100000fac020200000fac04000fac020100000fac020000&lt;br /&gt;
           Cell 03 - Address: 00:14:95:1B:8E:B9&lt;br /&gt;
                     ESSID:&amp;quot;2WIRE852&amp;quot;&lt;br /&gt;
                     Mode:Master&lt;br /&gt;
                     Frequency:2.437 GHz (Channel 6)&lt;br /&gt;
                     Quality=5/94  Signal level=-90 dBm  Noise level=-95 dBm&lt;br /&gt;
                     Encryption key:on&lt;br /&gt;
                     Extra:bcn_int=100&lt;br /&gt;
           Cell 04 - Address: 00:E0:98:52:3D:78&lt;br /&gt;
                     ESSID:&amp;quot;smith&amp;quot;&lt;br /&gt;
                     Mode:Master&lt;br /&gt;
                     Frequency:2.437 GHz (Channel 6)&lt;br /&gt;
                     Quality=36/94  Signal level=-59 dBm  Noise level=-95 dBm&lt;br /&gt;
                     Encryption key:on&lt;br /&gt;
                     Extra:bcn_int=100&lt;br /&gt;
&lt;br /&gt;
If you want to connect to an unsecured network run:&lt;br /&gt;
  &lt;br /&gt;
  udhcpc  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== WPA ==&lt;br /&gt;
&lt;br /&gt;
[http://en.wikipedia.org/wiki/Wi-Fi_Protected_Access  WPA] is an encryption method for securing your wireless network.&lt;br /&gt;
&lt;br /&gt;
=== Using wpa_supplicant manually ===&lt;br /&gt;
&lt;br /&gt;
Create and edit a suitable [[GTA02_WLAN#Sample_wpa_supplicant.conf|/etc/wpa_supplicant/wpa_supplicant.conf]].&lt;br /&gt;
&lt;br /&gt;
Bring up your wireless connection: &lt;br /&gt;
&lt;br /&gt;
 root@om-gta02:~# ifup eth0&lt;br /&gt;
 root@om-gta02:~# wpa_supplicant -ieth0 -c/etc/wpa_supplicant/wpa_supplicant.conf -B&lt;br /&gt;
 root@om-gta02:~# udhcpc eth0&lt;br /&gt;
&lt;br /&gt;
=== Using WPA and /etc/network/interfaces ===&lt;br /&gt;
&lt;br /&gt;
Once you have a [[GTA02_WLAN#Sample_wpa_supplicant.conf|/etc/wpa_supplicant/wpa_supplicant.conf]] file, add a line under the eth0 entry in /etc/network/interfaces:&lt;br /&gt;
&lt;br /&gt;
 iface eth0 inet dhcp&lt;br /&gt;
    wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf&lt;br /&gt;
&lt;br /&gt;
Save your changes and run:&lt;br /&gt;
  # ifdown eth0 &amp;amp;&amp;amp; ifup eth0&lt;br /&gt;
&lt;br /&gt;
You'll get a lot of messages, like &amp;lt;tt&amp;gt;ioctl[SIOCSIWENCODEEXT]: Operation not supported&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;sed: unrecognized option `--quiet'&amp;lt;/tt&amp;gt;, they appear to be harmless. The &amp;quot;--quiet&amp;quot; error message can be avoided by replacing &amp;quot;sed --quiet&amp;quot; with &amp;quot;sed -n&amp;quot; in /etc/wpa_supplicant/*.sh&lt;br /&gt;
&lt;br /&gt;
=== wpa_supplicant.conf ===&lt;br /&gt;
&lt;br /&gt;
==== wpa_supplicant.conf explained ====&lt;br /&gt;
The highest priority is tried first then falls back to the next highest number.&lt;br /&gt;
&lt;br /&gt;
priority=100  1st  &amp;lt;br&amp;gt;&lt;br /&gt;
then&amp;lt;br&amp;gt;&lt;br /&gt;
priority=99  &amp;lt;br&amp;gt; &lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
&lt;br /&gt;
# Simple case: WPA-PSK, PSK as an ASCII passphrase, allow all valid ciphers&lt;br /&gt;
network={&lt;br /&gt;
	ssid=&amp;quot;AP_ESSID&amp;quot;&lt;br /&gt;
	psk=&amp;quot;presharedkey&amp;quot;&lt;br /&gt;
	priority=5&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#try open AP regardless of its SSID.&lt;br /&gt;
# change root password before you go roaming around it could prove dangerous&lt;br /&gt;
network={&lt;br /&gt;
	key_mgmt=NONE&lt;br /&gt;
priority=1  #try any open AP last&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A more in depth explanation can be found here:&amp;lt;br&amp;gt; &lt;br /&gt;
http://hostap.epitest.fi/gitweb/gitweb.cgi?p=hostap.git;a=blob_plain;f=wpa_supplicant/wpa_supplicant.conf&lt;br /&gt;
&lt;br /&gt;
==== Sample wpa_supplicant.conf ====&lt;br /&gt;
&lt;br /&gt;
 ctrl_interface=/var/run/wpa_supplicant&lt;br /&gt;
 ctrl_interface_group=0&lt;br /&gt;
 eapol_version=1&lt;br /&gt;
 ap_scan=1&lt;br /&gt;
 fast_reauth=1 &lt;br /&gt;
 # WPA2:&lt;br /&gt;
 network={&lt;br /&gt;
        ssid=&amp;quot;your ssid&amp;quot;&lt;br /&gt;
        scan_ssid=1&lt;br /&gt;
        proto=RSN&lt;br /&gt;
        key_mgmt=WPA-PSK&lt;br /&gt;
        pairwise=CCMP TKIP&lt;br /&gt;
        group=TKIP CCMP&lt;br /&gt;
        psk=&amp;quot;secret key&amp;quot;&lt;br /&gt;
        priority=50&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 # WPA:&lt;br /&gt;
 network={&lt;br /&gt;
       ssid=&amp;quot;your_ssid&amp;quot;&lt;br /&gt;
       proto=WPA&lt;br /&gt;
       key_mgmt=WPA-PSK&lt;br /&gt;
       pairwise=TKIP&lt;br /&gt;
       group=TKIP&lt;br /&gt;
       scan_ssid=1&lt;br /&gt;
       psk=&amp;quot;secret key&amp;quot;&lt;br /&gt;
       priority=10&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 # WEP:&lt;br /&gt;
 network={&lt;br /&gt;
      ssid=&amp;quot;your_ssid&amp;quot;&lt;br /&gt;
      scan_ssid=1&lt;br /&gt;
      key_mgmt=NONE&lt;br /&gt;
      wep_tx_keyidx=0&lt;br /&gt;
      wep_key0=your_hex_key&lt;br /&gt;
      priority=8&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 # Open:&lt;br /&gt;
 network={&lt;br /&gt;
      ssid=&amp;quot;your ssid&amp;quot;&lt;br /&gt;
      key_mgmt=NONE&lt;br /&gt;
      priority=5&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== Other working sample wpa_supplicant.conf files ====&lt;br /&gt;
&lt;br /&gt;
Tom Yates documents his success [http://www.teaparty.net/technotes/openmoko-2.html#Wifi here]&lt;br /&gt;
&lt;br /&gt;
== WEP ==&lt;br /&gt;
&lt;br /&gt;
[http://en.wikipedia.org/wiki/Wired_Equivalent_Privacy WEP] is an encryption method for securing your wireless network. WEP is generally considered to be weak, you should use WPA instead if possible.&lt;br /&gt;
&lt;br /&gt;
=== Using iwconfig manually ===&lt;br /&gt;
&lt;br /&gt;
Note that for WEP our iwconfig requires a more specific format than generic iwconfig.&lt;br /&gt;
&lt;br /&gt;
The canonical way of running iwconfig for WEP would be something like this:&lt;br /&gt;
&lt;br /&gt;
# iwconfig eth0 key A4BEB3B8EC essid xyz&lt;br /&gt;
&lt;br /&gt;
Two things are important here:&lt;br /&gt;
&lt;br /&gt;
* the key must be in HEX. iwconfig will not do anything useful if the key is given as a string.   [http://www.powerdog.com/wepkey.cgi Here] is a handy ASCII string to HEX converter.&lt;br /&gt;
&lt;br /&gt;
* the ESSID must follow the key.&lt;br /&gt;
&lt;br /&gt;
If an incorrect key was set, please stop all activity on the interface for at least two minutes (i.e., killall udhcpc and ifconfig eth0 down), then issue the correct iwconfig command and retry.&lt;br /&gt;
&lt;br /&gt;
=== Using WEP and /etc/network/interfaces ===&lt;br /&gt;
  iface eth0 inet dhcp&lt;br /&gt;
    wireless-key my_wep_key&lt;br /&gt;
    wireless-essid my_essid&lt;br /&gt;
&lt;br /&gt;
 iface eth0 inet dhcp&lt;br /&gt;
    wpa-wep-key0 my_wep_key&lt;br /&gt;
    wpa-key-mgmt NONE&lt;br /&gt;
    wpa-ssid my_essid&lt;br /&gt;
&lt;br /&gt;
Save your changes and run:&lt;br /&gt;
  # ifdown eth0 &amp;amp;&amp;amp; ifup eth0&lt;br /&gt;
&lt;br /&gt;
== Known Issues ==&lt;br /&gt;
&lt;br /&gt;
=== GUI doesn't work in all cases ===&lt;br /&gt;
&lt;br /&gt;
The GUI seems to have some issues that prevent it from working in all cases. &lt;br /&gt;
&lt;br /&gt;
If a Wi-Fi connection can not be made with the GUI, open a shell and use&lt;br /&gt;
[[Neo_FreeRunner_Wifi#Using_iwconfig_manually|iwconfig manually]].&lt;br /&gt;
&lt;br /&gt;
=== iwconfig doesn't work in all cases ===&lt;br /&gt;
&lt;br /&gt;
Note that for some reason our iwconfig requires a more constrained format than the generic iwconfig. See&lt;br /&gt;
[[Neo_FreeRunner_Wifi#Using_iwconfig_manually| using iwconfig manually]].&lt;br /&gt;
&lt;br /&gt;
=== Anecdotal solutions ===&lt;br /&gt;
&lt;br /&gt;
These solutions worked for some people:&lt;br /&gt;
&lt;br /&gt;
==== Disable power management ====&lt;br /&gt;
&lt;br /&gt;
Some APs apparently get upset by power managed devices, and the Freerunner enables power management of the wifi by default to preserve battery. One user's wrt54g certainly gets upset from time to time if he connect with the FreeRunner, sometimes refusing to talk to _anything_ over wifi afterwards until rebooted.&lt;br /&gt;
&lt;br /&gt;
==== Modified script ====&lt;br /&gt;
&lt;br /&gt;
&amp;quot;I changed the script a little:&lt;br /&gt;
&lt;br /&gt;
 Exec=xterm -e &amp;quot;ifconfig eth0 down \&lt;br /&gt;
 iwconfig eth0 txpower off channel 0 \&lt;br /&gt;
 while killall wpa_supplicant; do echo 'Killing wpa_sup'; done \&lt;br /&gt;
 killall udhcpc \&lt;br /&gt;
 wpa_supplicant -i eth0 -c /etc/wpa_supplicant/wpa_supplicant.conf -D wext -B \&lt;br /&gt;
 sleep 10; udhcpc&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Now it is working every time.&lt;br /&gt;
I am using 2008.latest (081004) and a linksys WAP54G accesspoint,&lt;br /&gt;
&lt;br /&gt;
==== Use a different channel ====&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Could not get it to work properly on channel 11, so I set my accesspoint to channel 1.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Wake up from wireless (wow)==&lt;br /&gt;
&lt;br /&gt;
Wi-Fi module constantly drain currents after module power up, for wi-fi SIP phone or some application need long standby time, will need wake up from wireless function for power saving. There is a sleep mode that Ar6k supported for wake up from wireless.&lt;br /&gt;
&lt;br /&gt;
 http://svn.openmoko.org/trunk/src/target/AR6kSDK.build_sw.18/host/tools/wmiconfig&lt;br /&gt;
&lt;br /&gt;
 export ATH_CROSS_COMPILE_TYPE=arm-angstrom-linux-gnueabi-&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
Debian package:&lt;br /&gt;
&lt;br /&gt;
 wget http://meshy.org/~ato/debian/pool/main/w/wmiconfig/wmiconfig_0.0.18-1_armel.deb&lt;br /&gt;
 dpkg -i wmiconfig_0.0.18-1_armel.deb&lt;br /&gt;
&lt;br /&gt;
Basically, it's achieved via wmiconfig tool to issue IOCTL if we want&lt;br /&gt;
ar6k wifi module to generate interrupt to host controller. The procedure&lt;br /&gt;
to enable wakeup-on-wireless(wow) is listed here:&lt;br /&gt;
&lt;br /&gt;
 1. wmiconfig --sethostmode asleep /* to tell ar6k what host's current is */&lt;br /&gt;
 2. wmiconfig --setwowmode enable /* enable wow function */&lt;br /&gt;
 3. wmiconfig --addpattern 0 1 33 01 ff /* add packet filter pattern, this is the ICMP filter pattern */&lt;br /&gt;
 4. apm -s&lt;br /&gt;
 5. ping IP_of_Neo&lt;br /&gt;
 6. The GPIO1 pin would be pulled up. The system would resume then.&lt;br /&gt;
 7. wmiconfig --sethostmode awake /* The firmware of ar6k will pull low the GPIO1 pin */&lt;br /&gt;
&lt;br /&gt;
--addwowpattern &amp;lt;list-id&amp;gt; &amp;lt;pattern-size&amp;gt; &amp;lt;pattern-offset&amp;gt; &amp;lt;pattern&amp;gt; &amp;lt;pattern-mask&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here are some addwowpattern commands:&lt;br /&gt;
&lt;br /&gt;
Protocol type=IP=0800&lt;br /&gt;
Protocol type in IP header=ICMP=01&lt;br /&gt;
&lt;br /&gt;
 - To filter for IP packets(offset 22)&lt;br /&gt;
 wmiconfig --addwowpattern 0 2 22 0800 ffff&lt;br /&gt;
 - To filter for ICMP packets (offset 33)&lt;br /&gt;
 wmiconfig --addwowpattern 0 1 33 01 ff&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== A very ugly /etc/init.d/wlan startscript ==&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 #&lt;br /&gt;
 # wlan	This shell script starts and stops wlan.&lt;br /&gt;
 #&lt;br /&gt;
 # processname: wlan&lt;br /&gt;
 &lt;br /&gt;
 # Source function library.&lt;br /&gt;
 #. /etc/rc.d/init.d/functions&lt;br /&gt;
 # &amp;quot;written&amp;quot; by HdR&lt;br /&gt;
 &lt;br /&gt;
 RETVAL=0&lt;br /&gt;
 prog=&amp;quot;wlan&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # test -f /etc/default/$prog &amp;amp;&amp;amp; . /etc/default/$prog&lt;br /&gt;
 &lt;br /&gt;
 start() {&lt;br /&gt;
 	echo -n &amp;quot;Starting $prog: &amp;quot;&lt;br /&gt;
 	ifconfig eth0 up&lt;br /&gt;
 	wpa_supplicant -ieth0 -c/etc/wpa_supplicant/wpa_supplicant.conf -B&lt;br /&gt;
 	sleep 10&lt;br /&gt;
 	udhcpc eth0&lt;br /&gt;
 	RETVAL=$?&lt;br /&gt;
 	return $RETVAL&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 stop() {&lt;br /&gt;
 	# Stop daemons.&lt;br /&gt;
 	echo -n &amp;quot;Shutting down $prog: &amp;quot;&lt;br /&gt;
         killall wpa_supplicant&lt;br /&gt;
 	ifconfig eth0 down&lt;br /&gt;
 #        killproc gpsd&lt;br /&gt;
 	RETVAL=$?&lt;br /&gt;
 	return $RETVAL&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 # See how we were called.&lt;br /&gt;
 case &amp;quot;$1&amp;quot; in&lt;br /&gt;
   start)&lt;br /&gt;
 	start&lt;br /&gt;
 	;;&lt;br /&gt;
   stop)&lt;br /&gt;
 	stop&lt;br /&gt;
 	;;&lt;br /&gt;
   restart|reload)&lt;br /&gt;
 	stop&lt;br /&gt;
 	start&lt;br /&gt;
 	RETVAL=$?&lt;br /&gt;
 	;;&lt;br /&gt;
   *)&lt;br /&gt;
 	echo &amp;quot;Usage: $0 {start|stop|restart}&amp;quot;&lt;br /&gt;
 	exit 1&lt;br /&gt;
 esac&lt;br /&gt;
 &lt;br /&gt;
 exit $RETVAL&lt;br /&gt;
&lt;br /&gt;
Note: Don't forget to make this script executable with &amp;quot;chmod +x &amp;lt;filename&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Route internet connection through Wifi rather than USB ==&lt;br /&gt;
&lt;br /&gt;
Wifi is faster than USB, so it is a good idea to tell the FreeRunner to connect through it. Put the following in /etc/network/interfaces under eth0:&lt;br /&gt;
&lt;br /&gt;
up route del default gw 192.168.0.200&lt;br /&gt;
&lt;br /&gt;
This will remove your computer as the default gateway and use the  wireless one when the interface is brought up. User nickd reports that sometimes it fails so he has had to put it in twice.&lt;br /&gt;
&lt;br /&gt;
== ssh into FR over WiFi ==&lt;br /&gt;
dropbear, the ssh server, is configured to listen on the USB interface only. Wireless interfaces like wlan or bluetooth are disabled for security reasons (empty root password).&lt;br /&gt;
&lt;br /&gt;
If you want to enable ssh over WiFi, change the /etc/default/dropbear from:&lt;br /&gt;
&lt;br /&gt;
  DROPBEAR_PORT=`ip addr list usb0 | awk 'BEGIN { FS=&amp;quot;[ /]+&amp;quot; } /inet / { print  $3 }'`:22&lt;br /&gt;
&lt;br /&gt;
(which actually only prepends the usb0 ip address before the :22)&lt;br /&gt;
&lt;br /&gt;
into:&lt;br /&gt;
&lt;br /&gt;
  DROPBEAR_PORT=22&lt;br /&gt;
&lt;br /&gt;
* Be careful with this config file since it can close the only door into your phone.&lt;br /&gt;
&lt;br /&gt;
* Set a root password!&lt;br /&gt;
&lt;br /&gt;
== Available Software ==&lt;br /&gt;
&lt;br /&gt;
Programs in development providing GUI interfaces to administer WiFi connections:&lt;br /&gt;
&lt;br /&gt;
* [[Lint-wifi]]&lt;br /&gt;
* [[Mofi]]&lt;br /&gt;
* [[Camp-Wifi]]&lt;br /&gt;
&lt;br /&gt;
== External links ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/ WiFi on Linux]&lt;br /&gt;
&lt;br /&gt;
[[Category:Neo FreeRunner Hardware]]&lt;br /&gt;
[[Category:Networking]]&lt;/div&gt;</summary>
		<author><name>Michaelshiloh</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Neo_FreeRunner_Wifi</id>
		<title>Neo FreeRunner Wifi</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Neo_FreeRunner_Wifi"/>
				<updated>2008-10-08T23:24:26Z</updated>
		
		<summary type="html">&lt;p&gt;Michaelshiloh: /* iwconfig doesn't work in all cases */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|Neo FreeRunner Menu}}&lt;br /&gt;
&lt;br /&gt;
This page documents the [http://en.wikipedia.org/wiki/Wireless_networking wireless networking] solutions commonly known as [http://en.wikipedia.org/wiki/Wireless_LAN WLAN] or WiFi. &lt;br /&gt;
&lt;br /&gt;
There are other ways to enable wireless communications on the Neo, including [[Bluetooth]]. For Bluetooth solutions, see [[How to use bluetooth to transfer data between Neo and Desk-top]] and [[Manually using Bluetooth]].&lt;br /&gt;
&lt;br /&gt;
== Using the GUI on 2008.8 ==&lt;br /&gt;
&lt;br /&gt;
In the Settings application on Om 2008.8, there's a &amp;quot;WiFi&amp;quot; item. It should work fairly well in stable-updated 2008.8 (even with WPA2).&lt;br /&gt;
&lt;br /&gt;
If it says &amp;quot;WiFi unknown&amp;quot;, you can delete the /etc/volatives.cache file and reboot.  It should work after that.[http://docs.openmoko.org/trac/ticket/1734]  After connecting using the GUI, you may also need to run &amp;quot;udhcpc eth0&amp;quot; manually in the terminal to get DNS entries added to your resolv.conf.  You may also need to run &amp;quot;ifdown usb0&amp;quot; to remove the routing issue caused by having both interfaces up at the same time.  Some users have reported that 802.11g modulation needs to be enabled on APs to allow the FreeRunner to connect (The hardware is suppose to support 802.11b/g).&lt;br /&gt;
&lt;br /&gt;
Otherwise there's also [[lint-wifi]].  Refer to the section below, [[#Available Software|&amp;quot;Available Software&amp;quot;]] to find out what else might be available.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== How can I tell what Access Points (APs) are visible to me? ==&lt;br /&gt;
&lt;br /&gt;
You can connect to wireless networks through wireless [http://en.wikipedia.org/wiki/Access_point| access points]. If you want to know the names of all the access points that are currently visible to you, you can perform a scan with this command:&lt;br /&gt;
&lt;br /&gt;
 root@om-gta02:~# '''iwlist eth0 scan'''&lt;br /&gt;
&lt;br /&gt;
If anything is visible you will get a list that looks something like this:&lt;br /&gt;
&lt;br /&gt;
 eth0      Scan completed :&lt;br /&gt;
           Cell 01 - Address: 00:16:B6:DE:77:58&lt;br /&gt;
                     ESSID:&amp;quot;StarvinMarvin&amp;quot;&lt;br /&gt;
                     Mode:Master&lt;br /&gt;
                     Frequency:2.437 GHz (Channel 6)&lt;br /&gt;
                     Quality=9/94  Signal level=-86 dBm  Noise level=-95 dBm&lt;br /&gt;
                     Encryption key:on&lt;br /&gt;
                     Extra:bcn_int=100&lt;br /&gt;
                     Extra:wpa_ie=dd180050f20101000050f20201000050f20201000050f2020000&lt;br /&gt;
           Cell 02 - Address: 00:21:29:AA:10:97&lt;br /&gt;
                     ESSID:&amp;quot;CandT Network&amp;quot;&lt;br /&gt;
                     Mode:Master&lt;br /&gt;
                     Frequency:2.437 GHz (Channel 6)&lt;br /&gt;
                     Quality=39/94  Signal level=-56 dBm  Noise level=-95 dBm&lt;br /&gt;
                     Encryption key:on&lt;br /&gt;
                     Extra:bcn_int=100&lt;br /&gt;
                     Extra:wpa_ie=dd1c0050f20101000050f20202000050f2040050f20201000050f2020000&lt;br /&gt;
                     Extra:rsn_ie=30180100000fac020200000fac04000fac020100000fac020000&lt;br /&gt;
           Cell 03 - Address: 00:14:95:1B:8E:B9&lt;br /&gt;
                     ESSID:&amp;quot;2WIRE852&amp;quot;&lt;br /&gt;
                     Mode:Master&lt;br /&gt;
                     Frequency:2.437 GHz (Channel 6)&lt;br /&gt;
                     Quality=5/94  Signal level=-90 dBm  Noise level=-95 dBm&lt;br /&gt;
                     Encryption key:on&lt;br /&gt;
                     Extra:bcn_int=100&lt;br /&gt;
           Cell 04 - Address: 00:E0:98:52:3D:78&lt;br /&gt;
                     ESSID:&amp;quot;smith&amp;quot;&lt;br /&gt;
                     Mode:Master&lt;br /&gt;
                     Frequency:2.437 GHz (Channel 6)&lt;br /&gt;
                     Quality=36/94  Signal level=-59 dBm  Noise level=-95 dBm&lt;br /&gt;
                     Encryption key:on&lt;br /&gt;
                     Extra:bcn_int=100&lt;br /&gt;
&lt;br /&gt;
If you want to connect to an unsecured network run:&lt;br /&gt;
  &lt;br /&gt;
  udhcpc  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== WPA ==&lt;br /&gt;
&lt;br /&gt;
[http://en.wikipedia.org/wiki/Wi-Fi_Protected_Access  WPA] is an encryption method for securing your wireless network.&lt;br /&gt;
&lt;br /&gt;
=== Using wpa_supplicant manually ===&lt;br /&gt;
&lt;br /&gt;
Create and edit a suitable [[GTA02_WLAN#Sample_wpa_supplicant.conf|/etc/wpa_supplicant/wpa_supplicant.conf]].&lt;br /&gt;
&lt;br /&gt;
Bring up your wireless connection: &lt;br /&gt;
&lt;br /&gt;
 root@om-gta02:~# ifup eth0&lt;br /&gt;
 root@om-gta02:~# wpa_supplicant -ieth0 -c/etc/wpa_supplicant/wpa_supplicant.conf -B&lt;br /&gt;
 root@om-gta02:~# udhcpc eth0&lt;br /&gt;
&lt;br /&gt;
=== Using WPA and /etc/network/interfaces ===&lt;br /&gt;
&lt;br /&gt;
Once you have a [[GTA02_WLAN#Sample_wpa_supplicant.conf|/etc/wpa_supplicant/wpa_supplicant.conf]] file, add a line under the eth0 entry in /etc/network/interfaces:&lt;br /&gt;
&lt;br /&gt;
 iface eth0 inet dhcp&lt;br /&gt;
    wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf&lt;br /&gt;
&lt;br /&gt;
Save your changes and run:&lt;br /&gt;
  # ifdown eth0 &amp;amp;&amp;amp; ifup eth0&lt;br /&gt;
&lt;br /&gt;
You'll get a lot of messages, like &amp;lt;tt&amp;gt;ioctl[SIOCSIWENCODEEXT]: Operation not supported&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;sed: unrecognized option `--quiet'&amp;lt;/tt&amp;gt;, they appear to be harmless. The &amp;quot;--quiet&amp;quot; error message can be avoided by replacing &amp;quot;sed --quiet&amp;quot; with &amp;quot;sed -n&amp;quot; in /etc/wpa_supplicant/*.sh&lt;br /&gt;
&lt;br /&gt;
=== wpa_supplicant.conf ===&lt;br /&gt;
&lt;br /&gt;
==== wpa_supplicant.conf explained ====&lt;br /&gt;
The highest priority is tried first then falls back to the next highest number.&lt;br /&gt;
&lt;br /&gt;
priority=100  1st  &amp;lt;br&amp;gt;&lt;br /&gt;
then&amp;lt;br&amp;gt;&lt;br /&gt;
priority=99  &amp;lt;br&amp;gt; &lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
&lt;br /&gt;
# Simple case: WPA-PSK, PSK as an ASCII passphrase, allow all valid ciphers&lt;br /&gt;
network={&lt;br /&gt;
	ssid=&amp;quot;AP_ESSID&amp;quot;&lt;br /&gt;
	psk=&amp;quot;presharedkey&amp;quot;&lt;br /&gt;
	priority=5&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#try open AP regardless of its SSID.&lt;br /&gt;
# change root password before you go roaming around it could prove dangerous&lt;br /&gt;
network={&lt;br /&gt;
	key_mgmt=NONE&lt;br /&gt;
priority=1  #try any open AP last&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A more in depth explanation can be found here:&amp;lt;br&amp;gt; &lt;br /&gt;
http://hostap.epitest.fi/gitweb/gitweb.cgi?p=hostap.git;a=blob_plain;f=wpa_supplicant/wpa_supplicant.conf&lt;br /&gt;
&lt;br /&gt;
==== Sample wpa_supplicant.conf ====&lt;br /&gt;
&lt;br /&gt;
 ctrl_interface=/var/run/wpa_supplicant&lt;br /&gt;
 ctrl_interface_group=0&lt;br /&gt;
 eapol_version=1&lt;br /&gt;
 ap_scan=1&lt;br /&gt;
 fast_reauth=1 &lt;br /&gt;
 # WPA2:&lt;br /&gt;
 network={&lt;br /&gt;
        ssid=&amp;quot;your ssid&amp;quot;&lt;br /&gt;
        scan_ssid=1&lt;br /&gt;
        proto=RSN&lt;br /&gt;
        key_mgmt=WPA-PSK&lt;br /&gt;
        pairwise=CCMP TKIP&lt;br /&gt;
        group=TKIP CCMP&lt;br /&gt;
        psk=&amp;quot;secret key&amp;quot;&lt;br /&gt;
        priority=50&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 # WPA:&lt;br /&gt;
 network={&lt;br /&gt;
       ssid=&amp;quot;your_ssid&amp;quot;&lt;br /&gt;
       proto=WPA&lt;br /&gt;
       key_mgmt=WPA-PSK&lt;br /&gt;
       pairwise=TKIP&lt;br /&gt;
       group=TKIP&lt;br /&gt;
       scan_ssid=1&lt;br /&gt;
       psk=&amp;quot;secret key&amp;quot;&lt;br /&gt;
       priority=10&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 # WEP:&lt;br /&gt;
 network={&lt;br /&gt;
      ssid=&amp;quot;your_ssid&amp;quot;&lt;br /&gt;
      scan_ssid=1&lt;br /&gt;
      key_mgmt=NONE&lt;br /&gt;
      wep_tx_keyidx=0&lt;br /&gt;
      wep_key0=your_hex_key&lt;br /&gt;
      priority=8&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 # Open:&lt;br /&gt;
 network={&lt;br /&gt;
      ssid=&amp;quot;your ssid&amp;quot;&lt;br /&gt;
      key_mgmt=NONE&lt;br /&gt;
      priority=5&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== Other sample wpa_supplicant.conf files ====&lt;br /&gt;
&lt;br /&gt;
Tom Yates documents his success [http://www.teaparty.net/technotes/openmoko-2.html#Wifi here]&lt;br /&gt;
&lt;br /&gt;
== WEP ==&lt;br /&gt;
&lt;br /&gt;
[http://en.wikipedia.org/wiki/Wired_Equivalent_Privacy WEP] is an encryption method for securing your wireless network. WEP is generally considered to be weak, you should use WPA instead if possible.&lt;br /&gt;
&lt;br /&gt;
=== Using iwconfig manually ===&lt;br /&gt;
&lt;br /&gt;
Note that for WEP our iwconfig requires a more specific format than generic iwconfig.&lt;br /&gt;
&lt;br /&gt;
The canonical way of running iwconfig for WEP would be something like this:&lt;br /&gt;
&lt;br /&gt;
# iwconfig eth0 key A4BEB3B8EC essid xyz&lt;br /&gt;
&lt;br /&gt;
Two things are important here:&lt;br /&gt;
&lt;br /&gt;
* the key must be in HEX. iwconfig will not do anything useful if the key is given as a string.   [http://www.powerdog.com/wepkey.cgi Here] is a handy ASCII string to HEX converter.&lt;br /&gt;
&lt;br /&gt;
* the ESSID must follow the key.&lt;br /&gt;
&lt;br /&gt;
If an incorrect key was set, please stop all activity on the interface for at least two minutes (i.e., killall udhcpc and ifconfig eth0 down), then issue the correct iwconfig command and retry.&lt;br /&gt;
&lt;br /&gt;
=== Using WEP and /etc/network/interfaces ===&lt;br /&gt;
  iface eth0 inet dhcp&lt;br /&gt;
    wireless-key my_wep_key&lt;br /&gt;
    wireless-essid my_essid&lt;br /&gt;
&lt;br /&gt;
 iface eth0 inet dhcp&lt;br /&gt;
    wpa-wep-key0 my_wep_key&lt;br /&gt;
    wpa-key-mgmt NONE&lt;br /&gt;
    wpa-ssid my_essid&lt;br /&gt;
&lt;br /&gt;
Save your changes and run:&lt;br /&gt;
  # ifdown eth0 &amp;amp;&amp;amp; ifup eth0&lt;br /&gt;
&lt;br /&gt;
== Known Issues ==&lt;br /&gt;
&lt;br /&gt;
=== GUI doesn't work in all cases ===&lt;br /&gt;
&lt;br /&gt;
The GUI seems to have some issues that prevent it from working in all cases. &lt;br /&gt;
&lt;br /&gt;
If a Wi-Fi connection can not be made with the GUI, open a shell and use&lt;br /&gt;
[[Neo_FreeRunner_Wifi#Using_iwconfig_manually|iwconfig manually]].&lt;br /&gt;
&lt;br /&gt;
=== iwconfig doesn't work in all cases ===&lt;br /&gt;
&lt;br /&gt;
Note that for some reason our iwconfig requires a more constrained format than the generic iwconfig. See&lt;br /&gt;
[[Neo_FreeRunner_Wifi#Using_iwconfig_manually| using iwconfig manually]].&lt;br /&gt;
&lt;br /&gt;
=== Anecdotal solutions ===&lt;br /&gt;
&lt;br /&gt;
These solutions worked for some people:&lt;br /&gt;
&lt;br /&gt;
==== Disable power management ====&lt;br /&gt;
&lt;br /&gt;
Some APs apparently get upset by power managed devices, and the Freerunner enables power management of the wifi by default to preserve battery. One user's wrt54g certainly gets upset from time to time if he connect with the FreeRunner, sometimes refusing to talk to _anything_ over wifi afterwards until rebooted.&lt;br /&gt;
&lt;br /&gt;
==== Modified script ====&lt;br /&gt;
&lt;br /&gt;
&amp;quot;I changed the script a little:&lt;br /&gt;
&lt;br /&gt;
 Exec=xterm -e &amp;quot;ifconfig eth0 down \&lt;br /&gt;
 iwconfig eth0 txpower off channel 0 \&lt;br /&gt;
 while killall wpa_supplicant; do echo 'Killing wpa_sup'; done \&lt;br /&gt;
 killall udhcpc \&lt;br /&gt;
 wpa_supplicant -i eth0 -c /etc/wpa_supplicant/wpa_supplicant.conf -D wext -B \&lt;br /&gt;
 sleep 10; udhcpc&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Now it is working every time.&lt;br /&gt;
I am using 2008.latest (081004) and a linksys WAP54G accesspoint,&lt;br /&gt;
&lt;br /&gt;
==== Use a different channel ====&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Could not get it to work properly on channel 11, so I set my accesspoint to channel 1.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Wake up from wireless (wow)==&lt;br /&gt;
&lt;br /&gt;
Wi-Fi module constantly drain currents after module power up, for wi-fi SIP phone or some application need long standby time, will need wake up from wireless function for power saving. There is a sleep mode that Ar6k supported for wake up from wireless.&lt;br /&gt;
&lt;br /&gt;
 http://svn.openmoko.org/trunk/src/target/AR6kSDK.build_sw.18/host/tools/wmiconfig&lt;br /&gt;
&lt;br /&gt;
 export ATH_CROSS_COMPILE_TYPE=arm-angstrom-linux-gnueabi-&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
Debian package:&lt;br /&gt;
&lt;br /&gt;
 wget http://meshy.org/~ato/debian/pool/main/w/wmiconfig/wmiconfig_0.0.18-1_armel.deb&lt;br /&gt;
 dpkg -i wmiconfig_0.0.18-1_armel.deb&lt;br /&gt;
&lt;br /&gt;
Basically, it's achieved via wmiconfig tool to issue IOCTL if we want&lt;br /&gt;
ar6k wifi module to generate interrupt to host controller. The procedure&lt;br /&gt;
to enable wakeup-on-wireless(wow) is listed here:&lt;br /&gt;
&lt;br /&gt;
 1. wmiconfig --sethostmode asleep /* to tell ar6k what host's current is */&lt;br /&gt;
 2. wmiconfig --setwowmode enable /* enable wow function */&lt;br /&gt;
 3. wmiconfig --addpattern 0 1 33 01 ff /* add packet filter pattern, this is the ICMP filter pattern */&lt;br /&gt;
 4. apm -s&lt;br /&gt;
 5. ping IP_of_Neo&lt;br /&gt;
 6. The GPIO1 pin would be pulled up. The system would resume then.&lt;br /&gt;
 7. wmiconfig --sethostmode awake /* The firmware of ar6k will pull low the GPIO1 pin */&lt;br /&gt;
&lt;br /&gt;
--addwowpattern &amp;lt;list-id&amp;gt; &amp;lt;pattern-size&amp;gt; &amp;lt;pattern-offset&amp;gt; &amp;lt;pattern&amp;gt; &amp;lt;pattern-mask&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here are some addwowpattern commands:&lt;br /&gt;
&lt;br /&gt;
Protocol type=IP=0800&lt;br /&gt;
Protocol type in IP header=ICMP=01&lt;br /&gt;
&lt;br /&gt;
 - To filter for IP packets(offset 22)&lt;br /&gt;
 wmiconfig --addwowpattern 0 2 22 0800 ffff&lt;br /&gt;
 - To filter for ICMP packets (offset 33)&lt;br /&gt;
 wmiconfig --addwowpattern 0 1 33 01 ff&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== A very ugly /etc/init.d/wlan startscript ==&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 #&lt;br /&gt;
 # wlan	This shell script starts and stops wlan.&lt;br /&gt;
 #&lt;br /&gt;
 # processname: wlan&lt;br /&gt;
 &lt;br /&gt;
 # Source function library.&lt;br /&gt;
 #. /etc/rc.d/init.d/functions&lt;br /&gt;
 # &amp;quot;written&amp;quot; by HdR&lt;br /&gt;
 &lt;br /&gt;
 RETVAL=0&lt;br /&gt;
 prog=&amp;quot;wlan&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # test -f /etc/default/$prog &amp;amp;&amp;amp; . /etc/default/$prog&lt;br /&gt;
 &lt;br /&gt;
 start() {&lt;br /&gt;
 	echo -n &amp;quot;Starting $prog: &amp;quot;&lt;br /&gt;
 	ifconfig eth0 up&lt;br /&gt;
 	wpa_supplicant -ieth0 -c/etc/wpa_supplicant/wpa_supplicant.conf -B&lt;br /&gt;
 	sleep 10&lt;br /&gt;
 	udhcpc eth0&lt;br /&gt;
 	RETVAL=$?&lt;br /&gt;
 	return $RETVAL&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 stop() {&lt;br /&gt;
 	# Stop daemons.&lt;br /&gt;
 	echo -n &amp;quot;Shutting down $prog: &amp;quot;&lt;br /&gt;
         killall wpa_supplicant&lt;br /&gt;
 	ifconfig eth0 down&lt;br /&gt;
 #        killproc gpsd&lt;br /&gt;
 	RETVAL=$?&lt;br /&gt;
 	return $RETVAL&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 # See how we were called.&lt;br /&gt;
 case &amp;quot;$1&amp;quot; in&lt;br /&gt;
   start)&lt;br /&gt;
 	start&lt;br /&gt;
 	;;&lt;br /&gt;
   stop)&lt;br /&gt;
 	stop&lt;br /&gt;
 	;;&lt;br /&gt;
   restart|reload)&lt;br /&gt;
 	stop&lt;br /&gt;
 	start&lt;br /&gt;
 	RETVAL=$?&lt;br /&gt;
 	;;&lt;br /&gt;
   *)&lt;br /&gt;
 	echo &amp;quot;Usage: $0 {start|stop|restart}&amp;quot;&lt;br /&gt;
 	exit 1&lt;br /&gt;
 esac&lt;br /&gt;
 &lt;br /&gt;
 exit $RETVAL&lt;br /&gt;
&lt;br /&gt;
Note: Don't forget to make this script executable with &amp;quot;chmod +x &amp;lt;filename&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Route internet connection through Wifi rather than USB ==&lt;br /&gt;
&lt;br /&gt;
Wifi is faster than USB, so it is a good idea to tell the FreeRunner to connect through it. Put the following in /etc/network/interfaces under eth0:&lt;br /&gt;
&lt;br /&gt;
up route del default gw 192.168.0.200&lt;br /&gt;
&lt;br /&gt;
This will remove your computer as the default gateway and use the  wireless one when the interface is brought up. User nickd reports that sometimes it fails so he has had to put it in twice.&lt;br /&gt;
&lt;br /&gt;
== ssh into FR over WiFi ==&lt;br /&gt;
dropbear, the ssh server, is configured to listen on the USB interface only. Wireless interfaces like wlan or bluetooth are disabled for security reasons (empty root password).&lt;br /&gt;
&lt;br /&gt;
If you want to enable ssh over WiFi, change the /etc/default/dropbear from:&lt;br /&gt;
&lt;br /&gt;
  DROPBEAR_PORT=`ip addr list usb0 | awk 'BEGIN { FS=&amp;quot;[ /]+&amp;quot; } /inet / { print  $3 }'`:22&lt;br /&gt;
&lt;br /&gt;
(which actually only prepends the usb0 ip address before the :22)&lt;br /&gt;
&lt;br /&gt;
into:&lt;br /&gt;
&lt;br /&gt;
  DROPBEAR_PORT=22&lt;br /&gt;
&lt;br /&gt;
* Be careful with this config file since it can close the only door into your phone.&lt;br /&gt;
&lt;br /&gt;
* Set a root password!&lt;br /&gt;
&lt;br /&gt;
== Available Software ==&lt;br /&gt;
&lt;br /&gt;
Programs in development providing GUI interfaces to administer WiFi connections:&lt;br /&gt;
&lt;br /&gt;
* [[Lint-wifi]]&lt;br /&gt;
* [[Mofi]]&lt;br /&gt;
* [[Camp-Wifi]]&lt;br /&gt;
&lt;br /&gt;
== External links ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/ WiFi on Linux]&lt;br /&gt;
&lt;br /&gt;
[[Category:Neo FreeRunner Hardware]]&lt;br /&gt;
[[Category:Networking]]&lt;/div&gt;</summary>
		<author><name>Michaelshiloh</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Neo_FreeRunner_Wifi</id>
		<title>Neo FreeRunner Wifi</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Neo_FreeRunner_Wifi"/>
				<updated>2008-10-08T23:24:05Z</updated>
		
		<summary type="html">&lt;p&gt;Michaelshiloh: /* GUI doesn't work in all cases */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|Neo FreeRunner Menu}}&lt;br /&gt;
&lt;br /&gt;
This page documents the [http://en.wikipedia.org/wiki/Wireless_networking wireless networking] solutions commonly known as [http://en.wikipedia.org/wiki/Wireless_LAN WLAN] or WiFi. &lt;br /&gt;
&lt;br /&gt;
There are other ways to enable wireless communications on the Neo, including [[Bluetooth]]. For Bluetooth solutions, see [[How to use bluetooth to transfer data between Neo and Desk-top]] and [[Manually using Bluetooth]].&lt;br /&gt;
&lt;br /&gt;
== Using the GUI on 2008.8 ==&lt;br /&gt;
&lt;br /&gt;
In the Settings application on Om 2008.8, there's a &amp;quot;WiFi&amp;quot; item. It should work fairly well in stable-updated 2008.8 (even with WPA2).&lt;br /&gt;
&lt;br /&gt;
If it says &amp;quot;WiFi unknown&amp;quot;, you can delete the /etc/volatives.cache file and reboot.  It should work after that.[http://docs.openmoko.org/trac/ticket/1734]  After connecting using the GUI, you may also need to run &amp;quot;udhcpc eth0&amp;quot; manually in the terminal to get DNS entries added to your resolv.conf.  You may also need to run &amp;quot;ifdown usb0&amp;quot; to remove the routing issue caused by having both interfaces up at the same time.  Some users have reported that 802.11g modulation needs to be enabled on APs to allow the FreeRunner to connect (The hardware is suppose to support 802.11b/g).&lt;br /&gt;
&lt;br /&gt;
Otherwise there's also [[lint-wifi]].  Refer to the section below, [[#Available Software|&amp;quot;Available Software&amp;quot;]] to find out what else might be available.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== How can I tell what Access Points (APs) are visible to me? ==&lt;br /&gt;
&lt;br /&gt;
You can connect to wireless networks through wireless [http://en.wikipedia.org/wiki/Access_point| access points]. If you want to know the names of all the access points that are currently visible to you, you can perform a scan with this command:&lt;br /&gt;
&lt;br /&gt;
 root@om-gta02:~# '''iwlist eth0 scan'''&lt;br /&gt;
&lt;br /&gt;
If anything is visible you will get a list that looks something like this:&lt;br /&gt;
&lt;br /&gt;
 eth0      Scan completed :&lt;br /&gt;
           Cell 01 - Address: 00:16:B6:DE:77:58&lt;br /&gt;
                     ESSID:&amp;quot;StarvinMarvin&amp;quot;&lt;br /&gt;
                     Mode:Master&lt;br /&gt;
                     Frequency:2.437 GHz (Channel 6)&lt;br /&gt;
                     Quality=9/94  Signal level=-86 dBm  Noise level=-95 dBm&lt;br /&gt;
                     Encryption key:on&lt;br /&gt;
                     Extra:bcn_int=100&lt;br /&gt;
                     Extra:wpa_ie=dd180050f20101000050f20201000050f20201000050f2020000&lt;br /&gt;
           Cell 02 - Address: 00:21:29:AA:10:97&lt;br /&gt;
                     ESSID:&amp;quot;CandT Network&amp;quot;&lt;br /&gt;
                     Mode:Master&lt;br /&gt;
                     Frequency:2.437 GHz (Channel 6)&lt;br /&gt;
                     Quality=39/94  Signal level=-56 dBm  Noise level=-95 dBm&lt;br /&gt;
                     Encryption key:on&lt;br /&gt;
                     Extra:bcn_int=100&lt;br /&gt;
                     Extra:wpa_ie=dd1c0050f20101000050f20202000050f2040050f20201000050f2020000&lt;br /&gt;
                     Extra:rsn_ie=30180100000fac020200000fac04000fac020100000fac020000&lt;br /&gt;
           Cell 03 - Address: 00:14:95:1B:8E:B9&lt;br /&gt;
                     ESSID:&amp;quot;2WIRE852&amp;quot;&lt;br /&gt;
                     Mode:Master&lt;br /&gt;
                     Frequency:2.437 GHz (Channel 6)&lt;br /&gt;
                     Quality=5/94  Signal level=-90 dBm  Noise level=-95 dBm&lt;br /&gt;
                     Encryption key:on&lt;br /&gt;
                     Extra:bcn_int=100&lt;br /&gt;
           Cell 04 - Address: 00:E0:98:52:3D:78&lt;br /&gt;
                     ESSID:&amp;quot;smith&amp;quot;&lt;br /&gt;
                     Mode:Master&lt;br /&gt;
                     Frequency:2.437 GHz (Channel 6)&lt;br /&gt;
                     Quality=36/94  Signal level=-59 dBm  Noise level=-95 dBm&lt;br /&gt;
                     Encryption key:on&lt;br /&gt;
                     Extra:bcn_int=100&lt;br /&gt;
&lt;br /&gt;
If you want to connect to an unsecured network run:&lt;br /&gt;
  &lt;br /&gt;
  udhcpc  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== WPA ==&lt;br /&gt;
&lt;br /&gt;
[http://en.wikipedia.org/wiki/Wi-Fi_Protected_Access  WPA] is an encryption method for securing your wireless network.&lt;br /&gt;
&lt;br /&gt;
=== Using wpa_supplicant manually ===&lt;br /&gt;
&lt;br /&gt;
Create and edit a suitable [[GTA02_WLAN#Sample_wpa_supplicant.conf|/etc/wpa_supplicant/wpa_supplicant.conf]].&lt;br /&gt;
&lt;br /&gt;
Bring up your wireless connection: &lt;br /&gt;
&lt;br /&gt;
 root@om-gta02:~# ifup eth0&lt;br /&gt;
 root@om-gta02:~# wpa_supplicant -ieth0 -c/etc/wpa_supplicant/wpa_supplicant.conf -B&lt;br /&gt;
 root@om-gta02:~# udhcpc eth0&lt;br /&gt;
&lt;br /&gt;
=== Using WPA and /etc/network/interfaces ===&lt;br /&gt;
&lt;br /&gt;
Once you have a [[GTA02_WLAN#Sample_wpa_supplicant.conf|/etc/wpa_supplicant/wpa_supplicant.conf]] file, add a line under the eth0 entry in /etc/network/interfaces:&lt;br /&gt;
&lt;br /&gt;
 iface eth0 inet dhcp&lt;br /&gt;
    wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf&lt;br /&gt;
&lt;br /&gt;
Save your changes and run:&lt;br /&gt;
  # ifdown eth0 &amp;amp;&amp;amp; ifup eth0&lt;br /&gt;
&lt;br /&gt;
You'll get a lot of messages, like &amp;lt;tt&amp;gt;ioctl[SIOCSIWENCODEEXT]: Operation not supported&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;sed: unrecognized option `--quiet'&amp;lt;/tt&amp;gt;, they appear to be harmless. The &amp;quot;--quiet&amp;quot; error message can be avoided by replacing &amp;quot;sed --quiet&amp;quot; with &amp;quot;sed -n&amp;quot; in /etc/wpa_supplicant/*.sh&lt;br /&gt;
&lt;br /&gt;
=== wpa_supplicant.conf ===&lt;br /&gt;
&lt;br /&gt;
==== wpa_supplicant.conf explained ====&lt;br /&gt;
The highest priority is tried first then falls back to the next highest number.&lt;br /&gt;
&lt;br /&gt;
priority=100  1st  &amp;lt;br&amp;gt;&lt;br /&gt;
then&amp;lt;br&amp;gt;&lt;br /&gt;
priority=99  &amp;lt;br&amp;gt; &lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
&lt;br /&gt;
# Simple case: WPA-PSK, PSK as an ASCII passphrase, allow all valid ciphers&lt;br /&gt;
network={&lt;br /&gt;
	ssid=&amp;quot;AP_ESSID&amp;quot;&lt;br /&gt;
	psk=&amp;quot;presharedkey&amp;quot;&lt;br /&gt;
	priority=5&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#try open AP regardless of its SSID.&lt;br /&gt;
# change root password before you go roaming around it could prove dangerous&lt;br /&gt;
network={&lt;br /&gt;
	key_mgmt=NONE&lt;br /&gt;
priority=1  #try any open AP last&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A more in depth explanation can be found here:&amp;lt;br&amp;gt; &lt;br /&gt;
http://hostap.epitest.fi/gitweb/gitweb.cgi?p=hostap.git;a=blob_plain;f=wpa_supplicant/wpa_supplicant.conf&lt;br /&gt;
&lt;br /&gt;
==== Sample wpa_supplicant.conf ====&lt;br /&gt;
&lt;br /&gt;
 ctrl_interface=/var/run/wpa_supplicant&lt;br /&gt;
 ctrl_interface_group=0&lt;br /&gt;
 eapol_version=1&lt;br /&gt;
 ap_scan=1&lt;br /&gt;
 fast_reauth=1 &lt;br /&gt;
 # WPA2:&lt;br /&gt;
 network={&lt;br /&gt;
        ssid=&amp;quot;your ssid&amp;quot;&lt;br /&gt;
        scan_ssid=1&lt;br /&gt;
        proto=RSN&lt;br /&gt;
        key_mgmt=WPA-PSK&lt;br /&gt;
        pairwise=CCMP TKIP&lt;br /&gt;
        group=TKIP CCMP&lt;br /&gt;
        psk=&amp;quot;secret key&amp;quot;&lt;br /&gt;
        priority=50&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 # WPA:&lt;br /&gt;
 network={&lt;br /&gt;
       ssid=&amp;quot;your_ssid&amp;quot;&lt;br /&gt;
       proto=WPA&lt;br /&gt;
       key_mgmt=WPA-PSK&lt;br /&gt;
       pairwise=TKIP&lt;br /&gt;
       group=TKIP&lt;br /&gt;
       scan_ssid=1&lt;br /&gt;
       psk=&amp;quot;secret key&amp;quot;&lt;br /&gt;
       priority=10&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 # WEP:&lt;br /&gt;
 network={&lt;br /&gt;
      ssid=&amp;quot;your_ssid&amp;quot;&lt;br /&gt;
      scan_ssid=1&lt;br /&gt;
      key_mgmt=NONE&lt;br /&gt;
      wep_tx_keyidx=0&lt;br /&gt;
      wep_key0=your_hex_key&lt;br /&gt;
      priority=8&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 # Open:&lt;br /&gt;
 network={&lt;br /&gt;
      ssid=&amp;quot;your ssid&amp;quot;&lt;br /&gt;
      key_mgmt=NONE&lt;br /&gt;
      priority=5&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== Other sample wpa_supplicant.conf files ====&lt;br /&gt;
&lt;br /&gt;
Tom Yates documents his success [http://www.teaparty.net/technotes/openmoko-2.html#Wifi here]&lt;br /&gt;
&lt;br /&gt;
== WEP ==&lt;br /&gt;
&lt;br /&gt;
[http://en.wikipedia.org/wiki/Wired_Equivalent_Privacy WEP] is an encryption method for securing your wireless network. WEP is generally considered to be weak, you should use WPA instead if possible.&lt;br /&gt;
&lt;br /&gt;
=== Using iwconfig manually ===&lt;br /&gt;
&lt;br /&gt;
Note that for WEP our iwconfig requires a more specific format than generic iwconfig.&lt;br /&gt;
&lt;br /&gt;
The canonical way of running iwconfig for WEP would be something like this:&lt;br /&gt;
&lt;br /&gt;
# iwconfig eth0 key A4BEB3B8EC essid xyz&lt;br /&gt;
&lt;br /&gt;
Two things are important here:&lt;br /&gt;
&lt;br /&gt;
* the key must be in HEX. iwconfig will not do anything useful if the key is given as a string.   [http://www.powerdog.com/wepkey.cgi Here] is a handy ASCII string to HEX converter.&lt;br /&gt;
&lt;br /&gt;
* the ESSID must follow the key.&lt;br /&gt;
&lt;br /&gt;
If an incorrect key was set, please stop all activity on the interface for at least two minutes (i.e., killall udhcpc and ifconfig eth0 down), then issue the correct iwconfig command and retry.&lt;br /&gt;
&lt;br /&gt;
=== Using WEP and /etc/network/interfaces ===&lt;br /&gt;
  iface eth0 inet dhcp&lt;br /&gt;
    wireless-key my_wep_key&lt;br /&gt;
    wireless-essid my_essid&lt;br /&gt;
&lt;br /&gt;
 iface eth0 inet dhcp&lt;br /&gt;
    wpa-wep-key0 my_wep_key&lt;br /&gt;
    wpa-key-mgmt NONE&lt;br /&gt;
    wpa-ssid my_essid&lt;br /&gt;
&lt;br /&gt;
Save your changes and run:&lt;br /&gt;
  # ifdown eth0 &amp;amp;&amp;amp; ifup eth0&lt;br /&gt;
&lt;br /&gt;
== Known Issues ==&lt;br /&gt;
&lt;br /&gt;
=== GUI doesn't work in all cases ===&lt;br /&gt;
&lt;br /&gt;
The GUI seems to have some issues that prevent it from working in all cases. &lt;br /&gt;
&lt;br /&gt;
If a Wi-Fi connection can not be made with the GUI, open a shell and use&lt;br /&gt;
[[Neo_FreeRunner_Wifi#Using_iwconfig_manually|iwconfig manually]].&lt;br /&gt;
&lt;br /&gt;
=== iwconfig doesn't work in all cases ===&lt;br /&gt;
&lt;br /&gt;
Note that for some reason our iwconfig requires a more constrained format than the generic iwconfig. See&lt;br /&gt;
[[Neo_FreeRunner_Wifi#Using_wpa_supplicant_manually| using iwconfig manually]].&lt;br /&gt;
&lt;br /&gt;
=== Anecdotal solutions ===&lt;br /&gt;
&lt;br /&gt;
These solutions worked for some people:&lt;br /&gt;
&lt;br /&gt;
==== Disable power management ====&lt;br /&gt;
&lt;br /&gt;
Some APs apparently get upset by power managed devices, and the Freerunner enables power management of the wifi by default to preserve battery. One user's wrt54g certainly gets upset from time to time if he connect with the FreeRunner, sometimes refusing to talk to _anything_ over wifi afterwards until rebooted.&lt;br /&gt;
&lt;br /&gt;
==== Modified script ====&lt;br /&gt;
&lt;br /&gt;
&amp;quot;I changed the script a little:&lt;br /&gt;
&lt;br /&gt;
 Exec=xterm -e &amp;quot;ifconfig eth0 down \&lt;br /&gt;
 iwconfig eth0 txpower off channel 0 \&lt;br /&gt;
 while killall wpa_supplicant; do echo 'Killing wpa_sup'; done \&lt;br /&gt;
 killall udhcpc \&lt;br /&gt;
 wpa_supplicant -i eth0 -c /etc/wpa_supplicant/wpa_supplicant.conf -D wext -B \&lt;br /&gt;
 sleep 10; udhcpc&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Now it is working every time.&lt;br /&gt;
I am using 2008.latest (081004) and a linksys WAP54G accesspoint,&lt;br /&gt;
&lt;br /&gt;
==== Use a different channel ====&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Could not get it to work properly on channel 11, so I set my accesspoint to channel 1.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Wake up from wireless (wow)==&lt;br /&gt;
&lt;br /&gt;
Wi-Fi module constantly drain currents after module power up, for wi-fi SIP phone or some application need long standby time, will need wake up from wireless function for power saving. There is a sleep mode that Ar6k supported for wake up from wireless.&lt;br /&gt;
&lt;br /&gt;
 http://svn.openmoko.org/trunk/src/target/AR6kSDK.build_sw.18/host/tools/wmiconfig&lt;br /&gt;
&lt;br /&gt;
 export ATH_CROSS_COMPILE_TYPE=arm-angstrom-linux-gnueabi-&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
Debian package:&lt;br /&gt;
&lt;br /&gt;
 wget http://meshy.org/~ato/debian/pool/main/w/wmiconfig/wmiconfig_0.0.18-1_armel.deb&lt;br /&gt;
 dpkg -i wmiconfig_0.0.18-1_armel.deb&lt;br /&gt;
&lt;br /&gt;
Basically, it's achieved via wmiconfig tool to issue IOCTL if we want&lt;br /&gt;
ar6k wifi module to generate interrupt to host controller. The procedure&lt;br /&gt;
to enable wakeup-on-wireless(wow) is listed here:&lt;br /&gt;
&lt;br /&gt;
 1. wmiconfig --sethostmode asleep /* to tell ar6k what host's current is */&lt;br /&gt;
 2. wmiconfig --setwowmode enable /* enable wow function */&lt;br /&gt;
 3. wmiconfig --addpattern 0 1 33 01 ff /* add packet filter pattern, this is the ICMP filter pattern */&lt;br /&gt;
 4. apm -s&lt;br /&gt;
 5. ping IP_of_Neo&lt;br /&gt;
 6. The GPIO1 pin would be pulled up. The system would resume then.&lt;br /&gt;
 7. wmiconfig --sethostmode awake /* The firmware of ar6k will pull low the GPIO1 pin */&lt;br /&gt;
&lt;br /&gt;
--addwowpattern &amp;lt;list-id&amp;gt; &amp;lt;pattern-size&amp;gt; &amp;lt;pattern-offset&amp;gt; &amp;lt;pattern&amp;gt; &amp;lt;pattern-mask&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here are some addwowpattern commands:&lt;br /&gt;
&lt;br /&gt;
Protocol type=IP=0800&lt;br /&gt;
Protocol type in IP header=ICMP=01&lt;br /&gt;
&lt;br /&gt;
 - To filter for IP packets(offset 22)&lt;br /&gt;
 wmiconfig --addwowpattern 0 2 22 0800 ffff&lt;br /&gt;
 - To filter for ICMP packets (offset 33)&lt;br /&gt;
 wmiconfig --addwowpattern 0 1 33 01 ff&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== A very ugly /etc/init.d/wlan startscript ==&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 #&lt;br /&gt;
 # wlan	This shell script starts and stops wlan.&lt;br /&gt;
 #&lt;br /&gt;
 # processname: wlan&lt;br /&gt;
 &lt;br /&gt;
 # Source function library.&lt;br /&gt;
 #. /etc/rc.d/init.d/functions&lt;br /&gt;
 # &amp;quot;written&amp;quot; by HdR&lt;br /&gt;
 &lt;br /&gt;
 RETVAL=0&lt;br /&gt;
 prog=&amp;quot;wlan&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # test -f /etc/default/$prog &amp;amp;&amp;amp; . /etc/default/$prog&lt;br /&gt;
 &lt;br /&gt;
 start() {&lt;br /&gt;
 	echo -n &amp;quot;Starting $prog: &amp;quot;&lt;br /&gt;
 	ifconfig eth0 up&lt;br /&gt;
 	wpa_supplicant -ieth0 -c/etc/wpa_supplicant/wpa_supplicant.conf -B&lt;br /&gt;
 	sleep 10&lt;br /&gt;
 	udhcpc eth0&lt;br /&gt;
 	RETVAL=$?&lt;br /&gt;
 	return $RETVAL&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 stop() {&lt;br /&gt;
 	# Stop daemons.&lt;br /&gt;
 	echo -n &amp;quot;Shutting down $prog: &amp;quot;&lt;br /&gt;
         killall wpa_supplicant&lt;br /&gt;
 	ifconfig eth0 down&lt;br /&gt;
 #        killproc gpsd&lt;br /&gt;
 	RETVAL=$?&lt;br /&gt;
 	return $RETVAL&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 # See how we were called.&lt;br /&gt;
 case &amp;quot;$1&amp;quot; in&lt;br /&gt;
   start)&lt;br /&gt;
 	start&lt;br /&gt;
 	;;&lt;br /&gt;
   stop)&lt;br /&gt;
 	stop&lt;br /&gt;
 	;;&lt;br /&gt;
   restart|reload)&lt;br /&gt;
 	stop&lt;br /&gt;
 	start&lt;br /&gt;
 	RETVAL=$?&lt;br /&gt;
 	;;&lt;br /&gt;
   *)&lt;br /&gt;
 	echo &amp;quot;Usage: $0 {start|stop|restart}&amp;quot;&lt;br /&gt;
 	exit 1&lt;br /&gt;
 esac&lt;br /&gt;
 &lt;br /&gt;
 exit $RETVAL&lt;br /&gt;
&lt;br /&gt;
Note: Don't forget to make this script executable with &amp;quot;chmod +x &amp;lt;filename&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Route internet connection through Wifi rather than USB ==&lt;br /&gt;
&lt;br /&gt;
Wifi is faster than USB, so it is a good idea to tell the FreeRunner to connect through it. Put the following in /etc/network/interfaces under eth0:&lt;br /&gt;
&lt;br /&gt;
up route del default gw 192.168.0.200&lt;br /&gt;
&lt;br /&gt;
This will remove your computer as the default gateway and use the  wireless one when the interface is brought up. User nickd reports that sometimes it fails so he has had to put it in twice.&lt;br /&gt;
&lt;br /&gt;
== ssh into FR over WiFi ==&lt;br /&gt;
dropbear, the ssh server, is configured to listen on the USB interface only. Wireless interfaces like wlan or bluetooth are disabled for security reasons (empty root password).&lt;br /&gt;
&lt;br /&gt;
If you want to enable ssh over WiFi, change the /etc/default/dropbear from:&lt;br /&gt;
&lt;br /&gt;
  DROPBEAR_PORT=`ip addr list usb0 | awk 'BEGIN { FS=&amp;quot;[ /]+&amp;quot; } /inet / { print  $3 }'`:22&lt;br /&gt;
&lt;br /&gt;
(which actually only prepends the usb0 ip address before the :22)&lt;br /&gt;
&lt;br /&gt;
into:&lt;br /&gt;
&lt;br /&gt;
  DROPBEAR_PORT=22&lt;br /&gt;
&lt;br /&gt;
* Be careful with this config file since it can close the only door into your phone.&lt;br /&gt;
&lt;br /&gt;
* Set a root password!&lt;br /&gt;
&lt;br /&gt;
== Available Software ==&lt;br /&gt;
&lt;br /&gt;
Programs in development providing GUI interfaces to administer WiFi connections:&lt;br /&gt;
&lt;br /&gt;
* [[Lint-wifi]]&lt;br /&gt;
* [[Mofi]]&lt;br /&gt;
* [[Camp-Wifi]]&lt;br /&gt;
&lt;br /&gt;
== External links ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/ WiFi on Linux]&lt;br /&gt;
&lt;br /&gt;
[[Category:Neo FreeRunner Hardware]]&lt;br /&gt;
[[Category:Networking]]&lt;/div&gt;</summary>
		<author><name>Michaelshiloh</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Neo_FreeRunner_Wifi</id>
		<title>Neo FreeRunner Wifi</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Neo_FreeRunner_Wifi"/>
				<updated>2008-10-08T23:23:28Z</updated>
		
		<summary type="html">&lt;p&gt;Michaelshiloh: /* GUI doesn't work in all cases */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|Neo FreeRunner Menu}}&lt;br /&gt;
&lt;br /&gt;
This page documents the [http://en.wikipedia.org/wiki/Wireless_networking wireless networking] solutions commonly known as [http://en.wikipedia.org/wiki/Wireless_LAN WLAN] or WiFi. &lt;br /&gt;
&lt;br /&gt;
There are other ways to enable wireless communications on the Neo, including [[Bluetooth]]. For Bluetooth solutions, see [[How to use bluetooth to transfer data between Neo and Desk-top]] and [[Manually using Bluetooth]].&lt;br /&gt;
&lt;br /&gt;
== Using the GUI on 2008.8 ==&lt;br /&gt;
&lt;br /&gt;
In the Settings application on Om 2008.8, there's a &amp;quot;WiFi&amp;quot; item. It should work fairly well in stable-updated 2008.8 (even with WPA2).&lt;br /&gt;
&lt;br /&gt;
If it says &amp;quot;WiFi unknown&amp;quot;, you can delete the /etc/volatives.cache file and reboot.  It should work after that.[http://docs.openmoko.org/trac/ticket/1734]  After connecting using the GUI, you may also need to run &amp;quot;udhcpc eth0&amp;quot; manually in the terminal to get DNS entries added to your resolv.conf.  You may also need to run &amp;quot;ifdown usb0&amp;quot; to remove the routing issue caused by having both interfaces up at the same time.  Some users have reported that 802.11g modulation needs to be enabled on APs to allow the FreeRunner to connect (The hardware is suppose to support 802.11b/g).&lt;br /&gt;
&lt;br /&gt;
Otherwise there's also [[lint-wifi]].  Refer to the section below, [[#Available Software|&amp;quot;Available Software&amp;quot;]] to find out what else might be available.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== How can I tell what Access Points (APs) are visible to me? ==&lt;br /&gt;
&lt;br /&gt;
You can connect to wireless networks through wireless [http://en.wikipedia.org/wiki/Access_point| access points]. If you want to know the names of all the access points that are currently visible to you, you can perform a scan with this command:&lt;br /&gt;
&lt;br /&gt;
 root@om-gta02:~# '''iwlist eth0 scan'''&lt;br /&gt;
&lt;br /&gt;
If anything is visible you will get a list that looks something like this:&lt;br /&gt;
&lt;br /&gt;
 eth0      Scan completed :&lt;br /&gt;
           Cell 01 - Address: 00:16:B6:DE:77:58&lt;br /&gt;
                     ESSID:&amp;quot;StarvinMarvin&amp;quot;&lt;br /&gt;
                     Mode:Master&lt;br /&gt;
                     Frequency:2.437 GHz (Channel 6)&lt;br /&gt;
                     Quality=9/94  Signal level=-86 dBm  Noise level=-95 dBm&lt;br /&gt;
                     Encryption key:on&lt;br /&gt;
                     Extra:bcn_int=100&lt;br /&gt;
                     Extra:wpa_ie=dd180050f20101000050f20201000050f20201000050f2020000&lt;br /&gt;
           Cell 02 - Address: 00:21:29:AA:10:97&lt;br /&gt;
                     ESSID:&amp;quot;CandT Network&amp;quot;&lt;br /&gt;
                     Mode:Master&lt;br /&gt;
                     Frequency:2.437 GHz (Channel 6)&lt;br /&gt;
                     Quality=39/94  Signal level=-56 dBm  Noise level=-95 dBm&lt;br /&gt;
                     Encryption key:on&lt;br /&gt;
                     Extra:bcn_int=100&lt;br /&gt;
                     Extra:wpa_ie=dd1c0050f20101000050f20202000050f2040050f20201000050f2020000&lt;br /&gt;
                     Extra:rsn_ie=30180100000fac020200000fac04000fac020100000fac020000&lt;br /&gt;
           Cell 03 - Address: 00:14:95:1B:8E:B9&lt;br /&gt;
                     ESSID:&amp;quot;2WIRE852&amp;quot;&lt;br /&gt;
                     Mode:Master&lt;br /&gt;
                     Frequency:2.437 GHz (Channel 6)&lt;br /&gt;
                     Quality=5/94  Signal level=-90 dBm  Noise level=-95 dBm&lt;br /&gt;
                     Encryption key:on&lt;br /&gt;
                     Extra:bcn_int=100&lt;br /&gt;
           Cell 04 - Address: 00:E0:98:52:3D:78&lt;br /&gt;
                     ESSID:&amp;quot;smith&amp;quot;&lt;br /&gt;
                     Mode:Master&lt;br /&gt;
                     Frequency:2.437 GHz (Channel 6)&lt;br /&gt;
                     Quality=36/94  Signal level=-59 dBm  Noise level=-95 dBm&lt;br /&gt;
                     Encryption key:on&lt;br /&gt;
                     Extra:bcn_int=100&lt;br /&gt;
&lt;br /&gt;
If you want to connect to an unsecured network run:&lt;br /&gt;
  &lt;br /&gt;
  udhcpc  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== WPA ==&lt;br /&gt;
&lt;br /&gt;
[http://en.wikipedia.org/wiki/Wi-Fi_Protected_Access  WPA] is an encryption method for securing your wireless network.&lt;br /&gt;
&lt;br /&gt;
=== Using wpa_supplicant manually ===&lt;br /&gt;
&lt;br /&gt;
Create and edit a suitable [[GTA02_WLAN#Sample_wpa_supplicant.conf|/etc/wpa_supplicant/wpa_supplicant.conf]].&lt;br /&gt;
&lt;br /&gt;
Bring up your wireless connection: &lt;br /&gt;
&lt;br /&gt;
 root@om-gta02:~# ifup eth0&lt;br /&gt;
 root@om-gta02:~# wpa_supplicant -ieth0 -c/etc/wpa_supplicant/wpa_supplicant.conf -B&lt;br /&gt;
 root@om-gta02:~# udhcpc eth0&lt;br /&gt;
&lt;br /&gt;
=== Using WPA and /etc/network/interfaces ===&lt;br /&gt;
&lt;br /&gt;
Once you have a [[GTA02_WLAN#Sample_wpa_supplicant.conf|/etc/wpa_supplicant/wpa_supplicant.conf]] file, add a line under the eth0 entry in /etc/network/interfaces:&lt;br /&gt;
&lt;br /&gt;
 iface eth0 inet dhcp&lt;br /&gt;
    wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf&lt;br /&gt;
&lt;br /&gt;
Save your changes and run:&lt;br /&gt;
  # ifdown eth0 &amp;amp;&amp;amp; ifup eth0&lt;br /&gt;
&lt;br /&gt;
You'll get a lot of messages, like &amp;lt;tt&amp;gt;ioctl[SIOCSIWENCODEEXT]: Operation not supported&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;sed: unrecognized option `--quiet'&amp;lt;/tt&amp;gt;, they appear to be harmless. The &amp;quot;--quiet&amp;quot; error message can be avoided by replacing &amp;quot;sed --quiet&amp;quot; with &amp;quot;sed -n&amp;quot; in /etc/wpa_supplicant/*.sh&lt;br /&gt;
&lt;br /&gt;
=== wpa_supplicant.conf ===&lt;br /&gt;
&lt;br /&gt;
==== wpa_supplicant.conf explained ====&lt;br /&gt;
The highest priority is tried first then falls back to the next highest number.&lt;br /&gt;
&lt;br /&gt;
priority=100  1st  &amp;lt;br&amp;gt;&lt;br /&gt;
then&amp;lt;br&amp;gt;&lt;br /&gt;
priority=99  &amp;lt;br&amp;gt; &lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
&lt;br /&gt;
# Simple case: WPA-PSK, PSK as an ASCII passphrase, allow all valid ciphers&lt;br /&gt;
network={&lt;br /&gt;
	ssid=&amp;quot;AP_ESSID&amp;quot;&lt;br /&gt;
	psk=&amp;quot;presharedkey&amp;quot;&lt;br /&gt;
	priority=5&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#try open AP regardless of its SSID.&lt;br /&gt;
# change root password before you go roaming around it could prove dangerous&lt;br /&gt;
network={&lt;br /&gt;
	key_mgmt=NONE&lt;br /&gt;
priority=1  #try any open AP last&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A more in depth explanation can be found here:&amp;lt;br&amp;gt; &lt;br /&gt;
http://hostap.epitest.fi/gitweb/gitweb.cgi?p=hostap.git;a=blob_plain;f=wpa_supplicant/wpa_supplicant.conf&lt;br /&gt;
&lt;br /&gt;
==== Sample wpa_supplicant.conf ====&lt;br /&gt;
&lt;br /&gt;
 ctrl_interface=/var/run/wpa_supplicant&lt;br /&gt;
 ctrl_interface_group=0&lt;br /&gt;
 eapol_version=1&lt;br /&gt;
 ap_scan=1&lt;br /&gt;
 fast_reauth=1 &lt;br /&gt;
 # WPA2:&lt;br /&gt;
 network={&lt;br /&gt;
        ssid=&amp;quot;your ssid&amp;quot;&lt;br /&gt;
        scan_ssid=1&lt;br /&gt;
        proto=RSN&lt;br /&gt;
        key_mgmt=WPA-PSK&lt;br /&gt;
        pairwise=CCMP TKIP&lt;br /&gt;
        group=TKIP CCMP&lt;br /&gt;
        psk=&amp;quot;secret key&amp;quot;&lt;br /&gt;
        priority=50&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 # WPA:&lt;br /&gt;
 network={&lt;br /&gt;
       ssid=&amp;quot;your_ssid&amp;quot;&lt;br /&gt;
       proto=WPA&lt;br /&gt;
       key_mgmt=WPA-PSK&lt;br /&gt;
       pairwise=TKIP&lt;br /&gt;
       group=TKIP&lt;br /&gt;
       scan_ssid=1&lt;br /&gt;
       psk=&amp;quot;secret key&amp;quot;&lt;br /&gt;
       priority=10&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 # WEP:&lt;br /&gt;
 network={&lt;br /&gt;
      ssid=&amp;quot;your_ssid&amp;quot;&lt;br /&gt;
      scan_ssid=1&lt;br /&gt;
      key_mgmt=NONE&lt;br /&gt;
      wep_tx_keyidx=0&lt;br /&gt;
      wep_key0=your_hex_key&lt;br /&gt;
      priority=8&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 # Open:&lt;br /&gt;
 network={&lt;br /&gt;
      ssid=&amp;quot;your ssid&amp;quot;&lt;br /&gt;
      key_mgmt=NONE&lt;br /&gt;
      priority=5&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== Other sample wpa_supplicant.conf files ====&lt;br /&gt;
&lt;br /&gt;
Tom Yates documents his success [http://www.teaparty.net/technotes/openmoko-2.html#Wifi here]&lt;br /&gt;
&lt;br /&gt;
== WEP ==&lt;br /&gt;
&lt;br /&gt;
[http://en.wikipedia.org/wiki/Wired_Equivalent_Privacy WEP] is an encryption method for securing your wireless network. WEP is generally considered to be weak, you should use WPA instead if possible.&lt;br /&gt;
&lt;br /&gt;
=== Using iwconfig manually ===&lt;br /&gt;
&lt;br /&gt;
Note that for WEP our iwconfig requires a more specific format than generic iwconfig.&lt;br /&gt;
&lt;br /&gt;
The canonical way of running iwconfig for WEP would be something like this:&lt;br /&gt;
&lt;br /&gt;
# iwconfig eth0 key A4BEB3B8EC essid xyz&lt;br /&gt;
&lt;br /&gt;
Two things are important here:&lt;br /&gt;
&lt;br /&gt;
* the key must be in HEX. iwconfig will not do anything useful if the key is given as a string.   [http://www.powerdog.com/wepkey.cgi Here] is a handy ASCII string to HEX converter.&lt;br /&gt;
&lt;br /&gt;
* the ESSID must follow the key.&lt;br /&gt;
&lt;br /&gt;
If an incorrect key was set, please stop all activity on the interface for at least two minutes (i.e., killall udhcpc and ifconfig eth0 down), then issue the correct iwconfig command and retry.&lt;br /&gt;
&lt;br /&gt;
=== Using WEP and /etc/network/interfaces ===&lt;br /&gt;
  iface eth0 inet dhcp&lt;br /&gt;
    wireless-key my_wep_key&lt;br /&gt;
    wireless-essid my_essid&lt;br /&gt;
&lt;br /&gt;
 iface eth0 inet dhcp&lt;br /&gt;
    wpa-wep-key0 my_wep_key&lt;br /&gt;
    wpa-key-mgmt NONE&lt;br /&gt;
    wpa-ssid my_essid&lt;br /&gt;
&lt;br /&gt;
Save your changes and run:&lt;br /&gt;
  # ifdown eth0 &amp;amp;&amp;amp; ifup eth0&lt;br /&gt;
&lt;br /&gt;
== Known Issues ==&lt;br /&gt;
&lt;br /&gt;
=== GUI doesn't work in all cases ===&lt;br /&gt;
&lt;br /&gt;
The GUI seems to have some issues that prevent it from working in all cases. &lt;br /&gt;
&lt;br /&gt;
If a Wi-Fi connection can not be made with the GUI, open a shell and use&lt;br /&gt;
[[Neo_FreeRunner_Wifi#Using_wpa_supplicant_manually|iwconfig manually]].&lt;br /&gt;
&lt;br /&gt;
=== iwconfig doesn't work in all cases ===&lt;br /&gt;
&lt;br /&gt;
Note that for some reason our iwconfig requires a more constrained format than the generic iwconfig. See&lt;br /&gt;
[[Neo_FreeRunner_Wifi#Using_wpa_supplicant_manually| using iwconfig manually]].&lt;br /&gt;
&lt;br /&gt;
=== Anecdotal solutions ===&lt;br /&gt;
&lt;br /&gt;
These solutions worked for some people:&lt;br /&gt;
&lt;br /&gt;
==== Disable power management ====&lt;br /&gt;
&lt;br /&gt;
Some APs apparently get upset by power managed devices, and the Freerunner enables power management of the wifi by default to preserve battery. One user's wrt54g certainly gets upset from time to time if he connect with the FreeRunner, sometimes refusing to talk to _anything_ over wifi afterwards until rebooted.&lt;br /&gt;
&lt;br /&gt;
==== Modified script ====&lt;br /&gt;
&lt;br /&gt;
&amp;quot;I changed the script a little:&lt;br /&gt;
&lt;br /&gt;
 Exec=xterm -e &amp;quot;ifconfig eth0 down \&lt;br /&gt;
 iwconfig eth0 txpower off channel 0 \&lt;br /&gt;
 while killall wpa_supplicant; do echo 'Killing wpa_sup'; done \&lt;br /&gt;
 killall udhcpc \&lt;br /&gt;
 wpa_supplicant -i eth0 -c /etc/wpa_supplicant/wpa_supplicant.conf -D wext -B \&lt;br /&gt;
 sleep 10; udhcpc&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Now it is working every time.&lt;br /&gt;
I am using 2008.latest (081004) and a linksys WAP54G accesspoint,&lt;br /&gt;
&lt;br /&gt;
==== Use a different channel ====&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Could not get it to work properly on channel 11, so I set my accesspoint to channel 1.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Wake up from wireless (wow)==&lt;br /&gt;
&lt;br /&gt;
Wi-Fi module constantly drain currents after module power up, for wi-fi SIP phone or some application need long standby time, will need wake up from wireless function for power saving. There is a sleep mode that Ar6k supported for wake up from wireless.&lt;br /&gt;
&lt;br /&gt;
 http://svn.openmoko.org/trunk/src/target/AR6kSDK.build_sw.18/host/tools/wmiconfig&lt;br /&gt;
&lt;br /&gt;
 export ATH_CROSS_COMPILE_TYPE=arm-angstrom-linux-gnueabi-&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
Debian package:&lt;br /&gt;
&lt;br /&gt;
 wget http://meshy.org/~ato/debian/pool/main/w/wmiconfig/wmiconfig_0.0.18-1_armel.deb&lt;br /&gt;
 dpkg -i wmiconfig_0.0.18-1_armel.deb&lt;br /&gt;
&lt;br /&gt;
Basically, it's achieved via wmiconfig tool to issue IOCTL if we want&lt;br /&gt;
ar6k wifi module to generate interrupt to host controller. The procedure&lt;br /&gt;
to enable wakeup-on-wireless(wow) is listed here:&lt;br /&gt;
&lt;br /&gt;
 1. wmiconfig --sethostmode asleep /* to tell ar6k what host's current is */&lt;br /&gt;
 2. wmiconfig --setwowmode enable /* enable wow function */&lt;br /&gt;
 3. wmiconfig --addpattern 0 1 33 01 ff /* add packet filter pattern, this is the ICMP filter pattern */&lt;br /&gt;
 4. apm -s&lt;br /&gt;
 5. ping IP_of_Neo&lt;br /&gt;
 6. The GPIO1 pin would be pulled up. The system would resume then.&lt;br /&gt;
 7. wmiconfig --sethostmode awake /* The firmware of ar6k will pull low the GPIO1 pin */&lt;br /&gt;
&lt;br /&gt;
--addwowpattern &amp;lt;list-id&amp;gt; &amp;lt;pattern-size&amp;gt; &amp;lt;pattern-offset&amp;gt; &amp;lt;pattern&amp;gt; &amp;lt;pattern-mask&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here are some addwowpattern commands:&lt;br /&gt;
&lt;br /&gt;
Protocol type=IP=0800&lt;br /&gt;
Protocol type in IP header=ICMP=01&lt;br /&gt;
&lt;br /&gt;
 - To filter for IP packets(offset 22)&lt;br /&gt;
 wmiconfig --addwowpattern 0 2 22 0800 ffff&lt;br /&gt;
 - To filter for ICMP packets (offset 33)&lt;br /&gt;
 wmiconfig --addwowpattern 0 1 33 01 ff&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== A very ugly /etc/init.d/wlan startscript ==&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 #&lt;br /&gt;
 # wlan	This shell script starts and stops wlan.&lt;br /&gt;
 #&lt;br /&gt;
 # processname: wlan&lt;br /&gt;
 &lt;br /&gt;
 # Source function library.&lt;br /&gt;
 #. /etc/rc.d/init.d/functions&lt;br /&gt;
 # &amp;quot;written&amp;quot; by HdR&lt;br /&gt;
 &lt;br /&gt;
 RETVAL=0&lt;br /&gt;
 prog=&amp;quot;wlan&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # test -f /etc/default/$prog &amp;amp;&amp;amp; . /etc/default/$prog&lt;br /&gt;
 &lt;br /&gt;
 start() {&lt;br /&gt;
 	echo -n &amp;quot;Starting $prog: &amp;quot;&lt;br /&gt;
 	ifconfig eth0 up&lt;br /&gt;
 	wpa_supplicant -ieth0 -c/etc/wpa_supplicant/wpa_supplicant.conf -B&lt;br /&gt;
 	sleep 10&lt;br /&gt;
 	udhcpc eth0&lt;br /&gt;
 	RETVAL=$?&lt;br /&gt;
 	return $RETVAL&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 stop() {&lt;br /&gt;
 	# Stop daemons.&lt;br /&gt;
 	echo -n &amp;quot;Shutting down $prog: &amp;quot;&lt;br /&gt;
         killall wpa_supplicant&lt;br /&gt;
 	ifconfig eth0 down&lt;br /&gt;
 #        killproc gpsd&lt;br /&gt;
 	RETVAL=$?&lt;br /&gt;
 	return $RETVAL&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 # See how we were called.&lt;br /&gt;
 case &amp;quot;$1&amp;quot; in&lt;br /&gt;
   start)&lt;br /&gt;
 	start&lt;br /&gt;
 	;;&lt;br /&gt;
   stop)&lt;br /&gt;
 	stop&lt;br /&gt;
 	;;&lt;br /&gt;
   restart|reload)&lt;br /&gt;
 	stop&lt;br /&gt;
 	start&lt;br /&gt;
 	RETVAL=$?&lt;br /&gt;
 	;;&lt;br /&gt;
   *)&lt;br /&gt;
 	echo &amp;quot;Usage: $0 {start|stop|restart}&amp;quot;&lt;br /&gt;
 	exit 1&lt;br /&gt;
 esac&lt;br /&gt;
 &lt;br /&gt;
 exit $RETVAL&lt;br /&gt;
&lt;br /&gt;
Note: Don't forget to make this script executable with &amp;quot;chmod +x &amp;lt;filename&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Route internet connection through Wifi rather than USB ==&lt;br /&gt;
&lt;br /&gt;
Wifi is faster than USB, so it is a good idea to tell the FreeRunner to connect through it. Put the following in /etc/network/interfaces under eth0:&lt;br /&gt;
&lt;br /&gt;
up route del default gw 192.168.0.200&lt;br /&gt;
&lt;br /&gt;
This will remove your computer as the default gateway and use the  wireless one when the interface is brought up. User nickd reports that sometimes it fails so he has had to put it in twice.&lt;br /&gt;
&lt;br /&gt;
== ssh into FR over WiFi ==&lt;br /&gt;
dropbear, the ssh server, is configured to listen on the USB interface only. Wireless interfaces like wlan or bluetooth are disabled for security reasons (empty root password).&lt;br /&gt;
&lt;br /&gt;
If you want to enable ssh over WiFi, change the /etc/default/dropbear from:&lt;br /&gt;
&lt;br /&gt;
  DROPBEAR_PORT=`ip addr list usb0 | awk 'BEGIN { FS=&amp;quot;[ /]+&amp;quot; } /inet / { print  $3 }'`:22&lt;br /&gt;
&lt;br /&gt;
(which actually only prepends the usb0 ip address before the :22)&lt;br /&gt;
&lt;br /&gt;
into:&lt;br /&gt;
&lt;br /&gt;
  DROPBEAR_PORT=22&lt;br /&gt;
&lt;br /&gt;
* Be careful with this config file since it can close the only door into your phone.&lt;br /&gt;
&lt;br /&gt;
* Set a root password!&lt;br /&gt;
&lt;br /&gt;
== Available Software ==&lt;br /&gt;
&lt;br /&gt;
Programs in development providing GUI interfaces to administer WiFi connections:&lt;br /&gt;
&lt;br /&gt;
* [[Lint-wifi]]&lt;br /&gt;
* [[Mofi]]&lt;br /&gt;
* [[Camp-Wifi]]&lt;br /&gt;
&lt;br /&gt;
== External links ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/ WiFi on Linux]&lt;br /&gt;
&lt;br /&gt;
[[Category:Neo FreeRunner Hardware]]&lt;br /&gt;
[[Category:Networking]]&lt;/div&gt;</summary>
		<author><name>Michaelshiloh</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Neo_FreeRunner_Wifi</id>
		<title>Neo FreeRunner Wifi</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Neo_FreeRunner_Wifi"/>
				<updated>2008-10-08T23:22:01Z</updated>
		
		<summary type="html">&lt;p&gt;Michaelshiloh: /* GUI doesn't work in all cases */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|Neo FreeRunner Menu}}&lt;br /&gt;
&lt;br /&gt;
This page documents the [http://en.wikipedia.org/wiki/Wireless_networking wireless networking] solutions commonly known as [http://en.wikipedia.org/wiki/Wireless_LAN WLAN] or WiFi. &lt;br /&gt;
&lt;br /&gt;
There are other ways to enable wireless communications on the Neo, including [[Bluetooth]]. For Bluetooth solutions, see [[How to use bluetooth to transfer data between Neo and Desk-top]] and [[Manually using Bluetooth]].&lt;br /&gt;
&lt;br /&gt;
== Using the GUI on 2008.8 ==&lt;br /&gt;
&lt;br /&gt;
In the Settings application on Om 2008.8, there's a &amp;quot;WiFi&amp;quot; item. It should work fairly well in stable-updated 2008.8 (even with WPA2).&lt;br /&gt;
&lt;br /&gt;
If it says &amp;quot;WiFi unknown&amp;quot;, you can delete the /etc/volatives.cache file and reboot.  It should work after that.[http://docs.openmoko.org/trac/ticket/1734]  After connecting using the GUI, you may also need to run &amp;quot;udhcpc eth0&amp;quot; manually in the terminal to get DNS entries added to your resolv.conf.  You may also need to run &amp;quot;ifdown usb0&amp;quot; to remove the routing issue caused by having both interfaces up at the same time.  Some users have reported that 802.11g modulation needs to be enabled on APs to allow the FreeRunner to connect (The hardware is suppose to support 802.11b/g).&lt;br /&gt;
&lt;br /&gt;
Otherwise there's also [[lint-wifi]].  Refer to the section below, [[#Available Software|&amp;quot;Available Software&amp;quot;]] to find out what else might be available.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== How can I tell what Access Points (APs) are visible to me? ==&lt;br /&gt;
&lt;br /&gt;
You can connect to wireless networks through wireless [http://en.wikipedia.org/wiki/Access_point| access points]. If you want to know the names of all the access points that are currently visible to you, you can perform a scan with this command:&lt;br /&gt;
&lt;br /&gt;
 root@om-gta02:~# '''iwlist eth0 scan'''&lt;br /&gt;
&lt;br /&gt;
If anything is visible you will get a list that looks something like this:&lt;br /&gt;
&lt;br /&gt;
 eth0      Scan completed :&lt;br /&gt;
           Cell 01 - Address: 00:16:B6:DE:77:58&lt;br /&gt;
                     ESSID:&amp;quot;StarvinMarvin&amp;quot;&lt;br /&gt;
                     Mode:Master&lt;br /&gt;
                     Frequency:2.437 GHz (Channel 6)&lt;br /&gt;
                     Quality=9/94  Signal level=-86 dBm  Noise level=-95 dBm&lt;br /&gt;
                     Encryption key:on&lt;br /&gt;
                     Extra:bcn_int=100&lt;br /&gt;
                     Extra:wpa_ie=dd180050f20101000050f20201000050f20201000050f2020000&lt;br /&gt;
           Cell 02 - Address: 00:21:29:AA:10:97&lt;br /&gt;
                     ESSID:&amp;quot;CandT Network&amp;quot;&lt;br /&gt;
                     Mode:Master&lt;br /&gt;
                     Frequency:2.437 GHz (Channel 6)&lt;br /&gt;
                     Quality=39/94  Signal level=-56 dBm  Noise level=-95 dBm&lt;br /&gt;
                     Encryption key:on&lt;br /&gt;
                     Extra:bcn_int=100&lt;br /&gt;
                     Extra:wpa_ie=dd1c0050f20101000050f20202000050f2040050f20201000050f2020000&lt;br /&gt;
                     Extra:rsn_ie=30180100000fac020200000fac04000fac020100000fac020000&lt;br /&gt;
           Cell 03 - Address: 00:14:95:1B:8E:B9&lt;br /&gt;
                     ESSID:&amp;quot;2WIRE852&amp;quot;&lt;br /&gt;
                     Mode:Master&lt;br /&gt;
                     Frequency:2.437 GHz (Channel 6)&lt;br /&gt;
                     Quality=5/94  Signal level=-90 dBm  Noise level=-95 dBm&lt;br /&gt;
                     Encryption key:on&lt;br /&gt;
                     Extra:bcn_int=100&lt;br /&gt;
           Cell 04 - Address: 00:E0:98:52:3D:78&lt;br /&gt;
                     ESSID:&amp;quot;smith&amp;quot;&lt;br /&gt;
                     Mode:Master&lt;br /&gt;
                     Frequency:2.437 GHz (Channel 6)&lt;br /&gt;
                     Quality=36/94  Signal level=-59 dBm  Noise level=-95 dBm&lt;br /&gt;
                     Encryption key:on&lt;br /&gt;
                     Extra:bcn_int=100&lt;br /&gt;
&lt;br /&gt;
If you want to connect to an unsecured network run:&lt;br /&gt;
  &lt;br /&gt;
  udhcpc  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== WPA ==&lt;br /&gt;
&lt;br /&gt;
[http://en.wikipedia.org/wiki/Wi-Fi_Protected_Access  WPA] is an encryption method for securing your wireless network.&lt;br /&gt;
&lt;br /&gt;
=== Using wpa_supplicant manually ===&lt;br /&gt;
&lt;br /&gt;
Create and edit a suitable [[GTA02_WLAN#Sample_wpa_supplicant.conf|/etc/wpa_supplicant/wpa_supplicant.conf]].&lt;br /&gt;
&lt;br /&gt;
Bring up your wireless connection: &lt;br /&gt;
&lt;br /&gt;
 root@om-gta02:~# ifup eth0&lt;br /&gt;
 root@om-gta02:~# wpa_supplicant -ieth0 -c/etc/wpa_supplicant/wpa_supplicant.conf -B&lt;br /&gt;
 root@om-gta02:~# udhcpc eth0&lt;br /&gt;
&lt;br /&gt;
=== Using WPA and /etc/network/interfaces ===&lt;br /&gt;
&lt;br /&gt;
Once you have a [[GTA02_WLAN#Sample_wpa_supplicant.conf|/etc/wpa_supplicant/wpa_supplicant.conf]] file, add a line under the eth0 entry in /etc/network/interfaces:&lt;br /&gt;
&lt;br /&gt;
 iface eth0 inet dhcp&lt;br /&gt;
    wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf&lt;br /&gt;
&lt;br /&gt;
Save your changes and run:&lt;br /&gt;
  # ifdown eth0 &amp;amp;&amp;amp; ifup eth0&lt;br /&gt;
&lt;br /&gt;
You'll get a lot of messages, like &amp;lt;tt&amp;gt;ioctl[SIOCSIWENCODEEXT]: Operation not supported&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;sed: unrecognized option `--quiet'&amp;lt;/tt&amp;gt;, they appear to be harmless. The &amp;quot;--quiet&amp;quot; error message can be avoided by replacing &amp;quot;sed --quiet&amp;quot; with &amp;quot;sed -n&amp;quot; in /etc/wpa_supplicant/*.sh&lt;br /&gt;
&lt;br /&gt;
=== wpa_supplicant.conf ===&lt;br /&gt;
&lt;br /&gt;
==== wpa_supplicant.conf explained ====&lt;br /&gt;
The highest priority is tried first then falls back to the next highest number.&lt;br /&gt;
&lt;br /&gt;
priority=100  1st  &amp;lt;br&amp;gt;&lt;br /&gt;
then&amp;lt;br&amp;gt;&lt;br /&gt;
priority=99  &amp;lt;br&amp;gt; &lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
&lt;br /&gt;
# Simple case: WPA-PSK, PSK as an ASCII passphrase, allow all valid ciphers&lt;br /&gt;
network={&lt;br /&gt;
	ssid=&amp;quot;AP_ESSID&amp;quot;&lt;br /&gt;
	psk=&amp;quot;presharedkey&amp;quot;&lt;br /&gt;
	priority=5&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#try open AP regardless of its SSID.&lt;br /&gt;
# change root password before you go roaming around it could prove dangerous&lt;br /&gt;
network={&lt;br /&gt;
	key_mgmt=NONE&lt;br /&gt;
priority=1  #try any open AP last&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A more in depth explanation can be found here:&amp;lt;br&amp;gt; &lt;br /&gt;
http://hostap.epitest.fi/gitweb/gitweb.cgi?p=hostap.git;a=blob_plain;f=wpa_supplicant/wpa_supplicant.conf&lt;br /&gt;
&lt;br /&gt;
==== Sample wpa_supplicant.conf ====&lt;br /&gt;
&lt;br /&gt;
 ctrl_interface=/var/run/wpa_supplicant&lt;br /&gt;
 ctrl_interface_group=0&lt;br /&gt;
 eapol_version=1&lt;br /&gt;
 ap_scan=1&lt;br /&gt;
 fast_reauth=1 &lt;br /&gt;
 # WPA2:&lt;br /&gt;
 network={&lt;br /&gt;
        ssid=&amp;quot;your ssid&amp;quot;&lt;br /&gt;
        scan_ssid=1&lt;br /&gt;
        proto=RSN&lt;br /&gt;
        key_mgmt=WPA-PSK&lt;br /&gt;
        pairwise=CCMP TKIP&lt;br /&gt;
        group=TKIP CCMP&lt;br /&gt;
        psk=&amp;quot;secret key&amp;quot;&lt;br /&gt;
        priority=50&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 # WPA:&lt;br /&gt;
 network={&lt;br /&gt;
       ssid=&amp;quot;your_ssid&amp;quot;&lt;br /&gt;
       proto=WPA&lt;br /&gt;
       key_mgmt=WPA-PSK&lt;br /&gt;
       pairwise=TKIP&lt;br /&gt;
       group=TKIP&lt;br /&gt;
       scan_ssid=1&lt;br /&gt;
       psk=&amp;quot;secret key&amp;quot;&lt;br /&gt;
       priority=10&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 # WEP:&lt;br /&gt;
 network={&lt;br /&gt;
      ssid=&amp;quot;your_ssid&amp;quot;&lt;br /&gt;
      scan_ssid=1&lt;br /&gt;
      key_mgmt=NONE&lt;br /&gt;
      wep_tx_keyidx=0&lt;br /&gt;
      wep_key0=your_hex_key&lt;br /&gt;
      priority=8&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 # Open:&lt;br /&gt;
 network={&lt;br /&gt;
      ssid=&amp;quot;your ssid&amp;quot;&lt;br /&gt;
      key_mgmt=NONE&lt;br /&gt;
      priority=5&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== Other sample wpa_supplicant.conf files ====&lt;br /&gt;
&lt;br /&gt;
Tom Yates documents his success [http://www.teaparty.net/technotes/openmoko-2.html#Wifi here]&lt;br /&gt;
&lt;br /&gt;
== WEP ==&lt;br /&gt;
&lt;br /&gt;
[http://en.wikipedia.org/wiki/Wired_Equivalent_Privacy WEP] is an encryption method for securing your wireless network. WEP is generally considered to be weak, you should use WPA instead if possible.&lt;br /&gt;
&lt;br /&gt;
=== Using iwconfig manually ===&lt;br /&gt;
&lt;br /&gt;
Note that for WEP our iwconfig requires a more specific format than generic iwconfig.&lt;br /&gt;
&lt;br /&gt;
The canonical way of running iwconfig for WEP would be something like this:&lt;br /&gt;
&lt;br /&gt;
# iwconfig eth0 key A4BEB3B8EC essid xyz&lt;br /&gt;
&lt;br /&gt;
Two things are important here:&lt;br /&gt;
&lt;br /&gt;
* the key must be in HEX. iwconfig will not do anything useful if the key is given as a string.   [http://www.powerdog.com/wepkey.cgi Here] is a handy ASCII string to HEX converter.&lt;br /&gt;
&lt;br /&gt;
* the ESSID must follow the key.&lt;br /&gt;
&lt;br /&gt;
If an incorrect key was set, please stop all activity on the interface for at least two minutes (i.e., killall udhcpc and ifconfig eth0 down), then issue the correct iwconfig command and retry.&lt;br /&gt;
&lt;br /&gt;
=== Using WEP and /etc/network/interfaces ===&lt;br /&gt;
  iface eth0 inet dhcp&lt;br /&gt;
    wireless-key my_wep_key&lt;br /&gt;
    wireless-essid my_essid&lt;br /&gt;
&lt;br /&gt;
 iface eth0 inet dhcp&lt;br /&gt;
    wpa-wep-key0 my_wep_key&lt;br /&gt;
    wpa-key-mgmt NONE&lt;br /&gt;
    wpa-ssid my_essid&lt;br /&gt;
&lt;br /&gt;
Save your changes and run:&lt;br /&gt;
  # ifdown eth0 &amp;amp;&amp;amp; ifup eth0&lt;br /&gt;
&lt;br /&gt;
== Known Issues ==&lt;br /&gt;
&lt;br /&gt;
=== GUI doesn't work in all cases ===&lt;br /&gt;
&lt;br /&gt;
The GUI seems to have some issues that prevent it from working in all cases. &lt;br /&gt;
&lt;br /&gt;
If a Wi-Fi connection can not be made with the GUI, open a shell and use&lt;br /&gt;
[[Neo_FreeRunner_Wifi#Using_wpa_supplicant_manually|iwconfig manually]].&lt;br /&gt;
&lt;br /&gt;
=== Anecdotal solutions ===&lt;br /&gt;
&lt;br /&gt;
These solutions worked for some people:&lt;br /&gt;
&lt;br /&gt;
==== Disable power management ====&lt;br /&gt;
&lt;br /&gt;
Some APs apparently get upset by power managed devices, and the Freerunner enables power management of the wifi by default to preserve battery. One user's wrt54g certainly gets upset from time to time if he connect with the FreeRunner, sometimes refusing to talk to _anything_ over wifi afterwards until rebooted.&lt;br /&gt;
&lt;br /&gt;
==== Modified script ====&lt;br /&gt;
&lt;br /&gt;
&amp;quot;I changed the script a little:&lt;br /&gt;
&lt;br /&gt;
 Exec=xterm -e &amp;quot;ifconfig eth0 down \&lt;br /&gt;
 iwconfig eth0 txpower off channel 0 \&lt;br /&gt;
 while killall wpa_supplicant; do echo 'Killing wpa_sup'; done \&lt;br /&gt;
 killall udhcpc \&lt;br /&gt;
 wpa_supplicant -i eth0 -c /etc/wpa_supplicant/wpa_supplicant.conf -D wext -B \&lt;br /&gt;
 sleep 10; udhcpc&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Now it is working every time.&lt;br /&gt;
I am using 2008.latest (081004) and a linksys WAP54G accesspoint,&lt;br /&gt;
&lt;br /&gt;
==== Use a different channel ====&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Could not get it to work properly on channel 11, so I set my accesspoint to channel 1.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Wake up from wireless (wow)==&lt;br /&gt;
&lt;br /&gt;
Wi-Fi module constantly drain currents after module power up, for wi-fi SIP phone or some application need long standby time, will need wake up from wireless function for power saving. There is a sleep mode that Ar6k supported for wake up from wireless.&lt;br /&gt;
&lt;br /&gt;
 http://svn.openmoko.org/trunk/src/target/AR6kSDK.build_sw.18/host/tools/wmiconfig&lt;br /&gt;
&lt;br /&gt;
 export ATH_CROSS_COMPILE_TYPE=arm-angstrom-linux-gnueabi-&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
Debian package:&lt;br /&gt;
&lt;br /&gt;
 wget http://meshy.org/~ato/debian/pool/main/w/wmiconfig/wmiconfig_0.0.18-1_armel.deb&lt;br /&gt;
 dpkg -i wmiconfig_0.0.18-1_armel.deb&lt;br /&gt;
&lt;br /&gt;
Basically, it's achieved via wmiconfig tool to issue IOCTL if we want&lt;br /&gt;
ar6k wifi module to generate interrupt to host controller. The procedure&lt;br /&gt;
to enable wakeup-on-wireless(wow) is listed here:&lt;br /&gt;
&lt;br /&gt;
 1. wmiconfig --sethostmode asleep /* to tell ar6k what host's current is */&lt;br /&gt;
 2. wmiconfig --setwowmode enable /* enable wow function */&lt;br /&gt;
 3. wmiconfig --addpattern 0 1 33 01 ff /* add packet filter pattern, this is the ICMP filter pattern */&lt;br /&gt;
 4. apm -s&lt;br /&gt;
 5. ping IP_of_Neo&lt;br /&gt;
 6. The GPIO1 pin would be pulled up. The system would resume then.&lt;br /&gt;
 7. wmiconfig --sethostmode awake /* The firmware of ar6k will pull low the GPIO1 pin */&lt;br /&gt;
&lt;br /&gt;
--addwowpattern &amp;lt;list-id&amp;gt; &amp;lt;pattern-size&amp;gt; &amp;lt;pattern-offset&amp;gt; &amp;lt;pattern&amp;gt; &amp;lt;pattern-mask&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here are some addwowpattern commands:&lt;br /&gt;
&lt;br /&gt;
Protocol type=IP=0800&lt;br /&gt;
Protocol type in IP header=ICMP=01&lt;br /&gt;
&lt;br /&gt;
 - To filter for IP packets(offset 22)&lt;br /&gt;
 wmiconfig --addwowpattern 0 2 22 0800 ffff&lt;br /&gt;
 - To filter for ICMP packets (offset 33)&lt;br /&gt;
 wmiconfig --addwowpattern 0 1 33 01 ff&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== A very ugly /etc/init.d/wlan startscript ==&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 #&lt;br /&gt;
 # wlan	This shell script starts and stops wlan.&lt;br /&gt;
 #&lt;br /&gt;
 # processname: wlan&lt;br /&gt;
 &lt;br /&gt;
 # Source function library.&lt;br /&gt;
 #. /etc/rc.d/init.d/functions&lt;br /&gt;
 # &amp;quot;written&amp;quot; by HdR&lt;br /&gt;
 &lt;br /&gt;
 RETVAL=0&lt;br /&gt;
 prog=&amp;quot;wlan&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # test -f /etc/default/$prog &amp;amp;&amp;amp; . /etc/default/$prog&lt;br /&gt;
 &lt;br /&gt;
 start() {&lt;br /&gt;
 	echo -n &amp;quot;Starting $prog: &amp;quot;&lt;br /&gt;
 	ifconfig eth0 up&lt;br /&gt;
 	wpa_supplicant -ieth0 -c/etc/wpa_supplicant/wpa_supplicant.conf -B&lt;br /&gt;
 	sleep 10&lt;br /&gt;
 	udhcpc eth0&lt;br /&gt;
 	RETVAL=$?&lt;br /&gt;
 	return $RETVAL&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 stop() {&lt;br /&gt;
 	# Stop daemons.&lt;br /&gt;
 	echo -n &amp;quot;Shutting down $prog: &amp;quot;&lt;br /&gt;
         killall wpa_supplicant&lt;br /&gt;
 	ifconfig eth0 down&lt;br /&gt;
 #        killproc gpsd&lt;br /&gt;
 	RETVAL=$?&lt;br /&gt;
 	return $RETVAL&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 # See how we were called.&lt;br /&gt;
 case &amp;quot;$1&amp;quot; in&lt;br /&gt;
   start)&lt;br /&gt;
 	start&lt;br /&gt;
 	;;&lt;br /&gt;
   stop)&lt;br /&gt;
 	stop&lt;br /&gt;
 	;;&lt;br /&gt;
   restart|reload)&lt;br /&gt;
 	stop&lt;br /&gt;
 	start&lt;br /&gt;
 	RETVAL=$?&lt;br /&gt;
 	;;&lt;br /&gt;
   *)&lt;br /&gt;
 	echo &amp;quot;Usage: $0 {start|stop|restart}&amp;quot;&lt;br /&gt;
 	exit 1&lt;br /&gt;
 esac&lt;br /&gt;
 &lt;br /&gt;
 exit $RETVAL&lt;br /&gt;
&lt;br /&gt;
Note: Don't forget to make this script executable with &amp;quot;chmod +x &amp;lt;filename&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Route internet connection through Wifi rather than USB ==&lt;br /&gt;
&lt;br /&gt;
Wifi is faster than USB, so it is a good idea to tell the FreeRunner to connect through it. Put the following in /etc/network/interfaces under eth0:&lt;br /&gt;
&lt;br /&gt;
up route del default gw 192.168.0.200&lt;br /&gt;
&lt;br /&gt;
This will remove your computer as the default gateway and use the  wireless one when the interface is brought up. User nickd reports that sometimes it fails so he has had to put it in twice.&lt;br /&gt;
&lt;br /&gt;
== ssh into FR over WiFi ==&lt;br /&gt;
dropbear, the ssh server, is configured to listen on the USB interface only. Wireless interfaces like wlan or bluetooth are disabled for security reasons (empty root password).&lt;br /&gt;
&lt;br /&gt;
If you want to enable ssh over WiFi, change the /etc/default/dropbear from:&lt;br /&gt;
&lt;br /&gt;
  DROPBEAR_PORT=`ip addr list usb0 | awk 'BEGIN { FS=&amp;quot;[ /]+&amp;quot; } /inet / { print  $3 }'`:22&lt;br /&gt;
&lt;br /&gt;
(which actually only prepends the usb0 ip address before the :22)&lt;br /&gt;
&lt;br /&gt;
into:&lt;br /&gt;
&lt;br /&gt;
  DROPBEAR_PORT=22&lt;br /&gt;
&lt;br /&gt;
* Be careful with this config file since it can close the only door into your phone.&lt;br /&gt;
&lt;br /&gt;
* Set a root password!&lt;br /&gt;
&lt;br /&gt;
== Available Software ==&lt;br /&gt;
&lt;br /&gt;
Programs in development providing GUI interfaces to administer WiFi connections:&lt;br /&gt;
&lt;br /&gt;
* [[Lint-wifi]]&lt;br /&gt;
* [[Mofi]]&lt;br /&gt;
* [[Camp-Wifi]]&lt;br /&gt;
&lt;br /&gt;
== External links ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/ WiFi on Linux]&lt;br /&gt;
&lt;br /&gt;
[[Category:Neo FreeRunner Hardware]]&lt;br /&gt;
[[Category:Networking]]&lt;/div&gt;</summary>
		<author><name>Michaelshiloh</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Neo_FreeRunner_Wifi</id>
		<title>Neo FreeRunner Wifi</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Neo_FreeRunner_Wifi"/>
				<updated>2008-10-08T23:20:37Z</updated>
		
		<summary type="html">&lt;p&gt;Michaelshiloh: /* Known Issues with GUI */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|Neo FreeRunner Menu}}&lt;br /&gt;
&lt;br /&gt;
This page documents the [http://en.wikipedia.org/wiki/Wireless_networking wireless networking] solutions commonly known as [http://en.wikipedia.org/wiki/Wireless_LAN WLAN] or WiFi. &lt;br /&gt;
&lt;br /&gt;
There are other ways to enable wireless communications on the Neo, including [[Bluetooth]]. For Bluetooth solutions, see [[How to use bluetooth to transfer data between Neo and Desk-top]] and [[Manually using Bluetooth]].&lt;br /&gt;
&lt;br /&gt;
== Using the GUI on 2008.8 ==&lt;br /&gt;
&lt;br /&gt;
In the Settings application on Om 2008.8, there's a &amp;quot;WiFi&amp;quot; item. It should work fairly well in stable-updated 2008.8 (even with WPA2).&lt;br /&gt;
&lt;br /&gt;
If it says &amp;quot;WiFi unknown&amp;quot;, you can delete the /etc/volatives.cache file and reboot.  It should work after that.[http://docs.openmoko.org/trac/ticket/1734]  After connecting using the GUI, you may also need to run &amp;quot;udhcpc eth0&amp;quot; manually in the terminal to get DNS entries added to your resolv.conf.  You may also need to run &amp;quot;ifdown usb0&amp;quot; to remove the routing issue caused by having both interfaces up at the same time.  Some users have reported that 802.11g modulation needs to be enabled on APs to allow the FreeRunner to connect (The hardware is suppose to support 802.11b/g).&lt;br /&gt;
&lt;br /&gt;
Otherwise there's also [[lint-wifi]].  Refer to the section below, [[#Available Software|&amp;quot;Available Software&amp;quot;]] to find out what else might be available.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== How can I tell what Access Points (APs) are visible to me? ==&lt;br /&gt;
&lt;br /&gt;
You can connect to wireless networks through wireless [http://en.wikipedia.org/wiki/Access_point| access points]. If you want to know the names of all the access points that are currently visible to you, you can perform a scan with this command:&lt;br /&gt;
&lt;br /&gt;
 root@om-gta02:~# '''iwlist eth0 scan'''&lt;br /&gt;
&lt;br /&gt;
If anything is visible you will get a list that looks something like this:&lt;br /&gt;
&lt;br /&gt;
 eth0      Scan completed :&lt;br /&gt;
           Cell 01 - Address: 00:16:B6:DE:77:58&lt;br /&gt;
                     ESSID:&amp;quot;StarvinMarvin&amp;quot;&lt;br /&gt;
                     Mode:Master&lt;br /&gt;
                     Frequency:2.437 GHz (Channel 6)&lt;br /&gt;
                     Quality=9/94  Signal level=-86 dBm  Noise level=-95 dBm&lt;br /&gt;
                     Encryption key:on&lt;br /&gt;
                     Extra:bcn_int=100&lt;br /&gt;
                     Extra:wpa_ie=dd180050f20101000050f20201000050f20201000050f2020000&lt;br /&gt;
           Cell 02 - Address: 00:21:29:AA:10:97&lt;br /&gt;
                     ESSID:&amp;quot;CandT Network&amp;quot;&lt;br /&gt;
                     Mode:Master&lt;br /&gt;
                     Frequency:2.437 GHz (Channel 6)&lt;br /&gt;
                     Quality=39/94  Signal level=-56 dBm  Noise level=-95 dBm&lt;br /&gt;
                     Encryption key:on&lt;br /&gt;
                     Extra:bcn_int=100&lt;br /&gt;
                     Extra:wpa_ie=dd1c0050f20101000050f20202000050f2040050f20201000050f2020000&lt;br /&gt;
                     Extra:rsn_ie=30180100000fac020200000fac04000fac020100000fac020000&lt;br /&gt;
           Cell 03 - Address: 00:14:95:1B:8E:B9&lt;br /&gt;
                     ESSID:&amp;quot;2WIRE852&amp;quot;&lt;br /&gt;
                     Mode:Master&lt;br /&gt;
                     Frequency:2.437 GHz (Channel 6)&lt;br /&gt;
                     Quality=5/94  Signal level=-90 dBm  Noise level=-95 dBm&lt;br /&gt;
                     Encryption key:on&lt;br /&gt;
                     Extra:bcn_int=100&lt;br /&gt;
           Cell 04 - Address: 00:E0:98:52:3D:78&lt;br /&gt;
                     ESSID:&amp;quot;smith&amp;quot;&lt;br /&gt;
                     Mode:Master&lt;br /&gt;
                     Frequency:2.437 GHz (Channel 6)&lt;br /&gt;
                     Quality=36/94  Signal level=-59 dBm  Noise level=-95 dBm&lt;br /&gt;
                     Encryption key:on&lt;br /&gt;
                     Extra:bcn_int=100&lt;br /&gt;
&lt;br /&gt;
If you want to connect to an unsecured network run:&lt;br /&gt;
  &lt;br /&gt;
  udhcpc  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== WPA ==&lt;br /&gt;
&lt;br /&gt;
[http://en.wikipedia.org/wiki/Wi-Fi_Protected_Access  WPA] is an encryption method for securing your wireless network.&lt;br /&gt;
&lt;br /&gt;
=== Using wpa_supplicant manually ===&lt;br /&gt;
&lt;br /&gt;
Create and edit a suitable [[GTA02_WLAN#Sample_wpa_supplicant.conf|/etc/wpa_supplicant/wpa_supplicant.conf]].&lt;br /&gt;
&lt;br /&gt;
Bring up your wireless connection: &lt;br /&gt;
&lt;br /&gt;
 root@om-gta02:~# ifup eth0&lt;br /&gt;
 root@om-gta02:~# wpa_supplicant -ieth0 -c/etc/wpa_supplicant/wpa_supplicant.conf -B&lt;br /&gt;
 root@om-gta02:~# udhcpc eth0&lt;br /&gt;
&lt;br /&gt;
=== Using WPA and /etc/network/interfaces ===&lt;br /&gt;
&lt;br /&gt;
Once you have a [[GTA02_WLAN#Sample_wpa_supplicant.conf|/etc/wpa_supplicant/wpa_supplicant.conf]] file, add a line under the eth0 entry in /etc/network/interfaces:&lt;br /&gt;
&lt;br /&gt;
 iface eth0 inet dhcp&lt;br /&gt;
    wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf&lt;br /&gt;
&lt;br /&gt;
Save your changes and run:&lt;br /&gt;
  # ifdown eth0 &amp;amp;&amp;amp; ifup eth0&lt;br /&gt;
&lt;br /&gt;
You'll get a lot of messages, like &amp;lt;tt&amp;gt;ioctl[SIOCSIWENCODEEXT]: Operation not supported&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;sed: unrecognized option `--quiet'&amp;lt;/tt&amp;gt;, they appear to be harmless. The &amp;quot;--quiet&amp;quot; error message can be avoided by replacing &amp;quot;sed --quiet&amp;quot; with &amp;quot;sed -n&amp;quot; in /etc/wpa_supplicant/*.sh&lt;br /&gt;
&lt;br /&gt;
=== wpa_supplicant.conf ===&lt;br /&gt;
&lt;br /&gt;
==== wpa_supplicant.conf explained ====&lt;br /&gt;
The highest priority is tried first then falls back to the next highest number.&lt;br /&gt;
&lt;br /&gt;
priority=100  1st  &amp;lt;br&amp;gt;&lt;br /&gt;
then&amp;lt;br&amp;gt;&lt;br /&gt;
priority=99  &amp;lt;br&amp;gt; &lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
&lt;br /&gt;
# Simple case: WPA-PSK, PSK as an ASCII passphrase, allow all valid ciphers&lt;br /&gt;
network={&lt;br /&gt;
	ssid=&amp;quot;AP_ESSID&amp;quot;&lt;br /&gt;
	psk=&amp;quot;presharedkey&amp;quot;&lt;br /&gt;
	priority=5&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#try open AP regardless of its SSID.&lt;br /&gt;
# change root password before you go roaming around it could prove dangerous&lt;br /&gt;
network={&lt;br /&gt;
	key_mgmt=NONE&lt;br /&gt;
priority=1  #try any open AP last&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A more in depth explanation can be found here:&amp;lt;br&amp;gt; &lt;br /&gt;
http://hostap.epitest.fi/gitweb/gitweb.cgi?p=hostap.git;a=blob_plain;f=wpa_supplicant/wpa_supplicant.conf&lt;br /&gt;
&lt;br /&gt;
==== Sample wpa_supplicant.conf ====&lt;br /&gt;
&lt;br /&gt;
 ctrl_interface=/var/run/wpa_supplicant&lt;br /&gt;
 ctrl_interface_group=0&lt;br /&gt;
 eapol_version=1&lt;br /&gt;
 ap_scan=1&lt;br /&gt;
 fast_reauth=1 &lt;br /&gt;
 # WPA2:&lt;br /&gt;
 network={&lt;br /&gt;
        ssid=&amp;quot;your ssid&amp;quot;&lt;br /&gt;
        scan_ssid=1&lt;br /&gt;
        proto=RSN&lt;br /&gt;
        key_mgmt=WPA-PSK&lt;br /&gt;
        pairwise=CCMP TKIP&lt;br /&gt;
        group=TKIP CCMP&lt;br /&gt;
        psk=&amp;quot;secret key&amp;quot;&lt;br /&gt;
        priority=50&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 # WPA:&lt;br /&gt;
 network={&lt;br /&gt;
       ssid=&amp;quot;your_ssid&amp;quot;&lt;br /&gt;
       proto=WPA&lt;br /&gt;
       key_mgmt=WPA-PSK&lt;br /&gt;
       pairwise=TKIP&lt;br /&gt;
       group=TKIP&lt;br /&gt;
       scan_ssid=1&lt;br /&gt;
       psk=&amp;quot;secret key&amp;quot;&lt;br /&gt;
       priority=10&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 # WEP:&lt;br /&gt;
 network={&lt;br /&gt;
      ssid=&amp;quot;your_ssid&amp;quot;&lt;br /&gt;
      scan_ssid=1&lt;br /&gt;
      key_mgmt=NONE&lt;br /&gt;
      wep_tx_keyidx=0&lt;br /&gt;
      wep_key0=your_hex_key&lt;br /&gt;
      priority=8&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 # Open:&lt;br /&gt;
 network={&lt;br /&gt;
      ssid=&amp;quot;your ssid&amp;quot;&lt;br /&gt;
      key_mgmt=NONE&lt;br /&gt;
      priority=5&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== Other sample wpa_supplicant.conf files ====&lt;br /&gt;
&lt;br /&gt;
Tom Yates documents his success [http://www.teaparty.net/technotes/openmoko-2.html#Wifi here]&lt;br /&gt;
&lt;br /&gt;
== WEP ==&lt;br /&gt;
&lt;br /&gt;
[http://en.wikipedia.org/wiki/Wired_Equivalent_Privacy WEP] is an encryption method for securing your wireless network. WEP is generally considered to be weak, you should use WPA instead if possible.&lt;br /&gt;
&lt;br /&gt;
=== Using iwconfig manually ===&lt;br /&gt;
&lt;br /&gt;
Note that for WEP our iwconfig requires a more specific format than generic iwconfig.&lt;br /&gt;
&lt;br /&gt;
The canonical way of running iwconfig for WEP would be something like this:&lt;br /&gt;
&lt;br /&gt;
# iwconfig eth0 key A4BEB3B8EC essid xyz&lt;br /&gt;
&lt;br /&gt;
Two things are important here:&lt;br /&gt;
&lt;br /&gt;
* the key must be in HEX. iwconfig will not do anything useful if the key is given as a string.   [http://www.powerdog.com/wepkey.cgi Here] is a handy ASCII string to HEX converter.&lt;br /&gt;
&lt;br /&gt;
* the ESSID must follow the key.&lt;br /&gt;
&lt;br /&gt;
If an incorrect key was set, please stop all activity on the interface for at least two minutes (i.e., killall udhcpc and ifconfig eth0 down), then issue the correct iwconfig command and retry.&lt;br /&gt;
&lt;br /&gt;
=== Using WEP and /etc/network/interfaces ===&lt;br /&gt;
  iface eth0 inet dhcp&lt;br /&gt;
    wireless-key my_wep_key&lt;br /&gt;
    wireless-essid my_essid&lt;br /&gt;
&lt;br /&gt;
 iface eth0 inet dhcp&lt;br /&gt;
    wpa-wep-key0 my_wep_key&lt;br /&gt;
    wpa-key-mgmt NONE&lt;br /&gt;
    wpa-ssid my_essid&lt;br /&gt;
&lt;br /&gt;
Save your changes and run:&lt;br /&gt;
  # ifdown eth0 &amp;amp;&amp;amp; ifup eth0&lt;br /&gt;
&lt;br /&gt;
== Known Issues ==&lt;br /&gt;
&lt;br /&gt;
=== GUI doesn't work in all cases ===&lt;br /&gt;
&lt;br /&gt;
The GUI seems to have some issues that prevent it from working in all cases. &lt;br /&gt;
&lt;br /&gt;
If a Wi-Fi connection can not be made with the GUI, open a shell and use iwconfig manually.&lt;br /&gt;
&lt;br /&gt;
=== Anecdotal solutions ===&lt;br /&gt;
&lt;br /&gt;
These solutions worked for some people:&lt;br /&gt;
&lt;br /&gt;
==== Disable power management ====&lt;br /&gt;
&lt;br /&gt;
Some APs apparently get upset by power managed devices, and the Freerunner enables power management of the wifi by default to preserve battery. One user's wrt54g certainly gets upset from time to time if he connect with the FreeRunner, sometimes refusing to talk to _anything_ over wifi afterwards until rebooted.&lt;br /&gt;
&lt;br /&gt;
==== Modified script ====&lt;br /&gt;
&lt;br /&gt;
&amp;quot;I changed the script a little:&lt;br /&gt;
&lt;br /&gt;
 Exec=xterm -e &amp;quot;ifconfig eth0 down \&lt;br /&gt;
 iwconfig eth0 txpower off channel 0 \&lt;br /&gt;
 while killall wpa_supplicant; do echo 'Killing wpa_sup'; done \&lt;br /&gt;
 killall udhcpc \&lt;br /&gt;
 wpa_supplicant -i eth0 -c /etc/wpa_supplicant/wpa_supplicant.conf -D wext -B \&lt;br /&gt;
 sleep 10; udhcpc&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Now it is working every time.&lt;br /&gt;
I am using 2008.latest (081004) and a linksys WAP54G accesspoint,&lt;br /&gt;
&lt;br /&gt;
==== Use a different channel ====&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Could not get it to work properly on channel 11, so I set my accesspoint to channel 1.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Wake up from wireless (wow)==&lt;br /&gt;
&lt;br /&gt;
Wi-Fi module constantly drain currents after module power up, for wi-fi SIP phone or some application need long standby time, will need wake up from wireless function for power saving. There is a sleep mode that Ar6k supported for wake up from wireless.&lt;br /&gt;
&lt;br /&gt;
 http://svn.openmoko.org/trunk/src/target/AR6kSDK.build_sw.18/host/tools/wmiconfig&lt;br /&gt;
&lt;br /&gt;
 export ATH_CROSS_COMPILE_TYPE=arm-angstrom-linux-gnueabi-&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
Debian package:&lt;br /&gt;
&lt;br /&gt;
 wget http://meshy.org/~ato/debian/pool/main/w/wmiconfig/wmiconfig_0.0.18-1_armel.deb&lt;br /&gt;
 dpkg -i wmiconfig_0.0.18-1_armel.deb&lt;br /&gt;
&lt;br /&gt;
Basically, it's achieved via wmiconfig tool to issue IOCTL if we want&lt;br /&gt;
ar6k wifi module to generate interrupt to host controller. The procedure&lt;br /&gt;
to enable wakeup-on-wireless(wow) is listed here:&lt;br /&gt;
&lt;br /&gt;
 1. wmiconfig --sethostmode asleep /* to tell ar6k what host's current is */&lt;br /&gt;
 2. wmiconfig --setwowmode enable /* enable wow function */&lt;br /&gt;
 3. wmiconfig --addpattern 0 1 33 01 ff /* add packet filter pattern, this is the ICMP filter pattern */&lt;br /&gt;
 4. apm -s&lt;br /&gt;
 5. ping IP_of_Neo&lt;br /&gt;
 6. The GPIO1 pin would be pulled up. The system would resume then.&lt;br /&gt;
 7. wmiconfig --sethostmode awake /* The firmware of ar6k will pull low the GPIO1 pin */&lt;br /&gt;
&lt;br /&gt;
--addwowpattern &amp;lt;list-id&amp;gt; &amp;lt;pattern-size&amp;gt; &amp;lt;pattern-offset&amp;gt; &amp;lt;pattern&amp;gt; &amp;lt;pattern-mask&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here are some addwowpattern commands:&lt;br /&gt;
&lt;br /&gt;
Protocol type=IP=0800&lt;br /&gt;
Protocol type in IP header=ICMP=01&lt;br /&gt;
&lt;br /&gt;
 - To filter for IP packets(offset 22)&lt;br /&gt;
 wmiconfig --addwowpattern 0 2 22 0800 ffff&lt;br /&gt;
 - To filter for ICMP packets (offset 33)&lt;br /&gt;
 wmiconfig --addwowpattern 0 1 33 01 ff&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== A very ugly /etc/init.d/wlan startscript ==&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 #&lt;br /&gt;
 # wlan	This shell script starts and stops wlan.&lt;br /&gt;
 #&lt;br /&gt;
 # processname: wlan&lt;br /&gt;
 &lt;br /&gt;
 # Source function library.&lt;br /&gt;
 #. /etc/rc.d/init.d/functions&lt;br /&gt;
 # &amp;quot;written&amp;quot; by HdR&lt;br /&gt;
 &lt;br /&gt;
 RETVAL=0&lt;br /&gt;
 prog=&amp;quot;wlan&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # test -f /etc/default/$prog &amp;amp;&amp;amp; . /etc/default/$prog&lt;br /&gt;
 &lt;br /&gt;
 start() {&lt;br /&gt;
 	echo -n &amp;quot;Starting $prog: &amp;quot;&lt;br /&gt;
 	ifconfig eth0 up&lt;br /&gt;
 	wpa_supplicant -ieth0 -c/etc/wpa_supplicant/wpa_supplicant.conf -B&lt;br /&gt;
 	sleep 10&lt;br /&gt;
 	udhcpc eth0&lt;br /&gt;
 	RETVAL=$?&lt;br /&gt;
 	return $RETVAL&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 stop() {&lt;br /&gt;
 	# Stop daemons.&lt;br /&gt;
 	echo -n &amp;quot;Shutting down $prog: &amp;quot;&lt;br /&gt;
         killall wpa_supplicant&lt;br /&gt;
 	ifconfig eth0 down&lt;br /&gt;
 #        killproc gpsd&lt;br /&gt;
 	RETVAL=$?&lt;br /&gt;
 	return $RETVAL&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 # See how we were called.&lt;br /&gt;
 case &amp;quot;$1&amp;quot; in&lt;br /&gt;
   start)&lt;br /&gt;
 	start&lt;br /&gt;
 	;;&lt;br /&gt;
   stop)&lt;br /&gt;
 	stop&lt;br /&gt;
 	;;&lt;br /&gt;
   restart|reload)&lt;br /&gt;
 	stop&lt;br /&gt;
 	start&lt;br /&gt;
 	RETVAL=$?&lt;br /&gt;
 	;;&lt;br /&gt;
   *)&lt;br /&gt;
 	echo &amp;quot;Usage: $0 {start|stop|restart}&amp;quot;&lt;br /&gt;
 	exit 1&lt;br /&gt;
 esac&lt;br /&gt;
 &lt;br /&gt;
 exit $RETVAL&lt;br /&gt;
&lt;br /&gt;
Note: Don't forget to make this script executable with &amp;quot;chmod +x &amp;lt;filename&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Route internet connection through Wifi rather than USB ==&lt;br /&gt;
&lt;br /&gt;
Wifi is faster than USB, so it is a good idea to tell the FreeRunner to connect through it. Put the following in /etc/network/interfaces under eth0:&lt;br /&gt;
&lt;br /&gt;
up route del default gw 192.168.0.200&lt;br /&gt;
&lt;br /&gt;
This will remove your computer as the default gateway and use the  wireless one when the interface is brought up. User nickd reports that sometimes it fails so he has had to put it in twice.&lt;br /&gt;
&lt;br /&gt;
== ssh into FR over WiFi ==&lt;br /&gt;
dropbear, the ssh server, is configured to listen on the USB interface only. Wireless interfaces like wlan or bluetooth are disabled for security reasons (empty root password).&lt;br /&gt;
&lt;br /&gt;
If you want to enable ssh over WiFi, change the /etc/default/dropbear from:&lt;br /&gt;
&lt;br /&gt;
  DROPBEAR_PORT=`ip addr list usb0 | awk 'BEGIN { FS=&amp;quot;[ /]+&amp;quot; } /inet / { print  $3 }'`:22&lt;br /&gt;
&lt;br /&gt;
(which actually only prepends the usb0 ip address before the :22)&lt;br /&gt;
&lt;br /&gt;
into:&lt;br /&gt;
&lt;br /&gt;
  DROPBEAR_PORT=22&lt;br /&gt;
&lt;br /&gt;
* Be careful with this config file since it can close the only door into your phone.&lt;br /&gt;
&lt;br /&gt;
* Set a root password!&lt;br /&gt;
&lt;br /&gt;
== Available Software ==&lt;br /&gt;
&lt;br /&gt;
Programs in development providing GUI interfaces to administer WiFi connections:&lt;br /&gt;
&lt;br /&gt;
* [[Lint-wifi]]&lt;br /&gt;
* [[Mofi]]&lt;br /&gt;
* [[Camp-Wifi]]&lt;br /&gt;
&lt;br /&gt;
== External links ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/ WiFi on Linux]&lt;br /&gt;
&lt;br /&gt;
[[Category:Neo FreeRunner Hardware]]&lt;br /&gt;
[[Category:Networking]]&lt;/div&gt;</summary>
		<author><name>Michaelshiloh</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Neo_FreeRunner_Wifi</id>
		<title>Neo FreeRunner Wifi</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Neo_FreeRunner_Wifi"/>
				<updated>2008-10-08T23:19:37Z</updated>
		
		<summary type="html">&lt;p&gt;Michaelshiloh: /* WEP */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|Neo FreeRunner Menu}}&lt;br /&gt;
&lt;br /&gt;
This page documents the [http://en.wikipedia.org/wiki/Wireless_networking wireless networking] solutions commonly known as [http://en.wikipedia.org/wiki/Wireless_LAN WLAN] or WiFi. &lt;br /&gt;
&lt;br /&gt;
There are other ways to enable wireless communications on the Neo, including [[Bluetooth]]. For Bluetooth solutions, see [[How to use bluetooth to transfer data between Neo and Desk-top]] and [[Manually using Bluetooth]].&lt;br /&gt;
&lt;br /&gt;
== Using the GUI on 2008.8 ==&lt;br /&gt;
&lt;br /&gt;
In the Settings application on Om 2008.8, there's a &amp;quot;WiFi&amp;quot; item. It should work fairly well in stable-updated 2008.8 (even with WPA2).&lt;br /&gt;
&lt;br /&gt;
If it says &amp;quot;WiFi unknown&amp;quot;, you can delete the /etc/volatives.cache file and reboot.  It should work after that.[http://docs.openmoko.org/trac/ticket/1734]  After connecting using the GUI, you may also need to run &amp;quot;udhcpc eth0&amp;quot; manually in the terminal to get DNS entries added to your resolv.conf.  You may also need to run &amp;quot;ifdown usb0&amp;quot; to remove the routing issue caused by having both interfaces up at the same time.  Some users have reported that 802.11g modulation needs to be enabled on APs to allow the FreeRunner to connect (The hardware is suppose to support 802.11b/g).&lt;br /&gt;
&lt;br /&gt;
Otherwise there's also [[lint-wifi]].  Refer to the section below, [[#Available Software|&amp;quot;Available Software&amp;quot;]] to find out what else might be available.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== How can I tell what Access Points (APs) are visible to me? ==&lt;br /&gt;
&lt;br /&gt;
You can connect to wireless networks through wireless [http://en.wikipedia.org/wiki/Access_point| access points]. If you want to know the names of all the access points that are currently visible to you, you can perform a scan with this command:&lt;br /&gt;
&lt;br /&gt;
 root@om-gta02:~# '''iwlist eth0 scan'''&lt;br /&gt;
&lt;br /&gt;
If anything is visible you will get a list that looks something like this:&lt;br /&gt;
&lt;br /&gt;
 eth0      Scan completed :&lt;br /&gt;
           Cell 01 - Address: 00:16:B6:DE:77:58&lt;br /&gt;
                     ESSID:&amp;quot;StarvinMarvin&amp;quot;&lt;br /&gt;
                     Mode:Master&lt;br /&gt;
                     Frequency:2.437 GHz (Channel 6)&lt;br /&gt;
                     Quality=9/94  Signal level=-86 dBm  Noise level=-95 dBm&lt;br /&gt;
                     Encryption key:on&lt;br /&gt;
                     Extra:bcn_int=100&lt;br /&gt;
                     Extra:wpa_ie=dd180050f20101000050f20201000050f20201000050f2020000&lt;br /&gt;
           Cell 02 - Address: 00:21:29:AA:10:97&lt;br /&gt;
                     ESSID:&amp;quot;CandT Network&amp;quot;&lt;br /&gt;
                     Mode:Master&lt;br /&gt;
                     Frequency:2.437 GHz (Channel 6)&lt;br /&gt;
                     Quality=39/94  Signal level=-56 dBm  Noise level=-95 dBm&lt;br /&gt;
                     Encryption key:on&lt;br /&gt;
                     Extra:bcn_int=100&lt;br /&gt;
                     Extra:wpa_ie=dd1c0050f20101000050f20202000050f2040050f20201000050f2020000&lt;br /&gt;
                     Extra:rsn_ie=30180100000fac020200000fac04000fac020100000fac020000&lt;br /&gt;
           Cell 03 - Address: 00:14:95:1B:8E:B9&lt;br /&gt;
                     ESSID:&amp;quot;2WIRE852&amp;quot;&lt;br /&gt;
                     Mode:Master&lt;br /&gt;
                     Frequency:2.437 GHz (Channel 6)&lt;br /&gt;
                     Quality=5/94  Signal level=-90 dBm  Noise level=-95 dBm&lt;br /&gt;
                     Encryption key:on&lt;br /&gt;
                     Extra:bcn_int=100&lt;br /&gt;
           Cell 04 - Address: 00:E0:98:52:3D:78&lt;br /&gt;
                     ESSID:&amp;quot;smith&amp;quot;&lt;br /&gt;
                     Mode:Master&lt;br /&gt;
                     Frequency:2.437 GHz (Channel 6)&lt;br /&gt;
                     Quality=36/94  Signal level=-59 dBm  Noise level=-95 dBm&lt;br /&gt;
                     Encryption key:on&lt;br /&gt;
                     Extra:bcn_int=100&lt;br /&gt;
&lt;br /&gt;
If you want to connect to an unsecured network run:&lt;br /&gt;
  &lt;br /&gt;
  udhcpc  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== WPA ==&lt;br /&gt;
&lt;br /&gt;
[http://en.wikipedia.org/wiki/Wi-Fi_Protected_Access  WPA] is an encryption method for securing your wireless network.&lt;br /&gt;
&lt;br /&gt;
=== Using wpa_supplicant manually ===&lt;br /&gt;
&lt;br /&gt;
Create and edit a suitable [[GTA02_WLAN#Sample_wpa_supplicant.conf|/etc/wpa_supplicant/wpa_supplicant.conf]].&lt;br /&gt;
&lt;br /&gt;
Bring up your wireless connection: &lt;br /&gt;
&lt;br /&gt;
 root@om-gta02:~# ifup eth0&lt;br /&gt;
 root@om-gta02:~# wpa_supplicant -ieth0 -c/etc/wpa_supplicant/wpa_supplicant.conf -B&lt;br /&gt;
 root@om-gta02:~# udhcpc eth0&lt;br /&gt;
&lt;br /&gt;
=== Using WPA and /etc/network/interfaces ===&lt;br /&gt;
&lt;br /&gt;
Once you have a [[GTA02_WLAN#Sample_wpa_supplicant.conf|/etc/wpa_supplicant/wpa_supplicant.conf]] file, add a line under the eth0 entry in /etc/network/interfaces:&lt;br /&gt;
&lt;br /&gt;
 iface eth0 inet dhcp&lt;br /&gt;
    wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf&lt;br /&gt;
&lt;br /&gt;
Save your changes and run:&lt;br /&gt;
  # ifdown eth0 &amp;amp;&amp;amp; ifup eth0&lt;br /&gt;
&lt;br /&gt;
You'll get a lot of messages, like &amp;lt;tt&amp;gt;ioctl[SIOCSIWENCODEEXT]: Operation not supported&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;sed: unrecognized option `--quiet'&amp;lt;/tt&amp;gt;, they appear to be harmless. The &amp;quot;--quiet&amp;quot; error message can be avoided by replacing &amp;quot;sed --quiet&amp;quot; with &amp;quot;sed -n&amp;quot; in /etc/wpa_supplicant/*.sh&lt;br /&gt;
&lt;br /&gt;
=== wpa_supplicant.conf ===&lt;br /&gt;
&lt;br /&gt;
==== wpa_supplicant.conf explained ====&lt;br /&gt;
The highest priority is tried first then falls back to the next highest number.&lt;br /&gt;
&lt;br /&gt;
priority=100  1st  &amp;lt;br&amp;gt;&lt;br /&gt;
then&amp;lt;br&amp;gt;&lt;br /&gt;
priority=99  &amp;lt;br&amp;gt; &lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
&lt;br /&gt;
# Simple case: WPA-PSK, PSK as an ASCII passphrase, allow all valid ciphers&lt;br /&gt;
network={&lt;br /&gt;
	ssid=&amp;quot;AP_ESSID&amp;quot;&lt;br /&gt;
	psk=&amp;quot;presharedkey&amp;quot;&lt;br /&gt;
	priority=5&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#try open AP regardless of its SSID.&lt;br /&gt;
# change root password before you go roaming around it could prove dangerous&lt;br /&gt;
network={&lt;br /&gt;
	key_mgmt=NONE&lt;br /&gt;
priority=1  #try any open AP last&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A more in depth explanation can be found here:&amp;lt;br&amp;gt; &lt;br /&gt;
http://hostap.epitest.fi/gitweb/gitweb.cgi?p=hostap.git;a=blob_plain;f=wpa_supplicant/wpa_supplicant.conf&lt;br /&gt;
&lt;br /&gt;
==== Sample wpa_supplicant.conf ====&lt;br /&gt;
&lt;br /&gt;
 ctrl_interface=/var/run/wpa_supplicant&lt;br /&gt;
 ctrl_interface_group=0&lt;br /&gt;
 eapol_version=1&lt;br /&gt;
 ap_scan=1&lt;br /&gt;
 fast_reauth=1 &lt;br /&gt;
 # WPA2:&lt;br /&gt;
 network={&lt;br /&gt;
        ssid=&amp;quot;your ssid&amp;quot;&lt;br /&gt;
        scan_ssid=1&lt;br /&gt;
        proto=RSN&lt;br /&gt;
        key_mgmt=WPA-PSK&lt;br /&gt;
        pairwise=CCMP TKIP&lt;br /&gt;
        group=TKIP CCMP&lt;br /&gt;
        psk=&amp;quot;secret key&amp;quot;&lt;br /&gt;
        priority=50&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 # WPA:&lt;br /&gt;
 network={&lt;br /&gt;
       ssid=&amp;quot;your_ssid&amp;quot;&lt;br /&gt;
       proto=WPA&lt;br /&gt;
       key_mgmt=WPA-PSK&lt;br /&gt;
       pairwise=TKIP&lt;br /&gt;
       group=TKIP&lt;br /&gt;
       scan_ssid=1&lt;br /&gt;
       psk=&amp;quot;secret key&amp;quot;&lt;br /&gt;
       priority=10&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 # WEP:&lt;br /&gt;
 network={&lt;br /&gt;
      ssid=&amp;quot;your_ssid&amp;quot;&lt;br /&gt;
      scan_ssid=1&lt;br /&gt;
      key_mgmt=NONE&lt;br /&gt;
      wep_tx_keyidx=0&lt;br /&gt;
      wep_key0=your_hex_key&lt;br /&gt;
      priority=8&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 # Open:&lt;br /&gt;
 network={&lt;br /&gt;
      ssid=&amp;quot;your ssid&amp;quot;&lt;br /&gt;
      key_mgmt=NONE&lt;br /&gt;
      priority=5&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== Other sample wpa_supplicant.conf files ====&lt;br /&gt;
&lt;br /&gt;
Tom Yates documents his success [http://www.teaparty.net/technotes/openmoko-2.html#Wifi here]&lt;br /&gt;
&lt;br /&gt;
== WEP ==&lt;br /&gt;
&lt;br /&gt;
[http://en.wikipedia.org/wiki/Wired_Equivalent_Privacy WEP] is an encryption method for securing your wireless network. WEP is generally considered to be weak, you should use WPA instead if possible.&lt;br /&gt;
&lt;br /&gt;
=== Using iwconfig manually ===&lt;br /&gt;
&lt;br /&gt;
Note that for WEP our iwconfig requires a more specific format than generic iwconfig.&lt;br /&gt;
&lt;br /&gt;
The canonical way of running iwconfig for WEP would be something like this:&lt;br /&gt;
&lt;br /&gt;
# iwconfig eth0 key A4BEB3B8EC essid xyz&lt;br /&gt;
&lt;br /&gt;
Two things are important here:&lt;br /&gt;
&lt;br /&gt;
* the key must be in HEX. iwconfig will not do anything useful if the key is given as a string.   [http://www.powerdog.com/wepkey.cgi Here] is a handy ASCII string to HEX converter.&lt;br /&gt;
&lt;br /&gt;
* the ESSID must follow the key.&lt;br /&gt;
&lt;br /&gt;
If an incorrect key was set, please stop all activity on the interface for at least two minutes (i.e., killall udhcpc and ifconfig eth0 down), then issue the correct iwconfig command and retry.&lt;br /&gt;
&lt;br /&gt;
=== Using WEP and /etc/network/interfaces ===&lt;br /&gt;
  iface eth0 inet dhcp&lt;br /&gt;
    wireless-key my_wep_key&lt;br /&gt;
    wireless-essid my_essid&lt;br /&gt;
&lt;br /&gt;
 iface eth0 inet dhcp&lt;br /&gt;
    wpa-wep-key0 my_wep_key&lt;br /&gt;
    wpa-key-mgmt NONE&lt;br /&gt;
    wpa-ssid my_essid&lt;br /&gt;
&lt;br /&gt;
Save your changes and run:&lt;br /&gt;
  # ifdown eth0 &amp;amp;&amp;amp; ifup eth0&lt;br /&gt;
&lt;br /&gt;
== Known Issues ==&lt;br /&gt;
&lt;br /&gt;
=== Known Issues with GUI ===&lt;br /&gt;
&lt;br /&gt;
The GUI seems to have some issues that prevent it from working in all cases. &lt;br /&gt;
&lt;br /&gt;
If a Wi-Fi connection can not be made with the GUI, open a shell and use iwconfig manually.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Anecdotal solutions ===&lt;br /&gt;
&lt;br /&gt;
These solutions worked for some people:&lt;br /&gt;
&lt;br /&gt;
==== Disable power management ====&lt;br /&gt;
&lt;br /&gt;
Some APs apparently get upset by power managed devices, and the Freerunner enables power management of the wifi by default to preserve battery. One user's wrt54g certainly gets upset from time to time if he connect with the FreeRunner, sometimes refusing to talk to _anything_ over wifi afterwards until rebooted.&lt;br /&gt;
&lt;br /&gt;
==== Modified script ====&lt;br /&gt;
&lt;br /&gt;
&amp;quot;I changed the script a little:&lt;br /&gt;
&lt;br /&gt;
 Exec=xterm -e &amp;quot;ifconfig eth0 down \&lt;br /&gt;
 iwconfig eth0 txpower off channel 0 \&lt;br /&gt;
 while killall wpa_supplicant; do echo 'Killing wpa_sup'; done \&lt;br /&gt;
 killall udhcpc \&lt;br /&gt;
 wpa_supplicant -i eth0 -c /etc/wpa_supplicant/wpa_supplicant.conf -D wext -B \&lt;br /&gt;
 sleep 10; udhcpc&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Now it is working every time.&lt;br /&gt;
I am using 2008.latest (081004) and a linksys WAP54G accesspoint,&lt;br /&gt;
&lt;br /&gt;
==== Use a different channel ====&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Could not get it to work properly on channel 11, so I set my accesspoint to channel 1.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Wake up from wireless (wow)==&lt;br /&gt;
&lt;br /&gt;
Wi-Fi module constantly drain currents after module power up, for wi-fi SIP phone or some application need long standby time, will need wake up from wireless function for power saving. There is a sleep mode that Ar6k supported for wake up from wireless.&lt;br /&gt;
&lt;br /&gt;
 http://svn.openmoko.org/trunk/src/target/AR6kSDK.build_sw.18/host/tools/wmiconfig&lt;br /&gt;
&lt;br /&gt;
 export ATH_CROSS_COMPILE_TYPE=arm-angstrom-linux-gnueabi-&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
Debian package:&lt;br /&gt;
&lt;br /&gt;
 wget http://meshy.org/~ato/debian/pool/main/w/wmiconfig/wmiconfig_0.0.18-1_armel.deb&lt;br /&gt;
 dpkg -i wmiconfig_0.0.18-1_armel.deb&lt;br /&gt;
&lt;br /&gt;
Basically, it's achieved via wmiconfig tool to issue IOCTL if we want&lt;br /&gt;
ar6k wifi module to generate interrupt to host controller. The procedure&lt;br /&gt;
to enable wakeup-on-wireless(wow) is listed here:&lt;br /&gt;
&lt;br /&gt;
 1. wmiconfig --sethostmode asleep /* to tell ar6k what host's current is */&lt;br /&gt;
 2. wmiconfig --setwowmode enable /* enable wow function */&lt;br /&gt;
 3. wmiconfig --addpattern 0 1 33 01 ff /* add packet filter pattern, this is the ICMP filter pattern */&lt;br /&gt;
 4. apm -s&lt;br /&gt;
 5. ping IP_of_Neo&lt;br /&gt;
 6. The GPIO1 pin would be pulled up. The system would resume then.&lt;br /&gt;
 7. wmiconfig --sethostmode awake /* The firmware of ar6k will pull low the GPIO1 pin */&lt;br /&gt;
&lt;br /&gt;
--addwowpattern &amp;lt;list-id&amp;gt; &amp;lt;pattern-size&amp;gt; &amp;lt;pattern-offset&amp;gt; &amp;lt;pattern&amp;gt; &amp;lt;pattern-mask&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here are some addwowpattern commands:&lt;br /&gt;
&lt;br /&gt;
Protocol type=IP=0800&lt;br /&gt;
Protocol type in IP header=ICMP=01&lt;br /&gt;
&lt;br /&gt;
 - To filter for IP packets(offset 22)&lt;br /&gt;
 wmiconfig --addwowpattern 0 2 22 0800 ffff&lt;br /&gt;
 - To filter for ICMP packets (offset 33)&lt;br /&gt;
 wmiconfig --addwowpattern 0 1 33 01 ff&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== A very ugly /etc/init.d/wlan startscript ==&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 #&lt;br /&gt;
 # wlan	This shell script starts and stops wlan.&lt;br /&gt;
 #&lt;br /&gt;
 # processname: wlan&lt;br /&gt;
 &lt;br /&gt;
 # Source function library.&lt;br /&gt;
 #. /etc/rc.d/init.d/functions&lt;br /&gt;
 # &amp;quot;written&amp;quot; by HdR&lt;br /&gt;
 &lt;br /&gt;
 RETVAL=0&lt;br /&gt;
 prog=&amp;quot;wlan&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # test -f /etc/default/$prog &amp;amp;&amp;amp; . /etc/default/$prog&lt;br /&gt;
 &lt;br /&gt;
 start() {&lt;br /&gt;
 	echo -n &amp;quot;Starting $prog: &amp;quot;&lt;br /&gt;
 	ifconfig eth0 up&lt;br /&gt;
 	wpa_supplicant -ieth0 -c/etc/wpa_supplicant/wpa_supplicant.conf -B&lt;br /&gt;
 	sleep 10&lt;br /&gt;
 	udhcpc eth0&lt;br /&gt;
 	RETVAL=$?&lt;br /&gt;
 	return $RETVAL&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 stop() {&lt;br /&gt;
 	# Stop daemons.&lt;br /&gt;
 	echo -n &amp;quot;Shutting down $prog: &amp;quot;&lt;br /&gt;
         killall wpa_supplicant&lt;br /&gt;
 	ifconfig eth0 down&lt;br /&gt;
 #        killproc gpsd&lt;br /&gt;
 	RETVAL=$?&lt;br /&gt;
 	return $RETVAL&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 # See how we were called.&lt;br /&gt;
 case &amp;quot;$1&amp;quot; in&lt;br /&gt;
   start)&lt;br /&gt;
 	start&lt;br /&gt;
 	;;&lt;br /&gt;
   stop)&lt;br /&gt;
 	stop&lt;br /&gt;
 	;;&lt;br /&gt;
   restart|reload)&lt;br /&gt;
 	stop&lt;br /&gt;
 	start&lt;br /&gt;
 	RETVAL=$?&lt;br /&gt;
 	;;&lt;br /&gt;
   *)&lt;br /&gt;
 	echo &amp;quot;Usage: $0 {start|stop|restart}&amp;quot;&lt;br /&gt;
 	exit 1&lt;br /&gt;
 esac&lt;br /&gt;
 &lt;br /&gt;
 exit $RETVAL&lt;br /&gt;
&lt;br /&gt;
Note: Don't forget to make this script executable with &amp;quot;chmod +x &amp;lt;filename&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Route internet connection through Wifi rather than USB ==&lt;br /&gt;
&lt;br /&gt;
Wifi is faster than USB, so it is a good idea to tell the FreeRunner to connect through it. Put the following in /etc/network/interfaces under eth0:&lt;br /&gt;
&lt;br /&gt;
up route del default gw 192.168.0.200&lt;br /&gt;
&lt;br /&gt;
This will remove your computer as the default gateway and use the  wireless one when the interface is brought up. User nickd reports that sometimes it fails so he has had to put it in twice.&lt;br /&gt;
&lt;br /&gt;
== ssh into FR over WiFi ==&lt;br /&gt;
dropbear, the ssh server, is configured to listen on the USB interface only. Wireless interfaces like wlan or bluetooth are disabled for security reasons (empty root password).&lt;br /&gt;
&lt;br /&gt;
If you want to enable ssh over WiFi, change the /etc/default/dropbear from:&lt;br /&gt;
&lt;br /&gt;
  DROPBEAR_PORT=`ip addr list usb0 | awk 'BEGIN { FS=&amp;quot;[ /]+&amp;quot; } /inet / { print  $3 }'`:22&lt;br /&gt;
&lt;br /&gt;
(which actually only prepends the usb0 ip address before the :22)&lt;br /&gt;
&lt;br /&gt;
into:&lt;br /&gt;
&lt;br /&gt;
  DROPBEAR_PORT=22&lt;br /&gt;
&lt;br /&gt;
* Be careful with this config file since it can close the only door into your phone.&lt;br /&gt;
&lt;br /&gt;
* Set a root password!&lt;br /&gt;
&lt;br /&gt;
== Available Software ==&lt;br /&gt;
&lt;br /&gt;
Programs in development providing GUI interfaces to administer WiFi connections:&lt;br /&gt;
&lt;br /&gt;
* [[Lint-wifi]]&lt;br /&gt;
* [[Mofi]]&lt;br /&gt;
* [[Camp-Wifi]]&lt;br /&gt;
&lt;br /&gt;
== External links ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/ WiFi on Linux]&lt;br /&gt;
&lt;br /&gt;
[[Category:Neo FreeRunner Hardware]]&lt;br /&gt;
[[Category:Networking]]&lt;/div&gt;</summary>
		<author><name>Michaelshiloh</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Neo_FreeRunner_Wifi</id>
		<title>Neo FreeRunner Wifi</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Neo_FreeRunner_Wifi"/>
				<updated>2008-10-08T23:18:55Z</updated>
		
		<summary type="html">&lt;p&gt;Michaelshiloh: /* Using iwconfig manually */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|Neo FreeRunner Menu}}&lt;br /&gt;
&lt;br /&gt;
This page documents the [http://en.wikipedia.org/wiki/Wireless_networking wireless networking] solutions commonly known as [http://en.wikipedia.org/wiki/Wireless_LAN WLAN] or WiFi. &lt;br /&gt;
&lt;br /&gt;
There are other ways to enable wireless communications on the Neo, including [[Bluetooth]]. For Bluetooth solutions, see [[How to use bluetooth to transfer data between Neo and Desk-top]] and [[Manually using Bluetooth]].&lt;br /&gt;
&lt;br /&gt;
== Using the GUI on 2008.8 ==&lt;br /&gt;
&lt;br /&gt;
In the Settings application on Om 2008.8, there's a &amp;quot;WiFi&amp;quot; item. It should work fairly well in stable-updated 2008.8 (even with WPA2).&lt;br /&gt;
&lt;br /&gt;
If it says &amp;quot;WiFi unknown&amp;quot;, you can delete the /etc/volatives.cache file and reboot.  It should work after that.[http://docs.openmoko.org/trac/ticket/1734]  After connecting using the GUI, you may also need to run &amp;quot;udhcpc eth0&amp;quot; manually in the terminal to get DNS entries added to your resolv.conf.  You may also need to run &amp;quot;ifdown usb0&amp;quot; to remove the routing issue caused by having both interfaces up at the same time.  Some users have reported that 802.11g modulation needs to be enabled on APs to allow the FreeRunner to connect (The hardware is suppose to support 802.11b/g).&lt;br /&gt;
&lt;br /&gt;
Otherwise there's also [[lint-wifi]].  Refer to the section below, [[#Available Software|&amp;quot;Available Software&amp;quot;]] to find out what else might be available.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== How can I tell what Access Points (APs) are visible to me? ==&lt;br /&gt;
&lt;br /&gt;
You can connect to wireless networks through wireless [http://en.wikipedia.org/wiki/Access_point| access points]. If you want to know the names of all the access points that are currently visible to you, you can perform a scan with this command:&lt;br /&gt;
&lt;br /&gt;
 root@om-gta02:~# '''iwlist eth0 scan'''&lt;br /&gt;
&lt;br /&gt;
If anything is visible you will get a list that looks something like this:&lt;br /&gt;
&lt;br /&gt;
 eth0      Scan completed :&lt;br /&gt;
           Cell 01 - Address: 00:16:B6:DE:77:58&lt;br /&gt;
                     ESSID:&amp;quot;StarvinMarvin&amp;quot;&lt;br /&gt;
                     Mode:Master&lt;br /&gt;
                     Frequency:2.437 GHz (Channel 6)&lt;br /&gt;
                     Quality=9/94  Signal level=-86 dBm  Noise level=-95 dBm&lt;br /&gt;
                     Encryption key:on&lt;br /&gt;
                     Extra:bcn_int=100&lt;br /&gt;
                     Extra:wpa_ie=dd180050f20101000050f20201000050f20201000050f2020000&lt;br /&gt;
           Cell 02 - Address: 00:21:29:AA:10:97&lt;br /&gt;
                     ESSID:&amp;quot;CandT Network&amp;quot;&lt;br /&gt;
                     Mode:Master&lt;br /&gt;
                     Frequency:2.437 GHz (Channel 6)&lt;br /&gt;
                     Quality=39/94  Signal level=-56 dBm  Noise level=-95 dBm&lt;br /&gt;
                     Encryption key:on&lt;br /&gt;
                     Extra:bcn_int=100&lt;br /&gt;
                     Extra:wpa_ie=dd1c0050f20101000050f20202000050f2040050f20201000050f2020000&lt;br /&gt;
                     Extra:rsn_ie=30180100000fac020200000fac04000fac020100000fac020000&lt;br /&gt;
           Cell 03 - Address: 00:14:95:1B:8E:B9&lt;br /&gt;
                     ESSID:&amp;quot;2WIRE852&amp;quot;&lt;br /&gt;
                     Mode:Master&lt;br /&gt;
                     Frequency:2.437 GHz (Channel 6)&lt;br /&gt;
                     Quality=5/94  Signal level=-90 dBm  Noise level=-95 dBm&lt;br /&gt;
                     Encryption key:on&lt;br /&gt;
                     Extra:bcn_int=100&lt;br /&gt;
           Cell 04 - Address: 00:E0:98:52:3D:78&lt;br /&gt;
                     ESSID:&amp;quot;smith&amp;quot;&lt;br /&gt;
                     Mode:Master&lt;br /&gt;
                     Frequency:2.437 GHz (Channel 6)&lt;br /&gt;
                     Quality=36/94  Signal level=-59 dBm  Noise level=-95 dBm&lt;br /&gt;
                     Encryption key:on&lt;br /&gt;
                     Extra:bcn_int=100&lt;br /&gt;
&lt;br /&gt;
If you want to connect to an unsecured network run:&lt;br /&gt;
  &lt;br /&gt;
  udhcpc  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== WPA ==&lt;br /&gt;
&lt;br /&gt;
[http://en.wikipedia.org/wiki/Wi-Fi_Protected_Access  WPA] is an encryption method for securing your wireless network.&lt;br /&gt;
&lt;br /&gt;
=== Using wpa_supplicant manually ===&lt;br /&gt;
&lt;br /&gt;
Create and edit a suitable [[GTA02_WLAN#Sample_wpa_supplicant.conf|/etc/wpa_supplicant/wpa_supplicant.conf]].&lt;br /&gt;
&lt;br /&gt;
Bring up your wireless connection: &lt;br /&gt;
&lt;br /&gt;
 root@om-gta02:~# ifup eth0&lt;br /&gt;
 root@om-gta02:~# wpa_supplicant -ieth0 -c/etc/wpa_supplicant/wpa_supplicant.conf -B&lt;br /&gt;
 root@om-gta02:~# udhcpc eth0&lt;br /&gt;
&lt;br /&gt;
=== Using WPA and /etc/network/interfaces ===&lt;br /&gt;
&lt;br /&gt;
Once you have a [[GTA02_WLAN#Sample_wpa_supplicant.conf|/etc/wpa_supplicant/wpa_supplicant.conf]] file, add a line under the eth0 entry in /etc/network/interfaces:&lt;br /&gt;
&lt;br /&gt;
 iface eth0 inet dhcp&lt;br /&gt;
    wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf&lt;br /&gt;
&lt;br /&gt;
Save your changes and run:&lt;br /&gt;
  # ifdown eth0 &amp;amp;&amp;amp; ifup eth0&lt;br /&gt;
&lt;br /&gt;
You'll get a lot of messages, like &amp;lt;tt&amp;gt;ioctl[SIOCSIWENCODEEXT]: Operation not supported&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;sed: unrecognized option `--quiet'&amp;lt;/tt&amp;gt;, they appear to be harmless. The &amp;quot;--quiet&amp;quot; error message can be avoided by replacing &amp;quot;sed --quiet&amp;quot; with &amp;quot;sed -n&amp;quot; in /etc/wpa_supplicant/*.sh&lt;br /&gt;
&lt;br /&gt;
=== wpa_supplicant.conf ===&lt;br /&gt;
&lt;br /&gt;
==== wpa_supplicant.conf explained ====&lt;br /&gt;
The highest priority is tried first then falls back to the next highest number.&lt;br /&gt;
&lt;br /&gt;
priority=100  1st  &amp;lt;br&amp;gt;&lt;br /&gt;
then&amp;lt;br&amp;gt;&lt;br /&gt;
priority=99  &amp;lt;br&amp;gt; &lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
&lt;br /&gt;
# Simple case: WPA-PSK, PSK as an ASCII passphrase, allow all valid ciphers&lt;br /&gt;
network={&lt;br /&gt;
	ssid=&amp;quot;AP_ESSID&amp;quot;&lt;br /&gt;
	psk=&amp;quot;presharedkey&amp;quot;&lt;br /&gt;
	priority=5&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#try open AP regardless of its SSID.&lt;br /&gt;
# change root password before you go roaming around it could prove dangerous&lt;br /&gt;
network={&lt;br /&gt;
	key_mgmt=NONE&lt;br /&gt;
priority=1  #try any open AP last&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A more in depth explanation can be found here:&amp;lt;br&amp;gt; &lt;br /&gt;
http://hostap.epitest.fi/gitweb/gitweb.cgi?p=hostap.git;a=blob_plain;f=wpa_supplicant/wpa_supplicant.conf&lt;br /&gt;
&lt;br /&gt;
==== Sample wpa_supplicant.conf ====&lt;br /&gt;
&lt;br /&gt;
 ctrl_interface=/var/run/wpa_supplicant&lt;br /&gt;
 ctrl_interface_group=0&lt;br /&gt;
 eapol_version=1&lt;br /&gt;
 ap_scan=1&lt;br /&gt;
 fast_reauth=1 &lt;br /&gt;
 # WPA2:&lt;br /&gt;
 network={&lt;br /&gt;
        ssid=&amp;quot;your ssid&amp;quot;&lt;br /&gt;
        scan_ssid=1&lt;br /&gt;
        proto=RSN&lt;br /&gt;
        key_mgmt=WPA-PSK&lt;br /&gt;
        pairwise=CCMP TKIP&lt;br /&gt;
        group=TKIP CCMP&lt;br /&gt;
        psk=&amp;quot;secret key&amp;quot;&lt;br /&gt;
        priority=50&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 # WPA:&lt;br /&gt;
 network={&lt;br /&gt;
       ssid=&amp;quot;your_ssid&amp;quot;&lt;br /&gt;
       proto=WPA&lt;br /&gt;
       key_mgmt=WPA-PSK&lt;br /&gt;
       pairwise=TKIP&lt;br /&gt;
       group=TKIP&lt;br /&gt;
       scan_ssid=1&lt;br /&gt;
       psk=&amp;quot;secret key&amp;quot;&lt;br /&gt;
       priority=10&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 # WEP:&lt;br /&gt;
 network={&lt;br /&gt;
      ssid=&amp;quot;your_ssid&amp;quot;&lt;br /&gt;
      scan_ssid=1&lt;br /&gt;
      key_mgmt=NONE&lt;br /&gt;
      wep_tx_keyidx=0&lt;br /&gt;
      wep_key0=your_hex_key&lt;br /&gt;
      priority=8&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 # Open:&lt;br /&gt;
 network={&lt;br /&gt;
      ssid=&amp;quot;your ssid&amp;quot;&lt;br /&gt;
      key_mgmt=NONE&lt;br /&gt;
      priority=5&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== Other sample wpa_supplicant.conf files ====&lt;br /&gt;
&lt;br /&gt;
Tom Yates documents his success [http://www.teaparty.net/technotes/openmoko-2.html#Wifi here]&lt;br /&gt;
&lt;br /&gt;
== WEP ==&lt;br /&gt;
&lt;br /&gt;
[http://en.wikipedia.org/wiki/Wired_Equivalent_Privacy WEP] is an encryption method for securing your wireless network. WEP is generally considered to be weak, you should use WPA instead if possible.&lt;br /&gt;
&lt;br /&gt;
=== Using WEP and /etc/network/interfaces ===&lt;br /&gt;
  iface eth0 inet dhcp&lt;br /&gt;
    wireless-key my_wep_key&lt;br /&gt;
    wireless-essid my_essid&lt;br /&gt;
&lt;br /&gt;
 iface eth0 inet dhcp&lt;br /&gt;
    wpa-wep-key0 my_wep_key&lt;br /&gt;
    wpa-key-mgmt NONE&lt;br /&gt;
    wpa-ssid my_essid&lt;br /&gt;
&lt;br /&gt;
Save your changes and run:&lt;br /&gt;
  # ifdown eth0 &amp;amp;&amp;amp; ifup eth0&lt;br /&gt;
&lt;br /&gt;
== Known Issues ==&lt;br /&gt;
&lt;br /&gt;
=== Known Issues with GUI ===&lt;br /&gt;
&lt;br /&gt;
The GUI seems to have some issues that prevent it from working in all cases. &lt;br /&gt;
&lt;br /&gt;
If a Wi-Fi connection can not be made with the GUI, open a shell and use iwconfig manually.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Anecdotal solutions ===&lt;br /&gt;
&lt;br /&gt;
These solutions worked for some people:&lt;br /&gt;
&lt;br /&gt;
==== Disable power management ====&lt;br /&gt;
&lt;br /&gt;
Some APs apparently get upset by power managed devices, and the Freerunner enables power management of the wifi by default to preserve battery. One user's wrt54g certainly gets upset from time to time if he connect with the FreeRunner, sometimes refusing to talk to _anything_ over wifi afterwards until rebooted.&lt;br /&gt;
&lt;br /&gt;
==== Modified script ====&lt;br /&gt;
&lt;br /&gt;
&amp;quot;I changed the script a little:&lt;br /&gt;
&lt;br /&gt;
 Exec=xterm -e &amp;quot;ifconfig eth0 down \&lt;br /&gt;
 iwconfig eth0 txpower off channel 0 \&lt;br /&gt;
 while killall wpa_supplicant; do echo 'Killing wpa_sup'; done \&lt;br /&gt;
 killall udhcpc \&lt;br /&gt;
 wpa_supplicant -i eth0 -c /etc/wpa_supplicant/wpa_supplicant.conf -D wext -B \&lt;br /&gt;
 sleep 10; udhcpc&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Now it is working every time.&lt;br /&gt;
I am using 2008.latest (081004) and a linksys WAP54G accesspoint,&lt;br /&gt;
&lt;br /&gt;
==== Use a different channel ====&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Could not get it to work properly on channel 11, so I set my accesspoint to channel 1.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Wake up from wireless (wow)==&lt;br /&gt;
&lt;br /&gt;
Wi-Fi module constantly drain currents after module power up, for wi-fi SIP phone or some application need long standby time, will need wake up from wireless function for power saving. There is a sleep mode that Ar6k supported for wake up from wireless.&lt;br /&gt;
&lt;br /&gt;
 http://svn.openmoko.org/trunk/src/target/AR6kSDK.build_sw.18/host/tools/wmiconfig&lt;br /&gt;
&lt;br /&gt;
 export ATH_CROSS_COMPILE_TYPE=arm-angstrom-linux-gnueabi-&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
Debian package:&lt;br /&gt;
&lt;br /&gt;
 wget http://meshy.org/~ato/debian/pool/main/w/wmiconfig/wmiconfig_0.0.18-1_armel.deb&lt;br /&gt;
 dpkg -i wmiconfig_0.0.18-1_armel.deb&lt;br /&gt;
&lt;br /&gt;
Basically, it's achieved via wmiconfig tool to issue IOCTL if we want&lt;br /&gt;
ar6k wifi module to generate interrupt to host controller. The procedure&lt;br /&gt;
to enable wakeup-on-wireless(wow) is listed here:&lt;br /&gt;
&lt;br /&gt;
 1. wmiconfig --sethostmode asleep /* to tell ar6k what host's current is */&lt;br /&gt;
 2. wmiconfig --setwowmode enable /* enable wow function */&lt;br /&gt;
 3. wmiconfig --addpattern 0 1 33 01 ff /* add packet filter pattern, this is the ICMP filter pattern */&lt;br /&gt;
 4. apm -s&lt;br /&gt;
 5. ping IP_of_Neo&lt;br /&gt;
 6. The GPIO1 pin would be pulled up. The system would resume then.&lt;br /&gt;
 7. wmiconfig --sethostmode awake /* The firmware of ar6k will pull low the GPIO1 pin */&lt;br /&gt;
&lt;br /&gt;
--addwowpattern &amp;lt;list-id&amp;gt; &amp;lt;pattern-size&amp;gt; &amp;lt;pattern-offset&amp;gt; &amp;lt;pattern&amp;gt; &amp;lt;pattern-mask&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here are some addwowpattern commands:&lt;br /&gt;
&lt;br /&gt;
Protocol type=IP=0800&lt;br /&gt;
Protocol type in IP header=ICMP=01&lt;br /&gt;
&lt;br /&gt;
 - To filter for IP packets(offset 22)&lt;br /&gt;
 wmiconfig --addwowpattern 0 2 22 0800 ffff&lt;br /&gt;
 - To filter for ICMP packets (offset 33)&lt;br /&gt;
 wmiconfig --addwowpattern 0 1 33 01 ff&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== A very ugly /etc/init.d/wlan startscript ==&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 #&lt;br /&gt;
 # wlan	This shell script starts and stops wlan.&lt;br /&gt;
 #&lt;br /&gt;
 # processname: wlan&lt;br /&gt;
 &lt;br /&gt;
 # Source function library.&lt;br /&gt;
 #. /etc/rc.d/init.d/functions&lt;br /&gt;
 # &amp;quot;written&amp;quot; by HdR&lt;br /&gt;
 &lt;br /&gt;
 RETVAL=0&lt;br /&gt;
 prog=&amp;quot;wlan&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # test -f /etc/default/$prog &amp;amp;&amp;amp; . /etc/default/$prog&lt;br /&gt;
 &lt;br /&gt;
 start() {&lt;br /&gt;
 	echo -n &amp;quot;Starting $prog: &amp;quot;&lt;br /&gt;
 	ifconfig eth0 up&lt;br /&gt;
 	wpa_supplicant -ieth0 -c/etc/wpa_supplicant/wpa_supplicant.conf -B&lt;br /&gt;
 	sleep 10&lt;br /&gt;
 	udhcpc eth0&lt;br /&gt;
 	RETVAL=$?&lt;br /&gt;
 	return $RETVAL&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 stop() {&lt;br /&gt;
 	# Stop daemons.&lt;br /&gt;
 	echo -n &amp;quot;Shutting down $prog: &amp;quot;&lt;br /&gt;
         killall wpa_supplicant&lt;br /&gt;
 	ifconfig eth0 down&lt;br /&gt;
 #        killproc gpsd&lt;br /&gt;
 	RETVAL=$?&lt;br /&gt;
 	return $RETVAL&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 # See how we were called.&lt;br /&gt;
 case &amp;quot;$1&amp;quot; in&lt;br /&gt;
   start)&lt;br /&gt;
 	start&lt;br /&gt;
 	;;&lt;br /&gt;
   stop)&lt;br /&gt;
 	stop&lt;br /&gt;
 	;;&lt;br /&gt;
   restart|reload)&lt;br /&gt;
 	stop&lt;br /&gt;
 	start&lt;br /&gt;
 	RETVAL=$?&lt;br /&gt;
 	;;&lt;br /&gt;
   *)&lt;br /&gt;
 	echo &amp;quot;Usage: $0 {start|stop|restart}&amp;quot;&lt;br /&gt;
 	exit 1&lt;br /&gt;
 esac&lt;br /&gt;
 &lt;br /&gt;
 exit $RETVAL&lt;br /&gt;
&lt;br /&gt;
Note: Don't forget to make this script executable with &amp;quot;chmod +x &amp;lt;filename&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Route internet connection through Wifi rather than USB ==&lt;br /&gt;
&lt;br /&gt;
Wifi is faster than USB, so it is a good idea to tell the FreeRunner to connect through it. Put the following in /etc/network/interfaces under eth0:&lt;br /&gt;
&lt;br /&gt;
up route del default gw 192.168.0.200&lt;br /&gt;
&lt;br /&gt;
This will remove your computer as the default gateway and use the  wireless one when the interface is brought up. User nickd reports that sometimes it fails so he has had to put it in twice.&lt;br /&gt;
&lt;br /&gt;
== ssh into FR over WiFi ==&lt;br /&gt;
dropbear, the ssh server, is configured to listen on the USB interface only. Wireless interfaces like wlan or bluetooth are disabled for security reasons (empty root password).&lt;br /&gt;
&lt;br /&gt;
If you want to enable ssh over WiFi, change the /etc/default/dropbear from:&lt;br /&gt;
&lt;br /&gt;
  DROPBEAR_PORT=`ip addr list usb0 | awk 'BEGIN { FS=&amp;quot;[ /]+&amp;quot; } /inet / { print  $3 }'`:22&lt;br /&gt;
&lt;br /&gt;
(which actually only prepends the usb0 ip address before the :22)&lt;br /&gt;
&lt;br /&gt;
into:&lt;br /&gt;
&lt;br /&gt;
  DROPBEAR_PORT=22&lt;br /&gt;
&lt;br /&gt;
* Be careful with this config file since it can close the only door into your phone.&lt;br /&gt;
&lt;br /&gt;
* Set a root password!&lt;br /&gt;
&lt;br /&gt;
== Available Software ==&lt;br /&gt;
&lt;br /&gt;
Programs in development providing GUI interfaces to administer WiFi connections:&lt;br /&gt;
&lt;br /&gt;
* [[Lint-wifi]]&lt;br /&gt;
* [[Mofi]]&lt;br /&gt;
* [[Camp-Wifi]]&lt;br /&gt;
&lt;br /&gt;
== External links ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/ WiFi on Linux]&lt;br /&gt;
&lt;br /&gt;
[[Category:Neo FreeRunner Hardware]]&lt;br /&gt;
[[Category:Networking]]&lt;/div&gt;</summary>
		<author><name>Michaelshiloh</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Neo_FreeRunner_Wifi</id>
		<title>Neo FreeRunner Wifi</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Neo_FreeRunner_Wifi"/>
				<updated>2008-10-08T23:18:18Z</updated>
		
		<summary type="html">&lt;p&gt;Michaelshiloh: /* Known Issues with GUI */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|Neo FreeRunner Menu}}&lt;br /&gt;
&lt;br /&gt;
This page documents the [http://en.wikipedia.org/wiki/Wireless_networking wireless networking] solutions commonly known as [http://en.wikipedia.org/wiki/Wireless_LAN WLAN] or WiFi. &lt;br /&gt;
&lt;br /&gt;
There are other ways to enable wireless communications on the Neo, including [[Bluetooth]]. For Bluetooth solutions, see [[How to use bluetooth to transfer data between Neo and Desk-top]] and [[Manually using Bluetooth]].&lt;br /&gt;
&lt;br /&gt;
== Using the GUI on 2008.8 ==&lt;br /&gt;
&lt;br /&gt;
In the Settings application on Om 2008.8, there's a &amp;quot;WiFi&amp;quot; item. It should work fairly well in stable-updated 2008.8 (even with WPA2).&lt;br /&gt;
&lt;br /&gt;
If it says &amp;quot;WiFi unknown&amp;quot;, you can delete the /etc/volatives.cache file and reboot.  It should work after that.[http://docs.openmoko.org/trac/ticket/1734]  After connecting using the GUI, you may also need to run &amp;quot;udhcpc eth0&amp;quot; manually in the terminal to get DNS entries added to your resolv.conf.  You may also need to run &amp;quot;ifdown usb0&amp;quot; to remove the routing issue caused by having both interfaces up at the same time.  Some users have reported that 802.11g modulation needs to be enabled on APs to allow the FreeRunner to connect (The hardware is suppose to support 802.11b/g).&lt;br /&gt;
&lt;br /&gt;
Otherwise there's also [[lint-wifi]].  Refer to the section below, [[#Available Software|&amp;quot;Available Software&amp;quot;]] to find out what else might be available.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== How can I tell what Access Points (APs) are visible to me? ==&lt;br /&gt;
&lt;br /&gt;
You can connect to wireless networks through wireless [http://en.wikipedia.org/wiki/Access_point| access points]. If you want to know the names of all the access points that are currently visible to you, you can perform a scan with this command:&lt;br /&gt;
&lt;br /&gt;
 root@om-gta02:~# '''iwlist eth0 scan'''&lt;br /&gt;
&lt;br /&gt;
If anything is visible you will get a list that looks something like this:&lt;br /&gt;
&lt;br /&gt;
 eth0      Scan completed :&lt;br /&gt;
           Cell 01 - Address: 00:16:B6:DE:77:58&lt;br /&gt;
                     ESSID:&amp;quot;StarvinMarvin&amp;quot;&lt;br /&gt;
                     Mode:Master&lt;br /&gt;
                     Frequency:2.437 GHz (Channel 6)&lt;br /&gt;
                     Quality=9/94  Signal level=-86 dBm  Noise level=-95 dBm&lt;br /&gt;
                     Encryption key:on&lt;br /&gt;
                     Extra:bcn_int=100&lt;br /&gt;
                     Extra:wpa_ie=dd180050f20101000050f20201000050f20201000050f2020000&lt;br /&gt;
           Cell 02 - Address: 00:21:29:AA:10:97&lt;br /&gt;
                     ESSID:&amp;quot;CandT Network&amp;quot;&lt;br /&gt;
                     Mode:Master&lt;br /&gt;
                     Frequency:2.437 GHz (Channel 6)&lt;br /&gt;
                     Quality=39/94  Signal level=-56 dBm  Noise level=-95 dBm&lt;br /&gt;
                     Encryption key:on&lt;br /&gt;
                     Extra:bcn_int=100&lt;br /&gt;
                     Extra:wpa_ie=dd1c0050f20101000050f20202000050f2040050f20201000050f2020000&lt;br /&gt;
                     Extra:rsn_ie=30180100000fac020200000fac04000fac020100000fac020000&lt;br /&gt;
           Cell 03 - Address: 00:14:95:1B:8E:B9&lt;br /&gt;
                     ESSID:&amp;quot;2WIRE852&amp;quot;&lt;br /&gt;
                     Mode:Master&lt;br /&gt;
                     Frequency:2.437 GHz (Channel 6)&lt;br /&gt;
                     Quality=5/94  Signal level=-90 dBm  Noise level=-95 dBm&lt;br /&gt;
                     Encryption key:on&lt;br /&gt;
                     Extra:bcn_int=100&lt;br /&gt;
           Cell 04 - Address: 00:E0:98:52:3D:78&lt;br /&gt;
                     ESSID:&amp;quot;smith&amp;quot;&lt;br /&gt;
                     Mode:Master&lt;br /&gt;
                     Frequency:2.437 GHz (Channel 6)&lt;br /&gt;
                     Quality=36/94  Signal level=-59 dBm  Noise level=-95 dBm&lt;br /&gt;
                     Encryption key:on&lt;br /&gt;
                     Extra:bcn_int=100&lt;br /&gt;
&lt;br /&gt;
If you want to connect to an unsecured network run:&lt;br /&gt;
  &lt;br /&gt;
  udhcpc  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== WPA ==&lt;br /&gt;
&lt;br /&gt;
[http://en.wikipedia.org/wiki/Wi-Fi_Protected_Access  WPA] is an encryption method for securing your wireless network.&lt;br /&gt;
&lt;br /&gt;
=== Using wpa_supplicant manually ===&lt;br /&gt;
&lt;br /&gt;
Create and edit a suitable [[GTA02_WLAN#Sample_wpa_supplicant.conf|/etc/wpa_supplicant/wpa_supplicant.conf]].&lt;br /&gt;
&lt;br /&gt;
Bring up your wireless connection: &lt;br /&gt;
&lt;br /&gt;
 root@om-gta02:~# ifup eth0&lt;br /&gt;
 root@om-gta02:~# wpa_supplicant -ieth0 -c/etc/wpa_supplicant/wpa_supplicant.conf -B&lt;br /&gt;
 root@om-gta02:~# udhcpc eth0&lt;br /&gt;
&lt;br /&gt;
=== Using WPA and /etc/network/interfaces ===&lt;br /&gt;
&lt;br /&gt;
Once you have a [[GTA02_WLAN#Sample_wpa_supplicant.conf|/etc/wpa_supplicant/wpa_supplicant.conf]] file, add a line under the eth0 entry in /etc/network/interfaces:&lt;br /&gt;
&lt;br /&gt;
 iface eth0 inet dhcp&lt;br /&gt;
    wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf&lt;br /&gt;
&lt;br /&gt;
Save your changes and run:&lt;br /&gt;
  # ifdown eth0 &amp;amp;&amp;amp; ifup eth0&lt;br /&gt;
&lt;br /&gt;
You'll get a lot of messages, like &amp;lt;tt&amp;gt;ioctl[SIOCSIWENCODEEXT]: Operation not supported&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;sed: unrecognized option `--quiet'&amp;lt;/tt&amp;gt;, they appear to be harmless. The &amp;quot;--quiet&amp;quot; error message can be avoided by replacing &amp;quot;sed --quiet&amp;quot; with &amp;quot;sed -n&amp;quot; in /etc/wpa_supplicant/*.sh&lt;br /&gt;
&lt;br /&gt;
=== wpa_supplicant.conf ===&lt;br /&gt;
&lt;br /&gt;
==== wpa_supplicant.conf explained ====&lt;br /&gt;
The highest priority is tried first then falls back to the next highest number.&lt;br /&gt;
&lt;br /&gt;
priority=100  1st  &amp;lt;br&amp;gt;&lt;br /&gt;
then&amp;lt;br&amp;gt;&lt;br /&gt;
priority=99  &amp;lt;br&amp;gt; &lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
&lt;br /&gt;
# Simple case: WPA-PSK, PSK as an ASCII passphrase, allow all valid ciphers&lt;br /&gt;
network={&lt;br /&gt;
	ssid=&amp;quot;AP_ESSID&amp;quot;&lt;br /&gt;
	psk=&amp;quot;presharedkey&amp;quot;&lt;br /&gt;
	priority=5&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#try open AP regardless of its SSID.&lt;br /&gt;
# change root password before you go roaming around it could prove dangerous&lt;br /&gt;
network={&lt;br /&gt;
	key_mgmt=NONE&lt;br /&gt;
priority=1  #try any open AP last&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A more in depth explanation can be found here:&amp;lt;br&amp;gt; &lt;br /&gt;
http://hostap.epitest.fi/gitweb/gitweb.cgi?p=hostap.git;a=blob_plain;f=wpa_supplicant/wpa_supplicant.conf&lt;br /&gt;
&lt;br /&gt;
==== Sample wpa_supplicant.conf ====&lt;br /&gt;
&lt;br /&gt;
 ctrl_interface=/var/run/wpa_supplicant&lt;br /&gt;
 ctrl_interface_group=0&lt;br /&gt;
 eapol_version=1&lt;br /&gt;
 ap_scan=1&lt;br /&gt;
 fast_reauth=1 &lt;br /&gt;
 # WPA2:&lt;br /&gt;
 network={&lt;br /&gt;
        ssid=&amp;quot;your ssid&amp;quot;&lt;br /&gt;
        scan_ssid=1&lt;br /&gt;
        proto=RSN&lt;br /&gt;
        key_mgmt=WPA-PSK&lt;br /&gt;
        pairwise=CCMP TKIP&lt;br /&gt;
        group=TKIP CCMP&lt;br /&gt;
        psk=&amp;quot;secret key&amp;quot;&lt;br /&gt;
        priority=50&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 # WPA:&lt;br /&gt;
 network={&lt;br /&gt;
       ssid=&amp;quot;your_ssid&amp;quot;&lt;br /&gt;
       proto=WPA&lt;br /&gt;
       key_mgmt=WPA-PSK&lt;br /&gt;
       pairwise=TKIP&lt;br /&gt;
       group=TKIP&lt;br /&gt;
       scan_ssid=1&lt;br /&gt;
       psk=&amp;quot;secret key&amp;quot;&lt;br /&gt;
       priority=10&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 # WEP:&lt;br /&gt;
 network={&lt;br /&gt;
      ssid=&amp;quot;your_ssid&amp;quot;&lt;br /&gt;
      scan_ssid=1&lt;br /&gt;
      key_mgmt=NONE&lt;br /&gt;
      wep_tx_keyidx=0&lt;br /&gt;
      wep_key0=your_hex_key&lt;br /&gt;
      priority=8&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 # Open:&lt;br /&gt;
 network={&lt;br /&gt;
      ssid=&amp;quot;your ssid&amp;quot;&lt;br /&gt;
      key_mgmt=NONE&lt;br /&gt;
      priority=5&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== Other sample wpa_supplicant.conf files ====&lt;br /&gt;
&lt;br /&gt;
Tom Yates documents his success [http://www.teaparty.net/technotes/openmoko-2.html#Wifi here]&lt;br /&gt;
&lt;br /&gt;
== WEP ==&lt;br /&gt;
&lt;br /&gt;
[http://en.wikipedia.org/wiki/Wired_Equivalent_Privacy WEP] is an encryption method for securing your wireless network. WEP is generally considered to be weak, you should use WPA instead if possible.&lt;br /&gt;
&lt;br /&gt;
=== Using WEP and /etc/network/interfaces ===&lt;br /&gt;
  iface eth0 inet dhcp&lt;br /&gt;
    wireless-key my_wep_key&lt;br /&gt;
    wireless-essid my_essid&lt;br /&gt;
&lt;br /&gt;
 iface eth0 inet dhcp&lt;br /&gt;
    wpa-wep-key0 my_wep_key&lt;br /&gt;
    wpa-key-mgmt NONE&lt;br /&gt;
    wpa-ssid my_essid&lt;br /&gt;
&lt;br /&gt;
Save your changes and run:&lt;br /&gt;
  # ifdown eth0 &amp;amp;&amp;amp; ifup eth0&lt;br /&gt;
&lt;br /&gt;
== Known Issues ==&lt;br /&gt;
&lt;br /&gt;
=== Known Issues with GUI ===&lt;br /&gt;
&lt;br /&gt;
The GUI seems to have some issues that prevent it from working in all cases. &lt;br /&gt;
&lt;br /&gt;
If a Wi-Fi connection can not be made with the GUI, open a shell and use iwconfig manually.&lt;br /&gt;
&lt;br /&gt;
==== Using iwconfig manually ====&lt;br /&gt;
&lt;br /&gt;
Note that for WEP our iwconfig requires a more specific format than generic iwconfig.&lt;br /&gt;
&lt;br /&gt;
The canonical way of running iwconfig for WEP would be something like this:&lt;br /&gt;
&lt;br /&gt;
# iwconfig eth0 key A4BEB3B8EC essid xyz&lt;br /&gt;
&lt;br /&gt;
Two things are important here:&lt;br /&gt;
&lt;br /&gt;
* the key must be in HEX. iwconfig will not do anything useful if the key is given as a string.   [http://www.powerdog.com/wepkey.cgi Here] is a handy ASCII string to HEX converter.&lt;br /&gt;
&lt;br /&gt;
* the ESSID must follow the key.&lt;br /&gt;
&lt;br /&gt;
If an incorrect key was set, please stop all activity on the interface for at least two minutes (i.e., killall udhcpc and ifconfig eth0 down), then issue the correct iwconfig command and retry.&lt;br /&gt;
&lt;br /&gt;
=== Anecdotal solutions ===&lt;br /&gt;
&lt;br /&gt;
These solutions worked for some people:&lt;br /&gt;
&lt;br /&gt;
==== Disable power management ====&lt;br /&gt;
&lt;br /&gt;
Some APs apparently get upset by power managed devices, and the Freerunner enables power management of the wifi by default to preserve battery. One user's wrt54g certainly gets upset from time to time if he connect with the FreeRunner, sometimes refusing to talk to _anything_ over wifi afterwards until rebooted.&lt;br /&gt;
&lt;br /&gt;
==== Modified script ====&lt;br /&gt;
&lt;br /&gt;
&amp;quot;I changed the script a little:&lt;br /&gt;
&lt;br /&gt;
 Exec=xterm -e &amp;quot;ifconfig eth0 down \&lt;br /&gt;
 iwconfig eth0 txpower off channel 0 \&lt;br /&gt;
 while killall wpa_supplicant; do echo 'Killing wpa_sup'; done \&lt;br /&gt;
 killall udhcpc \&lt;br /&gt;
 wpa_supplicant -i eth0 -c /etc/wpa_supplicant/wpa_supplicant.conf -D wext -B \&lt;br /&gt;
 sleep 10; udhcpc&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Now it is working every time.&lt;br /&gt;
I am using 2008.latest (081004) and a linksys WAP54G accesspoint,&lt;br /&gt;
&lt;br /&gt;
==== Use a different channel ====&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Could not get it to work properly on channel 11, so I set my accesspoint to channel 1.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Wake up from wireless (wow)==&lt;br /&gt;
&lt;br /&gt;
Wi-Fi module constantly drain currents after module power up, for wi-fi SIP phone or some application need long standby time, will need wake up from wireless function for power saving. There is a sleep mode that Ar6k supported for wake up from wireless.&lt;br /&gt;
&lt;br /&gt;
 http://svn.openmoko.org/trunk/src/target/AR6kSDK.build_sw.18/host/tools/wmiconfig&lt;br /&gt;
&lt;br /&gt;
 export ATH_CROSS_COMPILE_TYPE=arm-angstrom-linux-gnueabi-&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
Debian package:&lt;br /&gt;
&lt;br /&gt;
 wget http://meshy.org/~ato/debian/pool/main/w/wmiconfig/wmiconfig_0.0.18-1_armel.deb&lt;br /&gt;
 dpkg -i wmiconfig_0.0.18-1_armel.deb&lt;br /&gt;
&lt;br /&gt;
Basically, it's achieved via wmiconfig tool to issue IOCTL if we want&lt;br /&gt;
ar6k wifi module to generate interrupt to host controller. The procedure&lt;br /&gt;
to enable wakeup-on-wireless(wow) is listed here:&lt;br /&gt;
&lt;br /&gt;
 1. wmiconfig --sethostmode asleep /* to tell ar6k what host's current is */&lt;br /&gt;
 2. wmiconfig --setwowmode enable /* enable wow function */&lt;br /&gt;
 3. wmiconfig --addpattern 0 1 33 01 ff /* add packet filter pattern, this is the ICMP filter pattern */&lt;br /&gt;
 4. apm -s&lt;br /&gt;
 5. ping IP_of_Neo&lt;br /&gt;
 6. The GPIO1 pin would be pulled up. The system would resume then.&lt;br /&gt;
 7. wmiconfig --sethostmode awake /* The firmware of ar6k will pull low the GPIO1 pin */&lt;br /&gt;
&lt;br /&gt;
--addwowpattern &amp;lt;list-id&amp;gt; &amp;lt;pattern-size&amp;gt; &amp;lt;pattern-offset&amp;gt; &amp;lt;pattern&amp;gt; &amp;lt;pattern-mask&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here are some addwowpattern commands:&lt;br /&gt;
&lt;br /&gt;
Protocol type=IP=0800&lt;br /&gt;
Protocol type in IP header=ICMP=01&lt;br /&gt;
&lt;br /&gt;
 - To filter for IP packets(offset 22)&lt;br /&gt;
 wmiconfig --addwowpattern 0 2 22 0800 ffff&lt;br /&gt;
 - To filter for ICMP packets (offset 33)&lt;br /&gt;
 wmiconfig --addwowpattern 0 1 33 01 ff&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== A very ugly /etc/init.d/wlan startscript ==&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 #&lt;br /&gt;
 # wlan	This shell script starts and stops wlan.&lt;br /&gt;
 #&lt;br /&gt;
 # processname: wlan&lt;br /&gt;
 &lt;br /&gt;
 # Source function library.&lt;br /&gt;
 #. /etc/rc.d/init.d/functions&lt;br /&gt;
 # &amp;quot;written&amp;quot; by HdR&lt;br /&gt;
 &lt;br /&gt;
 RETVAL=0&lt;br /&gt;
 prog=&amp;quot;wlan&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # test -f /etc/default/$prog &amp;amp;&amp;amp; . /etc/default/$prog&lt;br /&gt;
 &lt;br /&gt;
 start() {&lt;br /&gt;
 	echo -n &amp;quot;Starting $prog: &amp;quot;&lt;br /&gt;
 	ifconfig eth0 up&lt;br /&gt;
 	wpa_supplicant -ieth0 -c/etc/wpa_supplicant/wpa_supplicant.conf -B&lt;br /&gt;
 	sleep 10&lt;br /&gt;
 	udhcpc eth0&lt;br /&gt;
 	RETVAL=$?&lt;br /&gt;
 	return $RETVAL&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 stop() {&lt;br /&gt;
 	# Stop daemons.&lt;br /&gt;
 	echo -n &amp;quot;Shutting down $prog: &amp;quot;&lt;br /&gt;
         killall wpa_supplicant&lt;br /&gt;
 	ifconfig eth0 down&lt;br /&gt;
 #        killproc gpsd&lt;br /&gt;
 	RETVAL=$?&lt;br /&gt;
 	return $RETVAL&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 # See how we were called.&lt;br /&gt;
 case &amp;quot;$1&amp;quot; in&lt;br /&gt;
   start)&lt;br /&gt;
 	start&lt;br /&gt;
 	;;&lt;br /&gt;
   stop)&lt;br /&gt;
 	stop&lt;br /&gt;
 	;;&lt;br /&gt;
   restart|reload)&lt;br /&gt;
 	stop&lt;br /&gt;
 	start&lt;br /&gt;
 	RETVAL=$?&lt;br /&gt;
 	;;&lt;br /&gt;
   *)&lt;br /&gt;
 	echo &amp;quot;Usage: $0 {start|stop|restart}&amp;quot;&lt;br /&gt;
 	exit 1&lt;br /&gt;
 esac&lt;br /&gt;
 &lt;br /&gt;
 exit $RETVAL&lt;br /&gt;
&lt;br /&gt;
Note: Don't forget to make this script executable with &amp;quot;chmod +x &amp;lt;filename&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Route internet connection through Wifi rather than USB ==&lt;br /&gt;
&lt;br /&gt;
Wifi is faster than USB, so it is a good idea to tell the FreeRunner to connect through it. Put the following in /etc/network/interfaces under eth0:&lt;br /&gt;
&lt;br /&gt;
up route del default gw 192.168.0.200&lt;br /&gt;
&lt;br /&gt;
This will remove your computer as the default gateway and use the  wireless one when the interface is brought up. User nickd reports that sometimes it fails so he has had to put it in twice.&lt;br /&gt;
&lt;br /&gt;
== ssh into FR over WiFi ==&lt;br /&gt;
dropbear, the ssh server, is configured to listen on the USB interface only. Wireless interfaces like wlan or bluetooth are disabled for security reasons (empty root password).&lt;br /&gt;
&lt;br /&gt;
If you want to enable ssh over WiFi, change the /etc/default/dropbear from:&lt;br /&gt;
&lt;br /&gt;
  DROPBEAR_PORT=`ip addr list usb0 | awk 'BEGIN { FS=&amp;quot;[ /]+&amp;quot; } /inet / { print  $3 }'`:22&lt;br /&gt;
&lt;br /&gt;
(which actually only prepends the usb0 ip address before the :22)&lt;br /&gt;
&lt;br /&gt;
into:&lt;br /&gt;
&lt;br /&gt;
  DROPBEAR_PORT=22&lt;br /&gt;
&lt;br /&gt;
* Be careful with this config file since it can close the only door into your phone.&lt;br /&gt;
&lt;br /&gt;
* Set a root password!&lt;br /&gt;
&lt;br /&gt;
== Available Software ==&lt;br /&gt;
&lt;br /&gt;
Programs in development providing GUI interfaces to administer WiFi connections:&lt;br /&gt;
&lt;br /&gt;
* [[Lint-wifi]]&lt;br /&gt;
* [[Mofi]]&lt;br /&gt;
* [[Camp-Wifi]]&lt;br /&gt;
&lt;br /&gt;
== External links ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/ WiFi on Linux]&lt;br /&gt;
&lt;br /&gt;
[[Category:Neo FreeRunner Hardware]]&lt;br /&gt;
[[Category:Networking]]&lt;/div&gt;</summary>
		<author><name>Michaelshiloh</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Neo_FreeRunner_Battery</id>
		<title>Neo FreeRunner Battery</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Neo_FreeRunner_Battery"/>
				<updated>2008-10-08T23:12:49Z</updated>
		
		<summary type="html">&lt;p&gt;Michaelshiloh: /* What to do if your battery has become completely discharged */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Neo FreeRunner Menu}}&lt;br /&gt;
=== GTA02 1200 mAh Smart Battery ===&lt;br /&gt;
&lt;br /&gt;
*Using SANYO 1200mAh cell&lt;br /&gt;
*Battery Technical information: [http://people.openmoko.org/tony_tu/GTA02/hardware/GTA02/CT-GTA02.pdf Detailed Battery Information]&lt;br /&gt;
&lt;br /&gt;
* 1200mAh Smart Battery with Coulomb-counter and protection circuit&lt;br /&gt;
* The Smart Battery keeps track of maximum and current capacity for precise prediction of remaining battery power and time until shutdown, based on actual power dissipation.&lt;br /&gt;
&lt;br /&gt;
For more information, see the GTA01 battery info at [[Neo1973 Battery]]&lt;br /&gt;
&lt;br /&gt;
=== Notes about expected battery life ===&lt;br /&gt;
Battery life is a work in progress. The power saving software is in a very rudimentary state. At the moment 12h is about the most (note though a [http://lists.openmoko.org/pipermail/community/2008-July/020339.html recent result of at least 21h], mostly in suspend, with multiple short wakeups, on the predecessor device GTA01). A week standby and 6 hours talk, 20 hours mp3 might be attainable when power saving software is complete.&lt;br /&gt;
&lt;br /&gt;
== Known Issues ==&lt;br /&gt;
&lt;br /&gt;
=== Make sure your battery never discharges completely. ===&lt;br /&gt;
&lt;br /&gt;
This is an issue because the internal charging circuitry can not be turned on until the FreeRunner has booted, and booting through USB power alone does not work.&lt;br /&gt;
&lt;br /&gt;
==== What to do if your battery has become completely discharged ====&lt;br /&gt;
&lt;br /&gt;
See the workarounds [[Neo_FreeRunner_Hardware_Issues#Can.27t_boot_with_discharged_or_missing_battery|here]].&lt;br /&gt;
&lt;br /&gt;
==== More tricks ====&lt;br /&gt;
&lt;br /&gt;
''Q: Does anyone know WHY it don't charge when it is off? My logic says that it is very important to have the option charge the battery when it is flat.''&lt;br /&gt;
&lt;br /&gt;
A: I can't give you a simple answer. Charging is controlled by the PCF50633 &lt;br /&gt;
chip, based on configuration values that are written to it by u-boot, &lt;br /&gt;
Linux, and userspace programs. Some of these settings are preserved &lt;br /&gt;
across a power-cycle (the PCF50633 has a small backup battery that's &lt;br /&gt;
also used to keep the RTC running) so the behavior at startup depends on &lt;br /&gt;
the software that you used during your last session.&lt;br /&gt;
&lt;br /&gt;
Another complication is that some Freerunners are capable of starting up &lt;br /&gt;
without a battery while others are not (possibly due to different &lt;br /&gt;
capacitor values on the internal power rails).&lt;br /&gt;
&lt;br /&gt;
I can give a few hints:&lt;br /&gt;
* The current (Sep. 2nd, 2008) u-boot has a bug that means it will not properly charge from the wall charger. Try a USB cable into a PC instead.&lt;br /&gt;
* Try booting through NOR u-boot instead (hold aux and then power) with both the wall charger or a 500mA USB connection, then try booting Linux.&lt;br /&gt;
* Try to boot into the NAND u-boot menu (hold power and then aux) and then select &amp;quot;power off&amp;quot;. This may leave the device in a state were it will charge. Wait 15 minutes and then try to boot Linux.&lt;br /&gt;
* If the device shuts off during one of the above attempts, let it sit for a few minutes and then try that same item once again&lt;br /&gt;
&lt;br /&gt;
Kudos to Mike Montour on the&lt;br /&gt;
[http://lists.openmoko.org/pipermail/community/2008-September/029243.html  Community mailing list].&lt;br /&gt;
&lt;br /&gt;
== Compatible Replacement Batteries ==&lt;br /&gt;
&lt;br /&gt;
Other known FreeRunner-compatible batteries include the BL-series (BL-4X, BL-5X) from Nokia, and their third-party equivalents.&lt;br /&gt;
These may not work to revive a device and may not report charge information.&lt;br /&gt;
It is probably a good idea to check that your battery is not greater than the stock battery's voltage of 3.7V (the above suggests that 4.5VDC should be fine) unless you know what you are doing.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
!Battery Model&lt;br /&gt;
!Capacity (mAh)&lt;br /&gt;
!Charge info reported&lt;br /&gt;
!Notes&lt;br /&gt;
|-&lt;br /&gt;
|NOKIA BL-4&lt;br /&gt;
|&lt;br /&gt;
|no&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|NOKIA BL-4C&lt;br /&gt;
|750&lt;br /&gt;
|no&lt;br /&gt;
|Slightly thinner than original.&lt;br /&gt;
|-&lt;br /&gt;
|NOKIA BL-5B&lt;br /&gt;
|760/890&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|NOKIA BL-5C&lt;br /&gt;
|950&lt;br /&gt;
|no&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|NOKIA BL-6C&lt;br /&gt;
|1070&lt;br /&gt;
|no&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|NOKIA BR-6C&lt;br /&gt;
|?&lt;br /&gt;
|no&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Alien Charging of Battery ==&lt;br /&gt;
&lt;br /&gt;
Nokia devices (phones and stand-alone chargers) usually will not charge&lt;br /&gt;
non-Nokia batteries, most likely because they can't be sure they have&lt;br /&gt;
the correct charging parameters (and of course Nokia isn't interested in supporting use of alien batteries with their phones).&lt;br /&gt;
&lt;br /&gt;
Most after-market or no-name brands of Nokia-compatible chargers don't&lt;br /&gt;
test the make of the battery, most likely because adding the capability&lt;br /&gt;
to perform this test would add to the cost of the charger and limit it's universal character (that's not the interest of second source manufacturers).&lt;br /&gt;
&lt;br /&gt;
Thus:&lt;br /&gt;
* You can use a Nokia or Nokia-compatible BL-4C, BL-5C, or BL-6C in the Neo&lt;br /&gt;
* You can charge the Neo battery in a Nokia-compatible charger that is not Nokia branded&lt;br /&gt;
* You can NOT charge the Neo battery in a Nokia branded phone or charger&lt;br /&gt;
&lt;br /&gt;
For more information about USB battery chargers that can be used with the Neo FreeRunner see&lt;br /&gt;
{{main|USB charger}}&lt;br /&gt;
&lt;br /&gt;
== DIY external battery pack from a Minty case ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Mintyboost:'''&lt;br /&gt;
&lt;br /&gt;
Charge from a couple of AA batteries: [http://www.ladyada.net/make/mintyboost/ Minty Boost!], [http://www.millions.ca/~stacy/mintyboost/ report on a Neo FreeRunner application].&lt;br /&gt;
&lt;br /&gt;
Adding the 47k resistor to the minty boost so that the Freerunner fast charges at 1A is a poor idea for a couple reasons, the biggest one being that the minty boost can't supply 1A the max is 600mA. as far as I know, there is no magic resistor to identify a 500mA charger to the Freerunner, it depends on USB host  telling it that it can provide 500mA. Second, the ID pin is in the USB micro connector, so you would either need to put a micro connector on your minty boost (with the correct resistor installed) or use a hacked cable.&lt;br /&gt;
&lt;br /&gt;
Even if the Linear Technology step up voltage converter is supposed to be able to do 600mA, the AA cells seem to have a problem with supplying 500mA. They get a little toasty :-). One powerpack built using D cells doesn't seem to have any issues with supplying 500mA.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Battery]]&lt;br /&gt;
[[Category:Neo FreeRunner Hardware]]&lt;/div&gt;</summary>
		<author><name>Michaelshiloh</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Neo_FreeRunner_Battery</id>
		<title>Neo FreeRunner Battery</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Neo_FreeRunner_Battery"/>
				<updated>2008-10-08T23:11:04Z</updated>
		
		<summary type="html">&lt;p&gt;Michaelshiloh: /* Make sure your battery never discharges completely. */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Neo FreeRunner Menu}}&lt;br /&gt;
=== GTA02 1200 mAh Smart Battery ===&lt;br /&gt;
&lt;br /&gt;
*Using SANYO 1200mAh cell&lt;br /&gt;
*Battery Technical information: [http://people.openmoko.org/tony_tu/GTA02/hardware/GTA02/CT-GTA02.pdf Detailed Battery Information]&lt;br /&gt;
&lt;br /&gt;
* 1200mAh Smart Battery with Coulomb-counter and protection circuit&lt;br /&gt;
* The Smart Battery keeps track of maximum and current capacity for precise prediction of remaining battery power and time until shutdown, based on actual power dissipation.&lt;br /&gt;
&lt;br /&gt;
For more information, see the GTA01 battery info at [[Neo1973 Battery]]&lt;br /&gt;
&lt;br /&gt;
=== Notes about expected battery life ===&lt;br /&gt;
Battery life is a work in progress. The power saving software is in a very rudimentary state. At the moment 12h is about the most (note though a [http://lists.openmoko.org/pipermail/community/2008-July/020339.html recent result of at least 21h], mostly in suspend, with multiple short wakeups, on the predecessor device GTA01). A week standby and 6 hours talk, 20 hours mp3 might be attainable when power saving software is complete.&lt;br /&gt;
&lt;br /&gt;
== Known Issues ==&lt;br /&gt;
&lt;br /&gt;
=== Make sure your battery never discharges completely. ===&lt;br /&gt;
&lt;br /&gt;
This is an issue because the internal charging circuitry can not be turned on until the FreeRunner has booted, and booting through USB power alone does not work.&lt;br /&gt;
&lt;br /&gt;
==== What to do if your battery has become completely discharged ====&lt;br /&gt;
&lt;br /&gt;
See the workarounds for [[Neo_FreeRunner_Hardware_Issues#PMU.2FCharger_Issue|PMU/Charger Issue]]&lt;br /&gt;
&lt;br /&gt;
==== More tricks ====&lt;br /&gt;
&lt;br /&gt;
''Q: Does anyone know WHY it don't charge when it is off? My logic says that it is very important to have the option charge the battery when it is flat.''&lt;br /&gt;
&lt;br /&gt;
A: I can't give you a simple answer. Charging is controlled by the PCF50633 &lt;br /&gt;
chip, based on configuration values that are written to it by u-boot, &lt;br /&gt;
Linux, and userspace programs. Some of these settings are preserved &lt;br /&gt;
across a power-cycle (the PCF50633 has a small backup battery that's &lt;br /&gt;
also used to keep the RTC running) so the behavior at startup depends on &lt;br /&gt;
the software that you used during your last session.&lt;br /&gt;
&lt;br /&gt;
Another complication is that some Freerunners are capable of starting up &lt;br /&gt;
without a battery while others are not (possibly due to different &lt;br /&gt;
capacitor values on the internal power rails).&lt;br /&gt;
&lt;br /&gt;
I can give a few hints:&lt;br /&gt;
* The current (Sep. 2nd, 2008) u-boot has a bug that means it will not properly charge from the wall charger. Try a USB cable into a PC instead.&lt;br /&gt;
* Try booting through NOR u-boot instead (hold aux and then power) with both the wall charger or a 500mA USB connection, then try booting Linux.&lt;br /&gt;
* Try to boot into the NAND u-boot menu (hold power and then aux) and then select &amp;quot;power off&amp;quot;. This may leave the device in a state were it will charge. Wait 15 minutes and then try to boot Linux.&lt;br /&gt;
* If the device shuts off during one of the above attempts, let it sit for a few minutes and then try that same item once again&lt;br /&gt;
&lt;br /&gt;
Kudos to Mike Montour on the&lt;br /&gt;
[http://lists.openmoko.org/pipermail/community/2008-September/029243.html  Community mailing list].&lt;br /&gt;
&lt;br /&gt;
== Compatible Replacement Batteries ==&lt;br /&gt;
&lt;br /&gt;
Other known FreeRunner-compatible batteries include the BL-series (BL-4X, BL-5X) from Nokia, and their third-party equivalents.&lt;br /&gt;
These may not work to revive a device and may not report charge information.&lt;br /&gt;
It is probably a good idea to check that your battery is not greater than the stock battery's voltage of 3.7V (the above suggests that 4.5VDC should be fine) unless you know what you are doing.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
!Battery Model&lt;br /&gt;
!Capacity (mAh)&lt;br /&gt;
!Charge info reported&lt;br /&gt;
!Notes&lt;br /&gt;
|-&lt;br /&gt;
|NOKIA BL-4&lt;br /&gt;
|&lt;br /&gt;
|no&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|NOKIA BL-4C&lt;br /&gt;
|750&lt;br /&gt;
|no&lt;br /&gt;
|Slightly thinner than original.&lt;br /&gt;
|-&lt;br /&gt;
|NOKIA BL-5B&lt;br /&gt;
|760/890&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|NOKIA BL-5C&lt;br /&gt;
|950&lt;br /&gt;
|no&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|NOKIA BL-6C&lt;br /&gt;
|1070&lt;br /&gt;
|no&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|NOKIA BR-6C&lt;br /&gt;
|?&lt;br /&gt;
|no&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Alien Charging of Battery ==&lt;br /&gt;
&lt;br /&gt;
Nokia devices (phones and stand-alone chargers) usually will not charge&lt;br /&gt;
non-Nokia batteries, most likely because they can't be sure they have&lt;br /&gt;
the correct charging parameters (and of course Nokia isn't interested in supporting use of alien batteries with their phones).&lt;br /&gt;
&lt;br /&gt;
Most after-market or no-name brands of Nokia-compatible chargers don't&lt;br /&gt;
test the make of the battery, most likely because adding the capability&lt;br /&gt;
to perform this test would add to the cost of the charger and limit it's universal character (that's not the interest of second source manufacturers).&lt;br /&gt;
&lt;br /&gt;
Thus:&lt;br /&gt;
* You can use a Nokia or Nokia-compatible BL-4C, BL-5C, or BL-6C in the Neo&lt;br /&gt;
* You can charge the Neo battery in a Nokia-compatible charger that is not Nokia branded&lt;br /&gt;
* You can NOT charge the Neo battery in a Nokia branded phone or charger&lt;br /&gt;
&lt;br /&gt;
For more information about USB battery chargers that can be used with the Neo FreeRunner see&lt;br /&gt;
{{main|USB charger}}&lt;br /&gt;
&lt;br /&gt;
== DIY external battery pack from a Minty case ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Mintyboost:'''&lt;br /&gt;
&lt;br /&gt;
Charge from a couple of AA batteries: [http://www.ladyada.net/make/mintyboost/ Minty Boost!], [http://www.millions.ca/~stacy/mintyboost/ report on a Neo FreeRunner application].&lt;br /&gt;
&lt;br /&gt;
Adding the 47k resistor to the minty boost so that the Freerunner fast charges at 1A is a poor idea for a couple reasons, the biggest one being that the minty boost can't supply 1A the max is 600mA. as far as I know, there is no magic resistor to identify a 500mA charger to the Freerunner, it depends on USB host  telling it that it can provide 500mA. Second, the ID pin is in the USB micro connector, so you would either need to put a micro connector on your minty boost (with the correct resistor installed) or use a hacked cable.&lt;br /&gt;
&lt;br /&gt;
Even if the Linear Technology step up voltage converter is supposed to be able to do 600mA, the AA cells seem to have a problem with supplying 500mA. They get a little toasty :-). One powerpack built using D cells doesn't seem to have any issues with supplying 500mA.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Battery]]&lt;br /&gt;
[[Category:Neo FreeRunner Hardware]]&lt;/div&gt;</summary>
		<author><name>Michaelshiloh</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Openmoko_Local_Groups</id>
		<title>Openmoko Local Groups</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Openmoko_Local_Groups"/>
				<updated>2008-10-08T23:09:11Z</updated>
		
		<summary type="html">&lt;p&gt;Michaelshiloh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Openmoko Local Groups...'''&lt;br /&gt;
&lt;br /&gt;
* can be used for developers to meet and get to know each other&lt;br /&gt;
* can be used for developing&lt;br /&gt;
* may provide the room for real-life discussions away from mailinglists/wiki&lt;br /&gt;
* can support early support handling their GTA01Bv4 and exchange experiences&lt;br /&gt;
* fasten the community's cohesion&lt;br /&gt;
* give motivation&lt;br /&gt;
&lt;br /&gt;
Note that the list below is manually maintained. To make sure you don't miss a group, please check the [[:Category:Openmoko_Local_Groups|Openmoko local groups category]] too. If you happen to find any missing groups, please add them here.&lt;br /&gt;
&lt;br /&gt;
Note the list below was created during the Neo 1973 era. When the Neo FreeRunner came out, a different type of local group came into existence, as a result of discounts available with volume purchases. To find these local groups visit [[group sales|here]]&lt;br /&gt;
&lt;br /&gt;
== Africa ==&lt;br /&gt;
* South Africa&lt;br /&gt;
**[[Openmoko_Local_Groups: Cape Town|Cape Town]]&lt;br /&gt;
&lt;br /&gt;
== America ==&lt;br /&gt;
&lt;br /&gt;
* Brasil&lt;br /&gt;
** [[Openmoko_Local_Groups: Belo Horizonte|Belo Horizonte]]&lt;br /&gt;
&lt;br /&gt;
* Canada &lt;br /&gt;
** Alberta&lt;br /&gt;
*** [[Openmoko_Local_Groups: Calgary|Calgary]]&lt;br /&gt;
*** [[Openmoko_Local_Groups: Edmonton|Edmonton]]&lt;br /&gt;
*** [[Openmoko_Local_Groups: Pincher Creek|Pincher Creek]]&lt;br /&gt;
** British Columbia&lt;br /&gt;
*** [[Openmoko Local Groups: Victoria|Victoria]]&lt;br /&gt;
*** [[Openmoko_Local_Groups: Vancouver|Vancouver]]&lt;br /&gt;
** Ontario&lt;br /&gt;
*** [[Openmoko_Local_Groups: Ottawa|Ottawa]]&lt;br /&gt;
*** [[Openmoko_Local_Groups: Toronto|Toronto]]&lt;br /&gt;
** Quebec &lt;br /&gt;
*** [[Openmoko_Local_Groups: Montreal|Montreal]]&lt;br /&gt;
&lt;br /&gt;
* Colombia&lt;br /&gt;
** [[Openmoko_Local_Groups: Bogota|Bogotá]]&lt;br /&gt;
&lt;br /&gt;
* México&lt;br /&gt;
** [[Openmoko_Local_Groups: Monterrey|Monterrey]]&lt;br /&gt;
&lt;br /&gt;
* USA &lt;br /&gt;
** Alabama&lt;br /&gt;
*** [[Openmoko_Local_Groups: Alabama|Alabama]]&lt;br /&gt;
** Arizona&lt;br /&gt;
*** [[Openmoko_Local_Groups: Arizona|Arizona]]&lt;br /&gt;
** Arkansas&lt;br /&gt;
*** [[Openmoko_Local_Groups: Arkansas|Arkansas]]&lt;br /&gt;
** California &lt;br /&gt;
*** [[Openmoko_Local_Groups: San Diego|San Diego]] &lt;br /&gt;
*** [[Openmoko_Local_Groups: San Francisco|San Francisco]] &lt;br /&gt;
*** [[Openmoko_Local_Groups: Sacramento|Sacramento]]&lt;br /&gt;
*** [[Openmoko_Local_Groups: Los Angeles|Los Angeles]]&lt;br /&gt;
*** [[Openmoko_Local_Groups: Santa Barbara|Santa Barbara]]&lt;br /&gt;
** Colorado&lt;br /&gt;
*** [[Openmoko_Local_Groups: Colorado Springs|Colorado Springs]]&lt;br /&gt;
*** [[Openmoko_Local_Groups: Denver|Denver]]&lt;br /&gt;
** District of Columbia&lt;br /&gt;
*** [[Openmoko_Local_Groups: Washington DC Metro | Washington DC Metro]]&lt;br /&gt;
** Florida&lt;br /&gt;
*** [[Openmoko_Local_Groups: Central Florida | Central Florida]]&lt;br /&gt;
** Georgia&lt;br /&gt;
*** [[Openmoko_Local_Groups: Atlanta | Atlanta]]&lt;br /&gt;
** Illinois &lt;br /&gt;
*** [[Openmoko_Local_Groups: Chicago|Chicago]]&lt;br /&gt;
** Indiana&lt;br /&gt;
*** [[Openmoko_Local_Groups: Bloomington|Bloomington]]&lt;br /&gt;
** Iowa&lt;br /&gt;
*** [[Openmoko_Local_Groups: Iowa-Ames | Iowa-Ames]] &lt;br /&gt;
** Massachusetts&lt;br /&gt;
*** [[Openmoko_Local_groups: Boston|Boston]]&lt;br /&gt;
** Michigan &lt;br /&gt;
*** [[Openmoko_Local_Groups: Detroit|Detroit]] &lt;br /&gt;
** Missouri &lt;br /&gt;
*** [[Openmoko_Local_Groups: St. Louis|St. Louis]] &lt;br /&gt;
** New Jersey&lt;br /&gt;
*** [[Openmoko_Local_Groups: Stevens Institute of Technology, Hoboken NJ | Stevens Institute of Technology, Hoboken NJ  ]]&lt;br /&gt;
** New York&lt;br /&gt;
*** [[Openmoko_Local_Groups: NYC Metro | NYC Metro]]&lt;br /&gt;
** North Carolina&lt;br /&gt;
*** [[Openmoko Local_Groups: Charlotte | Charlotte]]&lt;br /&gt;
** North Dakota&lt;br /&gt;
*** [[Openmoko_Local_Groups: Fargo]]&lt;br /&gt;
** Ohio &lt;br /&gt;
*** [[Openmoko_Local_Groups: Cleveland|Cleveland]] &lt;br /&gt;
** Oregon &lt;br /&gt;
*** [[Openmoko_Local_Groups: Eugene|Eugene]] &lt;br /&gt;
*** [[Openmoko_Local_Groups: Portland|Portland]] &lt;br /&gt;
** Pennsylvania&lt;br /&gt;
*** [[Openmoko_Local_Groups: Pittsburgh|Pittsburgh]]&lt;br /&gt;
** Texas &lt;br /&gt;
*** [[Openmoko_Local_Groups: North Texas|North Texas]]&lt;br /&gt;
*** [[Openmoko_Local_Groups: Central Texas|Central Texas]]&lt;br /&gt;
*** [[Openmoko_Local_Groups: East Texas|East Texas]]&lt;br /&gt;
** Utah&lt;br /&gt;
*** [[Openmoko_Local_Groups: Salt Lake|Salt Lake]]&lt;br /&gt;
** Virginia&lt;br /&gt;
*** [[Openmoko_Local_Groups: Virginia|Virginia]]&lt;br /&gt;
** Washington&lt;br /&gt;
*** [[Openmoko_Local_Groups: Washington|Pacific Northwest]]&lt;br /&gt;
&lt;br /&gt;
* Uruguay&lt;br /&gt;
** [[Openmoko_Local_Groups: Montevideo|Montevideo]]&lt;br /&gt;
&lt;br /&gt;
* [[Openmoko Local Groups: Venezuela|Venezuela]]&lt;br /&gt;
** [[Openmoko_Local_Groups: Caracas|Caracas]]&lt;br /&gt;
&lt;br /&gt;
== Asia ==&lt;br /&gt;
* Pakistan&lt;br /&gt;
** [[Openmoko_Local_Groups: Islamabad|Islamabad]]&lt;br /&gt;
* India&lt;br /&gt;
** [[Openmoko_Local_Groups: Bangalore|Bangalore]]&lt;br /&gt;
** [[Openmoko_Local_Groups: Delhi|Delhi]]&lt;br /&gt;
** [[Openmoko_Local_Groups: Hyderabad|Hyderabad]]&lt;br /&gt;
* Singapore&lt;br /&gt;
** [[Openmoko_Local_Groups: Singapore|Singapore]]&lt;br /&gt;
* Kazakhstan&lt;br /&gt;
** [[Openmoko_Local_Groups: Karaganda|Karaganda]]&lt;br /&gt;
* China&lt;br /&gt;
** [[Openmoko_Local_Groups: China|China]]&lt;br /&gt;
* Taiwan&lt;br /&gt;
** [[Openmoko_Local_Groups: Taiwan|Taiwan]]&lt;br /&gt;
&lt;br /&gt;
== Europe ==&lt;br /&gt;
&lt;br /&gt;
* Austria&lt;br /&gt;
** [[Openmoko_Local_Groups: Vienna|Vienna]] &lt;br /&gt;
** [[Openmoko_Local_Groups: Innsbruck|Innsbruck]] &lt;br /&gt;
&lt;br /&gt;
* [[Openmoko_Local_Groups: Belgium|Belgium]]&lt;br /&gt;
** [[Openmoko_local_Groups: Antwerp|Antwerp]]&lt;br /&gt;
** [[Openmoko_local_Groups:_Brussels|Brussels]]&lt;br /&gt;
&lt;br /&gt;
* [[Openmoko_Local_Groups:_Denmark|Denmark]]&lt;br /&gt;
** [[Openmoko_Local_Groups: Copenhagen|Copenhagen]]&lt;br /&gt;
** [[Openmoko_Local_Groups: Aalborg|Aalborg]]&lt;br /&gt;
&lt;br /&gt;
*[[Openmoko_Local_Groups: Estonia|Estonia]]&lt;br /&gt;
** [[Openmoko_Local_Groups: Kuressaare|Kuressaare]] &lt;br /&gt;
&lt;br /&gt;
* [[Openmoko_Local_Groups: Finland|Finland]]&lt;br /&gt;
** [[Openmoko_Local_Groups: Helsinki|Helsinki]] &lt;br /&gt;
 &lt;br /&gt;
* [[Openmoko_Local_Groups: France|France]]&lt;br /&gt;
** [[Openmoko_Local_Groups: Grenoble|Grenoble]] &lt;br /&gt;
** [[Openmoko_Local_Groups: Lyon|Lyon]]&lt;br /&gt;
** [[Openmoko_Local_Groups: Paris|Paris]]&lt;br /&gt;
** [[Openmoko_Local_Groups: Rennes|Rennes]]&lt;br /&gt;
** [[Openmoko_Local_Groups: Toulouse|Toulouse]]&lt;br /&gt;
** [[Openmoko Local Groups: Alsace|Alsace]]&lt;br /&gt;
&lt;br /&gt;
* Germany &lt;br /&gt;
** [[Openmoko_Local_Groups: Aachen|Aachen]]&lt;br /&gt;
** [[Openmoko_Local_Groups: Berlin|Berlin]]&lt;br /&gt;
** [[Openmoko_Local_Groups: Braunschweig|Braunschweig]]&lt;br /&gt;
** [[Openmoko_Local_Groups: Dortmund|Dortmund]]&lt;br /&gt;
** [[Openmoko_Local_Groups: Dresden|Dresden]] &lt;br /&gt;
** [[Openmoko_Local_Groups: Duesseldorf|Duesseldorf]]&lt;br /&gt;
** [[Openmoko_Local_Groups: Erlangen-Nuernberg|Erlangen-Nuernberg]]&lt;br /&gt;
** [[Openmoko_Local_Groups: Frankfurt Main|Frankfurt Main]] &lt;br /&gt;
** [[Openmoko_Local_Groups: Freiburg im Breisgau|Freiburg im Breisgau]] &lt;br /&gt;
** [[Openmoko_Local_Groups: Hamburg|Hamburg]] &lt;br /&gt;
** [[Openmoko_Local_Groups: OWL|OWL]]&lt;br /&gt;
** [[Openmoko_Local_Groups: Ingolstadt|Ingolstadt]]&lt;br /&gt;
** [[Openmoko_Local_Groups: Munich|München]]&lt;br /&gt;
** [[Openmoko_Local_Groups: Trier|Trier]]&lt;br /&gt;
** [[Openmoko_Local_Groups: Ulm|Ulm]]&lt;br /&gt;
** [[Openmoko_Local_Groups: Rülzheim|Rülzheim]]&lt;br /&gt;
&lt;br /&gt;
* Greece&lt;br /&gt;
** [[Openmoko_Local_Groups: Athens|Athens]]&lt;br /&gt;
&lt;br /&gt;
* Iceland&lt;br /&gt;
** [[Openmoko_Local_Groups: Reykjavík|Reykjavík]]&lt;br /&gt;
&lt;br /&gt;
* Italy&lt;br /&gt;
** [[Openmoko_Local_Groups: Milan|Milan]] &lt;br /&gt;
** [[Openmoko_Local_Groups: Turin|Turin]] &lt;br /&gt;
&lt;br /&gt;
* [[Openmoko_Local_Groups:_Netherlands|Netherlands]] &lt;br /&gt;
** [[Openmoko_Local_Groups: Amsterdam|Amsterdam]] &lt;br /&gt;
** [[Openmoko_Local_Groups: Den Haag|Den Haag/The Hague]] &lt;br /&gt;
** [[Openmoko_Local_Groups: Eindhoven|Eindhoven]] &lt;br /&gt;
** [[Openmoko_Local_Groups: Ede|Ede]]&lt;br /&gt;
&lt;br /&gt;
* [[Openmoko_Local_Groups:_Norway|Norway]]&lt;br /&gt;
** [[Openmoko_Local_Groups:_Oslo|Oslo]]&lt;br /&gt;
** [[Openmoko_Local_Groups: Trondheim|Trondheim]] &lt;br /&gt;
&lt;br /&gt;
* Poland &lt;br /&gt;
** [[Openmoko_Local_Groups: Warsaw|Warsaw]] &lt;br /&gt;
** [[Openmoko_Local_Groups: Szczecin|Szczecin]]&lt;br /&gt;
&lt;br /&gt;
* [[Openmoko_Local_Groups:_Portugal|Portugal]]&lt;br /&gt;
** [[Openmoko_Local_Groups: Braga|Braga]] &lt;br /&gt;
&lt;br /&gt;
* Romania&lt;br /&gt;
** [[Openmoko_Local_Groups: Bucharest|Bucharest]]&lt;br /&gt;
&lt;br /&gt;
* [[Openmoko Local Groups: Russia|Russia]]&lt;br /&gt;
** [[Openmoko_Local_Groups: Moscow|Moscow]]&lt;br /&gt;
** [[Openmoko_Local_Groups: Saint-Petersburg|Saint-Petersburg]]&lt;br /&gt;
&lt;br /&gt;
* Slovakia&lt;br /&gt;
** [[Openmoko_Local_Groups: Bratislava|Bratislava]]&lt;br /&gt;
&lt;br /&gt;
* [[Openmoko_Local_Groups:_Spain|Spain]] &lt;br /&gt;
** [[Openmoko_Local_Groups: Madrid|Madrid]] &lt;br /&gt;
** [[Openmoko_Local_Groups: Tenerife|Santa Cruz de Tenerife]] &lt;br /&gt;
** [[Openmoko_Local_Groups: Baleares|Islas Baleares]] &lt;br /&gt;
&lt;br /&gt;
* Sweden &lt;br /&gt;
** [[Openmoko_Local_Groups: Gothenburg|Gothenburg]] &lt;br /&gt;
** [[Openmoko_Local_Groups: Linkoping|Linköping]]&lt;br /&gt;
** [[Openmoko_Local_Groups: Stockholm|Stockholm]]&lt;br /&gt;
** [[Openmoko_Local_Groups: Umea|Umeå]] &lt;br /&gt;
&lt;br /&gt;
* [[Openmoko_Local_Groups: Switzerland|Switzerland]]&lt;br /&gt;
** [[Openmoko_Local_Groups: Bern|Bern]] &lt;br /&gt;
&lt;br /&gt;
* UK&lt;br /&gt;
** England&lt;br /&gt;
*** [[Openmoko_Local_Groups: Birmingham|Birmingham]] &lt;br /&gt;
*** [[Openmoko_Local_Groups: Cambridge|Cambridge]] &lt;br /&gt;
*** [[Openmoko_Local_Groups: London|London]]&lt;br /&gt;
*** [[Openmoko_Local_Groups: Manchester|Manchester]]&lt;br /&gt;
*** [[Openmoko_Local_Groups: East Midlands|East Midlands]]&lt;br /&gt;
** Scotland&lt;br /&gt;
*** [[Openmoko_Local_Groups: Fife|Fife]]&lt;br /&gt;
*** [[Openmoko_Local_Groups: Edinburgh|Edinburgh]]&lt;br /&gt;
&lt;br /&gt;
* Ukraine&lt;br /&gt;
** [[Openmoko_Local_Groups: Lugansk|Lugansk]]&lt;br /&gt;
&lt;br /&gt;
== Oceania ==&lt;br /&gt;
&lt;br /&gt;
* Australia &lt;br /&gt;
** [[Openmoko_Local_Groups: Adelaide|Adelaide]]&lt;br /&gt;
** [[Openmoko_Local_Groups: Canberra|Canberra]]&lt;br /&gt;
** [[Openmoko_Local_Groups: Melbourne|Melbourne]]&lt;br /&gt;
** [[Openmoko_Local_Groups: Perth|Perth]]&lt;br /&gt;
** [[Openmoko_Local_Groups: Sydney|Sydney]]&lt;br /&gt;
&lt;br /&gt;
* New Zealand&lt;br /&gt;
** [[Openmoko_Local_Groups: Auckland|Auckland]]&lt;br /&gt;
** [[Openmoko_Local_Groups: Wellington|Wellington]]&lt;br /&gt;
** [[Openmoko_Local_Groups: Christchurch|Christchurch]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== How to edit local group lists ==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot;&lt;br /&gt;
!&lt;br /&gt;
!Has Device&lt;br /&gt;
|-&lt;br /&gt;
|If you have a device, on your local group's page, please add:&lt;br /&gt;
|[[Image: Moko.jpg|center]]&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;[[Image: Moko.jpg|center]]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
!Has Debug Board&lt;br /&gt;
|-&lt;br /&gt;
|If you have a debug board, please add:&lt;br /&gt;
|[[Image: MokoBox.jpg|center]]&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;[[Image: MokoBox.jpg|center]]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Such as with [[Openmoko_Local_Groups:_Singapore | Singapore]] or [[Openmoko_Local_Groups:_San_Francisco | San Francisco]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Community]]&lt;br /&gt;
[[Category:Openmoko Local Groups]]&lt;/div&gt;</summary>
		<author><name>Michaelshiloh</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Neo_FreeRunner_Wifi</id>
		<title>Neo FreeRunner Wifi</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Neo_FreeRunner_Wifi"/>
				<updated>2008-10-08T22:57:08Z</updated>
		
		<summary type="html">&lt;p&gt;Michaelshiloh: /* Disable power management */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|Neo FreeRunner Menu}}&lt;br /&gt;
&lt;br /&gt;
This page documents the [http://en.wikipedia.org/wiki/Wireless_networking wireless networking] solutions commonly known as [http://en.wikipedia.org/wiki/Wireless_LAN WLAN] or WiFi. &lt;br /&gt;
&lt;br /&gt;
There are other ways to enable wireless communications on the Neo, including [[Bluetooth]]. For Bluetooth solutions, see [[How to use bluetooth to transfer data between Neo and Desk-top]] and [[Manually using Bluetooth]].&lt;br /&gt;
&lt;br /&gt;
== Using the GUI on 2008.8 ==&lt;br /&gt;
&lt;br /&gt;
In the Settings application on Om 2008.8, there's a &amp;quot;WiFi&amp;quot; item. It should work fairly well in stable-updated 2008.8 (even with WPA2).&lt;br /&gt;
&lt;br /&gt;
If it says &amp;quot;WiFi unknown&amp;quot;, you can delete the /etc/volatives.cache file and reboot.  It should work after that.[http://docs.openmoko.org/trac/ticket/1734]  After connecting using the GUI, you may also need to run &amp;quot;udhcpc eth0&amp;quot; manually in the terminal to get DNS entries added to your resolv.conf.  You may also need to run &amp;quot;ifdown usb0&amp;quot; to remove the routing issue caused by having both interfaces up at the same time.  Some users have reported that 802.11g modulation needs to be enabled on APs to allow the FreeRunner to connect (The hardware is suppose to support 802.11b/g).&lt;br /&gt;
&lt;br /&gt;
Otherwise there's also [[lint-wifi]].  Refer to the section below, [[#Available Software|&amp;quot;Available Software&amp;quot;]] to find out what else might be available.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== How can I tell what Access Points (APs) are visible to me? ==&lt;br /&gt;
&lt;br /&gt;
You can connect to wireless networks through wireless [http://en.wikipedia.org/wiki/Access_point| access points]. If you want to know the names of all the access points that are currently visible to you, you can perform a scan with this command:&lt;br /&gt;
&lt;br /&gt;
 root@om-gta02:~# '''iwlist eth0 scan'''&lt;br /&gt;
&lt;br /&gt;
If anything is visible you will get a list that looks something like this:&lt;br /&gt;
&lt;br /&gt;
 eth0      Scan completed :&lt;br /&gt;
           Cell 01 - Address: 00:16:B6:DE:77:58&lt;br /&gt;
                     ESSID:&amp;quot;StarvinMarvin&amp;quot;&lt;br /&gt;
                     Mode:Master&lt;br /&gt;
                     Frequency:2.437 GHz (Channel 6)&lt;br /&gt;
                     Quality=9/94  Signal level=-86 dBm  Noise level=-95 dBm&lt;br /&gt;
                     Encryption key:on&lt;br /&gt;
                     Extra:bcn_int=100&lt;br /&gt;
                     Extra:wpa_ie=dd180050f20101000050f20201000050f20201000050f2020000&lt;br /&gt;
           Cell 02 - Address: 00:21:29:AA:10:97&lt;br /&gt;
                     ESSID:&amp;quot;CandT Network&amp;quot;&lt;br /&gt;
                     Mode:Master&lt;br /&gt;
                     Frequency:2.437 GHz (Channel 6)&lt;br /&gt;
                     Quality=39/94  Signal level=-56 dBm  Noise level=-95 dBm&lt;br /&gt;
                     Encryption key:on&lt;br /&gt;
                     Extra:bcn_int=100&lt;br /&gt;
                     Extra:wpa_ie=dd1c0050f20101000050f20202000050f2040050f20201000050f2020000&lt;br /&gt;
                     Extra:rsn_ie=30180100000fac020200000fac04000fac020100000fac020000&lt;br /&gt;
           Cell 03 - Address: 00:14:95:1B:8E:B9&lt;br /&gt;
                     ESSID:&amp;quot;2WIRE852&amp;quot;&lt;br /&gt;
                     Mode:Master&lt;br /&gt;
                     Frequency:2.437 GHz (Channel 6)&lt;br /&gt;
                     Quality=5/94  Signal level=-90 dBm  Noise level=-95 dBm&lt;br /&gt;
                     Encryption key:on&lt;br /&gt;
                     Extra:bcn_int=100&lt;br /&gt;
           Cell 04 - Address: 00:E0:98:52:3D:78&lt;br /&gt;
                     ESSID:&amp;quot;smith&amp;quot;&lt;br /&gt;
                     Mode:Master&lt;br /&gt;
                     Frequency:2.437 GHz (Channel 6)&lt;br /&gt;
                     Quality=36/94  Signal level=-59 dBm  Noise level=-95 dBm&lt;br /&gt;
                     Encryption key:on&lt;br /&gt;
                     Extra:bcn_int=100&lt;br /&gt;
&lt;br /&gt;
If you want to connect to an unsecured network run:&lt;br /&gt;
  &lt;br /&gt;
  udhcpc  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== WPA ==&lt;br /&gt;
&lt;br /&gt;
[http://en.wikipedia.org/wiki/Wi-Fi_Protected_Access  WPA] is an encryption method for securing your wireless network.&lt;br /&gt;
&lt;br /&gt;
=== Using wpa_supplicant manually ===&lt;br /&gt;
&lt;br /&gt;
Create and edit a suitable [[GTA02_WLAN#Sample_wpa_supplicant.conf|/etc/wpa_supplicant/wpa_supplicant.conf]].&lt;br /&gt;
&lt;br /&gt;
Bring up your wireless connection: &lt;br /&gt;
&lt;br /&gt;
 root@om-gta02:~# ifup eth0&lt;br /&gt;
 root@om-gta02:~# wpa_supplicant -ieth0 -c/etc/wpa_supplicant/wpa_supplicant.conf -B&lt;br /&gt;
 root@om-gta02:~# udhcpc eth0&lt;br /&gt;
&lt;br /&gt;
=== Using WPA and /etc/network/interfaces ===&lt;br /&gt;
&lt;br /&gt;
Once you have a [[GTA02_WLAN#Sample_wpa_supplicant.conf|/etc/wpa_supplicant/wpa_supplicant.conf]] file, add a line under the eth0 entry in /etc/network/interfaces:&lt;br /&gt;
&lt;br /&gt;
 iface eth0 inet dhcp&lt;br /&gt;
    wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf&lt;br /&gt;
&lt;br /&gt;
Save your changes and run:&lt;br /&gt;
  # ifdown eth0 &amp;amp;&amp;amp; ifup eth0&lt;br /&gt;
&lt;br /&gt;
You'll get a lot of messages, like &amp;lt;tt&amp;gt;ioctl[SIOCSIWENCODEEXT]: Operation not supported&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;sed: unrecognized option `--quiet'&amp;lt;/tt&amp;gt;, they appear to be harmless. The &amp;quot;--quiet&amp;quot; error message can be avoided by replacing &amp;quot;sed --quiet&amp;quot; with &amp;quot;sed -n&amp;quot; in /etc/wpa_supplicant/*.sh&lt;br /&gt;
&lt;br /&gt;
=== wpa_supplicant.conf ===&lt;br /&gt;
&lt;br /&gt;
==== wpa_supplicant.conf explained ====&lt;br /&gt;
The highest priority is tried first then falls back to the next highest number.&lt;br /&gt;
&lt;br /&gt;
priority=100  1st  &amp;lt;br&amp;gt;&lt;br /&gt;
then&amp;lt;br&amp;gt;&lt;br /&gt;
priority=99  &amp;lt;br&amp;gt; &lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
&lt;br /&gt;
# Simple case: WPA-PSK, PSK as an ASCII passphrase, allow all valid ciphers&lt;br /&gt;
network={&lt;br /&gt;
	ssid=&amp;quot;AP_ESSID&amp;quot;&lt;br /&gt;
	psk=&amp;quot;presharedkey&amp;quot;&lt;br /&gt;
	priority=5&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#try open AP regardless of its SSID.&lt;br /&gt;
# change root password before you go roaming around it could prove dangerous&lt;br /&gt;
network={&lt;br /&gt;
	key_mgmt=NONE&lt;br /&gt;
priority=1  #try any open AP last&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A more in depth explanation can be found here:&amp;lt;br&amp;gt; &lt;br /&gt;
http://hostap.epitest.fi/gitweb/gitweb.cgi?p=hostap.git;a=blob_plain;f=wpa_supplicant/wpa_supplicant.conf&lt;br /&gt;
&lt;br /&gt;
==== Sample wpa_supplicant.conf ====&lt;br /&gt;
&lt;br /&gt;
 ctrl_interface=/var/run/wpa_supplicant&lt;br /&gt;
 ctrl_interface_group=0&lt;br /&gt;
 eapol_version=1&lt;br /&gt;
 ap_scan=1&lt;br /&gt;
 fast_reauth=1 &lt;br /&gt;
 # WPA2:&lt;br /&gt;
 network={&lt;br /&gt;
        ssid=&amp;quot;your ssid&amp;quot;&lt;br /&gt;
        scan_ssid=1&lt;br /&gt;
        proto=RSN&lt;br /&gt;
        key_mgmt=WPA-PSK&lt;br /&gt;
        pairwise=CCMP TKIP&lt;br /&gt;
        group=TKIP CCMP&lt;br /&gt;
        psk=&amp;quot;secret key&amp;quot;&lt;br /&gt;
        priority=50&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 # WPA:&lt;br /&gt;
 network={&lt;br /&gt;
       ssid=&amp;quot;your_ssid&amp;quot;&lt;br /&gt;
       proto=WPA&lt;br /&gt;
       key_mgmt=WPA-PSK&lt;br /&gt;
       pairwise=TKIP&lt;br /&gt;
       group=TKIP&lt;br /&gt;
       scan_ssid=1&lt;br /&gt;
       psk=&amp;quot;secret key&amp;quot;&lt;br /&gt;
       priority=10&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 # WEP:&lt;br /&gt;
 network={&lt;br /&gt;
      ssid=&amp;quot;your_ssid&amp;quot;&lt;br /&gt;
      scan_ssid=1&lt;br /&gt;
      key_mgmt=NONE&lt;br /&gt;
      wep_tx_keyidx=0&lt;br /&gt;
      wep_key0=your_hex_key&lt;br /&gt;
      priority=8&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 # Open:&lt;br /&gt;
 network={&lt;br /&gt;
      ssid=&amp;quot;your ssid&amp;quot;&lt;br /&gt;
      key_mgmt=NONE&lt;br /&gt;
      priority=5&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== Other sample wpa_supplicant.conf files ====&lt;br /&gt;
&lt;br /&gt;
Tom Yates documents his success [http://www.teaparty.net/technotes/openmoko-2.html#Wifi here]&lt;br /&gt;
&lt;br /&gt;
== WEP ==&lt;br /&gt;
&lt;br /&gt;
[http://en.wikipedia.org/wiki/Wired_Equivalent_Privacy WEP] is an encryption method for securing your wireless network. WEP is generally considered to be weak, you should use WPA instead if possible.&lt;br /&gt;
&lt;br /&gt;
=== Using WEP and /etc/network/interfaces ===&lt;br /&gt;
  iface eth0 inet dhcp&lt;br /&gt;
    wireless-key my_wep_key&lt;br /&gt;
    wireless-essid my_essid&lt;br /&gt;
&lt;br /&gt;
 iface eth0 inet dhcp&lt;br /&gt;
    wpa-wep-key0 my_wep_key&lt;br /&gt;
    wpa-key-mgmt NONE&lt;br /&gt;
    wpa-ssid my_essid&lt;br /&gt;
&lt;br /&gt;
Save your changes and run:&lt;br /&gt;
  # ifdown eth0 &amp;amp;&amp;amp; ifup eth0&lt;br /&gt;
&lt;br /&gt;
== Known Issues ==&lt;br /&gt;
&lt;br /&gt;
=== Known Issues with GUI ===&lt;br /&gt;
&lt;br /&gt;
The GUI seems to have some issues that prevent it from working in all cases. &lt;br /&gt;
&lt;br /&gt;
If a Wi-Fi connection can not be made with the GUI, open a shell and use iwconfig manually.&lt;br /&gt;
&lt;br /&gt;
Note that for WEP our iwconfig requires a more specific format than generic iwconfig.&lt;br /&gt;
&lt;br /&gt;
The canonical way of running iwconfig for WEP would be something like this:&lt;br /&gt;
&lt;br /&gt;
# iwconfig eth0 key A4BEB3B8EC essid xyz&lt;br /&gt;
&lt;br /&gt;
Two things are important here:&lt;br /&gt;
&lt;br /&gt;
* the key must be in HEX. iwconfig will not do anything useful if the key is given as a string.   [http://www.powerdog.com/wepkey.cgi Here] is a handy ASCII string to HEX converter.&lt;br /&gt;
&lt;br /&gt;
* the ESSID must follow the key.&lt;br /&gt;
&lt;br /&gt;
If an incorrect key was set, please stop all activity on the interface for at least two minutes (i.e., killall udhcpc and ifconfig eth0 down), then issue the correct iwconfig command and retry.&lt;br /&gt;
&lt;br /&gt;
=== Anecdotal solutions ===&lt;br /&gt;
&lt;br /&gt;
These solutions worked for some people:&lt;br /&gt;
&lt;br /&gt;
==== Disable power management ====&lt;br /&gt;
&lt;br /&gt;
Some APs apparently get upset by power managed devices, and the Freerunner enables power management of the wifi by default to preserve battery. One user's wrt54g certainly gets upset from time to time if he connect with the FreeRunner, sometimes refusing to talk to _anything_ over wifi afterwards until rebooted.&lt;br /&gt;
&lt;br /&gt;
==== Modified script ====&lt;br /&gt;
&lt;br /&gt;
&amp;quot;I changed the script a little:&lt;br /&gt;
&lt;br /&gt;
 Exec=xterm -e &amp;quot;ifconfig eth0 down \&lt;br /&gt;
 iwconfig eth0 txpower off channel 0 \&lt;br /&gt;
 while killall wpa_supplicant; do echo 'Killing wpa_sup'; done \&lt;br /&gt;
 killall udhcpc \&lt;br /&gt;
 wpa_supplicant -i eth0 -c /etc/wpa_supplicant/wpa_supplicant.conf -D wext -B \&lt;br /&gt;
 sleep 10; udhcpc&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Now it is working every time.&lt;br /&gt;
I am using 2008.latest (081004) and a linksys WAP54G accesspoint,&lt;br /&gt;
&lt;br /&gt;
==== Use a different channel ====&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Could not get it to work properly on channel 11, so I set my accesspoint to channel 1.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Wake up from wireless (wow)==&lt;br /&gt;
&lt;br /&gt;
Wi-Fi module constantly drain currents after module power up, for wi-fi SIP phone or some application need long standby time, will need wake up from wireless function for power saving. There is a sleep mode that Ar6k supported for wake up from wireless.&lt;br /&gt;
&lt;br /&gt;
 http://svn.openmoko.org/trunk/src/target/AR6kSDK.build_sw.18/host/tools/wmiconfig&lt;br /&gt;
&lt;br /&gt;
 export ATH_CROSS_COMPILE_TYPE=arm-angstrom-linux-gnueabi-&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
Debian package:&lt;br /&gt;
&lt;br /&gt;
 wget http://meshy.org/~ato/debian/pool/main/w/wmiconfig/wmiconfig_0.0.18-1_armel.deb&lt;br /&gt;
 dpkg -i wmiconfig_0.0.18-1_armel.deb&lt;br /&gt;
&lt;br /&gt;
Basically, it's achieved via wmiconfig tool to issue IOCTL if we want&lt;br /&gt;
ar6k wifi module to generate interrupt to host controller. The procedure&lt;br /&gt;
to enable wakeup-on-wireless(wow) is listed here:&lt;br /&gt;
&lt;br /&gt;
 1. wmiconfig --sethostmode asleep /* to tell ar6k what host's current is */&lt;br /&gt;
 2. wmiconfig --setwowmode enable /* enable wow function */&lt;br /&gt;
 3. wmiconfig --addpattern 0 1 33 01 ff /* add packet filter pattern, this is the ICMP filter pattern */&lt;br /&gt;
 4. apm -s&lt;br /&gt;
 5. ping IP_of_Neo&lt;br /&gt;
 6. The GPIO1 pin would be pulled up. The system would resume then.&lt;br /&gt;
 7. wmiconfig --sethostmode awake /* The firmware of ar6k will pull low the GPIO1 pin */&lt;br /&gt;
&lt;br /&gt;
--addwowpattern &amp;lt;list-id&amp;gt; &amp;lt;pattern-size&amp;gt; &amp;lt;pattern-offset&amp;gt; &amp;lt;pattern&amp;gt; &amp;lt;pattern-mask&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here are some addwowpattern commands:&lt;br /&gt;
&lt;br /&gt;
Protocol type=IP=0800&lt;br /&gt;
Protocol type in IP header=ICMP=01&lt;br /&gt;
&lt;br /&gt;
 - To filter for IP packets(offset 22)&lt;br /&gt;
 wmiconfig --addwowpattern 0 2 22 0800 ffff&lt;br /&gt;
 - To filter for ICMP packets (offset 33)&lt;br /&gt;
 wmiconfig --addwowpattern 0 1 33 01 ff&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== A very ugly /etc/init.d/wlan startscript ==&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 #&lt;br /&gt;
 # wlan	This shell script starts and stops wlan.&lt;br /&gt;
 #&lt;br /&gt;
 # processname: wlan&lt;br /&gt;
 &lt;br /&gt;
 # Source function library.&lt;br /&gt;
 #. /etc/rc.d/init.d/functions&lt;br /&gt;
 # &amp;quot;written&amp;quot; by HdR&lt;br /&gt;
 &lt;br /&gt;
 RETVAL=0&lt;br /&gt;
 prog=&amp;quot;wlan&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # test -f /etc/default/$prog &amp;amp;&amp;amp; . /etc/default/$prog&lt;br /&gt;
 &lt;br /&gt;
 start() {&lt;br /&gt;
 	echo -n &amp;quot;Starting $prog: &amp;quot;&lt;br /&gt;
 	ifconfig eth0 up&lt;br /&gt;
 	wpa_supplicant -ieth0 -c/etc/wpa_supplicant/wpa_supplicant.conf -B&lt;br /&gt;
 	sleep 10&lt;br /&gt;
 	udhcpc eth0&lt;br /&gt;
 	RETVAL=$?&lt;br /&gt;
 	return $RETVAL&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 stop() {&lt;br /&gt;
 	# Stop daemons.&lt;br /&gt;
 	echo -n &amp;quot;Shutting down $prog: &amp;quot;&lt;br /&gt;
         killall wpa_supplicant&lt;br /&gt;
 	ifconfig eth0 down&lt;br /&gt;
 #        killproc gpsd&lt;br /&gt;
 	RETVAL=$?&lt;br /&gt;
 	return $RETVAL&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 # See how we were called.&lt;br /&gt;
 case &amp;quot;$1&amp;quot; in&lt;br /&gt;
   start)&lt;br /&gt;
 	start&lt;br /&gt;
 	;;&lt;br /&gt;
   stop)&lt;br /&gt;
 	stop&lt;br /&gt;
 	;;&lt;br /&gt;
   restart|reload)&lt;br /&gt;
 	stop&lt;br /&gt;
 	start&lt;br /&gt;
 	RETVAL=$?&lt;br /&gt;
 	;;&lt;br /&gt;
   *)&lt;br /&gt;
 	echo &amp;quot;Usage: $0 {start|stop|restart}&amp;quot;&lt;br /&gt;
 	exit 1&lt;br /&gt;
 esac&lt;br /&gt;
 &lt;br /&gt;
 exit $RETVAL&lt;br /&gt;
&lt;br /&gt;
Note: Don't forget to make this script executable with &amp;quot;chmod +x &amp;lt;filename&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Route internet connection through Wifi rather than USB ==&lt;br /&gt;
&lt;br /&gt;
Wifi is faster than USB, so it is a good idea to tell the FreeRunner to connect through it. Put the following in /etc/network/interfaces under eth0:&lt;br /&gt;
&lt;br /&gt;
up route del default gw 192.168.0.200&lt;br /&gt;
&lt;br /&gt;
This will remove your computer as the default gateway and use the  wireless one when the interface is brought up. User nickd reports that sometimes it fails so he has had to put it in twice.&lt;br /&gt;
&lt;br /&gt;
== ssh into FR over WiFi ==&lt;br /&gt;
dropbear, the ssh server, is configured to listen on the USB interface only. Wireless interfaces like wlan or bluetooth are disabled for security reasons (empty root password).&lt;br /&gt;
&lt;br /&gt;
If you want to enable ssh over WiFi, change the /etc/default/dropbear from:&lt;br /&gt;
&lt;br /&gt;
  DROPBEAR_PORT=`ip addr list usb0 | awk 'BEGIN { FS=&amp;quot;[ /]+&amp;quot; } /inet / { print  $3 }'`:22&lt;br /&gt;
&lt;br /&gt;
(which actually only prepends the usb0 ip address before the :22)&lt;br /&gt;
&lt;br /&gt;
into:&lt;br /&gt;
&lt;br /&gt;
  DROPBEAR_PORT=22&lt;br /&gt;
&lt;br /&gt;
* Be careful with this config file since it can close the only door into your phone.&lt;br /&gt;
&lt;br /&gt;
* Set a root password!&lt;br /&gt;
&lt;br /&gt;
== Available Software ==&lt;br /&gt;
&lt;br /&gt;
Programs in development providing GUI interfaces to administer WiFi connections:&lt;br /&gt;
&lt;br /&gt;
* [[Lint-wifi]]&lt;br /&gt;
* [[Mofi]]&lt;br /&gt;
* [[Camp-Wifi]]&lt;br /&gt;
&lt;br /&gt;
== External links ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/ WiFi on Linux]&lt;br /&gt;
&lt;br /&gt;
[[Category:Neo FreeRunner Hardware]]&lt;br /&gt;
[[Category:Networking]]&lt;/div&gt;</summary>
		<author><name>Michaelshiloh</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Neo_FreeRunner_Wifi</id>
		<title>Neo FreeRunner Wifi</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Neo_FreeRunner_Wifi"/>
				<updated>2008-10-08T22:51:52Z</updated>
		
		<summary type="html">&lt;p&gt;Michaelshiloh: /* Using WEP and /etc/network/interfaces */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|Neo FreeRunner Menu}}&lt;br /&gt;
&lt;br /&gt;
This page documents the [http://en.wikipedia.org/wiki/Wireless_networking wireless networking] solutions commonly known as [http://en.wikipedia.org/wiki/Wireless_LAN WLAN] or WiFi. &lt;br /&gt;
&lt;br /&gt;
There are other ways to enable wireless communications on the Neo, including [[Bluetooth]]. For Bluetooth solutions, see [[How to use bluetooth to transfer data between Neo and Desk-top]] and [[Manually using Bluetooth]].&lt;br /&gt;
&lt;br /&gt;
== Using the GUI on 2008.8 ==&lt;br /&gt;
&lt;br /&gt;
In the Settings application on Om 2008.8, there's a &amp;quot;WiFi&amp;quot; item. It should work fairly well in stable-updated 2008.8 (even with WPA2).&lt;br /&gt;
&lt;br /&gt;
If it says &amp;quot;WiFi unknown&amp;quot;, you can delete the /etc/volatives.cache file and reboot.  It should work after that.[http://docs.openmoko.org/trac/ticket/1734]  After connecting using the GUI, you may also need to run &amp;quot;udhcpc eth0&amp;quot; manually in the terminal to get DNS entries added to your resolv.conf.  You may also need to run &amp;quot;ifdown usb0&amp;quot; to remove the routing issue caused by having both interfaces up at the same time.  Some users have reported that 802.11g modulation needs to be enabled on APs to allow the FreeRunner to connect (The hardware is suppose to support 802.11b/g).&lt;br /&gt;
&lt;br /&gt;
Otherwise there's also [[lint-wifi]].  Refer to the section below, [[#Available Software|&amp;quot;Available Software&amp;quot;]] to find out what else might be available.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== How can I tell what Access Points (APs) are visible to me? ==&lt;br /&gt;
&lt;br /&gt;
You can connect to wireless networks through wireless [http://en.wikipedia.org/wiki/Access_point| access points]. If you want to know the names of all the access points that are currently visible to you, you can perform a scan with this command:&lt;br /&gt;
&lt;br /&gt;
 root@om-gta02:~# '''iwlist eth0 scan'''&lt;br /&gt;
&lt;br /&gt;
If anything is visible you will get a list that looks something like this:&lt;br /&gt;
&lt;br /&gt;
 eth0      Scan completed :&lt;br /&gt;
           Cell 01 - Address: 00:16:B6:DE:77:58&lt;br /&gt;
                     ESSID:&amp;quot;StarvinMarvin&amp;quot;&lt;br /&gt;
                     Mode:Master&lt;br /&gt;
                     Frequency:2.437 GHz (Channel 6)&lt;br /&gt;
                     Quality=9/94  Signal level=-86 dBm  Noise level=-95 dBm&lt;br /&gt;
                     Encryption key:on&lt;br /&gt;
                     Extra:bcn_int=100&lt;br /&gt;
                     Extra:wpa_ie=dd180050f20101000050f20201000050f20201000050f2020000&lt;br /&gt;
           Cell 02 - Address: 00:21:29:AA:10:97&lt;br /&gt;
                     ESSID:&amp;quot;CandT Network&amp;quot;&lt;br /&gt;
                     Mode:Master&lt;br /&gt;
                     Frequency:2.437 GHz (Channel 6)&lt;br /&gt;
                     Quality=39/94  Signal level=-56 dBm  Noise level=-95 dBm&lt;br /&gt;
                     Encryption key:on&lt;br /&gt;
                     Extra:bcn_int=100&lt;br /&gt;
                     Extra:wpa_ie=dd1c0050f20101000050f20202000050f2040050f20201000050f2020000&lt;br /&gt;
                     Extra:rsn_ie=30180100000fac020200000fac04000fac020100000fac020000&lt;br /&gt;
           Cell 03 - Address: 00:14:95:1B:8E:B9&lt;br /&gt;
                     ESSID:&amp;quot;2WIRE852&amp;quot;&lt;br /&gt;
                     Mode:Master&lt;br /&gt;
                     Frequency:2.437 GHz (Channel 6)&lt;br /&gt;
                     Quality=5/94  Signal level=-90 dBm  Noise level=-95 dBm&lt;br /&gt;
                     Encryption key:on&lt;br /&gt;
                     Extra:bcn_int=100&lt;br /&gt;
           Cell 04 - Address: 00:E0:98:52:3D:78&lt;br /&gt;
                     ESSID:&amp;quot;smith&amp;quot;&lt;br /&gt;
                     Mode:Master&lt;br /&gt;
                     Frequency:2.437 GHz (Channel 6)&lt;br /&gt;
                     Quality=36/94  Signal level=-59 dBm  Noise level=-95 dBm&lt;br /&gt;
                     Encryption key:on&lt;br /&gt;
                     Extra:bcn_int=100&lt;br /&gt;
&lt;br /&gt;
If you want to connect to an unsecured network run:&lt;br /&gt;
  &lt;br /&gt;
  udhcpc  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== WPA ==&lt;br /&gt;
&lt;br /&gt;
[http://en.wikipedia.org/wiki/Wi-Fi_Protected_Access  WPA] is an encryption method for securing your wireless network.&lt;br /&gt;
&lt;br /&gt;
=== Using wpa_supplicant manually ===&lt;br /&gt;
&lt;br /&gt;
Create and edit a suitable [[GTA02_WLAN#Sample_wpa_supplicant.conf|/etc/wpa_supplicant/wpa_supplicant.conf]].&lt;br /&gt;
&lt;br /&gt;
Bring up your wireless connection: &lt;br /&gt;
&lt;br /&gt;
 root@om-gta02:~# ifup eth0&lt;br /&gt;
 root@om-gta02:~# wpa_supplicant -ieth0 -c/etc/wpa_supplicant/wpa_supplicant.conf -B&lt;br /&gt;
 root@om-gta02:~# udhcpc eth0&lt;br /&gt;
&lt;br /&gt;
=== Using WPA and /etc/network/interfaces ===&lt;br /&gt;
&lt;br /&gt;
Once you have a [[GTA02_WLAN#Sample_wpa_supplicant.conf|/etc/wpa_supplicant/wpa_supplicant.conf]] file, add a line under the eth0 entry in /etc/network/interfaces:&lt;br /&gt;
&lt;br /&gt;
 iface eth0 inet dhcp&lt;br /&gt;
    wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf&lt;br /&gt;
&lt;br /&gt;
Save your changes and run:&lt;br /&gt;
  # ifdown eth0 &amp;amp;&amp;amp; ifup eth0&lt;br /&gt;
&lt;br /&gt;
You'll get a lot of messages, like &amp;lt;tt&amp;gt;ioctl[SIOCSIWENCODEEXT]: Operation not supported&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;sed: unrecognized option `--quiet'&amp;lt;/tt&amp;gt;, they appear to be harmless. The &amp;quot;--quiet&amp;quot; error message can be avoided by replacing &amp;quot;sed --quiet&amp;quot; with &amp;quot;sed -n&amp;quot; in /etc/wpa_supplicant/*.sh&lt;br /&gt;
&lt;br /&gt;
=== wpa_supplicant.conf ===&lt;br /&gt;
&lt;br /&gt;
==== wpa_supplicant.conf explained ====&lt;br /&gt;
The highest priority is tried first then falls back to the next highest number.&lt;br /&gt;
&lt;br /&gt;
priority=100  1st  &amp;lt;br&amp;gt;&lt;br /&gt;
then&amp;lt;br&amp;gt;&lt;br /&gt;
priority=99  &amp;lt;br&amp;gt; &lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
&lt;br /&gt;
# Simple case: WPA-PSK, PSK as an ASCII passphrase, allow all valid ciphers&lt;br /&gt;
network={&lt;br /&gt;
	ssid=&amp;quot;AP_ESSID&amp;quot;&lt;br /&gt;
	psk=&amp;quot;presharedkey&amp;quot;&lt;br /&gt;
	priority=5&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#try open AP regardless of its SSID.&lt;br /&gt;
# change root password before you go roaming around it could prove dangerous&lt;br /&gt;
network={&lt;br /&gt;
	key_mgmt=NONE&lt;br /&gt;
priority=1  #try any open AP last&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A more in depth explanation can be found here:&amp;lt;br&amp;gt; &lt;br /&gt;
http://hostap.epitest.fi/gitweb/gitweb.cgi?p=hostap.git;a=blob_plain;f=wpa_supplicant/wpa_supplicant.conf&lt;br /&gt;
&lt;br /&gt;
==== Sample wpa_supplicant.conf ====&lt;br /&gt;
&lt;br /&gt;
 ctrl_interface=/var/run/wpa_supplicant&lt;br /&gt;
 ctrl_interface_group=0&lt;br /&gt;
 eapol_version=1&lt;br /&gt;
 ap_scan=1&lt;br /&gt;
 fast_reauth=1 &lt;br /&gt;
 # WPA2:&lt;br /&gt;
 network={&lt;br /&gt;
        ssid=&amp;quot;your ssid&amp;quot;&lt;br /&gt;
        scan_ssid=1&lt;br /&gt;
        proto=RSN&lt;br /&gt;
        key_mgmt=WPA-PSK&lt;br /&gt;
        pairwise=CCMP TKIP&lt;br /&gt;
        group=TKIP CCMP&lt;br /&gt;
        psk=&amp;quot;secret key&amp;quot;&lt;br /&gt;
        priority=50&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 # WPA:&lt;br /&gt;
 network={&lt;br /&gt;
       ssid=&amp;quot;your_ssid&amp;quot;&lt;br /&gt;
       proto=WPA&lt;br /&gt;
       key_mgmt=WPA-PSK&lt;br /&gt;
       pairwise=TKIP&lt;br /&gt;
       group=TKIP&lt;br /&gt;
       scan_ssid=1&lt;br /&gt;
       psk=&amp;quot;secret key&amp;quot;&lt;br /&gt;
       priority=10&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 # WEP:&lt;br /&gt;
 network={&lt;br /&gt;
      ssid=&amp;quot;your_ssid&amp;quot;&lt;br /&gt;
      scan_ssid=1&lt;br /&gt;
      key_mgmt=NONE&lt;br /&gt;
      wep_tx_keyidx=0&lt;br /&gt;
      wep_key0=your_hex_key&lt;br /&gt;
      priority=8&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 # Open:&lt;br /&gt;
 network={&lt;br /&gt;
      ssid=&amp;quot;your ssid&amp;quot;&lt;br /&gt;
      key_mgmt=NONE&lt;br /&gt;
      priority=5&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== Other sample wpa_supplicant.conf files ====&lt;br /&gt;
&lt;br /&gt;
Tom Yates documents his success [http://www.teaparty.net/technotes/openmoko-2.html#Wifi here]&lt;br /&gt;
&lt;br /&gt;
== WEP ==&lt;br /&gt;
&lt;br /&gt;
[http://en.wikipedia.org/wiki/Wired_Equivalent_Privacy WEP] is an encryption method for securing your wireless network. WEP is generally considered to be weak, you should use WPA instead if possible.&lt;br /&gt;
&lt;br /&gt;
=== Using WEP and /etc/network/interfaces ===&lt;br /&gt;
  iface eth0 inet dhcp&lt;br /&gt;
    wireless-key my_wep_key&lt;br /&gt;
    wireless-essid my_essid&lt;br /&gt;
&lt;br /&gt;
 iface eth0 inet dhcp&lt;br /&gt;
    wpa-wep-key0 my_wep_key&lt;br /&gt;
    wpa-key-mgmt NONE&lt;br /&gt;
    wpa-ssid my_essid&lt;br /&gt;
&lt;br /&gt;
Save your changes and run:&lt;br /&gt;
  # ifdown eth0 &amp;amp;&amp;amp; ifup eth0&lt;br /&gt;
&lt;br /&gt;
== Known Issues ==&lt;br /&gt;
&lt;br /&gt;
=== Known Issues with GUI ===&lt;br /&gt;
&lt;br /&gt;
The GUI seems to have some issues that prevent it from working in all cases. &lt;br /&gt;
&lt;br /&gt;
If a Wi-Fi connection can not be made with the GUI, open a shell and use iwconfig manually.&lt;br /&gt;
&lt;br /&gt;
Note that for WEP our iwconfig requires a more specific format than generic iwconfig.&lt;br /&gt;
&lt;br /&gt;
The canonical way of running iwconfig for WEP would be something like this:&lt;br /&gt;
&lt;br /&gt;
# iwconfig eth0 key A4BEB3B8EC essid xyz&lt;br /&gt;
&lt;br /&gt;
Two things are important here:&lt;br /&gt;
&lt;br /&gt;
* the key must be in HEX. iwconfig will not do anything useful if the key is given as a string.   [http://www.powerdog.com/wepkey.cgi Here] is a handy ASCII string to HEX converter.&lt;br /&gt;
&lt;br /&gt;
* the ESSID must follow the key.&lt;br /&gt;
&lt;br /&gt;
If an incorrect key was set, please stop all activity on the interface for at least two minutes (i.e., killall udhcpc and ifconfig eth0 down), then issue the correct iwconfig command and retry.&lt;br /&gt;
&lt;br /&gt;
=== Anecdotal solutions ===&lt;br /&gt;
&lt;br /&gt;
These solutions worked for some people:&lt;br /&gt;
&lt;br /&gt;
==== Disable power management ====&lt;br /&gt;
&lt;br /&gt;
Some APs apparently get upset by power managed devices, and the Freerunner enables power management of the wifi by default to preserve battery. One user's wrt54g certainly gets upset from time to time if he connect with the FreeRunner, sometimes refusing to talk to _anything_ over wifi afterwards until rebooted.&lt;br /&gt;
&lt;br /&gt;
== Wake up from wireless (wow)==&lt;br /&gt;
&lt;br /&gt;
Wi-Fi module constantly drain currents after module power up, for wi-fi SIP phone or some application need long standby time, will need wake up from wireless function for power saving. There is a sleep mode that Ar6k supported for wake up from wireless.&lt;br /&gt;
&lt;br /&gt;
 http://svn.openmoko.org/trunk/src/target/AR6kSDK.build_sw.18/host/tools/wmiconfig&lt;br /&gt;
&lt;br /&gt;
 export ATH_CROSS_COMPILE_TYPE=arm-angstrom-linux-gnueabi-&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
Debian package:&lt;br /&gt;
&lt;br /&gt;
 wget http://meshy.org/~ato/debian/pool/main/w/wmiconfig/wmiconfig_0.0.18-1_armel.deb&lt;br /&gt;
 dpkg -i wmiconfig_0.0.18-1_armel.deb&lt;br /&gt;
&lt;br /&gt;
Basically, it's achieved via wmiconfig tool to issue IOCTL if we want&lt;br /&gt;
ar6k wifi module to generate interrupt to host controller. The procedure&lt;br /&gt;
to enable wakeup-on-wireless(wow) is listed here:&lt;br /&gt;
&lt;br /&gt;
 1. wmiconfig --sethostmode asleep /* to tell ar6k what host's current is */&lt;br /&gt;
 2. wmiconfig --setwowmode enable /* enable wow function */&lt;br /&gt;
 3. wmiconfig --addpattern 0 1 33 01 ff /* add packet filter pattern, this is the ICMP filter pattern */&lt;br /&gt;
 4. apm -s&lt;br /&gt;
 5. ping IP_of_Neo&lt;br /&gt;
 6. The GPIO1 pin would be pulled up. The system would resume then.&lt;br /&gt;
 7. wmiconfig --sethostmode awake /* The firmware of ar6k will pull low the GPIO1 pin */&lt;br /&gt;
&lt;br /&gt;
--addwowpattern &amp;lt;list-id&amp;gt; &amp;lt;pattern-size&amp;gt; &amp;lt;pattern-offset&amp;gt; &amp;lt;pattern&amp;gt; &amp;lt;pattern-mask&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here are some addwowpattern commands:&lt;br /&gt;
&lt;br /&gt;
Protocol type=IP=0800&lt;br /&gt;
Protocol type in IP header=ICMP=01&lt;br /&gt;
&lt;br /&gt;
 - To filter for IP packets(offset 22)&lt;br /&gt;
 wmiconfig --addwowpattern 0 2 22 0800 ffff&lt;br /&gt;
 - To filter for ICMP packets (offset 33)&lt;br /&gt;
 wmiconfig --addwowpattern 0 1 33 01 ff&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== A very ugly /etc/init.d/wlan startscript ==&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 #&lt;br /&gt;
 # wlan	This shell script starts and stops wlan.&lt;br /&gt;
 #&lt;br /&gt;
 # processname: wlan&lt;br /&gt;
 &lt;br /&gt;
 # Source function library.&lt;br /&gt;
 #. /etc/rc.d/init.d/functions&lt;br /&gt;
 # &amp;quot;written&amp;quot; by HdR&lt;br /&gt;
 &lt;br /&gt;
 RETVAL=0&lt;br /&gt;
 prog=&amp;quot;wlan&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # test -f /etc/default/$prog &amp;amp;&amp;amp; . /etc/default/$prog&lt;br /&gt;
 &lt;br /&gt;
 start() {&lt;br /&gt;
 	echo -n &amp;quot;Starting $prog: &amp;quot;&lt;br /&gt;
 	ifconfig eth0 up&lt;br /&gt;
 	wpa_supplicant -ieth0 -c/etc/wpa_supplicant/wpa_supplicant.conf -B&lt;br /&gt;
 	sleep 10&lt;br /&gt;
 	udhcpc eth0&lt;br /&gt;
 	RETVAL=$?&lt;br /&gt;
 	return $RETVAL&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 stop() {&lt;br /&gt;
 	# Stop daemons.&lt;br /&gt;
 	echo -n &amp;quot;Shutting down $prog: &amp;quot;&lt;br /&gt;
         killall wpa_supplicant&lt;br /&gt;
 	ifconfig eth0 down&lt;br /&gt;
 #        killproc gpsd&lt;br /&gt;
 	RETVAL=$?&lt;br /&gt;
 	return $RETVAL&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 # See how we were called.&lt;br /&gt;
 case &amp;quot;$1&amp;quot; in&lt;br /&gt;
   start)&lt;br /&gt;
 	start&lt;br /&gt;
 	;;&lt;br /&gt;
   stop)&lt;br /&gt;
 	stop&lt;br /&gt;
 	;;&lt;br /&gt;
   restart|reload)&lt;br /&gt;
 	stop&lt;br /&gt;
 	start&lt;br /&gt;
 	RETVAL=$?&lt;br /&gt;
 	;;&lt;br /&gt;
   *)&lt;br /&gt;
 	echo &amp;quot;Usage: $0 {start|stop|restart}&amp;quot;&lt;br /&gt;
 	exit 1&lt;br /&gt;
 esac&lt;br /&gt;
 &lt;br /&gt;
 exit $RETVAL&lt;br /&gt;
&lt;br /&gt;
Note: Don't forget to make this script executable with &amp;quot;chmod +x &amp;lt;filename&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Route internet connection through Wifi rather than USB ==&lt;br /&gt;
&lt;br /&gt;
Wifi is faster than USB, so it is a good idea to tell the FreeRunner to connect through it. Put the following in /etc/network/interfaces under eth0:&lt;br /&gt;
&lt;br /&gt;
up route del default gw 192.168.0.200&lt;br /&gt;
&lt;br /&gt;
This will remove your computer as the default gateway and use the  wireless one when the interface is brought up. User nickd reports that sometimes it fails so he has had to put it in twice.&lt;br /&gt;
&lt;br /&gt;
== ssh into FR over WiFi ==&lt;br /&gt;
dropbear, the ssh server, is configured to listen on the USB interface only. Wireless interfaces like wlan or bluetooth are disabled for security reasons (empty root password).&lt;br /&gt;
&lt;br /&gt;
If you want to enable ssh over WiFi, change the /etc/default/dropbear from:&lt;br /&gt;
&lt;br /&gt;
  DROPBEAR_PORT=`ip addr list usb0 | awk 'BEGIN { FS=&amp;quot;[ /]+&amp;quot; } /inet / { print  $3 }'`:22&lt;br /&gt;
&lt;br /&gt;
(which actually only prepends the usb0 ip address before the :22)&lt;br /&gt;
&lt;br /&gt;
into:&lt;br /&gt;
&lt;br /&gt;
  DROPBEAR_PORT=22&lt;br /&gt;
&lt;br /&gt;
* Be careful with this config file since it can close the only door into your phone.&lt;br /&gt;
&lt;br /&gt;
* Set a root password!&lt;br /&gt;
&lt;br /&gt;
== Available Software ==&lt;br /&gt;
&lt;br /&gt;
Programs in development providing GUI interfaces to administer WiFi connections:&lt;br /&gt;
&lt;br /&gt;
* [[Lint-wifi]]&lt;br /&gt;
* [[Mofi]]&lt;br /&gt;
* [[Camp-Wifi]]&lt;br /&gt;
&lt;br /&gt;
== External links ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/ WiFi on Linux]&lt;br /&gt;
&lt;br /&gt;
[[Category:Neo FreeRunner Hardware]]&lt;br /&gt;
[[Category:Networking]]&lt;/div&gt;</summary>
		<author><name>Michaelshiloh</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Neo_FreeRunner_Wifi</id>
		<title>Neo FreeRunner Wifi</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Neo_FreeRunner_Wifi"/>
				<updated>2008-10-08T22:48:34Z</updated>
		
		<summary type="html">&lt;p&gt;Michaelshiloh: /* Known Issues with GUI */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|Neo FreeRunner Menu}}&lt;br /&gt;
&lt;br /&gt;
This page documents the [http://en.wikipedia.org/wiki/Wireless_networking wireless networking] solutions commonly known as [http://en.wikipedia.org/wiki/Wireless_LAN WLAN] or WiFi. &lt;br /&gt;
&lt;br /&gt;
There are other ways to enable wireless communications on the Neo, including [[Bluetooth]]. For Bluetooth solutions, see [[How to use bluetooth to transfer data between Neo and Desk-top]] and [[Manually using Bluetooth]].&lt;br /&gt;
&lt;br /&gt;
== Using the GUI on 2008.8 ==&lt;br /&gt;
&lt;br /&gt;
In the Settings application on Om 2008.8, there's a &amp;quot;WiFi&amp;quot; item. It should work fairly well in stable-updated 2008.8 (even with WPA2).&lt;br /&gt;
&lt;br /&gt;
If it says &amp;quot;WiFi unknown&amp;quot;, you can delete the /etc/volatives.cache file and reboot.  It should work after that.[http://docs.openmoko.org/trac/ticket/1734]  After connecting using the GUI, you may also need to run &amp;quot;udhcpc eth0&amp;quot; manually in the terminal to get DNS entries added to your resolv.conf.  You may also need to run &amp;quot;ifdown usb0&amp;quot; to remove the routing issue caused by having both interfaces up at the same time.  Some users have reported that 802.11g modulation needs to be enabled on APs to allow the FreeRunner to connect (The hardware is suppose to support 802.11b/g).&lt;br /&gt;
&lt;br /&gt;
Otherwise there's also [[lint-wifi]].  Refer to the section below, [[#Available Software|&amp;quot;Available Software&amp;quot;]] to find out what else might be available.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== How can I tell what Access Points (APs) are visible to me? ==&lt;br /&gt;
&lt;br /&gt;
You can connect to wireless networks through wireless [http://en.wikipedia.org/wiki/Access_point| access points]. If you want to know the names of all the access points that are currently visible to you, you can perform a scan with this command:&lt;br /&gt;
&lt;br /&gt;
 root@om-gta02:~# '''iwlist eth0 scan'''&lt;br /&gt;
&lt;br /&gt;
If anything is visible you will get a list that looks something like this:&lt;br /&gt;
&lt;br /&gt;
 eth0      Scan completed :&lt;br /&gt;
           Cell 01 - Address: 00:16:B6:DE:77:58&lt;br /&gt;
                     ESSID:&amp;quot;StarvinMarvin&amp;quot;&lt;br /&gt;
                     Mode:Master&lt;br /&gt;
                     Frequency:2.437 GHz (Channel 6)&lt;br /&gt;
                     Quality=9/94  Signal level=-86 dBm  Noise level=-95 dBm&lt;br /&gt;
                     Encryption key:on&lt;br /&gt;
                     Extra:bcn_int=100&lt;br /&gt;
                     Extra:wpa_ie=dd180050f20101000050f20201000050f20201000050f2020000&lt;br /&gt;
           Cell 02 - Address: 00:21:29:AA:10:97&lt;br /&gt;
                     ESSID:&amp;quot;CandT Network&amp;quot;&lt;br /&gt;
                     Mode:Master&lt;br /&gt;
                     Frequency:2.437 GHz (Channel 6)&lt;br /&gt;
                     Quality=39/94  Signal level=-56 dBm  Noise level=-95 dBm&lt;br /&gt;
                     Encryption key:on&lt;br /&gt;
                     Extra:bcn_int=100&lt;br /&gt;
                     Extra:wpa_ie=dd1c0050f20101000050f20202000050f2040050f20201000050f2020000&lt;br /&gt;
                     Extra:rsn_ie=30180100000fac020200000fac04000fac020100000fac020000&lt;br /&gt;
           Cell 03 - Address: 00:14:95:1B:8E:B9&lt;br /&gt;
                     ESSID:&amp;quot;2WIRE852&amp;quot;&lt;br /&gt;
                     Mode:Master&lt;br /&gt;
                     Frequency:2.437 GHz (Channel 6)&lt;br /&gt;
                     Quality=5/94  Signal level=-90 dBm  Noise level=-95 dBm&lt;br /&gt;
                     Encryption key:on&lt;br /&gt;
                     Extra:bcn_int=100&lt;br /&gt;
           Cell 04 - Address: 00:E0:98:52:3D:78&lt;br /&gt;
                     ESSID:&amp;quot;smith&amp;quot;&lt;br /&gt;
                     Mode:Master&lt;br /&gt;
                     Frequency:2.437 GHz (Channel 6)&lt;br /&gt;
                     Quality=36/94  Signal level=-59 dBm  Noise level=-95 dBm&lt;br /&gt;
                     Encryption key:on&lt;br /&gt;
                     Extra:bcn_int=100&lt;br /&gt;
&lt;br /&gt;
If you want to connect to an unsecured network run:&lt;br /&gt;
  &lt;br /&gt;
  udhcpc  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== WPA ==&lt;br /&gt;
&lt;br /&gt;
[http://en.wikipedia.org/wiki/Wi-Fi_Protected_Access  WPA] is an encryption method for securing your wireless network.&lt;br /&gt;
&lt;br /&gt;
=== Using wpa_supplicant manually ===&lt;br /&gt;
&lt;br /&gt;
Create and edit a suitable [[GTA02_WLAN#Sample_wpa_supplicant.conf|/etc/wpa_supplicant/wpa_supplicant.conf]].&lt;br /&gt;
&lt;br /&gt;
Bring up your wireless connection: &lt;br /&gt;
&lt;br /&gt;
 root@om-gta02:~# ifup eth0&lt;br /&gt;
 root@om-gta02:~# wpa_supplicant -ieth0 -c/etc/wpa_supplicant/wpa_supplicant.conf -B&lt;br /&gt;
 root@om-gta02:~# udhcpc eth0&lt;br /&gt;
&lt;br /&gt;
=== Using WPA and /etc/network/interfaces ===&lt;br /&gt;
&lt;br /&gt;
Once you have a [[GTA02_WLAN#Sample_wpa_supplicant.conf|/etc/wpa_supplicant/wpa_supplicant.conf]] file, add a line under the eth0 entry in /etc/network/interfaces:&lt;br /&gt;
&lt;br /&gt;
 iface eth0 inet dhcp&lt;br /&gt;
    wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf&lt;br /&gt;
&lt;br /&gt;
Save your changes and run:&lt;br /&gt;
  # ifdown eth0 &amp;amp;&amp;amp; ifup eth0&lt;br /&gt;
&lt;br /&gt;
You'll get a lot of messages, like &amp;lt;tt&amp;gt;ioctl[SIOCSIWENCODEEXT]: Operation not supported&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;sed: unrecognized option `--quiet'&amp;lt;/tt&amp;gt;, they appear to be harmless. The &amp;quot;--quiet&amp;quot; error message can be avoided by replacing &amp;quot;sed --quiet&amp;quot; with &amp;quot;sed -n&amp;quot; in /etc/wpa_supplicant/*.sh&lt;br /&gt;
&lt;br /&gt;
=== wpa_supplicant.conf ===&lt;br /&gt;
&lt;br /&gt;
==== wpa_supplicant.conf explained ====&lt;br /&gt;
The highest priority is tried first then falls back to the next highest number.&lt;br /&gt;
&lt;br /&gt;
priority=100  1st  &amp;lt;br&amp;gt;&lt;br /&gt;
then&amp;lt;br&amp;gt;&lt;br /&gt;
priority=99  &amp;lt;br&amp;gt; &lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
&lt;br /&gt;
# Simple case: WPA-PSK, PSK as an ASCII passphrase, allow all valid ciphers&lt;br /&gt;
network={&lt;br /&gt;
	ssid=&amp;quot;AP_ESSID&amp;quot;&lt;br /&gt;
	psk=&amp;quot;presharedkey&amp;quot;&lt;br /&gt;
	priority=5&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#try open AP regardless of its SSID.&lt;br /&gt;
# change root password before you go roaming around it could prove dangerous&lt;br /&gt;
network={&lt;br /&gt;
	key_mgmt=NONE&lt;br /&gt;
priority=1  #try any open AP last&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A more in depth explanation can be found here:&amp;lt;br&amp;gt; &lt;br /&gt;
http://hostap.epitest.fi/gitweb/gitweb.cgi?p=hostap.git;a=blob_plain;f=wpa_supplicant/wpa_supplicant.conf&lt;br /&gt;
&lt;br /&gt;
==== Sample wpa_supplicant.conf ====&lt;br /&gt;
&lt;br /&gt;
 ctrl_interface=/var/run/wpa_supplicant&lt;br /&gt;
 ctrl_interface_group=0&lt;br /&gt;
 eapol_version=1&lt;br /&gt;
 ap_scan=1&lt;br /&gt;
 fast_reauth=1 &lt;br /&gt;
 # WPA2:&lt;br /&gt;
 network={&lt;br /&gt;
        ssid=&amp;quot;your ssid&amp;quot;&lt;br /&gt;
        scan_ssid=1&lt;br /&gt;
        proto=RSN&lt;br /&gt;
        key_mgmt=WPA-PSK&lt;br /&gt;
        pairwise=CCMP TKIP&lt;br /&gt;
        group=TKIP CCMP&lt;br /&gt;
        psk=&amp;quot;secret key&amp;quot;&lt;br /&gt;
        priority=50&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 # WPA:&lt;br /&gt;
 network={&lt;br /&gt;
       ssid=&amp;quot;your_ssid&amp;quot;&lt;br /&gt;
       proto=WPA&lt;br /&gt;
       key_mgmt=WPA-PSK&lt;br /&gt;
       pairwise=TKIP&lt;br /&gt;
       group=TKIP&lt;br /&gt;
       scan_ssid=1&lt;br /&gt;
       psk=&amp;quot;secret key&amp;quot;&lt;br /&gt;
       priority=10&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 # WEP:&lt;br /&gt;
 network={&lt;br /&gt;
      ssid=&amp;quot;your_ssid&amp;quot;&lt;br /&gt;
      scan_ssid=1&lt;br /&gt;
      key_mgmt=NONE&lt;br /&gt;
      wep_tx_keyidx=0&lt;br /&gt;
      wep_key0=your_hex_key&lt;br /&gt;
      priority=8&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 # Open:&lt;br /&gt;
 network={&lt;br /&gt;
      ssid=&amp;quot;your ssid&amp;quot;&lt;br /&gt;
      key_mgmt=NONE&lt;br /&gt;
      priority=5&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== Other sample wpa_supplicant.conf files ====&lt;br /&gt;
&lt;br /&gt;
Tom Yates documents his success [http://www.teaparty.net/technotes/openmoko-2.html#Wifi here]&lt;br /&gt;
&lt;br /&gt;
== WEP ==&lt;br /&gt;
&lt;br /&gt;
[http://en.wikipedia.org/wiki/Wired_Equivalent_Privacy WEP] is an encryption method for securing your wireless network. WEP is generally considered to be weak, you should use WPA instead if possible.&lt;br /&gt;
&lt;br /&gt;
=== Using WEP and /etc/network/interfaces ===&lt;br /&gt;
  iface eth0 inet dhcp&lt;br /&gt;
    wireless-key my_wep_key&lt;br /&gt;
    wireless-essid my_essid&lt;br /&gt;
&lt;br /&gt;
 iface eth0 inet dhcp&lt;br /&gt;
    wpa-wep-key0 my_wep_key&lt;br /&gt;
    wpa-key-mgmt NONE&lt;br /&gt;
    wpa-ssid my_essid&lt;br /&gt;
&lt;br /&gt;
Save your changes and run:&lt;br /&gt;
  # ifdown eth0 &amp;amp;&amp;amp; ifup eth0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Wake up from wireless (wow)==&lt;br /&gt;
&lt;br /&gt;
Wi-Fi module constantly drain currents after module power up, for wi-fi SIP phone or some application need long standby time, will need wake up from wireless function for power saving. There is a sleep mode that Ar6k supported for wake up from wireless.&lt;br /&gt;
&lt;br /&gt;
 http://svn.openmoko.org/trunk/src/target/AR6kSDK.build_sw.18/host/tools/wmiconfig&lt;br /&gt;
&lt;br /&gt;
 export ATH_CROSS_COMPILE_TYPE=arm-angstrom-linux-gnueabi-&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
Debian package:&lt;br /&gt;
&lt;br /&gt;
 wget http://meshy.org/~ato/debian/pool/main/w/wmiconfig/wmiconfig_0.0.18-1_armel.deb&lt;br /&gt;
 dpkg -i wmiconfig_0.0.18-1_armel.deb&lt;br /&gt;
&lt;br /&gt;
Basically, it's achieved via wmiconfig tool to issue IOCTL if we want&lt;br /&gt;
ar6k wifi module to generate interrupt to host controller. The procedure&lt;br /&gt;
to enable wakeup-on-wireless(wow) is listed here:&lt;br /&gt;
&lt;br /&gt;
 1. wmiconfig --sethostmode asleep /* to tell ar6k what host's current is */&lt;br /&gt;
 2. wmiconfig --setwowmode enable /* enable wow function */&lt;br /&gt;
 3. wmiconfig --addpattern 0 1 33 01 ff /* add packet filter pattern, this is the ICMP filter pattern */&lt;br /&gt;
 4. apm -s&lt;br /&gt;
 5. ping IP_of_Neo&lt;br /&gt;
 6. The GPIO1 pin would be pulled up. The system would resume then.&lt;br /&gt;
 7. wmiconfig --sethostmode awake /* The firmware of ar6k will pull low the GPIO1 pin */&lt;br /&gt;
&lt;br /&gt;
--addwowpattern &amp;lt;list-id&amp;gt; &amp;lt;pattern-size&amp;gt; &amp;lt;pattern-offset&amp;gt; &amp;lt;pattern&amp;gt; &amp;lt;pattern-mask&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here are some addwowpattern commands:&lt;br /&gt;
&lt;br /&gt;
Protocol type=IP=0800&lt;br /&gt;
Protocol type in IP header=ICMP=01&lt;br /&gt;
&lt;br /&gt;
 - To filter for IP packets(offset 22)&lt;br /&gt;
 wmiconfig --addwowpattern 0 2 22 0800 ffff&lt;br /&gt;
 - To filter for ICMP packets (offset 33)&lt;br /&gt;
 wmiconfig --addwowpattern 0 1 33 01 ff&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== A very ugly /etc/init.d/wlan startscript ==&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 #&lt;br /&gt;
 # wlan	This shell script starts and stops wlan.&lt;br /&gt;
 #&lt;br /&gt;
 # processname: wlan&lt;br /&gt;
 &lt;br /&gt;
 # Source function library.&lt;br /&gt;
 #. /etc/rc.d/init.d/functions&lt;br /&gt;
 # &amp;quot;written&amp;quot; by HdR&lt;br /&gt;
 &lt;br /&gt;
 RETVAL=0&lt;br /&gt;
 prog=&amp;quot;wlan&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # test -f /etc/default/$prog &amp;amp;&amp;amp; . /etc/default/$prog&lt;br /&gt;
 &lt;br /&gt;
 start() {&lt;br /&gt;
 	echo -n &amp;quot;Starting $prog: &amp;quot;&lt;br /&gt;
 	ifconfig eth0 up&lt;br /&gt;
 	wpa_supplicant -ieth0 -c/etc/wpa_supplicant/wpa_supplicant.conf -B&lt;br /&gt;
 	sleep 10&lt;br /&gt;
 	udhcpc eth0&lt;br /&gt;
 	RETVAL=$?&lt;br /&gt;
 	return $RETVAL&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 stop() {&lt;br /&gt;
 	# Stop daemons.&lt;br /&gt;
 	echo -n &amp;quot;Shutting down $prog: &amp;quot;&lt;br /&gt;
         killall wpa_supplicant&lt;br /&gt;
 	ifconfig eth0 down&lt;br /&gt;
 #        killproc gpsd&lt;br /&gt;
 	RETVAL=$?&lt;br /&gt;
 	return $RETVAL&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 # See how we were called.&lt;br /&gt;
 case &amp;quot;$1&amp;quot; in&lt;br /&gt;
   start)&lt;br /&gt;
 	start&lt;br /&gt;
 	;;&lt;br /&gt;
   stop)&lt;br /&gt;
 	stop&lt;br /&gt;
 	;;&lt;br /&gt;
   restart|reload)&lt;br /&gt;
 	stop&lt;br /&gt;
 	start&lt;br /&gt;
 	RETVAL=$?&lt;br /&gt;
 	;;&lt;br /&gt;
   *)&lt;br /&gt;
 	echo &amp;quot;Usage: $0 {start|stop|restart}&amp;quot;&lt;br /&gt;
 	exit 1&lt;br /&gt;
 esac&lt;br /&gt;
 &lt;br /&gt;
 exit $RETVAL&lt;br /&gt;
&lt;br /&gt;
Note: Don't forget to make this script executable with &amp;quot;chmod +x &amp;lt;filename&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Route internet connection through Wifi rather than USB ==&lt;br /&gt;
&lt;br /&gt;
Wifi is faster than USB, so it is a good idea to tell the FreeRunner to connect through it. Put the following in /etc/network/interfaces under eth0:&lt;br /&gt;
&lt;br /&gt;
up route del default gw 192.168.0.200&lt;br /&gt;
&lt;br /&gt;
This will remove your computer as the default gateway and use the  wireless one when the interface is brought up. User nickd reports that sometimes it fails so he has had to put it in twice.&lt;br /&gt;
&lt;br /&gt;
== ssh into FR over WiFi ==&lt;br /&gt;
dropbear, the ssh server, is configured to listen on the USB interface only. Wireless interfaces like wlan or bluetooth are disabled for security reasons (empty root password).&lt;br /&gt;
&lt;br /&gt;
If you want to enable ssh over WiFi, change the /etc/default/dropbear from:&lt;br /&gt;
&lt;br /&gt;
  DROPBEAR_PORT=`ip addr list usb0 | awk 'BEGIN { FS=&amp;quot;[ /]+&amp;quot; } /inet / { print  $3 }'`:22&lt;br /&gt;
&lt;br /&gt;
(which actually only prepends the usb0 ip address before the :22)&lt;br /&gt;
&lt;br /&gt;
into:&lt;br /&gt;
&lt;br /&gt;
  DROPBEAR_PORT=22&lt;br /&gt;
&lt;br /&gt;
* Be careful with this config file since it can close the only door into your phone.&lt;br /&gt;
&lt;br /&gt;
* Set a root password!&lt;br /&gt;
&lt;br /&gt;
== Available Software ==&lt;br /&gt;
&lt;br /&gt;
Programs in development providing GUI interfaces to administer WiFi connections:&lt;br /&gt;
&lt;br /&gt;
* [[Lint-wifi]]&lt;br /&gt;
* [[Mofi]]&lt;br /&gt;
* [[Camp-Wifi]]&lt;br /&gt;
&lt;br /&gt;
== External links ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/ WiFi on Linux]&lt;br /&gt;
&lt;br /&gt;
[[Category:Neo FreeRunner Hardware]]&lt;br /&gt;
[[Category:Networking]]&lt;/div&gt;</summary>
		<author><name>Michaelshiloh</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Neo_FreeRunner_Wifi</id>
		<title>Neo FreeRunner Wifi</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Neo_FreeRunner_Wifi"/>
				<updated>2008-10-08T22:36:05Z</updated>
		
		<summary type="html">&lt;p&gt;Michaelshiloh: /* Sample wpa_supplicant.conf */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|Neo FreeRunner Menu}}&lt;br /&gt;
&lt;br /&gt;
This page documents the [http://en.wikipedia.org/wiki/Wireless_networking wireless networking] solutions commonly known as [http://en.wikipedia.org/wiki/Wireless_LAN WLAN] or WiFi. &lt;br /&gt;
&lt;br /&gt;
There are other ways to enable wireless communications on the Neo, including [[Bluetooth]]. For Bluetooth solutions, see [[How to use bluetooth to transfer data between Neo and Desk-top]] and [[Manually using Bluetooth]].&lt;br /&gt;
&lt;br /&gt;
== Using the GUI on 2008.8 ==&lt;br /&gt;
&lt;br /&gt;
In the Settings application on Om 2008.8, there's a &amp;quot;WiFi&amp;quot; item. It should work fairly well in stable-updated 2008.8 (even with WPA2).&lt;br /&gt;
&lt;br /&gt;
If it says &amp;quot;WiFi unknown&amp;quot;, you can delete the /etc/volatives.cache file and reboot.  It should work after that.[http://docs.openmoko.org/trac/ticket/1734]  After connecting using the GUI, you may also need to run &amp;quot;udhcpc eth0&amp;quot; manually in the terminal to get DNS entries added to your resolv.conf.  You may also need to run &amp;quot;ifdown usb0&amp;quot; to remove the routing issue caused by having both interfaces up at the same time.  Some users have reported that 802.11g modulation needs to be enabled on APs to allow the FreeRunner to connect (The hardware is suppose to support 802.11b/g).&lt;br /&gt;
&lt;br /&gt;
Otherwise there's also [[lint-wifi]].  Refer to the section below, [[#Available Software|&amp;quot;Available Software&amp;quot;]] to find out what else might be available.&lt;br /&gt;
&lt;br /&gt;
=== Known Issues with GUI ===&lt;br /&gt;
&lt;br /&gt;
The GUI seems to have some issues that prevent it from working in all cases. &lt;br /&gt;
&lt;br /&gt;
If a Wi-Fi connection can not be made with the GUI, open a shell and use iwconfig manually.&lt;br /&gt;
&lt;br /&gt;
Note that for WEP our iwconfig requires a more specific format than generic iwconfig.&lt;br /&gt;
&lt;br /&gt;
The canonical way of running iwconfig for WEP would be something like this:&lt;br /&gt;
&lt;br /&gt;
# iwconfig eth0 key A4BEB3B8EC essid xyz&lt;br /&gt;
&lt;br /&gt;
Two things are important here:&lt;br /&gt;
&lt;br /&gt;
* the key must be in HEX. iwconfig will not do anything useful if the key is given as a string.   [http://www.powerdog.com/wepkey.cgi Here] is a handy ASCII string to HEX converter.&lt;br /&gt;
&lt;br /&gt;
* the ESSID must follow the key.&lt;br /&gt;
&lt;br /&gt;
If an incorrect key was set, please stop all activity on the interface for at least two minutes (i.e., killall udhcpc and ifconfig eth0 down), then issue the correct iwconfig command and retry.&lt;br /&gt;
&lt;br /&gt;
== How can I tell what Access Points (APs) are visible to me? ==&lt;br /&gt;
&lt;br /&gt;
You can connect to wireless networks through wireless [http://en.wikipedia.org/wiki/Access_point| access points]. If you want to know the names of all the access points that are currently visible to you, you can perform a scan with this command:&lt;br /&gt;
&lt;br /&gt;
 root@om-gta02:~# '''iwlist eth0 scan'''&lt;br /&gt;
&lt;br /&gt;
If anything is visible you will get a list that looks something like this:&lt;br /&gt;
&lt;br /&gt;
 eth0      Scan completed :&lt;br /&gt;
           Cell 01 - Address: 00:16:B6:DE:77:58&lt;br /&gt;
                     ESSID:&amp;quot;StarvinMarvin&amp;quot;&lt;br /&gt;
                     Mode:Master&lt;br /&gt;
                     Frequency:2.437 GHz (Channel 6)&lt;br /&gt;
                     Quality=9/94  Signal level=-86 dBm  Noise level=-95 dBm&lt;br /&gt;
                     Encryption key:on&lt;br /&gt;
                     Extra:bcn_int=100&lt;br /&gt;
                     Extra:wpa_ie=dd180050f20101000050f20201000050f20201000050f2020000&lt;br /&gt;
           Cell 02 - Address: 00:21:29:AA:10:97&lt;br /&gt;
                     ESSID:&amp;quot;CandT Network&amp;quot;&lt;br /&gt;
                     Mode:Master&lt;br /&gt;
                     Frequency:2.437 GHz (Channel 6)&lt;br /&gt;
                     Quality=39/94  Signal level=-56 dBm  Noise level=-95 dBm&lt;br /&gt;
                     Encryption key:on&lt;br /&gt;
                     Extra:bcn_int=100&lt;br /&gt;
                     Extra:wpa_ie=dd1c0050f20101000050f20202000050f2040050f20201000050f2020000&lt;br /&gt;
                     Extra:rsn_ie=30180100000fac020200000fac04000fac020100000fac020000&lt;br /&gt;
           Cell 03 - Address: 00:14:95:1B:8E:B9&lt;br /&gt;
                     ESSID:&amp;quot;2WIRE852&amp;quot;&lt;br /&gt;
                     Mode:Master&lt;br /&gt;
                     Frequency:2.437 GHz (Channel 6)&lt;br /&gt;
                     Quality=5/94  Signal level=-90 dBm  Noise level=-95 dBm&lt;br /&gt;
                     Encryption key:on&lt;br /&gt;
                     Extra:bcn_int=100&lt;br /&gt;
           Cell 04 - Address: 00:E0:98:52:3D:78&lt;br /&gt;
                     ESSID:&amp;quot;smith&amp;quot;&lt;br /&gt;
                     Mode:Master&lt;br /&gt;
                     Frequency:2.437 GHz (Channel 6)&lt;br /&gt;
                     Quality=36/94  Signal level=-59 dBm  Noise level=-95 dBm&lt;br /&gt;
                     Encryption key:on&lt;br /&gt;
                     Extra:bcn_int=100&lt;br /&gt;
&lt;br /&gt;
If you want to connect to an unsecured network run:&lt;br /&gt;
  &lt;br /&gt;
  udhcpc  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== WPA ==&lt;br /&gt;
&lt;br /&gt;
[http://en.wikipedia.org/wiki/Wi-Fi_Protected_Access  WPA] is an encryption method for securing your wireless network.&lt;br /&gt;
&lt;br /&gt;
=== Using wpa_supplicant manually ===&lt;br /&gt;
&lt;br /&gt;
Create and edit a suitable [[GTA02_WLAN#Sample_wpa_supplicant.conf|/etc/wpa_supplicant/wpa_supplicant.conf]].&lt;br /&gt;
&lt;br /&gt;
Bring up your wireless connection: &lt;br /&gt;
&lt;br /&gt;
 root@om-gta02:~# ifup eth0&lt;br /&gt;
 root@om-gta02:~# wpa_supplicant -ieth0 -c/etc/wpa_supplicant/wpa_supplicant.conf -B&lt;br /&gt;
 root@om-gta02:~# udhcpc eth0&lt;br /&gt;
&lt;br /&gt;
=== Using WPA and /etc/network/interfaces ===&lt;br /&gt;
&lt;br /&gt;
Once you have a [[GTA02_WLAN#Sample_wpa_supplicant.conf|/etc/wpa_supplicant/wpa_supplicant.conf]] file, add a line under the eth0 entry in /etc/network/interfaces:&lt;br /&gt;
&lt;br /&gt;
 iface eth0 inet dhcp&lt;br /&gt;
    wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf&lt;br /&gt;
&lt;br /&gt;
Save your changes and run:&lt;br /&gt;
  # ifdown eth0 &amp;amp;&amp;amp; ifup eth0&lt;br /&gt;
&lt;br /&gt;
You'll get a lot of messages, like &amp;lt;tt&amp;gt;ioctl[SIOCSIWENCODEEXT]: Operation not supported&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;sed: unrecognized option `--quiet'&amp;lt;/tt&amp;gt;, they appear to be harmless. The &amp;quot;--quiet&amp;quot; error message can be avoided by replacing &amp;quot;sed --quiet&amp;quot; with &amp;quot;sed -n&amp;quot; in /etc/wpa_supplicant/*.sh&lt;br /&gt;
&lt;br /&gt;
=== wpa_supplicant.conf ===&lt;br /&gt;
&lt;br /&gt;
==== wpa_supplicant.conf explained ====&lt;br /&gt;
The highest priority is tried first then falls back to the next highest number.&lt;br /&gt;
&lt;br /&gt;
priority=100  1st  &amp;lt;br&amp;gt;&lt;br /&gt;
then&amp;lt;br&amp;gt;&lt;br /&gt;
priority=99  &amp;lt;br&amp;gt; &lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
&lt;br /&gt;
# Simple case: WPA-PSK, PSK as an ASCII passphrase, allow all valid ciphers&lt;br /&gt;
network={&lt;br /&gt;
	ssid=&amp;quot;AP_ESSID&amp;quot;&lt;br /&gt;
	psk=&amp;quot;presharedkey&amp;quot;&lt;br /&gt;
	priority=5&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#try open AP regardless of its SSID.&lt;br /&gt;
# change root password before you go roaming around it could prove dangerous&lt;br /&gt;
network={&lt;br /&gt;
	key_mgmt=NONE&lt;br /&gt;
priority=1  #try any open AP last&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A more in depth explanation can be found here:&amp;lt;br&amp;gt; &lt;br /&gt;
http://hostap.epitest.fi/gitweb/gitweb.cgi?p=hostap.git;a=blob_plain;f=wpa_supplicant/wpa_supplicant.conf&lt;br /&gt;
&lt;br /&gt;
==== Sample wpa_supplicant.conf ====&lt;br /&gt;
&lt;br /&gt;
 ctrl_interface=/var/run/wpa_supplicant&lt;br /&gt;
 ctrl_interface_group=0&lt;br /&gt;
 eapol_version=1&lt;br /&gt;
 ap_scan=1&lt;br /&gt;
 fast_reauth=1 &lt;br /&gt;
 # WPA2:&lt;br /&gt;
 network={&lt;br /&gt;
        ssid=&amp;quot;your ssid&amp;quot;&lt;br /&gt;
        scan_ssid=1&lt;br /&gt;
        proto=RSN&lt;br /&gt;
        key_mgmt=WPA-PSK&lt;br /&gt;
        pairwise=CCMP TKIP&lt;br /&gt;
        group=TKIP CCMP&lt;br /&gt;
        psk=&amp;quot;secret key&amp;quot;&lt;br /&gt;
        priority=50&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 # WPA:&lt;br /&gt;
 network={&lt;br /&gt;
       ssid=&amp;quot;your_ssid&amp;quot;&lt;br /&gt;
       proto=WPA&lt;br /&gt;
       key_mgmt=WPA-PSK&lt;br /&gt;
       pairwise=TKIP&lt;br /&gt;
       group=TKIP&lt;br /&gt;
       scan_ssid=1&lt;br /&gt;
       psk=&amp;quot;secret key&amp;quot;&lt;br /&gt;
       priority=10&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 # WEP:&lt;br /&gt;
 network={&lt;br /&gt;
      ssid=&amp;quot;your_ssid&amp;quot;&lt;br /&gt;
      scan_ssid=1&lt;br /&gt;
      key_mgmt=NONE&lt;br /&gt;
      wep_tx_keyidx=0&lt;br /&gt;
      wep_key0=your_hex_key&lt;br /&gt;
      priority=8&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 # Open:&lt;br /&gt;
 network={&lt;br /&gt;
      ssid=&amp;quot;your ssid&amp;quot;&lt;br /&gt;
      key_mgmt=NONE&lt;br /&gt;
      priority=5&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== Other sample wpa_supplicant.conf files ====&lt;br /&gt;
&lt;br /&gt;
Tom Yates documents his success [http://www.teaparty.net/technotes/openmoko-2.html#Wifi here]&lt;br /&gt;
&lt;br /&gt;
== WEP ==&lt;br /&gt;
&lt;br /&gt;
[http://en.wikipedia.org/wiki/Wired_Equivalent_Privacy WEP] is an encryption method for securing your wireless network. WEP is generally considered to be weak, you should use WPA instead if possible.&lt;br /&gt;
&lt;br /&gt;
=== Using WEP and /etc/network/interfaces ===&lt;br /&gt;
  iface eth0 inet dhcp&lt;br /&gt;
    wireless-key my_wep_key&lt;br /&gt;
    wireless-essid my_essid&lt;br /&gt;
&lt;br /&gt;
 iface eth0 inet dhcp&lt;br /&gt;
    wpa-wep-key0 my_wep_key&lt;br /&gt;
    wpa-key-mgmt NONE&lt;br /&gt;
    wpa-ssid my_essid&lt;br /&gt;
&lt;br /&gt;
Save your changes and run:&lt;br /&gt;
  # ifdown eth0 &amp;amp;&amp;amp; ifup eth0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Wake up from wireless (wow)==&lt;br /&gt;
&lt;br /&gt;
Wi-Fi module constantly drain currents after module power up, for wi-fi SIP phone or some application need long standby time, will need wake up from wireless function for power saving. There is a sleep mode that Ar6k supported for wake up from wireless.&lt;br /&gt;
&lt;br /&gt;
 http://svn.openmoko.org/trunk/src/target/AR6kSDK.build_sw.18/host/tools/wmiconfig&lt;br /&gt;
&lt;br /&gt;
 export ATH_CROSS_COMPILE_TYPE=arm-angstrom-linux-gnueabi-&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
Debian package:&lt;br /&gt;
&lt;br /&gt;
 wget http://meshy.org/~ato/debian/pool/main/w/wmiconfig/wmiconfig_0.0.18-1_armel.deb&lt;br /&gt;
 dpkg -i wmiconfig_0.0.18-1_armel.deb&lt;br /&gt;
&lt;br /&gt;
Basically, it's achieved via wmiconfig tool to issue IOCTL if we want&lt;br /&gt;
ar6k wifi module to generate interrupt to host controller. The procedure&lt;br /&gt;
to enable wakeup-on-wireless(wow) is listed here:&lt;br /&gt;
&lt;br /&gt;
 1. wmiconfig --sethostmode asleep /* to tell ar6k what host's current is */&lt;br /&gt;
 2. wmiconfig --setwowmode enable /* enable wow function */&lt;br /&gt;
 3. wmiconfig --addpattern 0 1 33 01 ff /* add packet filter pattern, this is the ICMP filter pattern */&lt;br /&gt;
 4. apm -s&lt;br /&gt;
 5. ping IP_of_Neo&lt;br /&gt;
 6. The GPIO1 pin would be pulled up. The system would resume then.&lt;br /&gt;
 7. wmiconfig --sethostmode awake /* The firmware of ar6k will pull low the GPIO1 pin */&lt;br /&gt;
&lt;br /&gt;
--addwowpattern &amp;lt;list-id&amp;gt; &amp;lt;pattern-size&amp;gt; &amp;lt;pattern-offset&amp;gt; &amp;lt;pattern&amp;gt; &amp;lt;pattern-mask&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here are some addwowpattern commands:&lt;br /&gt;
&lt;br /&gt;
Protocol type=IP=0800&lt;br /&gt;
Protocol type in IP header=ICMP=01&lt;br /&gt;
&lt;br /&gt;
 - To filter for IP packets(offset 22)&lt;br /&gt;
 wmiconfig --addwowpattern 0 2 22 0800 ffff&lt;br /&gt;
 - To filter for ICMP packets (offset 33)&lt;br /&gt;
 wmiconfig --addwowpattern 0 1 33 01 ff&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== A very ugly /etc/init.d/wlan startscript ==&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 #&lt;br /&gt;
 # wlan	This shell script starts and stops wlan.&lt;br /&gt;
 #&lt;br /&gt;
 # processname: wlan&lt;br /&gt;
 &lt;br /&gt;
 # Source function library.&lt;br /&gt;
 #. /etc/rc.d/init.d/functions&lt;br /&gt;
 # &amp;quot;written&amp;quot; by HdR&lt;br /&gt;
 &lt;br /&gt;
 RETVAL=0&lt;br /&gt;
 prog=&amp;quot;wlan&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # test -f /etc/default/$prog &amp;amp;&amp;amp; . /etc/default/$prog&lt;br /&gt;
 &lt;br /&gt;
 start() {&lt;br /&gt;
 	echo -n &amp;quot;Starting $prog: &amp;quot;&lt;br /&gt;
 	ifconfig eth0 up&lt;br /&gt;
 	wpa_supplicant -ieth0 -c/etc/wpa_supplicant/wpa_supplicant.conf -B&lt;br /&gt;
 	sleep 10&lt;br /&gt;
 	udhcpc eth0&lt;br /&gt;
 	RETVAL=$?&lt;br /&gt;
 	return $RETVAL&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 stop() {&lt;br /&gt;
 	# Stop daemons.&lt;br /&gt;
 	echo -n &amp;quot;Shutting down $prog: &amp;quot;&lt;br /&gt;
         killall wpa_supplicant&lt;br /&gt;
 	ifconfig eth0 down&lt;br /&gt;
 #        killproc gpsd&lt;br /&gt;
 	RETVAL=$?&lt;br /&gt;
 	return $RETVAL&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 # See how we were called.&lt;br /&gt;
 case &amp;quot;$1&amp;quot; in&lt;br /&gt;
   start)&lt;br /&gt;
 	start&lt;br /&gt;
 	;;&lt;br /&gt;
   stop)&lt;br /&gt;
 	stop&lt;br /&gt;
 	;;&lt;br /&gt;
   restart|reload)&lt;br /&gt;
 	stop&lt;br /&gt;
 	start&lt;br /&gt;
 	RETVAL=$?&lt;br /&gt;
 	;;&lt;br /&gt;
   *)&lt;br /&gt;
 	echo &amp;quot;Usage: $0 {start|stop|restart}&amp;quot;&lt;br /&gt;
 	exit 1&lt;br /&gt;
 esac&lt;br /&gt;
 &lt;br /&gt;
 exit $RETVAL&lt;br /&gt;
&lt;br /&gt;
Note: Don't forget to make this script executable with &amp;quot;chmod +x &amp;lt;filename&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Route internet connection through Wifi rather than USB ==&lt;br /&gt;
&lt;br /&gt;
Wifi is faster than USB, so it is a good idea to tell the FreeRunner to connect through it. Put the following in /etc/network/interfaces under eth0:&lt;br /&gt;
&lt;br /&gt;
up route del default gw 192.168.0.200&lt;br /&gt;
&lt;br /&gt;
This will remove your computer as the default gateway and use the  wireless one when the interface is brought up. User nickd reports that sometimes it fails so he has had to put it in twice.&lt;br /&gt;
&lt;br /&gt;
== ssh into FR over WiFi ==&lt;br /&gt;
dropbear, the ssh server, is configured to listen on the USB interface only. Wireless interfaces like wlan or bluetooth are disabled for security reasons (empty root password).&lt;br /&gt;
&lt;br /&gt;
If you want to enable ssh over WiFi, change the /etc/default/dropbear from:&lt;br /&gt;
&lt;br /&gt;
  DROPBEAR_PORT=`ip addr list usb0 | awk 'BEGIN { FS=&amp;quot;[ /]+&amp;quot; } /inet / { print  $3 }'`:22&lt;br /&gt;
&lt;br /&gt;
(which actually only prepends the usb0 ip address before the :22)&lt;br /&gt;
&lt;br /&gt;
into:&lt;br /&gt;
&lt;br /&gt;
  DROPBEAR_PORT=22&lt;br /&gt;
&lt;br /&gt;
* Be careful with this config file since it can close the only door into your phone.&lt;br /&gt;
&lt;br /&gt;
* Set a root password!&lt;br /&gt;
&lt;br /&gt;
== Available Software ==&lt;br /&gt;
&lt;br /&gt;
Programs in development providing GUI interfaces to administer WiFi connections:&lt;br /&gt;
&lt;br /&gt;
* [[Lint-wifi]]&lt;br /&gt;
* [[Mofi]]&lt;br /&gt;
* [[Camp-Wifi]]&lt;br /&gt;
&lt;br /&gt;
== External links ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/ WiFi on Linux]&lt;br /&gt;
&lt;br /&gt;
[[Category:Neo FreeRunner Hardware]]&lt;br /&gt;
[[Category:Networking]]&lt;/div&gt;</summary>
		<author><name>Michaelshiloh</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Neo_FreeRunner_Wifi</id>
		<title>Neo FreeRunner Wifi</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Neo_FreeRunner_Wifi"/>
				<updated>2008-10-08T22:31:40Z</updated>
		
		<summary type="html">&lt;p&gt;Michaelshiloh: /* Sample wpa_supplicant.conf */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|Neo FreeRunner Menu}}&lt;br /&gt;
&lt;br /&gt;
This page documents the [http://en.wikipedia.org/wiki/Wireless_networking wireless networking] solutions commonly known as [http://en.wikipedia.org/wiki/Wireless_LAN WLAN] or WiFi. &lt;br /&gt;
&lt;br /&gt;
There are other ways to enable wireless communications on the Neo, including [[Bluetooth]]. For Bluetooth solutions, see [[How to use bluetooth to transfer data between Neo and Desk-top]] and [[Manually using Bluetooth]].&lt;br /&gt;
&lt;br /&gt;
== Using the GUI on 2008.8 ==&lt;br /&gt;
&lt;br /&gt;
In the Settings application on Om 2008.8, there's a &amp;quot;WiFi&amp;quot; item. It should work fairly well in stable-updated 2008.8 (even with WPA2).&lt;br /&gt;
&lt;br /&gt;
If it says &amp;quot;WiFi unknown&amp;quot;, you can delete the /etc/volatives.cache file and reboot.  It should work after that.[http://docs.openmoko.org/trac/ticket/1734]  After connecting using the GUI, you may also need to run &amp;quot;udhcpc eth0&amp;quot; manually in the terminal to get DNS entries added to your resolv.conf.  You may also need to run &amp;quot;ifdown usb0&amp;quot; to remove the routing issue caused by having both interfaces up at the same time.  Some users have reported that 802.11g modulation needs to be enabled on APs to allow the FreeRunner to connect (The hardware is suppose to support 802.11b/g).&lt;br /&gt;
&lt;br /&gt;
Otherwise there's also [[lint-wifi]].  Refer to the section below, [[#Available Software|&amp;quot;Available Software&amp;quot;]] to find out what else might be available.&lt;br /&gt;
&lt;br /&gt;
=== Known Issues with GUI ===&lt;br /&gt;
&lt;br /&gt;
The GUI seems to have some issues that prevent it from working in all cases. &lt;br /&gt;
&lt;br /&gt;
If a Wi-Fi connection can not be made with the GUI, open a shell and use iwconfig manually.&lt;br /&gt;
&lt;br /&gt;
Note that for WEP our iwconfig requires a more specific format than generic iwconfig.&lt;br /&gt;
&lt;br /&gt;
The canonical way of running iwconfig for WEP would be something like this:&lt;br /&gt;
&lt;br /&gt;
# iwconfig eth0 key A4BEB3B8EC essid xyz&lt;br /&gt;
&lt;br /&gt;
Two things are important here:&lt;br /&gt;
&lt;br /&gt;
* the key must be in HEX. iwconfig will not do anything useful if the key is given as a string.   [http://www.powerdog.com/wepkey.cgi Here] is a handy ASCII string to HEX converter.&lt;br /&gt;
&lt;br /&gt;
* the ESSID must follow the key.&lt;br /&gt;
&lt;br /&gt;
If an incorrect key was set, please stop all activity on the interface for at least two minutes (i.e., killall udhcpc and ifconfig eth0 down), then issue the correct iwconfig command and retry.&lt;br /&gt;
&lt;br /&gt;
== How can I tell what Access Points (APs) are visible to me? ==&lt;br /&gt;
&lt;br /&gt;
You can connect to wireless networks through wireless [http://en.wikipedia.org/wiki/Access_point| access points]. If you want to know the names of all the access points that are currently visible to you, you can perform a scan with this command:&lt;br /&gt;
&lt;br /&gt;
 root@om-gta02:~# '''iwlist eth0 scan'''&lt;br /&gt;
&lt;br /&gt;
If anything is visible you will get a list that looks something like this:&lt;br /&gt;
&lt;br /&gt;
 eth0      Scan completed :&lt;br /&gt;
           Cell 01 - Address: 00:16:B6:DE:77:58&lt;br /&gt;
                     ESSID:&amp;quot;StarvinMarvin&amp;quot;&lt;br /&gt;
                     Mode:Master&lt;br /&gt;
                     Frequency:2.437 GHz (Channel 6)&lt;br /&gt;
                     Quality=9/94  Signal level=-86 dBm  Noise level=-95 dBm&lt;br /&gt;
                     Encryption key:on&lt;br /&gt;
                     Extra:bcn_int=100&lt;br /&gt;
                     Extra:wpa_ie=dd180050f20101000050f20201000050f20201000050f2020000&lt;br /&gt;
           Cell 02 - Address: 00:21:29:AA:10:97&lt;br /&gt;
                     ESSID:&amp;quot;CandT Network&amp;quot;&lt;br /&gt;
                     Mode:Master&lt;br /&gt;
                     Frequency:2.437 GHz (Channel 6)&lt;br /&gt;
                     Quality=39/94  Signal level=-56 dBm  Noise level=-95 dBm&lt;br /&gt;
                     Encryption key:on&lt;br /&gt;
                     Extra:bcn_int=100&lt;br /&gt;
                     Extra:wpa_ie=dd1c0050f20101000050f20202000050f2040050f20201000050f2020000&lt;br /&gt;
                     Extra:rsn_ie=30180100000fac020200000fac04000fac020100000fac020000&lt;br /&gt;
           Cell 03 - Address: 00:14:95:1B:8E:B9&lt;br /&gt;
                     ESSID:&amp;quot;2WIRE852&amp;quot;&lt;br /&gt;
                     Mode:Master&lt;br /&gt;
                     Frequency:2.437 GHz (Channel 6)&lt;br /&gt;
                     Quality=5/94  Signal level=-90 dBm  Noise level=-95 dBm&lt;br /&gt;
                     Encryption key:on&lt;br /&gt;
                     Extra:bcn_int=100&lt;br /&gt;
           Cell 04 - Address: 00:E0:98:52:3D:78&lt;br /&gt;
                     ESSID:&amp;quot;smith&amp;quot;&lt;br /&gt;
                     Mode:Master&lt;br /&gt;
                     Frequency:2.437 GHz (Channel 6)&lt;br /&gt;
                     Quality=36/94  Signal level=-59 dBm  Noise level=-95 dBm&lt;br /&gt;
                     Encryption key:on&lt;br /&gt;
                     Extra:bcn_int=100&lt;br /&gt;
&lt;br /&gt;
If you want to connect to an unsecured network run:&lt;br /&gt;
  &lt;br /&gt;
  udhcpc  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== WPA ==&lt;br /&gt;
&lt;br /&gt;
[http://en.wikipedia.org/wiki/Wi-Fi_Protected_Access  WPA] is an encryption method for securing your wireless network.&lt;br /&gt;
&lt;br /&gt;
=== Using wpa_supplicant manually ===&lt;br /&gt;
&lt;br /&gt;
Create and edit a suitable [[GTA02_WLAN#Sample_wpa_supplicant.conf|/etc/wpa_supplicant/wpa_supplicant.conf]].&lt;br /&gt;
&lt;br /&gt;
Bring up your wireless connection: &lt;br /&gt;
&lt;br /&gt;
 root@om-gta02:~# ifup eth0&lt;br /&gt;
 root@om-gta02:~# wpa_supplicant -ieth0 -c/etc/wpa_supplicant/wpa_supplicant.conf -B&lt;br /&gt;
 root@om-gta02:~# udhcpc eth0&lt;br /&gt;
&lt;br /&gt;
=== Using WPA and /etc/network/interfaces ===&lt;br /&gt;
&lt;br /&gt;
Once you have a [[GTA02_WLAN#Sample_wpa_supplicant.conf|/etc/wpa_supplicant/wpa_supplicant.conf]] file, add a line under the eth0 entry in /etc/network/interfaces:&lt;br /&gt;
&lt;br /&gt;
 iface eth0 inet dhcp&lt;br /&gt;
    wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf&lt;br /&gt;
&lt;br /&gt;
Save your changes and run:&lt;br /&gt;
  # ifdown eth0 &amp;amp;&amp;amp; ifup eth0&lt;br /&gt;
&lt;br /&gt;
You'll get a lot of messages, like &amp;lt;tt&amp;gt;ioctl[SIOCSIWENCODEEXT]: Operation not supported&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;sed: unrecognized option `--quiet'&amp;lt;/tt&amp;gt;, they appear to be harmless. The &amp;quot;--quiet&amp;quot; error message can be avoided by replacing &amp;quot;sed --quiet&amp;quot; with &amp;quot;sed -n&amp;quot; in /etc/wpa_supplicant/*.sh&lt;br /&gt;
&lt;br /&gt;
=== Sample wpa_supplicant.conf ===&lt;br /&gt;
&lt;br /&gt;
 ctrl_interface=/var/run/wpa_supplicant&lt;br /&gt;
 ctrl_interface_group=0&lt;br /&gt;
 eapol_version=1&lt;br /&gt;
 ap_scan=1&lt;br /&gt;
 fast_reauth=1 &lt;br /&gt;
 # WPA2:&lt;br /&gt;
 network={&lt;br /&gt;
        ssid=&amp;quot;your ssid&amp;quot;&lt;br /&gt;
        scan_ssid=1&lt;br /&gt;
        proto=RSN&lt;br /&gt;
        key_mgmt=WPA-PSK&lt;br /&gt;
        pairwise=CCMP TKIP&lt;br /&gt;
        group=TKIP CCMP&lt;br /&gt;
        psk=&amp;quot;secret key&amp;quot;&lt;br /&gt;
        priority=50&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 # WPA:&lt;br /&gt;
 network={&lt;br /&gt;
       ssid=&amp;quot;your_ssid&amp;quot;&lt;br /&gt;
       proto=WPA&lt;br /&gt;
       key_mgmt=WPA-PSK&lt;br /&gt;
       pairwise=TKIP&lt;br /&gt;
       group=TKIP&lt;br /&gt;
       scan_ssid=1&lt;br /&gt;
       psk=&amp;quot;secret key&amp;quot;&lt;br /&gt;
       priority=10&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 # WEP:&lt;br /&gt;
 network={&lt;br /&gt;
      ssid=&amp;quot;your_ssid&amp;quot;&lt;br /&gt;
      scan_ssid=1&lt;br /&gt;
      key_mgmt=NONE&lt;br /&gt;
      wep_tx_keyidx=0&lt;br /&gt;
      wep_key0=your_hex_key&lt;br /&gt;
      priority=8&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 # Open:&lt;br /&gt;
 network={&lt;br /&gt;
      ssid=&amp;quot;your ssid&amp;quot;&lt;br /&gt;
      key_mgmt=NONE&lt;br /&gt;
      priority=5&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== wpa_supplicant.conf explained ====&lt;br /&gt;
The highest priority is tried first then falls back to the next highest number.&lt;br /&gt;
&lt;br /&gt;
priority=100  1st  &amp;lt;br&amp;gt;&lt;br /&gt;
then&amp;lt;br&amp;gt;&lt;br /&gt;
priority=99  &amp;lt;br&amp;gt; &lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
&lt;br /&gt;
# Simple case: WPA-PSK, PSK as an ASCII passphrase, allow all valid ciphers&lt;br /&gt;
network={&lt;br /&gt;
	ssid=&amp;quot;AP_ESSID&amp;quot;&lt;br /&gt;
	psk=&amp;quot;presharedkey&amp;quot;&lt;br /&gt;
	priority=5&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#try open AP regardless of its SSID.&lt;br /&gt;
# change root password before you go roaming around it could prove dangerous&lt;br /&gt;
network={&lt;br /&gt;
	key_mgmt=NONE&lt;br /&gt;
priority=1  #try any open AP last&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A more in depth explanation can be found here:&amp;lt;br&amp;gt; &lt;br /&gt;
http://hostap.epitest.fi/gitweb/gitweb.cgi?p=hostap.git;a=blob_plain;f=wpa_supplicant/wpa_supplicant.conf&lt;br /&gt;
&lt;br /&gt;
== WEP ==&lt;br /&gt;
&lt;br /&gt;
[http://en.wikipedia.org/wiki/Wired_Equivalent_Privacy WEP] is an encryption method for securing your wireless network. WEP is generally considered to be weak, you should use WPA instead if possible.&lt;br /&gt;
&lt;br /&gt;
=== Using WEP and /etc/network/interfaces ===&lt;br /&gt;
  iface eth0 inet dhcp&lt;br /&gt;
    wireless-key my_wep_key&lt;br /&gt;
    wireless-essid my_essid&lt;br /&gt;
&lt;br /&gt;
 iface eth0 inet dhcp&lt;br /&gt;
    wpa-wep-key0 my_wep_key&lt;br /&gt;
    wpa-key-mgmt NONE&lt;br /&gt;
    wpa-ssid my_essid&lt;br /&gt;
&lt;br /&gt;
Save your changes and run:&lt;br /&gt;
  # ifdown eth0 &amp;amp;&amp;amp; ifup eth0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Wake up from wireless (wow)==&lt;br /&gt;
&lt;br /&gt;
Wi-Fi module constantly drain currents after module power up, for wi-fi SIP phone or some application need long standby time, will need wake up from wireless function for power saving. There is a sleep mode that Ar6k supported for wake up from wireless.&lt;br /&gt;
&lt;br /&gt;
 http://svn.openmoko.org/trunk/src/target/AR6kSDK.build_sw.18/host/tools/wmiconfig&lt;br /&gt;
&lt;br /&gt;
 export ATH_CROSS_COMPILE_TYPE=arm-angstrom-linux-gnueabi-&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
Debian package:&lt;br /&gt;
&lt;br /&gt;
 wget http://meshy.org/~ato/debian/pool/main/w/wmiconfig/wmiconfig_0.0.18-1_armel.deb&lt;br /&gt;
 dpkg -i wmiconfig_0.0.18-1_armel.deb&lt;br /&gt;
&lt;br /&gt;
Basically, it's achieved via wmiconfig tool to issue IOCTL if we want&lt;br /&gt;
ar6k wifi module to generate interrupt to host controller. The procedure&lt;br /&gt;
to enable wakeup-on-wireless(wow) is listed here:&lt;br /&gt;
&lt;br /&gt;
 1. wmiconfig --sethostmode asleep /* to tell ar6k what host's current is */&lt;br /&gt;
 2. wmiconfig --setwowmode enable /* enable wow function */&lt;br /&gt;
 3. wmiconfig --addpattern 0 1 33 01 ff /* add packet filter pattern, this is the ICMP filter pattern */&lt;br /&gt;
 4. apm -s&lt;br /&gt;
 5. ping IP_of_Neo&lt;br /&gt;
 6. The GPIO1 pin would be pulled up. The system would resume then.&lt;br /&gt;
 7. wmiconfig --sethostmode awake /* The firmware of ar6k will pull low the GPIO1 pin */&lt;br /&gt;
&lt;br /&gt;
--addwowpattern &amp;lt;list-id&amp;gt; &amp;lt;pattern-size&amp;gt; &amp;lt;pattern-offset&amp;gt; &amp;lt;pattern&amp;gt; &amp;lt;pattern-mask&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here are some addwowpattern commands:&lt;br /&gt;
&lt;br /&gt;
Protocol type=IP=0800&lt;br /&gt;
Protocol type in IP header=ICMP=01&lt;br /&gt;
&lt;br /&gt;
 - To filter for IP packets(offset 22)&lt;br /&gt;
 wmiconfig --addwowpattern 0 2 22 0800 ffff&lt;br /&gt;
 - To filter for ICMP packets (offset 33)&lt;br /&gt;
 wmiconfig --addwowpattern 0 1 33 01 ff&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== A very ugly /etc/init.d/wlan startscript ==&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 #&lt;br /&gt;
 # wlan	This shell script starts and stops wlan.&lt;br /&gt;
 #&lt;br /&gt;
 # processname: wlan&lt;br /&gt;
 &lt;br /&gt;
 # Source function library.&lt;br /&gt;
 #. /etc/rc.d/init.d/functions&lt;br /&gt;
 # &amp;quot;written&amp;quot; by HdR&lt;br /&gt;
 &lt;br /&gt;
 RETVAL=0&lt;br /&gt;
 prog=&amp;quot;wlan&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # test -f /etc/default/$prog &amp;amp;&amp;amp; . /etc/default/$prog&lt;br /&gt;
 &lt;br /&gt;
 start() {&lt;br /&gt;
 	echo -n &amp;quot;Starting $prog: &amp;quot;&lt;br /&gt;
 	ifconfig eth0 up&lt;br /&gt;
 	wpa_supplicant -ieth0 -c/etc/wpa_supplicant/wpa_supplicant.conf -B&lt;br /&gt;
 	sleep 10&lt;br /&gt;
 	udhcpc eth0&lt;br /&gt;
 	RETVAL=$?&lt;br /&gt;
 	return $RETVAL&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 stop() {&lt;br /&gt;
 	# Stop daemons.&lt;br /&gt;
 	echo -n &amp;quot;Shutting down $prog: &amp;quot;&lt;br /&gt;
         killall wpa_supplicant&lt;br /&gt;
 	ifconfig eth0 down&lt;br /&gt;
 #        killproc gpsd&lt;br /&gt;
 	RETVAL=$?&lt;br /&gt;
 	return $RETVAL&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 # See how we were called.&lt;br /&gt;
 case &amp;quot;$1&amp;quot; in&lt;br /&gt;
   start)&lt;br /&gt;
 	start&lt;br /&gt;
 	;;&lt;br /&gt;
   stop)&lt;br /&gt;
 	stop&lt;br /&gt;
 	;;&lt;br /&gt;
   restart|reload)&lt;br /&gt;
 	stop&lt;br /&gt;
 	start&lt;br /&gt;
 	RETVAL=$?&lt;br /&gt;
 	;;&lt;br /&gt;
   *)&lt;br /&gt;
 	echo &amp;quot;Usage: $0 {start|stop|restart}&amp;quot;&lt;br /&gt;
 	exit 1&lt;br /&gt;
 esac&lt;br /&gt;
 &lt;br /&gt;
 exit $RETVAL&lt;br /&gt;
&lt;br /&gt;
Note: Don't forget to make this script executable with &amp;quot;chmod +x &amp;lt;filename&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Route internet connection through Wifi rather than USB ==&lt;br /&gt;
&lt;br /&gt;
Wifi is faster than USB, so it is a good idea to tell the FreeRunner to connect through it. Put the following in /etc/network/interfaces under eth0:&lt;br /&gt;
&lt;br /&gt;
up route del default gw 192.168.0.200&lt;br /&gt;
&lt;br /&gt;
This will remove your computer as the default gateway and use the  wireless one when the interface is brought up. User nickd reports that sometimes it fails so he has had to put it in twice.&lt;br /&gt;
&lt;br /&gt;
== ssh into FR over WiFi ==&lt;br /&gt;
dropbear, the ssh server, is configured to listen on the USB interface only. Wireless interfaces like wlan or bluetooth are disabled for security reasons (empty root password).&lt;br /&gt;
&lt;br /&gt;
If you want to enable ssh over WiFi, change the /etc/default/dropbear from:&lt;br /&gt;
&lt;br /&gt;
  DROPBEAR_PORT=`ip addr list usb0 | awk 'BEGIN { FS=&amp;quot;[ /]+&amp;quot; } /inet / { print  $3 }'`:22&lt;br /&gt;
&lt;br /&gt;
(which actually only prepends the usb0 ip address before the :22)&lt;br /&gt;
&lt;br /&gt;
into:&lt;br /&gt;
&lt;br /&gt;
  DROPBEAR_PORT=22&lt;br /&gt;
&lt;br /&gt;
* Be careful with this config file since it can close the only door into your phone.&lt;br /&gt;
&lt;br /&gt;
* Set a root password!&lt;br /&gt;
&lt;br /&gt;
== Available Software ==&lt;br /&gt;
&lt;br /&gt;
Programs in development providing GUI interfaces to administer WiFi connections:&lt;br /&gt;
&lt;br /&gt;
* [[Lint-wifi]]&lt;br /&gt;
* [[Mofi]]&lt;br /&gt;
* [[Camp-Wifi]]&lt;br /&gt;
&lt;br /&gt;
== External links ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/ WiFi on Linux]&lt;br /&gt;
&lt;br /&gt;
[[Category:Neo FreeRunner Hardware]]&lt;br /&gt;
[[Category:Networking]]&lt;/div&gt;</summary>
		<author><name>Michaelshiloh</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Neo_FreeRunner_Wifi</id>
		<title>Neo FreeRunner Wifi</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Neo_FreeRunner_Wifi"/>
				<updated>2008-10-08T22:30:36Z</updated>
		
		<summary type="html">&lt;p&gt;Michaelshiloh: /* Using WPA and /etc/network/interfaces */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|Neo FreeRunner Menu}}&lt;br /&gt;
&lt;br /&gt;
This page documents the [http://en.wikipedia.org/wiki/Wireless_networking wireless networking] solutions commonly known as [http://en.wikipedia.org/wiki/Wireless_LAN WLAN] or WiFi. &lt;br /&gt;
&lt;br /&gt;
There are other ways to enable wireless communications on the Neo, including [[Bluetooth]]. For Bluetooth solutions, see [[How to use bluetooth to transfer data between Neo and Desk-top]] and [[Manually using Bluetooth]].&lt;br /&gt;
&lt;br /&gt;
== Using the GUI on 2008.8 ==&lt;br /&gt;
&lt;br /&gt;
In the Settings application on Om 2008.8, there's a &amp;quot;WiFi&amp;quot; item. It should work fairly well in stable-updated 2008.8 (even with WPA2).&lt;br /&gt;
&lt;br /&gt;
If it says &amp;quot;WiFi unknown&amp;quot;, you can delete the /etc/volatives.cache file and reboot.  It should work after that.[http://docs.openmoko.org/trac/ticket/1734]  After connecting using the GUI, you may also need to run &amp;quot;udhcpc eth0&amp;quot; manually in the terminal to get DNS entries added to your resolv.conf.  You may also need to run &amp;quot;ifdown usb0&amp;quot; to remove the routing issue caused by having both interfaces up at the same time.  Some users have reported that 802.11g modulation needs to be enabled on APs to allow the FreeRunner to connect (The hardware is suppose to support 802.11b/g).&lt;br /&gt;
&lt;br /&gt;
Otherwise there's also [[lint-wifi]].  Refer to the section below, [[#Available Software|&amp;quot;Available Software&amp;quot;]] to find out what else might be available.&lt;br /&gt;
&lt;br /&gt;
=== Known Issues with GUI ===&lt;br /&gt;
&lt;br /&gt;
The GUI seems to have some issues that prevent it from working in all cases. &lt;br /&gt;
&lt;br /&gt;
If a Wi-Fi connection can not be made with the GUI, open a shell and use iwconfig manually.&lt;br /&gt;
&lt;br /&gt;
Note that for WEP our iwconfig requires a more specific format than generic iwconfig.&lt;br /&gt;
&lt;br /&gt;
The canonical way of running iwconfig for WEP would be something like this:&lt;br /&gt;
&lt;br /&gt;
# iwconfig eth0 key A4BEB3B8EC essid xyz&lt;br /&gt;
&lt;br /&gt;
Two things are important here:&lt;br /&gt;
&lt;br /&gt;
* the key must be in HEX. iwconfig will not do anything useful if the key is given as a string.   [http://www.powerdog.com/wepkey.cgi Here] is a handy ASCII string to HEX converter.&lt;br /&gt;
&lt;br /&gt;
* the ESSID must follow the key.&lt;br /&gt;
&lt;br /&gt;
If an incorrect key was set, please stop all activity on the interface for at least two minutes (i.e., killall udhcpc and ifconfig eth0 down), then issue the correct iwconfig command and retry.&lt;br /&gt;
&lt;br /&gt;
== How can I tell what Access Points (APs) are visible to me? ==&lt;br /&gt;
&lt;br /&gt;
You can connect to wireless networks through wireless [http://en.wikipedia.org/wiki/Access_point| access points]. If you want to know the names of all the access points that are currently visible to you, you can perform a scan with this command:&lt;br /&gt;
&lt;br /&gt;
 root@om-gta02:~# '''iwlist eth0 scan'''&lt;br /&gt;
&lt;br /&gt;
If anything is visible you will get a list that looks something like this:&lt;br /&gt;
&lt;br /&gt;
 eth0      Scan completed :&lt;br /&gt;
           Cell 01 - Address: 00:16:B6:DE:77:58&lt;br /&gt;
                     ESSID:&amp;quot;StarvinMarvin&amp;quot;&lt;br /&gt;
                     Mode:Master&lt;br /&gt;
                     Frequency:2.437 GHz (Channel 6)&lt;br /&gt;
                     Quality=9/94  Signal level=-86 dBm  Noise level=-95 dBm&lt;br /&gt;
                     Encryption key:on&lt;br /&gt;
                     Extra:bcn_int=100&lt;br /&gt;
                     Extra:wpa_ie=dd180050f20101000050f20201000050f20201000050f2020000&lt;br /&gt;
           Cell 02 - Address: 00:21:29:AA:10:97&lt;br /&gt;
                     ESSID:&amp;quot;CandT Network&amp;quot;&lt;br /&gt;
                     Mode:Master&lt;br /&gt;
                     Frequency:2.437 GHz (Channel 6)&lt;br /&gt;
                     Quality=39/94  Signal level=-56 dBm  Noise level=-95 dBm&lt;br /&gt;
                     Encryption key:on&lt;br /&gt;
                     Extra:bcn_int=100&lt;br /&gt;
                     Extra:wpa_ie=dd1c0050f20101000050f20202000050f2040050f20201000050f2020000&lt;br /&gt;
                     Extra:rsn_ie=30180100000fac020200000fac04000fac020100000fac020000&lt;br /&gt;
           Cell 03 - Address: 00:14:95:1B:8E:B9&lt;br /&gt;
                     ESSID:&amp;quot;2WIRE852&amp;quot;&lt;br /&gt;
                     Mode:Master&lt;br /&gt;
                     Frequency:2.437 GHz (Channel 6)&lt;br /&gt;
                     Quality=5/94  Signal level=-90 dBm  Noise level=-95 dBm&lt;br /&gt;
                     Encryption key:on&lt;br /&gt;
                     Extra:bcn_int=100&lt;br /&gt;
           Cell 04 - Address: 00:E0:98:52:3D:78&lt;br /&gt;
                     ESSID:&amp;quot;smith&amp;quot;&lt;br /&gt;
                     Mode:Master&lt;br /&gt;
                     Frequency:2.437 GHz (Channel 6)&lt;br /&gt;
                     Quality=36/94  Signal level=-59 dBm  Noise level=-95 dBm&lt;br /&gt;
                     Encryption key:on&lt;br /&gt;
                     Extra:bcn_int=100&lt;br /&gt;
&lt;br /&gt;
If you want to connect to an unsecured network run:&lt;br /&gt;
  &lt;br /&gt;
  udhcpc  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== WPA ==&lt;br /&gt;
&lt;br /&gt;
[http://en.wikipedia.org/wiki/Wi-Fi_Protected_Access  WPA] is an encryption method for securing your wireless network.&lt;br /&gt;
&lt;br /&gt;
=== Using wpa_supplicant manually ===&lt;br /&gt;
&lt;br /&gt;
Create and edit a suitable [[GTA02_WLAN#Sample_wpa_supplicant.conf|/etc/wpa_supplicant/wpa_supplicant.conf]].&lt;br /&gt;
&lt;br /&gt;
Bring up your wireless connection: &lt;br /&gt;
&lt;br /&gt;
 root@om-gta02:~# ifup eth0&lt;br /&gt;
 root@om-gta02:~# wpa_supplicant -ieth0 -c/etc/wpa_supplicant/wpa_supplicant.conf -B&lt;br /&gt;
 root@om-gta02:~# udhcpc eth0&lt;br /&gt;
&lt;br /&gt;
=== Using WPA and /etc/network/interfaces ===&lt;br /&gt;
&lt;br /&gt;
Once you have a [[GTA02_WLAN#Sample_wpa_supplicant.conf|/etc/wpa_supplicant/wpa_supplicant.conf]] file, add a line under the eth0 entry in /etc/network/interfaces:&lt;br /&gt;
&lt;br /&gt;
 iface eth0 inet dhcp&lt;br /&gt;
    wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf&lt;br /&gt;
&lt;br /&gt;
Save your changes and run:&lt;br /&gt;
  # ifdown eth0 &amp;amp;&amp;amp; ifup eth0&lt;br /&gt;
&lt;br /&gt;
You'll get a lot of messages, like &amp;lt;tt&amp;gt;ioctl[SIOCSIWENCODEEXT]: Operation not supported&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;sed: unrecognized option `--quiet'&amp;lt;/tt&amp;gt;, they appear to be harmless. The &amp;quot;--quiet&amp;quot; error message can be avoided by replacing &amp;quot;sed --quiet&amp;quot; with &amp;quot;sed -n&amp;quot; in /etc/wpa_supplicant/*.sh&lt;br /&gt;
&lt;br /&gt;
== Sample wpa_supplicant.conf ==&lt;br /&gt;
&lt;br /&gt;
 ctrl_interface=/var/run/wpa_supplicant&lt;br /&gt;
 ctrl_interface_group=0&lt;br /&gt;
 eapol_version=1&lt;br /&gt;
 ap_scan=1&lt;br /&gt;
 fast_reauth=1 &lt;br /&gt;
 # WPA2:&lt;br /&gt;
 network={&lt;br /&gt;
        ssid=&amp;quot;your ssid&amp;quot;&lt;br /&gt;
        scan_ssid=1&lt;br /&gt;
        proto=RSN&lt;br /&gt;
        key_mgmt=WPA-PSK&lt;br /&gt;
        pairwise=CCMP TKIP&lt;br /&gt;
        group=TKIP CCMP&lt;br /&gt;
        psk=&amp;quot;secret key&amp;quot;&lt;br /&gt;
        priority=50&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 # WPA:&lt;br /&gt;
 network={&lt;br /&gt;
       ssid=&amp;quot;your_ssid&amp;quot;&lt;br /&gt;
       proto=WPA&lt;br /&gt;
       key_mgmt=WPA-PSK&lt;br /&gt;
       pairwise=TKIP&lt;br /&gt;
       group=TKIP&lt;br /&gt;
       scan_ssid=1&lt;br /&gt;
       psk=&amp;quot;secret key&amp;quot;&lt;br /&gt;
       priority=10&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 # WEP:&lt;br /&gt;
 network={&lt;br /&gt;
      ssid=&amp;quot;your_ssid&amp;quot;&lt;br /&gt;
      scan_ssid=1&lt;br /&gt;
      key_mgmt=NONE&lt;br /&gt;
      wep_tx_keyidx=0&lt;br /&gt;
      wep_key0=your_hex_key&lt;br /&gt;
      priority=8&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 # Open:&lt;br /&gt;
 network={&lt;br /&gt;
      ssid=&amp;quot;your ssid&amp;quot;&lt;br /&gt;
      key_mgmt=NONE&lt;br /&gt;
      priority=5&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
======wpa_supplicant.conf explained======&lt;br /&gt;
The highest priority is tried first then falls back to the next highest number.&lt;br /&gt;
&lt;br /&gt;
priority=100  1st  &amp;lt;br&amp;gt;&lt;br /&gt;
then&amp;lt;br&amp;gt;&lt;br /&gt;
priority=99  &amp;lt;br&amp;gt; &lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
&lt;br /&gt;
# Simple case: WPA-PSK, PSK as an ASCII passphrase, allow all valid ciphers&lt;br /&gt;
network={&lt;br /&gt;
	ssid=&amp;quot;AP_ESSID&amp;quot;&lt;br /&gt;
	psk=&amp;quot;presharedkey&amp;quot;&lt;br /&gt;
	priority=5&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#try open AP regardless of its SSID.&lt;br /&gt;
# change root password before you go roaming around it could prove dangerous&lt;br /&gt;
network={&lt;br /&gt;
	key_mgmt=NONE&lt;br /&gt;
priority=1  #try any open AP last&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A more in depth explanation can be found here:&amp;lt;br&amp;gt; &lt;br /&gt;
http://hostap.epitest.fi/gitweb/gitweb.cgi?p=hostap.git;a=blob_plain;f=wpa_supplicant/wpa_supplicant.conf&lt;br /&gt;
&lt;br /&gt;
== WEP ==&lt;br /&gt;
&lt;br /&gt;
[http://en.wikipedia.org/wiki/Wired_Equivalent_Privacy WEP] is an encryption method for securing your wireless network. WEP is generally considered to be weak, you should use WPA instead if possible.&lt;br /&gt;
&lt;br /&gt;
=== Using WEP and /etc/network/interfaces ===&lt;br /&gt;
  iface eth0 inet dhcp&lt;br /&gt;
    wireless-key my_wep_key&lt;br /&gt;
    wireless-essid my_essid&lt;br /&gt;
&lt;br /&gt;
 iface eth0 inet dhcp&lt;br /&gt;
    wpa-wep-key0 my_wep_key&lt;br /&gt;
    wpa-key-mgmt NONE&lt;br /&gt;
    wpa-ssid my_essid&lt;br /&gt;
&lt;br /&gt;
Save your changes and run:&lt;br /&gt;
  # ifdown eth0 &amp;amp;&amp;amp; ifup eth0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Wake up from wireless (wow)==&lt;br /&gt;
&lt;br /&gt;
Wi-Fi module constantly drain currents after module power up, for wi-fi SIP phone or some application need long standby time, will need wake up from wireless function for power saving. There is a sleep mode that Ar6k supported for wake up from wireless.&lt;br /&gt;
&lt;br /&gt;
 http://svn.openmoko.org/trunk/src/target/AR6kSDK.build_sw.18/host/tools/wmiconfig&lt;br /&gt;
&lt;br /&gt;
 export ATH_CROSS_COMPILE_TYPE=arm-angstrom-linux-gnueabi-&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
Debian package:&lt;br /&gt;
&lt;br /&gt;
 wget http://meshy.org/~ato/debian/pool/main/w/wmiconfig/wmiconfig_0.0.18-1_armel.deb&lt;br /&gt;
 dpkg -i wmiconfig_0.0.18-1_armel.deb&lt;br /&gt;
&lt;br /&gt;
Basically, it's achieved via wmiconfig tool to issue IOCTL if we want&lt;br /&gt;
ar6k wifi module to generate interrupt to host controller. The procedure&lt;br /&gt;
to enable wakeup-on-wireless(wow) is listed here:&lt;br /&gt;
&lt;br /&gt;
 1. wmiconfig --sethostmode asleep /* to tell ar6k what host's current is */&lt;br /&gt;
 2. wmiconfig --setwowmode enable /* enable wow function */&lt;br /&gt;
 3. wmiconfig --addpattern 0 1 33 01 ff /* add packet filter pattern, this is the ICMP filter pattern */&lt;br /&gt;
 4. apm -s&lt;br /&gt;
 5. ping IP_of_Neo&lt;br /&gt;
 6. The GPIO1 pin would be pulled up. The system would resume then.&lt;br /&gt;
 7. wmiconfig --sethostmode awake /* The firmware of ar6k will pull low the GPIO1 pin */&lt;br /&gt;
&lt;br /&gt;
--addwowpattern &amp;lt;list-id&amp;gt; &amp;lt;pattern-size&amp;gt; &amp;lt;pattern-offset&amp;gt; &amp;lt;pattern&amp;gt; &amp;lt;pattern-mask&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here are some addwowpattern commands:&lt;br /&gt;
&lt;br /&gt;
Protocol type=IP=0800&lt;br /&gt;
Protocol type in IP header=ICMP=01&lt;br /&gt;
&lt;br /&gt;
 - To filter for IP packets(offset 22)&lt;br /&gt;
 wmiconfig --addwowpattern 0 2 22 0800 ffff&lt;br /&gt;
 - To filter for ICMP packets (offset 33)&lt;br /&gt;
 wmiconfig --addwowpattern 0 1 33 01 ff&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== A very ugly /etc/init.d/wlan startscript ==&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 #&lt;br /&gt;
 # wlan	This shell script starts and stops wlan.&lt;br /&gt;
 #&lt;br /&gt;
 # processname: wlan&lt;br /&gt;
 &lt;br /&gt;
 # Source function library.&lt;br /&gt;
 #. /etc/rc.d/init.d/functions&lt;br /&gt;
 # &amp;quot;written&amp;quot; by HdR&lt;br /&gt;
 &lt;br /&gt;
 RETVAL=0&lt;br /&gt;
 prog=&amp;quot;wlan&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # test -f /etc/default/$prog &amp;amp;&amp;amp; . /etc/default/$prog&lt;br /&gt;
 &lt;br /&gt;
 start() {&lt;br /&gt;
 	echo -n &amp;quot;Starting $prog: &amp;quot;&lt;br /&gt;
 	ifconfig eth0 up&lt;br /&gt;
 	wpa_supplicant -ieth0 -c/etc/wpa_supplicant/wpa_supplicant.conf -B&lt;br /&gt;
 	sleep 10&lt;br /&gt;
 	udhcpc eth0&lt;br /&gt;
 	RETVAL=$?&lt;br /&gt;
 	return $RETVAL&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 stop() {&lt;br /&gt;
 	# Stop daemons.&lt;br /&gt;
 	echo -n &amp;quot;Shutting down $prog: &amp;quot;&lt;br /&gt;
         killall wpa_supplicant&lt;br /&gt;
 	ifconfig eth0 down&lt;br /&gt;
 #        killproc gpsd&lt;br /&gt;
 	RETVAL=$?&lt;br /&gt;
 	return $RETVAL&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 # See how we were called.&lt;br /&gt;
 case &amp;quot;$1&amp;quot; in&lt;br /&gt;
   start)&lt;br /&gt;
 	start&lt;br /&gt;
 	;;&lt;br /&gt;
   stop)&lt;br /&gt;
 	stop&lt;br /&gt;
 	;;&lt;br /&gt;
   restart|reload)&lt;br /&gt;
 	stop&lt;br /&gt;
 	start&lt;br /&gt;
 	RETVAL=$?&lt;br /&gt;
 	;;&lt;br /&gt;
   *)&lt;br /&gt;
 	echo &amp;quot;Usage: $0 {start|stop|restart}&amp;quot;&lt;br /&gt;
 	exit 1&lt;br /&gt;
 esac&lt;br /&gt;
 &lt;br /&gt;
 exit $RETVAL&lt;br /&gt;
&lt;br /&gt;
Note: Don't forget to make this script executable with &amp;quot;chmod +x &amp;lt;filename&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Route internet connection through Wifi rather than USB ==&lt;br /&gt;
&lt;br /&gt;
Wifi is faster than USB, so it is a good idea to tell the FreeRunner to connect through it. Put the following in /etc/network/interfaces under eth0:&lt;br /&gt;
&lt;br /&gt;
up route del default gw 192.168.0.200&lt;br /&gt;
&lt;br /&gt;
This will remove your computer as the default gateway and use the  wireless one when the interface is brought up. User nickd reports that sometimes it fails so he has had to put it in twice.&lt;br /&gt;
&lt;br /&gt;
== ssh into FR over WiFi ==&lt;br /&gt;
dropbear, the ssh server, is configured to listen on the USB interface only. Wireless interfaces like wlan or bluetooth are disabled for security reasons (empty root password).&lt;br /&gt;
&lt;br /&gt;
If you want to enable ssh over WiFi, change the /etc/default/dropbear from:&lt;br /&gt;
&lt;br /&gt;
  DROPBEAR_PORT=`ip addr list usb0 | awk 'BEGIN { FS=&amp;quot;[ /]+&amp;quot; } /inet / { print  $3 }'`:22&lt;br /&gt;
&lt;br /&gt;
(which actually only prepends the usb0 ip address before the :22)&lt;br /&gt;
&lt;br /&gt;
into:&lt;br /&gt;
&lt;br /&gt;
  DROPBEAR_PORT=22&lt;br /&gt;
&lt;br /&gt;
* Be careful with this config file since it can close the only door into your phone.&lt;br /&gt;
&lt;br /&gt;
* Set a root password!&lt;br /&gt;
&lt;br /&gt;
== Available Software ==&lt;br /&gt;
&lt;br /&gt;
Programs in development providing GUI interfaces to administer WiFi connections:&lt;br /&gt;
&lt;br /&gt;
* [[Lint-wifi]]&lt;br /&gt;
* [[Mofi]]&lt;br /&gt;
* [[Camp-Wifi]]&lt;br /&gt;
&lt;br /&gt;
== External links ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/ WiFi on Linux]&lt;br /&gt;
&lt;br /&gt;
[[Category:Neo FreeRunner Hardware]]&lt;br /&gt;
[[Category:Networking]]&lt;/div&gt;</summary>
		<author><name>Michaelshiloh</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Neo_FreeRunner_Wifi</id>
		<title>Neo FreeRunner Wifi</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Neo_FreeRunner_Wifi"/>
				<updated>2008-10-08T22:29:53Z</updated>
		
		<summary type="html">&lt;p&gt;Michaelshiloh: /* Sample wpa_supplicant.conf */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|Neo FreeRunner Menu}}&lt;br /&gt;
&lt;br /&gt;
This page documents the [http://en.wikipedia.org/wiki/Wireless_networking wireless networking] solutions commonly known as [http://en.wikipedia.org/wiki/Wireless_LAN WLAN] or WiFi. &lt;br /&gt;
&lt;br /&gt;
There are other ways to enable wireless communications on the Neo, including [[Bluetooth]]. For Bluetooth solutions, see [[How to use bluetooth to transfer data between Neo and Desk-top]] and [[Manually using Bluetooth]].&lt;br /&gt;
&lt;br /&gt;
== Using the GUI on 2008.8 ==&lt;br /&gt;
&lt;br /&gt;
In the Settings application on Om 2008.8, there's a &amp;quot;WiFi&amp;quot; item. It should work fairly well in stable-updated 2008.8 (even with WPA2).&lt;br /&gt;
&lt;br /&gt;
If it says &amp;quot;WiFi unknown&amp;quot;, you can delete the /etc/volatives.cache file and reboot.  It should work after that.[http://docs.openmoko.org/trac/ticket/1734]  After connecting using the GUI, you may also need to run &amp;quot;udhcpc eth0&amp;quot; manually in the terminal to get DNS entries added to your resolv.conf.  You may also need to run &amp;quot;ifdown usb0&amp;quot; to remove the routing issue caused by having both interfaces up at the same time.  Some users have reported that 802.11g modulation needs to be enabled on APs to allow the FreeRunner to connect (The hardware is suppose to support 802.11b/g).&lt;br /&gt;
&lt;br /&gt;
Otherwise there's also [[lint-wifi]].  Refer to the section below, [[#Available Software|&amp;quot;Available Software&amp;quot;]] to find out what else might be available.&lt;br /&gt;
&lt;br /&gt;
=== Known Issues with GUI ===&lt;br /&gt;
&lt;br /&gt;
The GUI seems to have some issues that prevent it from working in all cases. &lt;br /&gt;
&lt;br /&gt;
If a Wi-Fi connection can not be made with the GUI, open a shell and use iwconfig manually.&lt;br /&gt;
&lt;br /&gt;
Note that for WEP our iwconfig requires a more specific format than generic iwconfig.&lt;br /&gt;
&lt;br /&gt;
The canonical way of running iwconfig for WEP would be something like this:&lt;br /&gt;
&lt;br /&gt;
# iwconfig eth0 key A4BEB3B8EC essid xyz&lt;br /&gt;
&lt;br /&gt;
Two things are important here:&lt;br /&gt;
&lt;br /&gt;
* the key must be in HEX. iwconfig will not do anything useful if the key is given as a string.   [http://www.powerdog.com/wepkey.cgi Here] is a handy ASCII string to HEX converter.&lt;br /&gt;
&lt;br /&gt;
* the ESSID must follow the key.&lt;br /&gt;
&lt;br /&gt;
If an incorrect key was set, please stop all activity on the interface for at least two minutes (i.e., killall udhcpc and ifconfig eth0 down), then issue the correct iwconfig command and retry.&lt;br /&gt;
&lt;br /&gt;
== How can I tell what Access Points (APs) are visible to me? ==&lt;br /&gt;
&lt;br /&gt;
You can connect to wireless networks through wireless [http://en.wikipedia.org/wiki/Access_point| access points]. If you want to know the names of all the access points that are currently visible to you, you can perform a scan with this command:&lt;br /&gt;
&lt;br /&gt;
 root@om-gta02:~# '''iwlist eth0 scan'''&lt;br /&gt;
&lt;br /&gt;
If anything is visible you will get a list that looks something like this:&lt;br /&gt;
&lt;br /&gt;
 eth0      Scan completed :&lt;br /&gt;
           Cell 01 - Address: 00:16:B6:DE:77:58&lt;br /&gt;
                     ESSID:&amp;quot;StarvinMarvin&amp;quot;&lt;br /&gt;
                     Mode:Master&lt;br /&gt;
                     Frequency:2.437 GHz (Channel 6)&lt;br /&gt;
                     Quality=9/94  Signal level=-86 dBm  Noise level=-95 dBm&lt;br /&gt;
                     Encryption key:on&lt;br /&gt;
                     Extra:bcn_int=100&lt;br /&gt;
                     Extra:wpa_ie=dd180050f20101000050f20201000050f20201000050f2020000&lt;br /&gt;
           Cell 02 - Address: 00:21:29:AA:10:97&lt;br /&gt;
                     ESSID:&amp;quot;CandT Network&amp;quot;&lt;br /&gt;
                     Mode:Master&lt;br /&gt;
                     Frequency:2.437 GHz (Channel 6)&lt;br /&gt;
                     Quality=39/94  Signal level=-56 dBm  Noise level=-95 dBm&lt;br /&gt;
                     Encryption key:on&lt;br /&gt;
                     Extra:bcn_int=100&lt;br /&gt;
                     Extra:wpa_ie=dd1c0050f20101000050f20202000050f2040050f20201000050f2020000&lt;br /&gt;
                     Extra:rsn_ie=30180100000fac020200000fac04000fac020100000fac020000&lt;br /&gt;
           Cell 03 - Address: 00:14:95:1B:8E:B9&lt;br /&gt;
                     ESSID:&amp;quot;2WIRE852&amp;quot;&lt;br /&gt;
                     Mode:Master&lt;br /&gt;
                     Frequency:2.437 GHz (Channel 6)&lt;br /&gt;
                     Quality=5/94  Signal level=-90 dBm  Noise level=-95 dBm&lt;br /&gt;
                     Encryption key:on&lt;br /&gt;
                     Extra:bcn_int=100&lt;br /&gt;
           Cell 04 - Address: 00:E0:98:52:3D:78&lt;br /&gt;
                     ESSID:&amp;quot;smith&amp;quot;&lt;br /&gt;
                     Mode:Master&lt;br /&gt;
                     Frequency:2.437 GHz (Channel 6)&lt;br /&gt;
                     Quality=36/94  Signal level=-59 dBm  Noise level=-95 dBm&lt;br /&gt;
                     Encryption key:on&lt;br /&gt;
                     Extra:bcn_int=100&lt;br /&gt;
&lt;br /&gt;
If you want to connect to an unsecured network run:&lt;br /&gt;
  &lt;br /&gt;
  udhcpc  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== WPA ==&lt;br /&gt;
&lt;br /&gt;
[http://en.wikipedia.org/wiki/Wi-Fi_Protected_Access  WPA] is an encryption method for securing your wireless network.&lt;br /&gt;
&lt;br /&gt;
=== Using wpa_supplicant manually ===&lt;br /&gt;
&lt;br /&gt;
Create and edit a suitable [[GTA02_WLAN#Sample_wpa_supplicant.conf|/etc/wpa_supplicant/wpa_supplicant.conf]].&lt;br /&gt;
&lt;br /&gt;
Bring up your wireless connection: &lt;br /&gt;
&lt;br /&gt;
 root@om-gta02:~# ifup eth0&lt;br /&gt;
 root@om-gta02:~# wpa_supplicant -ieth0 -c/etc/wpa_supplicant/wpa_supplicant.conf -B&lt;br /&gt;
 root@om-gta02:~# udhcpc eth0&lt;br /&gt;
&lt;br /&gt;
=== Using WPA and /etc/network/interfaces ===&lt;br /&gt;
&lt;br /&gt;
Once you have a [[GTA02_WLAN#Sample_wpa_supplicant.conf|/etc/wpa_supplicant/wpa_supplicant.conf]] file, add a line under the eth0 entry in /etc/network/interfaces:&lt;br /&gt;
&lt;br /&gt;
 iface eth0 inet dhcp&lt;br /&gt;
    wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf&lt;br /&gt;
&lt;br /&gt;
Save your changes and run:&lt;br /&gt;
  # ifdown eth0 &amp;amp;&amp;amp; ifup eth0&lt;br /&gt;
&lt;br /&gt;
You'll get a lot of messages, like &amp;lt;tt&amp;gt;ioctl[SIOCSIWENCODEEXT]: Operation not supported&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;sed: unrecognized option `--quiet'&amp;lt;/tt&amp;gt;, they appear to be harmless. The &amp;quot;--quiet&amp;quot; error message can be avoided by replacing &amp;quot;sed --quiet&amp;quot; with &amp;quot;sed -n&amp;quot; in /etc/wpa_supplicant/*.sh&lt;br /&gt;
&lt;br /&gt;
== WEP ==&lt;br /&gt;
&lt;br /&gt;
[http://en.wikipedia.org/wiki/Wired_Equivalent_Privacy WEP] is an encryption method for securing your wireless network. WEP is generally considered to be weak, you should use WPA instead if possible.&lt;br /&gt;
&lt;br /&gt;
=== Using WEP and /etc/network/interfaces ===&lt;br /&gt;
  iface eth0 inet dhcp&lt;br /&gt;
    wireless-key my_wep_key&lt;br /&gt;
    wireless-essid my_essid&lt;br /&gt;
&lt;br /&gt;
 iface eth0 inet dhcp&lt;br /&gt;
    wpa-wep-key0 my_wep_key&lt;br /&gt;
    wpa-key-mgmt NONE&lt;br /&gt;
    wpa-ssid my_essid&lt;br /&gt;
&lt;br /&gt;
Save your changes and run:&lt;br /&gt;
  # ifdown eth0 &amp;amp;&amp;amp; ifup eth0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Wake up from wireless (wow)==&lt;br /&gt;
&lt;br /&gt;
Wi-Fi module constantly drain currents after module power up, for wi-fi SIP phone or some application need long standby time, will need wake up from wireless function for power saving. There is a sleep mode that Ar6k supported for wake up from wireless.&lt;br /&gt;
&lt;br /&gt;
 http://svn.openmoko.org/trunk/src/target/AR6kSDK.build_sw.18/host/tools/wmiconfig&lt;br /&gt;
&lt;br /&gt;
 export ATH_CROSS_COMPILE_TYPE=arm-angstrom-linux-gnueabi-&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
Debian package:&lt;br /&gt;
&lt;br /&gt;
 wget http://meshy.org/~ato/debian/pool/main/w/wmiconfig/wmiconfig_0.0.18-1_armel.deb&lt;br /&gt;
 dpkg -i wmiconfig_0.0.18-1_armel.deb&lt;br /&gt;
&lt;br /&gt;
Basically, it's achieved via wmiconfig tool to issue IOCTL if we want&lt;br /&gt;
ar6k wifi module to generate interrupt to host controller. The procedure&lt;br /&gt;
to enable wakeup-on-wireless(wow) is listed here:&lt;br /&gt;
&lt;br /&gt;
 1. wmiconfig --sethostmode asleep /* to tell ar6k what host's current is */&lt;br /&gt;
 2. wmiconfig --setwowmode enable /* enable wow function */&lt;br /&gt;
 3. wmiconfig --addpattern 0 1 33 01 ff /* add packet filter pattern, this is the ICMP filter pattern */&lt;br /&gt;
 4. apm -s&lt;br /&gt;
 5. ping IP_of_Neo&lt;br /&gt;
 6. The GPIO1 pin would be pulled up. The system would resume then.&lt;br /&gt;
 7. wmiconfig --sethostmode awake /* The firmware of ar6k will pull low the GPIO1 pin */&lt;br /&gt;
&lt;br /&gt;
--addwowpattern &amp;lt;list-id&amp;gt; &amp;lt;pattern-size&amp;gt; &amp;lt;pattern-offset&amp;gt; &amp;lt;pattern&amp;gt; &amp;lt;pattern-mask&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here are some addwowpattern commands:&lt;br /&gt;
&lt;br /&gt;
Protocol type=IP=0800&lt;br /&gt;
Protocol type in IP header=ICMP=01&lt;br /&gt;
&lt;br /&gt;
 - To filter for IP packets(offset 22)&lt;br /&gt;
 wmiconfig --addwowpattern 0 2 22 0800 ffff&lt;br /&gt;
 - To filter for ICMP packets (offset 33)&lt;br /&gt;
 wmiconfig --addwowpattern 0 1 33 01 ff&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== A very ugly /etc/init.d/wlan startscript ==&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 #&lt;br /&gt;
 # wlan	This shell script starts and stops wlan.&lt;br /&gt;
 #&lt;br /&gt;
 # processname: wlan&lt;br /&gt;
 &lt;br /&gt;
 # Source function library.&lt;br /&gt;
 #. /etc/rc.d/init.d/functions&lt;br /&gt;
 # &amp;quot;written&amp;quot; by HdR&lt;br /&gt;
 &lt;br /&gt;
 RETVAL=0&lt;br /&gt;
 prog=&amp;quot;wlan&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # test -f /etc/default/$prog &amp;amp;&amp;amp; . /etc/default/$prog&lt;br /&gt;
 &lt;br /&gt;
 start() {&lt;br /&gt;
 	echo -n &amp;quot;Starting $prog: &amp;quot;&lt;br /&gt;
 	ifconfig eth0 up&lt;br /&gt;
 	wpa_supplicant -ieth0 -c/etc/wpa_supplicant/wpa_supplicant.conf -B&lt;br /&gt;
 	sleep 10&lt;br /&gt;
 	udhcpc eth0&lt;br /&gt;
 	RETVAL=$?&lt;br /&gt;
 	return $RETVAL&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 stop() {&lt;br /&gt;
 	# Stop daemons.&lt;br /&gt;
 	echo -n &amp;quot;Shutting down $prog: &amp;quot;&lt;br /&gt;
         killall wpa_supplicant&lt;br /&gt;
 	ifconfig eth0 down&lt;br /&gt;
 #        killproc gpsd&lt;br /&gt;
 	RETVAL=$?&lt;br /&gt;
 	return $RETVAL&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 # See how we were called.&lt;br /&gt;
 case &amp;quot;$1&amp;quot; in&lt;br /&gt;
   start)&lt;br /&gt;
 	start&lt;br /&gt;
 	;;&lt;br /&gt;
   stop)&lt;br /&gt;
 	stop&lt;br /&gt;
 	;;&lt;br /&gt;
   restart|reload)&lt;br /&gt;
 	stop&lt;br /&gt;
 	start&lt;br /&gt;
 	RETVAL=$?&lt;br /&gt;
 	;;&lt;br /&gt;
   *)&lt;br /&gt;
 	echo &amp;quot;Usage: $0 {start|stop|restart}&amp;quot;&lt;br /&gt;
 	exit 1&lt;br /&gt;
 esac&lt;br /&gt;
 &lt;br /&gt;
 exit $RETVAL&lt;br /&gt;
&lt;br /&gt;
Note: Don't forget to make this script executable with &amp;quot;chmod +x &amp;lt;filename&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Route internet connection through Wifi rather than USB ==&lt;br /&gt;
&lt;br /&gt;
Wifi is faster than USB, so it is a good idea to tell the FreeRunner to connect through it. Put the following in /etc/network/interfaces under eth0:&lt;br /&gt;
&lt;br /&gt;
up route del default gw 192.168.0.200&lt;br /&gt;
&lt;br /&gt;
This will remove your computer as the default gateway and use the  wireless one when the interface is brought up. User nickd reports that sometimes it fails so he has had to put it in twice.&lt;br /&gt;
&lt;br /&gt;
== ssh into FR over WiFi ==&lt;br /&gt;
dropbear, the ssh server, is configured to listen on the USB interface only. Wireless interfaces like wlan or bluetooth are disabled for security reasons (empty root password).&lt;br /&gt;
&lt;br /&gt;
If you want to enable ssh over WiFi, change the /etc/default/dropbear from:&lt;br /&gt;
&lt;br /&gt;
  DROPBEAR_PORT=`ip addr list usb0 | awk 'BEGIN { FS=&amp;quot;[ /]+&amp;quot; } /inet / { print  $3 }'`:22&lt;br /&gt;
&lt;br /&gt;
(which actually only prepends the usb0 ip address before the :22)&lt;br /&gt;
&lt;br /&gt;
into:&lt;br /&gt;
&lt;br /&gt;
  DROPBEAR_PORT=22&lt;br /&gt;
&lt;br /&gt;
* Be careful with this config file since it can close the only door into your phone.&lt;br /&gt;
&lt;br /&gt;
* Set a root password!&lt;br /&gt;
&lt;br /&gt;
== Available Software ==&lt;br /&gt;
&lt;br /&gt;
Programs in development providing GUI interfaces to administer WiFi connections:&lt;br /&gt;
&lt;br /&gt;
* [[Lint-wifi]]&lt;br /&gt;
* [[Mofi]]&lt;br /&gt;
* [[Camp-Wifi]]&lt;br /&gt;
&lt;br /&gt;
== External links ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/ WiFi on Linux]&lt;br /&gt;
&lt;br /&gt;
[[Category:Neo FreeRunner Hardware]]&lt;br /&gt;
[[Category:Networking]]&lt;/div&gt;</summary>
		<author><name>Michaelshiloh</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Neo_FreeRunner_Wifi</id>
		<title>Neo FreeRunner Wifi</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Neo_FreeRunner_Wifi"/>
				<updated>2008-10-08T22:29:09Z</updated>
		
		<summary type="html">&lt;p&gt;Michaelshiloh: /* WPA */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|Neo FreeRunner Menu}}&lt;br /&gt;
&lt;br /&gt;
This page documents the [http://en.wikipedia.org/wiki/Wireless_networking wireless networking] solutions commonly known as [http://en.wikipedia.org/wiki/Wireless_LAN WLAN] or WiFi. &lt;br /&gt;
&lt;br /&gt;
There are other ways to enable wireless communications on the Neo, including [[Bluetooth]]. For Bluetooth solutions, see [[How to use bluetooth to transfer data between Neo and Desk-top]] and [[Manually using Bluetooth]].&lt;br /&gt;
&lt;br /&gt;
== Using the GUI on 2008.8 ==&lt;br /&gt;
&lt;br /&gt;
In the Settings application on Om 2008.8, there's a &amp;quot;WiFi&amp;quot; item. It should work fairly well in stable-updated 2008.8 (even with WPA2).&lt;br /&gt;
&lt;br /&gt;
If it says &amp;quot;WiFi unknown&amp;quot;, you can delete the /etc/volatives.cache file and reboot.  It should work after that.[http://docs.openmoko.org/trac/ticket/1734]  After connecting using the GUI, you may also need to run &amp;quot;udhcpc eth0&amp;quot; manually in the terminal to get DNS entries added to your resolv.conf.  You may also need to run &amp;quot;ifdown usb0&amp;quot; to remove the routing issue caused by having both interfaces up at the same time.  Some users have reported that 802.11g modulation needs to be enabled on APs to allow the FreeRunner to connect (The hardware is suppose to support 802.11b/g).&lt;br /&gt;
&lt;br /&gt;
Otherwise there's also [[lint-wifi]].  Refer to the section below, [[#Available Software|&amp;quot;Available Software&amp;quot;]] to find out what else might be available.&lt;br /&gt;
&lt;br /&gt;
=== Known Issues with GUI ===&lt;br /&gt;
&lt;br /&gt;
The GUI seems to have some issues that prevent it from working in all cases. &lt;br /&gt;
&lt;br /&gt;
If a Wi-Fi connection can not be made with the GUI, open a shell and use iwconfig manually.&lt;br /&gt;
&lt;br /&gt;
Note that for WEP our iwconfig requires a more specific format than generic iwconfig.&lt;br /&gt;
&lt;br /&gt;
The canonical way of running iwconfig for WEP would be something like this:&lt;br /&gt;
&lt;br /&gt;
# iwconfig eth0 key A4BEB3B8EC essid xyz&lt;br /&gt;
&lt;br /&gt;
Two things are important here:&lt;br /&gt;
&lt;br /&gt;
* the key must be in HEX. iwconfig will not do anything useful if the key is given as a string.   [http://www.powerdog.com/wepkey.cgi Here] is a handy ASCII string to HEX converter.&lt;br /&gt;
&lt;br /&gt;
* the ESSID must follow the key.&lt;br /&gt;
&lt;br /&gt;
If an incorrect key was set, please stop all activity on the interface for at least two minutes (i.e., killall udhcpc and ifconfig eth0 down), then issue the correct iwconfig command and retry.&lt;br /&gt;
&lt;br /&gt;
== How can I tell what Access Points (APs) are visible to me? ==&lt;br /&gt;
&lt;br /&gt;
You can connect to wireless networks through wireless [http://en.wikipedia.org/wiki/Access_point| access points]. If you want to know the names of all the access points that are currently visible to you, you can perform a scan with this command:&lt;br /&gt;
&lt;br /&gt;
 root@om-gta02:~# '''iwlist eth0 scan'''&lt;br /&gt;
&lt;br /&gt;
If anything is visible you will get a list that looks something like this:&lt;br /&gt;
&lt;br /&gt;
 eth0      Scan completed :&lt;br /&gt;
           Cell 01 - Address: 00:16:B6:DE:77:58&lt;br /&gt;
                     ESSID:&amp;quot;StarvinMarvin&amp;quot;&lt;br /&gt;
                     Mode:Master&lt;br /&gt;
                     Frequency:2.437 GHz (Channel 6)&lt;br /&gt;
                     Quality=9/94  Signal level=-86 dBm  Noise level=-95 dBm&lt;br /&gt;
                     Encryption key:on&lt;br /&gt;
                     Extra:bcn_int=100&lt;br /&gt;
                     Extra:wpa_ie=dd180050f20101000050f20201000050f20201000050f2020000&lt;br /&gt;
           Cell 02 - Address: 00:21:29:AA:10:97&lt;br /&gt;
                     ESSID:&amp;quot;CandT Network&amp;quot;&lt;br /&gt;
                     Mode:Master&lt;br /&gt;
                     Frequency:2.437 GHz (Channel 6)&lt;br /&gt;
                     Quality=39/94  Signal level=-56 dBm  Noise level=-95 dBm&lt;br /&gt;
                     Encryption key:on&lt;br /&gt;
                     Extra:bcn_int=100&lt;br /&gt;
                     Extra:wpa_ie=dd1c0050f20101000050f20202000050f2040050f20201000050f2020000&lt;br /&gt;
                     Extra:rsn_ie=30180100000fac020200000fac04000fac020100000fac020000&lt;br /&gt;
           Cell 03 - Address: 00:14:95:1B:8E:B9&lt;br /&gt;
                     ESSID:&amp;quot;2WIRE852&amp;quot;&lt;br /&gt;
                     Mode:Master&lt;br /&gt;
                     Frequency:2.437 GHz (Channel 6)&lt;br /&gt;
                     Quality=5/94  Signal level=-90 dBm  Noise level=-95 dBm&lt;br /&gt;
                     Encryption key:on&lt;br /&gt;
                     Extra:bcn_int=100&lt;br /&gt;
           Cell 04 - Address: 00:E0:98:52:3D:78&lt;br /&gt;
                     ESSID:&amp;quot;smith&amp;quot;&lt;br /&gt;
                     Mode:Master&lt;br /&gt;
                     Frequency:2.437 GHz (Channel 6)&lt;br /&gt;
                     Quality=36/94  Signal level=-59 dBm  Noise level=-95 dBm&lt;br /&gt;
                     Encryption key:on&lt;br /&gt;
                     Extra:bcn_int=100&lt;br /&gt;
&lt;br /&gt;
If you want to connect to an unsecured network run:&lt;br /&gt;
  &lt;br /&gt;
  udhcpc  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== WPA ==&lt;br /&gt;
&lt;br /&gt;
[http://en.wikipedia.org/wiki/Wi-Fi_Protected_Access  WPA] is an encryption method for securing your wireless network.&lt;br /&gt;
&lt;br /&gt;
=== Using wpa_supplicant manually ===&lt;br /&gt;
&lt;br /&gt;
Create and edit a suitable [[GTA02_WLAN#Sample_wpa_supplicant.conf|/etc/wpa_supplicant/wpa_supplicant.conf]].&lt;br /&gt;
&lt;br /&gt;
Bring up your wireless connection: &lt;br /&gt;
&lt;br /&gt;
 root@om-gta02:~# ifup eth0&lt;br /&gt;
 root@om-gta02:~# wpa_supplicant -ieth0 -c/etc/wpa_supplicant/wpa_supplicant.conf -B&lt;br /&gt;
 root@om-gta02:~# udhcpc eth0&lt;br /&gt;
&lt;br /&gt;
=== Using WPA and /etc/network/interfaces ===&lt;br /&gt;
&lt;br /&gt;
Once you have a [[GTA02_WLAN#Sample_wpa_supplicant.conf|/etc/wpa_supplicant/wpa_supplicant.conf]] file, add a line under the eth0 entry in /etc/network/interfaces:&lt;br /&gt;
&lt;br /&gt;
 iface eth0 inet dhcp&lt;br /&gt;
    wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf&lt;br /&gt;
&lt;br /&gt;
Save your changes and run:&lt;br /&gt;
  # ifdown eth0 &amp;amp;&amp;amp; ifup eth0&lt;br /&gt;
&lt;br /&gt;
You'll get a lot of messages, like &amp;lt;tt&amp;gt;ioctl[SIOCSIWENCODEEXT]: Operation not supported&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;sed: unrecognized option `--quiet'&amp;lt;/tt&amp;gt;, they appear to be harmless. The &amp;quot;--quiet&amp;quot; error message can be avoided by replacing &amp;quot;sed --quiet&amp;quot; with &amp;quot;sed -n&amp;quot; in /etc/wpa_supplicant/*.sh&lt;br /&gt;
&lt;br /&gt;
== WEP ==&lt;br /&gt;
&lt;br /&gt;
[http://en.wikipedia.org/wiki/Wired_Equivalent_Privacy WEP] is an encryption method for securing your wireless network. WEP is generally considered to be weak, you should use WPA instead if possible.&lt;br /&gt;
&lt;br /&gt;
=== Using WEP and /etc/network/interfaces ===&lt;br /&gt;
  iface eth0 inet dhcp&lt;br /&gt;
    wireless-key my_wep_key&lt;br /&gt;
    wireless-essid my_essid&lt;br /&gt;
&lt;br /&gt;
 iface eth0 inet dhcp&lt;br /&gt;
    wpa-wep-key0 my_wep_key&lt;br /&gt;
    wpa-key-mgmt NONE&lt;br /&gt;
    wpa-ssid my_essid&lt;br /&gt;
&lt;br /&gt;
Save your changes and run:&lt;br /&gt;
  # ifdown eth0 &amp;amp;&amp;amp; ifup eth0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Wake up from wireless (wow)==&lt;br /&gt;
&lt;br /&gt;
Wi-Fi module constantly drain currents after module power up, for wi-fi SIP phone or some application need long standby time, will need wake up from wireless function for power saving. There is a sleep mode that Ar6k supported for wake up from wireless.&lt;br /&gt;
&lt;br /&gt;
 http://svn.openmoko.org/trunk/src/target/AR6kSDK.build_sw.18/host/tools/wmiconfig&lt;br /&gt;
&lt;br /&gt;
 export ATH_CROSS_COMPILE_TYPE=arm-angstrom-linux-gnueabi-&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
Debian package:&lt;br /&gt;
&lt;br /&gt;
 wget http://meshy.org/~ato/debian/pool/main/w/wmiconfig/wmiconfig_0.0.18-1_armel.deb&lt;br /&gt;
 dpkg -i wmiconfig_0.0.18-1_armel.deb&lt;br /&gt;
&lt;br /&gt;
Basically, it's achieved via wmiconfig tool to issue IOCTL if we want&lt;br /&gt;
ar6k wifi module to generate interrupt to host controller. The procedure&lt;br /&gt;
to enable wakeup-on-wireless(wow) is listed here:&lt;br /&gt;
&lt;br /&gt;
 1. wmiconfig --sethostmode asleep /* to tell ar6k what host's current is */&lt;br /&gt;
 2. wmiconfig --setwowmode enable /* enable wow function */&lt;br /&gt;
 3. wmiconfig --addpattern 0 1 33 01 ff /* add packet filter pattern, this is the ICMP filter pattern */&lt;br /&gt;
 4. apm -s&lt;br /&gt;
 5. ping IP_of_Neo&lt;br /&gt;
 6. The GPIO1 pin would be pulled up. The system would resume then.&lt;br /&gt;
 7. wmiconfig --sethostmode awake /* The firmware of ar6k will pull low the GPIO1 pin */&lt;br /&gt;
&lt;br /&gt;
--addwowpattern &amp;lt;list-id&amp;gt; &amp;lt;pattern-size&amp;gt; &amp;lt;pattern-offset&amp;gt; &amp;lt;pattern&amp;gt; &amp;lt;pattern-mask&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here are some addwowpattern commands:&lt;br /&gt;
&lt;br /&gt;
Protocol type=IP=0800&lt;br /&gt;
Protocol type in IP header=ICMP=01&lt;br /&gt;
&lt;br /&gt;
 - To filter for IP packets(offset 22)&lt;br /&gt;
 wmiconfig --addwowpattern 0 2 22 0800 ffff&lt;br /&gt;
 - To filter for ICMP packets (offset 33)&lt;br /&gt;
 wmiconfig --addwowpattern 0 1 33 01 ff&lt;br /&gt;
&lt;br /&gt;
== Sample wpa_supplicant.conf ==&lt;br /&gt;
&lt;br /&gt;
 ctrl_interface=/var/run/wpa_supplicant&lt;br /&gt;
 ctrl_interface_group=0&lt;br /&gt;
 eapol_version=1&lt;br /&gt;
 ap_scan=1&lt;br /&gt;
 fast_reauth=1 &lt;br /&gt;
 # WPA2:&lt;br /&gt;
 network={&lt;br /&gt;
        ssid=&amp;quot;your ssid&amp;quot;&lt;br /&gt;
        scan_ssid=1&lt;br /&gt;
        proto=RSN&lt;br /&gt;
        key_mgmt=WPA-PSK&lt;br /&gt;
        pairwise=CCMP TKIP&lt;br /&gt;
        group=TKIP CCMP&lt;br /&gt;
        psk=&amp;quot;secret key&amp;quot;&lt;br /&gt;
        priority=50&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 # WPA:&lt;br /&gt;
 network={&lt;br /&gt;
       ssid=&amp;quot;your_ssid&amp;quot;&lt;br /&gt;
       proto=WPA&lt;br /&gt;
       key_mgmt=WPA-PSK&lt;br /&gt;
       pairwise=TKIP&lt;br /&gt;
       group=TKIP&lt;br /&gt;
       scan_ssid=1&lt;br /&gt;
       psk=&amp;quot;secret key&amp;quot;&lt;br /&gt;
       priority=10&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 # WEP:&lt;br /&gt;
 network={&lt;br /&gt;
      ssid=&amp;quot;your_ssid&amp;quot;&lt;br /&gt;
      scan_ssid=1&lt;br /&gt;
      key_mgmt=NONE&lt;br /&gt;
      wep_tx_keyidx=0&lt;br /&gt;
      wep_key0=your_hex_key&lt;br /&gt;
      priority=8&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 # Open:&lt;br /&gt;
 network={&lt;br /&gt;
      ssid=&amp;quot;your ssid&amp;quot;&lt;br /&gt;
      key_mgmt=NONE&lt;br /&gt;
      priority=5&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
======wpa_supplicant.conf explained======&lt;br /&gt;
The highest priority is tried first then falls back to the next highest number.&lt;br /&gt;
&lt;br /&gt;
priority=100  1st  &amp;lt;br&amp;gt;&lt;br /&gt;
then&amp;lt;br&amp;gt;&lt;br /&gt;
priority=99  &amp;lt;br&amp;gt; &lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
&lt;br /&gt;
# Simple case: WPA-PSK, PSK as an ASCII passphrase, allow all valid ciphers&lt;br /&gt;
network={&lt;br /&gt;
	ssid=&amp;quot;AP_ESSID&amp;quot;&lt;br /&gt;
	psk=&amp;quot;presharedkey&amp;quot;&lt;br /&gt;
	priority=5&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#try open AP regardless of its SSID.&lt;br /&gt;
# change root password before you go roaming around it could prove dangerous&lt;br /&gt;
network={&lt;br /&gt;
	key_mgmt=NONE&lt;br /&gt;
priority=1  #try any open AP last&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A more in depth explanation can be found here:&amp;lt;br&amp;gt; &lt;br /&gt;
http://hostap.epitest.fi/gitweb/gitweb.cgi?p=hostap.git;a=blob_plain;f=wpa_supplicant/wpa_supplicant.conf&lt;br /&gt;
&lt;br /&gt;
== A very ugly /etc/init.d/wlan startscript ==&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 #&lt;br /&gt;
 # wlan	This shell script starts and stops wlan.&lt;br /&gt;
 #&lt;br /&gt;
 # processname: wlan&lt;br /&gt;
 &lt;br /&gt;
 # Source function library.&lt;br /&gt;
 #. /etc/rc.d/init.d/functions&lt;br /&gt;
 # &amp;quot;written&amp;quot; by HdR&lt;br /&gt;
 &lt;br /&gt;
 RETVAL=0&lt;br /&gt;
 prog=&amp;quot;wlan&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # test -f /etc/default/$prog &amp;amp;&amp;amp; . /etc/default/$prog&lt;br /&gt;
 &lt;br /&gt;
 start() {&lt;br /&gt;
 	echo -n &amp;quot;Starting $prog: &amp;quot;&lt;br /&gt;
 	ifconfig eth0 up&lt;br /&gt;
 	wpa_supplicant -ieth0 -c/etc/wpa_supplicant/wpa_supplicant.conf -B&lt;br /&gt;
 	sleep 10&lt;br /&gt;
 	udhcpc eth0&lt;br /&gt;
 	RETVAL=$?&lt;br /&gt;
 	return $RETVAL&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 stop() {&lt;br /&gt;
 	# Stop daemons.&lt;br /&gt;
 	echo -n &amp;quot;Shutting down $prog: &amp;quot;&lt;br /&gt;
         killall wpa_supplicant&lt;br /&gt;
 	ifconfig eth0 down&lt;br /&gt;
 #        killproc gpsd&lt;br /&gt;
 	RETVAL=$?&lt;br /&gt;
 	return $RETVAL&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 # See how we were called.&lt;br /&gt;
 case &amp;quot;$1&amp;quot; in&lt;br /&gt;
   start)&lt;br /&gt;
 	start&lt;br /&gt;
 	;;&lt;br /&gt;
   stop)&lt;br /&gt;
 	stop&lt;br /&gt;
 	;;&lt;br /&gt;
   restart|reload)&lt;br /&gt;
 	stop&lt;br /&gt;
 	start&lt;br /&gt;
 	RETVAL=$?&lt;br /&gt;
 	;;&lt;br /&gt;
   *)&lt;br /&gt;
 	echo &amp;quot;Usage: $0 {start|stop|restart}&amp;quot;&lt;br /&gt;
 	exit 1&lt;br /&gt;
 esac&lt;br /&gt;
 &lt;br /&gt;
 exit $RETVAL&lt;br /&gt;
&lt;br /&gt;
Note: Don't forget to make this script executable with &amp;quot;chmod +x &amp;lt;filename&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Route internet connection through Wifi rather than USB ==&lt;br /&gt;
&lt;br /&gt;
Wifi is faster than USB, so it is a good idea to tell the FreeRunner to connect through it. Put the following in /etc/network/interfaces under eth0:&lt;br /&gt;
&lt;br /&gt;
up route del default gw 192.168.0.200&lt;br /&gt;
&lt;br /&gt;
This will remove your computer as the default gateway and use the  wireless one when the interface is brought up. User nickd reports that sometimes it fails so he has had to put it in twice.&lt;br /&gt;
&lt;br /&gt;
== ssh into FR over WiFi ==&lt;br /&gt;
dropbear, the ssh server, is configured to listen on the USB interface only. Wireless interfaces like wlan or bluetooth are disabled for security reasons (empty root password).&lt;br /&gt;
&lt;br /&gt;
If you want to enable ssh over WiFi, change the /etc/default/dropbear from:&lt;br /&gt;
&lt;br /&gt;
  DROPBEAR_PORT=`ip addr list usb0 | awk 'BEGIN { FS=&amp;quot;[ /]+&amp;quot; } /inet / { print  $3 }'`:22&lt;br /&gt;
&lt;br /&gt;
(which actually only prepends the usb0 ip address before the :22)&lt;br /&gt;
&lt;br /&gt;
into:&lt;br /&gt;
&lt;br /&gt;
  DROPBEAR_PORT=22&lt;br /&gt;
&lt;br /&gt;
* Be careful with this config file since it can close the only door into your phone.&lt;br /&gt;
&lt;br /&gt;
* Set a root password!&lt;br /&gt;
&lt;br /&gt;
== Available Software ==&lt;br /&gt;
&lt;br /&gt;
Programs in development providing GUI interfaces to administer WiFi connections:&lt;br /&gt;
&lt;br /&gt;
* [[Lint-wifi]]&lt;br /&gt;
* [[Mofi]]&lt;br /&gt;
* [[Camp-Wifi]]&lt;br /&gt;
&lt;br /&gt;
== External links ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/ WiFi on Linux]&lt;br /&gt;
&lt;br /&gt;
[[Category:Neo FreeRunner Hardware]]&lt;br /&gt;
[[Category:Networking]]&lt;/div&gt;</summary>
		<author><name>Michaelshiloh</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Neo_FreeRunner_Wifi</id>
		<title>Neo FreeRunner Wifi</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Neo_FreeRunner_Wifi"/>
				<updated>2008-10-08T22:26:24Z</updated>
		
		<summary type="html">&lt;p&gt;Michaelshiloh: /* Using wpa_supplicant manually */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|Neo FreeRunner Menu}}&lt;br /&gt;
&lt;br /&gt;
This page documents the [http://en.wikipedia.org/wiki/Wireless_networking wireless networking] solutions commonly known as [http://en.wikipedia.org/wiki/Wireless_LAN WLAN] or WiFi. &lt;br /&gt;
&lt;br /&gt;
There are other ways to enable wireless communications on the Neo, including [[Bluetooth]]. For Bluetooth solutions, see [[How to use bluetooth to transfer data between Neo and Desk-top]] and [[Manually using Bluetooth]].&lt;br /&gt;
&lt;br /&gt;
== Using the GUI on 2008.8 ==&lt;br /&gt;
&lt;br /&gt;
In the Settings application on Om 2008.8, there's a &amp;quot;WiFi&amp;quot; item. It should work fairly well in stable-updated 2008.8 (even with WPA2).&lt;br /&gt;
&lt;br /&gt;
If it says &amp;quot;WiFi unknown&amp;quot;, you can delete the /etc/volatives.cache file and reboot.  It should work after that.[http://docs.openmoko.org/trac/ticket/1734]  After connecting using the GUI, you may also need to run &amp;quot;udhcpc eth0&amp;quot; manually in the terminal to get DNS entries added to your resolv.conf.  You may also need to run &amp;quot;ifdown usb0&amp;quot; to remove the routing issue caused by having both interfaces up at the same time.  Some users have reported that 802.11g modulation needs to be enabled on APs to allow the FreeRunner to connect (The hardware is suppose to support 802.11b/g).&lt;br /&gt;
&lt;br /&gt;
Otherwise there's also [[lint-wifi]].  Refer to the section below, [[#Available Software|&amp;quot;Available Software&amp;quot;]] to find out what else might be available.&lt;br /&gt;
&lt;br /&gt;
=== Known Issues with GUI ===&lt;br /&gt;
&lt;br /&gt;
The GUI seems to have some issues that prevent it from working in all cases. &lt;br /&gt;
&lt;br /&gt;
If a Wi-Fi connection can not be made with the GUI, open a shell and use iwconfig manually.&lt;br /&gt;
&lt;br /&gt;
Note that for WEP our iwconfig requires a more specific format than generic iwconfig.&lt;br /&gt;
&lt;br /&gt;
The canonical way of running iwconfig for WEP would be something like this:&lt;br /&gt;
&lt;br /&gt;
# iwconfig eth0 key A4BEB3B8EC essid xyz&lt;br /&gt;
&lt;br /&gt;
Two things are important here:&lt;br /&gt;
&lt;br /&gt;
* the key must be in HEX. iwconfig will not do anything useful if the key is given as a string.   [http://www.powerdog.com/wepkey.cgi Here] is a handy ASCII string to HEX converter.&lt;br /&gt;
&lt;br /&gt;
* the ESSID must follow the key.&lt;br /&gt;
&lt;br /&gt;
If an incorrect key was set, please stop all activity on the interface for at least two minutes (i.e., killall udhcpc and ifconfig eth0 down), then issue the correct iwconfig command and retry.&lt;br /&gt;
&lt;br /&gt;
== How can I tell what Access Points (APs) are visible to me? ==&lt;br /&gt;
&lt;br /&gt;
You can connect to wireless networks through wireless [http://en.wikipedia.org/wiki/Access_point| access points]. If you want to know the names of all the access points that are currently visible to you, you can perform a scan with this command:&lt;br /&gt;
&lt;br /&gt;
 root@om-gta02:~# '''iwlist eth0 scan'''&lt;br /&gt;
&lt;br /&gt;
If anything is visible you will get a list that looks something like this:&lt;br /&gt;
&lt;br /&gt;
 eth0      Scan completed :&lt;br /&gt;
           Cell 01 - Address: 00:16:B6:DE:77:58&lt;br /&gt;
                     ESSID:&amp;quot;StarvinMarvin&amp;quot;&lt;br /&gt;
                     Mode:Master&lt;br /&gt;
                     Frequency:2.437 GHz (Channel 6)&lt;br /&gt;
                     Quality=9/94  Signal level=-86 dBm  Noise level=-95 dBm&lt;br /&gt;
                     Encryption key:on&lt;br /&gt;
                     Extra:bcn_int=100&lt;br /&gt;
                     Extra:wpa_ie=dd180050f20101000050f20201000050f20201000050f2020000&lt;br /&gt;
           Cell 02 - Address: 00:21:29:AA:10:97&lt;br /&gt;
                     ESSID:&amp;quot;CandT Network&amp;quot;&lt;br /&gt;
                     Mode:Master&lt;br /&gt;
                     Frequency:2.437 GHz (Channel 6)&lt;br /&gt;
                     Quality=39/94  Signal level=-56 dBm  Noise level=-95 dBm&lt;br /&gt;
                     Encryption key:on&lt;br /&gt;
                     Extra:bcn_int=100&lt;br /&gt;
                     Extra:wpa_ie=dd1c0050f20101000050f20202000050f2040050f20201000050f2020000&lt;br /&gt;
                     Extra:rsn_ie=30180100000fac020200000fac04000fac020100000fac020000&lt;br /&gt;
           Cell 03 - Address: 00:14:95:1B:8E:B9&lt;br /&gt;
                     ESSID:&amp;quot;2WIRE852&amp;quot;&lt;br /&gt;
                     Mode:Master&lt;br /&gt;
                     Frequency:2.437 GHz (Channel 6)&lt;br /&gt;
                     Quality=5/94  Signal level=-90 dBm  Noise level=-95 dBm&lt;br /&gt;
                     Encryption key:on&lt;br /&gt;
                     Extra:bcn_int=100&lt;br /&gt;
           Cell 04 - Address: 00:E0:98:52:3D:78&lt;br /&gt;
                     ESSID:&amp;quot;smith&amp;quot;&lt;br /&gt;
                     Mode:Master&lt;br /&gt;
                     Frequency:2.437 GHz (Channel 6)&lt;br /&gt;
                     Quality=36/94  Signal level=-59 dBm  Noise level=-95 dBm&lt;br /&gt;
                     Encryption key:on&lt;br /&gt;
                     Extra:bcn_int=100&lt;br /&gt;
&lt;br /&gt;
If you want to connect to an unsecured network run:&lt;br /&gt;
  &lt;br /&gt;
  udhcpc  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== WPA ==&lt;br /&gt;
&lt;br /&gt;
=== Using WPA and /etc/network/interfaces ===&lt;br /&gt;
&lt;br /&gt;
[http://en.wikipedia.org/wiki/Wi-Fi_Protected_Access  WPA] is a encryption method for securing your wireless network.&lt;br /&gt;
Once you have a [[GTA02_WLAN#Sample_wpa_supplicant.conf|/etc/wpa_supplicant/wpa_supplicant.conf]] file, add a line under the eth0 entry in /etc/network/interfaces:&lt;br /&gt;
 iface eth0 inet dhcp&lt;br /&gt;
    wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf&lt;br /&gt;
&lt;br /&gt;
Save your changes and run:&lt;br /&gt;
  # ifdown eth0 &amp;amp;&amp;amp; ifup eth0&lt;br /&gt;
&lt;br /&gt;
You'll get a lot of messages, like &amp;lt;tt&amp;gt;ioctl[SIOCSIWENCODEEXT]: Operation not supported&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;sed: unrecognized option `--quiet'&amp;lt;/tt&amp;gt;, they appear to be harmless. The &amp;quot;--quiet&amp;quot; error message can be avoided by replacing &amp;quot;sed --quiet&amp;quot; with &amp;quot;sed -n&amp;quot; in /etc/wpa_supplicant/*.sh&lt;br /&gt;
&lt;br /&gt;
== WEP ==&lt;br /&gt;
&lt;br /&gt;
[http://en.wikipedia.org/wiki/Wired_Equivalent_Privacy WEP] is an encryption method for securing your wireless network. WEP is generally considered to be weak, you should use WPA instead if possible.&lt;br /&gt;
&lt;br /&gt;
=== Using WEP and /etc/network/interfaces ===&lt;br /&gt;
  iface eth0 inet dhcp&lt;br /&gt;
    wireless-key my_wep_key&lt;br /&gt;
    wireless-essid my_essid&lt;br /&gt;
&lt;br /&gt;
 iface eth0 inet dhcp&lt;br /&gt;
    wpa-wep-key0 my_wep_key&lt;br /&gt;
    wpa-key-mgmt NONE&lt;br /&gt;
    wpa-ssid my_essid&lt;br /&gt;
&lt;br /&gt;
Save your changes and run:&lt;br /&gt;
  # ifdown eth0 &amp;amp;&amp;amp; ifup eth0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Wake up from wireless (wow)==&lt;br /&gt;
&lt;br /&gt;
Wi-Fi module constantly drain currents after module power up, for wi-fi SIP phone or some application need long standby time, will need wake up from wireless function for power saving. There is a sleep mode that Ar6k supported for wake up from wireless.&lt;br /&gt;
&lt;br /&gt;
 http://svn.openmoko.org/trunk/src/target/AR6kSDK.build_sw.18/host/tools/wmiconfig&lt;br /&gt;
&lt;br /&gt;
 export ATH_CROSS_COMPILE_TYPE=arm-angstrom-linux-gnueabi-&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
Debian package:&lt;br /&gt;
&lt;br /&gt;
 wget http://meshy.org/~ato/debian/pool/main/w/wmiconfig/wmiconfig_0.0.18-1_armel.deb&lt;br /&gt;
 dpkg -i wmiconfig_0.0.18-1_armel.deb&lt;br /&gt;
&lt;br /&gt;
Basically, it's achieved via wmiconfig tool to issue IOCTL if we want&lt;br /&gt;
ar6k wifi module to generate interrupt to host controller. The procedure&lt;br /&gt;
to enable wakeup-on-wireless(wow) is listed here:&lt;br /&gt;
&lt;br /&gt;
 1. wmiconfig --sethostmode asleep /* to tell ar6k what host's current is */&lt;br /&gt;
 2. wmiconfig --setwowmode enable /* enable wow function */&lt;br /&gt;
 3. wmiconfig --addpattern 0 1 33 01 ff /* add packet filter pattern, this is the ICMP filter pattern */&lt;br /&gt;
 4. apm -s&lt;br /&gt;
 5. ping IP_of_Neo&lt;br /&gt;
 6. The GPIO1 pin would be pulled up. The system would resume then.&lt;br /&gt;
 7. wmiconfig --sethostmode awake /* The firmware of ar6k will pull low the GPIO1 pin */&lt;br /&gt;
&lt;br /&gt;
--addwowpattern &amp;lt;list-id&amp;gt; &amp;lt;pattern-size&amp;gt; &amp;lt;pattern-offset&amp;gt; &amp;lt;pattern&amp;gt; &amp;lt;pattern-mask&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here are some addwowpattern commands:&lt;br /&gt;
&lt;br /&gt;
Protocol type=IP=0800&lt;br /&gt;
Protocol type in IP header=ICMP=01&lt;br /&gt;
&lt;br /&gt;
 - To filter for IP packets(offset 22)&lt;br /&gt;
 wmiconfig --addwowpattern 0 2 22 0800 ffff&lt;br /&gt;
 - To filter for ICMP packets (offset 33)&lt;br /&gt;
 wmiconfig --addwowpattern 0 1 33 01 ff&lt;br /&gt;
&lt;br /&gt;
== Sample wpa_supplicant.conf ==&lt;br /&gt;
&lt;br /&gt;
 ctrl_interface=/var/run/wpa_supplicant&lt;br /&gt;
 ctrl_interface_group=0&lt;br /&gt;
 eapol_version=1&lt;br /&gt;
 ap_scan=1&lt;br /&gt;
 fast_reauth=1 &lt;br /&gt;
 # WPA2:&lt;br /&gt;
 network={&lt;br /&gt;
        ssid=&amp;quot;your ssid&amp;quot;&lt;br /&gt;
        scan_ssid=1&lt;br /&gt;
        proto=RSN&lt;br /&gt;
        key_mgmt=WPA-PSK&lt;br /&gt;
        pairwise=CCMP TKIP&lt;br /&gt;
        group=TKIP CCMP&lt;br /&gt;
        psk=&amp;quot;secret key&amp;quot;&lt;br /&gt;
        priority=50&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 # WPA:&lt;br /&gt;
 network={&lt;br /&gt;
       ssid=&amp;quot;your_ssid&amp;quot;&lt;br /&gt;
       proto=WPA&lt;br /&gt;
       key_mgmt=WPA-PSK&lt;br /&gt;
       pairwise=TKIP&lt;br /&gt;
       group=TKIP&lt;br /&gt;
       scan_ssid=1&lt;br /&gt;
       psk=&amp;quot;secret key&amp;quot;&lt;br /&gt;
       priority=10&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 # WEP:&lt;br /&gt;
 network={&lt;br /&gt;
      ssid=&amp;quot;your_ssid&amp;quot;&lt;br /&gt;
      scan_ssid=1&lt;br /&gt;
      key_mgmt=NONE&lt;br /&gt;
      wep_tx_keyidx=0&lt;br /&gt;
      wep_key0=your_hex_key&lt;br /&gt;
      priority=8&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 # Open:&lt;br /&gt;
 network={&lt;br /&gt;
      ssid=&amp;quot;your ssid&amp;quot;&lt;br /&gt;
      key_mgmt=NONE&lt;br /&gt;
      priority=5&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
======wpa_supplicant.conf explained======&lt;br /&gt;
The highest priority is tried first then falls back to the next highest number.&lt;br /&gt;
&lt;br /&gt;
priority=100  1st  &amp;lt;br&amp;gt;&lt;br /&gt;
then&amp;lt;br&amp;gt;&lt;br /&gt;
priority=99  &amp;lt;br&amp;gt; &lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
&lt;br /&gt;
# Simple case: WPA-PSK, PSK as an ASCII passphrase, allow all valid ciphers&lt;br /&gt;
network={&lt;br /&gt;
	ssid=&amp;quot;AP_ESSID&amp;quot;&lt;br /&gt;
	psk=&amp;quot;presharedkey&amp;quot;&lt;br /&gt;
	priority=5&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#try open AP regardless of its SSID.&lt;br /&gt;
# change root password before you go roaming around it could prove dangerous&lt;br /&gt;
network={&lt;br /&gt;
	key_mgmt=NONE&lt;br /&gt;
priority=1  #try any open AP last&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A more in depth explanation can be found here:&amp;lt;br&amp;gt; &lt;br /&gt;
http://hostap.epitest.fi/gitweb/gitweb.cgi?p=hostap.git;a=blob_plain;f=wpa_supplicant/wpa_supplicant.conf&lt;br /&gt;
&lt;br /&gt;
== A very ugly /etc/init.d/wlan startscript ==&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 #&lt;br /&gt;
 # wlan	This shell script starts and stops wlan.&lt;br /&gt;
 #&lt;br /&gt;
 # processname: wlan&lt;br /&gt;
 &lt;br /&gt;
 # Source function library.&lt;br /&gt;
 #. /etc/rc.d/init.d/functions&lt;br /&gt;
 # &amp;quot;written&amp;quot; by HdR&lt;br /&gt;
 &lt;br /&gt;
 RETVAL=0&lt;br /&gt;
 prog=&amp;quot;wlan&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # test -f /etc/default/$prog &amp;amp;&amp;amp; . /etc/default/$prog&lt;br /&gt;
 &lt;br /&gt;
 start() {&lt;br /&gt;
 	echo -n &amp;quot;Starting $prog: &amp;quot;&lt;br /&gt;
 	ifconfig eth0 up&lt;br /&gt;
 	wpa_supplicant -ieth0 -c/etc/wpa_supplicant/wpa_supplicant.conf -B&lt;br /&gt;
 	sleep 10&lt;br /&gt;
 	udhcpc eth0&lt;br /&gt;
 	RETVAL=$?&lt;br /&gt;
 	return $RETVAL&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 stop() {&lt;br /&gt;
 	# Stop daemons.&lt;br /&gt;
 	echo -n &amp;quot;Shutting down $prog: &amp;quot;&lt;br /&gt;
         killall wpa_supplicant&lt;br /&gt;
 	ifconfig eth0 down&lt;br /&gt;
 #        killproc gpsd&lt;br /&gt;
 	RETVAL=$?&lt;br /&gt;
 	return $RETVAL&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 # See how we were called.&lt;br /&gt;
 case &amp;quot;$1&amp;quot; in&lt;br /&gt;
   start)&lt;br /&gt;
 	start&lt;br /&gt;
 	;;&lt;br /&gt;
   stop)&lt;br /&gt;
 	stop&lt;br /&gt;
 	;;&lt;br /&gt;
   restart|reload)&lt;br /&gt;
 	stop&lt;br /&gt;
 	start&lt;br /&gt;
 	RETVAL=$?&lt;br /&gt;
 	;;&lt;br /&gt;
   *)&lt;br /&gt;
 	echo &amp;quot;Usage: $0 {start|stop|restart}&amp;quot;&lt;br /&gt;
 	exit 1&lt;br /&gt;
 esac&lt;br /&gt;
 &lt;br /&gt;
 exit $RETVAL&lt;br /&gt;
&lt;br /&gt;
Note: Don't forget to make this script executable with &amp;quot;chmod +x &amp;lt;filename&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Route internet connection through Wifi rather than USB ==&lt;br /&gt;
&lt;br /&gt;
Wifi is faster than USB, so it is a good idea to tell the FreeRunner to connect through it. Put the following in /etc/network/interfaces under eth0:&lt;br /&gt;
&lt;br /&gt;
up route del default gw 192.168.0.200&lt;br /&gt;
&lt;br /&gt;
This will remove your computer as the default gateway and use the  wireless one when the interface is brought up. User nickd reports that sometimes it fails so he has had to put it in twice.&lt;br /&gt;
&lt;br /&gt;
== ssh into FR over WiFi ==&lt;br /&gt;
dropbear, the ssh server, is configured to listen on the USB interface only. Wireless interfaces like wlan or bluetooth are disabled for security reasons (empty root password).&lt;br /&gt;
&lt;br /&gt;
If you want to enable ssh over WiFi, change the /etc/default/dropbear from:&lt;br /&gt;
&lt;br /&gt;
  DROPBEAR_PORT=`ip addr list usb0 | awk 'BEGIN { FS=&amp;quot;[ /]+&amp;quot; } /inet / { print  $3 }'`:22&lt;br /&gt;
&lt;br /&gt;
(which actually only prepends the usb0 ip address before the :22)&lt;br /&gt;
&lt;br /&gt;
into:&lt;br /&gt;
&lt;br /&gt;
  DROPBEAR_PORT=22&lt;br /&gt;
&lt;br /&gt;
* Be careful with this config file since it can close the only door into your phone.&lt;br /&gt;
&lt;br /&gt;
* Set a root password!&lt;br /&gt;
&lt;br /&gt;
== Available Software ==&lt;br /&gt;
&lt;br /&gt;
Programs in development providing GUI interfaces to administer WiFi connections:&lt;br /&gt;
&lt;br /&gt;
* [[Lint-wifi]]&lt;br /&gt;
* [[Mofi]]&lt;br /&gt;
* [[Camp-Wifi]]&lt;br /&gt;
&lt;br /&gt;
== External links ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/ WiFi on Linux]&lt;br /&gt;
&lt;br /&gt;
[[Category:Neo FreeRunner Hardware]]&lt;br /&gt;
[[Category:Networking]]&lt;/div&gt;</summary>
		<author><name>Michaelshiloh</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Neo_FreeRunner_Wifi</id>
		<title>Neo FreeRunner Wifi</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Neo_FreeRunner_Wifi"/>
				<updated>2008-10-08T22:26:03Z</updated>
		
		<summary type="html">&lt;p&gt;Michaelshiloh: /* Using WEP and /etc/network/interfaces */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|Neo FreeRunner Menu}}&lt;br /&gt;
&lt;br /&gt;
This page documents the [http://en.wikipedia.org/wiki/Wireless_networking wireless networking] solutions commonly known as [http://en.wikipedia.org/wiki/Wireless_LAN WLAN] or WiFi. &lt;br /&gt;
&lt;br /&gt;
There are other ways to enable wireless communications on the Neo, including [[Bluetooth]]. For Bluetooth solutions, see [[How to use bluetooth to transfer data between Neo and Desk-top]] and [[Manually using Bluetooth]].&lt;br /&gt;
&lt;br /&gt;
== Using the GUI on 2008.8 ==&lt;br /&gt;
&lt;br /&gt;
In the Settings application on Om 2008.8, there's a &amp;quot;WiFi&amp;quot; item. It should work fairly well in stable-updated 2008.8 (even with WPA2).&lt;br /&gt;
&lt;br /&gt;
If it says &amp;quot;WiFi unknown&amp;quot;, you can delete the /etc/volatives.cache file and reboot.  It should work after that.[http://docs.openmoko.org/trac/ticket/1734]  After connecting using the GUI, you may also need to run &amp;quot;udhcpc eth0&amp;quot; manually in the terminal to get DNS entries added to your resolv.conf.  You may also need to run &amp;quot;ifdown usb0&amp;quot; to remove the routing issue caused by having both interfaces up at the same time.  Some users have reported that 802.11g modulation needs to be enabled on APs to allow the FreeRunner to connect (The hardware is suppose to support 802.11b/g).&lt;br /&gt;
&lt;br /&gt;
Otherwise there's also [[lint-wifi]].  Refer to the section below, [[#Available Software|&amp;quot;Available Software&amp;quot;]] to find out what else might be available.&lt;br /&gt;
&lt;br /&gt;
=== Known Issues with GUI ===&lt;br /&gt;
&lt;br /&gt;
The GUI seems to have some issues that prevent it from working in all cases. &lt;br /&gt;
&lt;br /&gt;
If a Wi-Fi connection can not be made with the GUI, open a shell and use iwconfig manually.&lt;br /&gt;
&lt;br /&gt;
Note that for WEP our iwconfig requires a more specific format than generic iwconfig.&lt;br /&gt;
&lt;br /&gt;
The canonical way of running iwconfig for WEP would be something like this:&lt;br /&gt;
&lt;br /&gt;
# iwconfig eth0 key A4BEB3B8EC essid xyz&lt;br /&gt;
&lt;br /&gt;
Two things are important here:&lt;br /&gt;
&lt;br /&gt;
* the key must be in HEX. iwconfig will not do anything useful if the key is given as a string.   [http://www.powerdog.com/wepkey.cgi Here] is a handy ASCII string to HEX converter.&lt;br /&gt;
&lt;br /&gt;
* the ESSID must follow the key.&lt;br /&gt;
&lt;br /&gt;
If an incorrect key was set, please stop all activity on the interface for at least two minutes (i.e., killall udhcpc and ifconfig eth0 down), then issue the correct iwconfig command and retry.&lt;br /&gt;
&lt;br /&gt;
== How can I tell what Access Points (APs) are visible to me? ==&lt;br /&gt;
&lt;br /&gt;
You can connect to wireless networks through wireless [http://en.wikipedia.org/wiki/Access_point| access points]. If you want to know the names of all the access points that are currently visible to you, you can perform a scan with this command:&lt;br /&gt;
&lt;br /&gt;
 root@om-gta02:~# '''iwlist eth0 scan'''&lt;br /&gt;
&lt;br /&gt;
If anything is visible you will get a list that looks something like this:&lt;br /&gt;
&lt;br /&gt;
 eth0      Scan completed :&lt;br /&gt;
           Cell 01 - Address: 00:16:B6:DE:77:58&lt;br /&gt;
                     ESSID:&amp;quot;StarvinMarvin&amp;quot;&lt;br /&gt;
                     Mode:Master&lt;br /&gt;
                     Frequency:2.437 GHz (Channel 6)&lt;br /&gt;
                     Quality=9/94  Signal level=-86 dBm  Noise level=-95 dBm&lt;br /&gt;
                     Encryption key:on&lt;br /&gt;
                     Extra:bcn_int=100&lt;br /&gt;
                     Extra:wpa_ie=dd180050f20101000050f20201000050f20201000050f2020000&lt;br /&gt;
           Cell 02 - Address: 00:21:29:AA:10:97&lt;br /&gt;
                     ESSID:&amp;quot;CandT Network&amp;quot;&lt;br /&gt;
                     Mode:Master&lt;br /&gt;
                     Frequency:2.437 GHz (Channel 6)&lt;br /&gt;
                     Quality=39/94  Signal level=-56 dBm  Noise level=-95 dBm&lt;br /&gt;
                     Encryption key:on&lt;br /&gt;
                     Extra:bcn_int=100&lt;br /&gt;
                     Extra:wpa_ie=dd1c0050f20101000050f20202000050f2040050f20201000050f2020000&lt;br /&gt;
                     Extra:rsn_ie=30180100000fac020200000fac04000fac020100000fac020000&lt;br /&gt;
           Cell 03 - Address: 00:14:95:1B:8E:B9&lt;br /&gt;
                     ESSID:&amp;quot;2WIRE852&amp;quot;&lt;br /&gt;
                     Mode:Master&lt;br /&gt;
                     Frequency:2.437 GHz (Channel 6)&lt;br /&gt;
                     Quality=5/94  Signal level=-90 dBm  Noise level=-95 dBm&lt;br /&gt;
                     Encryption key:on&lt;br /&gt;
                     Extra:bcn_int=100&lt;br /&gt;
           Cell 04 - Address: 00:E0:98:52:3D:78&lt;br /&gt;
                     ESSID:&amp;quot;smith&amp;quot;&lt;br /&gt;
                     Mode:Master&lt;br /&gt;
                     Frequency:2.437 GHz (Channel 6)&lt;br /&gt;
                     Quality=36/94  Signal level=-59 dBm  Noise level=-95 dBm&lt;br /&gt;
                     Encryption key:on&lt;br /&gt;
                     Extra:bcn_int=100&lt;br /&gt;
&lt;br /&gt;
If you want to connect to an unsecured network run:&lt;br /&gt;
  &lt;br /&gt;
  udhcpc  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== WPA ==&lt;br /&gt;
&lt;br /&gt;
=== Using WPA and /etc/network/interfaces ===&lt;br /&gt;
&lt;br /&gt;
[http://en.wikipedia.org/wiki/Wi-Fi_Protected_Access  WPA] is a encryption method for securing your wireless network.&lt;br /&gt;
Once you have a [[GTA02_WLAN#Sample_wpa_supplicant.conf|/etc/wpa_supplicant/wpa_supplicant.conf]] file, add a line under the eth0 entry in /etc/network/interfaces:&lt;br /&gt;
 iface eth0 inet dhcp&lt;br /&gt;
    wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf&lt;br /&gt;
&lt;br /&gt;
Save your changes and run:&lt;br /&gt;
  # ifdown eth0 &amp;amp;&amp;amp; ifup eth0&lt;br /&gt;
&lt;br /&gt;
You'll get a lot of messages, like &amp;lt;tt&amp;gt;ioctl[SIOCSIWENCODEEXT]: Operation not supported&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;sed: unrecognized option `--quiet'&amp;lt;/tt&amp;gt;, they appear to be harmless. The &amp;quot;--quiet&amp;quot; error message can be avoided by replacing &amp;quot;sed --quiet&amp;quot; with &amp;quot;sed -n&amp;quot; in /etc/wpa_supplicant/*.sh&lt;br /&gt;
&lt;br /&gt;
== WEP ==&lt;br /&gt;
&lt;br /&gt;
[http://en.wikipedia.org/wiki/Wired_Equivalent_Privacy WEP] is an encryption method for securing your wireless network. WEP is generally considered to be weak, you should use WPA instead if possible.&lt;br /&gt;
&lt;br /&gt;
=== Using WEP and /etc/network/interfaces ===&lt;br /&gt;
  iface eth0 inet dhcp&lt;br /&gt;
    wireless-key my_wep_key&lt;br /&gt;
    wireless-essid my_essid&lt;br /&gt;
&lt;br /&gt;
 iface eth0 inet dhcp&lt;br /&gt;
    wpa-wep-key0 my_wep_key&lt;br /&gt;
    wpa-key-mgmt NONE&lt;br /&gt;
    wpa-ssid my_essid&lt;br /&gt;
&lt;br /&gt;
Save your changes and run:&lt;br /&gt;
  # ifdown eth0 &amp;amp;&amp;amp; ifup eth0&lt;br /&gt;
&lt;br /&gt;
== Using wpa_supplicant manually ==&lt;br /&gt;
&lt;br /&gt;
Create and edit a suitable [[GTA02_WLAN#Sample_wpa_supplicant.conf|/etc/wpa_supplicant/wpa_supplicant.conf]]   &lt;br /&gt;
&lt;br /&gt;
 root@om-gta02:~# ifup eth0&lt;br /&gt;
 root@om-gta02:~# wpa_supplicant -ieth0 -c/etc/wpa_supplicant/wpa_supplicant.conf -B&lt;br /&gt;
 root@om-gta02:~# udhcpc eth0&lt;br /&gt;
&lt;br /&gt;
== Wake up from wireless (wow)==&lt;br /&gt;
&lt;br /&gt;
Wi-Fi module constantly drain currents after module power up, for wi-fi SIP phone or some application need long standby time, will need wake up from wireless function for power saving. There is a sleep mode that Ar6k supported for wake up from wireless.&lt;br /&gt;
&lt;br /&gt;
 http://svn.openmoko.org/trunk/src/target/AR6kSDK.build_sw.18/host/tools/wmiconfig&lt;br /&gt;
&lt;br /&gt;
 export ATH_CROSS_COMPILE_TYPE=arm-angstrom-linux-gnueabi-&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
Debian package:&lt;br /&gt;
&lt;br /&gt;
 wget http://meshy.org/~ato/debian/pool/main/w/wmiconfig/wmiconfig_0.0.18-1_armel.deb&lt;br /&gt;
 dpkg -i wmiconfig_0.0.18-1_armel.deb&lt;br /&gt;
&lt;br /&gt;
Basically, it's achieved via wmiconfig tool to issue IOCTL if we want&lt;br /&gt;
ar6k wifi module to generate interrupt to host controller. The procedure&lt;br /&gt;
to enable wakeup-on-wireless(wow) is listed here:&lt;br /&gt;
&lt;br /&gt;
 1. wmiconfig --sethostmode asleep /* to tell ar6k what host's current is */&lt;br /&gt;
 2. wmiconfig --setwowmode enable /* enable wow function */&lt;br /&gt;
 3. wmiconfig --addpattern 0 1 33 01 ff /* add packet filter pattern, this is the ICMP filter pattern */&lt;br /&gt;
 4. apm -s&lt;br /&gt;
 5. ping IP_of_Neo&lt;br /&gt;
 6. The GPIO1 pin would be pulled up. The system would resume then.&lt;br /&gt;
 7. wmiconfig --sethostmode awake /* The firmware of ar6k will pull low the GPIO1 pin */&lt;br /&gt;
&lt;br /&gt;
--addwowpattern &amp;lt;list-id&amp;gt; &amp;lt;pattern-size&amp;gt; &amp;lt;pattern-offset&amp;gt; &amp;lt;pattern&amp;gt; &amp;lt;pattern-mask&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here are some addwowpattern commands:&lt;br /&gt;
&lt;br /&gt;
Protocol type=IP=0800&lt;br /&gt;
Protocol type in IP header=ICMP=01&lt;br /&gt;
&lt;br /&gt;
 - To filter for IP packets(offset 22)&lt;br /&gt;
 wmiconfig --addwowpattern 0 2 22 0800 ffff&lt;br /&gt;
 - To filter for ICMP packets (offset 33)&lt;br /&gt;
 wmiconfig --addwowpattern 0 1 33 01 ff&lt;br /&gt;
&lt;br /&gt;
== Sample wpa_supplicant.conf ==&lt;br /&gt;
&lt;br /&gt;
 ctrl_interface=/var/run/wpa_supplicant&lt;br /&gt;
 ctrl_interface_group=0&lt;br /&gt;
 eapol_version=1&lt;br /&gt;
 ap_scan=1&lt;br /&gt;
 fast_reauth=1 &lt;br /&gt;
 # WPA2:&lt;br /&gt;
 network={&lt;br /&gt;
        ssid=&amp;quot;your ssid&amp;quot;&lt;br /&gt;
        scan_ssid=1&lt;br /&gt;
        proto=RSN&lt;br /&gt;
        key_mgmt=WPA-PSK&lt;br /&gt;
        pairwise=CCMP TKIP&lt;br /&gt;
        group=TKIP CCMP&lt;br /&gt;
        psk=&amp;quot;secret key&amp;quot;&lt;br /&gt;
        priority=50&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 # WPA:&lt;br /&gt;
 network={&lt;br /&gt;
       ssid=&amp;quot;your_ssid&amp;quot;&lt;br /&gt;
       proto=WPA&lt;br /&gt;
       key_mgmt=WPA-PSK&lt;br /&gt;
       pairwise=TKIP&lt;br /&gt;
       group=TKIP&lt;br /&gt;
       scan_ssid=1&lt;br /&gt;
       psk=&amp;quot;secret key&amp;quot;&lt;br /&gt;
       priority=10&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 # WEP:&lt;br /&gt;
 network={&lt;br /&gt;
      ssid=&amp;quot;your_ssid&amp;quot;&lt;br /&gt;
      scan_ssid=1&lt;br /&gt;
      key_mgmt=NONE&lt;br /&gt;
      wep_tx_keyidx=0&lt;br /&gt;
      wep_key0=your_hex_key&lt;br /&gt;
      priority=8&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 # Open:&lt;br /&gt;
 network={&lt;br /&gt;
      ssid=&amp;quot;your ssid&amp;quot;&lt;br /&gt;
      key_mgmt=NONE&lt;br /&gt;
      priority=5&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
======wpa_supplicant.conf explained======&lt;br /&gt;
The highest priority is tried first then falls back to the next highest number.&lt;br /&gt;
&lt;br /&gt;
priority=100  1st  &amp;lt;br&amp;gt;&lt;br /&gt;
then&amp;lt;br&amp;gt;&lt;br /&gt;
priority=99  &amp;lt;br&amp;gt; &lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
&lt;br /&gt;
# Simple case: WPA-PSK, PSK as an ASCII passphrase, allow all valid ciphers&lt;br /&gt;
network={&lt;br /&gt;
	ssid=&amp;quot;AP_ESSID&amp;quot;&lt;br /&gt;
	psk=&amp;quot;presharedkey&amp;quot;&lt;br /&gt;
	priority=5&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#try open AP regardless of its SSID.&lt;br /&gt;
# change root password before you go roaming around it could prove dangerous&lt;br /&gt;
network={&lt;br /&gt;
	key_mgmt=NONE&lt;br /&gt;
priority=1  #try any open AP last&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A more in depth explanation can be found here:&amp;lt;br&amp;gt; &lt;br /&gt;
http://hostap.epitest.fi/gitweb/gitweb.cgi?p=hostap.git;a=blob_plain;f=wpa_supplicant/wpa_supplicant.conf&lt;br /&gt;
&lt;br /&gt;
== A very ugly /etc/init.d/wlan startscript ==&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 #&lt;br /&gt;
 # wlan	This shell script starts and stops wlan.&lt;br /&gt;
 #&lt;br /&gt;
 # processname: wlan&lt;br /&gt;
 &lt;br /&gt;
 # Source function library.&lt;br /&gt;
 #. /etc/rc.d/init.d/functions&lt;br /&gt;
 # &amp;quot;written&amp;quot; by HdR&lt;br /&gt;
 &lt;br /&gt;
 RETVAL=0&lt;br /&gt;
 prog=&amp;quot;wlan&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # test -f /etc/default/$prog &amp;amp;&amp;amp; . /etc/default/$prog&lt;br /&gt;
 &lt;br /&gt;
 start() {&lt;br /&gt;
 	echo -n &amp;quot;Starting $prog: &amp;quot;&lt;br /&gt;
 	ifconfig eth0 up&lt;br /&gt;
 	wpa_supplicant -ieth0 -c/etc/wpa_supplicant/wpa_supplicant.conf -B&lt;br /&gt;
 	sleep 10&lt;br /&gt;
 	udhcpc eth0&lt;br /&gt;
 	RETVAL=$?&lt;br /&gt;
 	return $RETVAL&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 stop() {&lt;br /&gt;
 	# Stop daemons.&lt;br /&gt;
 	echo -n &amp;quot;Shutting down $prog: &amp;quot;&lt;br /&gt;
         killall wpa_supplicant&lt;br /&gt;
 	ifconfig eth0 down&lt;br /&gt;
 #        killproc gpsd&lt;br /&gt;
 	RETVAL=$?&lt;br /&gt;
 	return $RETVAL&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 # See how we were called.&lt;br /&gt;
 case &amp;quot;$1&amp;quot; in&lt;br /&gt;
   start)&lt;br /&gt;
 	start&lt;br /&gt;
 	;;&lt;br /&gt;
   stop)&lt;br /&gt;
 	stop&lt;br /&gt;
 	;;&lt;br /&gt;
   restart|reload)&lt;br /&gt;
 	stop&lt;br /&gt;
 	start&lt;br /&gt;
 	RETVAL=$?&lt;br /&gt;
 	;;&lt;br /&gt;
   *)&lt;br /&gt;
 	echo &amp;quot;Usage: $0 {start|stop|restart}&amp;quot;&lt;br /&gt;
 	exit 1&lt;br /&gt;
 esac&lt;br /&gt;
 &lt;br /&gt;
 exit $RETVAL&lt;br /&gt;
&lt;br /&gt;
Note: Don't forget to make this script executable with &amp;quot;chmod +x &amp;lt;filename&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Route internet connection through Wifi rather than USB ==&lt;br /&gt;
&lt;br /&gt;
Wifi is faster than USB, so it is a good idea to tell the FreeRunner to connect through it. Put the following in /etc/network/interfaces under eth0:&lt;br /&gt;
&lt;br /&gt;
up route del default gw 192.168.0.200&lt;br /&gt;
&lt;br /&gt;
This will remove your computer as the default gateway and use the  wireless one when the interface is brought up. User nickd reports that sometimes it fails so he has had to put it in twice.&lt;br /&gt;
&lt;br /&gt;
== ssh into FR over WiFi ==&lt;br /&gt;
dropbear, the ssh server, is configured to listen on the USB interface only. Wireless interfaces like wlan or bluetooth are disabled for security reasons (empty root password).&lt;br /&gt;
&lt;br /&gt;
If you want to enable ssh over WiFi, change the /etc/default/dropbear from:&lt;br /&gt;
&lt;br /&gt;
  DROPBEAR_PORT=`ip addr list usb0 | awk 'BEGIN { FS=&amp;quot;[ /]+&amp;quot; } /inet / { print  $3 }'`:22&lt;br /&gt;
&lt;br /&gt;
(which actually only prepends the usb0 ip address before the :22)&lt;br /&gt;
&lt;br /&gt;
into:&lt;br /&gt;
&lt;br /&gt;
  DROPBEAR_PORT=22&lt;br /&gt;
&lt;br /&gt;
* Be careful with this config file since it can close the only door into your phone.&lt;br /&gt;
&lt;br /&gt;
* Set a root password!&lt;br /&gt;
&lt;br /&gt;
== Available Software ==&lt;br /&gt;
&lt;br /&gt;
Programs in development providing GUI interfaces to administer WiFi connections:&lt;br /&gt;
&lt;br /&gt;
* [[Lint-wifi]]&lt;br /&gt;
* [[Mofi]]&lt;br /&gt;
* [[Camp-Wifi]]&lt;br /&gt;
&lt;br /&gt;
== External links ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/ WiFi on Linux]&lt;br /&gt;
&lt;br /&gt;
[[Category:Neo FreeRunner Hardware]]&lt;br /&gt;
[[Category:Networking]]&lt;/div&gt;</summary>
		<author><name>Michaelshiloh</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Neo_FreeRunner_Wifi</id>
		<title>Neo FreeRunner Wifi</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Neo_FreeRunner_Wifi"/>
				<updated>2008-10-08T22:24:55Z</updated>
		
		<summary type="html">&lt;p&gt;Michaelshiloh: /* Using WPA and /etc/network/interfaces */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|Neo FreeRunner Menu}}&lt;br /&gt;
&lt;br /&gt;
This page documents the [http://en.wikipedia.org/wiki/Wireless_networking wireless networking] solutions commonly known as [http://en.wikipedia.org/wiki/Wireless_LAN WLAN] or WiFi. &lt;br /&gt;
&lt;br /&gt;
There are other ways to enable wireless communications on the Neo, including [[Bluetooth]]. For Bluetooth solutions, see [[How to use bluetooth to transfer data between Neo and Desk-top]] and [[Manually using Bluetooth]].&lt;br /&gt;
&lt;br /&gt;
== Using the GUI on 2008.8 ==&lt;br /&gt;
&lt;br /&gt;
In the Settings application on Om 2008.8, there's a &amp;quot;WiFi&amp;quot; item. It should work fairly well in stable-updated 2008.8 (even with WPA2).&lt;br /&gt;
&lt;br /&gt;
If it says &amp;quot;WiFi unknown&amp;quot;, you can delete the /etc/volatives.cache file and reboot.  It should work after that.[http://docs.openmoko.org/trac/ticket/1734]  After connecting using the GUI, you may also need to run &amp;quot;udhcpc eth0&amp;quot; manually in the terminal to get DNS entries added to your resolv.conf.  You may also need to run &amp;quot;ifdown usb0&amp;quot; to remove the routing issue caused by having both interfaces up at the same time.  Some users have reported that 802.11g modulation needs to be enabled on APs to allow the FreeRunner to connect (The hardware is suppose to support 802.11b/g).&lt;br /&gt;
&lt;br /&gt;
Otherwise there's also [[lint-wifi]].  Refer to the section below, [[#Available Software|&amp;quot;Available Software&amp;quot;]] to find out what else might be available.&lt;br /&gt;
&lt;br /&gt;
=== Known Issues with GUI ===&lt;br /&gt;
&lt;br /&gt;
The GUI seems to have some issues that prevent it from working in all cases. &lt;br /&gt;
&lt;br /&gt;
If a Wi-Fi connection can not be made with the GUI, open a shell and use iwconfig manually.&lt;br /&gt;
&lt;br /&gt;
Note that for WEP our iwconfig requires a more specific format than generic iwconfig.&lt;br /&gt;
&lt;br /&gt;
The canonical way of running iwconfig for WEP would be something like this:&lt;br /&gt;
&lt;br /&gt;
# iwconfig eth0 key A4BEB3B8EC essid xyz&lt;br /&gt;
&lt;br /&gt;
Two things are important here:&lt;br /&gt;
&lt;br /&gt;
* the key must be in HEX. iwconfig will not do anything useful if the key is given as a string.   [http://www.powerdog.com/wepkey.cgi Here] is a handy ASCII string to HEX converter.&lt;br /&gt;
&lt;br /&gt;
* the ESSID must follow the key.&lt;br /&gt;
&lt;br /&gt;
If an incorrect key was set, please stop all activity on the interface for at least two minutes (i.e., killall udhcpc and ifconfig eth0 down), then issue the correct iwconfig command and retry.&lt;br /&gt;
&lt;br /&gt;
== How can I tell what Access Points (APs) are visible to me? ==&lt;br /&gt;
&lt;br /&gt;
You can connect to wireless networks through wireless [http://en.wikipedia.org/wiki/Access_point| access points]. If you want to know the names of all the access points that are currently visible to you, you can perform a scan with this command:&lt;br /&gt;
&lt;br /&gt;
 root@om-gta02:~# '''iwlist eth0 scan'''&lt;br /&gt;
&lt;br /&gt;
If anything is visible you will get a list that looks something like this:&lt;br /&gt;
&lt;br /&gt;
 eth0      Scan completed :&lt;br /&gt;
           Cell 01 - Address: 00:16:B6:DE:77:58&lt;br /&gt;
                     ESSID:&amp;quot;StarvinMarvin&amp;quot;&lt;br /&gt;
                     Mode:Master&lt;br /&gt;
                     Frequency:2.437 GHz (Channel 6)&lt;br /&gt;
                     Quality=9/94  Signal level=-86 dBm  Noise level=-95 dBm&lt;br /&gt;
                     Encryption key:on&lt;br /&gt;
                     Extra:bcn_int=100&lt;br /&gt;
                     Extra:wpa_ie=dd180050f20101000050f20201000050f20201000050f2020000&lt;br /&gt;
           Cell 02 - Address: 00:21:29:AA:10:97&lt;br /&gt;
                     ESSID:&amp;quot;CandT Network&amp;quot;&lt;br /&gt;
                     Mode:Master&lt;br /&gt;
                     Frequency:2.437 GHz (Channel 6)&lt;br /&gt;
                     Quality=39/94  Signal level=-56 dBm  Noise level=-95 dBm&lt;br /&gt;
                     Encryption key:on&lt;br /&gt;
                     Extra:bcn_int=100&lt;br /&gt;
                     Extra:wpa_ie=dd1c0050f20101000050f20202000050f2040050f20201000050f2020000&lt;br /&gt;
                     Extra:rsn_ie=30180100000fac020200000fac04000fac020100000fac020000&lt;br /&gt;
           Cell 03 - Address: 00:14:95:1B:8E:B9&lt;br /&gt;
                     ESSID:&amp;quot;2WIRE852&amp;quot;&lt;br /&gt;
                     Mode:Master&lt;br /&gt;
                     Frequency:2.437 GHz (Channel 6)&lt;br /&gt;
                     Quality=5/94  Signal level=-90 dBm  Noise level=-95 dBm&lt;br /&gt;
                     Encryption key:on&lt;br /&gt;
                     Extra:bcn_int=100&lt;br /&gt;
           Cell 04 - Address: 00:E0:98:52:3D:78&lt;br /&gt;
                     ESSID:&amp;quot;smith&amp;quot;&lt;br /&gt;
                     Mode:Master&lt;br /&gt;
                     Frequency:2.437 GHz (Channel 6)&lt;br /&gt;
                     Quality=36/94  Signal level=-59 dBm  Noise level=-95 dBm&lt;br /&gt;
                     Encryption key:on&lt;br /&gt;
                     Extra:bcn_int=100&lt;br /&gt;
&lt;br /&gt;
If you want to connect to an unsecured network run:&lt;br /&gt;
  &lt;br /&gt;
  udhcpc  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== WPA ==&lt;br /&gt;
&lt;br /&gt;
=== Using WPA and /etc/network/interfaces ===&lt;br /&gt;
&lt;br /&gt;
[http://en.wikipedia.org/wiki/Wi-Fi_Protected_Access  WPA] is a encryption method for securing your wireless network.&lt;br /&gt;
Once you have a [[GTA02_WLAN#Sample_wpa_supplicant.conf|/etc/wpa_supplicant/wpa_supplicant.conf]] file, add a line under the eth0 entry in /etc/network/interfaces:&lt;br /&gt;
 iface eth0 inet dhcp&lt;br /&gt;
    wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf&lt;br /&gt;
&lt;br /&gt;
Save your changes and run:&lt;br /&gt;
  # ifdown eth0 &amp;amp;&amp;amp; ifup eth0&lt;br /&gt;
&lt;br /&gt;
You'll get a lot of messages, like &amp;lt;tt&amp;gt;ioctl[SIOCSIWENCODEEXT]: Operation not supported&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;sed: unrecognized option `--quiet'&amp;lt;/tt&amp;gt;, they appear to be harmless. The &amp;quot;--quiet&amp;quot; error message can be avoided by replacing &amp;quot;sed --quiet&amp;quot; with &amp;quot;sed -n&amp;quot; in /etc/wpa_supplicant/*.sh&lt;br /&gt;
&lt;br /&gt;
== Using WEP and /etc/network/interfaces==&lt;br /&gt;
[http://en.wikipedia.org/wiki/Wired_Equivalent_Privacy WEP] is an encryption method for securing your wireless network. WEP is generally considered to be weak, you should use WPA instead if possible.&lt;br /&gt;
  iface eth0 inet dhcp&lt;br /&gt;
    wireless-key my_wep_key&lt;br /&gt;
    wireless-essid my_essid&lt;br /&gt;
&lt;br /&gt;
 iface eth0 inet dhcp&lt;br /&gt;
    wpa-wep-key0 my_wep_key&lt;br /&gt;
    wpa-key-mgmt NONE&lt;br /&gt;
    wpa-ssid my_essid&lt;br /&gt;
&lt;br /&gt;
Save your changes and run:&lt;br /&gt;
  # ifdown eth0 &amp;amp;&amp;amp; ifup eth0&lt;br /&gt;
&lt;br /&gt;
== Using wpa_supplicant manually ==&lt;br /&gt;
&lt;br /&gt;
Create and edit a suitable [[GTA02_WLAN#Sample_wpa_supplicant.conf|/etc/wpa_supplicant/wpa_supplicant.conf]]   &lt;br /&gt;
&lt;br /&gt;
 root@om-gta02:~# ifup eth0&lt;br /&gt;
 root@om-gta02:~# wpa_supplicant -ieth0 -c/etc/wpa_supplicant/wpa_supplicant.conf -B&lt;br /&gt;
 root@om-gta02:~# udhcpc eth0&lt;br /&gt;
&lt;br /&gt;
== Wake up from wireless (wow)==&lt;br /&gt;
&lt;br /&gt;
Wi-Fi module constantly drain currents after module power up, for wi-fi SIP phone or some application need long standby time, will need wake up from wireless function for power saving. There is a sleep mode that Ar6k supported for wake up from wireless.&lt;br /&gt;
&lt;br /&gt;
 http://svn.openmoko.org/trunk/src/target/AR6kSDK.build_sw.18/host/tools/wmiconfig&lt;br /&gt;
&lt;br /&gt;
 export ATH_CROSS_COMPILE_TYPE=arm-angstrom-linux-gnueabi-&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
Debian package:&lt;br /&gt;
&lt;br /&gt;
 wget http://meshy.org/~ato/debian/pool/main/w/wmiconfig/wmiconfig_0.0.18-1_armel.deb&lt;br /&gt;
 dpkg -i wmiconfig_0.0.18-1_armel.deb&lt;br /&gt;
&lt;br /&gt;
Basically, it's achieved via wmiconfig tool to issue IOCTL if we want&lt;br /&gt;
ar6k wifi module to generate interrupt to host controller. The procedure&lt;br /&gt;
to enable wakeup-on-wireless(wow) is listed here:&lt;br /&gt;
&lt;br /&gt;
 1. wmiconfig --sethostmode asleep /* to tell ar6k what host's current is */&lt;br /&gt;
 2. wmiconfig --setwowmode enable /* enable wow function */&lt;br /&gt;
 3. wmiconfig --addpattern 0 1 33 01 ff /* add packet filter pattern, this is the ICMP filter pattern */&lt;br /&gt;
 4. apm -s&lt;br /&gt;
 5. ping IP_of_Neo&lt;br /&gt;
 6. The GPIO1 pin would be pulled up. The system would resume then.&lt;br /&gt;
 7. wmiconfig --sethostmode awake /* The firmware of ar6k will pull low the GPIO1 pin */&lt;br /&gt;
&lt;br /&gt;
--addwowpattern &amp;lt;list-id&amp;gt; &amp;lt;pattern-size&amp;gt; &amp;lt;pattern-offset&amp;gt; &amp;lt;pattern&amp;gt; &amp;lt;pattern-mask&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here are some addwowpattern commands:&lt;br /&gt;
&lt;br /&gt;
Protocol type=IP=0800&lt;br /&gt;
Protocol type in IP header=ICMP=01&lt;br /&gt;
&lt;br /&gt;
 - To filter for IP packets(offset 22)&lt;br /&gt;
 wmiconfig --addwowpattern 0 2 22 0800 ffff&lt;br /&gt;
 - To filter for ICMP packets (offset 33)&lt;br /&gt;
 wmiconfig --addwowpattern 0 1 33 01 ff&lt;br /&gt;
&lt;br /&gt;
== Sample wpa_supplicant.conf ==&lt;br /&gt;
&lt;br /&gt;
 ctrl_interface=/var/run/wpa_supplicant&lt;br /&gt;
 ctrl_interface_group=0&lt;br /&gt;
 eapol_version=1&lt;br /&gt;
 ap_scan=1&lt;br /&gt;
 fast_reauth=1 &lt;br /&gt;
 # WPA2:&lt;br /&gt;
 network={&lt;br /&gt;
        ssid=&amp;quot;your ssid&amp;quot;&lt;br /&gt;
        scan_ssid=1&lt;br /&gt;
        proto=RSN&lt;br /&gt;
        key_mgmt=WPA-PSK&lt;br /&gt;
        pairwise=CCMP TKIP&lt;br /&gt;
        group=TKIP CCMP&lt;br /&gt;
        psk=&amp;quot;secret key&amp;quot;&lt;br /&gt;
        priority=50&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 # WPA:&lt;br /&gt;
 network={&lt;br /&gt;
       ssid=&amp;quot;your_ssid&amp;quot;&lt;br /&gt;
       proto=WPA&lt;br /&gt;
       key_mgmt=WPA-PSK&lt;br /&gt;
       pairwise=TKIP&lt;br /&gt;
       group=TKIP&lt;br /&gt;
       scan_ssid=1&lt;br /&gt;
       psk=&amp;quot;secret key&amp;quot;&lt;br /&gt;
       priority=10&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 # WEP:&lt;br /&gt;
 network={&lt;br /&gt;
      ssid=&amp;quot;your_ssid&amp;quot;&lt;br /&gt;
      scan_ssid=1&lt;br /&gt;
      key_mgmt=NONE&lt;br /&gt;
      wep_tx_keyidx=0&lt;br /&gt;
      wep_key0=your_hex_key&lt;br /&gt;
      priority=8&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 # Open:&lt;br /&gt;
 network={&lt;br /&gt;
      ssid=&amp;quot;your ssid&amp;quot;&lt;br /&gt;
      key_mgmt=NONE&lt;br /&gt;
      priority=5&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
======wpa_supplicant.conf explained======&lt;br /&gt;
The highest priority is tried first then falls back to the next highest number.&lt;br /&gt;
&lt;br /&gt;
priority=100  1st  &amp;lt;br&amp;gt;&lt;br /&gt;
then&amp;lt;br&amp;gt;&lt;br /&gt;
priority=99  &amp;lt;br&amp;gt; &lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
&lt;br /&gt;
# Simple case: WPA-PSK, PSK as an ASCII passphrase, allow all valid ciphers&lt;br /&gt;
network={&lt;br /&gt;
	ssid=&amp;quot;AP_ESSID&amp;quot;&lt;br /&gt;
	psk=&amp;quot;presharedkey&amp;quot;&lt;br /&gt;
	priority=5&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#try open AP regardless of its SSID.&lt;br /&gt;
# change root password before you go roaming around it could prove dangerous&lt;br /&gt;
network={&lt;br /&gt;
	key_mgmt=NONE&lt;br /&gt;
priority=1  #try any open AP last&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A more in depth explanation can be found here:&amp;lt;br&amp;gt; &lt;br /&gt;
http://hostap.epitest.fi/gitweb/gitweb.cgi?p=hostap.git;a=blob_plain;f=wpa_supplicant/wpa_supplicant.conf&lt;br /&gt;
&lt;br /&gt;
== A very ugly /etc/init.d/wlan startscript ==&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 #&lt;br /&gt;
 # wlan	This shell script starts and stops wlan.&lt;br /&gt;
 #&lt;br /&gt;
 # processname: wlan&lt;br /&gt;
 &lt;br /&gt;
 # Source function library.&lt;br /&gt;
 #. /etc/rc.d/init.d/functions&lt;br /&gt;
 # &amp;quot;written&amp;quot; by HdR&lt;br /&gt;
 &lt;br /&gt;
 RETVAL=0&lt;br /&gt;
 prog=&amp;quot;wlan&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # test -f /etc/default/$prog &amp;amp;&amp;amp; . /etc/default/$prog&lt;br /&gt;
 &lt;br /&gt;
 start() {&lt;br /&gt;
 	echo -n &amp;quot;Starting $prog: &amp;quot;&lt;br /&gt;
 	ifconfig eth0 up&lt;br /&gt;
 	wpa_supplicant -ieth0 -c/etc/wpa_supplicant/wpa_supplicant.conf -B&lt;br /&gt;
 	sleep 10&lt;br /&gt;
 	udhcpc eth0&lt;br /&gt;
 	RETVAL=$?&lt;br /&gt;
 	return $RETVAL&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 stop() {&lt;br /&gt;
 	# Stop daemons.&lt;br /&gt;
 	echo -n &amp;quot;Shutting down $prog: &amp;quot;&lt;br /&gt;
         killall wpa_supplicant&lt;br /&gt;
 	ifconfig eth0 down&lt;br /&gt;
 #        killproc gpsd&lt;br /&gt;
 	RETVAL=$?&lt;br /&gt;
 	return $RETVAL&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 # See how we were called.&lt;br /&gt;
 case &amp;quot;$1&amp;quot; in&lt;br /&gt;
   start)&lt;br /&gt;
 	start&lt;br /&gt;
 	;;&lt;br /&gt;
   stop)&lt;br /&gt;
 	stop&lt;br /&gt;
 	;;&lt;br /&gt;
   restart|reload)&lt;br /&gt;
 	stop&lt;br /&gt;
 	start&lt;br /&gt;
 	RETVAL=$?&lt;br /&gt;
 	;;&lt;br /&gt;
   *)&lt;br /&gt;
 	echo &amp;quot;Usage: $0 {start|stop|restart}&amp;quot;&lt;br /&gt;
 	exit 1&lt;br /&gt;
 esac&lt;br /&gt;
 &lt;br /&gt;
 exit $RETVAL&lt;br /&gt;
&lt;br /&gt;
Note: Don't forget to make this script executable with &amp;quot;chmod +x &amp;lt;filename&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Route internet connection through Wifi rather than USB ==&lt;br /&gt;
&lt;br /&gt;
Wifi is faster than USB, so it is a good idea to tell the FreeRunner to connect through it. Put the following in /etc/network/interfaces under eth0:&lt;br /&gt;
&lt;br /&gt;
up route del default gw 192.168.0.200&lt;br /&gt;
&lt;br /&gt;
This will remove your computer as the default gateway and use the  wireless one when the interface is brought up. User nickd reports that sometimes it fails so he has had to put it in twice.&lt;br /&gt;
&lt;br /&gt;
== ssh into FR over WiFi ==&lt;br /&gt;
dropbear, the ssh server, is configured to listen on the USB interface only. Wireless interfaces like wlan or bluetooth are disabled for security reasons (empty root password).&lt;br /&gt;
&lt;br /&gt;
If you want to enable ssh over WiFi, change the /etc/default/dropbear from:&lt;br /&gt;
&lt;br /&gt;
  DROPBEAR_PORT=`ip addr list usb0 | awk 'BEGIN { FS=&amp;quot;[ /]+&amp;quot; } /inet / { print  $3 }'`:22&lt;br /&gt;
&lt;br /&gt;
(which actually only prepends the usb0 ip address before the :22)&lt;br /&gt;
&lt;br /&gt;
into:&lt;br /&gt;
&lt;br /&gt;
  DROPBEAR_PORT=22&lt;br /&gt;
&lt;br /&gt;
* Be careful with this config file since it can close the only door into your phone.&lt;br /&gt;
&lt;br /&gt;
* Set a root password!&lt;br /&gt;
&lt;br /&gt;
== Available Software ==&lt;br /&gt;
&lt;br /&gt;
Programs in development providing GUI interfaces to administer WiFi connections:&lt;br /&gt;
&lt;br /&gt;
* [[Lint-wifi]]&lt;br /&gt;
* [[Mofi]]&lt;br /&gt;
* [[Camp-Wifi]]&lt;br /&gt;
&lt;br /&gt;
== External links ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/ WiFi on Linux]&lt;br /&gt;
&lt;br /&gt;
[[Category:Neo FreeRunner Hardware]]&lt;br /&gt;
[[Category:Networking]]&lt;/div&gt;</summary>
		<author><name>Michaelshiloh</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Neo_FreeRunner_Wifi</id>
		<title>Neo FreeRunner Wifi</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Neo_FreeRunner_Wifi"/>
				<updated>2008-10-08T22:23:01Z</updated>
		
		<summary type="html">&lt;p&gt;Michaelshiloh: /* Manual attempt */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|Neo FreeRunner Menu}}&lt;br /&gt;
&lt;br /&gt;
This page documents the [http://en.wikipedia.org/wiki/Wireless_networking wireless networking] solutions commonly known as [http://en.wikipedia.org/wiki/Wireless_LAN WLAN] or WiFi. &lt;br /&gt;
&lt;br /&gt;
There are other ways to enable wireless communications on the Neo, including [[Bluetooth]]. For Bluetooth solutions, see [[How to use bluetooth to transfer data between Neo and Desk-top]] and [[Manually using Bluetooth]].&lt;br /&gt;
&lt;br /&gt;
== Using the GUI on 2008.8 ==&lt;br /&gt;
&lt;br /&gt;
In the Settings application on Om 2008.8, there's a &amp;quot;WiFi&amp;quot; item. It should work fairly well in stable-updated 2008.8 (even with WPA2).&lt;br /&gt;
&lt;br /&gt;
If it says &amp;quot;WiFi unknown&amp;quot;, you can delete the /etc/volatives.cache file and reboot.  It should work after that.[http://docs.openmoko.org/trac/ticket/1734]  After connecting using the GUI, you may also need to run &amp;quot;udhcpc eth0&amp;quot; manually in the terminal to get DNS entries added to your resolv.conf.  You may also need to run &amp;quot;ifdown usb0&amp;quot; to remove the routing issue caused by having both interfaces up at the same time.  Some users have reported that 802.11g modulation needs to be enabled on APs to allow the FreeRunner to connect (The hardware is suppose to support 802.11b/g).&lt;br /&gt;
&lt;br /&gt;
Otherwise there's also [[lint-wifi]].  Refer to the section below, [[#Available Software|&amp;quot;Available Software&amp;quot;]] to find out what else might be available.&lt;br /&gt;
&lt;br /&gt;
=== Known Issues with GUI ===&lt;br /&gt;
&lt;br /&gt;
The GUI seems to have some issues that prevent it from working in all cases. &lt;br /&gt;
&lt;br /&gt;
If a Wi-Fi connection can not be made with the GUI, open a shell and use iwconfig manually.&lt;br /&gt;
&lt;br /&gt;
Note that for WEP our iwconfig requires a more specific format than generic iwconfig.&lt;br /&gt;
&lt;br /&gt;
The canonical way of running iwconfig for WEP would be something like this:&lt;br /&gt;
&lt;br /&gt;
# iwconfig eth0 key A4BEB3B8EC essid xyz&lt;br /&gt;
&lt;br /&gt;
Two things are important here:&lt;br /&gt;
&lt;br /&gt;
* the key must be in HEX. iwconfig will not do anything useful if the key is given as a string.   [http://www.powerdog.com/wepkey.cgi Here] is a handy ASCII string to HEX converter.&lt;br /&gt;
&lt;br /&gt;
* the ESSID must follow the key.&lt;br /&gt;
&lt;br /&gt;
If an incorrect key was set, please stop all activity on the interface for at least two minutes (i.e., killall udhcpc and ifconfig eth0 down), then issue the correct iwconfig command and retry.&lt;br /&gt;
&lt;br /&gt;
== How can I tell what Access Points (APs) are visible to me? ==&lt;br /&gt;
&lt;br /&gt;
You can connect to wireless networks through wireless [http://en.wikipedia.org/wiki/Access_point| access points]. If you want to know the names of all the access points that are currently visible to you, you can perform a scan with this command:&lt;br /&gt;
&lt;br /&gt;
 root@om-gta02:~# '''iwlist eth0 scan'''&lt;br /&gt;
&lt;br /&gt;
If anything is visible you will get a list that looks something like this:&lt;br /&gt;
&lt;br /&gt;
 eth0      Scan completed :&lt;br /&gt;
           Cell 01 - Address: 00:16:B6:DE:77:58&lt;br /&gt;
                     ESSID:&amp;quot;StarvinMarvin&amp;quot;&lt;br /&gt;
                     Mode:Master&lt;br /&gt;
                     Frequency:2.437 GHz (Channel 6)&lt;br /&gt;
                     Quality=9/94  Signal level=-86 dBm  Noise level=-95 dBm&lt;br /&gt;
                     Encryption key:on&lt;br /&gt;
                     Extra:bcn_int=100&lt;br /&gt;
                     Extra:wpa_ie=dd180050f20101000050f20201000050f20201000050f2020000&lt;br /&gt;
           Cell 02 - Address: 00:21:29:AA:10:97&lt;br /&gt;
                     ESSID:&amp;quot;CandT Network&amp;quot;&lt;br /&gt;
                     Mode:Master&lt;br /&gt;
                     Frequency:2.437 GHz (Channel 6)&lt;br /&gt;
                     Quality=39/94  Signal level=-56 dBm  Noise level=-95 dBm&lt;br /&gt;
                     Encryption key:on&lt;br /&gt;
                     Extra:bcn_int=100&lt;br /&gt;
                     Extra:wpa_ie=dd1c0050f20101000050f20202000050f2040050f20201000050f2020000&lt;br /&gt;
                     Extra:rsn_ie=30180100000fac020200000fac04000fac020100000fac020000&lt;br /&gt;
           Cell 03 - Address: 00:14:95:1B:8E:B9&lt;br /&gt;
                     ESSID:&amp;quot;2WIRE852&amp;quot;&lt;br /&gt;
                     Mode:Master&lt;br /&gt;
                     Frequency:2.437 GHz (Channel 6)&lt;br /&gt;
                     Quality=5/94  Signal level=-90 dBm  Noise level=-95 dBm&lt;br /&gt;
                     Encryption key:on&lt;br /&gt;
                     Extra:bcn_int=100&lt;br /&gt;
           Cell 04 - Address: 00:E0:98:52:3D:78&lt;br /&gt;
                     ESSID:&amp;quot;smith&amp;quot;&lt;br /&gt;
                     Mode:Master&lt;br /&gt;
                     Frequency:2.437 GHz (Channel 6)&lt;br /&gt;
                     Quality=36/94  Signal level=-59 dBm  Noise level=-95 dBm&lt;br /&gt;
                     Encryption key:on&lt;br /&gt;
                     Extra:bcn_int=100&lt;br /&gt;
&lt;br /&gt;
If you want to connect to an unsecured network run:&lt;br /&gt;
  &lt;br /&gt;
  udhcpc  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Using WPA and /etc/network/interfaces==&lt;br /&gt;
&lt;br /&gt;
[http://en.wikipedia.org/wiki/Wi-Fi_Protected_Access  WPA] is a encryption method for securing your wireless network.&lt;br /&gt;
Once you have a [[GTA02_WLAN#Sample_wpa_supplicant.conf|/etc/wpa_supplicant/wpa_supplicant.conf]] file, add a line under the eth0 entry in /etc/network/interfaces:&lt;br /&gt;
 iface eth0 inet dhcp&lt;br /&gt;
    wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf&lt;br /&gt;
&lt;br /&gt;
Save your changes and run:&lt;br /&gt;
  # ifdown eth0 &amp;amp;&amp;amp; ifup eth0&lt;br /&gt;
&lt;br /&gt;
You'll get a lot of messages, like &amp;lt;tt&amp;gt;ioctl[SIOCSIWENCODEEXT]: Operation not supported&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;sed: unrecognized option `--quiet'&amp;lt;/tt&amp;gt;, they appear to be harmless. The &amp;quot;--quiet&amp;quot; error message can be avoided by replacing &amp;quot;sed --quiet&amp;quot; with &amp;quot;sed -n&amp;quot; in /etc/wpa_supplicant/*.sh&lt;br /&gt;
&lt;br /&gt;
== Using WEP and /etc/network/interfaces==&lt;br /&gt;
[http://en.wikipedia.org/wiki/Wired_Equivalent_Privacy WEP] is an encryption method for securing your wireless network. WEP is generally considered to be weak, you should use WPA instead if possible.&lt;br /&gt;
  iface eth0 inet dhcp&lt;br /&gt;
    wireless-key my_wep_key&lt;br /&gt;
    wireless-essid my_essid&lt;br /&gt;
&lt;br /&gt;
 iface eth0 inet dhcp&lt;br /&gt;
    wpa-wep-key0 my_wep_key&lt;br /&gt;
    wpa-key-mgmt NONE&lt;br /&gt;
    wpa-ssid my_essid&lt;br /&gt;
&lt;br /&gt;
Save your changes and run:&lt;br /&gt;
  # ifdown eth0 &amp;amp;&amp;amp; ifup eth0&lt;br /&gt;
&lt;br /&gt;
== Using wpa_supplicant manually ==&lt;br /&gt;
&lt;br /&gt;
Create and edit a suitable [[GTA02_WLAN#Sample_wpa_supplicant.conf|/etc/wpa_supplicant/wpa_supplicant.conf]]   &lt;br /&gt;
&lt;br /&gt;
 root@om-gta02:~# ifup eth0&lt;br /&gt;
 root@om-gta02:~# wpa_supplicant -ieth0 -c/etc/wpa_supplicant/wpa_supplicant.conf -B&lt;br /&gt;
 root@om-gta02:~# udhcpc eth0&lt;br /&gt;
&lt;br /&gt;
== Wake up from wireless (wow)==&lt;br /&gt;
&lt;br /&gt;
Wi-Fi module constantly drain currents after module power up, for wi-fi SIP phone or some application need long standby time, will need wake up from wireless function for power saving. There is a sleep mode that Ar6k supported for wake up from wireless.&lt;br /&gt;
&lt;br /&gt;
 http://svn.openmoko.org/trunk/src/target/AR6kSDK.build_sw.18/host/tools/wmiconfig&lt;br /&gt;
&lt;br /&gt;
 export ATH_CROSS_COMPILE_TYPE=arm-angstrom-linux-gnueabi-&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
Debian package:&lt;br /&gt;
&lt;br /&gt;
 wget http://meshy.org/~ato/debian/pool/main/w/wmiconfig/wmiconfig_0.0.18-1_armel.deb&lt;br /&gt;
 dpkg -i wmiconfig_0.0.18-1_armel.deb&lt;br /&gt;
&lt;br /&gt;
Basically, it's achieved via wmiconfig tool to issue IOCTL if we want&lt;br /&gt;
ar6k wifi module to generate interrupt to host controller. The procedure&lt;br /&gt;
to enable wakeup-on-wireless(wow) is listed here:&lt;br /&gt;
&lt;br /&gt;
 1. wmiconfig --sethostmode asleep /* to tell ar6k what host's current is */&lt;br /&gt;
 2. wmiconfig --setwowmode enable /* enable wow function */&lt;br /&gt;
 3. wmiconfig --addpattern 0 1 33 01 ff /* add packet filter pattern, this is the ICMP filter pattern */&lt;br /&gt;
 4. apm -s&lt;br /&gt;
 5. ping IP_of_Neo&lt;br /&gt;
 6. The GPIO1 pin would be pulled up. The system would resume then.&lt;br /&gt;
 7. wmiconfig --sethostmode awake /* The firmware of ar6k will pull low the GPIO1 pin */&lt;br /&gt;
&lt;br /&gt;
--addwowpattern &amp;lt;list-id&amp;gt; &amp;lt;pattern-size&amp;gt; &amp;lt;pattern-offset&amp;gt; &amp;lt;pattern&amp;gt; &amp;lt;pattern-mask&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here are some addwowpattern commands:&lt;br /&gt;
&lt;br /&gt;
Protocol type=IP=0800&lt;br /&gt;
Protocol type in IP header=ICMP=01&lt;br /&gt;
&lt;br /&gt;
 - To filter for IP packets(offset 22)&lt;br /&gt;
 wmiconfig --addwowpattern 0 2 22 0800 ffff&lt;br /&gt;
 - To filter for ICMP packets (offset 33)&lt;br /&gt;
 wmiconfig --addwowpattern 0 1 33 01 ff&lt;br /&gt;
&lt;br /&gt;
== Sample wpa_supplicant.conf ==&lt;br /&gt;
&lt;br /&gt;
 ctrl_interface=/var/run/wpa_supplicant&lt;br /&gt;
 ctrl_interface_group=0&lt;br /&gt;
 eapol_version=1&lt;br /&gt;
 ap_scan=1&lt;br /&gt;
 fast_reauth=1 &lt;br /&gt;
 # WPA2:&lt;br /&gt;
 network={&lt;br /&gt;
        ssid=&amp;quot;your ssid&amp;quot;&lt;br /&gt;
        scan_ssid=1&lt;br /&gt;
        proto=RSN&lt;br /&gt;
        key_mgmt=WPA-PSK&lt;br /&gt;
        pairwise=CCMP TKIP&lt;br /&gt;
        group=TKIP CCMP&lt;br /&gt;
        psk=&amp;quot;secret key&amp;quot;&lt;br /&gt;
        priority=50&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 # WPA:&lt;br /&gt;
 network={&lt;br /&gt;
       ssid=&amp;quot;your_ssid&amp;quot;&lt;br /&gt;
       proto=WPA&lt;br /&gt;
       key_mgmt=WPA-PSK&lt;br /&gt;
       pairwise=TKIP&lt;br /&gt;
       group=TKIP&lt;br /&gt;
       scan_ssid=1&lt;br /&gt;
       psk=&amp;quot;secret key&amp;quot;&lt;br /&gt;
       priority=10&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 # WEP:&lt;br /&gt;
 network={&lt;br /&gt;
      ssid=&amp;quot;your_ssid&amp;quot;&lt;br /&gt;
      scan_ssid=1&lt;br /&gt;
      key_mgmt=NONE&lt;br /&gt;
      wep_tx_keyidx=0&lt;br /&gt;
      wep_key0=your_hex_key&lt;br /&gt;
      priority=8&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 # Open:&lt;br /&gt;
 network={&lt;br /&gt;
      ssid=&amp;quot;your ssid&amp;quot;&lt;br /&gt;
      key_mgmt=NONE&lt;br /&gt;
      priority=5&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
======wpa_supplicant.conf explained======&lt;br /&gt;
The highest priority is tried first then falls back to the next highest number.&lt;br /&gt;
&lt;br /&gt;
priority=100  1st  &amp;lt;br&amp;gt;&lt;br /&gt;
then&amp;lt;br&amp;gt;&lt;br /&gt;
priority=99  &amp;lt;br&amp;gt; &lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
&lt;br /&gt;
# Simple case: WPA-PSK, PSK as an ASCII passphrase, allow all valid ciphers&lt;br /&gt;
network={&lt;br /&gt;
	ssid=&amp;quot;AP_ESSID&amp;quot;&lt;br /&gt;
	psk=&amp;quot;presharedkey&amp;quot;&lt;br /&gt;
	priority=5&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#try open AP regardless of its SSID.&lt;br /&gt;
# change root password before you go roaming around it could prove dangerous&lt;br /&gt;
network={&lt;br /&gt;
	key_mgmt=NONE&lt;br /&gt;
priority=1  #try any open AP last&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A more in depth explanation can be found here:&amp;lt;br&amp;gt; &lt;br /&gt;
http://hostap.epitest.fi/gitweb/gitweb.cgi?p=hostap.git;a=blob_plain;f=wpa_supplicant/wpa_supplicant.conf&lt;br /&gt;
&lt;br /&gt;
== A very ugly /etc/init.d/wlan startscript ==&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 #&lt;br /&gt;
 # wlan	This shell script starts and stops wlan.&lt;br /&gt;
 #&lt;br /&gt;
 # processname: wlan&lt;br /&gt;
 &lt;br /&gt;
 # Source function library.&lt;br /&gt;
 #. /etc/rc.d/init.d/functions&lt;br /&gt;
 # &amp;quot;written&amp;quot; by HdR&lt;br /&gt;
 &lt;br /&gt;
 RETVAL=0&lt;br /&gt;
 prog=&amp;quot;wlan&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # test -f /etc/default/$prog &amp;amp;&amp;amp; . /etc/default/$prog&lt;br /&gt;
 &lt;br /&gt;
 start() {&lt;br /&gt;
 	echo -n &amp;quot;Starting $prog: &amp;quot;&lt;br /&gt;
 	ifconfig eth0 up&lt;br /&gt;
 	wpa_supplicant -ieth0 -c/etc/wpa_supplicant/wpa_supplicant.conf -B&lt;br /&gt;
 	sleep 10&lt;br /&gt;
 	udhcpc eth0&lt;br /&gt;
 	RETVAL=$?&lt;br /&gt;
 	return $RETVAL&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 stop() {&lt;br /&gt;
 	# Stop daemons.&lt;br /&gt;
 	echo -n &amp;quot;Shutting down $prog: &amp;quot;&lt;br /&gt;
         killall wpa_supplicant&lt;br /&gt;
 	ifconfig eth0 down&lt;br /&gt;
 #        killproc gpsd&lt;br /&gt;
 	RETVAL=$?&lt;br /&gt;
 	return $RETVAL&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 # See how we were called.&lt;br /&gt;
 case &amp;quot;$1&amp;quot; in&lt;br /&gt;
   start)&lt;br /&gt;
 	start&lt;br /&gt;
 	;;&lt;br /&gt;
   stop)&lt;br /&gt;
 	stop&lt;br /&gt;
 	;;&lt;br /&gt;
   restart|reload)&lt;br /&gt;
 	stop&lt;br /&gt;
 	start&lt;br /&gt;
 	RETVAL=$?&lt;br /&gt;
 	;;&lt;br /&gt;
   *)&lt;br /&gt;
 	echo &amp;quot;Usage: $0 {start|stop|restart}&amp;quot;&lt;br /&gt;
 	exit 1&lt;br /&gt;
 esac&lt;br /&gt;
 &lt;br /&gt;
 exit $RETVAL&lt;br /&gt;
&lt;br /&gt;
Note: Don't forget to make this script executable with &amp;quot;chmod +x &amp;lt;filename&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Route internet connection through Wifi rather than USB ==&lt;br /&gt;
&lt;br /&gt;
Wifi is faster than USB, so it is a good idea to tell the FreeRunner to connect through it. Put the following in /etc/network/interfaces under eth0:&lt;br /&gt;
&lt;br /&gt;
up route del default gw 192.168.0.200&lt;br /&gt;
&lt;br /&gt;
This will remove your computer as the default gateway and use the  wireless one when the interface is brought up. User nickd reports that sometimes it fails so he has had to put it in twice.&lt;br /&gt;
&lt;br /&gt;
== ssh into FR over WiFi ==&lt;br /&gt;
dropbear, the ssh server, is configured to listen on the USB interface only. Wireless interfaces like wlan or bluetooth are disabled for security reasons (empty root password).&lt;br /&gt;
&lt;br /&gt;
If you want to enable ssh over WiFi, change the /etc/default/dropbear from:&lt;br /&gt;
&lt;br /&gt;
  DROPBEAR_PORT=`ip addr list usb0 | awk 'BEGIN { FS=&amp;quot;[ /]+&amp;quot; } /inet / { print  $3 }'`:22&lt;br /&gt;
&lt;br /&gt;
(which actually only prepends the usb0 ip address before the :22)&lt;br /&gt;
&lt;br /&gt;
into:&lt;br /&gt;
&lt;br /&gt;
  DROPBEAR_PORT=22&lt;br /&gt;
&lt;br /&gt;
* Be careful with this config file since it can close the only door into your phone.&lt;br /&gt;
&lt;br /&gt;
* Set a root password!&lt;br /&gt;
&lt;br /&gt;
== Available Software ==&lt;br /&gt;
&lt;br /&gt;
Programs in development providing GUI interfaces to administer WiFi connections:&lt;br /&gt;
&lt;br /&gt;
* [[Lint-wifi]]&lt;br /&gt;
* [[Mofi]]&lt;br /&gt;
* [[Camp-Wifi]]&lt;br /&gt;
&lt;br /&gt;
== External links ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/ WiFi on Linux]&lt;br /&gt;
&lt;br /&gt;
[[Category:Neo FreeRunner Hardware]]&lt;br /&gt;
[[Category:Networking]]&lt;/div&gt;</summary>
		<author><name>Michaelshiloh</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Neo_FreeRunner_Wifi</id>
		<title>Neo FreeRunner Wifi</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Neo_FreeRunner_Wifi"/>
				<updated>2008-10-08T22:17:13Z</updated>
		
		<summary type="html">&lt;p&gt;Michaelshiloh: /* Using the GUI on 2008.8 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|Neo FreeRunner Menu}}&lt;br /&gt;
&lt;br /&gt;
This page documents the [http://en.wikipedia.org/wiki/Wireless_networking wireless networking] solutions commonly known as [http://en.wikipedia.org/wiki/Wireless_LAN WLAN] or WiFi. &lt;br /&gt;
&lt;br /&gt;
There are other ways to enable wireless communications on the Neo, including [[Bluetooth]]. For Bluetooth solutions, see [[How to use bluetooth to transfer data between Neo and Desk-top]] and [[Manually using Bluetooth]].&lt;br /&gt;
&lt;br /&gt;
== Using the GUI on 2008.8 ==&lt;br /&gt;
&lt;br /&gt;
In the Settings application on Om 2008.8, there's a &amp;quot;WiFi&amp;quot; item. It should work fairly well in stable-updated 2008.8 (even with WPA2).&lt;br /&gt;
&lt;br /&gt;
If it says &amp;quot;WiFi unknown&amp;quot;, you can delete the /etc/volatives.cache file and reboot.  It should work after that.[http://docs.openmoko.org/trac/ticket/1734]  After connecting using the GUI, you may also need to run &amp;quot;udhcpc eth0&amp;quot; manually in the terminal to get DNS entries added to your resolv.conf.  You may also need to run &amp;quot;ifdown usb0&amp;quot; to remove the routing issue caused by having both interfaces up at the same time.  Some users have reported that 802.11g modulation needs to be enabled on APs to allow the FreeRunner to connect (The hardware is suppose to support 802.11b/g).&lt;br /&gt;
&lt;br /&gt;
Otherwise there's also [[lint-wifi]].  Refer to the section below, [[#Available Software|&amp;quot;Available Software&amp;quot;]] to find out what else might be available.&lt;br /&gt;
&lt;br /&gt;
=== Known Issues with GUI ===&lt;br /&gt;
&lt;br /&gt;
The GUI seems to have some issues that prevent it from working in all cases. &lt;br /&gt;
&lt;br /&gt;
If a Wi-Fi connection can not be made with the GUI, open a shell and use iwconfig manually.&lt;br /&gt;
&lt;br /&gt;
Note that for WEP our iwconfig requires a more specific format than generic iwconfig.&lt;br /&gt;
&lt;br /&gt;
The canonical way of running iwconfig for WEP would be something like this:&lt;br /&gt;
&lt;br /&gt;
# iwconfig eth0 key A4BEB3B8EC essid xyz&lt;br /&gt;
&lt;br /&gt;
Two things are important here:&lt;br /&gt;
&lt;br /&gt;
* the key must be in HEX. iwconfig will not do anything useful if the key is given as a string.   [http://www.powerdog.com/wepkey.cgi Here] is a handy ASCII string to HEX converter.&lt;br /&gt;
&lt;br /&gt;
* the ESSID must follow the key.&lt;br /&gt;
&lt;br /&gt;
If an incorrect key was set, please stop all activity on the interface for at least two minutes (i.e., killall udhcpc and ifconfig eth0 down), then issue the correct iwconfig command and retry.&lt;br /&gt;
&lt;br /&gt;
== How can I tell what Access Points (APs) are visible to me? ==&lt;br /&gt;
&lt;br /&gt;
You can connect to wireless networks through wireless [http://en.wikipedia.org/wiki/Access_point| access points]. If you want to know the names of all the access points that are currently visible to you, you can perform a scan with this command:&lt;br /&gt;
&lt;br /&gt;
 root@om-gta02:~# '''iwlist eth0 scan'''&lt;br /&gt;
&lt;br /&gt;
If anything is visible you will get a list that looks something like this:&lt;br /&gt;
&lt;br /&gt;
 eth0      Scan completed :&lt;br /&gt;
           Cell 01 - Address: 00:16:B6:DE:77:58&lt;br /&gt;
                     ESSID:&amp;quot;StarvinMarvin&amp;quot;&lt;br /&gt;
                     Mode:Master&lt;br /&gt;
                     Frequency:2.437 GHz (Channel 6)&lt;br /&gt;
                     Quality=9/94  Signal level=-86 dBm  Noise level=-95 dBm&lt;br /&gt;
                     Encryption key:on&lt;br /&gt;
                     Extra:bcn_int=100&lt;br /&gt;
                     Extra:wpa_ie=dd180050f20101000050f20201000050f20201000050f2020000&lt;br /&gt;
           Cell 02 - Address: 00:21:29:AA:10:97&lt;br /&gt;
                     ESSID:&amp;quot;CandT Network&amp;quot;&lt;br /&gt;
                     Mode:Master&lt;br /&gt;
                     Frequency:2.437 GHz (Channel 6)&lt;br /&gt;
                     Quality=39/94  Signal level=-56 dBm  Noise level=-95 dBm&lt;br /&gt;
                     Encryption key:on&lt;br /&gt;
                     Extra:bcn_int=100&lt;br /&gt;
                     Extra:wpa_ie=dd1c0050f20101000050f20202000050f2040050f20201000050f2020000&lt;br /&gt;
                     Extra:rsn_ie=30180100000fac020200000fac04000fac020100000fac020000&lt;br /&gt;
           Cell 03 - Address: 00:14:95:1B:8E:B9&lt;br /&gt;
                     ESSID:&amp;quot;2WIRE852&amp;quot;&lt;br /&gt;
                     Mode:Master&lt;br /&gt;
                     Frequency:2.437 GHz (Channel 6)&lt;br /&gt;
                     Quality=5/94  Signal level=-90 dBm  Noise level=-95 dBm&lt;br /&gt;
                     Encryption key:on&lt;br /&gt;
                     Extra:bcn_int=100&lt;br /&gt;
           Cell 04 - Address: 00:E0:98:52:3D:78&lt;br /&gt;
                     ESSID:&amp;quot;smith&amp;quot;&lt;br /&gt;
                     Mode:Master&lt;br /&gt;
                     Frequency:2.437 GHz (Channel 6)&lt;br /&gt;
                     Quality=36/94  Signal level=-59 dBm  Noise level=-95 dBm&lt;br /&gt;
                     Encryption key:on&lt;br /&gt;
                     Extra:bcn_int=100&lt;br /&gt;
&lt;br /&gt;
If you want to connect to an unsecured network run:&lt;br /&gt;
  &lt;br /&gt;
  udhcpc  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Using WPA and /etc/network/interfaces==&lt;br /&gt;
&lt;br /&gt;
[http://en.wikipedia.org/wiki/Wi-Fi_Protected_Access  WPA] is a encryption method for securing your wireless network.&lt;br /&gt;
Once you have a [[GTA02_WLAN#Sample_wpa_supplicant.conf|/etc/wpa_supplicant/wpa_supplicant.conf]] file, add a line under the eth0 entry in /etc/network/interfaces:&lt;br /&gt;
 iface eth0 inet dhcp&lt;br /&gt;
    wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf&lt;br /&gt;
&lt;br /&gt;
Save your changes and run:&lt;br /&gt;
  # ifdown eth0 &amp;amp;&amp;amp; ifup eth0&lt;br /&gt;
&lt;br /&gt;
You'll get a lot of messages, like &amp;lt;tt&amp;gt;ioctl[SIOCSIWENCODEEXT]: Operation not supported&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;sed: unrecognized option `--quiet'&amp;lt;/tt&amp;gt;, they appear to be harmless. The &amp;quot;--quiet&amp;quot; error message can be avoided by replacing &amp;quot;sed --quiet&amp;quot; with &amp;quot;sed -n&amp;quot; in /etc/wpa_supplicant/*.sh&lt;br /&gt;
&lt;br /&gt;
== Using WEP and /etc/network/interfaces==&lt;br /&gt;
[http://en.wikipedia.org/wiki/Wired_Equivalent_Privacy WEP] is an encryption method for securing your wireless network. WEP is generally considered to be weak, you should use WPA instead if possible.&lt;br /&gt;
  iface eth0 inet dhcp&lt;br /&gt;
    wireless-key my_wep_key&lt;br /&gt;
    wireless-essid my_essid&lt;br /&gt;
&lt;br /&gt;
 iface eth0 inet dhcp&lt;br /&gt;
    wpa-wep-key0 my_wep_key&lt;br /&gt;
    wpa-key-mgmt NONE&lt;br /&gt;
    wpa-ssid my_essid&lt;br /&gt;
&lt;br /&gt;
Save your changes and run:&lt;br /&gt;
  # ifdown eth0 &amp;amp;&amp;amp; ifup eth0&lt;br /&gt;
&lt;br /&gt;
== Manual attempt ==&lt;br /&gt;
&lt;br /&gt;
Create and edit a suitable [[GTA02_WLAN#Sample_wpa_supplicant.conf|/etc/wpa_supplicant/wpa_supplicant.conf]]   &lt;br /&gt;
&lt;br /&gt;
 root@om-gta02:~# ifup eth0&lt;br /&gt;
 root@om-gta02:~# wpa_supplicant -ieth0 -c/etc/wpa_supplicant/wpa_supplicant.conf -B&lt;br /&gt;
 root@om-gta02:~# udhcpc eth0&lt;br /&gt;
&lt;br /&gt;
== Wake up from wireless (wow)==&lt;br /&gt;
&lt;br /&gt;
Wi-Fi module constantly drain currents after module power up, for wi-fi SIP phone or some application need long standby time, will need wake up from wireless function for power saving. There is a sleep mode that Ar6k supported for wake up from wireless.&lt;br /&gt;
&lt;br /&gt;
 http://svn.openmoko.org/trunk/src/target/AR6kSDK.build_sw.18/host/tools/wmiconfig&lt;br /&gt;
&lt;br /&gt;
 export ATH_CROSS_COMPILE_TYPE=arm-angstrom-linux-gnueabi-&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
Debian package:&lt;br /&gt;
&lt;br /&gt;
 wget http://meshy.org/~ato/debian/pool/main/w/wmiconfig/wmiconfig_0.0.18-1_armel.deb&lt;br /&gt;
 dpkg -i wmiconfig_0.0.18-1_armel.deb&lt;br /&gt;
&lt;br /&gt;
Basically, it's achieved via wmiconfig tool to issue IOCTL if we want&lt;br /&gt;
ar6k wifi module to generate interrupt to host controller. The procedure&lt;br /&gt;
to enable wakeup-on-wireless(wow) is listed here:&lt;br /&gt;
&lt;br /&gt;
 1. wmiconfig --sethostmode asleep /* to tell ar6k what host's current is */&lt;br /&gt;
 2. wmiconfig --setwowmode enable /* enable wow function */&lt;br /&gt;
 3. wmiconfig --addpattern 0 1 33 01 ff /* add packet filter pattern, this is the ICMP filter pattern */&lt;br /&gt;
 4. apm -s&lt;br /&gt;
 5. ping IP_of_Neo&lt;br /&gt;
 6. The GPIO1 pin would be pulled up. The system would resume then.&lt;br /&gt;
 7. wmiconfig --sethostmode awake /* The firmware of ar6k will pull low the GPIO1 pin */&lt;br /&gt;
&lt;br /&gt;
--addwowpattern &amp;lt;list-id&amp;gt; &amp;lt;pattern-size&amp;gt; &amp;lt;pattern-offset&amp;gt; &amp;lt;pattern&amp;gt; &amp;lt;pattern-mask&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here are some addwowpattern commands:&lt;br /&gt;
&lt;br /&gt;
Protocol type=IP=0800&lt;br /&gt;
Protocol type in IP header=ICMP=01&lt;br /&gt;
&lt;br /&gt;
 - To filter for IP packets(offset 22)&lt;br /&gt;
 wmiconfig --addwowpattern 0 2 22 0800 ffff&lt;br /&gt;
 - To filter for ICMP packets (offset 33)&lt;br /&gt;
 wmiconfig --addwowpattern 0 1 33 01 ff&lt;br /&gt;
&lt;br /&gt;
== Sample wpa_supplicant.conf ==&lt;br /&gt;
&lt;br /&gt;
 ctrl_interface=/var/run/wpa_supplicant&lt;br /&gt;
 ctrl_interface_group=0&lt;br /&gt;
 eapol_version=1&lt;br /&gt;
 ap_scan=1&lt;br /&gt;
 fast_reauth=1 &lt;br /&gt;
 # WPA2:&lt;br /&gt;
 network={&lt;br /&gt;
        ssid=&amp;quot;your ssid&amp;quot;&lt;br /&gt;
        scan_ssid=1&lt;br /&gt;
        proto=RSN&lt;br /&gt;
        key_mgmt=WPA-PSK&lt;br /&gt;
        pairwise=CCMP TKIP&lt;br /&gt;
        group=TKIP CCMP&lt;br /&gt;
        psk=&amp;quot;secret key&amp;quot;&lt;br /&gt;
        priority=50&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 # WPA:&lt;br /&gt;
 network={&lt;br /&gt;
       ssid=&amp;quot;your_ssid&amp;quot;&lt;br /&gt;
       proto=WPA&lt;br /&gt;
       key_mgmt=WPA-PSK&lt;br /&gt;
       pairwise=TKIP&lt;br /&gt;
       group=TKIP&lt;br /&gt;
       scan_ssid=1&lt;br /&gt;
       psk=&amp;quot;secret key&amp;quot;&lt;br /&gt;
       priority=10&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 # WEP:&lt;br /&gt;
 network={&lt;br /&gt;
      ssid=&amp;quot;your_ssid&amp;quot;&lt;br /&gt;
      scan_ssid=1&lt;br /&gt;
      key_mgmt=NONE&lt;br /&gt;
      wep_tx_keyidx=0&lt;br /&gt;
      wep_key0=your_hex_key&lt;br /&gt;
      priority=8&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 # Open:&lt;br /&gt;
 network={&lt;br /&gt;
      ssid=&amp;quot;your ssid&amp;quot;&lt;br /&gt;
      key_mgmt=NONE&lt;br /&gt;
      priority=5&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
======wpa_supplicant.conf explained======&lt;br /&gt;
The highest priority is tried first then falls back to the next highest number.&lt;br /&gt;
&lt;br /&gt;
priority=100  1st  &amp;lt;br&amp;gt;&lt;br /&gt;
then&amp;lt;br&amp;gt;&lt;br /&gt;
priority=99  &amp;lt;br&amp;gt; &lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
&lt;br /&gt;
# Simple case: WPA-PSK, PSK as an ASCII passphrase, allow all valid ciphers&lt;br /&gt;
network={&lt;br /&gt;
	ssid=&amp;quot;AP_ESSID&amp;quot;&lt;br /&gt;
	psk=&amp;quot;presharedkey&amp;quot;&lt;br /&gt;
	priority=5&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#try open AP regardless of its SSID.&lt;br /&gt;
# change root password before you go roaming around it could prove dangerous&lt;br /&gt;
network={&lt;br /&gt;
	key_mgmt=NONE&lt;br /&gt;
priority=1  #try any open AP last&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A more in depth explanation can be found here:&amp;lt;br&amp;gt; &lt;br /&gt;
http://hostap.epitest.fi/gitweb/gitweb.cgi?p=hostap.git;a=blob_plain;f=wpa_supplicant/wpa_supplicant.conf&lt;br /&gt;
&lt;br /&gt;
== A very ugly /etc/init.d/wlan startscript ==&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 #&lt;br /&gt;
 # wlan	This shell script starts and stops wlan.&lt;br /&gt;
 #&lt;br /&gt;
 # processname: wlan&lt;br /&gt;
 &lt;br /&gt;
 # Source function library.&lt;br /&gt;
 #. /etc/rc.d/init.d/functions&lt;br /&gt;
 # &amp;quot;written&amp;quot; by HdR&lt;br /&gt;
 &lt;br /&gt;
 RETVAL=0&lt;br /&gt;
 prog=&amp;quot;wlan&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # test -f /etc/default/$prog &amp;amp;&amp;amp; . /etc/default/$prog&lt;br /&gt;
 &lt;br /&gt;
 start() {&lt;br /&gt;
 	echo -n &amp;quot;Starting $prog: &amp;quot;&lt;br /&gt;
 	ifconfig eth0 up&lt;br /&gt;
 	wpa_supplicant -ieth0 -c/etc/wpa_supplicant/wpa_supplicant.conf -B&lt;br /&gt;
 	sleep 10&lt;br /&gt;
 	udhcpc eth0&lt;br /&gt;
 	RETVAL=$?&lt;br /&gt;
 	return $RETVAL&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 stop() {&lt;br /&gt;
 	# Stop daemons.&lt;br /&gt;
 	echo -n &amp;quot;Shutting down $prog: &amp;quot;&lt;br /&gt;
         killall wpa_supplicant&lt;br /&gt;
 	ifconfig eth0 down&lt;br /&gt;
 #        killproc gpsd&lt;br /&gt;
 	RETVAL=$?&lt;br /&gt;
 	return $RETVAL&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 # See how we were called.&lt;br /&gt;
 case &amp;quot;$1&amp;quot; in&lt;br /&gt;
   start)&lt;br /&gt;
 	start&lt;br /&gt;
 	;;&lt;br /&gt;
   stop)&lt;br /&gt;
 	stop&lt;br /&gt;
 	;;&lt;br /&gt;
   restart|reload)&lt;br /&gt;
 	stop&lt;br /&gt;
 	start&lt;br /&gt;
 	RETVAL=$?&lt;br /&gt;
 	;;&lt;br /&gt;
   *)&lt;br /&gt;
 	echo &amp;quot;Usage: $0 {start|stop|restart}&amp;quot;&lt;br /&gt;
 	exit 1&lt;br /&gt;
 esac&lt;br /&gt;
 &lt;br /&gt;
 exit $RETVAL&lt;br /&gt;
&lt;br /&gt;
Note: Don't forget to make this script executable with &amp;quot;chmod +x &amp;lt;filename&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Route internet connection through Wifi rather than USB ==&lt;br /&gt;
&lt;br /&gt;
Wifi is faster than USB, so it is a good idea to tell the FreeRunner to connect through it. Put the following in /etc/network/interfaces under eth0:&lt;br /&gt;
&lt;br /&gt;
up route del default gw 192.168.0.200&lt;br /&gt;
&lt;br /&gt;
This will remove your computer as the default gateway and use the  wireless one when the interface is brought up. User nickd reports that sometimes it fails so he has had to put it in twice.&lt;br /&gt;
&lt;br /&gt;
== ssh into FR over WiFi ==&lt;br /&gt;
dropbear, the ssh server, is configured to listen on the USB interface only. Wireless interfaces like wlan or bluetooth are disabled for security reasons (empty root password).&lt;br /&gt;
&lt;br /&gt;
If you want to enable ssh over WiFi, change the /etc/default/dropbear from:&lt;br /&gt;
&lt;br /&gt;
  DROPBEAR_PORT=`ip addr list usb0 | awk 'BEGIN { FS=&amp;quot;[ /]+&amp;quot; } /inet / { print  $3 }'`:22&lt;br /&gt;
&lt;br /&gt;
(which actually only prepends the usb0 ip address before the :22)&lt;br /&gt;
&lt;br /&gt;
into:&lt;br /&gt;
&lt;br /&gt;
  DROPBEAR_PORT=22&lt;br /&gt;
&lt;br /&gt;
* Be careful with this config file since it can close the only door into your phone.&lt;br /&gt;
&lt;br /&gt;
* Set a root password!&lt;br /&gt;
&lt;br /&gt;
== Available Software ==&lt;br /&gt;
&lt;br /&gt;
Programs in development providing GUI interfaces to administer WiFi connections:&lt;br /&gt;
&lt;br /&gt;
* [[Lint-wifi]]&lt;br /&gt;
* [[Mofi]]&lt;br /&gt;
* [[Camp-Wifi]]&lt;br /&gt;
&lt;br /&gt;
== External links ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/ WiFi on Linux]&lt;br /&gt;
&lt;br /&gt;
[[Category:Neo FreeRunner Hardware]]&lt;br /&gt;
[[Category:Networking]]&lt;/div&gt;</summary>
		<author><name>Michaelshiloh</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/FAQ</id>
		<title>FAQ</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/FAQ"/>
				<updated>2008-10-08T22:04:05Z</updated>
		
		<summary type="html">&lt;p&gt;Michaelshiloh: /* How do I get the WLAN working? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|FAQ}}&lt;br /&gt;
&lt;br /&gt;
== Getting Started with your Neo FreeRunner == &amp;lt;!-- Do not rename section! This section is linked from pages which linked to Getting_Started_FAQ. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== I just received my Neo FreeRunner. Where should I start?===&lt;br /&gt;
&lt;br /&gt;
See [[Getting_Started_with_your_Neo_FreeRunner|Getting Started with your Neo FreeRunner]]&lt;br /&gt;
&lt;br /&gt;
=== I have a problem or a question. Where should I go? ===&lt;br /&gt;
&lt;br /&gt;
First place to check is this FAQ. &lt;br /&gt;
&lt;br /&gt;
If your question isn't answered here, you should search the archives of the [http://lists.openmoko.org/mailman/listinfo/community community] or [http://lists.openmoko.org/mailman/listinfo/support support] mailing lists&lt;br /&gt;
&lt;br /&gt;
Next, try a larger Google search. &lt;br /&gt;
&lt;br /&gt;
If you still haven't found the answer to your question, post it on the appropriate list, [http://lists.openmoko.org/mailman/listinfo/community community] or [http://lists.openmoko.org/mailman/listinfo/support support]. &lt;br /&gt;
&lt;br /&gt;
Provide detailed information about what you are trying to find out, and use&lt;br /&gt;
the Subject line to summarize your question. More tips to asking effective&lt;br /&gt;
questions can be found&lt;br /&gt;
[[http://www.catb.org/~esr/faqs/smart-questions.html|here]]&lt;br /&gt;
&lt;br /&gt;
If your question requires confidentiality, you are welcome to contact [mailto:michael@openmoko.org Michael Shiloh] directly.&lt;br /&gt;
&lt;br /&gt;
You might also look for [[Openmoko_Local_Groups|local Openmoko users]] to find&lt;br /&gt;
some local support. A few minutes with a live person might solve a simple&lt;br /&gt;
misunderstanding that would take hours to understand via email. (If a local&lt;br /&gt;
club doesn't exist, this might be the perfect opportunity to start one!)&lt;br /&gt;
&lt;br /&gt;
=== I'd like to develop a custom product or application based on Openmoko and/or the Neo FreeRunner. How should I proceed? ===&lt;br /&gt;
&lt;br /&gt;
Send mail to michael@openmoko.org or to steve@openmoko.com&lt;br /&gt;
&lt;br /&gt;
=== Where are the latest downloads? ===&lt;br /&gt;
&lt;br /&gt;
Right [[Download|here]].&lt;br /&gt;
&lt;br /&gt;
==Openmoko==&lt;br /&gt;
&lt;br /&gt;
===What is Openmoko?===&lt;br /&gt;
Openmoko is two things:&lt;br /&gt;
&lt;br /&gt;
Openmoko is a Linux distribution designed for open mobile computing platforms, such as, but not limited to, cellphones.&lt;br /&gt;
&lt;br /&gt;
Openmoko is the company behind the Openmoko Linux distribution. Openmoko also manufactures mobile computing platforms, such as the Neo FreeRunner.&lt;br /&gt;
&lt;br /&gt;
===What is the purpose of this project?===&lt;br /&gt;
&lt;br /&gt;
By providing a completely open source Linux distribution, and by opening the schematics and CAD files, Openmoko's goal is to nurture explosive innovation (such as occurred with the Personal Computer) in the field of connected mobile computing, cellphones, and ubiquitous computing.&lt;br /&gt;
&lt;br /&gt;
===How do I join the Openmoko project? ===&lt;br /&gt;
&lt;br /&gt;
Join one or more of the mailing lists. A great place to start is the community list.&lt;br /&gt;
&lt;br /&gt;
Browse the wiki, and help improve it.&lt;br /&gt;
&lt;br /&gt;
Start or join an [[http://projects.openmoko.org/ Openmoko project]].&lt;br /&gt;
&lt;br /&gt;
Start or join a local group near you.&lt;br /&gt;
&lt;br /&gt;
===I'm not a programmer, but I have other skills. Can I still be of use? ===&lt;br /&gt;
&lt;br /&gt;
Absolutely. If you're a visual artist, you can help us with icons and other visuals. Musicians can help contribute ringtones and other sounds. Marketing? Sales? Information visualization? Join the community mailing lists, introduce yourself, and you'll soon find a place to put your skills to good use.&lt;br /&gt;
&lt;br /&gt;
== Neo FreeRunner - Introductory/Overview/Conceptual Information==&lt;br /&gt;
&lt;br /&gt;
=== What is the [[Neo FreeRunner]]? === &lt;br /&gt;
&lt;br /&gt;
The [[Neo FreeRunner]] is an open cellphone designed for the Openmoko Linux distribution. By open we mean that (a) all chips have been chosen to allow their drivers to be completely open sourced and (b) the schematics and the plastic (CAD) files are available as well.&lt;br /&gt;
&lt;br /&gt;
For more details, see [[Neo FreeRunner|Neo FreeRunner specifications]]&lt;br /&gt;
&lt;br /&gt;
=== What can I do with the Neo FreeRunner? ===&lt;br /&gt;
&lt;br /&gt;
The Neo FreeRunner is designed for everyday use by end users and for continued software development and improvements by the Openmoko team and the Openmoko community.&lt;br /&gt;
&lt;br /&gt;
The Openmoko software is not yet ready for everyday use.&lt;br /&gt;
&lt;br /&gt;
The question is almost what can you NOT do with this phone - eventually there will be a huge range of free software applications allowing both end users and developers to get much more out of this phone than a standard &amp;quot;locked&amp;quot; mobile phone using features like the integrated GPS, bluetooth, wifi and accelerometers.&lt;br /&gt;
&lt;br /&gt;
=== What are the benefits of an &amp;quot;open&amp;quot; phone over a &amp;quot;closed&amp;quot; phone? ===&lt;br /&gt;
&lt;br /&gt;
In a conventional closed phone, the handset maker and the mobile network operator work together to provide a service to you that best suits their business model.    The capabilities of a modern smartphone equipped with GPS, Wifi and bluetooth are amazing yet unfortunately inaccessible: many features are &amp;quot;locked down&amp;quot; because they do not suit the network operator.    Up until now it has been difficult to buy a phone on which you have freedom to install sofware which is not controlled by the network operators - Openmoko changes that!&lt;br /&gt;
&lt;br /&gt;
A list of examples of &amp;quot;closed&amp;quot; behaviour has been started here - [[Problems of typical &amp;quot;closed&amp;quot; phones]]&lt;br /&gt;
&lt;br /&gt;
=== What can we expect in future Neos? ===&lt;br /&gt;
&lt;br /&gt;
Please join one of the [http://lists.openmoko.org mailing lists] to follow and participate in this discussion.&lt;br /&gt;
&lt;br /&gt;
=== Purchasing / Shipping / Versions ===&lt;br /&gt;
&lt;br /&gt;
==== Where can I buy the [[Neo FreeRunner]]? How much?====&lt;br /&gt;
&lt;br /&gt;
http://www.openmoko.com. We sell both directly and through a growing list of distributors.&lt;br /&gt;
&lt;br /&gt;
If you buy directly from the Openmoko webshop you will pay USD $399 for the [[Neo FreeRunner]], USD $99 for the debug board. You can also purchase boxes of 10 FreeRunners at a price of USD $369 each. If you don't have a need for 10 units, you can join an existing or form a new group at [[Group_sales]].&lt;br /&gt;
&lt;br /&gt;
==== On what bands does the Neo FreeRunner operate? Will it work in my area? ====&lt;br /&gt;
&lt;br /&gt;
* The Neo FreeRunner is a tri-band GSM phone. It is available in a 850/1800/1900MHz version for North America and a 900/1800/1900MHz version for the rest of the world.&lt;br /&gt;
&lt;br /&gt;
==== Do I need the debug board? ==== &lt;br /&gt;
&lt;br /&gt;
With the Neo FreeRunner and NO debug board you can do:&lt;br /&gt;
* Kernel development&lt;br /&gt;
* Application development&lt;br /&gt;
* U-boot updates(equivalent to PC BIOS). Neo 1973 users should only use a tested image to avoid the possibility of bricking the Neo 1973. Neo FreeRunner users do not have this concern, as a bad u-boot can always be updated using the failsafe u-boot in NOR flash&lt;br /&gt;
* Kernel and/or rootfs updates using [[Dfu-util]].&lt;br /&gt;
&lt;br /&gt;
With a debug board you can additionally do:&lt;br /&gt;
* Use JTAG to debug u-boot, device drivers, or the kernel&lt;br /&gt;
* Use the kernel console&lt;br /&gt;
* Neo 1973 users can unbrick their device if they flash a wrong or non-working u-boot image.&lt;br /&gt;
* Neo FreeRunner users can update u-boot in NOR flash&lt;br /&gt;
&lt;br /&gt;
In summary, it is rare for a Neo FreeRunner user to require a debug board.&lt;br /&gt;
&lt;br /&gt;
To emphasize, the debug board is '''not''' required in order to develop applications, system software, or even kernel or device drivers. The debug board is '''not''' required in order to gain access to the source code or the development tools.&lt;br /&gt;
&lt;br /&gt;
==== Where do I ask a shipping related question? ==== &lt;br /&gt;
&lt;br /&gt;
Visit [http://www.openmoko.com/ openmoko.com]&lt;br /&gt;
&lt;br /&gt;
=== How do I find out what version of hardware I have? ===&lt;br /&gt;
&lt;br /&gt;
:cat /proc/cpuinfo&lt;br /&gt;
&lt;br /&gt;
Search for the line that says &amp;quot;Revision&amp;quot;. There will be 4 digits, of the form &amp;quot;0350&amp;quot;. The '5' in this example indicates hardware revision 5.&lt;br /&gt;
&lt;br /&gt;
== Neo FreeRunner Known Issues==&lt;br /&gt;
&lt;br /&gt;
=== Software issues, distribution-wise ===&lt;br /&gt;
&lt;br /&gt;
Issues relating to software are in the &amp;quot;known issues&amp;quot; section for each distribution. Navigate there via the distributions page - [[Distributions]].&lt;br /&gt;
&lt;br /&gt;
=== Firmware and hardware issues ===&lt;br /&gt;
&lt;br /&gt;
Issues relating to firmware and hardware are in [[Neo_FreeRunner_Hardware_Issues|Neo FreeRunner Hardware Issues]].&lt;br /&gt;
&lt;br /&gt;
Note that some issues might involve a combination of hardware and software.&lt;br /&gt;
&lt;br /&gt;
=== Selected, commonly-encountered issues ===&lt;br /&gt;
&lt;br /&gt;
Some selected known issues that are commonly encountered and reported on mailing lists are described below.&lt;br /&gt;
&lt;br /&gt;
==== My FreeRunner won't register with my cellphone network. What should I do?====&lt;br /&gt;
&lt;br /&gt;
Please see [[Neo_FreeRunner_Hardware_Issues#Some_SIMs_Don.27t_Work|some SIMs don't work]].&lt;br /&gt;
&lt;br /&gt;
==== SIM compatibility: It looks like my SIM card is not working; how do I run diagnostics? ====&lt;br /&gt;
&lt;br /&gt;
Here is how to check: follow [[Manually_using_GSM]] until you get an OK prompt. &lt;br /&gt;
&lt;br /&gt;
For more detailed documentation, please refer to [[FreeRunner_unable_to_work_with_3G_SIM_cards]] and [[Carriers]].&lt;br /&gt;
&lt;br /&gt;
==== I read somewhere that a GSM firmware update is available to fix this problem====&lt;br /&gt;
&lt;br /&gt;
The GSM firmware update is applicable only to the Neo 1973. Any fixes in the update are already implemented in the GSM firmware in the Neo FreeRunner.&lt;br /&gt;
&lt;br /&gt;
==== Why won't the FreeRunner boot even with the charger connected? ====&lt;br /&gt;
&lt;br /&gt;
See [[Neo_FreeRunner_Hardware_Issues#Can.27t_boot_with_discharged_or_missing_battery|Can't boot with discharged or missing battery]].&lt;br /&gt;
 &lt;br /&gt;
==== Flashing (dfu-util) -- dfu-util does not find the phone. ====&lt;br /&gt;
&lt;br /&gt;
In brief, you need to boot the phone into the NAND or NOR u-boot menu before dfu-util will be able to connect. dfu-util uses the USB DFU (Universal Serial Bus Device Firmware Upgrade) protocol, which is only available at the u-boot menu, and '''not''' Ethernet over USB, which is what is available when the phone has booted fully. &lt;br /&gt;
&lt;br /&gt;
Tip: If you're just trying out different distributions, you don't need to flash them with dfu-util; you can try out new distributions by putting them on the microSD card and booting from the card instead. If you'd like to do this instead of flashing, see [[Booting from SD]].&lt;br /&gt;
&lt;br /&gt;
To get the u-boot menu:&lt;br /&gt;
# Press and hold the AUX button &lt;br /&gt;
# Press the Power button until the phone powers on and displays the boot menu&lt;br /&gt;
# Release both buttons &lt;br /&gt;
# Press and release AUX to move the lightbar, so that the menu will not time out and boot the phone). &lt;br /&gt;
&lt;br /&gt;
Also see the wiki pages/sections:&lt;br /&gt;
* [[Booting the Neo FreeRunner]]&lt;br /&gt;
* [[Bootloader#Device Firmware Upgrade]]&lt;br /&gt;
* [[Flashing the Neo FreeRunner]]&lt;br /&gt;
* [[Dfu-util]]&lt;br /&gt;
&lt;br /&gt;
==== Why do I experience poor audio quality or buzzing noises during calls?====&lt;br /&gt;
See [http://wiki.openmoko.org/wiki/Neo_FreeRunner_Hardware_Issues#Poor_Audio_Quality this issue on the FreeRunner Hardware Issues page]&lt;br /&gt;
&lt;br /&gt;
====Suspend/resume may corrupt SD card's partition table====&lt;br /&gt;
&lt;br /&gt;
See [http://wiki.openmoko.org/wiki/Neo_FreeRunner_Hardware_Issues#Suspend.2Fresume_corrupts_SD_card.27s_partition_table this issue on the FreeRunner Hardware Issues page]. See ticket [https://docs.openmoko.org/trac/ticket/1802 #1802].&lt;br /&gt;
&lt;br /&gt;
==Hardware and Usage-related Questions==&lt;br /&gt;
&lt;br /&gt;
=== Booting ===&lt;br /&gt;
&lt;br /&gt;
==== How do I boot into U-boot? How do I select NAND or NOR FLASH? ====&lt;br /&gt;
&lt;br /&gt;
See [[Booting_the_Neo_FreeRunner|here]]&lt;br /&gt;
&lt;br /&gt;
=== Battery and Battery Charging===&lt;br /&gt;
&lt;br /&gt;
==== What is the expected battery life? ====&lt;br /&gt;
See [[Neo FreeRunner (GTA02) Battery#Notes_about_expected_battery_life]] and more battery information in [[Neo_FreeRunner_(GTA02)_Battery]]&lt;br /&gt;
&lt;br /&gt;
==== How do I enable fast charge mode for anything but the official mains charger? ====&lt;br /&gt;
See [[Forcing fast charge mode]].&lt;br /&gt;
&lt;br /&gt;
==== Can the Neo FreeRunner charge when turned off? When suspended? ====&lt;br /&gt;
&lt;br /&gt;
The Neo FreeRunner can '''not''' charge when turned off.&lt;br /&gt;
&lt;br /&gt;
The Neo FreeRunner '''can''' charge when suspended.&lt;br /&gt;
&lt;br /&gt;
==== Can the Neo charge and use devices on a USB hub at the same time? ====&lt;br /&gt;
&lt;br /&gt;
See [[USB_host#Providing_power_to_run_and_charge_the_Neo_while_in_host_mode|here]]&lt;br /&gt;
&lt;br /&gt;
===Wireless Connectivity===&lt;br /&gt;
&lt;br /&gt;
====What kind of wireless connectivity does the FreeRunner have? ====&lt;br /&gt;
&lt;br /&gt;
The FreeRunner has the following connectivity options:&lt;br /&gt;
* Tri-band GSM (850/1800/1900 MHz in North America, and 900/1800/1900 MHz, commonly referred to as &amp;quot;European tri-band&amp;quot;, for other parts of the world). For a list of compatible service providers, see [[Neo1973 compatible cellphone providers]].&lt;br /&gt;
* GPRS Class12/CS4 2.5G (Not EDGE)&lt;br /&gt;
* Bluetooth 2.0 EDR&lt;br /&gt;
* WiFi: Atheros AR6K in [[GTA02#.22Phase_2.22_.28GTA02.2C_.22Mass_Market.22.29|GTA02]]. (No 3G in year 2007 models)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== GSM/GPRS information ====&lt;br /&gt;
&lt;br /&gt;
The following pages contain very useful information:&lt;br /&gt;
&lt;br /&gt;
* [[Gsmd|GSM Daemon]]&lt;br /&gt;
&lt;br /&gt;
* [[GSM|General GSM page]]&lt;br /&gt;
&lt;br /&gt;
* [[Hardware:AT_Commands|AT commands]]&lt;br /&gt;
&lt;br /&gt;
* [http://freeyourphone.de/portal_v1/viewtopic.php?f=21&amp;amp;t=295#p2956 Useful script for GPRS]&lt;br /&gt;
&lt;br /&gt;
==== How do I get the WLAN (802.11, Wi-Fi, wireless network) working? ====&lt;br /&gt;
&lt;br /&gt;
See [[GTA02 WLAN]]&lt;br /&gt;
&lt;br /&gt;
==== How do I get the GPS working? ====&lt;br /&gt;
&lt;br /&gt;
See [[GTA02 GPS]]&lt;br /&gt;
&lt;br /&gt;
==== It takes a long time (10min+) before the FreeRunner gets the first GPS data/readings ====&lt;br /&gt;
&lt;br /&gt;
See [[GPS Problems]].&lt;br /&gt;
&lt;br /&gt;
==== How do I get Bluetooth working manually? ====&lt;br /&gt;
&lt;br /&gt;
See [[Manually_using_Bluetooth]]&lt;br /&gt;
&lt;br /&gt;
==== How do I use an external Bluetooth keyboard with the FreeRunner ? ====&lt;br /&gt;
..TBA..&lt;br /&gt;
&lt;br /&gt;
====Can I bridge to an Ethernet (wired or unwired) network via a suitable Bluetooth enabled router? ====&lt;br /&gt;
&lt;br /&gt;
Yes - see [http://gentoo-wiki.com/HOWTO_Configure_a_bluetooth_network_access_point this howto for how to configure a linux computer to act as such a router] and [[Bluetooth Support]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== USB ===&lt;br /&gt;
&lt;br /&gt;
==== How do I connect a USB memory-stick etc? ====&lt;br /&gt;
&lt;br /&gt;
This requires an adapter Mini-B 5-pole =&amp;gt; Type A jack or an adapter jack =&amp;gt; jack. See [[Host Mode]] for more information.&lt;br /&gt;
&lt;br /&gt;
====Once I have such an adapter, can I use it to connect 2 Neos to each other?====&lt;br /&gt;
&lt;br /&gt;
This question is equivalent to '''How to connect two [Unix/Linux] computers via USB cable and what sort of special cable is needed?''' -&amp;gt; http://www.linuxquestions.org/questions/linux-general-1/connecting-two-computers-with-a-usb-cable-data-cable-411073&lt;br /&gt;
&lt;br /&gt;
It should work if one Neo is set to Host mode and the other one set to Device mode. One Neo could give power to the USB-port it the other Neo's battery is low. ''(I have to verify this)''&lt;br /&gt;
&lt;br /&gt;
==== How do I use an external USB keyboard with the FreeRunner ? ====&lt;br /&gt;
&lt;br /&gt;
Run:&lt;br /&gt;
 echo &amp;quot;host&amp;quot; &amp;gt; /sys/devices/platform/s3c2410-ohci/usb_mode&lt;br /&gt;
 echo &amp;quot;1&amp;quot; &amp;gt; /sys/devices/platform/neo1973-pm-host.0/hostmode&lt;br /&gt;
&lt;br /&gt;
These commands will put the FreeRunner into powered USB host mode. After this, just plug in the keyboard and it'll work. Personally, I've made a .desktop file to switch into and out of host mode. &lt;br /&gt;
&lt;br /&gt;
To switch back to unpowered device mode just run:&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;device&amp;quot; &amp;gt; /sys/devices/platform/s3c2410-ohci/usb_mode&lt;br /&gt;
 echo &amp;quot;0&amp;quot; &amp;gt; /sys/devices/platform/neo1973-pm-host.0/hostmode&lt;br /&gt;
&lt;br /&gt;
Finally you will need a &lt;br /&gt;
USB Type A Female to Female adapter. For more details see&lt;br /&gt;
[[Specialized_USB_cables#Attaching_the_Neo_.28acting_as_a_USB_host.29_to_a_USB_device|here]]&lt;br /&gt;
&lt;br /&gt;
=== Display ===&lt;br /&gt;
&lt;br /&gt;
==== Can the phone play VGA video? ====&lt;br /&gt;
&lt;br /&gt;
No, it can do about 20 fps QVGA with software, and something beetween QVGA and VGA playing MPEG-4 using hardware (at resonable fps). Scaling is also done with GPU hardware.&lt;br /&gt;
&lt;br /&gt;
==== How to change the background picture of the root window? ====&lt;br /&gt;
&lt;br /&gt;
{{Note|This probably differs for each distribution? Need to insert, or link to, relevant info for each. --[[User:Eddsouza|eddsouza]] 09:29, 7 September 2008 (UTC)}}&lt;br /&gt;
&lt;br /&gt;
Look at [[Today/2007.2#Adjust_UI_components_at_runtime]].&lt;br /&gt;
&lt;br /&gt;
=== Storage ===&lt;br /&gt;
&lt;br /&gt;
==== What microSDHC-cards are supported? ====&lt;br /&gt;
&lt;br /&gt;
See [[Supported_microSD_cards|here]]&lt;br /&gt;
&lt;br /&gt;
===System-level information===&lt;br /&gt;
&lt;br /&gt;
==== What hardware signals are available?====&lt;br /&gt;
&lt;br /&gt;
To simplify extending the hardware, various signals of interest are brought out via the JTAG connector and can be easily accessed with the debug board:&lt;br /&gt;
&lt;br /&gt;
(TBA: List of signals)&lt;br /&gt;
&lt;br /&gt;
Some additional signals that did not fit on the JTAG connector are brought out to solder pads:&lt;br /&gt;
&lt;br /&gt;
(TBA: List of signals)&lt;br /&gt;
&lt;br /&gt;
==== Is the JTAG interface that comes with GTA01 compatible with GTA02?====&lt;br /&gt;
&lt;br /&gt;
Yes&lt;br /&gt;
&lt;br /&gt;
==== How do I get low-level hardware-related functions, like power up device, dump register? ====&lt;br /&gt;
&lt;br /&gt;
See [[GTA02_sysfs]]&lt;br /&gt;
&lt;br /&gt;
=== Inputs ===&lt;br /&gt;
&lt;br /&gt;
==== How can I type a '/' in the software keyboard? ====&lt;br /&gt;
&lt;br /&gt;
See [[Switching Keyboards]]&lt;br /&gt;
&lt;br /&gt;
==== How do I get a QWERTY layout software keyboard?====&lt;br /&gt;
&lt;br /&gt;
See [[Switching Keyboards]]&lt;br /&gt;
&lt;br /&gt;
=== Miscellaneous ===&lt;br /&gt;
&lt;br /&gt;
====Will Openmoko &amp;quot;Just Work&amp;quot; with Mac OS X? ====&lt;br /&gt;
&lt;br /&gt;
There has been some discussion of this on the mailing list. There is motivation, and there are interested developers. &lt;br /&gt;
Not being a Mac OS X user, I don't know enough&lt;br /&gt;
to summarize the discussion to answer this question. Can someone please fill in?&lt;br /&gt;
&lt;br /&gt;
For IP over USB cable connectivity, it is planned to improve/adapt the AJZaurusUSB driver, allowing ssh into the Openmoko.&lt;br /&gt;
&lt;br /&gt;
It is expected that (Bluetooth/UB) SyncML based interoperation for&lt;br /&gt;
contacts and events can easily be achieved by a patch&lt;br /&gt;
to the Apple iSync configuration tables.&lt;br /&gt;
&lt;br /&gt;
There is an open source implementation of Cocoa (GNUstep) that aims to run MacOS X compatible applications (sort of&lt;br /&gt;
PPC/x86/ARM universal binaries) on Openmoko devices: mySTEP.&lt;br /&gt;
&lt;br /&gt;
==Software==&lt;br /&gt;
&lt;br /&gt;
===General Questions===&lt;br /&gt;
&lt;br /&gt;
====Is it completely free software/open source? ====&lt;br /&gt;
&lt;br /&gt;
Yes. All software that runs on the main CPU and can be updated by the user is available in source.&lt;br /&gt;
&lt;br /&gt;
Firmware in &amp;quot;black box&amp;quot; hardware modules that can not be modified by users is not available in source form. Effectively, these modules are &amp;quot;hardware only&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
This allows, for example, that the driver for the GSM module be completely open sourced without violating any FCC rules.&lt;br /&gt;
&lt;br /&gt;
====Can the software do/connect to/... ====&lt;br /&gt;
&lt;br /&gt;
Reviews of the latest &amp;quot;bleeding edge&amp;quot; daily builds of the Openmoko software stack can be seen [[Snapshot_review|here]]&lt;br /&gt;
&lt;br /&gt;
At the moment, the answer to many other questions is &amp;quot;no&amp;quot;. The phone is at the moment a small Linux box with a touchscreen, a working dialer and some prototype apps.  Most do not function in any way that would be suitable for end-users.  If you want to add a feature or application request, then look over the existing [[Applications]] and either add one, or add a feature request to the applications page.&lt;br /&gt;
&lt;br /&gt;
==== Does Openmoko run on any other hardware? ====&lt;br /&gt;
&lt;br /&gt;
You can run it on your [[How_to_run_Openmoko_Apps_on_PC|PC]].  You may be able to run it on other [[Openmoko-supported_hardware | mobile platforms]]&lt;br /&gt;
&lt;br /&gt;
==== Can Java applications from other mobile phones run on the FreeRunner? ====&lt;br /&gt;
&lt;br /&gt;
I think a lot of work must still be done, but [[Java|this]] wiki page has some information&lt;br /&gt;
&lt;br /&gt;
===Distributions===&lt;br /&gt;
&lt;br /&gt;
====What is the stock distribution image that comes on the Neo FreeRunner?====&lt;br /&gt;
&lt;br /&gt;
The 2007.2 distribution - see [[Distributions#2007.2| 2007.2 factory default software image]]&lt;br /&gt;
&lt;br /&gt;
=====Are there any known issues with the factory-installed 2007.2 image on the Neo FreeRunner?=====&lt;br /&gt;
&lt;br /&gt;
Yes, see [[Om_2007.2#Known_Issues|2007.2 Known Issues]]&lt;br /&gt;
&lt;br /&gt;
===== Where can I download and reinstall the factory default image? =====&lt;br /&gt;
&lt;br /&gt;
See [[Flashing_the_Neo_FreeRunner|Flashing the Neo FreeRunner]]&lt;br /&gt;
&lt;br /&gt;
====What alternate distributions are available for the Neo FreeRunner?====&lt;br /&gt;
&lt;br /&gt;
See [[Distributions|Distributions]]&lt;br /&gt;
&lt;br /&gt;
==== How do I find out what image versions are in use on the phone? ====&lt;br /&gt;
&lt;br /&gt;
You can run the commands given below on the phone (in an SSH session from your host PC, or in the Terminal application on the phone itself)&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;5&amp;quot; align=&amp;quot;left&amp;quot;&lt;br /&gt;
! To find out&lt;br /&gt;
! Run&lt;br /&gt;
|- &lt;br /&gt;
| Kernel version that is currently running&lt;br /&gt;
| &lt;br /&gt;
  uname -a&lt;br /&gt;
|-&lt;br /&gt;
| The version of the root filesystem that you are currently using&lt;br /&gt;
| &lt;br /&gt;
  cat /etc/version &lt;br /&gt;
or &lt;br /&gt;
  cat /etc/om-version&lt;br /&gt;
|-&lt;br /&gt;
| The versions of u-boot on the phone (The FreeRunner has one u-boot image in NOR memory, and one in NAND - see [[Booting the Neo FreeRunner]] for more information)&lt;br /&gt;
| &lt;br /&gt;
  grep  Bootloader /dev/mtdblock0  (yields the NOR u-boot version)&lt;br /&gt;
or&lt;br /&gt;
  grep  Bootloader /dev/mtdblock1  (yields the NAND u-boot version)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
====Where do I get the latest version of the official Openmoko image, 2008.8 (also known as ASU)?====&lt;br /&gt;
&lt;br /&gt;
See [[Download#Om_2008.8_images_.28ASU.29| download Om 2008.8 images]]&lt;br /&gt;
&lt;br /&gt;
===== Why are the buttons in TangoGPS too large? The zoom out is missing! =====&lt;br /&gt;
&lt;br /&gt;
There is no GTK engine or theme installed with the ASU build.  Fortunately, this is easy to fix!&lt;br /&gt;
&lt;br /&gt;
At a terminal:&lt;br /&gt;
:&amp;lt;tt&amp;gt;# opkg install moko-gtk-theme moko-gtk-engine&amp;lt;/tt&amp;gt;&lt;br /&gt;
:&amp;lt;tt&amp;gt;# ln -s /usr/share/themes/Moko/gtk-2.0/gtkrc /home/root/.gtkrc-2.0&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now you have pretty colors and widgets, but the font is too big.  Edit &amp;lt;tt&amp;gt;/usr/share/themes/Moko/gtk-2.0/gtkrc&amp;lt;/tt&amp;gt; in your favorite text editor and add the following line:&lt;br /&gt;
:&amp;lt;tt&amp;gt;gtk-font-name = &amp;quot;Sans 4&amp;quot;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To use the openmoko icon theme, install it with:&lt;br /&gt;
:&amp;lt;tt&amp;gt;# opkg install openmoko-icon-theme-standard2&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and enable it editing the &amp;lt;tt&amp;gt;/usr/share/themes/Moko/gtk-2.0/gtkrc&amp;lt;/tt&amp;gt; adding the line:&lt;br /&gt;
:&amp;lt;tt&amp;gt;gtk-icon-theme-name=&amp;quot;openmoko-standard&amp;quot;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You shouldn't even need to restart the device, although you will need to restart any GTK-based programs.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Can the Neo FreeRunner dual boot? Multiple boot?====&lt;br /&gt;
&lt;br /&gt;
Since the Neo FreeRunner can boot from the micro SD card, you can install and boot from as many distributions as will fit on your card. See [[Boot_from_sd_card|Booting from SD]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====How do I install Debian on the Neo FreeRunner?====&lt;br /&gt;
&lt;br /&gt;
See [[Debian#Installation|Debian Installation]]&lt;br /&gt;
&lt;br /&gt;
=====Are there any known issues with Debian on the Neo FreeRunner?=====&lt;br /&gt;
&lt;br /&gt;
See [[Debian#Known_Issues|Debian Known Issues]]&lt;br /&gt;
&lt;br /&gt;
=====How do I replace the matchbox window manager with the xfce window manager?=====&lt;br /&gt;
&lt;br /&gt;
Replace the matchbox-wm line in zhone-session with xfwm4 to start the xfce-wm.&lt;br /&gt;
&lt;br /&gt;
Here's my (Fox Mulder) /usr/bin/zhone-session file which works with xfwm and matchbox keyboard popup:&lt;br /&gt;
&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 &lt;br /&gt;
 #zhone &amp;amp;&lt;br /&gt;
 exec startxfce4 &amp;amp;&lt;br /&gt;
 matchbox-keyboard-toggle &amp;amp;&lt;br /&gt;
 #exec matchbox-window-manager -use_titlebar yes&lt;br /&gt;
 exec xfwm4&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Applications ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====What software is on the phone?====&lt;br /&gt;
&lt;br /&gt;
At the moment, almost no 'end-user' applications are present and working in a usable state.&lt;br /&gt;
It is possible to make and receive calls in some software revisions, this frequently breaks though.&lt;br /&gt;
&lt;br /&gt;
====What software can be installed on the phone?====&lt;br /&gt;
&lt;br /&gt;
Pretty much any that can be cross-compiled for the ARM architecture.&lt;br /&gt;
&lt;br /&gt;
====Will it be possible to use popular VoIP applications such as Skype on the Openmoko platform? ====&lt;br /&gt;
&lt;br /&gt;
Since it has WiFi the FreeRunner should be a good platform for VOIP use.    &lt;br /&gt;
&lt;br /&gt;
In either case please check for softphone apps ported to the Openmoko distribution at the [http://projects.openmoko.org/  projects] page. We need to focus efforts on free software. Not convincing non-free software companies to release binaries for our Neos.&lt;br /&gt;
&lt;br /&gt;
====Will it be possible to use popular Instant Messaging applications such as MSN Messenger? ====&lt;br /&gt;
&lt;br /&gt;
Very probably. MSN is closed source and will only run where Microsoft wants you to run it. But there are many Open Source IM clients, many of which have a plugin architecture and so support the use of more than one IM protocol, even simultaneously. One example is [[Pidgin]], formerly called GAIM. GPRS does induce a certain amount of latency but that should not be a problem for simple, text-oriented chat between parties. And the GTA02's WiFi  will make it even better.&lt;br /&gt;
&lt;br /&gt;
==== Does it support Flash so can I watch YouTube? ====&lt;br /&gt;
You don't really need Flash to watch YouTube videos, for example, if you want to watch www.youtube.com/watch?v=k9QLdK6pFCI just install mplayer and use this command: &lt;br /&gt;
 mplayer http://ytpocket.com/getflv.php?id=k9QLdK6pFCI&lt;br /&gt;
or use this small script with the video URL as the first parametre:&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 vid=`echo &amp;quot;$1&amp;quot; | sed 's/.*\?.*=\(.*\)/\1/'`&lt;br /&gt;
 mplayer http://ytpocket.com/getflv.php?id=$vid&lt;br /&gt;
&lt;br /&gt;
=== Package Management===&lt;br /&gt;
&lt;br /&gt;
==== How do I install and manage software on Openmoko? ====&lt;br /&gt;
&lt;br /&gt;
See [http://handhelds.org/moin/moin.cgi/Ipkg here]&lt;br /&gt;
&lt;br /&gt;
==== What about opkg? ====&lt;br /&gt;
&lt;br /&gt;
See [[Opkg|here]]&lt;br /&gt;
&lt;br /&gt;
==== What is the meaning of the error codes from ipkg? ====&lt;br /&gt;
&lt;br /&gt;
See [[Opkg#Error_Codes|here]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Does opkg support packages autocompletion ? ====&lt;br /&gt;
&lt;br /&gt;
It's possible now, see [http://tropfacile.info/?/Linux/28-Openmoko-Opkg-Autocompletion-With-Packages-Names The opkg autocompletion]&lt;br /&gt;
&lt;br /&gt;
===Development===&lt;br /&gt;
&lt;br /&gt;
====How can I compile programs for the Neo FreeRunner? ====&lt;br /&gt;
&lt;br /&gt;
See [[Toolchain]].&lt;br /&gt;
&lt;br /&gt;
====Is there an emulator available for Openmoko? ====&lt;br /&gt;
&lt;br /&gt;
For a lot of testing and development work you can simply run Openmoko directly on your PC.&lt;br /&gt;
&lt;br /&gt;
=====QEMU=====&lt;br /&gt;
&lt;br /&gt;
QEMU can emulate the Neo 1973 and the Neo FreeRunner. The [[MokoMakefile]] has support for automatically building, flashing, and running [[Openmoko under QEMU|the Neo emulator]].&lt;br /&gt;
&lt;br /&gt;
*Ubuntu users can follow the instructions in [[Automatic_emulation_in_Ubuntu]]&lt;br /&gt;
&lt;br /&gt;
*Users of other Linux distributions can try the following:&lt;br /&gt;
:&amp;quot;make qemu” will build qemu-neo1973, download the latest official openmoko images, flash the images into the virtual NAND flash, and run the emulator.&lt;br /&gt;
&lt;br /&gt;
See [[Qemu]] for more advanced information on running Openmoko in Qemu.&lt;br /&gt;
&lt;br /&gt;
=====Xoo=====&lt;br /&gt;
&lt;br /&gt;
[http://projects.o-hand.com/xoo Xoo]. Koen says: &amp;quot;Xoo should be enough for most applications people will develop, since most don't need access to the GSM uart directly. If you're hardcore you could use qemu + xoo, but that still doesn't emulate all the hardware quirks (e.g. unaligned access)&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Update: Stefan Schmidt has resized the [[Neo1973]] Mock-up and written a small description for xoo. In his words:&lt;br /&gt;
&lt;br /&gt;
It's not really usable at all, as you need a really high screen resolution to fit the whole picture on your screen. And of course the dpi are wrong. Even no buttons because I can't remember where they are at the case.&lt;br /&gt;
&lt;br /&gt;
http://www.datenfreihafen.org/~stefan/OpenMoko/neo1973-xoo-device.tar.bz2&lt;br /&gt;
&lt;br /&gt;
Start with 'xoo --device /path/to/neo1973.xml'&lt;br /&gt;
&lt;br /&gt;
Some more details [[Getting_Openmoko_working_on_host_with_Xoo|here]].&lt;br /&gt;
&lt;br /&gt;
=====Xephyr=====&lt;br /&gt;
&lt;br /&gt;
Or use Xephyr directly with locally compiled programs (e.g. matchbox svn + openmoko):&lt;br /&gt;
 Xephyr -screen 480x640 -nolisten tcp -ac :1 &amp;amp;&lt;br /&gt;
 export DISPLAY=:1&lt;br /&gt;
 export LD_LIBRARY_PATH=/usr/local/lib&lt;br /&gt;
 matchbox-window-manager -display $DISPLAY -use_titlebar no \&lt;br /&gt;
  -use_super_modal yes -use_lowlight yes -use_dialog_mode static \&lt;br /&gt;
  -use_cursor yes &amp;amp;&lt;br /&gt;
 matchbox-panel --geometry=480x44 --end-applets=clock &amp;amp;&lt;br /&gt;
 openmoko-footer &amp;amp;&lt;br /&gt;
 openmoko-taskmanager &amp;amp;&lt;br /&gt;
&lt;br /&gt;
====Where can I find some type of tutorial for a 'Hello, world' on Openmoko? ====&lt;br /&gt;
&lt;br /&gt;
This should get you started:&lt;br /&gt;
* [[Building_a_hello_world_application]]&lt;br /&gt;
* http://www.gtk.org/documentation.html#Tutorials&lt;br /&gt;
&lt;br /&gt;
====Can PalmOS apps applications be ported to run on Openmoko? ====&lt;br /&gt;
&lt;br /&gt;
Making legacy apps written for the &amp;quot;Garnet&amp;quot; OS (née &amp;quot;Palm OS&amp;quot;) run on Linux&lt;br /&gt;
is decidedly non-trivial.&lt;br /&gt;
&lt;br /&gt;
PalmOS apps are in general very hard to simply 'port'. Particularly well-designed programs may make it possible.&lt;br /&gt;
&lt;br /&gt;
The ACCESS Linux Platform will include Garnet on Host (GHost), a PalmOS emulator that will support M6800 (68k) and ARM PalmOS applications. This part (GarnetVM and the .prc loader) will however be closed-source and likely under a restrictive license (fact confirmed by ACCESS Co. employees), making it rather unusable. In addition GarnetVM depends on Hiker and other packages.&lt;br /&gt;
&lt;br /&gt;
It is possible that POSE, an emulator that simulates a Palm device on a Linux host could be used to allow 68k based applications to run.  This emulator has been around a long time; one expects that it will also run on Openmoko, but this has to be considered a short-term bandaid rather than a long-term solution.&lt;br /&gt;
&lt;br /&gt;
Hopefully emulation will be necessary only for M68000 code (pre-PalmOS 5) while native ARM programs can run natively under Linux, provided a proper set of PalmOS libraries and a .prc executable loader.&lt;br /&gt;
&lt;br /&gt;
==== Does it support Java? ====&lt;br /&gt;
It will have eventually, if you help us to get it working. Some good places to keep track of would be [http://projects.openmoko.org/projects/java-pkg/ projects.openmoko.org] and [https://phoneme.dev.java.net/ PhoneME].&lt;br /&gt;
&lt;br /&gt;
Project [[https://wiki.evolvis.org/jalimo/index.php/Jalimo Jalimo]] is a project aiming to provide a Java stack on mobile devices. There is a [https://wiki.evolvis.org/jalimo/index.php/Openmoko port of Jalimo] for Openmoko.&lt;br /&gt;
The [[Debian]] distribution supports CacaoVM and JamVM through apt-get. See [[Java]] for more infos.&lt;br /&gt;
&lt;br /&gt;
==== Does it support Ruby? ====&lt;br /&gt;
&lt;br /&gt;
For Ruby 1.9, please refer to http://blog.sparkymat.net/2008/08/10/ruby-19-on-openmoko/&lt;br /&gt;
&lt;br /&gt;
For Ruby 1.8.6, please refer to http://blog.wolfman.com/articles/2008/08/10/ruby-1-8-6-on-openmoko-freerunner&lt;br /&gt;
&lt;br /&gt;
==== Does it support Python? ====&lt;br /&gt;
&lt;br /&gt;
Yes, with some caveats. See [[Python]] for more information.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====How do I dump details about X11 configuration and extensions? ====&lt;br /&gt;
&lt;br /&gt;
Run the command xdpyinfo. Generally, you would do this via an SSH session to the phone, so you may need to first &lt;br /&gt;
&lt;br /&gt;
 export DISPLAY=&amp;quot;:0.0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
and then run&lt;br /&gt;
&lt;br /&gt;
 xdpyinfo&lt;br /&gt;
&lt;br /&gt;
For an example invocation, see [http://lists.openmoko.org/pipermail/community/2007-January/001353.html xdpyinfo output].&lt;br /&gt;
&lt;br /&gt;
== Distribution Customization ==&lt;br /&gt;
&lt;br /&gt;
{{Note| Suggestion: this should be split off into a separate page, since many of the questions below aren't really overview-level but specialized; a question like &amp;quot;How do I customize a distribution?&amp;quot; could be added to the Software - Distributions part, linking to the new page. --[[User:Eddsouza|eddsouza]] 07:35, 7 September 2008 (UTC)}}&lt;br /&gt;
&lt;br /&gt;
=== Compilation &amp;amp; packaging ===&lt;br /&gt;
==== What is the 'overlay' approach to bitbake development? ====&lt;br /&gt;
:You can create a local overlay for the bitbake build chain and develop in the overlay as described in [[Application_Development_Crash_Course| Application Development Crash Course]].&lt;br /&gt;
&lt;br /&gt;
==== Which .bb files are related with the Openmoko? ====&lt;br /&gt;
==== Are there any configuration files for Openmoko? ====&lt;br /&gt;
==== How can I port an application written with autotools to Openmoko? ====&lt;br /&gt;
After you source the [[Toolchain|Openmoko toolchain]] variables, the Openmoko processor compiler becomes the default compiler. You can compile any GNU - like project just typing ''./configure --host i686'' and then ''make'' - it will produce libraries and executables as expected. Just these executables will not run on your i686 host - they will run on Openmoko ARM processor. Use scp to upload the executables to your phone.&lt;br /&gt;
&lt;br /&gt;
==== How can I add an application written with autotools to the openmoko tree? ====&lt;br /&gt;
&lt;br /&gt;
==== How can I make changes in the openmoko applications? ====&lt;br /&gt;
==== How can I submit my changes? ====&lt;br /&gt;
==== Can I use the mokomakefile in the development process? How? ====&lt;br /&gt;
&lt;br /&gt;
:Yes, [[MokoMakefile]] can be used in the development process.  See [[MokoMakefile#Developing_with_MokoMakefile| Developing with MokoMakefile]].&lt;br /&gt;
&lt;br /&gt;
==== What's the way to include/exclude a newly added package to/from the final rootfs? ====&lt;br /&gt;
==== Where do the final ipk &amp;amp; binary files reside? ====&lt;br /&gt;
:ipk files are in &lt;br /&gt;
 ./build/tmp/deploy/glibc/ipk/&lt;br /&gt;
:binary images are in&lt;br /&gt;
 ./build/tmp/deploy/glibc/images/fic-gta01/&lt;br /&gt;
&lt;br /&gt;
==== How can I add an application to the applications list? ====&lt;br /&gt;
==== How can I assign an image to my new application to be seen in the applications list? ====&lt;br /&gt;
The Openmoko project tree contains the folder 'data' where you can put any 128*128 icon. You need to mention the icon in two places in this folder: &lt;br /&gt;
* Makefile.am must contain the line dist_appicon_DATA = &amp;lt;icon_name&amp;gt;.png&lt;br /&gt;
* The &amp;lt;application_name&amp;gt;.desktop file that must be in this folder should contain the Icon=&amp;lt;icon_name&amp;gt; (without file type).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Misc==&lt;br /&gt;
&lt;br /&gt;
===On the lists on lists.openmoko.org, should replies be added above or below the original text? ===&lt;br /&gt;
&lt;br /&gt;
Please reply UNDER post.&lt;br /&gt;
&lt;br /&gt;
===How can I find out if a question or topic has already been discussed on the mailing lists? ===&lt;br /&gt;
&lt;br /&gt;
By searching the mailing list archives. For example, using Google searches:&lt;br /&gt;
&lt;br /&gt;
 site:openmoko.org text&lt;br /&gt;
&lt;br /&gt;
For example, to search for accelerometer:&lt;br /&gt;
&lt;br /&gt;
 site:openmoko.org accelerometer&lt;br /&gt;
&lt;br /&gt;
If you only want to read the &amp;quot;official&amp;quot; mails from FIC people or from Openmoko people:&lt;br /&gt;
&lt;br /&gt;
 site:openmoko.org text &amp;quot;at fic.com.tw&amp;quot;&lt;br /&gt;
 site:openmoko.org text &amp;quot;at openmoko.org&amp;quot;&lt;br /&gt;
&lt;br /&gt;
For example to search for &amp;quot;release date&amp;quot; from FIC people:&lt;br /&gt;
&lt;br /&gt;
 site:openmoko.org &amp;quot;release date&amp;quot; &amp;quot;at fic.com.tw&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Alternatively you can use the [http://www.google.com/coop/cse?cx=018430699993342716089%3Aszsaurhronw custom Openmoko search engine] that is using [http://www.google.com/coop/ Google Co-op].&lt;br /&gt;
&lt;br /&gt;
===how many dead pixels may the LCM have before calling it defect? ===&lt;br /&gt;
&lt;br /&gt;
The answer for the display used in GTA01 and GTA02 is '2'&lt;br /&gt;
&lt;br /&gt;
=== how many visits does this wiki have? ===&lt;br /&gt;
See this [[Wiki_statistic_numbers|wiki's statistics]] page.&lt;br /&gt;
&lt;br /&gt;
=Historical=&lt;br /&gt;
The Neo1973 was last available in Febuary 2008. &lt;br /&gt;
&lt;br /&gt;
==Neo1973 Hardware== &lt;br /&gt;
&lt;br /&gt;
===What are the hardware specifications of Neo 1973 ? ===&lt;br /&gt;
&lt;br /&gt;
See page [[Neo1973_Hardware]] and category [[:Category:Neo1973 Hardware | Neo1973 Hardware]] and [[Disassembling Neo1973]]&lt;br /&gt;
&lt;br /&gt;
===How do I input text? ===&lt;br /&gt;
&lt;br /&gt;
Use provided keyboard app.&lt;br /&gt;
&lt;br /&gt;
Use Bluetooth keyboard.&lt;br /&gt;
&lt;br /&gt;
For more methods and ideas see [[Wishlist:Text_Input]].&lt;br /&gt;
&lt;br /&gt;
===Can I record calls and/or play audio files in calls? ===&lt;br /&gt;
&lt;br /&gt;
Yes, audio path from GSM to/from mic and speakers is completely controllable by user. For example recording calls (both sides) and implementing an [[Answering Machine]] is possible. Also using text-&amp;gt;speech should be possible or modifying outgoing voice. Currently there is no software bundled in phone to do this.&lt;br /&gt;
There are only 2 A/D inputs and three D/A outputs (one dedicated to the earpiece). This means that stereo audio playback cannot happen at the same time as the [[Answering Machine]] functionality, amongst other things. See the audio page. [[Neo1973_Audio_Subsystem|Neo1973 Audio Subsystem]]&lt;br /&gt;
&lt;br /&gt;
===What is the battery life? ===&lt;br /&gt;
&lt;br /&gt;
There has been no word on this so far, but see [[Neo1973 Power Management#Approximate_power_draw_of_various_subsystems|these estimates]] for a rough idea.  More information about the battery [[Neo1973 Battery|here]].&lt;br /&gt;
&lt;br /&gt;
=== USB ===&lt;br /&gt;
&lt;br /&gt;
====What can I do with the USB port on the Neo? ====&lt;br /&gt;
Charge the phone, communicate with it over USB-serial, or USB-networking.&lt;br /&gt;
&lt;br /&gt;
Plug external devices, such as wifi, cameras, or mass-storage devices.&lt;br /&gt;
&lt;br /&gt;
====What can't I do with the USB? ====&lt;br /&gt;
&lt;br /&gt;
The only limitation on current hardware seems to be no usb 2.0 support, which means slower communication with 2.0 devices.&lt;br /&gt;
&lt;br /&gt;
====Why is only USB 1.1 provided? ====&lt;br /&gt;
&lt;br /&gt;
The processor has USB 1.1 built in. One with USB2 built in would have been more expensive, and might not be open.&lt;br /&gt;
&lt;br /&gt;
The FreeRunner has the same processor as the Neo1973.&lt;br /&gt;
&lt;br /&gt;
====What are the details of the USB port on the Neo? How does it compare to USB On-The-Go? ====&lt;br /&gt;
&lt;br /&gt;
The Neo will have mini-USB-B, and will be able to function as either a host or a device. It will NOT be USB On-The-Go.  OTG is a complex specification, and it comprises way more than just&lt;br /&gt;
an AB socket, but also electrical and software components which cannot be provide by the S3C2410.&lt;br /&gt;
&lt;br /&gt;
You will need a special Mini-B to regular-B cable (note that this won't actually comply with the USB standard:  a compliant cable has to have an A or Mini-A plug on one end, and B or Mini-B on the other).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Application Developer]]&lt;br /&gt;
[[Category:Basic End User]]&lt;br /&gt;
[[Category:FAQ]]&lt;/div&gt;</summary>
		<author><name>Michaelshiloh</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/FreeRunner:_Selected_Blogs_and_Articles</id>
		<title>FreeRunner: Selected Blogs and Articles</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/FreeRunner:_Selected_Blogs_and_Articles"/>
				<updated>2008-10-08T17:17:03Z</updated>
		
		<summary type="html">&lt;p&gt;Michaelshiloh: /* September 2008 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Neo FreeRunner Menu}}&lt;br /&gt;
&lt;br /&gt;
{|align=right&lt;br /&gt;
  |__TOC__&lt;br /&gt;
  |}&lt;br /&gt;
 &lt;br /&gt;
This page contains references to personal blog entries and reflections of the mind about FreeRunner. Please see [[Press_Coverage]] for more official pieces of information.&lt;br /&gt;
&lt;br /&gt;
Newest on top.&lt;br /&gt;
&lt;br /&gt;
== English ==&lt;br /&gt;
&lt;br /&gt;
== October 2008 ===&lt;br /&gt;
* [http://www.teaparty.net/technotes/openmoko-2.html More fun with our Openmoko phones]&lt;br /&gt;
&lt;br /&gt;
=== September 2008 ===&lt;br /&gt;
* [http://nop0.blogspot.com/2008/09/revive-openmoko-neo-freerunner-with-usb.html Revive the Freerunner with USB power]&lt;br /&gt;
* [http://nop0.blogspot.com/2008/09/having-multiple-distributions-on.html Multiple distributions on SD card] (work in progress)&lt;br /&gt;
&lt;br /&gt;
=== August 2008 ===&lt;br /&gt;
* Andrénalin heavy metal chainsaw!!! [http://andre.web-yard.de/blog/2008/08/03/neo-freerunner-rocks-hard-rides-free/ http://andre.web-yard.de/blog/2008/08/03/neo-freerunner-rocks-hard-rides-free/]&lt;br /&gt;
* Monochrome Mentality [http://monochromementality.com/index.php/blog/show/FSO-Milestone-II-Phot-Safari-and--rant.html FSO Milestone II Photo Safari and rant]&lt;br /&gt;
&lt;br /&gt;
=== July 2008 ===&lt;br /&gt;
* technocrat.net (Charles E. Hill) [http://technocrat.net/d/2008/7/27/46753 Openmoko Neo FreeRunner - Part 1]&lt;br /&gt;
* Rabble.ca (Wayne MacPhail) [http://www.rabble.ca/news_full_story.shtml?x=73765 Introducing the anti-iPhone]&lt;br /&gt;
* Canadia Blog [http://bieberphoto.com/canadia/index.php/2008/07/openmoko-neo-freerunner-review/ Neo FreeRunner Review]&lt;br /&gt;
* Holden Karau [http://blog.holdenkarau.com/2008/07/unboxing-openmokofreerunner-including.html Unboxing the Openmoko/FreeRunner including the spares kit, debug board]&lt;br /&gt;
* Dave Fayram [http://www.vimeo.com/1366042 Openmoko Train Wreck] (video review)&lt;br /&gt;
* Dave Fayram [http://www.vimeo.com/1366923 More Openmoko Train Wrecking (Now with Qt!)] (video review)&lt;br /&gt;
* Wired's Gadget Lab Podcast: [http://blog.wired.com/gadgets/2008/07/gadget-lab-po-1.html Summary] and [http://audio.sonibyte.com/audio/7394.mp3 mp3] (discussion starts at 5:50)&lt;br /&gt;
* jThinks: [http://jthinks.com/index.php/freerunner-at-last/ FreeRunner, at last]&lt;br /&gt;
* Holden's Blog: [http://blog.holdenkarau.com/2008/07/unboxing-openmokofreerunner-including.html Unboxing the Openmoko/FreeRunner including the spares kit, debug board]&lt;br /&gt;
* Wolfmans Howlings: [http://blog.wolfman.com/articles/2008/07/11/openmoko-freerunner-first-impressions Openmoko FreeRunner first impressions]&lt;br /&gt;
* Free Software Foundation (John Sullivan): [http://www.fsf.org/blogs/community/5-reasons-to-avoid-iphone-3g 5 reasons to avoid iPhone 3G]&lt;br /&gt;
* Joseph Reeves: [http://blogs.thehumanjourney.net/finds/entry/20080710 FreeRunner retail unboxing]&lt;br /&gt;
* Ars Technica: [http://arstechnica.com/reviews/os/open-moko-software.ars Ars Technica First Look at Openmoko]&lt;br /&gt;
* Juan Lucas Domínguez Rubio: [http://gvsigmobileonopenmoko.wordpress.com/2008/07/02/first-experience-with-openmoko/ First experience with Openmoko]&lt;br /&gt;
* Philipp Kern: [http://www.philkern.de/weblog/en/neo_freerunner.html Neo FreeRunner: First impressions]&lt;br /&gt;
&lt;br /&gt;
=== June 2008 ===&lt;br /&gt;
* Andrzej Zaborowski: [http://unadventure.wordpress.com/2008/06/08/accelerating-in-my-pocket/ Accelerating in my pocket]&lt;br /&gt;
&lt;br /&gt;
=== May 2008 ===&lt;br /&gt;
* Kevin Dean: [http://www.monochromementality.com/index.php/blog/show/Day-One-Openmoko-FreeRunner.html Day One: Openmoko FreeRunner]&lt;br /&gt;
&lt;br /&gt;
==== Earlier ====&lt;br /&gt;
* Michael Shiloh: [http://gettingstartedopenmoko.wordpress.com/ Getting Started with Openmoko] (many blog entries in this dedicated blog)&lt;br /&gt;
&lt;br /&gt;
== French (français) ==&lt;br /&gt;
* blog, wiki and forum in french about Openmoko: http://www.openmoko-fr.org&lt;br /&gt;
=== July 2008 ===&lt;br /&gt;
* Xavier Cremaschi : [http://wiki.troulite.fr/index.php/NeoFreerunner FreeRunner French Companion Wiki] This page is a (quite big) summary of my understanding and experimentations : what are the different software stacks, how you can install them (flashing or dual boot), how you can configure them. Note that everything comes from this wiki or mailing lists, I don't claim paternity for anything except translation and feedback.&lt;br /&gt;
&lt;br /&gt;
== Italian (italiano) ==&lt;br /&gt;
&lt;br /&gt;
=== August 2008 ===&lt;br /&gt;
* Lo schiaffo : [http://www.loschiaffo.org/telefono-open-source/ Opensource telephone]&lt;br /&gt;
* TuguLab : [http://blog.tugulab.org/2008/08/13/come-configurare-openmoko-sul-neofreerunner-e-utilizzarlo/ Come configurare Openmoko sul NeoFreeRunner e utilizzarlo!] by jollyr0ger&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Community]]&lt;/div&gt;</summary>
		<author><name>Michaelshiloh</name></author>	</entry>

	</feed>