<?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=Neiljerram&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=Neiljerram&amp;feedformat=atom"/>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Special:Contributions/Neiljerram"/>
		<updated>2013-05-21T07:30:08Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.19.6</generator>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Neo_Freerunner_audio_subsystem</id>
		<title>Neo Freerunner audio subsystem</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Neo_Freerunner_audio_subsystem"/>
				<updated>2010-03-18T22:51:27Z</updated>
		
		<summary type="html">&lt;p&gt;Neiljerram: /* Empirical Data for Mic Settings */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Neo Freerunner (GTA02) inherited the audio subsystem from its older brother the Neo 1973 (GTA01). However, there are a few small differences.&lt;br /&gt;
This page tries to show and explain the differences and points you to the [[Neo_1973_audio_subsystem | Neo 1973]] page whenever it touches the common points (but there may be overlaps for the sake of usability). As wiki pages are, errors and omissions are likely, and your help is welcomed.&lt;br /&gt;
&lt;br /&gt;
==Differences from Neo 1973==&lt;br /&gt;
* There is only 1 (mono) built-in loud speaker (connected to LOUT1) instead of 2 (stereo).&lt;br /&gt;
* The Wolfson Codec driver presents 94 separate controls {switches, multiplexers, and volumes} to the alsa system (in both Neos). Unfortunately they are not mapped exactly the same for the GTA01 as for the GTA02.&lt;br /&gt;
&lt;br /&gt;
==Possible sound connections through the Wolfson Codec==&lt;br /&gt;
* &amp;quot;Yes&amp;quot; = Confirmed, alsa state file exists.&lt;br /&gt;
* &amp;quot;No&amp;quot; = Not possible / not desirable.&lt;br /&gt;
* &amp;quot;Should&amp;quot; = Should be possible, not confirmed yet.&lt;br /&gt;
* &amp;quot;?&amp;quot; = Have no idea.&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;5&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
! - !! CPU !! GSM !! Bluetooth&lt;br /&gt;
&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
! GSM&lt;br /&gt;
| Yes&lt;br /&gt;
&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
! Bluetooth&lt;br /&gt;
| via BT-USB || Yes&lt;br /&gt;
&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
! Wired Speaker&lt;br /&gt;
| Yes || Yes || via CPU&lt;br /&gt;
&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
! Wired Mic&lt;br /&gt;
| Yes || Yes || via CPU&lt;br /&gt;
&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
! Body Earpiece&lt;br /&gt;
| Should || Yes || should (via CPU)&lt;br /&gt;
&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
! Body Speaker&lt;br /&gt;
| Yes || Yes || should (via CPU)&lt;br /&gt;
&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
! Body Mic&lt;br /&gt;
| Yes || Yes || should (via CPU)&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Alsamixer channel controls==&lt;br /&gt;
The ALSA state files are installed by default, and belong to package ''&amp;quot;openmoko-alsa-scenarios&amp;quot;''.&lt;br /&gt;
To see where the files reside, do ''&amp;quot;opkg files openmoko-alsa-scenarios&amp;quot;''.&lt;br /&gt;
Currently ([[SHR]]), they are in ''&amp;quot;/etc/freesmartphone/alsa/default/gsmhandset&amp;quot;''; in other systems, they might be found in ''&amp;quot;/usr/share/openmoko/scenarios/&amp;quot;''.&lt;br /&gt;
Recommended statefile for phone usage is http://docs.openmoko.org/trac/attachment/ticket/2121/gsmhandset.state.new&lt;br /&gt;
&lt;br /&gt;
# State: '''''GSM &amp;lt;-&amp;gt; Built-in Handset''''' (file gsmhandset.state)&lt;br /&gt;
## Mic volume:&lt;br /&gt;
##* Control 48: &amp;quot;Mic2 Capture Volume&amp;quot; (alsamixer name: &amp;quot;Mic2&amp;quot;. Suggested value: max [3] - see below)&lt;br /&gt;
##* Control 12: &amp;quot;Mono Sidetone Playback Volume&amp;quot; (alsamixer name: &amp;quot;Mono sidetone&amp;quot; Suggested value: 5 [=0dB])&lt;br /&gt;
##* Control 5: &amp;quot;Mono Playback Volume&amp;quot; (alsamixer name: &amp;quot;Mono&amp;quot; Value: as needed [80..110]) This is the &amp;quot;user control&amp;quot; for mic&lt;br /&gt;
##* Control 63: 'Mic Sidetone Mux' MANDATORY VALUE &amp;quot;Mic 2&amp;quot;!!!&lt;br /&gt;
##* General rule is to keep control.12, and ajust control.48 so you have a resonable setting for user control.5 (i.e. NOT &amp;lt;70 or &amp;gt;110)&lt;br /&gt;
##  Earpiece volume:&lt;br /&gt;
##* Control 6: &amp;quot;Bypass Playback Volume&amp;quot;&lt;br /&gt;
##* Control 4: &amp;quot;Speaker Playback Volume&amp;quot; This is the user control for earpiece volume&lt;br /&gt;
&lt;br /&gt;
According to the [http://www.mail-archive.com/community@lists.openmoko.org/msg56045.html conclusion] of a [http://www.mail-archive.com/community@lists.openmoko.org/msg56037.html thread] from Dec 09, you might want to set Control 12 to value 5 if people you call complain about background noise, static, etc with the above settings.&lt;br /&gt;
&lt;br /&gt;
For mic settings please refer also to http://wiki.openmoko.org/wiki/Neo_1973_and_Neo_FreeRunner_gsm_modem#AT.25Nxxxx&lt;br /&gt;
&lt;br /&gt;
user should set volume according to own preferences:&lt;br /&gt;
 for mic the (full, true) procedure is as follows:&lt;br /&gt;
 reduce #5 by some 15..30 steps&lt;br /&gt;
 do testcall:&lt;br /&gt;
 you get very low volume at far end. but tone should be clear, no clipping (sharp agressive noise)&lt;br /&gt;
 if there is clipping: reduce #48 by one step (i.e. to &amp;quot;2&amp;quot;)&lt;br /&gt;
 then adjust #5 to your preferences and taste&lt;br /&gt;
 (do `alsactrl store -f gsmhandset.state` to save the changes if you used a mixer to adjust the levels)&lt;br /&gt;
&lt;br /&gt;
for earpiece(-speaker): &lt;br /&gt;
 level up modem to full volume (AT+CLVL cmd used by framework), &lt;br /&gt;
 level up #6 to full volume, &lt;br /&gt;
 adjust by #4&lt;br /&gt;
 if you get clipping when #4 is at moderate level (same as above): reduce #6 (or even AT+CLVL) until clipping vanishes&lt;br /&gt;
 (very unlikely to occur for earpiece playback)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# State: '''''GSM &amp;lt;-&amp;gt; Built-in Handsfree''''' (file gsmspeakerout.state)&lt;br /&gt;
## Mic volume:&lt;br /&gt;
##* Control ?:&lt;br /&gt;
## Speaker volume:&lt;br /&gt;
##* Control ?:&lt;br /&gt;
# State: '''''GSM &amp;lt;-&amp;gt; Wired Headset''''' (file gsmheadset.state)&lt;br /&gt;
## Mic volume:&lt;br /&gt;
##* Control 49: &amp;quot;Mic1 Capture Volume&amp;quot;&lt;br /&gt;
##* Control 12: &amp;quot;Mono Sidetone Playback Volume&amp;quot;&lt;br /&gt;
##* Control 5: &amp;quot;Mono Playback Volume&amp;quot;&lt;br /&gt;
## Speaker volume:&lt;br /&gt;
##* Control 6: &amp;quot;Bypass Playback Volume&amp;quot;&lt;br /&gt;
##* Control 3: &amp;quot;Headphone Playback Volume&amp;quot;&lt;br /&gt;
# State: '''''GSM &amp;lt;-&amp;gt; Bluetooth Headset''''' (file ???)&lt;br /&gt;
## Alternative working state files: [http://handheldshell.com/gsm_headset.txt]&lt;br /&gt;
## Mic volume:&lt;br /&gt;
##* Control 13: &amp;quot;Mono Voice Playback Volume&amp;quot;&lt;br /&gt;
##* Control 5: &amp;quot;Mono Playback Volume&amp;quot;&lt;br /&gt;
# State: '''''CPU &amp;lt;-&amp;gt; Built-in Handset''''' (file voip-handset.state)&lt;br /&gt;
## Mic volume:&lt;br /&gt;
##* Control ?:&lt;br /&gt;
## Speaker volume:&lt;br /&gt;
##* Control ?:&lt;br /&gt;
# State: '''''CPU &amp;lt;-&amp;gt; Wired Headset''''' (file headset.state)&lt;br /&gt;
## Stereo sound:&lt;br /&gt;
##* Control ?:&lt;br /&gt;
## Headset output:&lt;br /&gt;
##* Control 94: &amp;quot;Amp Spk Switch&amp;quot; &amp;lt;- false&lt;br /&gt;
# State: '''''CPU &amp;lt;-&amp;gt; Buildin Speaker''''' (file stereoout.state)&lt;br /&gt;
## Mono sound:&lt;br /&gt;
##* Control ?:&lt;br /&gt;
## Headset output:&lt;br /&gt;
##* Control 94: &amp;quot;Amp Spk Switch&amp;quot; &amp;lt;- true&lt;br /&gt;
# State: '''''CPU -&amp;gt; GSM''''' (file gsmhandset.state)&lt;br /&gt;
## Mono sound:&lt;br /&gt;
##* Control 74: Mono Mixer Left Playback Switch to true&lt;br /&gt;
##* Control 75: Mono Mixer Right Playback Switch to true&lt;br /&gt;
##* Control 1: PCM Volume suggested value 135&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--[[User:Femto|Femto]] 12:39, 24 September 2008 (UTC) I've updated above values. Must be checked.&lt;br /&gt;
&lt;br /&gt;
-- I created another state file (voip-handsfree.state) for CPU Handsfree, mixed and matched voip-handset and stereoout. You can find it [http://wiki.openmoko.org/wiki/User:Savimonty here]. Feel free to make a change to it if there are errors. I don't see any, though.&lt;br /&gt;
&lt;br /&gt;
=== Volume Control ===&lt;br /&gt;
&lt;br /&gt;
Angus Ainslie has written a simple [http://n2.nabble.com/Sound-quality-in-calls.-tp1087522p1096155.html python volume control] (which is getting more and more sophisticated) using some of these settings.&lt;br /&gt;
&lt;br /&gt;
Installing the GUI mixer&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget http://handheldshell.com/pymixer.py&lt;br /&gt;
wget http://handheldshell.com/volume.desktop&lt;br /&gt;
cp pymixer.py /usr/bin&lt;br /&gt;
chmod u+x /usr/bin/pymixer.py&lt;br /&gt;
cp volume.desktop /usr/share/applications&lt;br /&gt;
opkg install python-pygtk&lt;br /&gt;
opkg install http://handheldshell.com/python-pyalsaaudio_0.3-ml0_armv4t.ipk&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the python script aborts unexpectedly then look [http://lists.openmoko.org/nabble.html#nabble-td1128064 here] for a fix&lt;br /&gt;
&lt;br /&gt;
You could also try [http://www.mazikeen.demon.co.uk/openmoko/fso-simplemixer.py fso-simplemixer.py], a simplified mixer based on the one above.&lt;br /&gt;
&lt;br /&gt;
== Empirical Data for Mic Settings ==&lt;br /&gt;
&lt;br /&gt;
'''&amp;quot;Experiment 1&amp;quot;''' in the table means:&lt;br /&gt;
# Set your controls as follows:&amp;lt;br&amp;gt;   control.12 (Mono Sidetone Playback Volume): 5&amp;lt;br&amp;gt;   control.48 (Mic2 Capture): 3&amp;lt;br&amp;gt;   control.63 (Mic Sidetone Mux): Mic 2&amp;lt;br&amp;gt;&lt;br /&gt;
# Call another phone from your Neo FreeRunner, mute it's microphone and listen to your voice coming from Neo FreeRunner's microphone. Connect to FreeRunner, run alsamixer and experiment then with control.5 (Mono Playback Volume) by lowering it so that buzzing noise is gone or at an acceptable level. After the noise is reduced, observe the actual volume/clarity of your voice when you speak.&lt;br /&gt;
# Write result in the table:&amp;lt;br&amp;gt;   &amp;quot;''Positive''&amp;quot; if you don't normally use such settings, but you achieved at least similar level of quality while using these settings, quality meaning lack of noise and clarity/volume of voice.&amp;lt;br&amp;gt;   &amp;quot;''Already in use''&amp;quot;, if you already normally use settings that have control.12/48/63 like above. Write in notes if you experimented with other settings but found out these were superior, or similar.&amp;lt;br&amp;gt;   &amp;quot;''Negative''&amp;quot; if you don't normally use such settings, you experimented, but you failed to achieve similar level of quality with the settings above and experimenting with control.5. Please write in the notes how it failed - most typically did you not hear anymore your voice as well after reducing control.5 enough to get rid of the noise, or how did the experiment turn out negative?&amp;lt;br&amp;gt;   &amp;quot;''Not done''&amp;quot;, if you didn't complete this experiment.&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;5&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
| User || FR Revision + buzzfix? || Microphone Settings in Use (before) || Result of Experiment 1 || Notes&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| [[User:TimoJyrinki]] || A7 || control.5: 97&amp;lt;br&amp;gt;control.12: 5&amp;lt;br&amp;gt;control.48: 3&amp;lt;br&amp;gt;control.63: Mic 2 || Already in use || Able to reach acceptable level of quality with other settings as well, but somewhat less volume can be had with control.63 set to Right PGA before noise starts to be heard (when increasing control.5 and/or control.12 to compensate).&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| [[User:TimoJyrinki]] || A5 + buzzfix || control.5: 105&amp;lt;br&amp;gt;control.12: 7&amp;lt;br&amp;gt;control.48: 3&amp;lt;br&amp;gt;control.63: Mic 2 || Not done || Only checked from a backup, not sure anymore how the audio quality was like. Buzzfix now failing on the device so cannot test. I have used these kind of settings and also earlier control.63 set to Right PGA while increasing control.5.&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| [[User:Pini]] || A5 + buzzfix || control.5: 127&amp;lt;br&amp;gt;control.12:: 1&amp;lt;br&amp;gt;control.48: 1&amp;lt;br&amp;gt;control.63: Mic 2 || In use || Setting successfully tested in a rather noisy environment (train platform)&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| [[User:Neiljerram]] || A6 + buzzfix || control.5: 110&amp;lt;br&amp;gt;control.12: 7&amp;lt;br&amp;gt;control.48: 3&amp;lt;br&amp;gt;control.63: Right PGA || Not done || I've had no complaints at all about audio quality since accidentally discovering the Right PGA setting.  It may be voodoo, but it works for me.&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| [[User:YourName]] || A1 + buzzfix || control.5: NN&amp;lt;br&amp;gt;control.12:: N&amp;lt;br&amp;gt;control.48: N&amp;lt;br&amp;gt;control.63: NNNN || Not done || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Remark by jOERG: Please try to understand when you are using a different setting than control.63: Mic 2, you are using a whole bunch of function blocks from PGA and digital section and you are not considering how the settings of those function blocks impact on your results. The whole test report is void / useless if using left/right_PGA. Also, as elaborated here and in Talk, there's no benefit from using PGA routing (beyond voodoo).&lt;br /&gt;
&lt;br /&gt;
[[Category:Neo FreeRunner Hardware]]&lt;br /&gt;
[[Category:Audio]]&lt;/div&gt;</summary>
		<author><name>Neiljerram</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/User:Neiljerram</id>
		<title>User:Neiljerram</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/User:Neiljerram"/>
				<updated>2009-12-16T00:32:28Z</updated>
		
		<summary type="html">&lt;p&gt;Neiljerram: /* Working and Not Working */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I use Debian on my Freerunner.  Following is a description of my setup, and of how well (or not) things are working with that setup.&lt;br /&gt;
&lt;br /&gt;
=== Main points ===&lt;br /&gt;
&lt;br /&gt;
Debian installed (again) on 10th December (2009, following major filesystem corruption of my previous Debian install).&lt;br /&gt;
&lt;br /&gt;
matchbox window manager and keyboard.  I'm kind of missing the E17 keyboard, but not as much as I expected to.  The matchbox keyboard seems more usable than you'd think, given its size.&lt;br /&gt;
&lt;br /&gt;
trayer, openmoko-panel-plugin and auxlaunch.  Here's my .xsession:&lt;br /&gt;
&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 trayer --edge top --height 60 &amp;amp;&lt;br /&gt;
 openmoko-panel-plugin &amp;amp;&lt;br /&gt;
 zhone &amp;amp;&lt;br /&gt;
 rm -f .auxlaunchpid&lt;br /&gt;
 auxlaunch -dms &amp;amp;&lt;br /&gt;
 exec matchbox-window-manager -use_titlebar no -use_cursor no&lt;br /&gt;
&lt;br /&gt;
Some screenshots to show how it looks...  I think the plainness of the top panel goes well with the sharp angles of Gtk+ apps.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Image:2009-12-15-221523_480x640_scrot.png|zhone&lt;br /&gt;
Image:2009-12-15-222642_480x640_scrot.png|auxlaunch&lt;br /&gt;
Image:2009-12-15-222742_480x640_scrot.png|Simon Tatham's cube puzzle&lt;br /&gt;
Image:2009-12-15-223038_480x640_scrot.png|aptitude-gtk&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
cellwriter is fun to have around.  Once it has been started for the first time (which you can do from auxlaunch), it adds an icon to the top panel, and then you can click that to make cellwriter appear and disappear.  So there is no need to decide whether to replace matchbox-keyboard with cellwriter in the openmoko-panel-plugin config; it's easy to have both.  I made the following changes to the default config.&lt;br /&gt;
&lt;br /&gt;
* Grid: 10 by 4 calls.  Otherwise, when training, you can't get to some of the characters.&lt;br /&gt;
&lt;br /&gt;
* Keyboard: 480 pixels wide.  Obviously.&lt;br /&gt;
&lt;br /&gt;
* Enable extended input events.  Otherwise just doesn't work as an input method.&lt;br /&gt;
&lt;br /&gt;
* Window docking: Bottom.  Otherwise completely covers the app that you're trying to type into!&lt;br /&gt;
&lt;br /&gt;
=== Working and Not Working ===&lt;br /&gt;
&lt;br /&gt;
SMS mostly OK.&lt;br /&gt;
&lt;br /&gt;
* Sometimes fails to send an outbound message, and then the message sits forever (until deleted) in zhone as &amp;quot;unsent&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* zhone's design of immediately showing you a received message doesn't completely work in practice, because it makes it easy to miss when there are other new messages.&lt;br /&gt;
&lt;br /&gt;
Phone calls mostly OK.&lt;br /&gt;
&lt;br /&gt;
* I haven't touched the GSM ALSA state file, and I haven't had any complaints.&lt;br /&gt;
&lt;br /&gt;
* Ring tone is too quiet; I never hear it.&lt;br /&gt;
&lt;br /&gt;
Wifi seems OK.  I'm using the basic Debian approach with configuration in /etc/network/interfaces:&lt;br /&gt;
&lt;br /&gt;
 iface eth0 inet manual&lt;br /&gt;
        wpa-driver wext&lt;br /&gt;
        wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf&lt;br /&gt;
 ...&lt;br /&gt;
 iface default inet dhcp&lt;br /&gt;
&lt;br /&gt;
and in /etc/wpa_supplicant/wpa_supplicant_conf:&lt;br /&gt;
&lt;br /&gt;
 network={&lt;br /&gt;
        ssid=&amp;quot;xxxxxx&amp;quot;&lt;br /&gt;
        psk=&amp;quot;xxxxxxxxxxxxxxxxxxxxxx&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Then when I need wifi, I&lt;br /&gt;
&lt;br /&gt;
* use openmoko-panel-plugin's Wifi icon to power up the radio&lt;br /&gt;
&lt;br /&gt;
* do &amp;quot;ifup eth0&amp;quot; and &amp;quot;dhclient eth0&amp;quot; in a terminal.&lt;br /&gt;
&lt;br /&gt;
That all works, but&lt;br /&gt;
&lt;br /&gt;
* it would be nicer if the &amp;quot;ifup eth0&amp;quot; could be made to happen automatically when the Wifi radio is powered up&lt;br /&gt;
&lt;br /&gt;
* I'm sure I shouldn't have to do the &amp;quot;dhclient eth0&amp;quot; step explicitly; so something must be wrong in my configuration there&lt;br /&gt;
&lt;br /&gt;
* I don't understand why the Freerunner apparently wants &amp;quot;wpa-conf&amp;quot; in /etc/network/interfaces, whereas my other Debian systems have &amp;quot;wpa-roam&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
(I previously tried wicd and wifi-radar, but they both seem to be very good at hanging the system and/or eating loads of CPU; and I don't see any great need for them.)&lt;br /&gt;
&lt;br /&gt;
GPRS seems unreliable, and this appears to be a regression from my previous Debian installation - perhaps something to do with the new GSM muxer?  In my previous installation, I used the &amp;quot;PDP toggle&amp;quot; function in John Sullivan's fso.el, and GPRS stayed up for several hours after that.  In this installation I use openmoko-panel-plugin's GSM icon to enable GPRS, and it only stayed up for a few minutes.  I'm sure the dbus activation calls are the same, so I would guess that this is something to do with the GSM infrastructure, and possibly a bad interaction with the #1024 recamping problem (which my phone definitely suffers from).&lt;br /&gt;
&lt;br /&gt;
=== Queries/Ideas/Plans ===&lt;br /&gt;
&lt;br /&gt;
auxlaunch should also support killing an existing window - for apps like TangoGPS which don't have a quit button anywhere.  I wonder if anyone already has a patch for that?&lt;br /&gt;
&lt;br /&gt;
Why doesn't the current app resize itself when cellwriter pops up, in the same way they all do when matchbox-keyboard pops up?&lt;br /&gt;
&lt;br /&gt;
Why does [http://wiki.debian.org/DebianOnFreeRunner#ChoosingKernel http://wiki.debian.org/DebianOnFreeRunner#ChoosingKernel] say that the default kernel is 2.6.29, when I apparently have 2.6.28 (and didn't do anything special to get this):&lt;br /&gt;
&lt;br /&gt;
 debian-gta02:~# uname -a&lt;br /&gt;
 Linux debian-gta02 2.6.28-20090105.git69b2aa26 #1 PREEMPT Tue Mar 3 20:22:28 UTC 2009 armv4tl GNU/Linux&lt;br /&gt;
&lt;br /&gt;
Why does [http://docs.openmoko.org/trac/ticket/2277 http://docs.openmoko.org/trac/ticket/2277] say that using a 2.6.28 kernel &amp;quot;makes the rest of the phone broken&amp;quot;?  (Most things seem to be working for me with a 2.6.28 kernel.)&lt;/div&gt;</summary>
		<author><name>Neiljerram</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/User:Neiljerram</id>
		<title>User:Neiljerram</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/User:Neiljerram"/>
				<updated>2009-12-16T00:21:15Z</updated>
		
		<summary type="html">&lt;p&gt;Neiljerram: /* Working and Not Working */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I use Debian on my Freerunner.  Following is a description of my setup, and of how well (or not) things are working with that setup.&lt;br /&gt;
&lt;br /&gt;
=== Main points ===&lt;br /&gt;
&lt;br /&gt;
Debian installed (again) on 10th December (2009, following major filesystem corruption of my previous Debian install).&lt;br /&gt;
&lt;br /&gt;
matchbox window manager and keyboard.  I'm kind of missing the E17 keyboard, but not as much as I expected to.  The matchbox keyboard seems more usable than you'd think, given its size.&lt;br /&gt;
&lt;br /&gt;
trayer, openmoko-panel-plugin and auxlaunch.  Here's my .xsession:&lt;br /&gt;
&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 trayer --edge top --height 60 &amp;amp;&lt;br /&gt;
 openmoko-panel-plugin &amp;amp;&lt;br /&gt;
 zhone &amp;amp;&lt;br /&gt;
 rm -f .auxlaunchpid&lt;br /&gt;
 auxlaunch -dms &amp;amp;&lt;br /&gt;
 exec matchbox-window-manager -use_titlebar no -use_cursor no&lt;br /&gt;
&lt;br /&gt;
Some screenshots to show how it looks...  I think the plainness of the top panel goes well with the sharp angles of Gtk+ apps.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Image:2009-12-15-221523_480x640_scrot.png|zhone&lt;br /&gt;
Image:2009-12-15-222642_480x640_scrot.png|auxlaunch&lt;br /&gt;
Image:2009-12-15-222742_480x640_scrot.png|Simon Tatham's cube puzzle&lt;br /&gt;
Image:2009-12-15-223038_480x640_scrot.png|aptitude-gtk&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
cellwriter is fun to have around.  Once it has been started for the first time (which you can do from auxlaunch), it adds an icon to the top panel, and then you can click that to make cellwriter appear and disappear.  So there is no need to decide whether to replace matchbox-keyboard with cellwriter in the openmoko-panel-plugin config; it's easy to have both.  I made the following changes to the default config.&lt;br /&gt;
&lt;br /&gt;
* Grid: 10 by 4 calls.  Otherwise, when training, you can't get to some of the characters.&lt;br /&gt;
&lt;br /&gt;
* Keyboard: 480 pixels wide.  Obviously.&lt;br /&gt;
&lt;br /&gt;
* Enable extended input events.  Otherwise just doesn't work as an input method.&lt;br /&gt;
&lt;br /&gt;
* Window docking: Bottom.  Otherwise completely covers the app that you're trying to type into!&lt;br /&gt;
&lt;br /&gt;
=== Working and Not Working ===&lt;br /&gt;
&lt;br /&gt;
SMS mostly OK.&lt;br /&gt;
&lt;br /&gt;
* Sometimes fails to send an outbound message, and then the message sits forever (until deleted) in zhone as &amp;quot;unsent&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* zhone's design of immediately showing you a received message doesn't completely work in practice, because it makes it easy to miss when there are other new messages.&lt;br /&gt;
&lt;br /&gt;
Phone calls mostly OK.&lt;br /&gt;
&lt;br /&gt;
* I haven't touched the GSM ALSA state file, and I haven't had any complaints.&lt;br /&gt;
&lt;br /&gt;
* Ring tone is too quiet; I never hear it.&lt;br /&gt;
&lt;br /&gt;
Wifi seems OK.  I'm using the basic Debian approach with configuration in /etc/network/interfaces:&lt;br /&gt;
&lt;br /&gt;
 iface eth0 inet manual&lt;br /&gt;
        wpa-driver wext&lt;br /&gt;
        wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf&lt;br /&gt;
 ...&lt;br /&gt;
 iface default inet dhcp&lt;br /&gt;
&lt;br /&gt;
and in /etc/wpa_supplicant/wpa_supplicant_conf:&lt;br /&gt;
&lt;br /&gt;
 network={&lt;br /&gt;
        ssid=&amp;quot;xxxxxx&amp;quot;&lt;br /&gt;
        psk=&amp;quot;xxxxxxxxxxxxxxxxxxxxxx&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Then when I need wifi, I&lt;br /&gt;
&lt;br /&gt;
* use openmoko-panel-plugin's Wifi icon to power up the radio&lt;br /&gt;
&lt;br /&gt;
* do &amp;quot;ifup eth0&amp;quot; and &amp;quot;dhclient eth0&amp;quot; in a terminal.&lt;br /&gt;
&lt;br /&gt;
That all works, but&lt;br /&gt;
&lt;br /&gt;
* it would be nicer if the &amp;quot;ifup eth0&amp;quot; could be made to happen automatically when the Wifi radio is powered up&lt;br /&gt;
&lt;br /&gt;
* I'm sure I shouldn't have to do the &amp;quot;dhclient eth0&amp;quot; step explicitly; so something must be wrong in my configuration there&lt;br /&gt;
&lt;br /&gt;
* I don't understand why the Freerunner apparently wants &amp;quot;wpa-conf&amp;quot; in /etc/network/interfaces, whereas my other Debian systems have &amp;quot;wpa-roam&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Queries/Ideas/Plans ===&lt;br /&gt;
&lt;br /&gt;
auxlaunch should also support killing an existing window - for apps like TangoGPS which don't have a quit button anywhere.  I wonder if anyone already has a patch for that?&lt;br /&gt;
&lt;br /&gt;
Why doesn't the current app resize itself when cellwriter pops up, in the same way they all do when matchbox-keyboard pops up?&lt;br /&gt;
&lt;br /&gt;
Why does [http://wiki.debian.org/DebianOnFreeRunner#ChoosingKernel http://wiki.debian.org/DebianOnFreeRunner#ChoosingKernel] say that the default kernel is 2.6.29, when I apparently have 2.6.28 (and didn't do anything special to get this):&lt;br /&gt;
&lt;br /&gt;
 debian-gta02:~# uname -a&lt;br /&gt;
 Linux debian-gta02 2.6.28-20090105.git69b2aa26 #1 PREEMPT Tue Mar 3 20:22:28 UTC 2009 armv4tl GNU/Linux&lt;br /&gt;
&lt;br /&gt;
Why does [http://docs.openmoko.org/trac/ticket/2277 http://docs.openmoko.org/trac/ticket/2277] say that using a 2.6.28 kernel &amp;quot;makes the rest of the phone broken&amp;quot;?  (Most things seem to be working for me with a 2.6.28 kernel.)&lt;/div&gt;</summary>
		<author><name>Neiljerram</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/User:Neiljerram</id>
		<title>User:Neiljerram</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/User:Neiljerram"/>
				<updated>2009-12-16T00:08:49Z</updated>
		
		<summary type="html">&lt;p&gt;Neiljerram: /* Working and Not Working */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I use Debian on my Freerunner.  Following is a description of my setup, and of how well (or not) things are working with that setup.&lt;br /&gt;
&lt;br /&gt;
=== Main points ===&lt;br /&gt;
&lt;br /&gt;
Debian installed (again) on 10th December (2009, following major filesystem corruption of my previous Debian install).&lt;br /&gt;
&lt;br /&gt;
matchbox window manager and keyboard.  I'm kind of missing the E17 keyboard, but not as much as I expected to.  The matchbox keyboard seems more usable than you'd think, given its size.&lt;br /&gt;
&lt;br /&gt;
trayer, openmoko-panel-plugin and auxlaunch.  Here's my .xsession:&lt;br /&gt;
&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 trayer --edge top --height 60 &amp;amp;&lt;br /&gt;
 openmoko-panel-plugin &amp;amp;&lt;br /&gt;
 zhone &amp;amp;&lt;br /&gt;
 rm -f .auxlaunchpid&lt;br /&gt;
 auxlaunch -dms &amp;amp;&lt;br /&gt;
 exec matchbox-window-manager -use_titlebar no -use_cursor no&lt;br /&gt;
&lt;br /&gt;
Some screenshots to show how it looks...  I think the plainness of the top panel goes well with the sharp angles of Gtk+ apps.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Image:2009-12-15-221523_480x640_scrot.png|zhone&lt;br /&gt;
Image:2009-12-15-222642_480x640_scrot.png|auxlaunch&lt;br /&gt;
Image:2009-12-15-222742_480x640_scrot.png|Simon Tatham's cube puzzle&lt;br /&gt;
Image:2009-12-15-223038_480x640_scrot.png|aptitude-gtk&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
cellwriter is fun to have around.  Once it has been started for the first time (which you can do from auxlaunch), it adds an icon to the top panel, and then you can click that to make cellwriter appear and disappear.  So there is no need to decide whether to replace matchbox-keyboard with cellwriter in the openmoko-panel-plugin config; it's easy to have both.  I made the following changes to the default config.&lt;br /&gt;
&lt;br /&gt;
* Grid: 10 by 4 calls.  Otherwise, when training, you can't get to some of the characters.&lt;br /&gt;
&lt;br /&gt;
* Keyboard: 480 pixels wide.  Obviously.&lt;br /&gt;
&lt;br /&gt;
* Enable extended input events.  Otherwise just doesn't work as an input method.&lt;br /&gt;
&lt;br /&gt;
* Window docking: Bottom.  Otherwise completely covers the app that you're trying to type into!&lt;br /&gt;
&lt;br /&gt;
=== Working and Not Working ===&lt;br /&gt;
&lt;br /&gt;
SMS mostly OK.&lt;br /&gt;
&lt;br /&gt;
* Sometimes fails to send an outbound message, and then the message sits forever (until deleted) in zhone as &amp;quot;unsent&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* zhone's design of immediately showing you a received message doesn't completely work in practice, because it makes it easy to miss when there are other new messages.&lt;br /&gt;
&lt;br /&gt;
Phone calls mostly OK.&lt;br /&gt;
&lt;br /&gt;
* I haven't touched the GSM ALSA state file, and I haven't had any complaints.&lt;br /&gt;
&lt;br /&gt;
* Ring tone is too quiet; I never hear it.&lt;br /&gt;
&lt;br /&gt;
=== Queries/Ideas/Plans ===&lt;br /&gt;
&lt;br /&gt;
auxlaunch should also support killing an existing window - for apps like TangoGPS which don't have a quit button anywhere.  I wonder if anyone already has a patch for that?&lt;br /&gt;
&lt;br /&gt;
Why doesn't the current app resize itself when cellwriter pops up, in the same way they all do when matchbox-keyboard pops up?&lt;br /&gt;
&lt;br /&gt;
Why does [http://wiki.debian.org/DebianOnFreeRunner#ChoosingKernel http://wiki.debian.org/DebianOnFreeRunner#ChoosingKernel] say that the default kernel is 2.6.29, when I apparently have 2.6.28 (and didn't do anything special to get this):&lt;br /&gt;
&lt;br /&gt;
 debian-gta02:~# uname -a&lt;br /&gt;
 Linux debian-gta02 2.6.28-20090105.git69b2aa26 #1 PREEMPT Tue Mar 3 20:22:28 UTC 2009 armv4tl GNU/Linux&lt;br /&gt;
&lt;br /&gt;
Why does [http://docs.openmoko.org/trac/ticket/2277 http://docs.openmoko.org/trac/ticket/2277] say that using a 2.6.28 kernel &amp;quot;makes the rest of the phone broken&amp;quot;?  (Most things seem to be working for me with a 2.6.28 kernel.)&lt;/div&gt;</summary>
		<author><name>Neiljerram</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/User:Neiljerram</id>
		<title>User:Neiljerram</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/User:Neiljerram"/>
				<updated>2009-12-16T00:03:20Z</updated>
		
		<summary type="html">&lt;p&gt;Neiljerram: /* Queries/Ideas/Plans */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I use Debian on my Freerunner.  Following is a description of my setup, and of how well (or not) things are working with that setup.&lt;br /&gt;
&lt;br /&gt;
=== Main points ===&lt;br /&gt;
&lt;br /&gt;
Debian installed (again) on 10th December (2009, following major filesystem corruption of my previous Debian install).&lt;br /&gt;
&lt;br /&gt;
matchbox window manager and keyboard.  I'm kind of missing the E17 keyboard, but not as much as I expected to.  The matchbox keyboard seems more usable than you'd think, given its size.&lt;br /&gt;
&lt;br /&gt;
trayer, openmoko-panel-plugin and auxlaunch.  Here's my .xsession:&lt;br /&gt;
&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 trayer --edge top --height 60 &amp;amp;&lt;br /&gt;
 openmoko-panel-plugin &amp;amp;&lt;br /&gt;
 zhone &amp;amp;&lt;br /&gt;
 rm -f .auxlaunchpid&lt;br /&gt;
 auxlaunch -dms &amp;amp;&lt;br /&gt;
 exec matchbox-window-manager -use_titlebar no -use_cursor no&lt;br /&gt;
&lt;br /&gt;
Some screenshots to show how it looks...  I think the plainness of the top panel goes well with the sharp angles of Gtk+ apps.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Image:2009-12-15-221523_480x640_scrot.png|zhone&lt;br /&gt;
Image:2009-12-15-222642_480x640_scrot.png|auxlaunch&lt;br /&gt;
Image:2009-12-15-222742_480x640_scrot.png|Simon Tatham's cube puzzle&lt;br /&gt;
Image:2009-12-15-223038_480x640_scrot.png|aptitude-gtk&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
cellwriter is fun to have around.  Once it has been started for the first time (which you can do from auxlaunch), it adds an icon to the top panel, and then you can click that to make cellwriter appear and disappear.  So there is no need to decide whether to replace matchbox-keyboard with cellwriter in the openmoko-panel-plugin config; it's easy to have both.  I made the following changes to the default config.&lt;br /&gt;
&lt;br /&gt;
* Grid: 10 by 4 calls.  Otherwise, when training, you can't get to some of the characters.&lt;br /&gt;
&lt;br /&gt;
* Keyboard: 480 pixels wide.  Obviously.&lt;br /&gt;
&lt;br /&gt;
* Enable extended input events.  Otherwise just doesn't work as an input method.&lt;br /&gt;
&lt;br /&gt;
* Window docking: Bottom.  Otherwise completely covers the app that you're trying to type into!&lt;br /&gt;
&lt;br /&gt;
=== Working and Not Working ===&lt;br /&gt;
&lt;br /&gt;
=== Queries/Ideas/Plans ===&lt;br /&gt;
&lt;br /&gt;
auxlaunch should also support killing an existing window - for apps like TangoGPS which don't have a quit button anywhere.  I wonder if anyone already has a patch for that?&lt;br /&gt;
&lt;br /&gt;
Why doesn't the current app resize itself when cellwriter pops up, in the same way they all do when matchbox-keyboard pops up?&lt;br /&gt;
&lt;br /&gt;
Why does [http://wiki.debian.org/DebianOnFreeRunner#ChoosingKernel http://wiki.debian.org/DebianOnFreeRunner#ChoosingKernel] say that the default kernel is 2.6.29, when I apparently have 2.6.28 (and didn't do anything special to get this):&lt;br /&gt;
&lt;br /&gt;
 debian-gta02:~# uname -a&lt;br /&gt;
 Linux debian-gta02 2.6.28-20090105.git69b2aa26 #1 PREEMPT Tue Mar 3 20:22:28 UTC 2009 armv4tl GNU/Linux&lt;br /&gt;
&lt;br /&gt;
Why does [http://docs.openmoko.org/trac/ticket/2277 http://docs.openmoko.org/trac/ticket/2277] say that using a 2.6.28 kernel &amp;quot;makes the rest of the phone broken&amp;quot;?  (Most things seem to be working for me with a 2.6.28 kernel.)&lt;/div&gt;</summary>
		<author><name>Neiljerram</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/User:Neiljerram</id>
		<title>User:Neiljerram</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/User:Neiljerram"/>
				<updated>2009-12-16T00:01:43Z</updated>
		
		<summary type="html">&lt;p&gt;Neiljerram: /* Queries/Ideas/Plans */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I use Debian on my Freerunner.  Following is a description of my setup, and of how well (or not) things are working with that setup.&lt;br /&gt;
&lt;br /&gt;
=== Main points ===&lt;br /&gt;
&lt;br /&gt;
Debian installed (again) on 10th December (2009, following major filesystem corruption of my previous Debian install).&lt;br /&gt;
&lt;br /&gt;
matchbox window manager and keyboard.  I'm kind of missing the E17 keyboard, but not as much as I expected to.  The matchbox keyboard seems more usable than you'd think, given its size.&lt;br /&gt;
&lt;br /&gt;
trayer, openmoko-panel-plugin and auxlaunch.  Here's my .xsession:&lt;br /&gt;
&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 trayer --edge top --height 60 &amp;amp;&lt;br /&gt;
 openmoko-panel-plugin &amp;amp;&lt;br /&gt;
 zhone &amp;amp;&lt;br /&gt;
 rm -f .auxlaunchpid&lt;br /&gt;
 auxlaunch -dms &amp;amp;&lt;br /&gt;
 exec matchbox-window-manager -use_titlebar no -use_cursor no&lt;br /&gt;
&lt;br /&gt;
Some screenshots to show how it looks...  I think the plainness of the top panel goes well with the sharp angles of Gtk+ apps.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Image:2009-12-15-221523_480x640_scrot.png|zhone&lt;br /&gt;
Image:2009-12-15-222642_480x640_scrot.png|auxlaunch&lt;br /&gt;
Image:2009-12-15-222742_480x640_scrot.png|Simon Tatham's cube puzzle&lt;br /&gt;
Image:2009-12-15-223038_480x640_scrot.png|aptitude-gtk&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
cellwriter is fun to have around.  Once it has been started for the first time (which you can do from auxlaunch), it adds an icon to the top panel, and then you can click that to make cellwriter appear and disappear.  So there is no need to decide whether to replace matchbox-keyboard with cellwriter in the openmoko-panel-plugin config; it's easy to have both.  I made the following changes to the default config.&lt;br /&gt;
&lt;br /&gt;
* Grid: 10 by 4 calls.  Otherwise, when training, you can't get to some of the characters.&lt;br /&gt;
&lt;br /&gt;
* Keyboard: 480 pixels wide.  Obviously.&lt;br /&gt;
&lt;br /&gt;
* Enable extended input events.  Otherwise just doesn't work as an input method.&lt;br /&gt;
&lt;br /&gt;
* Window docking: Bottom.  Otherwise completely covers the app that you're trying to type into!&lt;br /&gt;
&lt;br /&gt;
=== Queries/Ideas/Plans ===&lt;br /&gt;
&lt;br /&gt;
auxlaunch should also support killing an existing window - for apps like TangoGPS which don't have a quit button anywhere.  I wonder if anyone already has a patch for that?&lt;br /&gt;
&lt;br /&gt;
Why doesn't the current app resize itself when cellwriter pops up, in the same way they all do when matchbox-keyboard pops up?&lt;br /&gt;
&lt;br /&gt;
Why does [http://wiki.debian.org/DebianOnFreeRunner#ChoosingKernel http://wiki.debian.org/DebianOnFreeRunner#ChoosingKernel] say that the default kernel is 2.6.29, when I apparently have 2.6.28 (and didn't do anything special to get this):&lt;br /&gt;
&lt;br /&gt;
 debian-gta02:~# uname -a&lt;br /&gt;
 Linux debian-gta02 2.6.28-20090105.git69b2aa26 #1 PREEMPT Tue Mar 3 20:22:28 UTC 2009 armv4tl GNU/Linux&lt;br /&gt;
&lt;br /&gt;
Why does [http://docs.openmoko.org/trac/ticket/2277 http://docs.openmoko.org/trac/ticket/2277] say that using a 2.6.28 kernel &amp;quot;makes the rest of the phone broken&amp;quot;?  (Most things seem to be working for me with a 2.6.28 kernel.)&lt;/div&gt;</summary>
		<author><name>Neiljerram</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/User:Neiljerram</id>
		<title>User:Neiljerram</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/User:Neiljerram"/>
				<updated>2009-12-15T23:59:00Z</updated>
		
		<summary type="html">&lt;p&gt;Neiljerram: /* Queries/Ideas/Plans */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I use Debian on my Freerunner.  Following is a description of my setup, and of how well (or not) things are working with that setup.&lt;br /&gt;
&lt;br /&gt;
=== Main points ===&lt;br /&gt;
&lt;br /&gt;
Debian installed (again) on 10th December (2009, following major filesystem corruption of my previous Debian install).&lt;br /&gt;
&lt;br /&gt;
matchbox window manager and keyboard.  I'm kind of missing the E17 keyboard, but not as much as I expected to.  The matchbox keyboard seems more usable than you'd think, given its size.&lt;br /&gt;
&lt;br /&gt;
trayer, openmoko-panel-plugin and auxlaunch.  Here's my .xsession:&lt;br /&gt;
&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 trayer --edge top --height 60 &amp;amp;&lt;br /&gt;
 openmoko-panel-plugin &amp;amp;&lt;br /&gt;
 zhone &amp;amp;&lt;br /&gt;
 rm -f .auxlaunchpid&lt;br /&gt;
 auxlaunch -dms &amp;amp;&lt;br /&gt;
 exec matchbox-window-manager -use_titlebar no -use_cursor no&lt;br /&gt;
&lt;br /&gt;
Some screenshots to show how it looks...  I think the plainness of the top panel goes well with the sharp angles of Gtk+ apps.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Image:2009-12-15-221523_480x640_scrot.png|zhone&lt;br /&gt;
Image:2009-12-15-222642_480x640_scrot.png|auxlaunch&lt;br /&gt;
Image:2009-12-15-222742_480x640_scrot.png|Simon Tatham's cube puzzle&lt;br /&gt;
Image:2009-12-15-223038_480x640_scrot.png|aptitude-gtk&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
cellwriter is fun to have around.  Once it has been started for the first time (which you can do from auxlaunch), it adds an icon to the top panel, and then you can click that to make cellwriter appear and disappear.  So there is no need to decide whether to replace matchbox-keyboard with cellwriter in the openmoko-panel-plugin config; it's easy to have both.  I made the following changes to the default config.&lt;br /&gt;
&lt;br /&gt;
* Grid: 10 by 4 calls.  Otherwise, when training, you can't get to some of the characters.&lt;br /&gt;
&lt;br /&gt;
* Keyboard: 480 pixels wide.  Obviously.&lt;br /&gt;
&lt;br /&gt;
* Enable extended input events.  Otherwise just doesn't work as an input method.&lt;br /&gt;
&lt;br /&gt;
* Window docking: Bottom.  Otherwise completely covers the app that you're trying to type into!&lt;br /&gt;
&lt;br /&gt;
=== Queries/Ideas/Plans ===&lt;br /&gt;
&lt;br /&gt;
auxlaunch should also support killing an existing window - for apps like TangoGPS which don't have a quit button anywhere.  I wonder if anyone already has a patch for that?&lt;br /&gt;
&lt;br /&gt;
Why doesn't the current app resize itself when cellwriter pops up, in the same way they all do when matchbox-keyboard pops up?&lt;br /&gt;
&lt;br /&gt;
Why does [http://wiki.debian.org/DebianOnFreeRunner#ChoosingKernel http://wiki.debian.org/DebianOnFreeRunner#ChoosingKernel] say that the default kernel is 2.6.29, when I apparently have 2.6.28:&lt;br /&gt;
&lt;br /&gt;
 debian-gta02:~# uname -a&lt;br /&gt;
 Linux debian-gta02 2.6.28-20090105.git69b2aa26 #1 PREEMPT Tue Mar 3 20:22:28 UTC 2009 armv4tl GNU/Linux&lt;/div&gt;</summary>
		<author><name>Neiljerram</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/User:Neiljerram</id>
		<title>User:Neiljerram</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/User:Neiljerram"/>
				<updated>2009-12-15T23:58:11Z</updated>
		
		<summary type="html">&lt;p&gt;Neiljerram: /* Main points */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I use Debian on my Freerunner.  Following is a description of my setup, and of how well (or not) things are working with that setup.&lt;br /&gt;
&lt;br /&gt;
=== Main points ===&lt;br /&gt;
&lt;br /&gt;
Debian installed (again) on 10th December (2009, following major filesystem corruption of my previous Debian install).&lt;br /&gt;
&lt;br /&gt;
matchbox window manager and keyboard.  I'm kind of missing the E17 keyboard, but not as much as I expected to.  The matchbox keyboard seems more usable than you'd think, given its size.&lt;br /&gt;
&lt;br /&gt;
trayer, openmoko-panel-plugin and auxlaunch.  Here's my .xsession:&lt;br /&gt;
&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 trayer --edge top --height 60 &amp;amp;&lt;br /&gt;
 openmoko-panel-plugin &amp;amp;&lt;br /&gt;
 zhone &amp;amp;&lt;br /&gt;
 rm -f .auxlaunchpid&lt;br /&gt;
 auxlaunch -dms &amp;amp;&lt;br /&gt;
 exec matchbox-window-manager -use_titlebar no -use_cursor no&lt;br /&gt;
&lt;br /&gt;
Some screenshots to show how it looks...  I think the plainness of the top panel goes well with the sharp angles of Gtk+ apps.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Image:2009-12-15-221523_480x640_scrot.png|zhone&lt;br /&gt;
Image:2009-12-15-222642_480x640_scrot.png|auxlaunch&lt;br /&gt;
Image:2009-12-15-222742_480x640_scrot.png|Simon Tatham's cube puzzle&lt;br /&gt;
Image:2009-12-15-223038_480x640_scrot.png|aptitude-gtk&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
cellwriter is fun to have around.  Once it has been started for the first time (which you can do from auxlaunch), it adds an icon to the top panel, and then you can click that to make cellwriter appear and disappear.  So there is no need to decide whether to replace matchbox-keyboard with cellwriter in the openmoko-panel-plugin config; it's easy to have both.  I made the following changes to the default config.&lt;br /&gt;
&lt;br /&gt;
* Grid: 10 by 4 calls.  Otherwise, when training, you can't get to some of the characters.&lt;br /&gt;
&lt;br /&gt;
* Keyboard: 480 pixels wide.  Obviously.&lt;br /&gt;
&lt;br /&gt;
* Enable extended input events.  Otherwise just doesn't work as an input method.&lt;br /&gt;
&lt;br /&gt;
* Window docking: Bottom.  Otherwise completely covers the app that you're trying to type into!&lt;br /&gt;
&lt;br /&gt;
=== Queries/Ideas/Plans ===&lt;br /&gt;
&lt;br /&gt;
* auxlaunch should also support killing an existing window - for apps like TangoGPS which don't have a quit button anywhere.  I wonder if anyone already has a patch for that?&lt;br /&gt;
&lt;br /&gt;
* Why doesn't the current app resize itself when cellwriter pops up, in the same way they all do when matchbox-keyboard pops up?&lt;br /&gt;
&lt;br /&gt;
* Why does [http://wiki.debian.org/DebianOnFreeRunner#ChoosingKernel http://wiki.debian.org/DebianOnFreeRunner#ChoosingKernel] say that the default kernel is 2.6.29, when I apparently have 2.6.28:&lt;br /&gt;
&lt;br /&gt;
 debian-gta02:~# uname -a&lt;br /&gt;
 Linux debian-gta02 2.6.28-20090105.git69b2aa26 #1 PREEMPT Tue Mar 3 20:22:28 UTC 2009 armv4tl GNU/Linux&lt;/div&gt;</summary>
		<author><name>Neiljerram</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/User:Neiljerram</id>
		<title>User:Neiljerram</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/User:Neiljerram"/>
				<updated>2009-12-15T23:55:34Z</updated>
		
		<summary type="html">&lt;p&gt;Neiljerram: /* Main points */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I use Debian on my Freerunner.  Following is a description of my setup, and of how well (or not) things are working with that setup.&lt;br /&gt;
&lt;br /&gt;
=== Main points ===&lt;br /&gt;
&lt;br /&gt;
* Debian installed (again) on 10th December (2009, following major filesystem corruption of my previous Debian install).&lt;br /&gt;
&lt;br /&gt;
* matchbox window manager and keyboard.  I'm kind of missing the E17 keyboard, but not as much as I expected to.  The matchbox keyboard seems more usable than you'd think, given its size.&lt;br /&gt;
&lt;br /&gt;
* trayer, openmoko-panel-plugin and auxlaunch.  Here's my .xsession:&lt;br /&gt;
&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 trayer --edge top --height 60 &amp;amp;&lt;br /&gt;
 openmoko-panel-plugin &amp;amp;&lt;br /&gt;
 zhone &amp;amp;&lt;br /&gt;
 rm -f .auxlaunchpid&lt;br /&gt;
 auxlaunch -dms &amp;amp;&lt;br /&gt;
 exec matchbox-window-manager -use_titlebar no -use_cursor no&lt;br /&gt;
&lt;br /&gt;
* Some screenshots to show how it looks...  I think the plainness of the top panel goes well with the sharp angles of Gtk+ apps.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Image:2009-12-15-221523_480x640_scrot.png|zhone&lt;br /&gt;
Image:2009-12-15-222642_480x640_scrot.png|auxlaunch&lt;br /&gt;
Image:2009-12-15-222742_480x640_scrot.png|Simon Tatham's cube puzzle&lt;br /&gt;
Image:2009-12-15-223038_480x640_scrot.png|aptitude-gtk&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* cellwriter is fun to have around.  Once it has been started for the first time (which you can do from auxlaunch), it adds an icon to the top panel, and then you can click that to make cellwriter appear and disappear.  So there is no need to decide whether to replace matchbox-keyboard with cellwriter in the openmoko-panel-plugin config; it's easy to have both.  I made the following changes to the default config.&lt;br /&gt;
&lt;br /&gt;
** Grid: 10 by 4 calls.  Otherwise, when training, you can't get to some of the characters.&lt;br /&gt;
&lt;br /&gt;
** Keyboard: 480 pixels wide.  Obviously.&lt;br /&gt;
&lt;br /&gt;
** Enable extended input events.  Otherwise just doesn't work as an input method.&lt;br /&gt;
&lt;br /&gt;
** Window docking: Bottom.  Otherwise completely covers the app that you're trying to type into!&lt;br /&gt;
&lt;br /&gt;
=== Queries/Ideas/Plans ===&lt;br /&gt;
&lt;br /&gt;
* auxlaunch should also support killing an existing window - for apps like TangoGPS which don't have a quit button anywhere.  I wonder if anyone already has a patch for that?&lt;br /&gt;
&lt;br /&gt;
* Why doesn't the current app resize itself when cellwriter pops up, in the same way they all do when matchbox-keyboard pops up?&lt;br /&gt;
&lt;br /&gt;
* Why does [http://wiki.debian.org/DebianOnFreeRunner#ChoosingKernel http://wiki.debian.org/DebianOnFreeRunner#ChoosingKernel] say that the default kernel is 2.6.29, when I apparently have 2.6.28:&lt;br /&gt;
&lt;br /&gt;
 debian-gta02:~# uname -a&lt;br /&gt;
 Linux debian-gta02 2.6.28-20090105.git69b2aa26 #1 PREEMPT Tue Mar 3 20:22:28 UTC 2009 armv4tl GNU/Linux&lt;/div&gt;</summary>
		<author><name>Neiljerram</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/User:Neiljerram</id>
		<title>User:Neiljerram</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/User:Neiljerram"/>
				<updated>2009-12-15T23:48:16Z</updated>
		
		<summary type="html">&lt;p&gt;Neiljerram: /* Queries/Ideas/Plans */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I use Debian on my Freerunner.  Following is a description of my setup, and of how well (or not) things are working with that setup.&lt;br /&gt;
&lt;br /&gt;
=== Main points ===&lt;br /&gt;
&lt;br /&gt;
* Debian installed (again) on 10th December (2009, following major filesystem corruption of my previous Debian install).&lt;br /&gt;
&lt;br /&gt;
* matchbox window manager and keyboard.  I'm kind of missing the E17 keyboard, but not as much as I expected to.  The matchbox keyboard seems more usable than you'd think, given its size.&lt;br /&gt;
&lt;br /&gt;
* trayer, openmoko-panel-plugin and auxlaunch.  Here's my .xsession:&lt;br /&gt;
&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 trayer --edge top --height 60 &amp;amp;&lt;br /&gt;
 openmoko-panel-plugin &amp;amp;&lt;br /&gt;
 zhone &amp;amp;&lt;br /&gt;
 rm -f .auxlaunchpid&lt;br /&gt;
 auxlaunch -dms &amp;amp;&lt;br /&gt;
 exec matchbox-window-manager -use_titlebar no -use_cursor no&lt;br /&gt;
&lt;br /&gt;
* Some screenshots to show how it looks...  I think the plainness of the top panel goes well with the sharp angles of Gtk+ apps.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Image:2009-12-15-221523_480x640_scrot.png|zhone&lt;br /&gt;
Image:2009-12-15-222642_480x640_scrot.png|auxlaunch&lt;br /&gt;
Image:2009-12-15-222742_480x640_scrot.png|Simon Tatham's cube puzzle&lt;br /&gt;
Image:2009-12-15-223038_480x640_scrot.png|aptitude-gtk&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* cellwriter is fun to have around.  Once it has been started for the first time (which you can do from auxlaunch), it adds an icon to the top panel, and then you can click that to make cellwriter appear and disappear.  So there is no need to decide whether to replace matchbox-keyboard with cellwriter in the openmoko-panel-plugin config; it's easy to have both.&lt;br /&gt;
&lt;br /&gt;
=== Queries/Ideas/Plans ===&lt;br /&gt;
&lt;br /&gt;
* auxlaunch should also support killing an existing window - for apps like TangoGPS which don't have a quit button anywhere.  I wonder if anyone already has a patch for that?&lt;br /&gt;
&lt;br /&gt;
* Why doesn't the current app resize itself when cellwriter pops up, in the same way they all do when matchbox-keyboard pops up?&lt;br /&gt;
&lt;br /&gt;
* Why does [http://wiki.debian.org/DebianOnFreeRunner#ChoosingKernel http://wiki.debian.org/DebianOnFreeRunner#ChoosingKernel] say that the default kernel is 2.6.29, when I apparently have 2.6.28:&lt;br /&gt;
&lt;br /&gt;
 debian-gta02:~# uname -a&lt;br /&gt;
 Linux debian-gta02 2.6.28-20090105.git69b2aa26 #1 PREEMPT Tue Mar 3 20:22:28 UTC 2009 armv4tl GNU/Linux&lt;/div&gt;</summary>
		<author><name>Neiljerram</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/User:Neiljerram</id>
		<title>User:Neiljerram</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/User:Neiljerram"/>
				<updated>2009-12-15T23:41:47Z</updated>
		
		<summary type="html">&lt;p&gt;Neiljerram: /* Main points */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I use Debian on my Freerunner.  Following is a description of my setup, and of how well (or not) things are working with that setup.&lt;br /&gt;
&lt;br /&gt;
=== Main points ===&lt;br /&gt;
&lt;br /&gt;
* Debian installed (again) on 10th December (2009, following major filesystem corruption of my previous Debian install).&lt;br /&gt;
&lt;br /&gt;
* matchbox window manager and keyboard.  I'm kind of missing the E17 keyboard, but not as much as I expected to.  The matchbox keyboard seems more usable than you'd think, given its size.&lt;br /&gt;
&lt;br /&gt;
* trayer, openmoko-panel-plugin and auxlaunch.  Here's my .xsession:&lt;br /&gt;
&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 trayer --edge top --height 60 &amp;amp;&lt;br /&gt;
 openmoko-panel-plugin &amp;amp;&lt;br /&gt;
 zhone &amp;amp;&lt;br /&gt;
 rm -f .auxlaunchpid&lt;br /&gt;
 auxlaunch -dms &amp;amp;&lt;br /&gt;
 exec matchbox-window-manager -use_titlebar no -use_cursor no&lt;br /&gt;
&lt;br /&gt;
* Some screenshots to show how it looks...  I think the plainness of the top panel goes well with the sharp angles of Gtk+ apps.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Image:2009-12-15-221523_480x640_scrot.png|zhone&lt;br /&gt;
Image:2009-12-15-222642_480x640_scrot.png|auxlaunch&lt;br /&gt;
Image:2009-12-15-222742_480x640_scrot.png|Simon Tatham's cube puzzle&lt;br /&gt;
Image:2009-12-15-223038_480x640_scrot.png|aptitude-gtk&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* cellwriter is fun to have around.  Once it has been started for the first time (which you can do from auxlaunch), it adds an icon to the top panel, and then you can click that to make cellwriter appear and disappear.  So there is no need to decide whether to replace matchbox-keyboard with cellwriter in the openmoko-panel-plugin config; it's easy to have both.&lt;br /&gt;
&lt;br /&gt;
=== Queries/Ideas/Plans ===&lt;br /&gt;
&lt;br /&gt;
* auxlaunch should also support killing an existing window - for apps like TangoGPS which don't have a quit button anywhere.  I wonder if anyone already has a patch for that?&lt;/div&gt;</summary>
		<author><name>Neiljerram</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/User:Neiljerram</id>
		<title>User:Neiljerram</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/User:Neiljerram"/>
				<updated>2009-12-15T23:38:22Z</updated>
		
		<summary type="html">&lt;p&gt;Neiljerram: /* Main points */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I use Debian on my Freerunner.  Following is a description of my setup, and of how well (or not) things are working with that setup.&lt;br /&gt;
&lt;br /&gt;
=== Main points ===&lt;br /&gt;
&lt;br /&gt;
* Debian installed (again) on 10th December (2009, following major filesystem corruption of my previous Debian install).&lt;br /&gt;
&lt;br /&gt;
* matchbox window manager and keyboard.  I'm kind of missing the E17 keyboard, but not as much as I expected to.  The matchbox keyboard seems more usable than you'd think, given its size.&lt;br /&gt;
&lt;br /&gt;
* trayer, openmoko-panel-plugin and auxlaunch.  Here's my .xsession:&lt;br /&gt;
&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 trayer --edge top --height 60 &amp;amp;&lt;br /&gt;
 openmoko-panel-plugin &amp;amp;&lt;br /&gt;
 zhone &amp;amp;&lt;br /&gt;
 rm -f .auxlaunchpid&lt;br /&gt;
 auxlaunch -dms &amp;amp;&lt;br /&gt;
 exec matchbox-window-manager -use_titlebar no -use_cursor no&lt;br /&gt;
&lt;br /&gt;
* Some screenshots to show how it looks...  I think the plainness of the top panel goes well with the sharp angles of Gtk+ apps.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Image:2009-12-15-221523_480x640_scrot.png|zhone&lt;br /&gt;
Image:2009-12-15-222642_480x640_scrot.png|auxlaunch&lt;br /&gt;
Image:2009-12-15-222742_480x640_scrot.png|Simon Tatham's cube puzzle&lt;br /&gt;
Image:2009-12-15-223038_480x640_scrot.png|aptitude-gtk&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* cellwriter is fun to have around.  Once it has been started for the first time (which you can do from auxlaunch), it adds an icon to the top panel, and then you can click that to make cellwriter appear and disappear.  So there is no need to decide whether to replace matchbox-keyboard with cellwriter in the openmoko-panel-plugin config; it's easy to have both.&lt;/div&gt;</summary>
		<author><name>Neiljerram</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/User:Neiljerram</id>
		<title>User:Neiljerram</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/User:Neiljerram"/>
				<updated>2009-12-15T23:37:12Z</updated>
		
		<summary type="html">&lt;p&gt;Neiljerram: /* Main points */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I use Debian on my Freerunner.  Following is a description of my setup, and of how well (or not) things are working with that setup.&lt;br /&gt;
&lt;br /&gt;
=== Main points ===&lt;br /&gt;
&lt;br /&gt;
* Debian installed (again) on 10th December (2009, following major filesystem corruption of my previous Debian install).&lt;br /&gt;
&lt;br /&gt;
* matchbox window manager and keyboard.  I'm kind of missing the E17 keyboard, but not as much as I expected to.  The matchbox keyboard seems more usable than you'd think, given its size.&lt;br /&gt;
&lt;br /&gt;
* trayer, openmoko-panel-plugin and auxlaunch.  Here's my .xsession:&lt;br /&gt;
&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 trayer --edge top --height 60 &amp;amp;&lt;br /&gt;
 openmoko-panel-plugin &amp;amp;&lt;br /&gt;
 zhone &amp;amp;&lt;br /&gt;
 rm -f .auxlaunchpid&lt;br /&gt;
 auxlaunch -dms &amp;amp;&lt;br /&gt;
 exec matchbox-window-manager -use_titlebar no -use_cursor no&lt;br /&gt;
&lt;br /&gt;
* Some screenshots to show how it looks...  I think the plainness of the top panel goes well with the sharp angles of Gtk+ apps.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:2009-12-15-221523_480x640_scrot.png|zhone&lt;br /&gt;
File:2009-12-15-222642_480x640_scrot.png|auxlaunch&lt;br /&gt;
File:2009-12-15-222742_480x640_scrot.png|Simon Tatham's cube puzzle&lt;br /&gt;
File:2009-12-15-223038_480x640_scrot.png|aptitude-gtk&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* cellwriter is fun to have around.  Once it has been started for the first time (which you can do from auxlaunch), it adds an icon to the top panel, and then you can click that to make cellwriter appear and disappear.  So there is no need to decide whether to replace matchbox-keyboard with cellwriter in the openmoko-panel-plugin config; it's easy to have both.&lt;/div&gt;</summary>
		<author><name>Neiljerram</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/User:Neiljerram</id>
		<title>User:Neiljerram</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/User:Neiljerram"/>
				<updated>2009-12-15T23:33:16Z</updated>
		
		<summary type="html">&lt;p&gt;Neiljerram: /* Main points */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I use Debian on my Freerunner.  Following is a description of my setup, and of how well (or not) things are working with that setup.&lt;br /&gt;
&lt;br /&gt;
=== Main points ===&lt;br /&gt;
&lt;br /&gt;
* Debian installed (again) on 10th December (2009, following major filesystem corruption of my previous Debian install).&lt;br /&gt;
&lt;br /&gt;
* matchbox window manager and keyboard.  I'm kind of missing the E17 keyboard, but not as much as I expected to.  The matchbox keyboard seems more usable than you'd think, given its size.&lt;br /&gt;
&lt;br /&gt;
* trayer, openmoko-panel-plugin and auxlaunch.  Here's my .xsession:&lt;br /&gt;
&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 trayer --edge top --height 60 &amp;amp;&lt;br /&gt;
 openmoko-panel-plugin &amp;amp;&lt;br /&gt;
 zhone &amp;amp;&lt;br /&gt;
 rm -f .auxlaunchpid&lt;br /&gt;
 auxlaunch -dms &amp;amp;&lt;br /&gt;
 exec matchbox-window-manager -use_titlebar no -use_cursor no&lt;br /&gt;
&lt;br /&gt;
* Some screenshots to show how it looks...  I think the plainness of the top panel goes well with the sharp angles of Gtk+ apps.&lt;br /&gt;
&lt;br /&gt;
[[Image:2009-12-15-221523_480x640_scrot.png|thumb|zhone|240px|left]]&lt;br /&gt;
[[Image:2009-12-15-222642_480x640_scrot.png|240px|thumb|auxlaunch]]&lt;br /&gt;
[[Image:2009-12-15-222742_480x640_scrot.png|240px|thumb|Simon Tatham's cube puzzle|left]]&lt;br /&gt;
[[Image:2009-12-15-223038_480x640_scrot.png|240px|thumb|aptitude-gtk]]&lt;br /&gt;
&lt;br /&gt;
* cellwriter is fun to have around.  Once it has been started for the first time (which you can do from auxlaunch), it adds an icon to the top panel, and then you can click that to make cellwriter appear and disappear.  So there is no need to decide whether to replace matchbox-keyboard with cellwriter in the openmoko-panel-plugin config; it's easy to have both.&lt;/div&gt;</summary>
		<author><name>Neiljerram</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/User:Neiljerram</id>
		<title>User:Neiljerram</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/User:Neiljerram"/>
				<updated>2009-12-15T22:41:08Z</updated>
		
		<summary type="html">&lt;p&gt;Neiljerram: /* Main points */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I use Debian on my Freerunner.  Following is a description of my setup, and of how well (or not) things are working with that setup.&lt;br /&gt;
&lt;br /&gt;
=== Main points ===&lt;br /&gt;
&lt;br /&gt;
* Debian installed (again) on 10th December (2009, following major filesystem corruption of my previous Debian install).&lt;br /&gt;
&lt;br /&gt;
* matchbox window manager and keyboard.  I'm kind of missing the E17 keyboard, but not as much as I expected to.  The matchbox keyboard seems more usable than you'd think, given its size.&lt;br /&gt;
&lt;br /&gt;
* trayer, openmoko-panel-plugin and auxlaunch.  Here's my .xsession:&lt;br /&gt;
&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 trayer --edge top --height 60 &amp;amp;&lt;br /&gt;
 openmoko-panel-plugin &amp;amp;&lt;br /&gt;
 zhone &amp;amp;&lt;br /&gt;
 rm -f .auxlaunchpid&lt;br /&gt;
 auxlaunch -dms &amp;amp;&lt;br /&gt;
 exec matchbox-window-manager -use_titlebar no -use_cursor no&lt;br /&gt;
&lt;br /&gt;
* Some screenshots to show how it looks...  I think the plainness of the top panel goes well with the sharp angles of Gtk+ apps.&lt;br /&gt;
&lt;br /&gt;
[[Image:2009-12-15-221523_480x640_scrot.png|thumb|zhone|240px|left]]&lt;br /&gt;
[[Image:2009-12-15-222642_480x640_scrot.png|240px|thumb|auxlaunch]]&lt;br /&gt;
[[Image:2009-12-15-222742_480x640_scrot.png|240px|thumb|Simon Tatham's cube puzzle|left]]&lt;br /&gt;
[[Image:2009-12-15-223038_480x640_scrot.png|240px|thumb|aptitude-gtk]]&lt;/div&gt;</summary>
		<author><name>Neiljerram</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/File:2009-12-15-223038_480x640_scrot.png</id>
		<title>File:2009-12-15-223038 480x640 scrot.png</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/File:2009-12-15-223038_480x640_scrot.png"/>
				<updated>2009-12-15T22:34:22Z</updated>
		
		<summary type="html">&lt;p&gt;Neiljerram: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Neiljerram</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/File:2009-12-15-222742_480x640_scrot.png</id>
		<title>File:2009-12-15-222742 480x640 scrot.png</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/File:2009-12-15-222742_480x640_scrot.png"/>
				<updated>2009-12-15T22:33:47Z</updated>
		
		<summary type="html">&lt;p&gt;Neiljerram: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Neiljerram</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/File:2009-12-15-222642_480x640_scrot.png</id>
		<title>File:2009-12-15-222642 480x640 scrot.png</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/File:2009-12-15-222642_480x640_scrot.png"/>
				<updated>2009-12-15T22:33:03Z</updated>
		
		<summary type="html">&lt;p&gt;Neiljerram: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Neiljerram</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/User:Neiljerram</id>
		<title>User:Neiljerram</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/User:Neiljerram"/>
				<updated>2009-12-15T22:32:43Z</updated>
		
		<summary type="html">&lt;p&gt;Neiljerram: /* Main points */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I use Debian on my Freerunner.  Following is a description of my setup, and of how well (or not) things are working with that setup.&lt;br /&gt;
&lt;br /&gt;
=== Main points ===&lt;br /&gt;
&lt;br /&gt;
* Debian installed (again) on 10th December (2009, following major filesystem corruption of my previous Debian install).&lt;br /&gt;
&lt;br /&gt;
* matchbox window manager and keyboard.  I'm kind of missing the E17 keyboard, but not as much as I expected to.  The matchbox keyboard seems more usable than you'd think, given its size.&lt;br /&gt;
&lt;br /&gt;
* trayer, openmoko-panel-plugin and auxlaunch.  Here's my .xsession:&lt;br /&gt;
&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 trayer --edge top --height 60 &amp;amp;&lt;br /&gt;
 openmoko-panel-plugin &amp;amp;&lt;br /&gt;
 zhone &amp;amp;&lt;br /&gt;
 rm -f .auxlaunchpid&lt;br /&gt;
 auxlaunch -dms &amp;amp;&lt;br /&gt;
 exec matchbox-window-manager -use_titlebar no -use_cursor no&lt;br /&gt;
&lt;br /&gt;
* Some screenshots to show how it looks...  I think the plainness of the top panel goes well with the sharp angles of Gtk+ apps.&lt;br /&gt;
&lt;br /&gt;
[[Image:2009-12-15-221523_480x640_scrot.png|240px]]&lt;br /&gt;
[[Image:2009-12-15-222642_480x640_scrot.png|240px]]&lt;br /&gt;
[[Image:2009-12-15-222742_480x640_scrot.png|240px]]&lt;br /&gt;
[[Image:2009-12-15-223038_480x640_scrot.png|240px]]&lt;/div&gt;</summary>
		<author><name>Neiljerram</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/User:Neiljerram</id>
		<title>User:Neiljerram</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/User:Neiljerram"/>
				<updated>2009-12-15T22:24:50Z</updated>
		
		<summary type="html">&lt;p&gt;Neiljerram: /* Main points */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I use Debian on my Freerunner.  Following is a description of my setup, and of how well (or not) things are working with that setup.&lt;br /&gt;
&lt;br /&gt;
=== Main points ===&lt;br /&gt;
&lt;br /&gt;
* Debian installed (again) on 10th December (2009, following major filesystem corruption of my previous Debian install).&lt;br /&gt;
&lt;br /&gt;
* matchbox window manager and keyboard.  I'm kind of missing the E17 keyboard, but not as much as I expected to.  The matchbox keyboard seems more usable than you'd think, given its size.&lt;br /&gt;
&lt;br /&gt;
* trayer, openmoko-panel-plugin and auxlaunch.  Here's my .xsession:&lt;br /&gt;
&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 trayer --edge top --height 60 &amp;amp;&lt;br /&gt;
 openmoko-panel-plugin &amp;amp;&lt;br /&gt;
 zhone &amp;amp;&lt;br /&gt;
 rm -f .auxlaunchpid&lt;br /&gt;
 auxlaunch -dms &amp;amp;&lt;br /&gt;
 exec matchbox-window-manager -use_titlebar no -use_cursor no&lt;br /&gt;
&lt;br /&gt;
[[Image:2009-12-15-221523_480x640_scrot.png|240px]]&lt;/div&gt;</summary>
		<author><name>Neiljerram</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/User:Neiljerram</id>
		<title>User:Neiljerram</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/User:Neiljerram"/>
				<updated>2009-12-15T22:21:39Z</updated>
		
		<summary type="html">&lt;p&gt;Neiljerram: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I use Debian on my Freerunner.  Following is a description of my setup, and of how well (or not) things are working with that setup.&lt;br /&gt;
&lt;br /&gt;
=== Main points ===&lt;br /&gt;
&lt;br /&gt;
* Debian installed (again) on 10th December (2009, following major filesystem corruption of my previous Debian install).&lt;br /&gt;
&lt;br /&gt;
* matchbox window manager and keyboard.  I'm kind of missing the E17 keyboard, but not as much as I expected to.  The matchbox keyboard seems more usable than you'd think, given its size.&lt;br /&gt;
&lt;br /&gt;
* trayer, openmoko-panel-plugin and auxlaunch.  Here's my .xsession:&lt;br /&gt;
&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 trayer --edge top --height 60 &amp;amp;&lt;br /&gt;
 openmoko-panel-plugin &amp;amp;&lt;br /&gt;
 zhone &amp;amp;&lt;br /&gt;
 rm -f .auxlaunchpid&lt;br /&gt;
 auxlaunch -dms &amp;amp;&lt;br /&gt;
 exec matchbox-window-manager -use_titlebar no -use_cursor no&lt;br /&gt;
&lt;br /&gt;
[[Image:2009-12-15-221523_480x640_scrot.png]]&lt;/div&gt;</summary>
		<author><name>Neiljerram</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/File:2009-12-15-221523_480x640_scrot.png</id>
		<title>File:2009-12-15-221523 480x640 scrot.png</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/File:2009-12-15-221523_480x640_scrot.png"/>
				<updated>2009-12-15T22:20:47Z</updated>
		
		<summary type="html">&lt;p&gt;Neiljerram: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Neiljerram</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/User:Neiljerram</id>
		<title>User:Neiljerram</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/User:Neiljerram"/>
				<updated>2009-12-15T22:11:56Z</updated>
		
		<summary type="html">&lt;p&gt;Neiljerram: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I use Debian on my Freerunner.  Following is a description of my setup, and of how well (or not) things are working with that setup.&lt;br /&gt;
&lt;br /&gt;
=== Main points ===&lt;br /&gt;
&lt;br /&gt;
* Debian installed (again) on 10th December (2009, following major filesystem corruption of my previous Debian install).&lt;br /&gt;
&lt;br /&gt;
* matchbox window manager and keyboard.  I'm kind of missing the E17 keyboard, but not as much as I expected to.  The matchbox keyboard seems more usable than you'd think, given its size.&lt;br /&gt;
&lt;br /&gt;
* trayer, openmoko-panel-plugin and auxlaunch.&lt;/div&gt;</summary>
		<author><name>Neiljerram</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/User:Neiljerram</id>
		<title>User:Neiljerram</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/User:Neiljerram"/>
				<updated>2009-12-15T22:03:17Z</updated>
		
		<summary type="html">&lt;p&gt;Neiljerram: New page: I use Debian on my Freerunner.  Following is a description of my setup, and the status of how things are working with that setup.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I use Debian on my Freerunner.  Following is a description of my setup, and the status of how things are working with that setup.&lt;/div&gt;</summary>
		<author><name>Neiljerram</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Accelerometer_data_retrieval</id>
		<title>Accelerometer data retrieval</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Accelerometer_data_retrieval"/>
				<updated>2009-10-30T21:34:45Z</updated>
		
		<summary type="html">&lt;p&gt;Neiljerram: Guile Scheme implementation of accelerometer reading and autorotation&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Scope==&lt;br /&gt;
&lt;br /&gt;
This document describes a way to access the data provided by the&lt;br /&gt;
accelerometers. Furthermore the format of the acquired datastream is explained&lt;br /&gt;
in detail. This document does not cover the physical basics of acceleration or&lt;br /&gt;
the mathematical details on this subject.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Axis orientation==&lt;br /&gt;
&lt;br /&gt;
To understand the values provided by the accelerometers it is crucial to&lt;br /&gt;
understand how the sensors are oriented. In the following I will refer to the&lt;br /&gt;
sensors as first and second sensor. The way to access the data sources of&lt;br /&gt;
these two will be described later on in this document.&lt;br /&gt;
&lt;br /&gt;
The Z axis is pointing from the display downwards to to the back of the&lt;br /&gt;
openmoko. This applies to both of the sensors.&lt;br /&gt;
(Also see [http://wiki.openmoko.org/wiki/Talk:Technical:Accelerometer_Fundamentals Definition of gmeter readings as force rather than acceleration]) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Orientation of the first sensor===&lt;br /&gt;
&lt;br /&gt;
To explain the axis orientation I have created some images for easier&lt;br /&gt;
understanding. Note that X and Y are in the same plane as the screen, while the Z arrow is pointing &amp;quot;into the screen&amp;quot;, i.e. behind the  Neo. The device for the first sensor is ''/dev/input/event2''.&lt;br /&gt;
&lt;br /&gt;
[[Image:Accelerometer_orientation1.png|Axis orientation of the first accelerometer]]&lt;br /&gt;
&lt;br /&gt;
===Orientation of the second sensor===&lt;br /&gt;
&lt;br /&gt;
In contrast to the first sensor the second one is turned 45 degrees around the&lt;br /&gt;
Z axis. See the attached image to get a clue about its orientation. Note that X and Y are in the same plane as the screen, while the Z arrow is pointing &amp;quot;into the screen&amp;quot;, i.e. behind the Neo. The device for the second sensor is ''/dev/input/event3''.&lt;br /&gt;
&lt;br /&gt;
[[Image:Accelerometer_orientation2.png|Axis orientation of the second accelerometer]]&lt;br /&gt;
&lt;br /&gt;
==Data acquisition==&lt;br /&gt;
&lt;br /&gt;
The information from both of the accelerometers is exported through two&lt;br /&gt;
different input event based file mappings. These device nodes can be found at&lt;br /&gt;
''/dev/input/event2'' and ''/dev/input/event3''.&lt;br /&gt;
&lt;br /&gt;
The sensor I am refering to as the first one is ''event2''. Therefore the second&lt;br /&gt;
one is accessible through the ''event3'' device.&lt;br /&gt;
&lt;br /&gt;
Hint: Adding /etc/udev/rules.d/55-freerunner-accelerometer.rules with&lt;br /&gt;
 SUBSYSTEM==&amp;quot;input&amp;quot;, ATTRS{modalias}==&amp;quot;input:b0018v0000p0000e0000-e0,3,kra0,1,2,mlsfw&amp;quot;, SYMLINK+=&amp;quot;accelerometer-top&amp;quot;&lt;br /&gt;
 SUBSYSTEM==&amp;quot;input&amp;quot;, ATTRS{modalias}==&amp;quot;input:b0018v0000p0000e0000-e0,3,kra0,1,2,mlsfw&amp;quot;, SYMLINK+=&amp;quot;accelerometer-bottom&amp;quot;&lt;br /&gt;
will give you bit more meaningful device names. [[User:Lindi|Lindi]] 08:16, 15 July 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
These device nodes can be opened by the default filesystems calls for reading&lt;br /&gt;
files. The data can be read from the stream as soon as the sensor measures it. Note that since the data is exported as normal files you can easily e.g. use netcat to stream the accelerometer data over bluetooth to your laptop to a control a game running on your laptop.&lt;br /&gt;
&lt;br /&gt;
==Data structure==&lt;br /&gt;
&lt;br /&gt;
To be able to use the measured data it is important to understand the format&lt;br /&gt;
in which the data is provided.&lt;br /&gt;
The structure of the given data is based on the kernel input event message&lt;br /&gt;
system which exports the following data structure:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
struct input_event {&lt;br /&gt;
struct timeval time;&lt;br /&gt;
__u16 type;&lt;br /&gt;
__u16 code;&lt;br /&gt;
__s32 value;&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The data is written to the stream message by message. Therefore the minimal&lt;br /&gt;
used blocksize is 128 bit (16 byte).&lt;br /&gt;
&lt;br /&gt;
Lets have a look at an example readout of the accelerometer data, divided into&lt;br /&gt;
the used sections.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
|----- time ------|  |type| |code|  |-value-|&lt;br /&gt;
8c66 4819 721c 0006   0002   0002   03a8 0000&lt;br /&gt;
8c66 4819 7222 0006   0000   0000   0000 0000&lt;br /&gt;
8c66 4819 99e6 0006   0002   0000   0048 0000&lt;br /&gt;
8c66 4819 9a36 0006   0002   0001   0024 0000&lt;br /&gt;
8c66 4819 9a50 0006   0002   0002   0396 0000&lt;br /&gt;
8c66 4819 9a57 0006   0000   0000   0000 0000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Using recent kernels (&amp;gt;=2.6.29), you might see this instead, because accelerometers are now reporting&lt;br /&gt;
absolute values instead of relative ones (more on that later) :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
|----- time ------|  |type| |code|  |-value-|&lt;br /&gt;
8163 49da 6d62 000d   0000   0000   0000 0000&lt;br /&gt;
8163 49da 91d8 000d   0003   0000   0048 0000&lt;br /&gt;
8163 49da 9231 000d   0003   0001   0012 0000&lt;br /&gt;
8163 49da 9251 000d   0003   0002   03ba 0000&lt;br /&gt;
8163 49da 9270 000d   0000   0000   0000 0000&lt;br /&gt;
8163 49da b6cf 000d   0003   0000   0036 0000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I think the time structure does not need further explanation. A lot more&lt;br /&gt;
interesting is the type, code and value part of every message. Lets take a&lt;br /&gt;
closer look at these parts.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Event types===&lt;br /&gt;
&lt;br /&gt;
The types categorize the incoming messages. All possible types can be found in&lt;br /&gt;
the kernel sources or include files in ''INCLUDEDIR/linux/input.h''&lt;br /&gt;
During the tests with the accelerometers I observed the fact that only two&lt;br /&gt;
different message types are used.&lt;br /&gt;
&lt;br /&gt;
;0x00:&lt;br /&gt;
:According to ''linux/input.h'' this event is called ''EV_SYN''. It signals the wish to ''syncronize''. Normally this event is used in combination with code 0x00 to mark the send data complete and therefore applyable.&lt;br /&gt;
&lt;br /&gt;
;0x02:&lt;br /&gt;
:This event is called ''EV_REL'' and signals ''relative movement''. It is used to transmit the acceleration the sensors encounter.&lt;br /&gt;
&lt;br /&gt;
The definition should not be taken too seriously in this context, because the&lt;br /&gt;
data values provided by the accelerometer always represent the absolute&lt;br /&gt;
acceleration measured at the given time. So, in newer kernels, the proper&lt;br /&gt;
''absolute movement'' notification is used instead :&lt;br /&gt;
&lt;br /&gt;
;0x03:&lt;br /&gt;
:This event is called ''EV_ABS'' and signals ''absolute movement''. It replaces the ''EV_REL'' notifications in newer kernels, but&lt;br /&gt;
the information (the event codes) is the same.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Event codes===&lt;br /&gt;
&lt;br /&gt;
Both types of event may supply different codes. These codes can be understood&lt;br /&gt;
as some kind of further specification about the specified data values&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Synchronization event codes====&lt;br /&gt;
&lt;br /&gt;
The synchronization event may use quite a lot of codes, as ''linux/input.h''&lt;br /&gt;
shows. However the only used one seems to be the 0x00 code.&lt;br /&gt;
&lt;br /&gt;
;0x00:&lt;br /&gt;
:This code is referred to as SYN_REPORT. It means that the last dataset was completely transmitted. Therefore the before transmitted set of data values can be considered complete. This means if this message is received you may process the given data further.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Relative movement event codes===&lt;br /&gt;
&lt;br /&gt;
The amount of possible codes for this event type is quite big. The only used&lt;br /&gt;
ones are the following ones.&lt;br /&gt;
&lt;br /&gt;
;0x00:&lt;br /&gt;
:REL_X - Acceleration in x direction&lt;br /&gt;
&lt;br /&gt;
;0x01:&lt;br /&gt;
:REL_Y - Acceleration in y direction&lt;br /&gt;
&lt;br /&gt;
;0x02:&lt;br /&gt;
:REL_Z - Acceleration in z direction&lt;br /&gt;
&lt;br /&gt;
The X, Y and Z axis are to be understand as defined in the chapter about [[#Axis_orientation|Axis orientation]].&lt;br /&gt;
&lt;br /&gt;
====A typical message block====&lt;br /&gt;
&lt;br /&gt;
A typical message block consists of 3 messages containing the acceleration&lt;br /&gt;
data for every of the three axis followed by a syncronization message to&lt;br /&gt;
signal the end of the block.&lt;br /&gt;
&lt;br /&gt;
The following example is such a message block with detailed explanation of its&lt;br /&gt;
different messages and data sections.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
8c66 4819 99e6 0006   0002   0000   0048 0000&lt;br /&gt;
|------Time-------|  EV_REL  REL_X  |-Value-|&lt;br /&gt;
(Measured acceleration in x axis direction of 72)&lt;br /&gt;
&lt;br /&gt;
8c66 4819 9a36 0006   0002   0001   0024 0000&lt;br /&gt;
|------Time-------|  EV_REL  REL_Y  |-Value-|&lt;br /&gt;
(Measured acceleration in y axis direction of 36)&lt;br /&gt;
&lt;br /&gt;
8c66 4819 9a50 0006   0002   0002   0396 0000&lt;br /&gt;
|------Time-------|  EV_REL  REL_Z  |-Value-|&lt;br /&gt;
(Measured acceleration in z axis direction of 918)&lt;br /&gt;
&lt;br /&gt;
8c66 4819 9a57 0006   0000   0000        0000 0000&lt;br /&gt;
|------Time-------|  EV_SYN  SYN_REPORT  |-Value-|&lt;br /&gt;
(The transmitted data block is complete you may process the given data)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Absolute movement event codes===&lt;br /&gt;
&lt;br /&gt;
More information about this change may be available here :&lt;br /&gt;
&lt;br /&gt;
http://git.openmoko.org/?p=kernel.git;a=commit;=b2ae84d8bd469fe81fa0a967fde9008416a78365&lt;br /&gt;
&lt;br /&gt;
Although the information is the same as before, the absolute interface differs from the relative one by the fact that&lt;br /&gt;
only changed values are reported. So if the phone was completely idle, experiencing exactly the same acceleration from&lt;br /&gt;
one sample to the next, you will read only synchronization events (this will not happen due to noise, though).&lt;br /&gt;
&lt;br /&gt;
So when you miss the value for an axis between two synchronization events, just assume the previous value still holds.&lt;br /&gt;
&lt;br /&gt;
==Test application==&lt;br /&gt;
&lt;br /&gt;
A simple test application written in ruby:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/usr/bin/env ruby&lt;br /&gt;
x = 0&lt;br /&gt;
y = 0&lt;br /&gt;
z = 0&lt;br /&gt;
File.open(&amp;quot;/dev/input/event3&amp;quot;) do |f|&lt;br /&gt;
  while true&lt;br /&gt;
    event = f.read(16).unpack(&amp;quot;llSSl&amp;quot;)&lt;br /&gt;
    time = event[0] + event[1] / 1000000.0&lt;br /&gt;
    type = event[2]&lt;br /&gt;
    code = event[3]&lt;br /&gt;
    value = event[4]&lt;br /&gt;
    if type == 2 || type == 3&lt;br /&gt;
      x = value if code == 0&lt;br /&gt;
      y = value if code == 1&lt;br /&gt;
      z = value if code == 2&lt;br /&gt;
    end&lt;br /&gt;
    if type == 0 &amp;amp;&amp;amp; code == 0&lt;br /&gt;
      sum = Math::sqrt(x*x + y*y + z*z).to_i&lt;br /&gt;
      printf(&amp;quot;%5d %5d %5d %5d\n&amp;quot;, x, y, z, sum)&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Equivalent version in python:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/usr/bin/python&lt;br /&gt;
import struct&lt;br /&gt;
from math import sqrt&lt;br /&gt;
&lt;br /&gt;
x = 0&lt;br /&gt;
y = 0&lt;br /&gt;
z = 0&lt;br /&gt;
secondsensorfile = &amp;quot;/dev/input/event3&amp;quot;&lt;br /&gt;
#int, int, short, short, int&lt;br /&gt;
fmt = 'iihhi'&lt;br /&gt;
#open file in binary mode&lt;br /&gt;
in_file = open(secondsensorfile,&amp;quot;rb&amp;quot;)&lt;br /&gt;
event = in_file.read(16)&lt;br /&gt;
while event:&lt;br /&gt;
	(time1,time2, type, code, value) = \&lt;br /&gt;
		struct.unpack(fmt,event)&lt;br /&gt;
	time = time2 / 1000.0&lt;br /&gt;
&lt;br /&gt;
	if type == 2 or type == 3:&lt;br /&gt;
		if code == 0:&lt;br /&gt;
			x = value&lt;br /&gt;
		if code == 1:&lt;br /&gt;
			y = value&lt;br /&gt;
		if code == 2:&lt;br /&gt;
			z = value&lt;br /&gt;
	if type == 0 and code == 0:&lt;br /&gt;
		sum = int(sqrt(x*x + y*y + z*z))&lt;br /&gt;
		print time, x, y, z, sum&lt;br /&gt;
	event = in_file.read(16)&lt;br /&gt;
in_file.close()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Equivalent in Perl&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/usr/bin/perl&lt;br /&gt;
&lt;br /&gt;
$x = 0;&lt;br /&gt;
$y = 0;&lt;br /&gt;
$z = 0;&lt;br /&gt;
&lt;br /&gt;
$secondsensorfile = &amp;quot;/dev/input/event3&amp;quot;;&lt;br /&gt;
#open file in binary mode&lt;br /&gt;
open FILE, $secondsensorfile;&lt;br /&gt;
binmode FILE;&lt;br /&gt;
&lt;br /&gt;
while (read FILE, $buf,16) {&lt;br /&gt;
    ($t1,$t2,$type,$code,$value)=unpack &amp;quot;iissi&amp;quot;,$buf;&lt;br /&gt;
    if ($type==2) {&lt;br /&gt;
	if ($code==0) {$x=$value};&lt;br /&gt;
	if ($code==1) {$y=$value};&lt;br /&gt;
	if ($code==2) {$z=$value};&lt;br /&gt;
    }&lt;br /&gt;
    if (($type==0) &amp;amp;&amp;amp; (code==0)) {&lt;br /&gt;
        printf &amp;quot;%f %05d %05d %05d\n&amp;quot;,$t1+$t2/1000000,$x,$y,$z;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also, for the new absolute interface (Perl) :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/usr/bin/perl&lt;br /&gt;
&lt;br /&gt;
$x = 0;&lt;br /&gt;
$y = 0;&lt;br /&gt;
$z = 0;&lt;br /&gt;
&lt;br /&gt;
$secondsensorfile = &amp;quot;/dev/input/event3&amp;quot;;&lt;br /&gt;
#open file in binary mode&lt;br /&gt;
open FILE, $secondsensorfile;&lt;br /&gt;
binmode FILE;&lt;br /&gt;
&lt;br /&gt;
while (read FILE, $buf,16) {&lt;br /&gt;
    ($t1,$t2,$type,$code,$value)=unpack &amp;quot;iissi&amp;quot;,$buf;&lt;br /&gt;
    if ($type==3) {&lt;br /&gt;
        if ($code==0) {$x=$value};&lt;br /&gt;
        if ($code==1) {$y=$value};&lt;br /&gt;
        if ($code==2) {$z=$value};&lt;br /&gt;
    }&lt;br /&gt;
    if (($type==0) &amp;amp;&amp;amp; ($code==0)) {&lt;br /&gt;
        printf &amp;quot;%f %05d %05d %05d\n&amp;quot;,$t1+$t2/1000000,$x,$y,$z;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Read the data in C (FIXME: We're not printing times here).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
#include &amp;lt;time.h&amp;gt;&lt;br /&gt;
#include &amp;lt;sys/times.h&amp;gt;&lt;br /&gt;
#include &amp;lt;sys/stat.h&amp;gt;&lt;br /&gt;
#include &amp;lt;fcntl.h&amp;gt;&lt;br /&gt;
#include &amp;lt;unistd.h&amp;gt;&lt;br /&gt;
#include &amp;lt;stdint.h&amp;gt;&lt;br /&gt;
#include &amp;lt;assert.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
struct input_event {&lt;br /&gt;
    struct timeval time;&lt;br /&gt;
    uint16_t type;&lt;br /&gt;
    uint16_t code;&lt;br /&gt;
    int32_t value;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
int read_all(int fd, char *buf, int count)&lt;br /&gt;
{&lt;br /&gt;
    int n_read = 0;&lt;br /&gt;
    while (n_read != count) {&lt;br /&gt;
        int result = read(fd, buf + n_read, count - n_read);&lt;br /&gt;
        if (result &amp;lt; 0)&lt;br /&gt;
            return result;&lt;br /&gt;
        else if (result == 0)&lt;br /&gt;
            return n_read;&lt;br /&gt;
        n_read += result;&lt;br /&gt;
    }&lt;br /&gt;
    return n_read;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
int main(int argc, char *argv[])&lt;br /&gt;
{&lt;br /&gt;
    int fd;&lt;br /&gt;
    struct input_event ev;&lt;br /&gt;
&lt;br /&gt;
    assert(16 == sizeof(struct input_event));&lt;br /&gt;
&lt;br /&gt;
    if (argc != 2) {&lt;br /&gt;
        fprintf(stderr, &amp;quot;missing /dev/input/XXX\n&amp;quot;);&lt;br /&gt;
        return 1;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    while (1) {&lt;br /&gt;
        if ((fd = open(argv[1], O_RDONLY)) == -1) {&lt;br /&gt;
            perror(&amp;quot;open&amp;quot;);&lt;br /&gt;
            return 1;&lt;br /&gt;
        }&lt;br /&gt;
        int ret = read_all(fd, (char *) &amp;amp;ev, sizeof(struct input_event));&lt;br /&gt;
        if (ret != sizeof(struct input_event)) {&lt;br /&gt;
            fprintf(stderr, &amp;quot;ret == %d\n&amp;quot;, ret);&lt;br /&gt;
            perror(&amp;quot;read&amp;quot;);&lt;br /&gt;
            return 1;&lt;br /&gt;
        }&lt;br /&gt;
        close(fd);&lt;br /&gt;
        printf(&amp;quot;type:%u code:%u value:%d\n&amp;quot;, ev.type, ev.code, ev.value);&lt;br /&gt;
        usleep(500000);  /* 2 reads per second, you might want to read more */&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And in Guile Scheme.  (This one is a complete autorotation program.)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
;; Open device file for the second accelerometer (whose axes are&lt;br /&gt;
;; aligned with the screen).  Must make Guile's internal buffer small&lt;br /&gt;
;; (16), otherwise it reads too far ahead and this program gets mostly&lt;br /&gt;
;; out of date data.&lt;br /&gt;
(define e (open-file &amp;quot;/dev/input/event3&amp;quot;&lt;br /&gt;
		     &amp;quot;r0&amp;quot;))&lt;br /&gt;
(setvbuf e _IOFBF 16)&lt;br /&gt;
&lt;br /&gt;
;; Uniform vector for reading data from device file.  Must match&lt;br /&gt;
;; sizeof(struct input_event), otherwise the read can get an 'invalid&lt;br /&gt;
;; argument' error.&lt;br /&gt;
(define v (make-u16vector 8))&lt;br /&gt;
&lt;br /&gt;
(define (current-acceleration)&lt;br /&gt;
  (let loop ((x #f) (y #f) (z #f))&lt;br /&gt;
    (uniform-vector-read! v e)&lt;br /&gt;
    (let ((code (u16vector-ref v 4))&lt;br /&gt;
	  (axis (u16vector-ref v 5))&lt;br /&gt;
	  (meas (+ (u16vector-ref v 6)&lt;br /&gt;
		   (* 65536 (u16vector-ref v 7)))))&lt;br /&gt;
      (if (&amp;gt;= meas (expt 2 31))&lt;br /&gt;
	  (set! meas (- meas (expt 2 32))))&lt;br /&gt;
      (case code&lt;br /&gt;
	((2 3)&lt;br /&gt;
	 (case axis&lt;br /&gt;
	   ((0) (loop meas y z))&lt;br /&gt;
	   ((1) (loop x meas z))&lt;br /&gt;
	   ((2) (loop x y meas))&lt;br /&gt;
	   (else (loop x y z))))&lt;br /&gt;
	(else&lt;br /&gt;
	 (if (and x y z)&lt;br /&gt;
	     (list x y z)&lt;br /&gt;
	     (loop x y z)))))))&lt;br /&gt;
&lt;br /&gt;
(define (orientation x y z)&lt;br /&gt;
  (cond ((and (&amp;lt; y -200)&lt;br /&gt;
	      (&amp;gt; (- y) x y))&lt;br /&gt;
	 0)&lt;br /&gt;
	((and (&amp;gt; x 200)&lt;br /&gt;
	      (&amp;lt; (- x) y x))&lt;br /&gt;
	 1)&lt;br /&gt;
	((and (&amp;gt; y 200)&lt;br /&gt;
	      (&amp;lt; (- y) x y))&lt;br /&gt;
	 2)&lt;br /&gt;
	((and (&amp;lt; x -200)&lt;br /&gt;
	      (&amp;gt; (- x) y x))&lt;br /&gt;
	 3)&lt;br /&gt;
	(else #f)))&lt;br /&gt;
&lt;br /&gt;
(define (main)&lt;br /&gt;
  (let loop ((ori #f))&lt;br /&gt;
    (let ((new-ori&lt;br /&gt;
	   (apply orientation&lt;br /&gt;
		  (current-acceleration))))&lt;br /&gt;
      (and ori&lt;br /&gt;
	   new-ori&lt;br /&gt;
	   (not (= ori new-ori))&lt;br /&gt;
	   (system* &amp;quot;xrandr&amp;quot;&lt;br /&gt;
		    &amp;quot;-o&amp;quot;&lt;br /&gt;
		    (number-&amp;gt;string new-ori)))&lt;br /&gt;
      (sleep 1)&lt;br /&gt;
      (loop (or new-ori ori)))))&lt;br /&gt;
&lt;br /&gt;
(main)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== The /sys interface ==&lt;br /&gt;
&lt;br /&gt;
To get the sampling rate of the first accelerometer ''lis302dl.1'' :&lt;br /&gt;
&lt;br /&gt;
# cat /sys/devices/platform/lis302dl.1/sample_rate&lt;br /&gt;
100&lt;br /&gt;
&lt;br /&gt;
To set the sampling rate :&lt;br /&gt;
&lt;br /&gt;
# echo 400 &amp;gt; /sys/devices/platform/lis302dl.1/sample_rate&lt;br /&gt;
# cat /sys/devices/platform/lis302dl.1/sample_rate&lt;br /&gt;
400&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
OM2008.12 has too big threshold for some games and applications (value=18).&lt;br /&gt;
You can use sysfs to change it. Use command like this one:&lt;br /&gt;
&lt;br /&gt;
# echo 10 &amp;gt; /sys/devices/platform/lis302dl.1/threshold&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The other one is ''lis302dl.2''. See [[GTA02 sysfs#Accelerometers]] for the other options.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
* [[Accelerometer_Fundamentals]]&lt;br /&gt;
* [[Gestures]], [http://code.google.com/p/accelges/source/browse/trunk/accelneo/src/accelneo.c code sample]&lt;br /&gt;
&lt;br /&gt;
==External Links==&lt;br /&gt;
* [http://projects.openmoko.org/projects/gestures/ Openmoko Motion Gestures]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Accelerometer Wikipedia - Accelerometer]&lt;br /&gt;
* [http://dev.borza.ro/demo/Motion-based%20Gesture%20Recognition%20with%20an%20Accelerometer/Paper.pdf Motion-based Gesture Recognition with an Accelerometer - Paper]&lt;br /&gt;
* [http://www.youtube.com/watch?v=s5QMW8k5nis YouTube video: Playing with Accelerometers]&lt;br /&gt;
* [http://westhoffswelt.de/blog/my_first_openmoko_application.html Magic Eightball Application using the Accelerometers]&lt;br /&gt;
&lt;br /&gt;
[[Category:Accelerometer]]&lt;/div&gt;</summary>
		<author><name>Neiljerram</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Community_Updates/2008-09-17</id>
		<title>Community Updates/2008-09-17</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Community_Updates/2008-09-17"/>
				<updated>2008-09-15T20:57:27Z</updated>
		
		<summary type="html">&lt;p&gt;Neiljerram: Mention Qtopia 4.3.3&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Everybody loves Community Updates, but that's a huge endeavour for one person to tackle. So let us try a little social experiment here: ''community written community update''. I posted an outlined list of bullet points, and left it to everybody else to elaborate along the following editorial guidelines:&lt;br /&gt;
* Include everything that was hot on a mailing lists at some point since launch.&lt;br /&gt;
* Limit each point to three sentences and one link.&lt;br /&gt;
[[User:MinhHaDuong|MinhHaDuong]] 14:20, 15 September 2008 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Software and distributions ==&lt;br /&gt;
* Dale's DFU script started&lt;br /&gt;
* FDOM started&lt;br /&gt;
* Gentoo started&lt;br /&gt;
* Several classic games ported: Duke Nukem 3D, Battle for Wesnoth, DOOM (Coming Soon)&lt;br /&gt;
* Debian fso-pkg team is getting full steam ahead&lt;br /&gt;
* Qtopia 4.3.2 and 4.3.3 (including echo fix) released&lt;br /&gt;
* Google SoC projects released: gestures (includes autorotates the screen !), ReMoKo&lt;br /&gt;
&lt;br /&gt;
== Cool mod ==&lt;br /&gt;
&lt;br /&gt;
* [[Openmokast]]&lt;br /&gt;
&lt;br /&gt;
== News from the  git ==&lt;br /&gt;
* The html access to downloads.openmoko.org that provided 2007.2 has been discontinued.&lt;br /&gt;
* 2008.8 + daily updates is getting better and better, working its way towards a bug fix release (milestone tagged 2008.9 in the trac)&lt;br /&gt;
* Om shuffling git branches around is about done, .asu.dev is dead wood now.&lt;br /&gt;
* New &amp;quot;head&amp;quot; development branch is only basesystem+installer (no phone stack preloaded, even less applications)&lt;br /&gt;
* FSO Milestone 3 released&lt;br /&gt;
* Planned architecture for next release is  Tichy + Paroli + framework .&lt;br /&gt;
&lt;br /&gt;
== Documentation team ==&lt;br /&gt;
* Redesigned wiki Main page in time for the Digg day&lt;br /&gt;
* Deleting lots of old/unused wiki pages&lt;br /&gt;
* Introduced wiki navigation boxes, working on categories&lt;br /&gt;
* Learning to use Widimedia. Postponed CSS revision, wondering how to deal with multilinguism better&lt;br /&gt;
* More blog added to the planet&lt;br /&gt;
&lt;br /&gt;
== Notable fixes ==&lt;br /&gt;
* GPS TTFF bug was fixed soon after launch (what happens to the first batch units then, is there a way / necessity to do the hardware fix ?)&lt;br /&gt;
* Keyboard choices in 2008.2 explained&lt;br /&gt;
* Workaround found for suspend corrupts SD card partition table (??? Slow the GLAmo clock ???)&lt;br /&gt;
* Echo cancelation turned on in TI chip (is that undocumented function in ?)&lt;br /&gt;
&lt;br /&gt;
== Hot bugs ==&lt;br /&gt;
* Touch Screen Coordinates not re-calculating correctly on screen Rotation (Every mode except randr -o 0) Patch is available, no package update.&lt;br /&gt;
* Using Bluetooth headset is still impossible/hard to do&lt;br /&gt;
* Sound is still awfully complicated (alsa.state remains black magic)&lt;br /&gt;
* Power management: progress but still far from goal of autonomy in days (full discharge vs. forced load issue, LEDs and buttons use model still in flux, charging while off, fine-grained subsystems sleep...)&lt;br /&gt;
* Repeated messages on the mailing lists&lt;br /&gt;
* The trac is getting crowded, bug reports numbers are exploding&lt;br /&gt;
&lt;br /&gt;
== Classifieds ==&lt;br /&gt;
* community-repository is slow to take off: orrery, diversity-wifi, mofi, moko-sudoku, comic-reader, only omview has been added in September.&lt;br /&gt;
* A classified section has been started to sell/buy on the wiki&lt;br /&gt;
* There was a job offer for an X dev&lt;br /&gt;
* The Paris meeting was a big success with ~80 attendees.&lt;br /&gt;
* FreeRunners still seem to sell like hotcakes, they are frequently out of stock.&lt;/div&gt;</summary>
		<author><name>Neiljerram</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Om_2008_keyboard</id>
		<title>Om 2008 keyboard</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Om_2008_keyboard"/>
				<updated>2008-09-15T20:48:14Z</updated>
		
		<summary type="html">&lt;p&gt;Neiljerram: Improve description of keyboard's basic operation&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Om 2008.8}}&lt;br /&gt;
== Keyboard guide ==&lt;br /&gt;
&lt;br /&gt;
[[Image:asu_keyboard_lower.png|250px|right|ASU Keyboard]]&lt;br /&gt;
[[Image:asu_keyboard_word.png|250px|right|ASU Keyboard with hello]]&lt;br /&gt;
[[Image:asu_keyboard_numeric.png|250px|right|ASU Keyboard with numeric keys]]&lt;br /&gt;
&lt;br /&gt;
* Fuzzy typing: you only have to touch near each letter that you want, not exactly on it.&lt;br /&gt;
* Sliding your finger left is backspace.&lt;br /&gt;
* Sliding your finger right is space.&lt;br /&gt;
* Sliding your finger up/down changes between lowercase/uppercase/numbers/special characters.&lt;br /&gt;
* Hovering over a letter for more than 2 seconds activates zoom mode, allowing you to type specific letters without prediction.&lt;br /&gt;
&lt;br /&gt;
=== Writing something ===&lt;br /&gt;
&lt;br /&gt;
If the keyboard pops up, just write someting. Each time you touch the screen, with your finger or with the stylus, the keyboard remembers all of the letters that are near where you touched. Then, after each touch, it matches all of the possible letter combinations against words in the dictionary, and shows the matching words above the keyboard, with the most common match in the middle. If you click on this word (or slide the finger over the keyboard to the right), it will be transfered to the cursor position in the input field that is currently selected. If you want one of the matches other than the most common one, use your finger (or stylus) to scroll the matches bar to the left or right, then click when the match that you want is in the middle.&lt;br /&gt;
&lt;br /&gt;
If there are no words in the dictionary that match the touches so far, the keyboard shows a word (regardless of whether it actually makes sense) that is just the sequence of letters closest to each touch. &lt;br /&gt;
&lt;br /&gt;
Note that although this keyboard is often referred to as &amp;quot;predictive&amp;quot;, it is not predictive in the sense of guessing further letters, to complete a word, beyond the ones that you have already typed.&lt;br /&gt;
&lt;br /&gt;
===Deleting text ===&lt;br /&gt;
To delete the word you have typed before you transferred it to the input box, you can erase it by simply sliding your finger left on the keyboard (this writes a backspace, see below)&lt;br /&gt;
&lt;br /&gt;
=== Changing keyboard layout ===&lt;br /&gt;
&lt;br /&gt;
The keyboard only displays a subset of the available keys at any one time.  To change the keyboard layout to access additional keys slide your finger up or down directly on the keyboard. You have to do this fast that the zoom will not be activated.&lt;br /&gt;
&lt;br /&gt;
The default layout when the keyboard is displayed is the lowercase alphabet but this may be overwritten by the application bringing up the keyboard. &lt;br /&gt;
&lt;br /&gt;
=== Where is the Backspase or Space character? ===&lt;br /&gt;
You can input a space or backspace by simply sliding with your finger left or right. Sliding left on the keyboard gives you an backspace, sliding right writes a space.&lt;br /&gt;
Note that to delete a character inside the input box, the word guessing box needs to be empty. If it is not empty, the backspace will first delete the box and you need to slide your finger left again. If something is inside the guessing box, a right-slide will transfer the typed stuff to the input box currently selected (this is the same as clicking onto the typed word).&lt;br /&gt;
&lt;br /&gt;
=== Keyboard Zoom ===&lt;br /&gt;
&lt;br /&gt;
[[Image:asu_keyboard_zoom.png|200px|center|ASU Keyboard with zoom]]&lt;br /&gt;
&lt;br /&gt;
If you hover your finger (or stylus) over a letter for more than 2 seconds a magnifiying glass, or zoom mode is displayed that allows you to see the letter you are selecting. This also overrides the prediction feature for this letter, so you can type specific letters with this method.&lt;br /&gt;
&lt;br /&gt;
= Customizations =&lt;br /&gt;
&lt;br /&gt;
As it behaves in the shipped 2008.8 state, this keyboard doesn't suit all users.&lt;br /&gt;
&lt;br /&gt;
== Debate ==&lt;br /&gt;
&lt;br /&gt;
Some people don't like this keyboard, because it lacks a full Qwerty keyboard. Another issue people have, is they can't switch the keyboard prediction off.&lt;br /&gt;
&lt;br /&gt;
For a description of alternative solutions and potential workarounds, see [[Keyboard Debate]].&lt;br /&gt;
&lt;br /&gt;
{{main|Keyboard_Debate}}&lt;br /&gt;
&lt;br /&gt;
Also, bellow are some (more ?) customizations/tweaks/hacks proposed by some users :&lt;br /&gt;
&lt;br /&gt;
== Reactivating The Keyboard Toggle ==&lt;br /&gt;
Most applications should bring up the keyboard automatically when keyboard input is required. However, one can have a small 'qwerty' button which can manually toggle the keyboard on and off.  See the [[Keyboard_Toggle|keyboard toggle tutorial]] for more information.&lt;br /&gt;
&lt;br /&gt;
== Using the Full Qwerty keyboard ==&lt;br /&gt;
&lt;br /&gt;
See [http://wiki.openmoko.org/wiki/Keyboard_Debate#How_to_install_the_illume_.28Raster.27s.29_keyboard_.3F here]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Om 2008.8]]&lt;br /&gt;
[[Category:Basic End User]]&lt;/div&gt;</summary>
		<author><name>Neiljerram</name></author>	</entry>

	</feed>