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

	<entry>
		<id>http://wiki.openmoko.org/wiki/User:Vanous/czech-shr-list</id>
		<title>User:Vanous/czech-shr-list</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/User:Vanous/czech-shr-list"/>
				<updated>2010-08-05T06:41:22Z</updated>
		
		<summary type="html">&lt;p&gt;MMlosh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Seznam důležitých vlastností pro SHR jako vzkaz od českých uživatelů shr vývojářům.&lt;br /&gt;
&lt;br /&gt;
(Nejprve asi provedeme seznam, pak priority, překlad, wiki, email do shr-devel. Součástí bude nutné zpacovat požadavky z http://lists.shr-project.org/pipermail/shr-devel/2010-July/002852.html a přidat jednotlivé návrhy do SHR Trac: http://shr-project.org/trac/report&lt;br /&gt;
&lt;br /&gt;
Nezapomeňte: http://blog.shr-project.org/assets_c/2009/01/iwantyouforshrdev-1.html&lt;br /&gt;
&lt;br /&gt;
SHR-s release, kde zakladni system hned po flashi bude plne fungovat::)&lt;br /&gt;
₊2 vydat stabilni funkcni verzi a ne stale neco menit&lt;br /&gt;
&lt;br /&gt;
 - search/filter contacts in contacts list, add contact&lt;br /&gt;
 - sms receipt&lt;br /&gt;
 - quick caller list&lt;br /&gt;
 - incoming call screen - send SMS to the caller, preferably already with SMS from template&lt;br /&gt;
 - wifi + wpa2 + run a script after connecting (for example for starting VPN) + working GPRS connection sharing&lt;br /&gt;
 &amp;gt; Ability to connect to APs with hidden SSIDs&lt;br /&gt;
 - historie volani - pyphonelog vcetne pridavani kontaktu, rewrite to Vala and use EFL toolkit&lt;br /&gt;
 - intone - bude bez problemu prehravat muziku i kdyz byl preruset telefonovanim, funguje i po probuzeni&lt;br /&gt;
 - fix uSD card issues on 2.6.32&lt;br /&gt;
 - lock screen before Illume with PIN dialog and Launcher loads&lt;br /&gt;
 - GUI package manager - show only end-user applications and hide low level programs and libs, show descriptions, screenshots, perhaps user comments and reviews from opkg.org like website&lt;br /&gt;
 - opkg.org - make it better, more on http://lists.shr-project.org/pipermail/shr-devel/2010-June/002744.html&lt;br /&gt;
 - integrate AGPS online to FSO - u-blox Assist Now service http://wiki.openmoko.org/wiki/GTA02_GPS#u-blox_Assist_Now_account_application online and offline implementation&lt;br /&gt;
 - improve Ventura web browsing experience, for inspiration try Android web browser&lt;br /&gt;
 - run applications as non-root user, add user accounts support, screen lock with password, guest account without access to personal data&lt;br /&gt;
 - demonstration mode with fake contacts, SMSs, call logs, notes and files, perhaps GSM emulation http://git.freesmartphone.org/?p=phonesim.git;a=summary&lt;br /&gt;
- main python packages in default image (gtk,netclient,misc,json,etc.)&lt;br /&gt;
- file manager&lt;br /&gt;
- a simple way to add desktop icon (for example to run  some script)&lt;br /&gt;
- an eays way of asking the community and submitting bugs&lt;br /&gt;
- engance the power button trigered menu&lt;br /&gt;
 &amp;gt; add a subenu for connecting to WIFI APs&lt;br /&gt;
 &amp;gt; aktivation/deactivation + state (fix/nofix) of the GPS (on/of is already shown on the idle screen)&lt;br /&gt;
  &amp;gt; (switchable) lighter version like in Illume1 - just a few EFL buttons that are created&amp;amp;rendered in miliseconds, current heavy one takes sometimes 10s+ to show up!&lt;br /&gt;
  &amp;gt; Powerbutton menu should not crash  (does when fsogsmd crashes/locks up)&lt;br /&gt;
  - show space available on device&lt;br /&gt;
 &amp;gt; close the menu by pressing the power button again&lt;br /&gt;
- a task switcher icon&lt;br /&gt;
 &amp;gt; fix issues with fullscreen apps&lt;br /&gt;
- fix &amp;quot;no sim&amp;quot; reporting.. one message for one un-suspend is way too much&lt;br /&gt;
- keyboard improvements&lt;br /&gt;
 &amp;gt; international keyboard&lt;br /&gt;
 &amp;gt; fullscreen keyboard, text goes to a single row in the upper part of the screen, rest of the screen are keys  + landscape ?&lt;br /&gt;
 &amp;gt; transparent keyboard ? # What about Literki?&lt;br /&gt;
- &amp;quot;synchronization light&amp;quot;&lt;br /&gt;
 &amp;gt; synchronize a folder on Neo and PC using rsync&lt;br /&gt;
 &amp;gt; simple GUI for PC + packages for the gui&lt;br /&gt;
- USB mass storage  (you mean gui for switching kernel modules or what?, there is g_mass_storage)&lt;br /&gt;
&lt;br /&gt;
- IPv6 support enhancements&lt;br /&gt;
 &amp;gt; in udhcpc (just don't flush all addresses including IPv6 addresses - especially link-local one!)&lt;br /&gt;
- A2DP support would be nice&lt;br /&gt;
- menu management - ability to organize icons and apps&lt;br /&gt;
&lt;br /&gt;
Jas obrazovky dostupny z Quick-Settings&lt;br /&gt;
Zajistit restart X-Serveru po jeho padu&lt;/div&gt;</summary>
		<author><name>MMlosh</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/User:Vanous/czech-shr-list</id>
		<title>User:Vanous/czech-shr-list</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/User:Vanous/czech-shr-list"/>
				<updated>2010-08-05T06:38:17Z</updated>
		
		<summary type="html">&lt;p&gt;MMlosh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Seznam důležitých vlastností pro SHR jako vzkaz od českých uživatelů shr vývojářům.&lt;br /&gt;
&lt;br /&gt;
(Nejprve asi provedeme seznam, pak priority, překlad, wiki, email do shr-devel. Součástí bude nutné zpacovat požadavky z http://lists.shr-project.org/pipermail/shr-devel/2010-July/002852.html a přidat jednotlivé návrhy do SHR Trac: http://shr-project.org/trac/report&lt;br /&gt;
&lt;br /&gt;
Nezapomeňte: http://blog.shr-project.org/assets_c/2009/01/iwantyouforshrdev-1.html&lt;br /&gt;
&lt;br /&gt;
SHR-s release, kde zakladni system hned po flashi bude plne fungovat::)&lt;br /&gt;
₊2 vydat stabilni funkcni verzi a ne stale neco menit&lt;br /&gt;
&lt;br /&gt;
 - search/filter contacts in contacts list, add contact&lt;br /&gt;
 - sms receipt&lt;br /&gt;
 - quick caller list&lt;br /&gt;
 - incoming call screen - send SMS to the caller, preferably already with SMS from template&lt;br /&gt;
 - wifi + wpa2 + run a script after connecting (for example for starting VPN) + working GPRS connection sharing&lt;br /&gt;
 &amp;gt; Ability to connect to APs with hidden SSIDs&lt;br /&gt;
 - historie volani - pyphonelog vcetne pridavani kontaktu, rewrite to Vala and use EFL toolkit&lt;br /&gt;
 - intone - bude bez problemu prehravat muziku i kdyz byl preruset telefonovanim, funguje i po probuzeni&lt;br /&gt;
 - fix uSD card issues on 2.6.32&lt;br /&gt;
 - lock screen before Illume with PIN dialog and Launcher loads&lt;br /&gt;
 - GUI package manager - show only end-user applications and hide low level programs and libs, show descriptions, screenshots, perhaps user comments and reviews from opkg.org like website&lt;br /&gt;
 - opkg.org - make it better, more on http://lists.shr-project.org/pipermail/shr-devel/2010-June/002744.html&lt;br /&gt;
 - integrate AGPS online to FSO - u-blox Assist Now service http://wiki.openmoko.org/wiki/GTA02_GPS#u-blox_Assist_Now_account_application online and offline implementation&lt;br /&gt;
 - improve Ventura web browsing experience, for inspiration try Android web browser&lt;br /&gt;
 - run applications as non-root user, add user accounts support, screen lock with password, guest account without access to personal data&lt;br /&gt;
 - demonstration mode with fake contacts, SMSs, call logs, notes and files, perhaps GSM emulation http://git.freesmartphone.org/?p=phonesim.git;a=summary&lt;br /&gt;
- main python packages in default image (gtk,netclient,misc,json,etc.)&lt;br /&gt;
- file manager&lt;br /&gt;
- a simple way to add desktop icon (for example to run  some script)&lt;br /&gt;
- an eays way of asking the community and submitting bugs&lt;br /&gt;
- engance the power button trigered menu&lt;br /&gt;
 &amp;gt; add a subenu for connecting to WIFI APs&lt;br /&gt;
 &amp;gt; aktivation/deactivation + state (fix/nofix) of the GPS (on/of is already shown on the idle screen)&lt;br /&gt;
  &amp;gt; (switchable) lighter version like in Illume1 - just a few EFL buttons that are created&amp;amp;rendered in miliseconds, current heavy one takes sometimes 10s+ to show up!&lt;br /&gt;
  &amp;gt; Powerbutton menu should not crash  (does when fsogsmd crashes/locks up)&lt;br /&gt;
  - show space available on device&lt;br /&gt;
 &amp;gt; close the menu by pressing the power button again&lt;br /&gt;
- a task switcher icon&lt;br /&gt;
 &amp;gt; fix issues with fullscreen apps&lt;br /&gt;
- fix &amp;quot;no sim&amp;quot; reporting.. one message for one un-suspend is way too much&lt;br /&gt;
- keyboard improvements&lt;br /&gt;
 &amp;gt; international keyboard&lt;br /&gt;
 &amp;gt; fullscreen keyboard, text goes to a single row in the upper part of the screen, rest of the screen are keys  + landscape ?&lt;br /&gt;
 &amp;gt; transparent keyboard ? # What about Literki?&lt;br /&gt;
- &amp;quot;synchronization light&amp;quot;&lt;br /&gt;
 &amp;gt; synchronize a folder on Neo and PC using rsync&lt;br /&gt;
 &amp;gt; simple GUI for PC + packages for the gui&lt;br /&gt;
- USB mass storage  (you mean gui for switching kernel modules or what?, there is g_mass_storage)&lt;br /&gt;
- IPv6 support enhancements&lt;br /&gt;
 &amp;gt; in udhcpc (just don't flush all addresses including IPv6 addresses - especially link-local one!)&lt;br /&gt;
- A2DP support would be nice&lt;br /&gt;
- menu management - ability to organize icons and apps&lt;br /&gt;
&lt;br /&gt;
Jas obrazovky dostupny z Quick-Settings&lt;br /&gt;
Zajistit restart X-Serveru po jeho padu&lt;/div&gt;</summary>
		<author><name>MMlosh</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Supported_microSD_cards</id>
		<title>Supported microSD cards</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Supported_microSD_cards"/>
				<updated>2009-11-20T18:00:42Z</updated>
		
		<summary type="html">&lt;p&gt;MMlosh: added Pretec PCMC2GB&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{todo|Maybe reformat table, see discussion page}}&lt;br /&gt;
&lt;br /&gt;
There are a plethora of Transflash / [[microSD]] / microSDHC (Secure Digital High Capacity) cards out there.&lt;br /&gt;
&lt;br /&gt;
The Neo FreeRunner supports up to 16GB microSDHC cards.&lt;br /&gt;
&lt;br /&gt;
Some microSD cards appear to be too slow to work with the current default settings of the glamo driver, so some specific parameters must be set in uboot to use them (see https://docs.openmoko.org/trac/ticket/1743, and corresponding notes in the tables bellow).&lt;br /&gt;
&lt;br /&gt;
There had been a [http://bugzilla.openmoko.org/cgi-bin/bugzilla/show_bug.cgi?id=677 bug] in the SD device driver (s3cmci) which caused some trouble. Please make sure you use a post-september 4th kernel which applies our kernel patchset rev2832 or higher.&lt;br /&gt;
&lt;br /&gt;
Booting from microSDHC requires a u-boot from 2008-07-23 or later. '''But pay attention''' : there are problems with microSDHC cards at suspend time. More details from [[Booting from SD#Booting_from_SDHC_.2F_suspend_problems|Booting from SD]]&lt;br /&gt;
&lt;br /&gt;
Note that most vendors are using an irritating way of labeling the capacity of their cards (They are using the factor 1000 instead of 1024 for KB and MB). Therefore the real capacity of these cards will be about 5% less than the vendor's specification. For example, cards labelled ''6 GB'' will only have 5.7 GB of storage capacity.&lt;br /&gt;
&lt;br /&gt;
If you want to exchange your SD card more often: [http://people.openmoko.org/joerg/sdcard-handle/ Jörg] has a nice sticky tape trick to do this with no hassle.&lt;br /&gt;
&lt;br /&gt;
If you use a card not listed here, please add to this table.&lt;br /&gt;
&lt;br /&gt;
== SD card issue ==&lt;br /&gt;
&lt;br /&gt;
A small amount of users may see the following error when trying to use the SD card via the bootloader:&lt;br /&gt;
&lt;br /&gt;
 Error after cmd: 0xfffffffc No MMC card found&lt;br /&gt;
&lt;br /&gt;
(You can provoke this by logging into the bootloader via USB serial connection and running the 'mmcinit' command.)&lt;br /&gt;
&lt;br /&gt;
It is possible that the connector contacts do not reach the card properly. In my case I was able to bend the contacts a little bit more upwards (using the tip of a nail file) and then the card worked without problems.&lt;br /&gt;
&lt;br /&gt;
== Cards by Vendor ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=1&lt;br /&gt;
|-&lt;br /&gt;
! Vendor !! Model !! Capacity !! Speed !! [[MicroSD#Importent_features|Supp.&amp;lt;br&amp;gt;Wear-&amp;lt;br&amp;gt;level.]] !! [[MicroSD#Importent_features|Supp.&amp;lt;br&amp;gt;ECC]] !! [[u-boot]] 1.1.6 !! linux 2.6.17.14-fic5 !! [[u-boot]] 1.2.0-moko8 svn1915 !! [[u-boot]] 1.3.2-moko12 !! linux 2.6.24+git75969 (2008.8 kernel as of Sept. 4, 2008) !! OM2008.9's kernel !! Status&lt;br /&gt;
|-&lt;br /&gt;
| A-Data || microSDHC-8GB || 8GB (SDHC) || class 4 || ? || ? || {{no}} || {{yes}} || {{no}} || 1.3.1 did not || {{yes}} || ||&lt;br /&gt;
|-&lt;br /&gt;
| A-Data || microSDHC-8GB || 8GB (SDHC) || class 6 || ? || ? || {{no}} || {{no}} || {{no}} || 1.3.1 did not || {{no}} || ||&lt;br /&gt;
|-&lt;br /&gt;
| Apacer || microSDHC-4GB || 4GB (SDHC) || class 6? || {{yes}}[http://emea.apacer.com/en/products/microSDHC_class_6_Card_features.htm] || {{yes}}[http://emea.apacer.com/en/products/microSDHC_class_6_Card_features.htm] || || {{no}} || || || {{no}} || {{no}} || I/O errors&lt;br /&gt;
|-&lt;br /&gt;
| Corsair || CMFSDMICRO-512 || 512MB ||  || ? || ?|| {{no}} || {{yes}} || || || || ||&lt;br /&gt;
|-&lt;br /&gt;
| Dane-Elec || DA-SDMC-2048-R || 2GB || ?  || ? || ?|| ? || ? || ? || ? || {{yes}} || ||&lt;br /&gt;
|-&lt;br /&gt;
| extreMemory || AE56-1280R || 128MB ||  || ? || ?|| {{no}} || {{yes}} || {{yes}} || || || ||&lt;br /&gt;
|-&lt;br /&gt;
| extreMemory || H256MS05 || 256MB || 60x  || ? || ?|| {{no}} || {{yes}} || {{yes}} || || || ||&lt;br /&gt;
|-&lt;br /&gt;
| hama || 55371 || 256MB ||  || ? || ?|| {{no}} || {{yes}} || {{yes}} || || || ||&lt;br /&gt;
|-&lt;br /&gt;
| Intuix || IXMSDM128B60X || 128MB || 60x  || ? || ?|| {{no}} || {{yes}} || {{yes}} || || || ||&lt;br /&gt;
|-&lt;br /&gt;
| Kingston || SD-C512 || 512MB || ?  || ? || ?|| {{no}} || {{yes}} || || || || ||&lt;br /&gt;
|-&lt;br /&gt;
| Kingston || SD-C01G || 1GB || ?  || ? || ?|| {{yes}} || ? || || || || ||&lt;br /&gt;
|-&lt;br /&gt;
| Kingston || [[Supported_microSD_cards/SD-C02G|SD-C02G]] || 2GB || ?  || ? || ?|| ? || {{yes}}  || || {{yes}} || {{no}} || {{no}} (see [[Supported_microSD_cards/SD-C02G|SD-C02G]] ) ||&lt;br /&gt;
|-&lt;br /&gt;
| Kingston || SDC4 (N0043-012.A00LF) || 4GB || ?  || ? || ?|| ? || FSO MS2 / Linux 2.6.24: I/O Errors while formatting [http://wiki.openmoko.org/wiki/Special:Emailuser/varacanero Contact me here] || || || || {{no}} || &lt;br /&gt;
|-&lt;br /&gt;
| Kingston || SDC4/8GB || 8GB SDHC || Class 4  || ? || ?|| {{yes}} || || || || {{yes}} || {{yes}} ||&lt;br /&gt;
|-&lt;br /&gt;
| Kingston || SDC16GB || 16GB SDHC || Class 2  || ? || ?||  || || || ||  || {{yes}} ||&lt;br /&gt;
|-&lt;br /&gt;
| Memory Master ||   || 4Gb ||   || ? || ?||  ||  ||  ||  ||  || {{no}} IO errors prevent Debian installation. Looks like [http://docs.openmoko.org/trac/ticket/2025 #2025] to me || IO errors&lt;br /&gt;
|-&lt;br /&gt;
| Patriot ||  PSF128MCSD-RC || 128MB || ?  || ? || ?|| {{no}} || ? || || || || ||&lt;br /&gt;
|-&lt;br /&gt;
| Patriot ||  PSF8GMCSDHC4 || 8GB (SDHC)|| Class 4  || ? || ?|| ? || ? || ? || {{yes}} || {{yes}} || {{yes}} ||&lt;br /&gt;
|-&lt;br /&gt;
| PNY || P-MICROSD512-BX || 512MB ||  || ? || ?|| {{yes}} || {{yes}} || {{yes}} || || || ||&lt;br /&gt;
|-&lt;br /&gt;
| PNY || P-MICROSD2GB-BX (card marked with MM8GR02GUACY) || 2GB || slow ?  || ? || ?|| ? || ? (Some work needed to get it running, see [https://docs.openmoko.org/trac/ticket/1743 #1743] but apparently not enough) || ? || || || ||&lt;br /&gt;
|-&lt;br /&gt;
| Pretec || || 128MB || ?  || ? || ? || ? || {{yes}} || || || || ||&lt;br /&gt;
|-&lt;br /&gt;
| Pretec || PCMC2GB || 2GB || ?  || ? || ? || ? || ? || ? || ? || {{yes}} || {{yes}} ||&lt;br /&gt;
|-&lt;br /&gt;
| SanDisk || SDSDQ-128 || 128MB ||  || ? || ?|| {{yes}} || {{yes}} || {{yes}} || || || ||&lt;br /&gt;
|-&lt;br /&gt;
| SanDisk || unknown || 256MB ||  || ? || ?|| {{yes}} || {{yes}} || {{yes}} || || || ||&lt;br /&gt;
|-&lt;br /&gt;
| SanDisk || unknown || 512MB ||  || ? || ?|| {{yes}} || {{yes}} || || || || ||&lt;br /&gt;
|-&lt;br /&gt;
| SanDisk || SDSDQ-1024-E10M || 1GB ||  || ? || ?|| {{yes}} || {{yes}} || {{yes}} || || || ||&lt;br /&gt;
|-&lt;br /&gt;
| SanDisk || SDSDQU-2048-E10M || 2GB ||  || ? || ?|| {{yes}} || {{yes}} || {{yes}} || || || ||&lt;br /&gt;
|-&lt;br /&gt;
| SanDisk || SDSDQ-002G-E11M || 2GB ||  || ? || ?||  ||  || || ||  || ||  I'll soon give it a try. --[[User:Sol|Sol]] 20:33, 31 March 2009 (UTC) &lt;br /&gt;
|-&lt;br /&gt;
| SanDisk || SDSDQ-2048-E11MK || 2GB ||  || ? || ?|| ||  || || detects size incorrectly with U-Boot 1.3.2-moko12 (Aug 26 2008 - 08:24:58) : see http://docs.openmoko.org/trac/ticket/1815#comment:6 || || ||&lt;br /&gt;
|-&lt;br /&gt;
| SanDisk || SDSDQ-4096-E11M || 4GB (SDHC) ||  || ? || ?|| ? || {{yes}} || ? || {{yes}} || {{yes}} || || There is no way to boot this uSD via QI&lt;br /&gt;
|-&lt;br /&gt;
| SanDisk || SDSDQ-6144-E11M || 6GB (SDHC) ||  || ? || ?|| ? || {{yes}} || {{no}} || || || ||&lt;br /&gt;
|-&lt;br /&gt;
| SanDisk || SDSDQ-8192-E11M || 8GB (SDHC) || 4  || ? || ?|| ? || {{yes}} || ? || boot needs &amp;quot;sleep 1&amp;quot; between mmcinit and ext2load || || ||&lt;br /&gt;
|-&lt;br /&gt;
| SanDisk || [http://www.sandisk.com/Products/Item(2630)-SDSDQY-8192-A11M-SanDisk_Mobile_Ultra_microSDHC_8GBCard.aspx SDSDQY-8192-E11M/A11M] || 8GB (SDHC) || 6 || ?|| ? || {{yes}} || ? || || || ||&lt;br /&gt;
|-&lt;br /&gt;
| SanDisk || SDSDQR-8192-E12M || 8GB (SDHC) || 4  || ? || ?|| ? || {{yes}} || ? || || || ||&lt;br /&gt;
|-&lt;br /&gt;
| SanDisk || SDSDQR-8192-???? || 8GB (SDHC) || 6  || ? || ?|| ? || {{yes}} || {{yes}} || || || ||&lt;br /&gt;
|-&lt;br /&gt;
| SanDisk || SDSDQ-008G-E11M || 8GB (SDHC) || 2  || ? || ?|| || || || {{yes}} || {{yes}} || ||&lt;br /&gt;
|-&lt;br /&gt;
| SanDisk || SDSDQ-008G-E11M || 8GB (SDHC) || 4  || ? || ?|| ? || {{yes}} ||  || || || ||&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| SanDisk || SDSDQ7-8192-E11M || 8GB (SDHC) || 4  || ? || ?|| ? || ? || ? || {{yes}} || {{yes}} || ? ||&lt;br /&gt;
|-&lt;br /&gt;
| SanDisk || [http://uk.sandisk.com/Products/ProductInfo.aspx?ID=2702 SDSDQ-016G-E11M] || 16GB (SDHC) || Class 2 || ? || ? || untested || untested || untested || {{yes}}, [[SanDisk/SDSDQ-016G-E11M|see details]] || {{yes}} kernel 2.6.24mw, [[SanDisk/SDSDQ-016G-E11M|see details]] || untested, but should work.|| [[SanDisk/SDSDQ-016G-E11M|WiP]]&lt;br /&gt;
|-&lt;br /&gt;
| Silicon Power || SP004GBSTH006V10 || 4GB (SDHC) || 4  || ? || ?|| ? || ? || ? || {{yes}} || {{yes}} || {{yes}} ||&lt;br /&gt;
|-&lt;br /&gt;
| Silicon Power || SP004GBSTH006V30 || 4GB (SDHC) || 6  || ? || ?|| ? || ? || ? || {{yes}} || {{yes}} || ? ||&lt;br /&gt;
|-&lt;br /&gt;
| Toshiba || SD-512R2W || 512MB ||  || ? || ?|| {{no}} || {{yes}} || || || || ||&lt;br /&gt;
|-&lt;br /&gt;
| Toshiba || ? || 8GB || 4  || ? || ?|| {{yes}} || {{yes}} || ?|| ?|| should work||{{yes}} || &lt;br /&gt;
|-&lt;br /&gt;
| Transcend || MM4GR512UACY || 512MB (SDC) || || || || || || || || linux om-gta2 2.6.29-rc3 || ||&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| Transcend || TS128MUSD || 128MB ||  || ? || ?|| {{no}} || {{yes}} || || || || ||&lt;br /&gt;
|-&lt;br /&gt;
| Transcend || TS256MUSD80 || 256MB || 80x  || ? || ?|| {{no}} || {{yes}} || {{yes}} || || || ||&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.transcendusa.com/ Transcend] || [http://www.transcendusa.com/Support/DLCenter/Datasheet/TSxxUSD.pdf TS512MUSD] '''(shipped with FreeRunner)''' || 512MB ||  || ? || ?|| {{no}} || {{yes}} || {{yes}} || {{yes}} || {{yes}} || {{yes}} ||&lt;br /&gt;
|-&lt;br /&gt;
| Transcend || MM4GRO1GUACY || 1GB ||  || ? || ?|| ? || {{yes}} || ? || || || ||&lt;br /&gt;
|-&lt;br /&gt;
| Transcend || TS1GUSDC || 1GB (SDC) ||  || ? || ?|| ? || I/O errors while trying to install Om2008.8 rootfs.tar.gz, looks like [https://docs.openmoko.org/trac/ticket/1743 #1743] || ? || ? || ? || ||&lt;br /&gt;
|-&lt;br /&gt;
| Transcend || TS4GUSDHC6 (card marked with MM8GR04GUACY) || 4GB (SDHC) || Class 6  || ? || ? || ? || {{yes}} (Some work needed to get it running, see [https://docs.openmoko.org/trac/ticket/1743 #1743]) || ? || || || {{no}}, see [http://docs.openmoko.org/trac/ticket/2025 bug #2025] ||&lt;br /&gt;
|-&lt;br /&gt;
| Transcend || TS8GUSDHC4 || 8GB (SDHC) || Class 4  || ? || ? || ? || ? || ? || {{yes}} || linux 2.6.24+git37+d744c88c14 (2007.2 kernel as of Aug 28, 2008) || ||&lt;br /&gt;
|-&lt;br /&gt;
| Transcend || TS8GUSDHC6 || 8GB (SDHC) || Class 6  || ? || ? || ? || ? || ? || {{yes}} || linux 2.6.24+git37+d744c88c14 (2007.2 kernel as of Aug 28, 2008) || ||&lt;br /&gt;
|-&lt;br /&gt;
| Transcend || TS8GUSDHC4 || 8GB (SDHC) || Class 4 || ? || ? || ? || ? || ? || {{yes}} || {{yes}} since kernel of 30-Sep-2008 || ||&lt;br /&gt;
|-&lt;br /&gt;
| Transcend || TS16GUSDHC6 || 16GB (SDHC) || Class 6 || ? || {{yes}}[http://www.transcendusa.com/Products/ModDetail.asp?ModNo=195&amp;amp;SpNo=1&amp;amp;LangNo=0] || ? || ? || ? || {{yes}} || linux 2.6.28+29 (OM2009,SHR-U) || ||&lt;br /&gt;
|-&lt;br /&gt;
| Verbatim || 47225 || 1GB ||  || ? || ? || {{no}} || {{yes}} || {{yes}} || || || ||&lt;br /&gt;
|-&lt;br /&gt;
| Verbatim || 47206 || 4GB  (SDHC) || Class 6  || ? || ? || || {{yes}} (surely) || {{yes}} (surely) || {{yes}} || {{yes}} || {{yes}} (surely) ||&lt;br /&gt;
|-&lt;br /&gt;
| vox-fon || 1 GB || 1GB ||  || ? || ?|| {{no}} || {{yes}} || || || || ||&lt;br /&gt;
|-&lt;br /&gt;
| (Intenso) || ? || 4GB (SDHC) ||  || ? || ?|| {{no}} || {{yes}} (Some work needed to get it running, see [https://docs.openmoko.org/trac/ticket/1743 #1743]) || ? || {{yes}} || {{yes}} (Some work needed to get it running, see [https://docs.openmoko.org/trac/ticket/1743 #1743]) || ||&lt;br /&gt;
|-&lt;br /&gt;
! Vendor !! Model !! Capacity !! Speed !! [[MicroSD#Importent_features|Supp.&amp;lt;br&amp;gt;Wear-&amp;lt;br&amp;gt;level.]] !! [[MicroSD#Importent_features|Supp.&amp;lt;br&amp;gt;ECC]] !! [[u-boot]] 1.1.6 !! linux 2.6.17.14-fic5 !! [[u-boot]] 1.2.0-moko8 svn1915 !! [[u-boot]] 1.3.2-moko12 !! linux 2.6.24+git75969 (2008.8 kernel as of Sept. 4, 2008) !! OM2008.9's kernel !!&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note that cards with a &amp;quot;'''no'''&amp;quot; may still work at times, but that we just have found their behaviour too erratic to consider acceptable.&lt;br /&gt;
(Also note that this is a bug in our version of u-boot. The cards are probably fine.)&lt;br /&gt;
&lt;br /&gt;
[[Category:MicroSD]]&lt;/div&gt;</summary>
		<author><name>MMlosh</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Openmoko_Local_Groups:_Czech/LinuxAlt_2009</id>
		<title>Openmoko Local Groups: Czech/LinuxAlt 2009</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Openmoko_Local_Groups:_Czech/LinuxAlt_2009"/>
				<updated>2009-11-05T17:22:52Z</updated>
		
		<summary type="html">&lt;p&gt;MMlosh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Někteří z členů naší Openmoko komunity se hodlájí zůčastnit letošního LinuxAltu konaného 7. a 8. 11. na FIT VUT v Brně. Na něm proběhne i přednáška o Openmoko viz [http://www.linuxalt.cz/program program]. Na Jabber konferenci padl návrh na uspořádání menšího setkání v průběhu přestávky na oběd (cca 1,5h) v hospodě nebo pizzerce (podobně jako loni). Chceme zarezervovat stůl a ideálně objednat oběd na 12:00, abysme nemuseli zbytečně čekat a nezmeškali následující odpolední přednášky. Sraz proběhne na LinuxAltu po skončení dopoledních přednášek a to 8.11. v 11.30, poté se půjde to vybrané restaurace. Pokud bude zájem, můžeme udělat setkání v oba dva dny.&lt;br /&gt;
&lt;br /&gt;
[http://forum.openmoko.cz/viewtopic.php?f=19&amp;amp;t=120&amp;amp;p=641 diskuze].&lt;br /&gt;
&lt;br /&gt;
Rezervuju místa na neděli 8.11. ve 12.00 (pokud bude zájem tak i na sobotu) a půjdeme do [http://www.h3restaurant.cz H3]. Otázkou je co chcete k obědu? Připište se na '''závazný''' seznam:&lt;br /&gt;
{|border=1&lt;br /&gt;
!Jméno/Nick&lt;br /&gt;
!Den na kdy rezervovat stůl?&lt;br /&gt;
!Co k jídlu?&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Martix|Martix]]&lt;br /&gt;
|sobota, neděle&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[User:MMlosh|MMlosh]]&lt;br /&gt;
|sobota, neděle&lt;br /&gt;
|Hermelín v bramboráku + hranolky ; česnečka&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Fox|Fox]]&lt;br /&gt;
|Sobota, neděle&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[User:xkucf03|xkucf03]]&lt;br /&gt;
|sobota, neděle&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Rezza|Rezza]]&lt;br /&gt;
|sobota, neděle&lt;br /&gt;
|uzeny syr v bramboraku&lt;br /&gt;
|-&lt;br /&gt;
|[[User:iVir|iVir]]&lt;br /&gt;
|sobota, neděle&lt;br /&gt;
|Kuřecí steak + vařené brambory + lib. vhodná omáčka &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:Community/cs]]&lt;br /&gt;
[[Category:Openmoko Local Groups]]&lt;/div&gt;</summary>
		<author><name>MMlosh</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Openmoko_Local_Groups:_Czech/LinuxAlt_2009</id>
		<title>Openmoko Local Groups: Czech/LinuxAlt 2009</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Openmoko_Local_Groups:_Czech/LinuxAlt_2009"/>
				<updated>2009-11-02T19:41:27Z</updated>
		
		<summary type="html">&lt;p&gt;MMlosh: mmlosh =&amp;gt; sobota i neděle&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Někteří z členů naší Openmoko komunity se hodlájí zůčastnit letošního LinuxAltu konaného 7. a 8. 11. na FIT VUT v Brně. Na něm proběhne i přednáška o Openmoko viz [http://www.linuxalt.cz/program program]. Na Jabber konferenci padl návrh na uspořádání menšího setkání v průběhu přestávky na oběd (cca 1,5h) v hospodě nebo pizzerce (podobně jako loni). Chceme zarezervovat stůl a ideálně objednat oběd na 12:00, abysme nemuseli zbytečně čekat a nezmeškali následující odpolední přednášky. Sraz proběhne na LinuxAltu po skončení dopoledních přednášek a to 8.11. v 11.30, poté se půjde to vybrané restaurace. Pokud bude zájem, můžeme udělat setkání v oba dva dny.&lt;br /&gt;
&lt;br /&gt;
[http://forum.openmoko.cz/viewtopic.php?f=19&amp;amp;t=120&amp;amp;p=641 diskuze].&lt;br /&gt;
&lt;br /&gt;
Otázkou je kde (uveďte včetně odkazu), ve který den konání LinuxAltu a pro kolik lidí, respektive kdo se chce zůčastnit setkání? Připište se na seznam:&lt;br /&gt;
{|border=1&lt;br /&gt;
!Jméno/Nick&lt;br /&gt;
!Den&lt;br /&gt;
!Kde&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Martix|Martix]]&lt;br /&gt;
|sobota, neděle&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[User:MMlosh|MMlosh]]&lt;br /&gt;
|sobota, neděle&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Fox|Fox]]&lt;br /&gt;
|Sobota&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[User:xkucf03|xkucf03]]&lt;br /&gt;
|sobota, neděle&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Rezza|Rezza]]&lt;br /&gt;
|sobota, neděle, každý den jsem na Kovárně&lt;br /&gt;
|[http://www.h3restaurant.cz H3], [http://www.labotte.cz La Botte]...&lt;br /&gt;
|-&lt;br /&gt;
|[[User:ivir|iVir]]&lt;br /&gt;
|sobota, neděle&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:Community/cs]]&lt;br /&gt;
[[Category:Openmoko Local Groups]]&lt;/div&gt;</summary>
		<author><name>MMlosh</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Openmoko_Local_Groups:_Czech/LinuxAlt_2009</id>
		<title>Openmoko Local Groups: Czech/LinuxAlt 2009</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Openmoko_Local_Groups:_Czech/LinuxAlt_2009"/>
				<updated>2009-10-07T13:22:36Z</updated>
		
		<summary type="html">&lt;p&gt;MMlosh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Zdravím. Někteří z členů naší Openmoko komunity se hodlájí zůčastnit letošního LinuxAltu konaného 7. a 8. 11. na FIT VUT v Brně Na něm pravděpodobně proběhne i přednáška o Openmoko (to záleží na jejím úspěchu v [http://www.linuxalt.cz/anketa anketě]). Na Jabber konferenci padl návrh na uspořádání menšího setkání v průběhu přestávky na oběd (cca 1,5h) v hospodě nebo pizzerce (podobně jako loni). Chceme zarezervovat stůl a ideálně objednat oběd na 12:00, abysme nemuseli zbytečně čekat a nezmeškali následující odpolední přednášky. Sraz proběhne na LinuxAltu po skončení dopoledních přednášek. Na dni se musíme domluvit, jsem pro den, kdy se bude konat samotná Openmoko přednáška. Pokud bude zájem, můžeme udělat setkání v oba dva dny.&lt;br /&gt;
&lt;br /&gt;
Otázkou je kde, ve který den konání LinuxAltu a pro kolik lidí, respektive kdo se chce zůčastnit setkání? Připište se na seznam:&lt;br /&gt;
{|border=1&lt;br /&gt;
!Jméno/Nick&lt;br /&gt;
!Den&lt;br /&gt;
!Kde&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Martix|Martix]]&lt;br /&gt;
|sobota, neděle&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[User:MMlosh|MMlosh]]&lt;br /&gt;
|(dle programu)&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:Openmoko Local Groups]]&lt;/div&gt;</summary>
		<author><name>MMlosh</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Neo_1973_audio_subsystem</id>
		<title>Neo 1973 audio subsystem</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Neo_1973_audio_subsystem"/>
				<updated>2009-04-05T12:10:31Z</updated>
		
		<summary type="html">&lt;p&gt;MMlosh: rewritten my previous post&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In the center of the [[Neo1973]] '''audio subsystem''' is the [[WM8753]] (the &amp;quot;Wolfson Codec&amp;quot;), which implements record (ADCs), playback (DACs), and signal mixing. On the stereo output is the [[LM4857]] amplifier, which drives the stereo speakers, the mono earpiece and the headphones. Sound from and to [[GSM]] is received from and sent to the GSM modem via analog connections. There's a digital mono interface for sound from and to the [[Bluetooth]] chip.&lt;br /&gt;
&lt;br /&gt;
=== ALSA Channels ===&lt;br /&gt;
The channel numbers shown here are for the Freerunner, not the 1973.&lt;br /&gt;
[[Image:WM8753 ALSA Mapping.png]]&lt;br /&gt;
A way more pretty diagram is [http://people.openmoko.org/joerg/ALSA/doc/WM8753_control_diag.pdf here]&lt;br /&gt;
&lt;br /&gt;
Png version with ALSA control names printed over (these are alsa controls like found in statefiles or amixer commands, alsamixer removes trailing &amp;quot;Playback Volume&amp;quot; and such where it sees fit) [http://wiki.openmoko.org/wiki/Image:WM8753_routing_diagram.svg Inkscape source]:&lt;br /&gt;
[[Image:WM8753_routing_diagram_alsa_controls.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:root@om-gta02:~# amixer controls&lt;br /&gt;
:numid=1,iface=MIXER,name='PCM Volume'&lt;br /&gt;
:numid=2,iface=MIXER,name='ADC Capture Volume'&lt;br /&gt;
:numid=3,iface=MIXER,name='Headphone Playback Volume'&lt;br /&gt;
:numid=4,iface=MIXER,name='Speaker Playback Volume'&lt;br /&gt;
:numid=5,iface=MIXER,name='Mono Playback Volume'&lt;br /&gt;
:numid=6,iface=MIXER,name='Bypass Playback Volume'&lt;br /&gt;
:numid=7,iface=MIXER,name='Sidetone Playback Volume'&lt;br /&gt;
:numid=8,iface=MIXER,name='Voice Playback Volume'&lt;br /&gt;
:numid=9,iface=MIXER,name='Headphone Playback ZC Switch'&lt;br /&gt;
:numid=10,iface=MIXER,name='Speaker Playback ZC Switch'&lt;br /&gt;
:numid=11,iface=MIXER,name='Mono Bypass Playback Volume'&lt;br /&gt;
:numid=12,iface=MIXER,name='Mono Sidetone Playback Volume'&lt;br /&gt;
:numid=13,iface=MIXER,name='Mono Voice Playback Volume'&lt;br /&gt;
:numid=14,iface=MIXER,name='Mono Playback ZC Switch'&lt;br /&gt;
:numid=15,iface=MIXER,name='Bass Boost'&lt;br /&gt;
:numid=16,iface=MIXER,name='Bass Filter'&lt;br /&gt;
:numid=17,iface=MIXER,name='Bass Volume'&lt;br /&gt;
:numid=18,iface=MIXER,name='Treble Volume'&lt;br /&gt;
:numid=19,iface=MIXER,name='Treble Cut-off'&lt;br /&gt;
:numid=20,iface=MIXER,name='Sidetone Capture Volume'&lt;br /&gt;
:numid=21,iface=MIXER,name='Voice Sidetone Capture Volume'&lt;br /&gt;
:numid=22,iface=MIXER,name='Capture Volume'&lt;br /&gt;
:numid=23,iface=MIXER,name='Capture ZC Switch'&lt;br /&gt;
:numid=24,iface=MIXER,name='Capture Switch'&lt;br /&gt;
:numid=25,iface=MIXER,name='Capture Filter Select'&lt;br /&gt;
:numid=26,iface=MIXER,name='Capture Filter Cut-off'&lt;br /&gt;
:numid=27,iface=MIXER,name='Capture Filter Switch'&lt;br /&gt;
:numid=28,iface=MIXER,name='ALC Capture Target Volume'&lt;br /&gt;
:numid=29,iface=MIXER,name='ALC Capture Max Volume'&lt;br /&gt;
:numid=30,iface=MIXER,name='ALC Capture Function'&lt;br /&gt;
:numid=31,iface=MIXER,name='ALC Capture ZC Switch'&lt;br /&gt;
:numid=32,iface=MIXER,name='ALC Capture Hold Time'&lt;br /&gt;
:numid=33,iface=MIXER,name='ALC Capture Decay Time'&lt;br /&gt;
:numid=34,iface=MIXER,name='ALC Capture Attack Time'&lt;br /&gt;
:numid=35,iface=MIXER,name='ALC Capture NG Threshold'&lt;br /&gt;
:numid=36,iface=MIXER,name='ALC Capture NG Type'&lt;br /&gt;
:numid=37,iface=MIXER,name='ALC Capture NG Switch'&lt;br /&gt;
:numid=38,iface=MIXER,name='3D Function'&lt;br /&gt;
:numid=39,iface=MIXER,name='3D Upper Cut-off'&lt;br /&gt;
:numid=40,iface=MIXER,name='3D Lower Cut-off'&lt;br /&gt;
:numid=41,iface=MIXER,name='3D Volume'&lt;br /&gt;
:numid=42,iface=MIXER,name='3D Switch'&lt;br /&gt;
:numid=43,iface=MIXER,name='Capture 6dB Attenuate'&lt;br /&gt;
:numid=44,iface=MIXER,name='Playback 6dB Attenuate'&lt;br /&gt;
:numid=45,iface=MIXER,name='De-emphasis'&lt;br /&gt;
:numid=46,iface=MIXER,name='Playback Mono Mix'&lt;br /&gt;
:numid=47,iface=MIXER,name='Playback Phase'&lt;br /&gt;
:numid=48,iface=MIXER,name='Mic2 Capture Volume'&lt;br /&gt;
:numid=49,iface=MIXER,name='Mic1 Capture Volume'&lt;br /&gt;
:numid=50,iface=MIXER,name='DAI Mode'&lt;br /&gt;
:numid=51,iface=MIXER,name='ADC Data Select'&lt;br /&gt;
:numid=52,iface=MIXER,name='ROUT2 Phase'&lt;br /&gt;
:numid=53,iface=MIXER,name='Mic Selection Mux'&lt;br /&gt;
:numid=54,iface=MIXER,name='Rx Mixer'&lt;br /&gt;
:numid=55,iface=MIXER,name='Line Mixer'&lt;br /&gt;
:numid=56,iface=MIXER,name='Line Mono Mux'&lt;br /&gt;
:numid=57,iface=MIXER,name='Line Right Mux'&lt;br /&gt;
:numid=58,iface=MIXER,name='Line Left Mux'&lt;br /&gt;
:numid=59,iface=MIXER,name='ALC Mixer Line Capture Switch'&lt;br /&gt;
:numid=60,iface=MIXER,name='ALC Mixer Mic2 Capture Switch'&lt;br /&gt;
:numid=61,iface=MIXER,name='ALC Mixer Mic1 Capture Switch'&lt;br /&gt;
:numid=62,iface=MIXER,name='ALC Mixer Rx Capture Switch'&lt;br /&gt;
:numid=63,iface=MIXER,name='Mic Sidetone Mux'&lt;br /&gt;
:numid=64,iface=MIXER,name='Capture Right Mux'&lt;br /&gt;
:numid=65,iface=MIXER,name='Capture Left Mux'&lt;br /&gt;
:numid=66,iface=MIXER,name='Capture Right Mixer'&lt;br /&gt;
:numid=67,iface=MIXER,name='Capture Left Mixer'&lt;br /&gt;
:numid=68,iface=MIXER,name='Playback Mixer Voice Capture Sw'&lt;br /&gt;
:numid=69,iface=MIXER,name='Playback Mixer Left Capture Swi'&lt;br /&gt;
:numid=70,iface=MIXER,name='Playback Mixer Right Capture Sw'&lt;br /&gt;
:numid=71,iface=MIXER,name='Out4 Mux'&lt;br /&gt;
:numid=72,iface=MIXER,name='Out3 Mux'&lt;br /&gt;
:numid=73,iface=MIXER,name='Mono 2 Mux'&lt;br /&gt;
:numid=74,iface=MIXER,name='Mono Mixer Left Playback Switch'&lt;br /&gt;
:numid=75,iface=MIXER,name='Mono Mixer Right Playback Switc'&lt;br /&gt;
:numid=76,iface=MIXER,name='Mono Mixer Voice Playback Switc'&lt;br /&gt;
:numid=77,iface=MIXER,name='Mono Mixer Sidetone Playback Sw'&lt;br /&gt;
:numid=78,iface=MIXER,name='Mono Mixer Bypass Playback Swit'&lt;br /&gt;
:numid=79,iface=MIXER,name='Right Mixer Voice Playback Swit'&lt;br /&gt;
:numid=80,iface=MIXER,name='Right Mixer Sidetone Playback S'&lt;br /&gt;
:numid=81,iface=MIXER,name='Right Mixer Right Playback Swit'&lt;br /&gt;
:numid=82,iface=MIXER,name='Right Mixer Bypass Playback Swi'&lt;br /&gt;
:numid=83,iface=MIXER,name='Left Mixer Voice Playback Switc'&lt;br /&gt;
:numid=84,iface=MIXER,name='Left Mixer Sidetone Playback Sw'&lt;br /&gt;
:numid=85,iface=MIXER,name='Left Mixer Left Playback Switch'&lt;br /&gt;
:numid=86,iface=MIXER,name='Left Mixer Bypass Playback Swit'&lt;br /&gt;
:numid=87,iface=MIXER,name='DAPM Stereo Out Switch'&lt;br /&gt;
:numid=88,iface=MIXER,name='DAPM GSM Line Out Switch'&lt;br /&gt;
:numid=89,iface=MIXER,name='DAPM GSM Line In Switch'&lt;br /&gt;
:numid=90,iface=MIXER,name='DAPM Headset Mic Switch'&lt;br /&gt;
:numid=91,iface=MIXER,name='DAPM Handset Mic Switch'&lt;br /&gt;
:numid=92,iface=MIXER,name='DAPM Handset Spk Switch'&lt;br /&gt;
:numid=93,iface=MIXER,name='Amp State Switch'&lt;br /&gt;
:numid=94,iface=MIXER,name='Amp Spk Switch'&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Four variants of using available Digital Audio Interfaces and DACs/ADC, these correspond to the &amp;quot;DAI Mode&amp;quot; ALSA control values:&lt;br /&gt;
&lt;br /&gt;
[[Image:wolfson_dai_routing.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Keep in mind: left interface (VXxxx) is connected to BlueTooth, right interface (LRC, BCLK, xxxDAT) is connected to SoC (CPU).&lt;br /&gt;
So mode &amp;quot;11&amp;quot; at least seems isn't useful at all for the way Neo HW is built. Mode &amp;quot;10&amp;quot; is suited for (Stereo/mono) output and recording for digital world, whereas Mode &amp;quot;00&amp;quot; is needed for GSM&amp;lt;-&amp;gt;BT operation (calls via BT-headset) only.&lt;br /&gt;
&lt;br /&gt;
BT-VoIP-calls and BT-stereo-headphones playback are done via direct USB-connection SoC&amp;lt;-&amp;gt;BT in a very usual standard-linux-way, and therefor need no statefile or any other setup of mixer.&lt;br /&gt;
&lt;br /&gt;
We are still wondering what use Mode &amp;quot;01&amp;quot; might have, other than analog mixed mono output (which could as well be done at digital side by feeding L/R with same data)&lt;br /&gt;
&lt;br /&gt;
*--[[User:MMlosh|MMlosh]] 10:15, 5 April 2009 (GMT) Mono signal has separate volume control for stereo (control #8) and mono (control #13) output. This might be useful when mixing PCM (VoIP call / music) output into GSM call and playing it locally (and you can still have different volume levels)&lt;br /&gt;
&lt;br /&gt;
=== Phase0 Quick Start ===&lt;br /&gt;
&lt;br /&gt;
In my experience this works but I have to fiddle with the connection a bit before I get stereo output. The audio also comes out both the speaker and headphones.&lt;br /&gt;
&lt;br /&gt;
 alsactl -f /etc/stereoout.state restore&lt;br /&gt;
 madplay myfavoritesong.mp3&lt;br /&gt;
&lt;br /&gt;
Another simple test (assuming you have [[USB_Networking|USB Networking]] configured) is to listen to a radio stream:&lt;br /&gt;
&lt;br /&gt;
 wget -O - http://radioparadise.steadyhost.com:8050 | madplay -&lt;br /&gt;
&lt;br /&gt;
If for some reason you're missing stereoout.state, try getting a similar copy (a couple of volume levels are different is all)&lt;br /&gt;
&lt;br /&gt;
  wget http://opensource.wolfsonmicro.com/~gg/neo1973/stereoout.state&lt;br /&gt;
&lt;br /&gt;
=== Voice Calls ===&lt;br /&gt;
&lt;br /&gt;
==== using phone-internal microphone and speaker ====&lt;br /&gt;
&lt;br /&gt;
[[Image:WM8753 BlockDiagram GSM handset.png]]&lt;br /&gt;
&lt;br /&gt;
This is the default case.&lt;br /&gt;
&lt;br /&gt;
* microphone path&lt;br /&gt;
** input: built in microphone attached to wolfson MIC2/MIC2N&lt;br /&gt;
** routed from wolfson MIC2/MIC2N to MONO1/MONO2&lt;br /&gt;
** arrives at GSM Modem input MICIP/MICIN&lt;br /&gt;
* speaker path&lt;br /&gt;
** input: GSM Modem attached to wolfson RXN/RXP&lt;br /&gt;
** routed from wolfson RXN/RXP to ROUT1/LOUT1&lt;br /&gt;
** arrives on LM4857 RIN/LIN&lt;br /&gt;
** routed on LM4856 to EP+/EP-&lt;br /&gt;
&lt;br /&gt;
===== Internal Codec Route =====&lt;br /&gt;
&lt;br /&gt;
Neo Mode is GSM Handset&lt;br /&gt;
Amp Mode is Call Speaker&lt;br /&gt;
&lt;br /&gt;
* audio path Mic -&amp;gt; GSM&lt;br /&gt;
** MIC2/MIC2N&lt;br /&gt;
** Mic2 Volume&lt;br /&gt;
** ALC Micer Mic2&lt;br /&gt;
** Left PGA&lt;br /&gt;
** Mic Sidetone Mux [Left PGA]&lt;br /&gt;
** Mono Sidetone Volume&lt;br /&gt;
** Mono Mixer Sidetone Playback Switch&lt;br /&gt;
** Mono Volume&lt;br /&gt;
** Mono 2 Mux [Inverted Mono 1]&lt;br /&gt;
&lt;br /&gt;
* audio path GSM -&amp;gt; Speaker&lt;br /&gt;
** RXP/RXN&lt;br /&gt;
** Rx Mixer [RXP - RXN]&lt;br /&gt;
** Line Left Mux [Rx Mix]/Line Right Mux [Rx Mix]&lt;br /&gt;
** Left Mixer Bypass Playback Switch/Right Mixer Bypass Playback Switch&lt;br /&gt;
** Headphone Volume&lt;br /&gt;
&lt;br /&gt;
===== Driver Status =====&lt;br /&gt;
&lt;br /&gt;
This should be supported by ASoC 0.13rc3 (-moko7 kernel) on.&lt;br /&gt;
&lt;br /&gt;
ASoC 0.13.3 should have same functionality but has renamed the soundcard to neo1973.&lt;br /&gt;
&lt;br /&gt;
===== asound.state =====&lt;br /&gt;
&lt;br /&gt;
https://people.openmoko.org/laforge/gta01/gta01b_v2/alsa/gsmhandset.state&lt;br /&gt;
&lt;br /&gt;
For ASoC 0.13.3 http://opensource.wolfsonmicro.com/~gg/neo1973/gsmhandset.state&lt;br /&gt;
&lt;br /&gt;
==== using analog (4pin 2.5mm) headset ====&lt;br /&gt;
&lt;br /&gt;
This is also a quite common case, since we ship the headset with the&lt;br /&gt;
phone&lt;br /&gt;
&lt;br /&gt;
Headset Detection is done via GPIO on S3C2410&lt;br /&gt;
&lt;br /&gt;
* microphone path&lt;br /&gt;
** input: headset mic vial HS_MIC attached to wolfson MIC1&lt;br /&gt;
** routed from wolfson MIC1 to MONO1/MONO2&lt;br /&gt;
** arrives at GSM Modem input MICIP/MICIN&lt;br /&gt;
* speaker path&lt;br /&gt;
** input: GSM Modem attached to wolfson RXN/RXP&lt;br /&gt;
** routed from wolfson RXN/RXP to ROUT1/LOUT1&lt;br /&gt;
** arrives on LM4857 RIN/LIN&lt;br /&gt;
** routed on LM4856 to LHP/RHP&lt;br /&gt;
&lt;br /&gt;
===== Internal Codec Route =====&lt;br /&gt;
&lt;br /&gt;
Neo Mode is GSM Headset&lt;br /&gt;
Amp Mode is Headphones&lt;br /&gt;
&lt;br /&gt;
* audio path Mic -&amp;gt; GSM&lt;br /&gt;
** MIC1&lt;br /&gt;
** Mic Selection Mux [Mic 1]&lt;br /&gt;
** ALC Mixer Mic1&lt;br /&gt;
** Left PGA&lt;br /&gt;
** Mic Sidetone Mux [Left PGA]&lt;br /&gt;
** Mono Sidetone Volume&lt;br /&gt;
** Mono Mixer Sidetone Playback Switch&lt;br /&gt;
** Mono Volume&lt;br /&gt;
** Mono 2 Mux [Inverted Mono 1]&lt;br /&gt;
&lt;br /&gt;
* Audio path GSM -&amp;gt; Headphones&lt;br /&gt;
** RXP/RXN&lt;br /&gt;
** Rx Mixer [RXP - RXN]&lt;br /&gt;
** Line Left Mux [Rx Mix]/Line Right Mux [Rx Mix]&lt;br /&gt;
** Left Mixer Bypass Playback Switch/Right Mixer Bypass Playback Switch&lt;br /&gt;
** Headphone Volume&lt;br /&gt;
&lt;br /&gt;
===== Driver Status =====&lt;br /&gt;
&lt;br /&gt;
Supported in ASoC 0.13.3&lt;br /&gt;
&lt;br /&gt;
===== asound.state =====&lt;br /&gt;
&lt;br /&gt;
http://opensource.wolfsonmicro.com/~gg/neo1973/gsmheadset.state&lt;br /&gt;
&lt;br /&gt;
==== using Bluetooth headset with GSM ====&lt;br /&gt;
&lt;br /&gt;
NOTE none of this works with GTA02. Neo mode has disappeared, and none of the state files are GTA02 compatible.&lt;br /&gt;
&lt;br /&gt;
[[Image:WM8753 BlockDiagram GSM Bluetooth.png]]&lt;br /&gt;
&lt;br /&gt;
Headset detection via software&lt;br /&gt;
&lt;br /&gt;
* microphone path&lt;br /&gt;
** input: from bluetooth via PCM interface to wolfson&lt;br /&gt;
** wolfson: DAC&lt;br /&gt;
** wolfson routes analog signal to MONO1/MONO2&lt;br /&gt;
** arrives at GSM Modem input MICIP/MICIN&lt;br /&gt;
* speaker path&lt;br /&gt;
** input: GSM Modem attached to wolfson RXN/RXP&lt;br /&gt;
** wolfson: ADC&lt;br /&gt;
** wolfson: routes digital signal to PCM&lt;br /&gt;
** arrives on bluetooth chip via PCM&lt;br /&gt;
&lt;br /&gt;
===== Internal Codec Route =====&lt;br /&gt;
&lt;br /&gt;
Neo Mode is GSM Bluetooth&lt;br /&gt;
Amp Mode is Off&lt;br /&gt;
&lt;br /&gt;
* audio path BT -&amp;gt; GSM&lt;br /&gt;
** Vx DAC&lt;br /&gt;
** Mono Voice Volume&lt;br /&gt;
** Mono Mixer Voice Playback Switch&lt;br /&gt;
** Mono Volume&lt;br /&gt;
** Mono 2 Mux [Inverted Mono 1]&lt;br /&gt;
&lt;br /&gt;
* audio path GSM -&amp;gt; BT&lt;br /&gt;
** RXP/RXN&lt;br /&gt;
** Rx Mixer [RXP - RXN]&lt;br /&gt;
** ALC Mixer Rx&lt;br /&gt;
** Left PGA&lt;br /&gt;
** Capture Mixer Mux [PGA]&lt;br /&gt;
** Capture Left Mixer [Analogue Mix Left]&lt;br /&gt;
** Left ADC&lt;br /&gt;
&lt;br /&gt;
===== Driver Status =====&lt;br /&gt;
&lt;br /&gt;
Should be support by ASoC 0.13.3&lt;br /&gt;
&lt;br /&gt;
Example of how to setup PCM-&amp;gt;BT link.&lt;br /&gt;
&lt;br /&gt;
http://opensource.wolfsonmicro.com/~gg/bluetooth-pcm/bluetooth_pcm.c&lt;br /&gt;
&lt;br /&gt;
===== asound.state =====&lt;br /&gt;
&lt;br /&gt;
http://opensource.wolfsonmicro.com/~gg/neo1973/gsmbluetooth.state&lt;br /&gt;
&lt;br /&gt;
NOTE this will not work with GTA02, as the control numbers have changed&lt;br /&gt;
Here [http://wiki.openmoko.org/images/6/64/Gsmbluetooth_gta02.state.txt] is a modified version that is GTA02 compatible, &lt;br /&gt;
But lacks the Neo Mode settings which disappeared on GTA02, and does not seem to work.&lt;br /&gt;
&lt;br /&gt;
The state file above does not work for me. I created one [http://handheldshell.com/gsm_headset.txt gsm_headset.txt] that is working for audio playback on the freerunner. I will be updating that file as I get the mic routing working.&lt;br /&gt;
&lt;br /&gt;
To use this state file there are a number of steps &lt;br /&gt;
&lt;br /&gt;
Turn on bluetooth&lt;br /&gt;
&lt;br /&gt;
Pair the headset ( this only needs to be done once ).&lt;br /&gt;
&lt;br /&gt;
Start the audio subsystem and connect the headset http://wiki.bluez.org/wiki/HOWTO/AudioDevices or use my script [http://handheldshell.com/BtHeadset.py BtHeadset.py]&lt;br /&gt;
&lt;br /&gt;
If you don't hear static in your headset at this point you may need to reboot.&lt;br /&gt;
&lt;br /&gt;
Start the phone call&lt;br /&gt;
&lt;br /&gt;
alsactl restore 0 -f [http://handheldshell.com/gsm_headset.txt gsm_headset.txt]&lt;br /&gt;
&lt;br /&gt;
[http://handheldshell.com/bluetooth_pcm bluetooth_pcm]&lt;br /&gt;
&lt;br /&gt;
I wrote a script to stop the headset too [http://handheldshell.com/BtAttach.py BtHeadsetDetach.py]&lt;br /&gt;
&lt;br /&gt;
The above did not work for me; for some reason, the hifi DAC interface must be exercised once before playing.  I have hacked BtHeadset.py to make [http://www.robsims.com/FR-BTAudio FR-BTAudio].  When paired with [http://www.robsims.com/GSMBLUETOOTH.txt GSMBLUETOOTH.txt] I get 2-way high quality audio.&lt;br /&gt;
&lt;br /&gt;
I did a lot of this debugging using [http://www.robsims.com/w8753_dump w8753_dump] which is a quick and dirty hack, but quite useful on a large text window.&lt;br /&gt;
&lt;br /&gt;
=== Bluetooth headset with system audio ===&lt;br /&gt;
&lt;br /&gt;
For example, using a voip app on the phone with a bt voice headset. This would also be a good way to work on the bluetooth driver without requiring a working GSM and placing a lot of calls.&lt;br /&gt;
&lt;br /&gt;
See ticket 583 for a state file that should route system audio *out* to the headset. The codec does not allow for duplex system audio connected to a headset, so audio in is still using the mic.&lt;br /&gt;
&lt;br /&gt;
NOTE the state file specified does not work for GTA02, and even when modified to be GTA02 compatible still does not route system sound to a BT headset. Modified state file for GTA02 is here &lt;br /&gt;
[http://wiki.openmoko.org/images/3/3d/Btcpu_gta02.state.txt]&lt;br /&gt;
&lt;br /&gt;
=== Multimedia ===&lt;br /&gt;
&lt;br /&gt;
==== sound playback to speakers ====&lt;br /&gt;
&lt;br /&gt;
This is an important mode since it is also required for ringtone&lt;br /&gt;
playback&lt;br /&gt;
&lt;br /&gt;
* speaker path &lt;br /&gt;
** input: from S3C2410 via IIS interface to wolfson&lt;br /&gt;
** wolfson: DAC&lt;br /&gt;
** wolfson: route to ROUT1/LOUT1&lt;br /&gt;
** LM4857: arrives on RIN/LIN&lt;br /&gt;
** LM4857: route to LLS+-/RLS+-&lt;br /&gt;
&lt;br /&gt;
===== Driver Status =====&lt;br /&gt;
&lt;br /&gt;
This is working since ASoC 0.13rc2 (-moko6 kernel)&lt;br /&gt;
&lt;br /&gt;
This should also work on ASoC 0.13.3&lt;br /&gt;
&lt;br /&gt;
===== asound.state =====&lt;br /&gt;
&lt;br /&gt;
https://people.openmoko.org/laforge/gta01/gta01b_v2/alsa/stereoout.state&lt;br /&gt;
&lt;br /&gt;
For ASoC 0.13.3 http://opensource.wolfsonmicro.com/~gg/neo1973/stereoout.state&lt;br /&gt;
&lt;br /&gt;
==== sound playback to headphone ====&lt;br /&gt;
&lt;br /&gt;
* speaker path&lt;br /&gt;
** input: from S3C2410 via IIS interface to wolfson&lt;br /&gt;
** wolfson: DAC&lt;br /&gt;
** wolfson: route to ROUT1/LOUT1&lt;br /&gt;
** LM4857: arrives on RIN/LIN&lt;br /&gt;
** routed on LM4856 to LHP/RHP&lt;br /&gt;
&lt;br /&gt;
===== Driver Status =====&lt;br /&gt;
&lt;br /&gt;
This is working since ASoC 0.13rc2 (-moko6 kernel)&lt;br /&gt;
&lt;br /&gt;
==== sound playback via A2DP ====&lt;br /&gt;
&lt;br /&gt;
One way to do this is to use a pulse plugin for bluetooth audio. Pulse would be routed either to the plugin or the default route to the codec. The plugin would watch for headset connect/disconnect events generated by a bluez audio daemon to keep the list of available output devices current.&lt;br /&gt;
&lt;br /&gt;
===== Driver Status =====&lt;br /&gt;
&lt;br /&gt;
There is early work on the bluez daemon to handle this. It has been combined with an alsa plugin in the bluez tree but the alsa plugin probably will not be sufficient for neo.&lt;br /&gt;
&lt;br /&gt;
==== voice recording ==== &lt;br /&gt;
&lt;br /&gt;
This is mainly used to record notes&lt;br /&gt;
&lt;br /&gt;
* microphone path&lt;br /&gt;
** can be from built-in mic&lt;br /&gt;
** or from headset&lt;br /&gt;
** or bluetooth headset&lt;br /&gt;
&lt;br /&gt;
===== Driver Status =====&lt;br /&gt;
&lt;br /&gt;
UNKNOWN&lt;br /&gt;
&lt;br /&gt;
[http://wiki.openmoko.org/wiki/User:Herp http://wiki.openmoko.org/wiki/User:Herp]&lt;br /&gt;
&lt;br /&gt;
[http://wildsau.enemy.org/~moko/voice-recording.state http://wildsau.enemy.org/~moko/voice-recording.state]&lt;br /&gt;
&lt;br /&gt;
=== Call recording ===&lt;br /&gt;
&lt;br /&gt;
This is a nice wishlist item.  The user should be able to receive the&lt;br /&gt;
full-duplex audio from the wolfson codec, and record it using the&lt;br /&gt;
S3C2410 IIS.  &lt;br /&gt;
&lt;br /&gt;
==== recording ====&lt;br /&gt;
&lt;br /&gt;
It is possible to do PCM recording of a GSM voice call.  In fact, it is even possible to record the local microphone (what you speak) and the remote voice (what is spoken on the other end of the call) to separate channels (L and R of the Stereo ADC).&lt;br /&gt;
&lt;br /&gt;
If you want to record a GSM voice call, please adjust your mixer settings as follows&lt;br /&gt;
# Capture Left Mux: ''Line or RXP-RXN''&lt;br /&gt;
#* this routes the analog voice from the GSM modem to the left DAC channel&lt;br /&gt;
# Capture Right Mux: ''PGA''&lt;br /&gt;
#* this routes the microphone input to the right DAC channel&lt;br /&gt;
&lt;br /&gt;
FIXME: test this. There's currently a ASoC kernel driver bug preventing audio capture from working at all.&lt;br /&gt;
&lt;br /&gt;
===== Driver Status =====&lt;br /&gt;
&lt;br /&gt;
UNKNOWN&lt;br /&gt;
&lt;br /&gt;
==== playback ====&lt;br /&gt;
&lt;br /&gt;
If you want to play PCM audio into a GSM call (i.e. make your remote partner of a voice call hear your PCM audio, e.g. your mp3 or ogg files.&lt;br /&gt;
&lt;br /&gt;
If you are inside a voice call (e.g. FSO/zhone), open amixer or load a state file with alsactl and change the following mixer controls:&lt;br /&gt;
# Mono Mixer Left&lt;br /&gt;
#* this enables audio routing from the Stereo DAC left channel to the Mono Out (GSM Modem)&lt;br /&gt;
# Mono Mixer Right Playback Switch&lt;br /&gt;
#* this enables audio routing from the Stereo DAC right channel to the Mono Out (GSM Modem)&lt;br /&gt;
# PCM Level&lt;br /&gt;
#* adjust the PCM Level up to the desired playback volume&lt;br /&gt;
&lt;br /&gt;
===== Driver Status =====&lt;br /&gt;
&lt;br /&gt;
UNKNOWN&lt;br /&gt;
&lt;br /&gt;
==== Recording and Playback .state ====&lt;br /&gt;
Here is a state file that allows both recording and playback from and to a gsm call. &amp;lt;br&amp;gt;&lt;br /&gt;
File: [[Image:Callrec.txt]]&lt;br /&gt;
&lt;br /&gt;
To record just issue:&lt;br /&gt;
&lt;br /&gt;
arecord -D hw:0,0 -r 8000 -f S16_LE -c 2 record.wav&lt;br /&gt;
&lt;br /&gt;
and to inject sound just issue:&lt;br /&gt;
&lt;br /&gt;
aplay -D hw:0,0 record.wav&lt;br /&gt;
&lt;br /&gt;
If you have any problems you can contact me on IRC, TAsn.&lt;br /&gt;
&lt;br /&gt;
P.S&lt;br /&gt;
There's a bug concerning the Right and Left mux, you have to change the left after you change the right, loading the state file may cause this issue to show, so just in case, I recommend appending:&lt;br /&gt;
&lt;br /&gt;
amixer sset 'Capture Right Mux' 'Line or RXP-RXN'&lt;br /&gt;
&lt;br /&gt;
amixer sset 'Capture Left Mux' 'Line or RXP-RXN'&lt;br /&gt;
&lt;br /&gt;
to the alsactl -f Callrec.txt restore command.&lt;br /&gt;
&lt;br /&gt;
==== Recording and maintaining a call .state ====&lt;br /&gt;
For the actual recording:&lt;br /&gt;
arecord -D hw:0,0 -r 8000 -f S16_LE -c 2 record.wav&lt;br /&gt;
&lt;br /&gt;
please note that this is the state file I wrote for my [[Call Recorder]], so if you need anything you might miss here, just go and check it's source.&lt;br /&gt;
&lt;br /&gt;
The actual state for gsmhandset (gsmhandset.state):&lt;br /&gt;
[[Image:callrec-gsmhandset.txt]]&lt;br /&gt;
&lt;br /&gt;
A patch (diff gsmhandset.txt callrec-gsmhandset.txt) to apply on every state file, including gsmheadset.state and gsmspeakerout.state.&lt;br /&gt;
[[Image:callrec-gsmhandset-patch.txt]]&lt;br /&gt;
&lt;br /&gt;
== Userspace Sound Control Daemon ==&lt;br /&gt;
&lt;br /&gt;
The userspace sound control deamon might be a separate process or (more likely) part of some larger general hardware management daemon.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It will provide the following features:&lt;br /&gt;
&lt;br /&gt;
=== audio playback ===&lt;br /&gt;
&lt;br /&gt;
In order to provide the desired functionality, the daemon first needs to be capable of doing audio playback.&lt;br /&gt;
&lt;br /&gt;
* supported formats&lt;br /&gt;
** mp3 (libmad)&lt;br /&gt;
** ogg/vorbis (libtremor)&lt;br /&gt;
** mod (mikmod)&lt;br /&gt;
** sid (sidplay)&lt;br /&gt;
* supported functionality&lt;br /&gt;
** start and stop playback&lt;br /&gt;
** interrupt previous sound to play new sound&lt;br /&gt;
** enqueue new sound at end of previous sound&lt;br /&gt;
** smooth fade-in/fade-out&lt;br /&gt;
&lt;br /&gt;
=== audio event management ===&lt;br /&gt;
* manage a set of events (basically just a name for each event)&lt;br /&gt;
* manage a set of audio themes&lt;br /&gt;
** each theme contains list of event-&amp;gt;audio_file_name mappings&lt;br /&gt;
** themes stored/managed via gconf&lt;br /&gt;
* manage event sources&lt;br /&gt;
** built-in event sources, e.g. touchscreen/button press&lt;br /&gt;
** external event sources (e.g. gsmd, dbus, ...)&lt;br /&gt;
&lt;br /&gt;
=== audio scenario management ===&lt;br /&gt;
* e.g. dialer or even gsmd can request audio subsystem to switch to voicecall mode&lt;br /&gt;
* this mainly affects codec/amplifier analog audio routing&lt;br /&gt;
* integrated with bluetooth in case of BT headset or A2DP use&lt;br /&gt;
* How is this management performed currently?&lt;br /&gt;
&lt;br /&gt;
== Important issues/pitfalls ==&lt;br /&gt;
&lt;br /&gt;
=== Ringtone while headset playback ===&lt;br /&gt;
&lt;br /&gt;
If the user is listening to music on the headset, we want to mix the&lt;br /&gt;
ring tones only into the headset audio, as we must not interrupt and play it on the speaker. Reason: headset can't be switched off during playback via speaker, so to avoid extremely loud headset playback there must NOT be any speaker playback while headset is inserted.&lt;br /&gt;
&lt;br /&gt;
In expression: loading speakerout.state is deprecated while JACK_INSERT is asserted.&lt;br /&gt;
&lt;br /&gt;
[[Category:Neo1973 Hardware]]&lt;br /&gt;
[[Category:Audio]]&lt;/div&gt;</summary>
		<author><name>MMlosh</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Neo_1973_audio_subsystem</id>
		<title>Neo 1973 audio subsystem</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Neo_1973_audio_subsystem"/>
				<updated>2009-04-05T10:17:53Z</updated>
		
		<summary type="html">&lt;p&gt;MMlosh: Usage for mode &amp;quot;01&amp;quot; - mixing audio into voice call output&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In the center of the [[Neo1973]] '''audio subsystem''' is the [[WM8753]] (the &amp;quot;Wolfson Codec&amp;quot;), which implements record (ADCs), playback (DACs), and signal mixing. On the stereo output is the [[LM4857]] amplifier, which drives the stereo speakers, the mono earpiece and the headphones. Sound from and to [[GSM]] is received from and sent to the GSM modem via analog connections. There's a digital mono interface for sound from and to the [[Bluetooth]] chip.&lt;br /&gt;
&lt;br /&gt;
=== ALSA Channels ===&lt;br /&gt;
The channel numbers shown here are for the Freerunner, not the 1973.&lt;br /&gt;
[[Image:WM8753 ALSA Mapping.png]]&lt;br /&gt;
A way more pretty diagram is [http://people.openmoko.org/joerg/ALSA/doc/WM8753_control_diag.pdf here]&lt;br /&gt;
&lt;br /&gt;
Png version with ALSA control names printed over (these are alsa controls like found in statefiles or amixer commands, alsamixer removes trailing &amp;quot;Playback Volume&amp;quot; and such where it sees fit) [http://wiki.openmoko.org/wiki/Image:WM8753_routing_diagram.svg Inkscape source]:&lt;br /&gt;
[[Image:WM8753_routing_diagram_alsa_controls.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:root@om-gta02:~# amixer controls&lt;br /&gt;
:numid=1,iface=MIXER,name='PCM Volume'&lt;br /&gt;
:numid=2,iface=MIXER,name='ADC Capture Volume'&lt;br /&gt;
:numid=3,iface=MIXER,name='Headphone Playback Volume'&lt;br /&gt;
:numid=4,iface=MIXER,name='Speaker Playback Volume'&lt;br /&gt;
:numid=5,iface=MIXER,name='Mono Playback Volume'&lt;br /&gt;
:numid=6,iface=MIXER,name='Bypass Playback Volume'&lt;br /&gt;
:numid=7,iface=MIXER,name='Sidetone Playback Volume'&lt;br /&gt;
:numid=8,iface=MIXER,name='Voice Playback Volume'&lt;br /&gt;
:numid=9,iface=MIXER,name='Headphone Playback ZC Switch'&lt;br /&gt;
:numid=10,iface=MIXER,name='Speaker Playback ZC Switch'&lt;br /&gt;
:numid=11,iface=MIXER,name='Mono Bypass Playback Volume'&lt;br /&gt;
:numid=12,iface=MIXER,name='Mono Sidetone Playback Volume'&lt;br /&gt;
:numid=13,iface=MIXER,name='Mono Voice Playback Volume'&lt;br /&gt;
:numid=14,iface=MIXER,name='Mono Playback ZC Switch'&lt;br /&gt;
:numid=15,iface=MIXER,name='Bass Boost'&lt;br /&gt;
:numid=16,iface=MIXER,name='Bass Filter'&lt;br /&gt;
:numid=17,iface=MIXER,name='Bass Volume'&lt;br /&gt;
:numid=18,iface=MIXER,name='Treble Volume'&lt;br /&gt;
:numid=19,iface=MIXER,name='Treble Cut-off'&lt;br /&gt;
:numid=20,iface=MIXER,name='Sidetone Capture Volume'&lt;br /&gt;
:numid=21,iface=MIXER,name='Voice Sidetone Capture Volume'&lt;br /&gt;
:numid=22,iface=MIXER,name='Capture Volume'&lt;br /&gt;
:numid=23,iface=MIXER,name='Capture ZC Switch'&lt;br /&gt;
:numid=24,iface=MIXER,name='Capture Switch'&lt;br /&gt;
:numid=25,iface=MIXER,name='Capture Filter Select'&lt;br /&gt;
:numid=26,iface=MIXER,name='Capture Filter Cut-off'&lt;br /&gt;
:numid=27,iface=MIXER,name='Capture Filter Switch'&lt;br /&gt;
:numid=28,iface=MIXER,name='ALC Capture Target Volume'&lt;br /&gt;
:numid=29,iface=MIXER,name='ALC Capture Max Volume'&lt;br /&gt;
:numid=30,iface=MIXER,name='ALC Capture Function'&lt;br /&gt;
:numid=31,iface=MIXER,name='ALC Capture ZC Switch'&lt;br /&gt;
:numid=32,iface=MIXER,name='ALC Capture Hold Time'&lt;br /&gt;
:numid=33,iface=MIXER,name='ALC Capture Decay Time'&lt;br /&gt;
:numid=34,iface=MIXER,name='ALC Capture Attack Time'&lt;br /&gt;
:numid=35,iface=MIXER,name='ALC Capture NG Threshold'&lt;br /&gt;
:numid=36,iface=MIXER,name='ALC Capture NG Type'&lt;br /&gt;
:numid=37,iface=MIXER,name='ALC Capture NG Switch'&lt;br /&gt;
:numid=38,iface=MIXER,name='3D Function'&lt;br /&gt;
:numid=39,iface=MIXER,name='3D Upper Cut-off'&lt;br /&gt;
:numid=40,iface=MIXER,name='3D Lower Cut-off'&lt;br /&gt;
:numid=41,iface=MIXER,name='3D Volume'&lt;br /&gt;
:numid=42,iface=MIXER,name='3D Switch'&lt;br /&gt;
:numid=43,iface=MIXER,name='Capture 6dB Attenuate'&lt;br /&gt;
:numid=44,iface=MIXER,name='Playback 6dB Attenuate'&lt;br /&gt;
:numid=45,iface=MIXER,name='De-emphasis'&lt;br /&gt;
:numid=46,iface=MIXER,name='Playback Mono Mix'&lt;br /&gt;
:numid=47,iface=MIXER,name='Playback Phase'&lt;br /&gt;
:numid=48,iface=MIXER,name='Mic2 Capture Volume'&lt;br /&gt;
:numid=49,iface=MIXER,name='Mic1 Capture Volume'&lt;br /&gt;
:numid=50,iface=MIXER,name='DAI Mode'&lt;br /&gt;
:numid=51,iface=MIXER,name='ADC Data Select'&lt;br /&gt;
:numid=52,iface=MIXER,name='ROUT2 Phase'&lt;br /&gt;
:numid=53,iface=MIXER,name='Mic Selection Mux'&lt;br /&gt;
:numid=54,iface=MIXER,name='Rx Mixer'&lt;br /&gt;
:numid=55,iface=MIXER,name='Line Mixer'&lt;br /&gt;
:numid=56,iface=MIXER,name='Line Mono Mux'&lt;br /&gt;
:numid=57,iface=MIXER,name='Line Right Mux'&lt;br /&gt;
:numid=58,iface=MIXER,name='Line Left Mux'&lt;br /&gt;
:numid=59,iface=MIXER,name='ALC Mixer Line Capture Switch'&lt;br /&gt;
:numid=60,iface=MIXER,name='ALC Mixer Mic2 Capture Switch'&lt;br /&gt;
:numid=61,iface=MIXER,name='ALC Mixer Mic1 Capture Switch'&lt;br /&gt;
:numid=62,iface=MIXER,name='ALC Mixer Rx Capture Switch'&lt;br /&gt;
:numid=63,iface=MIXER,name='Mic Sidetone Mux'&lt;br /&gt;
:numid=64,iface=MIXER,name='Capture Right Mux'&lt;br /&gt;
:numid=65,iface=MIXER,name='Capture Left Mux'&lt;br /&gt;
:numid=66,iface=MIXER,name='Capture Right Mixer'&lt;br /&gt;
:numid=67,iface=MIXER,name='Capture Left Mixer'&lt;br /&gt;
:numid=68,iface=MIXER,name='Playback Mixer Voice Capture Sw'&lt;br /&gt;
:numid=69,iface=MIXER,name='Playback Mixer Left Capture Swi'&lt;br /&gt;
:numid=70,iface=MIXER,name='Playback Mixer Right Capture Sw'&lt;br /&gt;
:numid=71,iface=MIXER,name='Out4 Mux'&lt;br /&gt;
:numid=72,iface=MIXER,name='Out3 Mux'&lt;br /&gt;
:numid=73,iface=MIXER,name='Mono 2 Mux'&lt;br /&gt;
:numid=74,iface=MIXER,name='Mono Mixer Left Playback Switch'&lt;br /&gt;
:numid=75,iface=MIXER,name='Mono Mixer Right Playback Switc'&lt;br /&gt;
:numid=76,iface=MIXER,name='Mono Mixer Voice Playback Switc'&lt;br /&gt;
:numid=77,iface=MIXER,name='Mono Mixer Sidetone Playback Sw'&lt;br /&gt;
:numid=78,iface=MIXER,name='Mono Mixer Bypass Playback Swit'&lt;br /&gt;
:numid=79,iface=MIXER,name='Right Mixer Voice Playback Swit'&lt;br /&gt;
:numid=80,iface=MIXER,name='Right Mixer Sidetone Playback S'&lt;br /&gt;
:numid=81,iface=MIXER,name='Right Mixer Right Playback Swit'&lt;br /&gt;
:numid=82,iface=MIXER,name='Right Mixer Bypass Playback Swi'&lt;br /&gt;
:numid=83,iface=MIXER,name='Left Mixer Voice Playback Switc'&lt;br /&gt;
:numid=84,iface=MIXER,name='Left Mixer Sidetone Playback Sw'&lt;br /&gt;
:numid=85,iface=MIXER,name='Left Mixer Left Playback Switch'&lt;br /&gt;
:numid=86,iface=MIXER,name='Left Mixer Bypass Playback Swit'&lt;br /&gt;
:numid=87,iface=MIXER,name='DAPM Stereo Out Switch'&lt;br /&gt;
:numid=88,iface=MIXER,name='DAPM GSM Line Out Switch'&lt;br /&gt;
:numid=89,iface=MIXER,name='DAPM GSM Line In Switch'&lt;br /&gt;
:numid=90,iface=MIXER,name='DAPM Headset Mic Switch'&lt;br /&gt;
:numid=91,iface=MIXER,name='DAPM Handset Mic Switch'&lt;br /&gt;
:numid=92,iface=MIXER,name='DAPM Handset Spk Switch'&lt;br /&gt;
:numid=93,iface=MIXER,name='Amp State Switch'&lt;br /&gt;
:numid=94,iface=MIXER,name='Amp Spk Switch'&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Four variants of using available Digital Audio Interfaces and DACs/ADC, these correspond to the &amp;quot;DAI Mode&amp;quot; ALSA control values:&lt;br /&gt;
&lt;br /&gt;
[[Image:wolfson_dai_routing.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Keep in mind: left interface (VXxxx) is connected to BlueTooth, right interface (LRC, BCLK, xxxDAT) is connected to SoC (CPU).&lt;br /&gt;
So mode &amp;quot;11&amp;quot; at least seems isn't useful at all for the way Neo HW is built. Mode &amp;quot;10&amp;quot; is suited for (Stereo/mono) output and recording for digital world, whereas Mode &amp;quot;00&amp;quot; is needed for GSM&amp;lt;-&amp;gt;BT operation (calls via BT-headset) only.&lt;br /&gt;
&lt;br /&gt;
BT-VoIP-calls and BT-stereo-headphones playback are done via direct USB-connection SoC&amp;lt;-&amp;gt;BT in a very usual standard-linux-way, and therefor need no statefile or any other setup of mixer.&lt;br /&gt;
&lt;br /&gt;
We are still wondering what use Mode &amp;quot;01&amp;quot; might have, other than analog mixed mono output (which could as well be done at digital side by feeding L/R with same data)&lt;br /&gt;
&lt;br /&gt;
*--[[User:MMlosh|MMlosh]] 10:15, 5 April 2009 (GMT)  There's no volume control on HiFi codec output. This might be useful when mixing PCM output into voice call (because there's volume control; controls 8 and 13)&lt;br /&gt;
&lt;br /&gt;
=== Phase0 Quick Start ===&lt;br /&gt;
&lt;br /&gt;
In my experience this works but I have to fiddle with the connection a bit before I get stereo output. The audio also comes out both the speaker and headphones.&lt;br /&gt;
&lt;br /&gt;
 alsactl -f /etc/stereoout.state restore&lt;br /&gt;
 madplay myfavoritesong.mp3&lt;br /&gt;
&lt;br /&gt;
Another simple test (assuming you have [[USB_Networking|USB Networking]] configured) is to listen to a radio stream:&lt;br /&gt;
&lt;br /&gt;
 wget -O - http://radioparadise.steadyhost.com:8050 | madplay -&lt;br /&gt;
&lt;br /&gt;
If for some reason you're missing stereoout.state, try getting a similar copy (a couple of volume levels are different is all)&lt;br /&gt;
&lt;br /&gt;
  wget http://opensource.wolfsonmicro.com/~gg/neo1973/stereoout.state&lt;br /&gt;
&lt;br /&gt;
=== Voice Calls ===&lt;br /&gt;
&lt;br /&gt;
==== using phone-internal microphone and speaker ====&lt;br /&gt;
&lt;br /&gt;
[[Image:WM8753 BlockDiagram GSM handset.png]]&lt;br /&gt;
&lt;br /&gt;
This is the default case.&lt;br /&gt;
&lt;br /&gt;
* microphone path&lt;br /&gt;
** input: built in microphone attached to wolfson MIC2/MIC2N&lt;br /&gt;
** routed from wolfson MIC2/MIC2N to MONO1/MONO2&lt;br /&gt;
** arrives at GSM Modem input MICIP/MICIN&lt;br /&gt;
* speaker path&lt;br /&gt;
** input: GSM Modem attached to wolfson RXN/RXP&lt;br /&gt;
** routed from wolfson RXN/RXP to ROUT1/LOUT1&lt;br /&gt;
** arrives on LM4857 RIN/LIN&lt;br /&gt;
** routed on LM4856 to EP+/EP-&lt;br /&gt;
&lt;br /&gt;
===== Internal Codec Route =====&lt;br /&gt;
&lt;br /&gt;
Neo Mode is GSM Handset&lt;br /&gt;
Amp Mode is Call Speaker&lt;br /&gt;
&lt;br /&gt;
* audio path Mic -&amp;gt; GSM&lt;br /&gt;
** MIC2/MIC2N&lt;br /&gt;
** Mic2 Volume&lt;br /&gt;
** ALC Micer Mic2&lt;br /&gt;
** Left PGA&lt;br /&gt;
** Mic Sidetone Mux [Left PGA]&lt;br /&gt;
** Mono Sidetone Volume&lt;br /&gt;
** Mono Mixer Sidetone Playback Switch&lt;br /&gt;
** Mono Volume&lt;br /&gt;
** Mono 2 Mux [Inverted Mono 1]&lt;br /&gt;
&lt;br /&gt;
* audio path GSM -&amp;gt; Speaker&lt;br /&gt;
** RXP/RXN&lt;br /&gt;
** Rx Mixer [RXP - RXN]&lt;br /&gt;
** Line Left Mux [Rx Mix]/Line Right Mux [Rx Mix]&lt;br /&gt;
** Left Mixer Bypass Playback Switch/Right Mixer Bypass Playback Switch&lt;br /&gt;
** Headphone Volume&lt;br /&gt;
&lt;br /&gt;
===== Driver Status =====&lt;br /&gt;
&lt;br /&gt;
This should be supported by ASoC 0.13rc3 (-moko7 kernel) on.&lt;br /&gt;
&lt;br /&gt;
ASoC 0.13.3 should have same functionality but has renamed the soundcard to neo1973.&lt;br /&gt;
&lt;br /&gt;
===== asound.state =====&lt;br /&gt;
&lt;br /&gt;
https://people.openmoko.org/laforge/gta01/gta01b_v2/alsa/gsmhandset.state&lt;br /&gt;
&lt;br /&gt;
For ASoC 0.13.3 http://opensource.wolfsonmicro.com/~gg/neo1973/gsmhandset.state&lt;br /&gt;
&lt;br /&gt;
==== using analog (4pin 2.5mm) headset ====&lt;br /&gt;
&lt;br /&gt;
This is also a quite common case, since we ship the headset with the&lt;br /&gt;
phone&lt;br /&gt;
&lt;br /&gt;
Headset Detection is done via GPIO on S3C2410&lt;br /&gt;
&lt;br /&gt;
* microphone path&lt;br /&gt;
** input: headset mic vial HS_MIC attached to wolfson MIC1&lt;br /&gt;
** routed from wolfson MIC1 to MONO1/MONO2&lt;br /&gt;
** arrives at GSM Modem input MICIP/MICIN&lt;br /&gt;
* speaker path&lt;br /&gt;
** input: GSM Modem attached to wolfson RXN/RXP&lt;br /&gt;
** routed from wolfson RXN/RXP to ROUT1/LOUT1&lt;br /&gt;
** arrives on LM4857 RIN/LIN&lt;br /&gt;
** routed on LM4856 to LHP/RHP&lt;br /&gt;
&lt;br /&gt;
===== Internal Codec Route =====&lt;br /&gt;
&lt;br /&gt;
Neo Mode is GSM Headset&lt;br /&gt;
Amp Mode is Headphones&lt;br /&gt;
&lt;br /&gt;
* audio path Mic -&amp;gt; GSM&lt;br /&gt;
** MIC1&lt;br /&gt;
** Mic Selection Mux [Mic 1]&lt;br /&gt;
** ALC Mixer Mic1&lt;br /&gt;
** Left PGA&lt;br /&gt;
** Mic Sidetone Mux [Left PGA]&lt;br /&gt;
** Mono Sidetone Volume&lt;br /&gt;
** Mono Mixer Sidetone Playback Switch&lt;br /&gt;
** Mono Volume&lt;br /&gt;
** Mono 2 Mux [Inverted Mono 1]&lt;br /&gt;
&lt;br /&gt;
* Audio path GSM -&amp;gt; Headphones&lt;br /&gt;
** RXP/RXN&lt;br /&gt;
** Rx Mixer [RXP - RXN]&lt;br /&gt;
** Line Left Mux [Rx Mix]/Line Right Mux [Rx Mix]&lt;br /&gt;
** Left Mixer Bypass Playback Switch/Right Mixer Bypass Playback Switch&lt;br /&gt;
** Headphone Volume&lt;br /&gt;
&lt;br /&gt;
===== Driver Status =====&lt;br /&gt;
&lt;br /&gt;
Supported in ASoC 0.13.3&lt;br /&gt;
&lt;br /&gt;
===== asound.state =====&lt;br /&gt;
&lt;br /&gt;
http://opensource.wolfsonmicro.com/~gg/neo1973/gsmheadset.state&lt;br /&gt;
&lt;br /&gt;
==== using Bluetooth headset with GSM ====&lt;br /&gt;
&lt;br /&gt;
NOTE none of this works with GTA02. Neo mode has disappeared, and none of the state files are GTA02 compatible.&lt;br /&gt;
&lt;br /&gt;
[[Image:WM8753 BlockDiagram GSM Bluetooth.png]]&lt;br /&gt;
&lt;br /&gt;
Headset detection via software&lt;br /&gt;
&lt;br /&gt;
* microphone path&lt;br /&gt;
** input: from bluetooth via PCM interface to wolfson&lt;br /&gt;
** wolfson: DAC&lt;br /&gt;
** wolfson routes analog signal to MONO1/MONO2&lt;br /&gt;
** arrives at GSM Modem input MICIP/MICIN&lt;br /&gt;
* speaker path&lt;br /&gt;
** input: GSM Modem attached to wolfson RXN/RXP&lt;br /&gt;
** wolfson: ADC&lt;br /&gt;
** wolfson: routes digital signal to PCM&lt;br /&gt;
** arrives on bluetooth chip via PCM&lt;br /&gt;
&lt;br /&gt;
===== Internal Codec Route =====&lt;br /&gt;
&lt;br /&gt;
Neo Mode is GSM Bluetooth&lt;br /&gt;
Amp Mode is Off&lt;br /&gt;
&lt;br /&gt;
* audio path BT -&amp;gt; GSM&lt;br /&gt;
** Vx DAC&lt;br /&gt;
** Mono Voice Volume&lt;br /&gt;
** Mono Mixer Voice Playback Switch&lt;br /&gt;
** Mono Volume&lt;br /&gt;
** Mono 2 Mux [Inverted Mono 1]&lt;br /&gt;
&lt;br /&gt;
* audio path GSM -&amp;gt; BT&lt;br /&gt;
** RXP/RXN&lt;br /&gt;
** Rx Mixer [RXP - RXN]&lt;br /&gt;
** ALC Mixer Rx&lt;br /&gt;
** Left PGA&lt;br /&gt;
** Capture Mixer Mux [PGA]&lt;br /&gt;
** Capture Left Mixer [Analogue Mix Left]&lt;br /&gt;
** Left ADC&lt;br /&gt;
&lt;br /&gt;
===== Driver Status =====&lt;br /&gt;
&lt;br /&gt;
Should be support by ASoC 0.13.3&lt;br /&gt;
&lt;br /&gt;
Example of how to setup PCM-&amp;gt;BT link.&lt;br /&gt;
&lt;br /&gt;
http://opensource.wolfsonmicro.com/~gg/bluetooth-pcm/bluetooth_pcm.c&lt;br /&gt;
&lt;br /&gt;
===== asound.state =====&lt;br /&gt;
&lt;br /&gt;
http://opensource.wolfsonmicro.com/~gg/neo1973/gsmbluetooth.state&lt;br /&gt;
&lt;br /&gt;
NOTE this will not work with GTA02, as the control numbers have changed&lt;br /&gt;
Here [http://wiki.openmoko.org/images/6/64/Gsmbluetooth_gta02.state.txt] is a modified version that is GTA02 compatible, &lt;br /&gt;
But lacks the Neo Mode settings which disappeared on GTA02, and does not seem to work.&lt;br /&gt;
&lt;br /&gt;
The state file above does not work for me. I created one [http://handheldshell.com/gsm_headset.txt gsm_headset.txt] that is working for audio playback on the freerunner. I will be updating that file as I get the mic routing working.&lt;br /&gt;
&lt;br /&gt;
To use this state file there are a number of steps &lt;br /&gt;
&lt;br /&gt;
Turn on bluetooth&lt;br /&gt;
&lt;br /&gt;
Pair the headset ( this only needs to be done once ).&lt;br /&gt;
&lt;br /&gt;
Start the audio subsystem and connect the headset http://wiki.bluez.org/wiki/HOWTO/AudioDevices or use my script [http://handheldshell.com/BtHeadset.py BtHeadset.py]&lt;br /&gt;
&lt;br /&gt;
If you don't hear static in your headset at this point you may need to reboot.&lt;br /&gt;
&lt;br /&gt;
Start the phone call&lt;br /&gt;
&lt;br /&gt;
alsactl restore 0 -f [http://handheldshell.com/gsm_headset.txt gsm_headset.txt]&lt;br /&gt;
&lt;br /&gt;
[http://handheldshell.com/bluetooth_pcm bluetooth_pcm]&lt;br /&gt;
&lt;br /&gt;
I wrote a script to stop the headset too [http://handheldshell.com/BtAttach.py BtHeadsetDetach.py]&lt;br /&gt;
&lt;br /&gt;
The above did not work for me; for some reason, the hifi DAC interface must be exercised once before playing.  I have hacked BtHeadset.py to make [http://www.robsims.com/FR-BTAudio FR-BTAudio].  When paired with [http://www.robsims.com/GSMBLUETOOTH.txt GSMBLUETOOTH.txt] I get 2-way high quality audio.&lt;br /&gt;
&lt;br /&gt;
I did a lot of this debugging using [http://www.robsims.com/w8753_dump w8753_dump] which is a quick and dirty hack, but quite useful on a large text window.&lt;br /&gt;
&lt;br /&gt;
=== Bluetooth headset with system audio ===&lt;br /&gt;
&lt;br /&gt;
For example, using a voip app on the phone with a bt voice headset. This would also be a good way to work on the bluetooth driver without requiring a working GSM and placing a lot of calls.&lt;br /&gt;
&lt;br /&gt;
See ticket 583 for a state file that should route system audio *out* to the headset. The codec does not allow for duplex system audio connected to a headset, so audio in is still using the mic.&lt;br /&gt;
&lt;br /&gt;
NOTE the state file specified does not work for GTA02, and even when modified to be GTA02 compatible still does not route system sound to a BT headset. Modified state file for GTA02 is here &lt;br /&gt;
[http://wiki.openmoko.org/images/3/3d/Btcpu_gta02.state.txt]&lt;br /&gt;
&lt;br /&gt;
=== Multimedia ===&lt;br /&gt;
&lt;br /&gt;
==== sound playback to speakers ====&lt;br /&gt;
&lt;br /&gt;
This is an important mode since it is also required for ringtone&lt;br /&gt;
playback&lt;br /&gt;
&lt;br /&gt;
* speaker path &lt;br /&gt;
** input: from S3C2410 via IIS interface to wolfson&lt;br /&gt;
** wolfson: DAC&lt;br /&gt;
** wolfson: route to ROUT1/LOUT1&lt;br /&gt;
** LM4857: arrives on RIN/LIN&lt;br /&gt;
** LM4857: route to LLS+-/RLS+-&lt;br /&gt;
&lt;br /&gt;
===== Driver Status =====&lt;br /&gt;
&lt;br /&gt;
This is working since ASoC 0.13rc2 (-moko6 kernel)&lt;br /&gt;
&lt;br /&gt;
This should also work on ASoC 0.13.3&lt;br /&gt;
&lt;br /&gt;
===== asound.state =====&lt;br /&gt;
&lt;br /&gt;
https://people.openmoko.org/laforge/gta01/gta01b_v2/alsa/stereoout.state&lt;br /&gt;
&lt;br /&gt;
For ASoC 0.13.3 http://opensource.wolfsonmicro.com/~gg/neo1973/stereoout.state&lt;br /&gt;
&lt;br /&gt;
==== sound playback to headphone ====&lt;br /&gt;
&lt;br /&gt;
* speaker path&lt;br /&gt;
** input: from S3C2410 via IIS interface to wolfson&lt;br /&gt;
** wolfson: DAC&lt;br /&gt;
** wolfson: route to ROUT1/LOUT1&lt;br /&gt;
** LM4857: arrives on RIN/LIN&lt;br /&gt;
** routed on LM4856 to LHP/RHP&lt;br /&gt;
&lt;br /&gt;
===== Driver Status =====&lt;br /&gt;
&lt;br /&gt;
This is working since ASoC 0.13rc2 (-moko6 kernel)&lt;br /&gt;
&lt;br /&gt;
==== sound playback via A2DP ====&lt;br /&gt;
&lt;br /&gt;
One way to do this is to use a pulse plugin for bluetooth audio. Pulse would be routed either to the plugin or the default route to the codec. The plugin would watch for headset connect/disconnect events generated by a bluez audio daemon to keep the list of available output devices current.&lt;br /&gt;
&lt;br /&gt;
===== Driver Status =====&lt;br /&gt;
&lt;br /&gt;
There is early work on the bluez daemon to handle this. It has been combined with an alsa plugin in the bluez tree but the alsa plugin probably will not be sufficient for neo.&lt;br /&gt;
&lt;br /&gt;
==== voice recording ==== &lt;br /&gt;
&lt;br /&gt;
This is mainly used to record notes&lt;br /&gt;
&lt;br /&gt;
* microphone path&lt;br /&gt;
** can be from built-in mic&lt;br /&gt;
** or from headset&lt;br /&gt;
** or bluetooth headset&lt;br /&gt;
&lt;br /&gt;
===== Driver Status =====&lt;br /&gt;
&lt;br /&gt;
UNKNOWN&lt;br /&gt;
&lt;br /&gt;
[http://wiki.openmoko.org/wiki/User:Herp http://wiki.openmoko.org/wiki/User:Herp]&lt;br /&gt;
&lt;br /&gt;
[http://wildsau.enemy.org/~moko/voice-recording.state http://wildsau.enemy.org/~moko/voice-recording.state]&lt;br /&gt;
&lt;br /&gt;
=== Call recording ===&lt;br /&gt;
&lt;br /&gt;
This is a nice wishlist item.  The user should be able to receive the&lt;br /&gt;
full-duplex audio from the wolfson codec, and record it using the&lt;br /&gt;
S3C2410 IIS.  &lt;br /&gt;
&lt;br /&gt;
==== recording ====&lt;br /&gt;
&lt;br /&gt;
It is possible to do PCM recording of a GSM voice call.  In fact, it is even possible to record the local microphone (what you speak) and the remote voice (what is spoken on the other end of the call) to separate channels (L and R of the Stereo ADC).&lt;br /&gt;
&lt;br /&gt;
If you want to record a GSM voice call, please adjust your mixer settings as follows&lt;br /&gt;
# Capture Left Mux: ''Line or RXP-RXN''&lt;br /&gt;
#* this routes the analog voice from the GSM modem to the left DAC channel&lt;br /&gt;
# Capture Right Mux: ''PGA''&lt;br /&gt;
#* this routes the microphone input to the right DAC channel&lt;br /&gt;
&lt;br /&gt;
FIXME: test this. There's currently a ASoC kernel driver bug preventing audio capture from working at all.&lt;br /&gt;
&lt;br /&gt;
===== Driver Status =====&lt;br /&gt;
&lt;br /&gt;
UNKNOWN&lt;br /&gt;
&lt;br /&gt;
==== playback ====&lt;br /&gt;
&lt;br /&gt;
If you want to play PCM audio into a GSM call (i.e. make your remote partner of a voice call hear your PCM audio, e.g. your mp3 or ogg files.&lt;br /&gt;
&lt;br /&gt;
If you are inside a voice call (e.g. FSO/zhone), open amixer or load a state file with alsactl and change the following mixer controls:&lt;br /&gt;
# Mono Mixer Left&lt;br /&gt;
#* this enables audio routing from the Stereo DAC left channel to the Mono Out (GSM Modem)&lt;br /&gt;
# Mono Mixer Right Playback Switch&lt;br /&gt;
#* this enables audio routing from the Stereo DAC right channel to the Mono Out (GSM Modem)&lt;br /&gt;
# PCM Level&lt;br /&gt;
#* adjust the PCM Level up to the desired playback volume&lt;br /&gt;
&lt;br /&gt;
===== Driver Status =====&lt;br /&gt;
&lt;br /&gt;
UNKNOWN&lt;br /&gt;
&lt;br /&gt;
==== Recording and Playback .state ====&lt;br /&gt;
Here is a state file that allows both recording and playback from and to a gsm call. &amp;lt;br&amp;gt;&lt;br /&gt;
File: [[Image:Callrec.txt]]&lt;br /&gt;
&lt;br /&gt;
To record just issue:&lt;br /&gt;
&lt;br /&gt;
arecord -D hw:0,0 -r 8000 -f S16_LE -c 2 record.wav&lt;br /&gt;
&lt;br /&gt;
and to inject sound just issue:&lt;br /&gt;
&lt;br /&gt;
aplay -D hw:0,0 record.wav&lt;br /&gt;
&lt;br /&gt;
If you have any problems you can contact me on IRC, TAsn.&lt;br /&gt;
&lt;br /&gt;
P.S&lt;br /&gt;
There's a bug concerning the Right and Left mux, you have to change the left after you change the right, loading the state file may cause this issue to show, so just in case, I recommend appending:&lt;br /&gt;
&lt;br /&gt;
amixer sset 'Capture Right Mux' 'Line or RXP-RXN'&lt;br /&gt;
&lt;br /&gt;
amixer sset 'Capture Left Mux' 'Line or RXP-RXN'&lt;br /&gt;
&lt;br /&gt;
to the alsactl -f Callrec.txt restore command.&lt;br /&gt;
&lt;br /&gt;
==== Recording and maintaining a call .state ====&lt;br /&gt;
For the actual recording:&lt;br /&gt;
arecord -D hw:0,0 -r 8000 -f S16_LE -c 2 record.wav&lt;br /&gt;
&lt;br /&gt;
please note that this is the state file I wrote for my [[Call Recorder]], so if you need anything you might miss here, just go and check it's source.&lt;br /&gt;
&lt;br /&gt;
The actual state for gsmhandset (gsmhandset.state):&lt;br /&gt;
[[Image:callrec-gsmhandset.txt]]&lt;br /&gt;
&lt;br /&gt;
A patch (diff gsmhandset.txt callrec-gsmhandset.txt) to apply on every state file, including gsmheadset.state and gsmspeakerout.state.&lt;br /&gt;
[[Image:callrec-gsmhandset-patch.txt]]&lt;br /&gt;
&lt;br /&gt;
== Userspace Sound Control Daemon ==&lt;br /&gt;
&lt;br /&gt;
The userspace sound control deamon might be a separate process or (more likely) part of some larger general hardware management daemon.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It will provide the following features:&lt;br /&gt;
&lt;br /&gt;
=== audio playback ===&lt;br /&gt;
&lt;br /&gt;
In order to provide the desired functionality, the daemon first needs to be capable of doing audio playback.&lt;br /&gt;
&lt;br /&gt;
* supported formats&lt;br /&gt;
** mp3 (libmad)&lt;br /&gt;
** ogg/vorbis (libtremor)&lt;br /&gt;
** mod (mikmod)&lt;br /&gt;
** sid (sidplay)&lt;br /&gt;
* supported functionality&lt;br /&gt;
** start and stop playback&lt;br /&gt;
** interrupt previous sound to play new sound&lt;br /&gt;
** enqueue new sound at end of previous sound&lt;br /&gt;
** smooth fade-in/fade-out&lt;br /&gt;
&lt;br /&gt;
=== audio event management ===&lt;br /&gt;
* manage a set of events (basically just a name for each event)&lt;br /&gt;
* manage a set of audio themes&lt;br /&gt;
** each theme contains list of event-&amp;gt;audio_file_name mappings&lt;br /&gt;
** themes stored/managed via gconf&lt;br /&gt;
* manage event sources&lt;br /&gt;
** built-in event sources, e.g. touchscreen/button press&lt;br /&gt;
** external event sources (e.g. gsmd, dbus, ...)&lt;br /&gt;
&lt;br /&gt;
=== audio scenario management ===&lt;br /&gt;
* e.g. dialer or even gsmd can request audio subsystem to switch to voicecall mode&lt;br /&gt;
* this mainly affects codec/amplifier analog audio routing&lt;br /&gt;
* integrated with bluetooth in case of BT headset or A2DP use&lt;br /&gt;
* How is this management performed currently?&lt;br /&gt;
&lt;br /&gt;
== Important issues/pitfalls ==&lt;br /&gt;
&lt;br /&gt;
=== Ringtone while headset playback ===&lt;br /&gt;
&lt;br /&gt;
If the user is listening to music on the headset, we want to mix the&lt;br /&gt;
ring tones only into the headset audio, as we must not interrupt and play it on the speaker. Reason: headset can't be switched off during playback via speaker, so to avoid extremely loud headset playback there must NOT be any speaker playback while headset is inserted.&lt;br /&gt;
&lt;br /&gt;
In expression: loading speakerout.state is deprecated while JACK_INSERT is asserted.&lt;br /&gt;
&lt;br /&gt;
[[Category:Neo1973 Hardware]]&lt;br /&gt;
[[Category:Audio]]&lt;/div&gt;</summary>
		<author><name>MMlosh</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Wrench</id>
		<title>Wrench</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Wrench"/>
				<updated>2009-03-15T12:10:58Z</updated>
		
		<summary type="html">&lt;p&gt;MMlosh: expanded list of capabilities: *bindings&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Steps and Tips about Wrench tool in ASU theme =&lt;br /&gt;
&lt;br /&gt;
== enlightenment_remote ==&lt;br /&gt;
Wrench probably uses utility '''enlightenment_remote'''&lt;br /&gt;
&lt;br /&gt;
This tool is able to &lt;br /&gt;
 &amp;lt;ul&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;Load, Unload and List modules &amp;amp;nbsp; &amp;amp;nbsp; ( ENABLED = AUTOSTART, module must be LOADed before doing this )&amp;lt;/li&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;Restart enlightenment, reboot OM, logout from session&amp;lt;/li&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;Manage fonts, virtual desktops, winlist and process freeze detection&amp;amp;killing&amp;lt;/li&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;Manage keybindings (Aux key for instance), signalbindigns and mousebindigs&amp;lt;/li&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;And a lot of less important (some not available on FR) functions&amp;lt;/li&amp;gt;&lt;br /&gt;
 &amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To use it from SSH you need to setup environment variable E_IPC_SOCKET. Because it points to a file, it isn't hard to locate it. Just do this:&lt;br /&gt;
&lt;br /&gt;
 ls /tmp/enlightenment-root&lt;br /&gt;
&lt;br /&gt;
'''For reply &amp;quot;disp-:0.0-2166|0&amp;quot;''' do&lt;br /&gt;
&lt;br /&gt;
 export E_IPC_SOCKET=/tmp/enlightenment-root/disp-\:0.0-2166&lt;br /&gt;
&lt;br /&gt;
{{note| Don't forget to escape colon (&amp;quot;:&amp;quot;) and remove anything after pipe (&amp;quot;¦&amp;quot;) symbol}}&lt;br /&gt;
&lt;br /&gt;
Now you should be able to use this tool from SSH connection&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Source: Enlightenment wiki page: http://wiki.enlightenment.org/index.php/Modules&lt;br /&gt;
&lt;br /&gt;
== Adding wrench to ASU theme ==&lt;br /&gt;
&lt;br /&gt;
This is already described in article [[Enlightenment .cfg]], including some binary configration files download&lt;br /&gt;
&lt;br /&gt;
[[Category:Utility Applications]]&lt;/div&gt;</summary>
		<author><name>MMlosh</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Wrench</id>
		<title>Wrench</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Wrench"/>
				<updated>2009-02-03T19:22:31Z</updated>
		
		<summary type="html">&lt;p&gt;MMlosh: /* enlightenment_remote */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Steps and Tips about Wrench tool in ASU theme =&lt;br /&gt;
&lt;br /&gt;
== enlightenment_remote ==&lt;br /&gt;
Wrench probably uses utility '''enlightenment_remote'''&lt;br /&gt;
&lt;br /&gt;
This tool is able to &lt;br /&gt;
 &amp;lt;ul&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;Load, Unload and List modules &amp;amp;nbsp; &amp;amp;nbsp; ( ENABLED = AUTOSTART, module must be LOADed before doing this )&amp;lt;/li&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;Restart enlightenment, reboot OM, logout from session&amp;lt;/li&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;Manage fonts, virtual desktops, winlist and process freeze detection&amp;amp;killing&amp;lt;/li&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;And a lot of less important (some not available on FR) functions&amp;lt;/li&amp;gt;&lt;br /&gt;
 &amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To use it from SSH you need to setup environment variable E_IPC_SOCKET. Because it points to a file, it isn't hard to locate it. Just do this:&lt;br /&gt;
&lt;br /&gt;
 ls /tmp/enlightenment-root&lt;br /&gt;
&lt;br /&gt;
'''For reply &amp;quot;disp-:0.0-2166|0&amp;quot;''' do&lt;br /&gt;
&lt;br /&gt;
 export E_IPC_SOCKET=/tmp/enlightenment-root/disp-\:0.0-2166&lt;br /&gt;
&lt;br /&gt;
{{note| Don't forget to escape colon (&amp;quot;:&amp;quot;) and remove anything after pipe (&amp;quot;¦&amp;quot;) symbol}}&lt;br /&gt;
&lt;br /&gt;
Now you should be able to use this tool from SSH connection&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Source: Enlightenment wiki page: http://wiki.enlightenment.org/index.php/Modules&lt;br /&gt;
&lt;br /&gt;
== Adding wrench to ASU theme ==&lt;br /&gt;
&lt;br /&gt;
This is already described in article [[Enlightenment .cfg]], including some binary configration files download&lt;br /&gt;
&lt;br /&gt;
[[Category:Utility Applications]]&lt;/div&gt;</summary>
		<author><name>MMlosh</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Enlightenment_.cfg</id>
		<title>Enlightenment .cfg</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Enlightenment_.cfg"/>
				<updated>2009-01-20T19:36:33Z</updated>
		
		<summary type="html">&lt;p&gt;MMlosh: Sorry, badly written&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= eet -- '''Way to change enlightenment .cfg files''' =&lt;br /&gt;
&lt;br /&gt;
== Get it ==&lt;br /&gt;
&lt;br /&gt;
NOTE: eet is development tool, so it's not present on FreeRunner (If someone has working mokomakefile, creating package with it should be great idea)&lt;br /&gt;
&lt;br /&gt;
EET can be checked out from enlightenment SVN repository by&lt;br /&gt;
 svn checkout http://svn.enlightenment.org/svn/e/trunk/eet/&lt;br /&gt;
&lt;br /&gt;
To compile and install use the usual: (I'm not sure, if there are any dependencies on other SVN libs)&lt;br /&gt;
&lt;br /&gt;
 ./autogen.sh&lt;br /&gt;
 make&lt;br /&gt;
 sudo make install&lt;br /&gt;
&lt;br /&gt;
To simplify this there is a script called easy_17.sh. It can be found at http://omicron.homeip.net/projects/  (linked directly from enlightenment wiki page at http://wiki.enlightenment.org/index.php/Edje_Editor)&lt;br /&gt;
&lt;br /&gt;
You can download this script whereever you want.. It won't create files in current directory.&lt;br /&gt;
You don't need to use sudo.. it will detect correct way of getting administrative privileges and use it..&lt;br /&gt;
&lt;br /&gt;
Launch it without arguments and see parameters.. You'll probably use something like --only=eet (not tested.. maybe there are some dependencies.. I was installing first ~20 programs to get edje editor)&lt;br /&gt;
&lt;br /&gt;
It won't add installation directory into path, so you'll need to call it &amp;quot;/opt/e17/bin/eet&amp;quot; (default)&lt;br /&gt;
&lt;br /&gt;
== Use it ==&lt;br /&gt;
&lt;br /&gt;
I've got recently this mail from enlightenment mailing list:&lt;br /&gt;
&lt;br /&gt;
you have to use &amp;quot;eet&amp;quot; command line utility, it is the tool that reads&lt;br /&gt;
.src and turns then into .cfg if you check out Makefile (and&lt;br /&gt;
Makefile.am).&lt;br /&gt;
&lt;br /&gt;
  eet -l e.cfg  # list all keys, usually just &amp;quot;config&amp;quot;&lt;br /&gt;
  eet -d e.cfg config e.src # writes human readable values to file e.src&lt;br /&gt;
  $EDITOR e.src # change whatever you like&lt;br /&gt;
  eet -e e.cfg config e.src 1  # compile human readable values to binary form and use compression&lt;br /&gt;
&lt;br /&gt;
If you find that useful and want to help, please create a wiki page&lt;br /&gt;
with your new knowledge.&lt;br /&gt;
&lt;br /&gt;
= interesting illume cfg files =&lt;br /&gt;
{{note | After any change you must delete directory /home/root/.e/e/config/asu to force configuration reload}}&lt;br /&gt;
{{warning | All your changes to illume configuration (usually not so many) will be lost}}&lt;br /&gt;
{{note | Maybe it's possible to edit directly files in you home directory, I don't know}}&lt;br /&gt;
== /usr/share/enlightenment/data/config/asu/e.cfg ==&lt;br /&gt;
&lt;br /&gt;
Add this in group 'group &amp;quot;E_Config_Gadcon&amp;quot;' after block named &amp;quot; illume-bluetooth&amp;quot; (ASU 2008.12 line 431) to enable Wrench tool (but most of configuration dialogs are not defined in .edj files..)&lt;br /&gt;
&lt;br /&gt;
      group &amp;quot;clients&amp;quot; list {&lt;br /&gt;
        group &amp;quot;E_Config_Gadcon_Client&amp;quot; struct {&lt;br /&gt;
          value &amp;quot;name&amp;quot; string: &amp;quot;illume-cfg&amp;quot;;&lt;br /&gt;
          value &amp;quot;id&amp;quot; string: &amp;quot;illume-cfg&amp;quot;;&lt;br /&gt;
          value &amp;quot;geom.pos&amp;quot; int: 0;&lt;br /&gt;
          value &amp;quot;geom.size&amp;quot; int: 32;&lt;br /&gt;
          value &amp;quot;geom.res&amp;quot; int: 472;&lt;br /&gt;
          value &amp;quot;geom.pos_x&amp;quot; double: 0.0000000000000000000000000;&lt;br /&gt;
          value &amp;quot;geom.pos_y&amp;quot; double: 0.0000000000000000000000000;&lt;br /&gt;
          value &amp;quot;geom.size_w&amp;quot; double: 0.0000000000000000000000000;&lt;br /&gt;
          value &amp;quot;geom.size_h&amp;quot; double: 0.0000000000000000000000000;&lt;br /&gt;
          value &amp;quot;state_info.seq&amp;quot; int: 1;&lt;br /&gt;
          value &amp;quot;state_info.flags&amp;quot; int: 1;&lt;br /&gt;
          value &amp;quot;style&amp;quot; string: &amp;quot;plain&amp;quot;;&lt;br /&gt;
          value &amp;quot;autoscroll&amp;quot; uchar: 0;&lt;br /&gt;
          value &amp;quot;resizable&amp;quot; uchar: 0;&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
{{note | You get working wrench icon, but color scheme is bad and layouts of some configuration dialogs are missing -&amp;gt; asu.edj needs to be updated too}}&lt;br /&gt;
&lt;br /&gt;
== /usr/share/enlightenment/data/config/asu/module.illume.cfg ==&lt;br /&gt;
&lt;br /&gt;
To switch illume from qtopia predictive keyboard to illume keyboard&lt;br /&gt;
&lt;br /&gt;
REPLACE&lt;br /&gt;
&lt;br /&gt;
  value &amp;quot;kbd.use_internal&amp;quot; int: 0;&lt;br /&gt;
  value &amp;quot;kbd.dict&amp;quot; string: &amp;quot;English_(US).dic&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
WITH&lt;br /&gt;
&lt;br /&gt;
  value &amp;quot;kbd.use_internal&amp;quot; int: 1;&lt;br /&gt;
&lt;br /&gt;
= ready to use binary configuration files =&lt;br /&gt;
&lt;br /&gt;
I am quite sure someone who really knows enlightenment will kill me if he/she looks at the source but it works&lt;br /&gt;
please back up everything before overwrtiting and purge e's cache.&lt;br /&gt;
Don't mind the name of the edj file. believe me it IS the asu theme wih working wrench and qwerty button.&lt;br /&gt;
&lt;br /&gt;
i already posted all infos needed, at the ml and i am too lazy and tired to type it again. maybe tomorrow...&lt;br /&gt;
&lt;br /&gt;
[[http://jmccloud.jm.funpic.de/asu/asu_illume.zip download]]&lt;br /&gt;
&lt;br /&gt;
the reason why the dialogs didn't work with teh default asu theme is that the dialogs were not defined in the edj/edc file.&lt;br /&gt;
this si an all in one package which has all the needed cfg files.&lt;br /&gt;
&lt;br /&gt;
feel free to chop my head of after looking at the source (and maybe because of the format of this section) -&amp;gt; would someone please improve at least the latter.&lt;br /&gt;
&lt;br /&gt;
{{note|This solution is really awful.. ASU theme should stay named ASU and keep possibility to switch between ASU and Illume.. and this does not}}&lt;br /&gt;
&lt;br /&gt;
= See also =&lt;br /&gt;
[[Themes]], [[Edje]]&lt;/div&gt;</summary>
		<author><name>MMlosh</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Enlightenment_.cfg</id>
		<title>Enlightenment .cfg</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Enlightenment_.cfg"/>
				<updated>2009-01-19T17:12:11Z</updated>
		
		<summary type="html">&lt;p&gt;MMlosh: Just commented aviable file (and doing nothing to upload my own)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= eet -- '''Way to change enlightenment .cfg files''' =&lt;br /&gt;
&lt;br /&gt;
== Get it ==&lt;br /&gt;
&lt;br /&gt;
NOTE: eet is development tool, so it's not present on FreeRunner (If someone has working mokomakefile, creating package with it should be great idea)&lt;br /&gt;
&lt;br /&gt;
EET can be checked out from enlightenment SVN repository by&lt;br /&gt;
 svn checkout http://svn.enlightenment.org/svn/e/trunk/eet/&lt;br /&gt;
&lt;br /&gt;
To compile and install use the usual: (I'm not sure, if there are any dependencies on other SVN libs)&lt;br /&gt;
&lt;br /&gt;
 ./autogen.sh&lt;br /&gt;
 make&lt;br /&gt;
 sudo make install&lt;br /&gt;
&lt;br /&gt;
To simplify this there is a script called easy_17.sh. It can be found at http://omicron.homeip.net/projects/  (linked directly from enlightenment wiki page at http://wiki.enlightenment.org/index.php/Edje_Editor)&lt;br /&gt;
&lt;br /&gt;
You can download this script whereever you want.. It won't create files in current directory.&lt;br /&gt;
You don't need to use sudo.. it will detect correct way of getting administrative privileges and use it..&lt;br /&gt;
&lt;br /&gt;
Launch it without arguments and see parameters.. You'll probably use something like --only=eet (not tested.. maybe there are some dependencies.. I was installing first ~20 programs to get edje editor)&lt;br /&gt;
&lt;br /&gt;
It won't add installation directory into path, so you'll need to call it &amp;quot;/opt/e17/bin/eet&amp;quot; (default)&lt;br /&gt;
&lt;br /&gt;
== Use it ==&lt;br /&gt;
&lt;br /&gt;
I've got recently this mail from enlightenment mailing list:&lt;br /&gt;
&lt;br /&gt;
you have to use &amp;quot;eet&amp;quot; command line utility, it is the tool that reads&lt;br /&gt;
.src and turns then into .cfg if you check out Makefile (and&lt;br /&gt;
Makefile.am).&lt;br /&gt;
&lt;br /&gt;
  eet -l e.cfg  # list all keys, usually just &amp;quot;config&amp;quot;&lt;br /&gt;
  eet -d e.cfg config e.src # writes human readable values to file e.src&lt;br /&gt;
  $EDITOR e.src # change whatever you like&lt;br /&gt;
  eet -e e.cfg config e.src 1  # compile human readable values to binary form and use compression&lt;br /&gt;
&lt;br /&gt;
If you find that useful and want to help, please create a wiki page&lt;br /&gt;
with your new knowledge.&lt;br /&gt;
&lt;br /&gt;
= interesting illume cfg files =&lt;br /&gt;
{{note | After any change you must delete directory /home/root/.e/e/config/asu to force configuration reload}}&lt;br /&gt;
{{warning | All your changes to illume configuration (usually not so many) will be lost}}&lt;br /&gt;
{{note | Maybe it's possible to edit directly files in you home directory, I don't know}}&lt;br /&gt;
== /usr/share/enlightenment/data/config/asu/e.cfg ==&lt;br /&gt;
&lt;br /&gt;
Add this in group 'group &amp;quot;E_Config_Gadcon&amp;quot;' after block named &amp;quot; illume-bluetooth&amp;quot; (ASU 2008.12 line 431) to enable Wrench tool (but most of configuration dialogs are not defined in .edj files..)&lt;br /&gt;
&lt;br /&gt;
      group &amp;quot;clients&amp;quot; list {&lt;br /&gt;
        group &amp;quot;E_Config_Gadcon_Client&amp;quot; struct {&lt;br /&gt;
          value &amp;quot;name&amp;quot; string: &amp;quot;illume-cfg&amp;quot;;&lt;br /&gt;
          value &amp;quot;id&amp;quot; string: &amp;quot;illume-cfg&amp;quot;;&lt;br /&gt;
          value &amp;quot;geom.pos&amp;quot; int: 0;&lt;br /&gt;
          value &amp;quot;geom.size&amp;quot; int: 32;&lt;br /&gt;
          value &amp;quot;geom.res&amp;quot; int: 472;&lt;br /&gt;
          value &amp;quot;geom.pos_x&amp;quot; double: 0.0000000000000000000000000;&lt;br /&gt;
          value &amp;quot;geom.pos_y&amp;quot; double: 0.0000000000000000000000000;&lt;br /&gt;
          value &amp;quot;geom.size_w&amp;quot; double: 0.0000000000000000000000000;&lt;br /&gt;
          value &amp;quot;geom.size_h&amp;quot; double: 0.0000000000000000000000000;&lt;br /&gt;
          value &amp;quot;state_info.seq&amp;quot; int: 1;&lt;br /&gt;
          value &amp;quot;state_info.flags&amp;quot; int: 1;&lt;br /&gt;
          value &amp;quot;style&amp;quot; string: &amp;quot;plain&amp;quot;;&lt;br /&gt;
          value &amp;quot;autoscroll&amp;quot; uchar: 0;&lt;br /&gt;
          value &amp;quot;resizable&amp;quot; uchar: 0;&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
{{note | You get working wrench icon, but color scheme is bad and layouts of some configuration dialogs are missing -&amp;gt; asu.edj needs to be updated too}}&lt;br /&gt;
&lt;br /&gt;
== /usr/share/enlightenment/data/config/asu/module.illume.cfg ==&lt;br /&gt;
&lt;br /&gt;
To switch illume from qtopia predictive keyboard to illume keyboard&lt;br /&gt;
&lt;br /&gt;
REPLACE&lt;br /&gt;
&lt;br /&gt;
  value &amp;quot;kbd.use_internal&amp;quot; int: 0;&lt;br /&gt;
  value &amp;quot;kbd.dict&amp;quot; string: &amp;quot;English_(US).dic&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
WITH&lt;br /&gt;
&lt;br /&gt;
  value &amp;quot;kbd.use_internal&amp;quot; int: 1;&lt;br /&gt;
&lt;br /&gt;
= ready to use binary configuration files =&lt;br /&gt;
&lt;br /&gt;
I am quite sure someone who really knows enlightenment will kill me if he/she looks at the source but it works&lt;br /&gt;
please back up everything before overwrtiting and purge e's cache.&lt;br /&gt;
Don't mind the name of the edj file. believe me it IS the asu theme wih working wrench and qwerty button.&lt;br /&gt;
&lt;br /&gt;
i already posted all infos needed, at the ml an i am too lazy and tired to type it again. maybe tomorrow...&lt;br /&gt;
&lt;br /&gt;
[[http://jmccloud.jm.funpic.de/asu/asu_illume.zip download]]&lt;br /&gt;
&lt;br /&gt;
the reason why the dialogs didn't work with teh default asu theme is that the dialogs were not defined in the edj/edc file.&lt;br /&gt;
this si an all in one package which has all the needed cfg files.&lt;br /&gt;
&lt;br /&gt;
feel free to chop my head of after looking at the source (and maybe because of the format of this section) -&amp;gt; would someone please improve at least the latter.&lt;br /&gt;
&lt;br /&gt;
{{note|This solution is really awful.. ASU theme should stay named ASU and keep possibility to switch between ASU and Illume.. and this does not}}&lt;br /&gt;
BTW: Wrench dialogs are just shifted after changes described above (there can be seen part of dialog &amp;quot;finger scrolling&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
= See also =&lt;br /&gt;
[[Themes]], [[Edje]]&lt;/div&gt;</summary>
		<author><name>MMlosh</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Wrench</id>
		<title>Wrench</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Wrench"/>
				<updated>2009-01-19T17:03:19Z</updated>
		
		<summary type="html">&lt;p&gt;MMlosh: JesusMcCloud has added some files before I was able to do it....&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Steps and Tips about Wrench tool in ASU theme =&lt;br /&gt;
&lt;br /&gt;
== enlightenment_remote ==&lt;br /&gt;
Wrench probably uses utility '''enlightenment_remote'''&lt;br /&gt;
&lt;br /&gt;
This tool is able to &lt;br /&gt;
 &amp;lt;ul&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;Load, Unload and List modules &amp;amp;nbsp; &amp;amp;nbsp; ( ENABLED = AUTOSTART, module must be LOADed before doing this )&amp;lt;/li&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;Restart enlightenment, reboot OM, logout from session&amp;lt;/li&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;Manage fonts, virtual desktops, winlist and process freeze detection&amp;amp;killing&amp;lt;/li&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;And a lot of less important (some not available on FR) functions&amp;lt;/li&amp;gt;&lt;br /&gt;
 &amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To use it from SSH you need to setup environment variable E_IPC_SOCKET. Because it points to a file, it isn't hard to locate it. Just do this:&lt;br /&gt;
&lt;br /&gt;
 ls /tmp/enlightenment-root&lt;br /&gt;
&lt;br /&gt;
'''For reply &amp;quot;disp-:0.0-2166|0&amp;quot;''' do&lt;br /&gt;
&lt;br /&gt;
{{note| Don't forget to escape colon (&amp;quot;:&amp;quot;) and remove anything after pipe (&amp;quot;|&amp;quot;) symbol}}&lt;br /&gt;
&lt;br /&gt;
 export E_IPC_SOCKET=/tmp/enlightenment-root/disp-\:0.0-2166&lt;br /&gt;
&lt;br /&gt;
Now you should be able to use this tool from SSH connection&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Source: Enlightenment wiki page: http://wiki.enlightenment.org/index.php/Modules&lt;br /&gt;
&lt;br /&gt;
== Adding wrench to ASU theme ==&lt;br /&gt;
&lt;br /&gt;
This is already described in article [[Enlightenment .cfg]], including some binary configration files download&lt;br /&gt;
&lt;br /&gt;
[[Category:Utility Applications]]&lt;/div&gt;</summary>
		<author><name>MMlosh</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-01-17T21:04:15Z</updated>
		
		<summary type="html">&lt;p&gt;MMlosh: Added note about bigger threshold in OM2008.12&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;
&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.&lt;br /&gt;
&lt;br /&gt;
[[Image:Accelerometer_orientation1.png|Axis orientation of the first accelerometer]]&lt;br /&gt;
&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.&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;
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;
&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;
I think the time structure does not need further explaination. 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.&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;
====Syncronization event codes====&lt;br /&gt;
&lt;br /&gt;
The syncronization 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 refered 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 recieved 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;
==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&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 = time1 + time2 / 1000000.0&lt;br /&gt;
&lt;br /&gt;
	if type == 2:&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 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;
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;
&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;br /&gt;
[[Category:Application Developer]]&lt;/div&gt;</summary>
		<author><name>MMlosh</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Wrench</id>
		<title>Wrench</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Wrench"/>
				<updated>2009-01-09T16:17:35Z</updated>
		
		<summary type="html">&lt;p&gt;MMlosh: Added link to enlightenment wiki source&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Steps and Tips about Wrench tool in ASU theme =&lt;br /&gt;
&lt;br /&gt;
== enlightenment_remote ==&lt;br /&gt;
Wrench probably uses utility '''enlightenment_remote'''&lt;br /&gt;
&lt;br /&gt;
This tool is able to &lt;br /&gt;
 &amp;lt;ul&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;Load, Unload and List modules &amp;amp;nbsp; &amp;amp;nbsp; ( ENABLED = AUTOSTART, module must be LOADed before doing this )&amp;lt;/li&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;Restart enlightenment, reboot OM, logout from session&amp;lt;/li&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;Manage fonts, virtual desktops, winlist and process freeze detection&amp;amp;killing&amp;lt;/li&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;And a lot of less important (some not available on FR) functions&amp;lt;/li&amp;gt;&lt;br /&gt;
 &amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To use it from SSH you need to setup environment variable E_IPC_SOCKET. Because it points to a file, it isn't hard to locate it. Just do this:&lt;br /&gt;
&lt;br /&gt;
 ls /tmp/enlightenment-root&lt;br /&gt;
&lt;br /&gt;
'''For reply &amp;quot;disp-:0.0-2166|0&amp;quot;''' do&lt;br /&gt;
&lt;br /&gt;
{{note| Don't forget to escape colon (&amp;quot;:&amp;quot;) and remove anything after pipe (&amp;quot;|&amp;quot;) symbol}}&lt;br /&gt;
&lt;br /&gt;
 export E_IPC_SOCKET=/tmp/enlightenment-root/disp-\:0.0-2166&lt;br /&gt;
&lt;br /&gt;
Now you should be able to use this tool from SSH connection&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Source: Enlightenment wiki page: http://wiki.enlightenment.org/index.php/Modules&lt;br /&gt;
&lt;br /&gt;
== Adding wrench to ASU theme ==&lt;br /&gt;
&lt;br /&gt;
This is already described in article [[Enlightenment .cfg]], including (planned) binary configration files download&lt;br /&gt;
&lt;br /&gt;
[[Category:Utility Applications]]&lt;/div&gt;</summary>
		<author><name>MMlosh</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Enlightenment_.cfg</id>
		<title>Enlightenment .cfg</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Enlightenment_.cfg"/>
				<updated>2009-01-09T16:13:58Z</updated>
		
		<summary type="html">&lt;p&gt;MMlosh: Added section &amp;quot;how to get it&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= eet -- '''Way to change enlightenment .cfg files''' =&lt;br /&gt;
&lt;br /&gt;
== Get it ==&lt;br /&gt;
&lt;br /&gt;
NOTE: eet is development tool, so it's not present on FreeRunner (If someone has working mokomakefile, creating package with it should be great idea)&lt;br /&gt;
&lt;br /&gt;
EET can be checked out from enlightenment SVN repository by&lt;br /&gt;
 svn checkout http://svn.enlightenment.org/svn/e/trunk/eet/&lt;br /&gt;
&lt;br /&gt;
To compile and install use the usual: (I'm not sure, if there are any dependencies on other SVN libs)&lt;br /&gt;
&lt;br /&gt;
 ./autogen.sh&lt;br /&gt;
 make&lt;br /&gt;
 sudo make install&lt;br /&gt;
&lt;br /&gt;
To simplify this there is a script called easy_17.sh. It can be found at http://omicron.homeip.net/projects/  (linked directly from enlightenment wiki page at http://wiki.enlightenment.org/index.php/Edje_Editor)&lt;br /&gt;
&lt;br /&gt;
You can download this script whereever you want.. It won't create files in current directory.&lt;br /&gt;
You don't need to use sudo.. it will detect correct way of getting administrative privileges and use it..&lt;br /&gt;
&lt;br /&gt;
Launch it without arguments and see parameters.. You'll probably use something like --only=eet (not tested.. maybe there are some dependencies.. I was installing first ~20 programs to get edje editor)&lt;br /&gt;
&lt;br /&gt;
It won't add installation directory into path, so you'll need to call it &amp;quot;/opt/e17/bin/eet&amp;quot; (default)&lt;br /&gt;
&lt;br /&gt;
== Use it ==&lt;br /&gt;
&lt;br /&gt;
I've got recently this mail from enlightenment mailing list:&lt;br /&gt;
&lt;br /&gt;
you have to use &amp;quot;eet&amp;quot; command line utility, it is the tool that reads&lt;br /&gt;
.src and turns then into .cfg if you check out Makefile (and&lt;br /&gt;
Makefile.am).&lt;br /&gt;
&lt;br /&gt;
  eet -l e.cfg  # list all keys, usually just &amp;quot;config&amp;quot;&lt;br /&gt;
  eet -d e.cfg config e.src # writes human readable values to file e.src&lt;br /&gt;
  $EDITOR e.src # change whatever you like&lt;br /&gt;
  eet -e e.cfg config e.src 1  # compile human readable values to binary form and use compression&lt;br /&gt;
&lt;br /&gt;
If you find that useful and want to help, please create a wiki page&lt;br /&gt;
with your new knowledge.&lt;br /&gt;
&lt;br /&gt;
= interesting illume cfg files =&lt;br /&gt;
{{note | After any change you must delete directory /home/root/.e/e/config/asu to force configuration reload}}&lt;br /&gt;
{{warning | All your changes to illume configuration (usually not so many) will be lost}}&lt;br /&gt;
{{note | Maybe it's possible to edit directly files in you home directory, I don't know}}&lt;br /&gt;
== /usr/share/enlightenment/data/config/asu/e.cfg ==&lt;br /&gt;
&lt;br /&gt;
Add this in group 'group &amp;quot;E_Config_Gadcon&amp;quot;' after block named &amp;quot; illume-bluetooth&amp;quot; (ASU 2008.12 line 431) to enable Wrench tool (but most of configuration dialogs are not defined in .edj files..)&lt;br /&gt;
&lt;br /&gt;
      group &amp;quot;clients&amp;quot; list {&lt;br /&gt;
        group &amp;quot;E_Config_Gadcon_Client&amp;quot; struct {&lt;br /&gt;
          value &amp;quot;name&amp;quot; string: &amp;quot;illume-cfg&amp;quot;;&lt;br /&gt;
          value &amp;quot;id&amp;quot; string: &amp;quot;illume-cfg&amp;quot;;&lt;br /&gt;
          value &amp;quot;geom.pos&amp;quot; int: 0;&lt;br /&gt;
          value &amp;quot;geom.size&amp;quot; int: 32;&lt;br /&gt;
          value &amp;quot;geom.res&amp;quot; int: 472;&lt;br /&gt;
          value &amp;quot;geom.pos_x&amp;quot; double: 0.0000000000000000000000000;&lt;br /&gt;
          value &amp;quot;geom.pos_y&amp;quot; double: 0.0000000000000000000000000;&lt;br /&gt;
          value &amp;quot;geom.size_w&amp;quot; double: 0.0000000000000000000000000;&lt;br /&gt;
          value &amp;quot;geom.size_h&amp;quot; double: 0.0000000000000000000000000;&lt;br /&gt;
          value &amp;quot;state_info.seq&amp;quot; int: 1;&lt;br /&gt;
          value &amp;quot;state_info.flags&amp;quot; int: 1;&lt;br /&gt;
          value &amp;quot;style&amp;quot; string: &amp;quot;plain&amp;quot;;&lt;br /&gt;
          value &amp;quot;autoscroll&amp;quot; uchar: 0;&lt;br /&gt;
          value &amp;quot;resizable&amp;quot; uchar: 0;&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
{{note | You get working wrench icon, but color scheme is bad and layouts of some configuration dialogs are missing -&amp;gt; asu.edj needs to be updated too}}&lt;br /&gt;
&lt;br /&gt;
== /usr/share/enlightenment/data/config/asu/module.illume.cfg ==&lt;br /&gt;
&lt;br /&gt;
To switch illume from qtopia predictive keyboard to illume keyboard&lt;br /&gt;
&lt;br /&gt;
REPLACE&lt;br /&gt;
&lt;br /&gt;
  value &amp;quot;kbd.use_internal&amp;quot; int: 0;&lt;br /&gt;
  value &amp;quot;kbd.dict&amp;quot; string: &amp;quot;English_(US).dic&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
WITH&lt;br /&gt;
&lt;br /&gt;
  value &amp;quot;kbd.use_internal&amp;quot; int: 1;&lt;br /&gt;
&lt;br /&gt;
= ready to use binary configuration files =&lt;br /&gt;
&lt;br /&gt;
(not created / uploaded yet...)&lt;/div&gt;</summary>
		<author><name>MMlosh</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Enlightenment_.cfg</id>
		<title>Enlightenment .cfg</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Enlightenment_.cfg"/>
				<updated>2009-01-09T15:12:44Z</updated>
		
		<summary type="html">&lt;p&gt;MMlosh: added one small note, that there are no binaries yet&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= eet -- '''Way to change enlightenment .cfg files''' =&lt;br /&gt;
&lt;br /&gt;
== Get it ==&lt;br /&gt;
&lt;br /&gt;
NOTE: eet is development tool, so it's not present on FreeRunner (If someone has working mokomakefile, creating package with it should be great idea)&lt;br /&gt;
&lt;br /&gt;
(Comming soon............)&lt;br /&gt;
&lt;br /&gt;
== Use it ==&lt;br /&gt;
&lt;br /&gt;
I've got recently this mail from enlightenment mailing list:&lt;br /&gt;
&lt;br /&gt;
you have to use &amp;quot;eet&amp;quot; command line utility, it is the tool that reads&lt;br /&gt;
.src and turns then into .cfg if you check out Makefile (and&lt;br /&gt;
Makefile.am).&lt;br /&gt;
&lt;br /&gt;
  eet -l e.cfg  # list all keys, usually just &amp;quot;config&amp;quot;&lt;br /&gt;
  eet -d e.cfg config e.src # writes human readable values to file e.src&lt;br /&gt;
  $EDITOR e.src # change whatever you like&lt;br /&gt;
  eet -e e.cfg config e.src 1  # compile human readable values to binary form and use compression&lt;br /&gt;
&lt;br /&gt;
If you find that useful and want to help, please create a wiki page&lt;br /&gt;
with your new knowledge.&lt;br /&gt;
&lt;br /&gt;
= interesting illume cfg files =&lt;br /&gt;
{{note | After any change you must delete directory /home/root/.e/e/config/asu to force configuration reload}}&lt;br /&gt;
{{warning | All your changes to illume configuration (usually not so many) will be lost}}&lt;br /&gt;
{{note | Maybe it's possible to edit directly files in you home directory, I don't know}}&lt;br /&gt;
== /usr/share/enlightenment/data/config/asu/e.cfg ==&lt;br /&gt;
&lt;br /&gt;
Add this in group 'group &amp;quot;E_Config_Gadcon&amp;quot;' after block named &amp;quot; illume-bluetooth&amp;quot; (ASU 2008.12 line 431) to enable Wrench tool (but most of configuration dialogs are not defined in .edj files..)&lt;br /&gt;
&lt;br /&gt;
      group &amp;quot;clients&amp;quot; list {&lt;br /&gt;
        group &amp;quot;E_Config_Gadcon_Client&amp;quot; struct {&lt;br /&gt;
          value &amp;quot;name&amp;quot; string: &amp;quot;illume-cfg&amp;quot;;&lt;br /&gt;
          value &amp;quot;id&amp;quot; string: &amp;quot;illume-cfg&amp;quot;;&lt;br /&gt;
          value &amp;quot;geom.pos&amp;quot; int: 0;&lt;br /&gt;
          value &amp;quot;geom.size&amp;quot; int: 32;&lt;br /&gt;
          value &amp;quot;geom.res&amp;quot; int: 472;&lt;br /&gt;
          value &amp;quot;geom.pos_x&amp;quot; double: 0.0000000000000000000000000;&lt;br /&gt;
          value &amp;quot;geom.pos_y&amp;quot; double: 0.0000000000000000000000000;&lt;br /&gt;
          value &amp;quot;geom.size_w&amp;quot; double: 0.0000000000000000000000000;&lt;br /&gt;
          value &amp;quot;geom.size_h&amp;quot; double: 0.0000000000000000000000000;&lt;br /&gt;
          value &amp;quot;state_info.seq&amp;quot; int: 1;&lt;br /&gt;
          value &amp;quot;state_info.flags&amp;quot; int: 1;&lt;br /&gt;
          value &amp;quot;style&amp;quot; string: &amp;quot;plain&amp;quot;;&lt;br /&gt;
          value &amp;quot;autoscroll&amp;quot; uchar: 0;&lt;br /&gt;
          value &amp;quot;resizable&amp;quot; uchar: 0;&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
{{note | You get working wrench icon, but color scheme is bad and layouts of some configuration dialogs are missing -&amp;gt; asu.edj needs to be updated too}}&lt;br /&gt;
&lt;br /&gt;
== /usr/share/enlightenment/data/config/asu/module.illume.cfg ==&lt;br /&gt;
&lt;br /&gt;
To switch illume from qtopia predictive keyboard to illume keyboard&lt;br /&gt;
&lt;br /&gt;
REPLACE&lt;br /&gt;
&lt;br /&gt;
  value &amp;quot;kbd.use_internal&amp;quot; int: 0;&lt;br /&gt;
  value &amp;quot;kbd.dict&amp;quot; string: &amp;quot;English_(US).dic&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
WITH&lt;br /&gt;
&lt;br /&gt;
  value &amp;quot;kbd.use_internal&amp;quot; int: 1;&lt;br /&gt;
&lt;br /&gt;
= ready to use binary configuration files =&lt;br /&gt;
&lt;br /&gt;
(not created / uploaded yet...)&lt;/div&gt;</summary>
		<author><name>MMlosh</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Keyboard_Toggle</id>
		<title>Keyboard Toggle</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Keyboard_Toggle"/>
				<updated>2009-01-07T21:12:48Z</updated>
		
		<summary type="html">&lt;p&gt;MMlosh: Added note, that it's still possible in 2008.12 ASU theme&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|Keyboard Toggle}}&lt;br /&gt;
The [[Om 2008.8]] and [[Om 2007.2]] Openmoko [[distributions]] have been designed to bring up an on-screen keyboard which supplies keystroke information to applications.  However, this requires the cooperation of the application, which is a problem for software designed with another X11 based phone stack in mind, or software which has been quickly ported from Linux desktop systems, because it will never bring up a keyboard for (possibly important) keystroke information.  It is also possible that the keyboard could be brought or remain up by accident when you don't want it there, or even software specifically designed with this functionality in mind may occasionally fail or become confused when an on screen keyboard is supposed to be available.&lt;br /&gt;
&lt;br /&gt;
See [[Om2008.8 Keyboard]] for details of the Om 2008.8 keyboard's usage.&lt;br /&gt;
&lt;br /&gt;
== Alternatives ==&lt;br /&gt;
Alternatively, you can try connecting a [[Manually_using_Bluetooth#Being_able_to_use_HID_devices|bluetooth keyboard]] or USB keyboard (Only available with a special cable, or an extra special cable in the case of the older unpowered USB units.)&lt;br /&gt;
&lt;br /&gt;
== Reactivating the keyboard toggle under Om 2008.8 ==&lt;br /&gt;
For advanced users using the [[Om 2008.8]] [[Distributions|distribution]], it may be worth your while to change the E17 theme information which prevents the 'qwerty' link in the upper left from showing.&lt;br /&gt;
&lt;br /&gt;
=== On the phone ===&lt;br /&gt;
&lt;br /&gt;
==== Method 1 ====&lt;br /&gt;
&lt;br /&gt;
Simply install the illume-config theme:&lt;br /&gt;
&lt;br /&gt;
opkg install illume-config&lt;br /&gt;
&lt;br /&gt;
Attention: With a Om2008.8 you have then the qpe bug [http://docs.openmoko.org/trac/ticket/1691]. The 'new' Om2008.9-gta02-20081117.rootfs.tar.gz did not have this bug, so a &lt;br /&gt;
 tar -zxf /media/mmcblk0p2/ in / &lt;br /&gt;
&lt;br /&gt;
fix the bug, but then your settings are restored.&lt;br /&gt;
&lt;br /&gt;
==== Method 2 ====&lt;br /&gt;
Install the tools required to decompile and recompile E17 theme code.&lt;br /&gt;
&lt;br /&gt;
 opkg install libevas-saver-png edje-utils cpp cpp-symlinks libembryo-tests&lt;br /&gt;
&lt;br /&gt;
Decompile the theme, and edit the edc file&lt;br /&gt;
&lt;br /&gt;
 cd /usr/share/enlightenment/data/themes&lt;br /&gt;
 edje_decc illume.edj&lt;br /&gt;
 cd illume&lt;br /&gt;
 vi freerunner.edc&lt;br /&gt;
&lt;br /&gt;
Search for the text 'qwerty'.  This should take you to the section which defines the small 'qwerty' button in the upper left.&lt;br /&gt;
&lt;br /&gt;
* Under 'part { name: &amp;quot;kbd&amp;quot;;' change 'visible 0;' to 'visible 1;', and change 'relative: 0.0 1.0; ' to 'relative: 1.0 1.0; '&lt;br /&gt;
* Under 'part { name: &amp;quot;kbdtext&amp;quot;;' change 'visible 0;' to 'visible 1;'&lt;br /&gt;
&lt;br /&gt;
And then recompile the .edj&lt;br /&gt;
&lt;br /&gt;
 sh build.sh&lt;br /&gt;
 mv illume.edj ../illume.edj&lt;br /&gt;
&lt;br /&gt;
And finally restart X to take new theme in use&lt;br /&gt;
 /etc/init.d/xserver-nodm restart&lt;br /&gt;
&lt;br /&gt;
=== Building a custom package ===&lt;br /&gt;
If that doesn't work, follow the instructions on [[Mokomakefile|building Om 2008.8 from source]].  Unpack the source for the package 'illume-theme', edit its edc file using the same method described above, and then finish building the ipk.  You should be able to install this ipk, overiding the previous configuration.&lt;br /&gt;
&lt;br /&gt;
=== Upgrading ===&lt;br /&gt;
If you upgrade, such as with opkg upgrade, you may have to perform the modification again.&lt;br /&gt;
&lt;br /&gt;
=== In base-image (testing) ===&lt;br /&gt;
&lt;br /&gt;
The openmoko-base-image installs both ''illume'' and ''asu'' themes. You can change theme by editing E's profile. To get QWERTY and the wrench back in base-image, you have use the ''illume'' theme. So there are 3 steps to do:&lt;br /&gt;
&lt;br /&gt;
  sed -i -e s,asu,illume, /etc/enlightenment/default_profile&lt;br /&gt;
  restart X&lt;br /&gt;
  waiting for few seconds&lt;br /&gt;
&lt;br /&gt;
[http://lists.openmoko.org/pipermail/devel/2008-September/001758.html Reference]&lt;br /&gt;
&lt;br /&gt;
{{note | this is not necessary, see page [[Enlightenment .cfg]], it will guide you to get Wrench &amp;amp; QWERTY button &amp;amp; Illume/Raster's keyboard in ASU theme}}&lt;br /&gt;
&lt;br /&gt;
=== Englightments segfaults with Illume theme too often? ===&lt;br /&gt;
&lt;br /&gt;
If after switching to ''illume'' theme, you experience plentiful of WDOD (white dialog of death) stating that you should recompile and gdb the Enlightenment, you have two choices:&lt;br /&gt;
&lt;br /&gt;
# Disable 'Dropshadow' module (go to illume config (Wrench) -&amp;gt; Modules). It still might segfault at some places but now phone becomes usable with illume theme&lt;br /&gt;
# Switch to ''software_x'' from ''software_16'' (same illume config (Wrench) -&amp;gt; Engine). The side-effect is general slow down of graphics performance&lt;br /&gt;
&lt;br /&gt;
Relevant bug reports: [http://docs.openmoko.org/trac/ticket/1767 1767]&lt;br /&gt;
&lt;br /&gt;
[[Category:Application Developer]]&lt;/div&gt;</summary>
		<author><name>MMlosh</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Enlightenment_.cfg</id>
		<title>Enlightenment .cfg</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Enlightenment_.cfg"/>
				<updated>2009-01-07T21:03:15Z</updated>
		
		<summary type="html">&lt;p&gt;MMlosh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= eet -- '''Way to change enlightenment .cfg files''' =&lt;br /&gt;
&lt;br /&gt;
== Get it ==&lt;br /&gt;
&lt;br /&gt;
(Comming soon............)&lt;br /&gt;
&lt;br /&gt;
== Use it ==&lt;br /&gt;
&lt;br /&gt;
I've got recently this mail from enlightenment mailing list:&lt;br /&gt;
&lt;br /&gt;
you have to use &amp;quot;eet&amp;quot; command line utility, it is the tool that reads&lt;br /&gt;
.src and turns then into .cfg if you check out Makefile (and&lt;br /&gt;
Makefile.am).&lt;br /&gt;
&lt;br /&gt;
  eet -l e.cfg  # list all keys, usually just &amp;quot;config&amp;quot;&lt;br /&gt;
  eet -d e.cfg config e.src # writes human readable values to file e.src&lt;br /&gt;
  $EDITOR e.src # change whatever you like&lt;br /&gt;
  eet -e e.cfg config e.src 1  # compile human readable values to binary form and use compression&lt;br /&gt;
&lt;br /&gt;
If you find that useful and want to help, please create a wiki page&lt;br /&gt;
with your new knowledge.&lt;br /&gt;
&lt;br /&gt;
= interesting illume cfg files =&lt;br /&gt;
{{note | After any change you must delete directory /home/root/.e/e/config/asu to force configuration reload}}&lt;br /&gt;
{{warning | All your changes to illume configuration (usually not so many) will be lost}}&lt;br /&gt;
{{note | Maybe it's possible to edit directly files in you home directory, I don't know}}&lt;br /&gt;
== /usr/share/enlightenment/data/config/asu/e.cfg ==&lt;br /&gt;
&lt;br /&gt;
Add this in group 'group &amp;quot;E_Config_Gadcon&amp;quot;' after block named &amp;quot; illume-bluetooth&amp;quot; (ASU 2008.12 line 431) to enable Wrench tool (but most of configuration dialogs are not defined in .edj files..)&lt;br /&gt;
&lt;br /&gt;
      group &amp;quot;clients&amp;quot; list {&lt;br /&gt;
        group &amp;quot;E_Config_Gadcon_Client&amp;quot; struct {&lt;br /&gt;
          value &amp;quot;name&amp;quot; string: &amp;quot;illume-cfg&amp;quot;;&lt;br /&gt;
          value &amp;quot;id&amp;quot; string: &amp;quot;illume-cfg&amp;quot;;&lt;br /&gt;
          value &amp;quot;geom.pos&amp;quot; int: 0;&lt;br /&gt;
          value &amp;quot;geom.size&amp;quot; int: 32;&lt;br /&gt;
          value &amp;quot;geom.res&amp;quot; int: 472;&lt;br /&gt;
          value &amp;quot;geom.pos_x&amp;quot; double: 0.0000000000000000000000000;&lt;br /&gt;
          value &amp;quot;geom.pos_y&amp;quot; double: 0.0000000000000000000000000;&lt;br /&gt;
          value &amp;quot;geom.size_w&amp;quot; double: 0.0000000000000000000000000;&lt;br /&gt;
          value &amp;quot;geom.size_h&amp;quot; double: 0.0000000000000000000000000;&lt;br /&gt;
          value &amp;quot;state_info.seq&amp;quot; int: 1;&lt;br /&gt;
          value &amp;quot;state_info.flags&amp;quot; int: 1;&lt;br /&gt;
          value &amp;quot;style&amp;quot; string: &amp;quot;plain&amp;quot;;&lt;br /&gt;
          value &amp;quot;autoscroll&amp;quot; uchar: 0;&lt;br /&gt;
          value &amp;quot;resizable&amp;quot; uchar: 0;&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
{{note | You get working wrench icon, but color scheme is bad and layouts of some configuration dialogs are missing -&amp;gt; asu.edj needs to be updated too}}&lt;br /&gt;
&lt;br /&gt;
== /usr/share/enlightenment/data/config/asu/module.illume.cfg ==&lt;br /&gt;
&lt;br /&gt;
To switch illume from qtopia predictive keyboard to illume keyboard&lt;br /&gt;
&lt;br /&gt;
REPLACE&lt;br /&gt;
&lt;br /&gt;
  value &amp;quot;kbd.use_internal&amp;quot; int: 0;&lt;br /&gt;
  value &amp;quot;kbd.dict&amp;quot; string: &amp;quot;English_(US).dic&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
WITH&lt;br /&gt;
&lt;br /&gt;
  value &amp;quot;kbd.use_internal&amp;quot; int: 1;&lt;br /&gt;
&lt;br /&gt;
= ready to use binary configuration files =&lt;br /&gt;
&lt;br /&gt;
(not created / uploaded yet...)&lt;/div&gt;</summary>
		<author><name>MMlosh</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Enlightenment_.cfg</id>
		<title>Enlightenment .cfg</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Enlightenment_.cfg"/>
				<updated>2009-01-07T14:44:38Z</updated>
		
		<summary type="html">&lt;p&gt;MMlosh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= eet -- '''Way to change enlightenment .cfg files''' =&lt;br /&gt;
&lt;br /&gt;
I've got recently this mail from enlightenment mailing list:&lt;br /&gt;
&lt;br /&gt;
you have to use &amp;quot;eet&amp;quot; command line utility, it is the tool that reads&lt;br /&gt;
.src and turns then into .cfg if you check out Makefile (and&lt;br /&gt;
Makefile.am).&lt;br /&gt;
&lt;br /&gt;
  eet -l e.cfg  # list all keys, usually just &amp;quot;config&amp;quot;&lt;br /&gt;
  eet -d e.cfg config e.src # writes human readable values to file e.src&lt;br /&gt;
  $EDITOR e.src # change whatever you like&lt;br /&gt;
  eet -e e.cfg config e.src 1  # compile human readable values to binary form and use compression&lt;br /&gt;
&lt;br /&gt;
If you find that useful and want to help, please create a wiki page&lt;br /&gt;
with your new knowledge.&lt;br /&gt;
&lt;br /&gt;
= interesting illume cfg files =&lt;br /&gt;
{{note | After any change you must delete directory /home/root/.e/e/config/asu to force configuration reload}}&lt;br /&gt;
{{warning | All your changes to illume configuration (usually not so many) will be lost}}&lt;br /&gt;
{{note | Maybe it's possible to edit directly files in you home directory, I don't know}}&lt;br /&gt;
== /usr/share/enlightenment/data/config/asu/e.cfg ==&lt;br /&gt;
&lt;br /&gt;
Add this in group 'group &amp;quot;E_Config_Gadcon&amp;quot;' after block named &amp;quot; illume-bluetooth&amp;quot; (ASU 2008.12 line 431) to enable Wrench tool (but most of configuration dialogs are not defined in .edj files..)&lt;br /&gt;
&lt;br /&gt;
      group &amp;quot;clients&amp;quot; list {&lt;br /&gt;
        group &amp;quot;E_Config_Gadcon_Client&amp;quot; struct {&lt;br /&gt;
          value &amp;quot;name&amp;quot; string: &amp;quot;illume-cfg&amp;quot;;&lt;br /&gt;
          value &amp;quot;id&amp;quot; string: &amp;quot;illume-cfg&amp;quot;;&lt;br /&gt;
          value &amp;quot;geom.pos&amp;quot; int: 0;&lt;br /&gt;
          value &amp;quot;geom.size&amp;quot; int: 32;&lt;br /&gt;
          value &amp;quot;geom.res&amp;quot; int: 472;&lt;br /&gt;
          value &amp;quot;geom.pos_x&amp;quot; double: 0.0000000000000000000000000;&lt;br /&gt;
          value &amp;quot;geom.pos_y&amp;quot; double: 0.0000000000000000000000000;&lt;br /&gt;
          value &amp;quot;geom.size_w&amp;quot; double: 0.0000000000000000000000000;&lt;br /&gt;
          value &amp;quot;geom.size_h&amp;quot; double: 0.0000000000000000000000000;&lt;br /&gt;
          value &amp;quot;state_info.seq&amp;quot; int: 1;&lt;br /&gt;
          value &amp;quot;state_info.flags&amp;quot; int: 1;&lt;br /&gt;
          value &amp;quot;style&amp;quot; string: &amp;quot;plain&amp;quot;;&lt;br /&gt;
          value &amp;quot;autoscroll&amp;quot; uchar: 0;&lt;br /&gt;
          value &amp;quot;resizable&amp;quot; uchar: 0;&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
{{note | You get working wrench icon, but color scheme is bad and layouts of some configuration dialogs are missing -&amp;gt; asu.edj needs to be updated too}}&lt;br /&gt;
&lt;br /&gt;
== /usr/share/enlightenment/data/config/asu/module.illume.cfg ==&lt;br /&gt;
&lt;br /&gt;
To switch illume from qtopia predictive keyboard to illume keyboard&lt;br /&gt;
&lt;br /&gt;
REPLACE&lt;br /&gt;
&lt;br /&gt;
  value &amp;quot;kbd.use_internal&amp;quot; int: 0;&lt;br /&gt;
  value &amp;quot;kbd.dict&amp;quot; string: &amp;quot;English_(US).dic&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
WITH&lt;br /&gt;
&lt;br /&gt;
  value &amp;quot;kbd.use_internal&amp;quot; int: 1;&lt;br /&gt;
&lt;br /&gt;
= ready to use binary configuration files =&lt;br /&gt;
&lt;br /&gt;
(not created / uploaded yet...)&lt;/div&gt;</summary>
		<author><name>MMlosh</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Wrench</id>
		<title>Wrench</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Wrench"/>
				<updated>2009-01-07T14:34:12Z</updated>
		
		<summary type="html">&lt;p&gt;MMlosh: /* Adding wrench to ASU theme */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Steps and Tips about Wrench tool in ASU theme =&lt;br /&gt;
&lt;br /&gt;
== enlightenment_remote ==&lt;br /&gt;
Wrench probably used utility '''enlightenment_remote'''&lt;br /&gt;
&lt;br /&gt;
This tool is able to &lt;br /&gt;
 &amp;lt;ul&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;Load, Unload and List modules &amp;amp;nbsp; &amp;amp;nbsp; ( ENABLED = AUTOSTART, module must be LOADed before doing this )&amp;lt;/li&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;Restart enlightenment, reboot OM, logout from session&amp;lt;/li&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;Manage fonts, virtual desktops, winlist and process freeze detection&amp;amp;killing&amp;lt;/li&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;And a lot of less important (some not available on FR) functions&amp;lt;/li&amp;gt;&lt;br /&gt;
 &amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To use it from SSH you need to setup environment variable E_IPC_SOCKET. Because it points to a file, it isn't hard to locate it. Just do this:&lt;br /&gt;
&lt;br /&gt;
 ls /tmp/enlightenment-root&lt;br /&gt;
&lt;br /&gt;
'''For reply &amp;quot;disp-:0.0-2166|0&amp;quot;''' do&lt;br /&gt;
&lt;br /&gt;
{{note| Don't forget to escape colon (&amp;quot;:&amp;quot;) and remove anything after pipe (&amp;quot;|&amp;quot;) symbol}}&lt;br /&gt;
&lt;br /&gt;
 export E_IPC_SOCKET=/tmp/enlightenment-root/disp-\:0.0-2166&lt;br /&gt;
&lt;br /&gt;
Now you should be able to use this tool from SSH connection&lt;br /&gt;
&lt;br /&gt;
== Adding wrench to ASU theme ==&lt;br /&gt;
&lt;br /&gt;
This is already described in article [[Enlightenment .cfg]], including (planned) binary configration files download&lt;br /&gt;
&lt;br /&gt;
[[Category:Utility Applications]]&lt;/div&gt;</summary>
		<author><name>MMlosh</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Enlightenment_.cfg</id>
		<title>Enlightenment .cfg</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Enlightenment_.cfg"/>
				<updated>2009-01-07T14:26:16Z</updated>
		
		<summary type="html">&lt;p&gt;MMlosh: /* /usr/share/enlightenment/data/config/asu/module.illume.cfg */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= eet -- '''Way to change enlightenment .cfg files''' =&lt;br /&gt;
&lt;br /&gt;
I've got recently this mail from enlightenment mailing list:&lt;br /&gt;
&lt;br /&gt;
you have to use &amp;quot;eet&amp;quot; command line utility, it is the tool that reads&lt;br /&gt;
.src and turns then into .cfg if you check out Makefile (and&lt;br /&gt;
Makefile.am).&lt;br /&gt;
&lt;br /&gt;
  eet -l e.cfg  # list all keys, usually just &amp;quot;config&amp;quot;&lt;br /&gt;
  eet -d e.cfg config e.src # writes human readable values to file e.src&lt;br /&gt;
  $EDITOR e.src # change whatever you like&lt;br /&gt;
  eet -e e.cfg config e.src 1  # compile human readable values to binary form and use compression&lt;br /&gt;
&lt;br /&gt;
If you find that useful and want to help, please create a wiki page&lt;br /&gt;
with your new knowledge.&lt;br /&gt;
&lt;br /&gt;
= interesting illume cfg files =&lt;br /&gt;
{{note | After any change you must delete directory /home/root/.e/e/config/asu to force configuration reload}}&lt;br /&gt;
{{warning | All your changes to illume configuration (usually not so many) will be lost}}&lt;br /&gt;
{{note | Maybe it's possible to edit directly files in you home directory, I don't know}}&lt;br /&gt;
== /usr/share/enlightenment/data/config/asu/e.cfg ==&lt;br /&gt;
&lt;br /&gt;
Add this in group 'group &amp;quot;E_Config_Gadcon&amp;quot;' after block named &amp;quot; illume-bluetooth&amp;quot; (ASU 2008.12 line 431) to enable Wrench tool (but most of configuration dialogs are not defined in .edj files..)&lt;br /&gt;
&lt;br /&gt;
      group &amp;quot;clients&amp;quot; list {&lt;br /&gt;
        group &amp;quot;E_Config_Gadcon_Client&amp;quot; struct {&lt;br /&gt;
          value &amp;quot;name&amp;quot; string: &amp;quot;illume-cfg&amp;quot;;&lt;br /&gt;
          value &amp;quot;id&amp;quot; string: &amp;quot;illume-cfg&amp;quot;;&lt;br /&gt;
          value &amp;quot;geom.pos&amp;quot; int: 0;&lt;br /&gt;
          value &amp;quot;geom.size&amp;quot; int: 32;&lt;br /&gt;
          value &amp;quot;geom.res&amp;quot; int: 472;&lt;br /&gt;
          value &amp;quot;geom.pos_x&amp;quot; double: 0.0000000000000000000000000;&lt;br /&gt;
          value &amp;quot;geom.pos_y&amp;quot; double: 0.0000000000000000000000000;&lt;br /&gt;
          value &amp;quot;geom.size_w&amp;quot; double: 0.0000000000000000000000000;&lt;br /&gt;
          value &amp;quot;geom.size_h&amp;quot; double: 0.0000000000000000000000000;&lt;br /&gt;
          value &amp;quot;state_info.seq&amp;quot; int: 1;&lt;br /&gt;
          value &amp;quot;state_info.flags&amp;quot; int: 1;&lt;br /&gt;
          value &amp;quot;style&amp;quot; string: &amp;quot;plain&amp;quot;;&lt;br /&gt;
          value &amp;quot;autoscroll&amp;quot; uchar: 0;&lt;br /&gt;
          value &amp;quot;resizable&amp;quot; uchar: 0;&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
== /usr/share/enlightenment/data/config/asu/module.illume.cfg ==&lt;br /&gt;
&lt;br /&gt;
To switch illume from qtopia predictive keyboard to illume keyboard&lt;br /&gt;
&lt;br /&gt;
REPLACE&lt;br /&gt;
&lt;br /&gt;
  value &amp;quot;kbd.use_internal&amp;quot; int: 0;&lt;br /&gt;
  value &amp;quot;kbd.dict&amp;quot; string: &amp;quot;English_(US).dic&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
WITH&lt;br /&gt;
&lt;br /&gt;
  value &amp;quot;kbd.use_internal&amp;quot; int: 1;&lt;br /&gt;
&lt;br /&gt;
= ready to use binary configuration files =&lt;br /&gt;
&lt;br /&gt;
(not created / uploaded yet...)&lt;/div&gt;</summary>
		<author><name>MMlosh</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Enlightenment_.cfg</id>
		<title>Enlightenment .cfg</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Enlightenment_.cfg"/>
				<updated>2009-01-07T14:25:53Z</updated>
		
		<summary type="html">&lt;p&gt;MMlosh: /* /usr/share/enlightenment/data/config/asu/module.illume.cfg */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= eet -- '''Way to change enlightenment .cfg files''' =&lt;br /&gt;
&lt;br /&gt;
I've got recently this mail from enlightenment mailing list:&lt;br /&gt;
&lt;br /&gt;
you have to use &amp;quot;eet&amp;quot; command line utility, it is the tool that reads&lt;br /&gt;
.src and turns then into .cfg if you check out Makefile (and&lt;br /&gt;
Makefile.am).&lt;br /&gt;
&lt;br /&gt;
  eet -l e.cfg  # list all keys, usually just &amp;quot;config&amp;quot;&lt;br /&gt;
  eet -d e.cfg config e.src # writes human readable values to file e.src&lt;br /&gt;
  $EDITOR e.src # change whatever you like&lt;br /&gt;
  eet -e e.cfg config e.src 1  # compile human readable values to binary form and use compression&lt;br /&gt;
&lt;br /&gt;
If you find that useful and want to help, please create a wiki page&lt;br /&gt;
with your new knowledge.&lt;br /&gt;
&lt;br /&gt;
= interesting illume cfg files =&lt;br /&gt;
{{note | After any change you must delete directory /home/root/.e/e/config/asu to force configuration reload}}&lt;br /&gt;
{{warning | All your changes to illume configuration (usually not so many) will be lost}}&lt;br /&gt;
{{note | Maybe it's possible to edit directly files in you home directory, I don't know}}&lt;br /&gt;
== /usr/share/enlightenment/data/config/asu/e.cfg ==&lt;br /&gt;
&lt;br /&gt;
Add this in group 'group &amp;quot;E_Config_Gadcon&amp;quot;' after block named &amp;quot; illume-bluetooth&amp;quot; (ASU 2008.12 line 431) to enable Wrench tool (but most of configuration dialogs are not defined in .edj files..)&lt;br /&gt;
&lt;br /&gt;
      group &amp;quot;clients&amp;quot; list {&lt;br /&gt;
        group &amp;quot;E_Config_Gadcon_Client&amp;quot; struct {&lt;br /&gt;
          value &amp;quot;name&amp;quot; string: &amp;quot;illume-cfg&amp;quot;;&lt;br /&gt;
          value &amp;quot;id&amp;quot; string: &amp;quot;illume-cfg&amp;quot;;&lt;br /&gt;
          value &amp;quot;geom.pos&amp;quot; int: 0;&lt;br /&gt;
          value &amp;quot;geom.size&amp;quot; int: 32;&lt;br /&gt;
          value &amp;quot;geom.res&amp;quot; int: 472;&lt;br /&gt;
          value &amp;quot;geom.pos_x&amp;quot; double: 0.0000000000000000000000000;&lt;br /&gt;
          value &amp;quot;geom.pos_y&amp;quot; double: 0.0000000000000000000000000;&lt;br /&gt;
          value &amp;quot;geom.size_w&amp;quot; double: 0.0000000000000000000000000;&lt;br /&gt;
          value &amp;quot;geom.size_h&amp;quot; double: 0.0000000000000000000000000;&lt;br /&gt;
          value &amp;quot;state_info.seq&amp;quot; int: 1;&lt;br /&gt;
          value &amp;quot;state_info.flags&amp;quot; int: 1;&lt;br /&gt;
          value &amp;quot;style&amp;quot; string: &amp;quot;plain&amp;quot;;&lt;br /&gt;
          value &amp;quot;autoscroll&amp;quot; uchar: 0;&lt;br /&gt;
          value &amp;quot;resizable&amp;quot; uchar: 0;&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
== /usr/share/enlightenment/data/config/asu/module.illume.cfg ==&lt;br /&gt;
&lt;br /&gt;
To switch illume from qtopia predictive keyboard to illume keyboard&lt;br /&gt;
&lt;br /&gt;
REPLACE&lt;br /&gt;
&lt;br /&gt;
  value &amp;quot;kbd.use_internal&amp;quot; int: 0;&lt;br /&gt;
  value &amp;quot;kbd.dict&amp;quot; string: &amp;quot;English_(US).dic&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
WITH&lt;br /&gt;
&lt;br /&gt;
  value &amp;quot;kbd.use_internal&amp;quot; int: 0;&lt;br /&gt;
&lt;br /&gt;
= ready to use binary configuration files =&lt;br /&gt;
&lt;br /&gt;
(not created / uploaded yet...)&lt;/div&gt;</summary>
		<author><name>MMlosh</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Enlightenment_.cfg</id>
		<title>Enlightenment .cfg</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Enlightenment_.cfg"/>
				<updated>2009-01-07T14:25:03Z</updated>
		
		<summary type="html">&lt;p&gt;MMlosh: /* /usr/share/enlightenment/data/config/asu/module.illume.cfg */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= eet -- '''Way to change enlightenment .cfg files''' =&lt;br /&gt;
&lt;br /&gt;
I've got recently this mail from enlightenment mailing list:&lt;br /&gt;
&lt;br /&gt;
you have to use &amp;quot;eet&amp;quot; command line utility, it is the tool that reads&lt;br /&gt;
.src and turns then into .cfg if you check out Makefile (and&lt;br /&gt;
Makefile.am).&lt;br /&gt;
&lt;br /&gt;
  eet -l e.cfg  # list all keys, usually just &amp;quot;config&amp;quot;&lt;br /&gt;
  eet -d e.cfg config e.src # writes human readable values to file e.src&lt;br /&gt;
  $EDITOR e.src # change whatever you like&lt;br /&gt;
  eet -e e.cfg config e.src 1  # compile human readable values to binary form and use compression&lt;br /&gt;
&lt;br /&gt;
If you find that useful and want to help, please create a wiki page&lt;br /&gt;
with your new knowledge.&lt;br /&gt;
&lt;br /&gt;
= interesting illume cfg files =&lt;br /&gt;
{{note | After any change you must delete directory /home/root/.e/e/config/asu to force configuration reload}}&lt;br /&gt;
{{warning | All your changes to illume configuration (usually not so many) will be lost}}&lt;br /&gt;
{{note | Maybe it's possible to edit directly files in you home directory, I don't know}}&lt;br /&gt;
== /usr/share/enlightenment/data/config/asu/e.cfg ==&lt;br /&gt;
&lt;br /&gt;
Add this in group 'group &amp;quot;E_Config_Gadcon&amp;quot;' after block named &amp;quot; illume-bluetooth&amp;quot; (ASU 2008.12 line 431) to enable Wrench tool (but most of configuration dialogs are not defined in .edj files..)&lt;br /&gt;
&lt;br /&gt;
      group &amp;quot;clients&amp;quot; list {&lt;br /&gt;
        group &amp;quot;E_Config_Gadcon_Client&amp;quot; struct {&lt;br /&gt;
          value &amp;quot;name&amp;quot; string: &amp;quot;illume-cfg&amp;quot;;&lt;br /&gt;
          value &amp;quot;id&amp;quot; string: &amp;quot;illume-cfg&amp;quot;;&lt;br /&gt;
          value &amp;quot;geom.pos&amp;quot; int: 0;&lt;br /&gt;
          value &amp;quot;geom.size&amp;quot; int: 32;&lt;br /&gt;
          value &amp;quot;geom.res&amp;quot; int: 472;&lt;br /&gt;
          value &amp;quot;geom.pos_x&amp;quot; double: 0.0000000000000000000000000;&lt;br /&gt;
          value &amp;quot;geom.pos_y&amp;quot; double: 0.0000000000000000000000000;&lt;br /&gt;
          value &amp;quot;geom.size_w&amp;quot; double: 0.0000000000000000000000000;&lt;br /&gt;
          value &amp;quot;geom.size_h&amp;quot; double: 0.0000000000000000000000000;&lt;br /&gt;
          value &amp;quot;state_info.seq&amp;quot; int: 1;&lt;br /&gt;
          value &amp;quot;state_info.flags&amp;quot; int: 1;&lt;br /&gt;
          value &amp;quot;style&amp;quot; string: &amp;quot;plain&amp;quot;;&lt;br /&gt;
          value &amp;quot;autoscroll&amp;quot; uchar: 0;&lt;br /&gt;
          value &amp;quot;resizable&amp;quot; uchar: 0;&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
== /usr/share/enlightenment/data/config/asu/module.illume.cfg ==&lt;br /&gt;
&lt;br /&gt;
To switch illume from qtopia predictive keyboard to illume keyboard REPLACE&lt;br /&gt;
&lt;br /&gt;
  value &amp;quot;kbd.use_internal&amp;quot; int: 0;&lt;br /&gt;
  value &amp;quot;kbd.dict&amp;quot; string: &amp;quot;English_(US).dic&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
WITH&lt;br /&gt;
&lt;br /&gt;
  value &amp;quot;kbd.use_internal&amp;quot; int: 0;&lt;br /&gt;
&lt;br /&gt;
= ready to use binary configuration files =&lt;br /&gt;
&lt;br /&gt;
(not created / uploaded yet...)&lt;/div&gt;</summary>
		<author><name>MMlosh</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Enlightenment_.cfg</id>
		<title>Enlightenment .cfg</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Enlightenment_.cfg"/>
				<updated>2009-01-06T20:55:15Z</updated>
		
		<summary type="html">&lt;p&gt;MMlosh: /* /usr/share/enlightenment/data/config/asu/module.illume.cfg */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= eet -- '''Way to change enlightenment .cfg files''' =&lt;br /&gt;
&lt;br /&gt;
I've got recently this mail from enlightenment mailing list:&lt;br /&gt;
&lt;br /&gt;
you have to use &amp;quot;eet&amp;quot; command line utility, it is the tool that reads&lt;br /&gt;
.src and turns then into .cfg if you check out Makefile (and&lt;br /&gt;
Makefile.am).&lt;br /&gt;
&lt;br /&gt;
  eet -l e.cfg  # list all keys, usually just &amp;quot;config&amp;quot;&lt;br /&gt;
  eet -d e.cfg config e.src # writes human readable values to file e.src&lt;br /&gt;
  $EDITOR e.src # change whatever you like&lt;br /&gt;
  eet -e e.cfg config e.src 1  # compile human readable values to binary form and use compression&lt;br /&gt;
&lt;br /&gt;
If you find that useful and want to help, please create a wiki page&lt;br /&gt;
with your new knowledge.&lt;br /&gt;
&lt;br /&gt;
= interesting illume cfg files =&lt;br /&gt;
{{note | After any change you must delete directory /home/root/.e/e/config/asu to force configuration reload}}&lt;br /&gt;
{{warning | All your changes to illume configuration (usually not so many) will be lost}}&lt;br /&gt;
{{note | Maybe it's possible to edit directly files in you home directory, I don't know}}&lt;br /&gt;
== /usr/share/enlightenment/data/config/asu/e.cfg ==&lt;br /&gt;
&lt;br /&gt;
Add this in group 'group &amp;quot;E_Config_Gadcon&amp;quot;' after block named &amp;quot; illume-bluetooth&amp;quot; (ASU 2008.12 line 431) to enable Wrench tool (but most of configuration dialogs are not defined in .edj files..)&lt;br /&gt;
&lt;br /&gt;
      group &amp;quot;clients&amp;quot; list {&lt;br /&gt;
        group &amp;quot;E_Config_Gadcon_Client&amp;quot; struct {&lt;br /&gt;
          value &amp;quot;name&amp;quot; string: &amp;quot;illume-cfg&amp;quot;;&lt;br /&gt;
          value &amp;quot;id&amp;quot; string: &amp;quot;illume-cfg&amp;quot;;&lt;br /&gt;
          value &amp;quot;geom.pos&amp;quot; int: 0;&lt;br /&gt;
          value &amp;quot;geom.size&amp;quot; int: 32;&lt;br /&gt;
          value &amp;quot;geom.res&amp;quot; int: 472;&lt;br /&gt;
          value &amp;quot;geom.pos_x&amp;quot; double: 0.0000000000000000000000000;&lt;br /&gt;
          value &amp;quot;geom.pos_y&amp;quot; double: 0.0000000000000000000000000;&lt;br /&gt;
          value &amp;quot;geom.size_w&amp;quot; double: 0.0000000000000000000000000;&lt;br /&gt;
          value &amp;quot;geom.size_h&amp;quot; double: 0.0000000000000000000000000;&lt;br /&gt;
          value &amp;quot;state_info.seq&amp;quot; int: 1;&lt;br /&gt;
          value &amp;quot;state_info.flags&amp;quot; int: 1;&lt;br /&gt;
          value &amp;quot;style&amp;quot; string: &amp;quot;plain&amp;quot;;&lt;br /&gt;
          value &amp;quot;autoscroll&amp;quot; uchar: 0;&lt;br /&gt;
          value &amp;quot;resizable&amp;quot; uchar: 0;&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
== /usr/share/enlightenment/data/config/asu/module.illume.cfg ==&lt;br /&gt;
&lt;br /&gt;
(not done yet, but that code will switch qpe keyboard to illume)&lt;br /&gt;
&lt;br /&gt;
= ready to use binary configuration files =&lt;br /&gt;
&lt;br /&gt;
(not created / uploaded yet...)&lt;/div&gt;</summary>
		<author><name>MMlosh</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Enlightenment_.cfg</id>
		<title>Enlightenment .cfg</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Enlightenment_.cfg"/>
				<updated>2009-01-06T20:52:50Z</updated>
		
		<summary type="html">&lt;p&gt;MMlosh: /* eet -- Way to change enlightenment .cfg files */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= eet -- '''Way to change enlightenment .cfg files''' =&lt;br /&gt;
&lt;br /&gt;
I've got recently this mail from enlightenment mailing list:&lt;br /&gt;
&lt;br /&gt;
you have to use &amp;quot;eet&amp;quot; command line utility, it is the tool that reads&lt;br /&gt;
.src and turns then into .cfg if you check out Makefile (and&lt;br /&gt;
Makefile.am).&lt;br /&gt;
&lt;br /&gt;
  eet -l e.cfg  # list all keys, usually just &amp;quot;config&amp;quot;&lt;br /&gt;
  eet -d e.cfg config e.src # writes human readable values to file e.src&lt;br /&gt;
  $EDITOR e.src # change whatever you like&lt;br /&gt;
  eet -e e.cfg config e.src 1  # compile human readable values to binary form and use compression&lt;br /&gt;
&lt;br /&gt;
If you find that useful and want to help, please create a wiki page&lt;br /&gt;
with your new knowledge.&lt;br /&gt;
&lt;br /&gt;
= interesting illume cfg files =&lt;br /&gt;
{{note | After any change you must delete directory /home/root/.e/e/config/asu to force configuration reload}}&lt;br /&gt;
{{warning | All your changes to illume configuration (usually not so many) will be lost}}&lt;br /&gt;
{{note | Maybe it's possible to edit directly files in you home directory, I don't know}}&lt;br /&gt;
== /usr/share/enlightenment/data/config/asu/e.cfg ==&lt;br /&gt;
&lt;br /&gt;
Add this in group 'group &amp;quot;E_Config_Gadcon&amp;quot;' after block named &amp;quot; illume-bluetooth&amp;quot; (ASU 2008.12 line 431) to enable Wrench tool (but most of configuration dialogs are not defined in .edj files..)&lt;br /&gt;
&lt;br /&gt;
      group &amp;quot;clients&amp;quot; list {&lt;br /&gt;
        group &amp;quot;E_Config_Gadcon_Client&amp;quot; struct {&lt;br /&gt;
          value &amp;quot;name&amp;quot; string: &amp;quot;illume-cfg&amp;quot;;&lt;br /&gt;
          value &amp;quot;id&amp;quot; string: &amp;quot;illume-cfg&amp;quot;;&lt;br /&gt;
          value &amp;quot;geom.pos&amp;quot; int: 0;&lt;br /&gt;
          value &amp;quot;geom.size&amp;quot; int: 32;&lt;br /&gt;
          value &amp;quot;geom.res&amp;quot; int: 472;&lt;br /&gt;
          value &amp;quot;geom.pos_x&amp;quot; double: 0.0000000000000000000000000;&lt;br /&gt;
          value &amp;quot;geom.pos_y&amp;quot; double: 0.0000000000000000000000000;&lt;br /&gt;
          value &amp;quot;geom.size_w&amp;quot; double: 0.0000000000000000000000000;&lt;br /&gt;
          value &amp;quot;geom.size_h&amp;quot; double: 0.0000000000000000000000000;&lt;br /&gt;
          value &amp;quot;state_info.seq&amp;quot; int: 1;&lt;br /&gt;
          value &amp;quot;state_info.flags&amp;quot; int: 1;&lt;br /&gt;
          value &amp;quot;style&amp;quot; string: &amp;quot;plain&amp;quot;;&lt;br /&gt;
          value &amp;quot;autoscroll&amp;quot; uchar: 0;&lt;br /&gt;
          value &amp;quot;resizable&amp;quot; uchar: 0;&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
== /usr/share/enlightenment/data/config/asu/module.illume.cfg ==&lt;br /&gt;
&lt;br /&gt;
(not done yet, but that code will switch qpe keyboard to illume)&lt;/div&gt;</summary>
		<author><name>MMlosh</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Wrench</id>
		<title>Wrench</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Wrench"/>
				<updated>2009-01-05T20:31:53Z</updated>
		
		<summary type="html">&lt;p&gt;MMlosh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Steps and Tips about Wrench tool in ASU theme =&lt;br /&gt;
&lt;br /&gt;
== enlightenment_remote ==&lt;br /&gt;
Wrench probably used utility '''enlightenment_remote'''&lt;br /&gt;
&lt;br /&gt;
This tool is able to &lt;br /&gt;
 &amp;lt;ul&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;Load, Unload and List modules &amp;amp;nbsp; &amp;amp;nbsp; ( ENABLED = AUTOSTART, module must be LOADed before doing this )&amp;lt;/li&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;Restart enlightenment, reboot OM, logout from session&amp;lt;/li&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;Manage fonts, virtual desktops, winlist and process freeze detection&amp;amp;killing&amp;lt;/li&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;And a lot of less important (some not available on FR) functions&amp;lt;/li&amp;gt;&lt;br /&gt;
 &amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To use it from SSH you need to setup environment variable E_IPC_SOCKET. Because it points to a file, it isn't hard to locate it. Just do this:&lt;br /&gt;
&lt;br /&gt;
 ls /tmp/enlightenment-root&lt;br /&gt;
&lt;br /&gt;
'''For reply &amp;quot;disp-:0.0-2166|0&amp;quot;''' do&lt;br /&gt;
&lt;br /&gt;
{{note| Don't forget to escape colon (&amp;quot;:&amp;quot;) and remove anything after pipe (&amp;quot;|&amp;quot;) symbol}}&lt;br /&gt;
&lt;br /&gt;
 export E_IPC_SOCKET=/tmp/enlightenment-root/disp-\:0.0-2166&lt;br /&gt;
&lt;br /&gt;
Now you should be able to use this tool from SSH connection&lt;br /&gt;
&lt;br /&gt;
== Adding wrench to ASU theme ==&lt;br /&gt;
&lt;br /&gt;
There is a [[Enlightenment .cfg|program to edit Enlightenment .cfg]] files, you'll need it..&lt;br /&gt;
&lt;br /&gt;
More instructions should appear soon, as my research goes on..&lt;/div&gt;</summary>
		<author><name>MMlosh</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Enlightenment_cfg</id>
		<title>Enlightenment cfg</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Enlightenment_cfg"/>
				<updated>2009-01-05T20:24:26Z</updated>
		
		<summary type="html">&lt;p&gt;MMlosh: Enligthenment cfg moved to Enlightenment cfg: Typo in name&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Can anybody enter redirect here? It should point to http://wiki.openmoko.org/wiki/Enlightenment_.cfg&lt;/div&gt;</summary>
		<author><name>MMlosh</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Enlightenment_cfg</id>
		<title>Enlightenment cfg</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Enlightenment_cfg"/>
				<updated>2009-01-05T20:24:02Z</updated>
		
		<summary type="html">&lt;p&gt;MMlosh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Can anybody enter redirect here? It should point to http://wiki.openmoko.org/wiki/Enlightenment_.cfg&lt;/div&gt;</summary>
		<author><name>MMlosh</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Enlightenment_cfg</id>
		<title>Enlightenment cfg</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Enlightenment_cfg"/>
				<updated>2009-01-05T20:23:14Z</updated>
		
		<summary type="html">&lt;p&gt;MMlosh: Removing all content from page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>MMlosh</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Enlightenment_cfg</id>
		<title>Enlightenment cfg</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Enlightenment_cfg"/>
				<updated>2009-01-05T20:20:22Z</updated>
		
		<summary type="html">&lt;p&gt;MMlosh: New page: Can anybody please make here redirect to http://wiki.openmoko.org/wiki/Enlightenment_.cfg ?&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Can anybody please make here redirect to http://wiki.openmoko.org/wiki/Enlightenment_.cfg ?&lt;/div&gt;</summary>
		<author><name>MMlosh</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Enlightenment_.cfg</id>
		<title>Enlightenment .cfg</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Enlightenment_.cfg"/>
				<updated>2009-01-05T20:18:54Z</updated>
		
		<summary type="html">&lt;p&gt;MMlosh: New page: = eet -- '''Way to change enlightenment .cfg files''' =  I've got recently this mail from enlightenment mailing list:  you have to use &amp;quot;eet&amp;quot; command line utility, it is the tool that reads...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= eet -- '''Way to change enlightenment .cfg files''' =&lt;br /&gt;
&lt;br /&gt;
I've got recently this mail from enlightenment mailing list:&lt;br /&gt;
&lt;br /&gt;
you have to use &amp;quot;eet&amp;quot; command line utility, it is the tool that reads&lt;br /&gt;
.src and turns then into .cfg if you check out Makefile (and&lt;br /&gt;
Makefile.am).&lt;br /&gt;
&lt;br /&gt;
  eet -l e.cfg  # list all keys, usually just &amp;quot;config&amp;quot;&lt;br /&gt;
  eet -d e.cfg config e.src # writes human readable values to file e.src&lt;br /&gt;
  $EDITOR e.src # change whatever you like&lt;br /&gt;
  eet -e e.cfg config e.src 1  # compile human readable values to binary form and use compression&lt;br /&gt;
&lt;br /&gt;
If you find that useful and want to help, please create a wiki page&lt;br /&gt;
with your new knowledge.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
More complete instruction will appear tomorrow&lt;/div&gt;</summary>
		<author><name>MMlosh</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Wrench</id>
		<title>Wrench</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Wrench"/>
				<updated>2009-01-05T20:12:21Z</updated>
		
		<summary type="html">&lt;p&gt;MMlosh: /* eet -- Way to change .cfg files */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Steps and Tips about Wrench tool in ASU theme =&lt;br /&gt;
&lt;br /&gt;
== enlightenment_remote ==&lt;br /&gt;
Wrench probably used utility '''enlightenment_remote'''&lt;br /&gt;
&lt;br /&gt;
This tool is able to &lt;br /&gt;
 &amp;lt;ul&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;Load, Unload and List modules &amp;amp;nbsp; &amp;amp;nbsp; ( ENABLED = AUTOSTART, module must be LOADed before doing this )&amp;lt;/li&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;Restart enlightenment, reboot OM, logout from session&amp;lt;/li&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;Manage fonts, virtual desktops, winlist and process freeze detection&amp;amp;killing&amp;lt;/li&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;And a lot of less important (some not available on FR) functions&amp;lt;/li&amp;gt;&lt;br /&gt;
 &amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To use it from SSH you need to setup environment variable E_IPC_SOCKET. Because it points to a file, it isn't hard to locate it. Just do this:&lt;br /&gt;
&lt;br /&gt;
 ls /tmp/enlightenment-root&lt;br /&gt;
&lt;br /&gt;
'''For reply &amp;quot;disp-:0.0-2166|0&amp;quot;''' do&lt;br /&gt;
&lt;br /&gt;
{{note| Don't forget to escape colon (&amp;quot;:&amp;quot;) and remove anything after pipe (&amp;quot;|&amp;quot;) symbol}}&lt;br /&gt;
&lt;br /&gt;
 export E_IPC_SOCKET=/tmp/enlightenment-root/disp-\:0.0-2166&lt;br /&gt;
&lt;br /&gt;
Now you should be able to use this tool from SSH connection&lt;br /&gt;
&lt;br /&gt;
== eet -- '''Way to change enlightenment .cfg files''' ==&lt;br /&gt;
&lt;br /&gt;
I've got recently this mail from enlightenment mailing list:&lt;br /&gt;
&lt;br /&gt;
you have to use &amp;quot;eet&amp;quot; command line utility, it is the tool that reads&lt;br /&gt;
.src and turns then into .cfg if you check out Makefile (and&lt;br /&gt;
Makefile.am).&lt;br /&gt;
&lt;br /&gt;
  eet -l e.cfg  # list all keys, usually just &amp;quot;config&amp;quot;&lt;br /&gt;
  eet -d e.cfg config e.src # writes human readable values to file e.src&lt;br /&gt;
  $EDITOR e.src # change whatever you like&lt;br /&gt;
  eet -e e.cfg config e.src 1  # compile human readable values to binary form and use compression&lt;br /&gt;
&lt;br /&gt;
If you find that useful and want to help, please create a wiki page&lt;br /&gt;
with your new knowledge.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
More complete instruction will appear tomorrow&lt;/div&gt;</summary>
		<author><name>MMlosh</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Wrench</id>
		<title>Wrench</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Wrench"/>
				<updated>2009-01-05T20:02:54Z</updated>
		
		<summary type="html">&lt;p&gt;MMlosh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Steps and Tips about Wrench tool in ASU theme =&lt;br /&gt;
&lt;br /&gt;
== enlightenment_remote ==&lt;br /&gt;
Wrench probably used utility '''enlightenment_remote'''&lt;br /&gt;
&lt;br /&gt;
This tool is able to &lt;br /&gt;
 &amp;lt;ul&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;Load, Unload and List modules &amp;amp;nbsp; &amp;amp;nbsp; ( ENABLED = AUTOSTART, module must be LOADed before doing this )&amp;lt;/li&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;Restart enlightenment, reboot OM, logout from session&amp;lt;/li&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;Manage fonts, virtual desktops, winlist and process freeze detection&amp;amp;killing&amp;lt;/li&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;And a lot of less important (some not available on FR) functions&amp;lt;/li&amp;gt;&lt;br /&gt;
 &amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To use it from SSH you need to setup environment variable E_IPC_SOCKET. Because it points to a file, it isn't hard to locate it. Just do this:&lt;br /&gt;
&lt;br /&gt;
 ls /tmp/enlightenment-root&lt;br /&gt;
&lt;br /&gt;
'''For reply &amp;quot;disp-:0.0-2166|0&amp;quot;''' do&lt;br /&gt;
&lt;br /&gt;
{{note| Don't forget to escape colon (&amp;quot;:&amp;quot;) and remove anything after pipe (&amp;quot;|&amp;quot;) symbol}}&lt;br /&gt;
&lt;br /&gt;
 export E_IPC_SOCKET=/tmp/enlightenment-root/disp-\:0.0-2166&lt;br /&gt;
&lt;br /&gt;
Now you should be able to use this tool from SSH connection&lt;br /&gt;
&lt;br /&gt;
== eet -- '''Way to change .cfg files''' ==&lt;br /&gt;
&lt;br /&gt;
I've got recently this mail from enlightenment mailing list:&lt;br /&gt;
&lt;br /&gt;
you have to use &amp;quot;eet&amp;quot; command line utility, it is the tool that reads&lt;br /&gt;
.src and turns then into .cfg if you check out Makefile (and&lt;br /&gt;
Makefile.am).&lt;br /&gt;
&lt;br /&gt;
  eet -l e.cfg  # list all keys, usually just &amp;quot;config&amp;quot;&lt;br /&gt;
  eet -d e.cfg config e.src # writes human readable values to file e.src&lt;br /&gt;
  $EDITOR e.src # change whatever you like&lt;br /&gt;
  eet -e e.cfg config e.src 1  # compile human readable values to binary form and use compression&lt;br /&gt;
&lt;br /&gt;
If you find that useful and want to help, please create a wiki page&lt;br /&gt;
with your new knowledge.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
More complete instruction will appear tomorrow&lt;/div&gt;</summary>
		<author><name>MMlosh</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Wrench</id>
		<title>Wrench</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Wrench"/>
				<updated>2009-01-05T18:07:36Z</updated>
		
		<summary type="html">&lt;p&gt;MMlosh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Steps and Tips about Wrench tool in ASU theme =&lt;br /&gt;
&lt;br /&gt;
== enlightenment_remote ==&lt;br /&gt;
Wrench probably used utility '''enlightenment_remote'''&lt;br /&gt;
&lt;br /&gt;
This tool is able to &lt;br /&gt;
 &amp;lt;ul&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;Load, Unload and List modules &amp;amp;nbsp; &amp;amp;nbsp; ( ENABLED = AUTOSTART, module must be LOADed before doing this )&amp;lt;/li&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;Restart enlightenment, reboot OM, logout from session&amp;lt;/li&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;Manage fonts, virtual desktops, winlist and process freeze detection&amp;amp;killing&amp;lt;/li&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;And a lot of less important (some not available on FR) functions&amp;lt;/li&amp;gt;&lt;br /&gt;
 &amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To use it from SSH you need to setup environment variable E_IPC_SOCKET. Because it points to a file, it isn't hard to locate it. Just do this:&lt;br /&gt;
&lt;br /&gt;
 ls /tmp/enlightenment-root&lt;br /&gt;
&lt;br /&gt;
'''For reply &amp;quot;disp-:0.0-2166|0&amp;quot;''' do&lt;br /&gt;
&lt;br /&gt;
{{note| Don't forget to escape colon (&amp;quot;:&amp;quot;) and remove anything after pipe (&amp;quot;|&amp;quot;) symbol}}&lt;br /&gt;
&lt;br /&gt;
 export E_IPC_SOCKET=/tmp/enlightenment-root/disp-\:0.0-2166&lt;br /&gt;
&lt;br /&gt;
Now you should be able to use this tool from SSH connection&lt;/div&gt;</summary>
		<author><name>MMlosh</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Wrench</id>
		<title>Wrench</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Wrench"/>
				<updated>2009-01-05T18:00:27Z</updated>
		
		<summary type="html">&lt;p&gt;MMlosh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Steps and Tips about Wrench tool in ASU theme =&lt;br /&gt;
&lt;br /&gt;
== enlightenment_remote ==&lt;br /&gt;
Wrench probably used utility '''enlightenment_remote'''&lt;br /&gt;
&lt;br /&gt;
This tool is able to &lt;br /&gt;
 &amp;lt;ul&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;Load, Unload and List modules &amp;amp;nbsp; &amp;amp;nbsp; ( to autostart module: 1)LOAD &amp;amp;nbsp; 2)ENABLE )&amp;lt;/li&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;Restart enlightenment, reboot OM, logout from session&amp;lt;/li&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;Manage fonts, virtual desktops, winlist and process freeze detection&amp;amp;killing&amp;lt;/li&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;And a lot of less important (some not available on FR) functions&amp;lt;/li&amp;gt;&lt;br /&gt;
 &amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To use it from SSH you need to setup environment variable E_IPC_SOCKET. Because it points to a file, it isn't hard to locate it. Just do this:&lt;br /&gt;
&lt;br /&gt;
 ls /tmp/enlightenment-root&lt;br /&gt;
&lt;br /&gt;
'''For reply &amp;quot;disp-:0.0-2166|0&amp;quot;''' do&lt;br /&gt;
&lt;br /&gt;
{{note| Don't forget to escape colon (&amp;quot;:&amp;quot;) and remove anything after pipe (&amp;quot;|&amp;quot;) symbol}}&lt;br /&gt;
&lt;br /&gt;
 export E_IPC_SOCKET=/tmp/enlightenment-root/disp-\:0.0-2166&lt;br /&gt;
&lt;br /&gt;
Now you should be able to use this tool from SSH connection&lt;/div&gt;</summary>
		<author><name>MMlosh</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Wrench</id>
		<title>Wrench</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Wrench"/>
				<updated>2009-01-05T17:27:52Z</updated>
		
		<summary type="html">&lt;p&gt;MMlosh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Steps and Tips about Wrench tool in ASU theme =&lt;br /&gt;
&lt;br /&gt;
== enlightenment_remote ==&lt;br /&gt;
Wrench probably used utility '''enlightenment_remote'''&lt;br /&gt;
&lt;br /&gt;
This tool is able to &lt;br /&gt;
 &amp;lt;ul&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;Load, Unload and List modules&amp;lt;/li&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;Restart enlightenment, reboot OM, logout from session&amp;lt;/li&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;Manage fonts, virtual desktops, winlist and process freeze detection&amp;amp;killing&amp;lt;/li&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;And a lot of less important (some not available on FR) functions&amp;lt;/li&amp;gt;&lt;br /&gt;
 &amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To use it from SSH you need to setup environment variable E_IPC_SOCKET. Because it points to a file, it isn't hard to locate it. Just do this:&lt;br /&gt;
&lt;br /&gt;
 ls /tmp/enlightenment-root&lt;br /&gt;
&lt;br /&gt;
'''For reply &amp;quot;disp-:0.0-2166|0&amp;quot;''' do&lt;br /&gt;
&lt;br /&gt;
{{note| Don't forget to escape colon (&amp;quot;:&amp;quot;) and remove anything after pipe (&amp;quot;|&amp;quot;) symbol}}&lt;br /&gt;
&lt;br /&gt;
 export E_IPC_SOCKET=/tmp/enlightenment-root/disp-\:0.0-2166&lt;br /&gt;
&lt;br /&gt;
Now you should be able to use this tool from SSH connection&lt;/div&gt;</summary>
		<author><name>MMlosh</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Wrench</id>
		<title>Wrench</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Wrench"/>
				<updated>2009-01-05T17:12:28Z</updated>
		
		<summary type="html">&lt;p&gt;MMlosh: New page: = Steps and Tips about Wrench tool in ASU theme =  == enlightenment_remote == Wrench probably used utility '''enlightenment_remote''' To use it you need to setup environment variable E_IPC...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Steps and Tips about Wrench tool in ASU theme =&lt;br /&gt;
&lt;br /&gt;
== enlightenment_remote ==&lt;br /&gt;
Wrench probably used utility '''enlightenment_remote'''&lt;br /&gt;
To use it you need to setup environment variable E_IPC_SOCKET. Because it's a file, it isn't hard to locate it. Just do this:&lt;br /&gt;
&lt;br /&gt;
 ls /tmp/enlightenment-root&lt;br /&gt;
&lt;br /&gt;
'''For reply &amp;quot;disp-:0.0-2166|0&amp;quot;''' do&lt;br /&gt;
&lt;br /&gt;
 export E_IPC_SOCKET=/tmp/enlightenment-root/disp-\:0.0-2166&lt;br /&gt;
&lt;br /&gt;
{{note| Don't forget to escape colon (&amp;quot;:&amp;quot;) and remove anything after pipe (&amp;quot;|&amp;quot;) symbol}}&lt;/div&gt;</summary>
		<author><name>MMlosh</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Openmoko_Local_Groups:_Czech</id>
		<title>Openmoko Local Groups: Czech</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Openmoko_Local_Groups:_Czech"/>
				<updated>2009-01-03T15:05:32Z</updated>
		
		<summary type="html">&lt;p&gt;MMlosh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Welcome to Openmoko Czech Republic users group!&lt;br /&gt;
&lt;br /&gt;
Join to our [http://www.jabber.cz Jabber] conference: '''openmoko@chat.linjab.net'''&lt;br /&gt;
&lt;br /&gt;
Our discussion forum is http://openmoko.ohin.cz&lt;br /&gt;
&lt;br /&gt;
{|border=1&lt;br /&gt;
!Name&lt;br /&gt;
!Skills&lt;br /&gt;
!Interest&lt;br /&gt;
!Location&lt;br /&gt;
!Jabber&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Martix|Martix]]&lt;br /&gt;
|Python&lt;br /&gt;
|SHR, accelerometers, XMPP/Jabber, GPS&lt;br /&gt;
|Luhačovice&lt;br /&gt;
|martix@njs.netlab.cz&lt;br /&gt;
|-&lt;br /&gt;
|[[User:MMlosh|MMlosh]]&lt;br /&gt;
|C#, pascal, x51 assembler&lt;br /&gt;
|usable ASU E17 theme (to get that damn wrench to show.. and switch to different keyboard), Openstreetmaping, supertux-editor development&lt;br /&gt;
|Týniště nad Orlicí&lt;br /&gt;
|MMlosh@jabber.cz&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:Openmoko Local Groups]]&lt;/div&gt;</summary>
		<author><name>MMlosh</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/User:MMlosh</id>
		<title>User:MMlosh</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/User:MMlosh"/>
				<updated>2009-01-03T15:04:09Z</updated>
		
		<summary type="html">&lt;p&gt;MMlosh: /* Miloš Klouček */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Kontakty na mě / contacts:'''&lt;br /&gt;
*IRC: MMlosh&lt;br /&gt;
*Jabber: MMlosh@jabber.cz&lt;br /&gt;
*mail: FR@elektromaniak.wz.cz&lt;/div&gt;</summary>
		<author><name>MMlosh</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Openmoko_Local_Groups:_Czech</id>
		<title>Openmoko Local Groups: Czech</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Openmoko_Local_Groups:_Czech"/>
				<updated>2009-01-03T15:01:31Z</updated>
		
		<summary type="html">&lt;p&gt;MMlosh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Welcome to Openmoko Czech Republic users group!&lt;br /&gt;
&lt;br /&gt;
Join to our [http://www.jabber.cz Jabber] conference: '''openmoko@chat.linjab.net'''&lt;br /&gt;
&lt;br /&gt;
Our discussion forum is http://openmoko.ohin.cz&lt;br /&gt;
&lt;br /&gt;
{|border=1&lt;br /&gt;
!Name&lt;br /&gt;
!Skills&lt;br /&gt;
!Interest&lt;br /&gt;
!Location&lt;br /&gt;
!Jabber&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Martix|Martix]]&lt;br /&gt;
|Python&lt;br /&gt;
|SHR, accelerometers, XMPP/Jabber, GPS&lt;br /&gt;
|Luhačovice&lt;br /&gt;
|martix@njs.netlab.cz&lt;br /&gt;
|-&lt;br /&gt;
|[[User:MMlosh|MMlosh]]&lt;br /&gt;
|C#, pascal, x51 assembler&lt;br /&gt;
|usable ASU E17 theme (to get that damn wrench to show.. and switch to different keyboard), Openstreetmaping&lt;br /&gt;
|Týniště nad Orlicí&lt;br /&gt;
|MMlosh@jabber.cz&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:Openmoko Local Groups]]&lt;/div&gt;</summary>
		<author><name>MMlosh</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Manually_using_GPRS</id>
		<title>Manually using GPRS</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Manually_using_GPRS"/>
				<updated>2009-01-01T16:25:22Z</updated>
		
		<summary type="html">&lt;p&gt;MMlosh: /* From OM2008.8 repositories */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{note| These instructions are for OM2008.8 .  If you are using the FSO stack, see [[GPRS_FSO]].}}&lt;br /&gt;
&lt;br /&gt;
The GPRS connection is made using the PPP protocol to a server identified by an &amp;quot;APN&amp;quot; at the network operator.   Once a GPRS connection is made, it is possible to [[#Sharing_the_GPRS_connection_with_a_computer|share that connection with a connected computer]], allowing that computer to access the internet through the phone!&lt;br /&gt;
&lt;br /&gt;
= Option 1: With GSM multiplexing and with a GUI =&lt;br /&gt;
&lt;br /&gt;
{{note|The following does not appear to work if you have a SIM PIN.  The dialog to enter your SIM PIN never pops up and the GSM multiplexing daemon continuous loops and runs into a SIM PIN error.}}&lt;br /&gt;
&lt;br /&gt;
GSM multiplexing allows both a GPRS connection and a phone call to be handled at the same time.  By default, [[Om 2008.8]] does not multiplex the GSM device.  The [[FSO]] distribution, however, introduces GSM multiplexing with a new service and a DBus API to that service.  The instructions to modify the OM2008.8 distribution to make use of GSM multiplexing and allow you to start GPRS from a GUI can be found here: http://freeyourphone.de/portal_v1/viewtopic.php?f=21&amp;amp;t=295 ('''Note:''' Script package seems to be no longer be available, but a later post in the thread links to a version at [http://fyp-archiv.relei.de/ http://fyp-archiv.relei.de/].)&lt;br /&gt;
&lt;br /&gt;
== gsm0710muxd ==&lt;br /&gt;
&lt;br /&gt;
There are two sources, where you can find gsm0710muxd.&lt;br /&gt;
&lt;br /&gt;
=== From OM2008.8 repositories ===&lt;br /&gt;
&lt;br /&gt;
Good news, working gsm0710muxd can be installed just by typing &amp;quot;opkg install gsm0710muxd&amp;quot;&lt;br /&gt;
&lt;br /&gt;
NOTE: ASU2008.12 boots in 45s and gsm0710muxd has probably not enough time to initialize GSM modem (gsm0710muxd is unable to provide working tty device to qtopia =&amp;gt; qpe fails to open GSM modem and quits)&lt;br /&gt;
==&amp;gt; Some kind of delay may be needed in /etc/X11/Xsession.d/89qtopia&lt;br /&gt;
&lt;br /&gt;
=== From Angstrom Repositories ===&lt;br /&gt;
&lt;br /&gt;
If the gsm0710muxd that is found in the OM2008.8 repository refuses to work, you can use the one from the Angstrom Repositories (see [[Repositories]]) instead.&lt;br /&gt;
&lt;br /&gt;
Alternatively, if you simply want to download all the packages, you can get them from here:&lt;br /&gt;
&lt;br /&gt;
http://www.angstrom-distribution.org/feeds/2008/ipk/glibc/armv4t/base/gsm0710muxd_0.9.1+r0-gitr3ff86b129640b647ccba3d86eb243d864671b039-r0_armv4t.ipk&lt;br /&gt;
&lt;br /&gt;
I don't know if the package got renamed but that one wasn't in there the one i downloaded was&lt;br /&gt;
&lt;br /&gt;
http://www.angstrom-distribution.org/feeds/2008/ipk/glibc/armv4t/base/gsm0710muxd_0.9.2+gitr79e10fe8ad0828e5be9a5c087ac9ee04956674c1-r0.1_armv4t.ipk&lt;br /&gt;
&lt;br /&gt;
haven't gotten past this step yet well see how / if it works. :)&lt;br /&gt;
&lt;br /&gt;
This link was working for me on 11.12.2008 (I've successfully muxed GSM device and sent command for echo reduction - http://lists.openmoko.org/pipermail/community/2008-August/028495.html)&lt;br /&gt;
&lt;br /&gt;
http://shr.bearstech.com/shr-testing/ipk/armv4t/gsm0710muxd-dbg_0.9.2+gitr12+d8b36b923ef69a64cb5a2d3bca799d772b9c73c3-r0.1_armv4t.ipk&lt;br /&gt;
&lt;br /&gt;
and the dependencies from here:&lt;br /&gt;
&lt;br /&gt;
http://www.angstrom-distribution.org/repo/?pkgname=gsm0710muxd&lt;br /&gt;
&lt;br /&gt;
Make sure that you install the armv4t versions of all packages.&lt;br /&gt;
&lt;br /&gt;
=== Common part ===&lt;br /&gt;
&lt;br /&gt;
The most important step after installing gsm0710muxd is to tell QPE to use the MUX instead of the device directly.  If you follow the instructions in the link above, there is a step that replaces the 89qtopia init script with one from their script package.  The key difference is the addition of the following lines that tells QPE to use the MUX:&lt;br /&gt;
&lt;br /&gt;
in /etc/X11/Xsession.d/89qtopia&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
identvar=$(date +%s)&amp;lt;br/&amp;gt;&lt;br /&gt;
ptsvar=$(dbus-send --system --print-reply --type=method_call --dest=org.pyneo.muxer /org/pyneo/Muxer&lt;br /&gt;
org.freesmartphone.GSM.MUX.AllocChannel string:$identvar | grep string | awk -F '&amp;quot;' '{ print $2 }')&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
export QTOPIA_PHONE_DEVICE=$ptsvar&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The [[#Some APN names for reference|APN Reference]] table may come in handy when you are looking for the required network specific information for the other scripts.&lt;br /&gt;
&lt;br /&gt;
Once you follow through with all the instructions, you will notice that the &amp;quot;Services&amp;quot; GUI will crash.  This has to do with this bug: http://docs.openmoko.org/trac/ticket/1718&lt;br /&gt;
&lt;br /&gt;
The fix is to change the &amp;quot;init()&amp;quot; call on line 82 of /usr/lib/python2.5/site-packages/gtk-2.0/gtk/_init_.py  to &amp;quot;_init()&amp;quot; (add an underscore).&lt;br /&gt;
&lt;br /&gt;
You may also have to modify your /etc/resolv.conf file and add the nameserver (DNS Server) of your service provider if you have DNS resolution problems.&lt;br /&gt;
&lt;br /&gt;
Then, hopefully, you should be up in running with GPRS and a GUI to turn it on and off.  Note that you can use the command line scripts &amp;quot;gprson&amp;quot; and &amp;quot;gprsoff&amp;quot; in place of the GUI if you need to do some debugging.&lt;br /&gt;
&lt;br /&gt;
= Option 2: With GSM multiplexing and without a GUI =&lt;br /&gt;
&lt;br /&gt;
You will have to get gsm0710muxd the same way as detailed in Option 1.&lt;br /&gt;
&lt;br /&gt;
'''1) In /etc/rc5.d start gsm0710muxd before gsmd:'''&lt;br /&gt;
* S34gsm0710muxd -&amp;gt; ../init.d/gsm0710muxd&lt;br /&gt;
* S35gsmd -&amp;gt; ../init.d/gsmd&lt;br /&gt;
&lt;br /&gt;
'''2) Modify S35gsmd so it can start either with or without gsm0710muxd:'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
case &amp;quot;$1&amp;quot; in&lt;br /&gt;
start)&lt;br /&gt;
if [ &amp;quot;$(pidof gsm0710muxd)&amp;quot; ] ; then&lt;br /&gt;
id=$(date +%s)&lt;br /&gt;
GSM_DEV=$(dbus-send --system --print-reply --type=method_call --dest=org.pyneo.muxer /org/pyneo/Muxer org.freesmartphone.GSM.MUX.AllocChannel string:$id | grep string | cut -d \&amp;quot; -f 2)&lt;br /&gt;
else&lt;br /&gt;
[ -n &amp;quot;$GSM_POW&amp;quot; ] &amp;amp;&amp;amp; ( echo &amp;quot;0&amp;quot; &amp;gt;$GSM_POW; sleep 1 )&lt;br /&gt;
[ -n &amp;quot;$GSM_POW&amp;quot; ] &amp;amp;&amp;amp; ( echo &amp;quot;1&amp;quot; &amp;gt;$GSM_POW; sleep 1 )&lt;br /&gt;
[ -n &amp;quot;$GSM_RES&amp;quot; ] &amp;amp;&amp;amp; ( echo &amp;quot;1&amp;quot; &amp;gt;$GSM_RES; sleep 1 )&lt;br /&gt;
[ -n &amp;quot;$GSM_RES&amp;quot; ] &amp;amp;&amp;amp; ( echo &amp;quot;0&amp;quot; &amp;gt;$GSM_RES; sleep 2 )&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
if [ ! &amp;quot;$GSM_DEV&amp;quot; ] ; then&lt;br /&gt;
echo &amp;quot;GSM_DEV was not set&amp;quot;&lt;br /&gt;
exit 1&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
echo -n &amp;quot;Starting GSM daemon: &amp;quot;&lt;br /&gt;
start-stop-daemon -S -x /usr/sbin/gsmd -- gsmd -p $GSM_DEV $GSMD_OPTS -d -l /var/log/gsmd&lt;br /&gt;
&lt;br /&gt;
if [ $? = 0 ]; then&lt;br /&gt;
echo &amp;quot;gsmd.&amp;quot;&lt;br /&gt;
else&lt;br /&gt;
echo &amp;quot;(failed.)&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
;;&lt;br /&gt;
stop)&lt;br /&gt;
if [ ! &amp;quot;$(pidof gsm0710muxd)&amp;quot; ] ; then&lt;br /&gt;
[ -n &amp;quot;$GSM_POW&amp;quot; ] &amp;amp;&amp;amp; echo &amp;quot;0&amp;quot; &amp;gt;$GSM_POW&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
echo -n &amp;quot;Stopping GSM daemon: &amp;quot;&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''3) Remove the tty from /etc/ppp/peers/simyo''' (replace simyo with your provider).&lt;br /&gt;
&lt;br /&gt;
'''4) Use a ppp start script like this:'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cat /usr/local/bin/ppp-start&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
&lt;br /&gt;
id=$(date +%s)&lt;br /&gt;
TTY=$(dbus-send --system --print-reply --type=method_call --dest=org.pyneo.muxer /org/pyneo/Muxer org.freesmartphone.GSM.MUX.AllocChannel string:$id | grep string | cut -d \&amp;quot; -f 2)&lt;br /&gt;
logger -t ppp-start &amp;quot;using tty $TTY&amp;quot;&lt;br /&gt;
pppd $TTY call simyo&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''5) Use &amp;quot;killall pppd&amp;quot; to terminate the PPP connection.'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[:Image:Gsmmuxd.trace.txt|Here]] is some strace information from gsm0710muxd, showing how the daemon responds when receiving a call when GPRS is up.&lt;br /&gt;
&lt;br /&gt;
[http://www.teaparty.net/technotes/openmoko-2.html#GPRS Here] is Tom's documentation on how he got it working (under 2008.08), with config files and example output.&lt;br /&gt;
&lt;br /&gt;
= Option 3: Without GSM multiplexing and without a GUI =&lt;br /&gt;
&lt;br /&gt;
[Important Note: It has been pointed out that this is only for 2007.2 and not for the 2008.8 images.  If someone can confirm this and update this comment with more detail it would help out this page.  Thanks]&lt;br /&gt;
&lt;br /&gt;
The program that implements PPP on Linux is [[pppd]], which we need to configure and run to get a connection. When that is working, we can configure pppd to wait until it's needed before it connects, and to disconnect if the connection becomes idle. Further, we can start pppd in the background during the boot process.&lt;br /&gt;
&lt;br /&gt;
== Configuring pppd for manual connections ==&lt;br /&gt;
&lt;br /&gt;
You'll need /etc/ppp/peers/gprs:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Uncomment the following if you want some debug.&lt;br /&gt;
#debug&lt;br /&gt;
#logfile /var/volatile/log/pppd.log&lt;br /&gt;
lock&lt;br /&gt;
/dev/ttySAC0 115200&lt;br /&gt;
crtscts&lt;br /&gt;
connect /etc/ppp/gprs-connect-chat&lt;br /&gt;
disconnect /etc/ppp/gprs-disconnect-chat&lt;br /&gt;
hide-password&lt;br /&gt;
usepeerdns&lt;br /&gt;
ipcp-accept-local&lt;br /&gt;
noauth&lt;br /&gt;
noipdefault&lt;br /&gt;
novj&lt;br /&gt;
novjccomp&lt;br /&gt;
defaultroute&lt;br /&gt;
replacedefaultroute&lt;br /&gt;
# Reopen the connection if it fails, pausing for a while.&lt;br /&gt;
persist&lt;br /&gt;
holdoff 15&lt;br /&gt;
# Check the line every 20 seconds and presume&lt;br /&gt;
# the peer is gone if no replay for 4 times.&lt;br /&gt;
lcp-echo-interval 20&lt;br /&gt;
lcp-echo-failure 4&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Comment by Vasco: I also had to include this in order to survive a &amp;quot;'''IPCP: timeout sending Config-Requests'''&amp;quot; sporadic error that dropped my connection right in the beginning:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ipcp-restart 10&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Depending on the APN, you may need password authentication using CHAP or PAP. In /etc/ppp/pap-secrets you can add the following default line for &amp;quot;password-less&amp;quot; connections:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# client        server  secret                  IP addresses&lt;br /&gt;
*               *       &amp;quot;&amp;quot;                      *&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For CHAP, lines in /etc/ppp/chap-secrets are used. For PAP, the lines are in /etc/ppp/pap-secrets. The client should match the &amp;quot;user&amp;quot; option in pppd the config file (below). You can use * to mean any here, but the option user &amp;quot;&amp;quot; doesn't mean empty!&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Secrets for authentication using CHAP&lt;br /&gt;
# client        server  secret                  IP addresses&lt;br /&gt;
&amp;quot;user&amp;quot;         *       &amp;quot;password&amp;quot;                  *&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For this you need the following options in /etc/ppp/peers/gprs:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# username to use for authentication, should match &amp;quot;client&amp;quot; in /etc/ppp/{chap,pap}-secrets&lt;br /&gt;
user &amp;quot;user&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== gprs-connect-chat, version 1 ==&lt;br /&gt;
&lt;br /&gt;
You'll also need /etc/ppp/gprs-connect-chat (needs &amp;quot;chmod +x&amp;quot;):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh -e&lt;br /&gt;
exec chat -v -S -s\&lt;br /&gt;
TIMEOUT 15\&lt;br /&gt;
&amp;quot;&amp;quot; &amp;quot;\K\K\K\d+++ATH&amp;quot;\&lt;br /&gt;
OK-AT-OK ATZ\&lt;br /&gt;
OK ATE1\&lt;br /&gt;
ABORT BUSY\&lt;br /&gt;
ABORT DELAYED\&lt;br /&gt;
ABORT &amp;quot;NO ANSWER&amp;quot;\&lt;br /&gt;
ABORT &amp;quot;NO DIALTONE&amp;quot;\&lt;br /&gt;
ABORT VOICE\&lt;br /&gt;
ABORT ERROR\&lt;br /&gt;
ABORT RINGING\&lt;br /&gt;
TIMEOUT 60\&lt;br /&gt;
OK AT+CFUN=1\&lt;br /&gt;
OK AT+COPS\&lt;br /&gt;
OK AT+CGDCONT=1,\&amp;quot;IP\&amp;quot;,\&amp;quot;internet\&amp;quot;\&lt;br /&gt;
OK ATD*99#\&lt;br /&gt;
CONNECT /n/d&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; In the 3rd last line, replace the word &amp;lt;i&amp;gt;internet&amp;lt;/i&amp;gt; by your provider's APN (listed below).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;(08/18/08) Note:&amp;lt;/b&amp;gt; I needed to add the command &amp;quot;AT+CMOD=2&amp;quot; (formatted as &amp;quot;OK AT+CMOD=2\&amp;quot; without the quotes) in order to get GPRS working with the above script (otherwise it would ERROR on the CFUN, COPS, or the ATD if the other two were removed).  I have T-Mobile (US) with the $5.99 &amp;quot;tzones&amp;quot; addon, which works with Minimo as it supports HTTP proxy setups.&lt;br /&gt;
&lt;br /&gt;
== gprs-connect-chat, version 2 ==&lt;br /&gt;
&lt;br /&gt;
Update: On my freerunner the first AT+CFUN=1 always generated ERROR. I managed to get gprs work by using the following script from http://lists.openmoko.org/pipermail/community/2008-July/023246.html:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh -e&lt;br /&gt;
exec /usr/sbin/chat -v \&lt;br /&gt;
TIMEOUT 10 \&lt;br /&gt;
OK-AT-'' ''\&lt;br /&gt;
ABORT BUSY\&lt;br /&gt;
ABORT DELAYED\&lt;br /&gt;
ABORT &amp;quot;NO ANSWER&amp;quot;\&lt;br /&gt;
ABORT &amp;quot;NO DIALTONE&amp;quot;\&lt;br /&gt;
ABORT VOICE\&lt;br /&gt;
ABORT ERROR\&lt;br /&gt;
ABORT RINGING\&lt;br /&gt;
TIMEOUT 30 \&lt;br /&gt;
'' ATZ\&lt;br /&gt;
OK ATE1\&lt;br /&gt;
OK AT+CFUN=1\&lt;br /&gt;
ERROR AT+CPIN=\&amp;quot;XXXX\&amp;quot;\         &amp;lt;&amp;lt; USE YOUR OWN&lt;br /&gt;
OK AT+COPS\&lt;br /&gt;
OK AT+CGDCONT=1,\&amp;quot;IP\&amp;quot;,\&amp;quot;internet\&amp;quot;\&lt;br /&gt;
OK 'ATDT*99***1#'\&lt;br /&gt;
CONNECT ''&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The error seems to vary a bit, sometimes it's before AT+COPS, sometimes as above. I have two versions of the gprs-connect-chat, which I vary between depending on which is needed. Or is there a way to specify two acceptable answers like {OK,ERROR}?&lt;br /&gt;
&lt;br /&gt;
You will need to adjust the APN name &amp;quot;internet&amp;quot; in at+cgdcont line and possibly the phone number in the ATD line to match what your network operator provides. See below in the table &amp;quot;Some APN names for reference&amp;quot; for the right settings for your operator.&lt;br /&gt;
&lt;br /&gt;
== gprs-disconnect-chat ==&lt;br /&gt;
&lt;br /&gt;
Also good to have is /etc/ppp/gprs-disconnect-chat (needs &amp;quot;chmod +x&amp;quot;):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh -e&lt;br /&gt;
/usr/sbin/chat -v\&lt;br /&gt;
ABORT OK\&lt;br /&gt;
ABORT BUSY\&lt;br /&gt;
ABORT DELAYED\&lt;br /&gt;
ABORT &amp;quot;NO ANSWER&amp;quot;\&lt;br /&gt;
ABORT &amp;quot;NO CARRIER&amp;quot;\&lt;br /&gt;
ABORT &amp;quot;NO DIALTONE&amp;quot;\&lt;br /&gt;
ABORT VOICE\&lt;br /&gt;
ABORT ERROR\&lt;br /&gt;
ABORT RINGING\&lt;br /&gt;
TIMEOUT 12\&lt;br /&gt;
&amp;quot;&amp;quot; &amp;quot;\K\K\K\d+++ATH&amp;quot;\&lt;br /&gt;
&amp;quot;NO CARRIER-AT-OK&amp;quot; &amp;quot;\c&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Starting PPP connection ==&lt;br /&gt;
&lt;br /&gt;
The following script can be used to start the ppp connection. First it stops gsmd because gsmd may put the phone in a unknown state. It then turns on the power to the phone, modifies the ownership, and then creates a tty connection. Finally it starts [[pppd]] with the gprs settings.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/etc/init.d/gsmd stop&lt;br /&gt;
echo &amp;quot;1&amp;quot; &amp;gt; /sys/bus/platform/devices/neo1973-pm-gsm.0/power_on&lt;br /&gt;
chown uucp.uucp /dev/ttySAC0&lt;br /&gt;
stty -F /dev/ttySAC0 crtscts&lt;br /&gt;
pppd call gprs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you are having problems connecting ensure you have a good GSM signal and replace the last line with the below line. This will allow you to see the details of the connection on the console.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pppd debug nodetach call gprs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The config above will establish a persistant link over gprs. The battery will run low in less than an hour. See an example for an on-demand config below.&lt;br /&gt;
&lt;br /&gt;
=== Resolve.conf issues ===&lt;br /&gt;
&lt;br /&gt;
The latest build seems to have solved the following issue, it should be automatically updated by pppd.&lt;br /&gt;
&lt;br /&gt;
If you expeience DNS issues after connecting to DNS you may need a proper /etc/resolv.conf:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ln -sf /var/run/resolv.conf /etc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If needed put your nameserver for usb-net into /var/run/resolv.conf, not in /etc.&lt;br /&gt;
&lt;br /&gt;
The image does not set a correct resolv.conf. i do so with an&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo  nameserver 192.168.0.201 &amp;gt; /var/run/resolv.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
in the right place. because a post-up in /etc/network/interfaces is not supported i do that in /etc/network/if-up.d/08setupdns&lt;br /&gt;
&lt;br /&gt;
another problem is pppd's /etc/ppp/ip-down.d/92removedns which does not properly remove the link when shuting down ppp. my fix is this script:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
ACTUALCONF=/var/run/resolv.conf&lt;br /&gt;
PPPCONF=/var/run/ppp/resolv.conf&lt;br /&gt;
if [ -f $PPPCONF ] ; then&lt;br /&gt;
if [ -f $ACTUALCONF ] ; then&lt;br /&gt;
if [ ! -h $ACTUALCONF -o ! &amp;quot;`readlink $ACTUALCONF 2&amp;gt;&amp;amp;1`&amp;quot; = &amp;quot;$PPPCONF&amp;quot; ] ; then&lt;br /&gt;
mv $ACTUALCONF $ACTUALCONF.ppporig&lt;br /&gt;
fi&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
ln -sf $PPPCONF $ACTUALCONF&lt;br /&gt;
fi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Some APN names for reference ===&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Country&lt;br /&gt;
! Carrier&lt;br /&gt;
! Plan&lt;br /&gt;
! APN/Phone&lt;br /&gt;
! user/password if required&lt;br /&gt;
! Working pppd scripts&lt;br /&gt;
|-&lt;br /&gt;
| Australia || Telstra || Any || telstra.internet ||  || use CHAP auth with &amp;quot;&amp;quot; secret ||&lt;br /&gt;
|-&lt;br /&gt;
| Australia || Virgin || Any || VirginInternet || ||&lt;br /&gt;
|-&lt;br /&gt;
| Australia || Vodafone || Any || vfinternet.au || ||&lt;br /&gt;
|-&lt;br /&gt;
| Austria|| Orange/One|| Any || web.one.at || web/web || works with gsm0710d under om2008.9: [http://freeyourphone.de/portal_v1/viewtopic.php?f=21&amp;amp;t=295 howto] - complete /etc/ppp/ directory with settings can be found here: [http://www.true-binary.com/wp-content/uploads/2008/11/orange_ppp.tar.gz orange_ppp.tar.gz]&lt;br /&gt;
|-&lt;br /&gt;
| Canada || Fido || Any, behind NAT || internet.fido.ca || fido/fido || use pap authetication&lt;br /&gt;
proxy address 205.151.011.011:8080&lt;br /&gt;
&lt;br /&gt;
mdbus -s org.freesmartphone.frameworkd /org/freesmartphone/GSM/Device&lt;br /&gt;
org.freesmartphone.GSM.PDP.ActivateContext internet.fido.ca fido&lt;br /&gt;
fido&lt;br /&gt;
|-&lt;br /&gt;
| Canada || Rogers || Any, behind NAT || internet.com || wapuser1/wap || nameserver 207.181.101.4&lt;br /&gt;
|-&lt;br /&gt;
| Canada || Rogers || $7 unlimited browsing || goam.com || wapuser1/wap || Must use a proxy server 10.128.1.69:80 (or 172.25.0.107:80 or 208.200.67.150:8080)&lt;br /&gt;
|-&lt;br /&gt;
| Czech Republic || Vodafone || any postpaid || internet || must be empty || [[GPRS_FSO|Works with FSO]] Behind NAT.&lt;br /&gt;
|-&lt;br /&gt;
| Czech Republic || Vodafone || prepaid || ointernet || must be empty || [[GPRS_FSO|Works with FSO]] Behind NAT.&lt;br /&gt;
|-&lt;br /&gt;
| Czech Republic || 02 || Unlimited data plan || internet || must be empty || [[http://wiki.openmoko.org/index.php?title=Manually_using_GPRS&amp;amp;action=submit#Option_3:_Without_GSM_multiplexing_and_without_a_GUI Works with OM2008.9]].&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Denmark || Telmore || || wap || must be empty ||&lt;br /&gt;
|-&lt;br /&gt;
| Denmark || Unotel || || internet || must be empty || Note: APN not tested&lt;br /&gt;
|-&lt;br /&gt;
| Estonia || Elisa || Any, behind NAT || internet || ||&lt;br /&gt;
|-&lt;br /&gt;
| Estonia || EMT || Any, behind NAT || internet.emt.ee || ||&lt;br /&gt;
|-&lt;br /&gt;
| Fiji || Digicel || Any || wap.digicelpacific.com || || nameserver 10.150.123.41 10.150.102.240 Must use a proxy server 10.150.122.12:8080&lt;br /&gt;
|-&lt;br /&gt;
| Finland || Saunalahti || Any || internet.saunalahti || ||&lt;br /&gt;
|-&lt;br /&gt;
| Finland || Sonera   || Any, behind NAT || internet || ||&lt;br /&gt;
|-&lt;br /&gt;
| Finland || Sonera   || Any, public IP  || prointernet || ||&lt;br /&gt;
|-&lt;br /&gt;
| France || SFR || 10.x.x.x? || websfr || || under tests&lt;br /&gt;
|-&lt;br /&gt;
| France || SFR || 10.x.x.x? || wapsfr&amp;lt;sup&amp;gt;[1]&amp;lt;/sup&amp;gt;|| || under tests&lt;br /&gt;
|-&lt;br /&gt;
| France || Orange || ??? || orange || orange orange|| Work under OM2008.9 FDOM with UI ( gsm0710muxd )&lt;br /&gt;
|-&lt;br /&gt;
| France || Bouyges Telecom || Web &amp;amp; Mail || mmsbouygtel.com || || Work great under FSO. Just follow instructions at http://wiki.openmoko.org/wiki/GPRS_FSO. Proxy:  62.201.129.225:8080. For emails, only ports 25 (smtp) and 110 (pop) are allowed. (They use a transparent proxy ...)&lt;br /&gt;
|-&lt;br /&gt;
| Germany || E-Plus || BASE (and others?) || internet.eplus.de || eplus gprs || [[Base pppd scripts]]&lt;br /&gt;
|-&lt;br /&gt;
| Germany || E-Plus || Simyo || internet.eplus.de || simyo simyo || [[simyo pppd scripts]]&lt;br /&gt;
|-&lt;br /&gt;
| Germany || T-Mobile ||  || internet.t-mobile || ||&lt;br /&gt;
|-&lt;br /&gt;
| Germany || Vodafone || Any, behind NAT || web.vodafone.de || ||&lt;br /&gt;
|-&lt;br /&gt;
| Hungary || T-Mobile || Any || internet / *99***1# || must be empty || must disable chap auth: refuse-chap, refuse-mschap, refuse-mschap-v2&lt;br /&gt;
|-&lt;br /&gt;
| India || AirTel || MobileOffice || airtelgprs.com || ||&lt;br /&gt;
|-&lt;br /&gt;
| Ireland || Vodafone ||  || isp.vodafone.ie || vodafone/vodafone ||&lt;br /&gt;
|-&lt;br /&gt;
| Ireland || O2       ||  || open.internet || gprs/gprs ||&lt;br /&gt;
|-&lt;br /&gt;
| Italy   || Wind     || Superinternet, public IP  || internet.wind / *99# || wind/wind (any string) || [[Wind pppd scripts]]&lt;br /&gt;
|-&lt;br /&gt;
| Netherlands || Vodafone || Any || live.vodafone.com / *99***1#||  || [[Vodafone pppd scripts]]&lt;br /&gt;
|-&lt;br /&gt;
| New Zealand || Vodafone || Any || live.vodafone.com / *99***2#||  ||&lt;br /&gt;
|-&lt;br /&gt;
| Norway || Netcom || Any || internet.netcom.no || ||&lt;br /&gt;
|-&lt;br /&gt;
| Norway || OneCall || Any || internet || ||&lt;br /&gt;
|-&lt;br /&gt;
| Norway || Telenor || Any || telenor || ||&lt;br /&gt;
|-&lt;br /&gt;
| Russia || MTS || Any || internet.mts.ru / *99***1# || mts/mts ||&lt;br /&gt;
|-&lt;br /&gt;
| Russia || Megafon || Any || internet || ||&lt;br /&gt;
|-&lt;br /&gt;
| Spain   || Masmovil     || Any  || internetmas ||  ||&lt;br /&gt;
|-&lt;br /&gt;
| Spain   || Simyo     || Any  || gprs-service.com / *99# ||  ||&lt;br /&gt;
|-&lt;br /&gt;
| Spain   || Yoigo     || Any  || internet / *99***1 || must be empty || [[Yoigo pppd scripts]]&lt;br /&gt;
|-&lt;br /&gt;
| Sweden || Parlino ||  || internet.parlino.se || || [[GPRS_FSO|Works with FSO]]&lt;br /&gt;
|-&lt;br /&gt;
| Sweden || Telia ||  || online.telia.se || || [[GPRS_FSO|Works with FSO]]&lt;br /&gt;
|-&lt;br /&gt;
| Switzerland || Sunrise ||  || internet || ||&lt;br /&gt;
|-&lt;br /&gt;
| Switzerland || Sunrise || MMS || mms.sunrise.ch || ||&lt;br /&gt;
|-&lt;br /&gt;
| Switzerland || Swisscom || e.g. Natel Basic Liberty, behind NAT || gprs.swisscom.ch || ||&lt;br /&gt;
|-&lt;br /&gt;
| UK || T-Mobile|| || general.t-mobile.uk || ||&lt;br /&gt;
|-&lt;br /&gt;
| UK || Virgin || || goto.virginmobile.uk || user ||&lt;br /&gt;
|-&lt;br /&gt;
| UK || [http://www.filesaveas.com/gprs.html other providers] || || || ||&lt;br /&gt;
|-&lt;br /&gt;
| USA || AT&amp;amp;T || Unlimited data plan (attached to pay-as-you-go voice plan) || wap.cingular / *99***1# || WAP@CINGULARGPRS.COM/CINGULAR1 ||&lt;br /&gt;
|-&lt;br /&gt;
| USA || Cincinnati Bell Wireless || || wap.gocbw.com ||  cbw  ||&lt;br /&gt;
|-&lt;br /&gt;
| USA || Cingular (AT&amp;amp;T) || Less than full internet || wap.cingular / may require *99***1# || ||&lt;br /&gt;
|-&lt;br /&gt;
| USA || T-mobile || Anything less than full internet || wap.voicestream.com ||  || Need to set proxy to 216.155.165.50  T-Mobile docs say &amp;quot;216.155.165.050&amp;quot;.  050 octal = 40 decimal and will *not* work.  I think port is 8080 or 9100.  No luck w/ pppd scripts.  GPRS_FSO directions work under FSO though.&lt;br /&gt;
|-&lt;br /&gt;
| USA || T-mobile || Regular internet plan || internet2.voicestream.com || || [[T-Mobile pppd scripts]]&lt;br /&gt;
|-&lt;br /&gt;
| USA || T-mobile || &amp;quot;VPN&amp;quot; internet plan || internet3.voicestream.com || ||&lt;br /&gt;
|-&lt;br /&gt;
| Venezuela || Digitel || Pre- y post-pago || gprsweb.digitel.ve || ||&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[1] connected through a WAP proxy (slower, but the only way to access Vodafone live! and SFR portal)&lt;br /&gt;
&lt;br /&gt;
[2] Unless stated otherwise the phone number to call is &amp;quot;*99#&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Also see Ross Barkman's page for a detailed list of more [http://www.taniwha.org.uk/gprs.html global GPRS providers APN details]&lt;br /&gt;
&lt;br /&gt;
== Starting pppd automatically ==&lt;br /&gt;
&lt;br /&gt;
Once you have finished debugging your gprs-connect-chat and gprs options files, you may wish to automatically connect whenever needed and hang up when finished.  Make sure you understand the impact of this change to your carrier plan billing.  This is not recommended unless you have a large-use or unlimited data plan.  These scripts do NOT prompt you before connecting.&lt;br /&gt;
&lt;br /&gt;
=== On-demand connection settings ===&lt;br /&gt;
&lt;br /&gt;
Additional settings are needed if you want the actual connection to be up only while there is traffic. In the 'gprs' file above, insert the following, making sure 'nodetach' is commented out.  If 'nodetach' is on, the boot process will stop when it starts pppd. Also remove the option 'persist' mentioned above.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Wait until needed before connecting&lt;br /&gt;
demand&lt;br /&gt;
&lt;br /&gt;
# Disconnect if idle for given amount of seconds&lt;br /&gt;
idle 20&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Start on boot (method 1) ===&lt;br /&gt;
&lt;br /&gt;
Add the following definition to /etc/network/interfaces:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
auto ppp0&lt;br /&gt;
iface ppp0 inet ppp&lt;br /&gt;
provider gprs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
That should be it. Now you can use 'ifup ppp0' and 'ifdown ppp0' manually too.&lt;br /&gt;
&lt;br /&gt;
=== Start on boot (method 2) ===&lt;br /&gt;
&lt;br /&gt;
Create the following file as /etc/ppp/ppp_on_boot (needs chmod +x).  The /etc/init.d/ppp script will call it to set up the daemon.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
#&lt;br /&gt;
#   Rename this file to ppp_on_boot and pppd will be fired up as&lt;br /&gt;
#   soon as the system comes up, connecting to `provider'.&lt;br /&gt;
#&lt;br /&gt;
#   If you also make this file executable, and replace the first line&lt;br /&gt;
#   with just &amp;quot;#!/bin/sh&amp;quot;, the commands below will be executed instead.&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
# The location of the ppp daemon itself (shouldn't need to be changed)&lt;br /&gt;
PPPD=/usr/sbin/pppd&lt;br /&gt;
&lt;br /&gt;
# The default provider to connect to&lt;br /&gt;
$PPPD call gprs&lt;br /&gt;
&lt;br /&gt;
# Additional connections, which would just use settings from&lt;br /&gt;
# /etc/ppp/options.&amp;lt;tty&amp;gt;&lt;br /&gt;
#$PPPD ttyS0&lt;br /&gt;
#$PPPD ttyS1&lt;br /&gt;
#$PPPD ttyS2&lt;br /&gt;
#$PPPD ttyS3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Finally, you need to add the /etc/init.d/ppp script to the init process by creating symbolic links from the appropriate directories.  I chose the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/etc/rc0.d/K25ppp&lt;br /&gt;
/etc/rc1.d/K45ppp&lt;br /&gt;
/etc/rc2.d/S45ppp&lt;br /&gt;
/etc/rc3.d/S45ppp&lt;br /&gt;
/etc/rc4.d/S45ppp&lt;br /&gt;
/etc/rc5.d/S45ppp&lt;br /&gt;
/etc/rc6.d/K25ppp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Qt Extended =&lt;br /&gt;
If password/username is not mandotory for your provider, input anything e.g. x. Works fine with 4.4.2.&lt;br /&gt;
&lt;br /&gt;
= Sharing the GPRS connection with a computer =&lt;br /&gt;
&lt;br /&gt;
See [[Tethering]]&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[pppd]]&lt;br /&gt;
* [[Manually using GSM]]&lt;br /&gt;
* [[Manually using Bluetooth]]&lt;br /&gt;
* [[GPRS FSO]]&lt;br /&gt;
{{Languages|Manually_using_GPRS}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Application Developer]]&lt;br /&gt;
[[Category:Networking]]&lt;br /&gt;
[[Category:GSM]]&lt;/div&gt;</summary>
		<author><name>MMlosh</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Manually_using_GPRS</id>
		<title>Manually using GPRS</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Manually_using_GPRS"/>
				<updated>2009-01-01T16:10:28Z</updated>
		
		<summary type="html">&lt;p&gt;MMlosh: /* gsm0710muxd */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{note| These instructions are for OM2008.8 .  If you are using the FSO stack, see [[GPRS_FSO]].}}&lt;br /&gt;
&lt;br /&gt;
The GPRS connection is made using the PPP protocol to a server identified by an &amp;quot;APN&amp;quot; at the network operator.   Once a GPRS connection is made, it is possible to [[#Sharing_the_GPRS_connection_with_a_computer|share that connection with a connected computer]], allowing that computer to access the internet through the phone!&lt;br /&gt;
&lt;br /&gt;
= Option 1: With GSM multiplexing and with a GUI =&lt;br /&gt;
&lt;br /&gt;
{{note|The following does not appear to work if you have a SIM PIN.  The dialog to enter your SIM PIN never pops up and the GSM multiplexing daemon continuous loops and runs into a SIM PIN error.}}&lt;br /&gt;
&lt;br /&gt;
GSM multiplexing allows both a GPRS connection and a phone call to be handled at the same time.  By default, [[Om 2008.8]] does not multiplex the GSM device.  The [[FSO]] distribution, however, introduces GSM multiplexing with a new service and a DBus API to that service.  The instructions to modify the OM2008.8 distribution to make use of GSM multiplexing and allow you to start GPRS from a GUI can be found here: http://freeyourphone.de/portal_v1/viewtopic.php?f=21&amp;amp;t=295 ('''Note:''' Script package seems to be no longer be available, but a later post in the thread links to a version at [http://fyp-archiv.relei.de/ http://fyp-archiv.relei.de/].)&lt;br /&gt;
&lt;br /&gt;
== gsm0710muxd ==&lt;br /&gt;
&lt;br /&gt;
There are two sources, where you can find gsm0710muxd.&lt;br /&gt;
&lt;br /&gt;
=== From OM2008.8 repositories ===&lt;br /&gt;
&lt;br /&gt;
Good news, working gsm0710muxd can be installed just by typing &amp;quot;opkg install gsm0710muxd&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== From Angstrom Repositories ===&lt;br /&gt;
&lt;br /&gt;
If the gsm0710muxd that is found in the OM2008.8 repository refuses to work, you can use the one from the Angstrom Repositories (see [[Repositories]]) instead.&lt;br /&gt;
&lt;br /&gt;
Alternatively, if you simply want to download all the packages, you can get them from here:&lt;br /&gt;
&lt;br /&gt;
http://www.angstrom-distribution.org/feeds/2008/ipk/glibc/armv4t/base/gsm0710muxd_0.9.1+r0-gitr3ff86b129640b647ccba3d86eb243d864671b039-r0_armv4t.ipk&lt;br /&gt;
&lt;br /&gt;
I don't know if the package got renamed but that one wasn't in there the one i downloaded was&lt;br /&gt;
&lt;br /&gt;
http://www.angstrom-distribution.org/feeds/2008/ipk/glibc/armv4t/base/gsm0710muxd_0.9.2+gitr79e10fe8ad0828e5be9a5c087ac9ee04956674c1-r0.1_armv4t.ipk&lt;br /&gt;
&lt;br /&gt;
haven't gotten past this step yet well see how / if it works. :)&lt;br /&gt;
&lt;br /&gt;
This link was working for me on 11.12.2008 (I've successfully muxed GSM device and sent command for echo reduction - http://lists.openmoko.org/pipermail/community/2008-August/028495.html)&lt;br /&gt;
&lt;br /&gt;
http://shr.bearstech.com/shr-testing/ipk/armv4t/gsm0710muxd-dbg_0.9.2+gitr12+d8b36b923ef69a64cb5a2d3bca799d772b9c73c3-r0.1_armv4t.ipk&lt;br /&gt;
&lt;br /&gt;
and the dependencies from here:&lt;br /&gt;
&lt;br /&gt;
http://www.angstrom-distribution.org/repo/?pkgname=gsm0710muxd&lt;br /&gt;
&lt;br /&gt;
Make sure that you install the armv4t versions of all packages.&lt;br /&gt;
&lt;br /&gt;
=== Common part ===&lt;br /&gt;
&lt;br /&gt;
The most important step after installing gsm0710muxd is to tell QPE to use the MUX instead of the device directly.  If you follow the instructions in the link above, there is a step that replaces the 89qtopia init script with one from their script package.  The key difference is the addition of the following lines that tells QPE to use the MUX:&lt;br /&gt;
&lt;br /&gt;
in /etc/X11/Xsession.d/89qtopia&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
identvar=$(date +%s)&amp;lt;br/&amp;gt;&lt;br /&gt;
ptsvar=$(dbus-send --system --print-reply --type=method_call --dest=org.pyneo.muxer /org/pyneo/Muxer&lt;br /&gt;
org.freesmartphone.GSM.MUX.AllocChannel string:$identvar | grep string | awk -F '&amp;quot;' '{ print $2 }')&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
export QTOPIA_PHONE_DEVICE=$ptsvar&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The [[#Some APN names for reference|APN Reference]] table may come in handy when you are looking for the required network specific information for the other scripts.&lt;br /&gt;
&lt;br /&gt;
Once you follow through with all the instructions, you will notice that the &amp;quot;Services&amp;quot; GUI will crash.  This has to do with this bug: http://docs.openmoko.org/trac/ticket/1718&lt;br /&gt;
&lt;br /&gt;
The fix is to change the &amp;quot;init()&amp;quot; call on line 82 of /usr/lib/python2.5/site-packages/gtk-2.0/gtk/_init_.py  to &amp;quot;_init()&amp;quot; (add an underscore).&lt;br /&gt;
&lt;br /&gt;
You may also have to modify your /etc/resolv.conf file and add the nameserver (DNS Server) of your service provider if you have DNS resolution problems.&lt;br /&gt;
&lt;br /&gt;
Then, hopefully, you should be up in running with GPRS and a GUI to turn it on and off.  Note that you can use the command line scripts &amp;quot;gprson&amp;quot; and &amp;quot;gprsoff&amp;quot; in place of the GUI if you need to do some debugging.&lt;br /&gt;
&lt;br /&gt;
= Option 2: With GSM multiplexing and without a GUI =&lt;br /&gt;
&lt;br /&gt;
You will have to get gsm0710muxd the same way as detailed in Option 1.&lt;br /&gt;
&lt;br /&gt;
'''1) In /etc/rc5.d start gsm0710muxd before gsmd:'''&lt;br /&gt;
* S34gsm0710muxd -&amp;gt; ../init.d/gsm0710muxd&lt;br /&gt;
* S35gsmd -&amp;gt; ../init.d/gsmd&lt;br /&gt;
&lt;br /&gt;
'''2) Modify S35gsmd so it can start either with or without gsm0710muxd:'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
case &amp;quot;$1&amp;quot; in&lt;br /&gt;
start)&lt;br /&gt;
if [ &amp;quot;$(pidof gsm0710muxd)&amp;quot; ] ; then&lt;br /&gt;
id=$(date +%s)&lt;br /&gt;
GSM_DEV=$(dbus-send --system --print-reply --type=method_call --dest=org.pyneo.muxer /org/pyneo/Muxer org.freesmartphone.GSM.MUX.AllocChannel string:$id | grep string | cut -d \&amp;quot; -f 2)&lt;br /&gt;
else&lt;br /&gt;
[ -n &amp;quot;$GSM_POW&amp;quot; ] &amp;amp;&amp;amp; ( echo &amp;quot;0&amp;quot; &amp;gt;$GSM_POW; sleep 1 )&lt;br /&gt;
[ -n &amp;quot;$GSM_POW&amp;quot; ] &amp;amp;&amp;amp; ( echo &amp;quot;1&amp;quot; &amp;gt;$GSM_POW; sleep 1 )&lt;br /&gt;
[ -n &amp;quot;$GSM_RES&amp;quot; ] &amp;amp;&amp;amp; ( echo &amp;quot;1&amp;quot; &amp;gt;$GSM_RES; sleep 1 )&lt;br /&gt;
[ -n &amp;quot;$GSM_RES&amp;quot; ] &amp;amp;&amp;amp; ( echo &amp;quot;0&amp;quot; &amp;gt;$GSM_RES; sleep 2 )&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
if [ ! &amp;quot;$GSM_DEV&amp;quot; ] ; then&lt;br /&gt;
echo &amp;quot;GSM_DEV was not set&amp;quot;&lt;br /&gt;
exit 1&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
echo -n &amp;quot;Starting GSM daemon: &amp;quot;&lt;br /&gt;
start-stop-daemon -S -x /usr/sbin/gsmd -- gsmd -p $GSM_DEV $GSMD_OPTS -d -l /var/log/gsmd&lt;br /&gt;
&lt;br /&gt;
if [ $? = 0 ]; then&lt;br /&gt;
echo &amp;quot;gsmd.&amp;quot;&lt;br /&gt;
else&lt;br /&gt;
echo &amp;quot;(failed.)&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
;;&lt;br /&gt;
stop)&lt;br /&gt;
if [ ! &amp;quot;$(pidof gsm0710muxd)&amp;quot; ] ; then&lt;br /&gt;
[ -n &amp;quot;$GSM_POW&amp;quot; ] &amp;amp;&amp;amp; echo &amp;quot;0&amp;quot; &amp;gt;$GSM_POW&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
echo -n &amp;quot;Stopping GSM daemon: &amp;quot;&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''3) Remove the tty from /etc/ppp/peers/simyo''' (replace simyo with your provider).&lt;br /&gt;
&lt;br /&gt;
'''4) Use a ppp start script like this:'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cat /usr/local/bin/ppp-start&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
&lt;br /&gt;
id=$(date +%s)&lt;br /&gt;
TTY=$(dbus-send --system --print-reply --type=method_call --dest=org.pyneo.muxer /org/pyneo/Muxer org.freesmartphone.GSM.MUX.AllocChannel string:$id | grep string | cut -d \&amp;quot; -f 2)&lt;br /&gt;
logger -t ppp-start &amp;quot;using tty $TTY&amp;quot;&lt;br /&gt;
pppd $TTY call simyo&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''5) Use &amp;quot;killall pppd&amp;quot; to terminate the PPP connection.'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[:Image:Gsmmuxd.trace.txt|Here]] is some strace information from gsm0710muxd, showing how the daemon responds when receiving a call when GPRS is up.&lt;br /&gt;
&lt;br /&gt;
[http://www.teaparty.net/technotes/openmoko-2.html#GPRS Here] is Tom's documentation on how he got it working (under 2008.08), with config files and example output.&lt;br /&gt;
&lt;br /&gt;
= Option 3: Without GSM multiplexing and without a GUI =&lt;br /&gt;
&lt;br /&gt;
[Important Note: It has been pointed out that this is only for 2007.2 and not for the 2008.8 images.  If someone can confirm this and update this comment with more detail it would help out this page.  Thanks]&lt;br /&gt;
&lt;br /&gt;
The program that implements PPP on Linux is [[pppd]], which we need to configure and run to get a connection. When that is working, we can configure pppd to wait until it's needed before it connects, and to disconnect if the connection becomes idle. Further, we can start pppd in the background during the boot process.&lt;br /&gt;
&lt;br /&gt;
== Configuring pppd for manual connections ==&lt;br /&gt;
&lt;br /&gt;
You'll need /etc/ppp/peers/gprs:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Uncomment the following if you want some debug.&lt;br /&gt;
#debug&lt;br /&gt;
#logfile /var/volatile/log/pppd.log&lt;br /&gt;
lock&lt;br /&gt;
/dev/ttySAC0 115200&lt;br /&gt;
crtscts&lt;br /&gt;
connect /etc/ppp/gprs-connect-chat&lt;br /&gt;
disconnect /etc/ppp/gprs-disconnect-chat&lt;br /&gt;
hide-password&lt;br /&gt;
usepeerdns&lt;br /&gt;
ipcp-accept-local&lt;br /&gt;
noauth&lt;br /&gt;
noipdefault&lt;br /&gt;
novj&lt;br /&gt;
novjccomp&lt;br /&gt;
defaultroute&lt;br /&gt;
replacedefaultroute&lt;br /&gt;
# Reopen the connection if it fails, pausing for a while.&lt;br /&gt;
persist&lt;br /&gt;
holdoff 15&lt;br /&gt;
# Check the line every 20 seconds and presume&lt;br /&gt;
# the peer is gone if no replay for 4 times.&lt;br /&gt;
lcp-echo-interval 20&lt;br /&gt;
lcp-echo-failure 4&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Comment by Vasco: I also had to include this in order to survive a &amp;quot;'''IPCP: timeout sending Config-Requests'''&amp;quot; sporadic error that dropped my connection right in the beginning:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ipcp-restart 10&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Depending on the APN, you may need password authentication using CHAP or PAP. In /etc/ppp/pap-secrets you can add the following default line for &amp;quot;password-less&amp;quot; connections:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# client        server  secret                  IP addresses&lt;br /&gt;
*               *       &amp;quot;&amp;quot;                      *&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For CHAP, lines in /etc/ppp/chap-secrets are used. For PAP, the lines are in /etc/ppp/pap-secrets. The client should match the &amp;quot;user&amp;quot; option in pppd the config file (below). You can use * to mean any here, but the option user &amp;quot;&amp;quot; doesn't mean empty!&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Secrets for authentication using CHAP&lt;br /&gt;
# client        server  secret                  IP addresses&lt;br /&gt;
&amp;quot;user&amp;quot;         *       &amp;quot;password&amp;quot;                  *&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For this you need the following options in /etc/ppp/peers/gprs:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# username to use for authentication, should match &amp;quot;client&amp;quot; in /etc/ppp/{chap,pap}-secrets&lt;br /&gt;
user &amp;quot;user&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== gprs-connect-chat, version 1 ==&lt;br /&gt;
&lt;br /&gt;
You'll also need /etc/ppp/gprs-connect-chat (needs &amp;quot;chmod +x&amp;quot;):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh -e&lt;br /&gt;
exec chat -v -S -s\&lt;br /&gt;
TIMEOUT 15\&lt;br /&gt;
&amp;quot;&amp;quot; &amp;quot;\K\K\K\d+++ATH&amp;quot;\&lt;br /&gt;
OK-AT-OK ATZ\&lt;br /&gt;
OK ATE1\&lt;br /&gt;
ABORT BUSY\&lt;br /&gt;
ABORT DELAYED\&lt;br /&gt;
ABORT &amp;quot;NO ANSWER&amp;quot;\&lt;br /&gt;
ABORT &amp;quot;NO DIALTONE&amp;quot;\&lt;br /&gt;
ABORT VOICE\&lt;br /&gt;
ABORT ERROR\&lt;br /&gt;
ABORT RINGING\&lt;br /&gt;
TIMEOUT 60\&lt;br /&gt;
OK AT+CFUN=1\&lt;br /&gt;
OK AT+COPS\&lt;br /&gt;
OK AT+CGDCONT=1,\&amp;quot;IP\&amp;quot;,\&amp;quot;internet\&amp;quot;\&lt;br /&gt;
OK ATD*99#\&lt;br /&gt;
CONNECT /n/d&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; In the 3rd last line, replace the word &amp;lt;i&amp;gt;internet&amp;lt;/i&amp;gt; by your provider's APN (listed below).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;(08/18/08) Note:&amp;lt;/b&amp;gt; I needed to add the command &amp;quot;AT+CMOD=2&amp;quot; (formatted as &amp;quot;OK AT+CMOD=2\&amp;quot; without the quotes) in order to get GPRS working with the above script (otherwise it would ERROR on the CFUN, COPS, or the ATD if the other two were removed).  I have T-Mobile (US) with the $5.99 &amp;quot;tzones&amp;quot; addon, which works with Minimo as it supports HTTP proxy setups.&lt;br /&gt;
&lt;br /&gt;
== gprs-connect-chat, version 2 ==&lt;br /&gt;
&lt;br /&gt;
Update: On my freerunner the first AT+CFUN=1 always generated ERROR. I managed to get gprs work by using the following script from http://lists.openmoko.org/pipermail/community/2008-July/023246.html:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh -e&lt;br /&gt;
exec /usr/sbin/chat -v \&lt;br /&gt;
TIMEOUT 10 \&lt;br /&gt;
OK-AT-'' ''\&lt;br /&gt;
ABORT BUSY\&lt;br /&gt;
ABORT DELAYED\&lt;br /&gt;
ABORT &amp;quot;NO ANSWER&amp;quot;\&lt;br /&gt;
ABORT &amp;quot;NO DIALTONE&amp;quot;\&lt;br /&gt;
ABORT VOICE\&lt;br /&gt;
ABORT ERROR\&lt;br /&gt;
ABORT RINGING\&lt;br /&gt;
TIMEOUT 30 \&lt;br /&gt;
'' ATZ\&lt;br /&gt;
OK ATE1\&lt;br /&gt;
OK AT+CFUN=1\&lt;br /&gt;
ERROR AT+CPIN=\&amp;quot;XXXX\&amp;quot;\         &amp;lt;&amp;lt; USE YOUR OWN&lt;br /&gt;
OK AT+COPS\&lt;br /&gt;
OK AT+CGDCONT=1,\&amp;quot;IP\&amp;quot;,\&amp;quot;internet\&amp;quot;\&lt;br /&gt;
OK 'ATDT*99***1#'\&lt;br /&gt;
CONNECT ''&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The error seems to vary a bit, sometimes it's before AT+COPS, sometimes as above. I have two versions of the gprs-connect-chat, which I vary between depending on which is needed. Or is there a way to specify two acceptable answers like {OK,ERROR}?&lt;br /&gt;
&lt;br /&gt;
You will need to adjust the APN name &amp;quot;internet&amp;quot; in at+cgdcont line and possibly the phone number in the ATD line to match what your network operator provides. See below in the table &amp;quot;Some APN names for reference&amp;quot; for the right settings for your operator.&lt;br /&gt;
&lt;br /&gt;
== gprs-disconnect-chat ==&lt;br /&gt;
&lt;br /&gt;
Also good to have is /etc/ppp/gprs-disconnect-chat (needs &amp;quot;chmod +x&amp;quot;):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh -e&lt;br /&gt;
/usr/sbin/chat -v\&lt;br /&gt;
ABORT OK\&lt;br /&gt;
ABORT BUSY\&lt;br /&gt;
ABORT DELAYED\&lt;br /&gt;
ABORT &amp;quot;NO ANSWER&amp;quot;\&lt;br /&gt;
ABORT &amp;quot;NO CARRIER&amp;quot;\&lt;br /&gt;
ABORT &amp;quot;NO DIALTONE&amp;quot;\&lt;br /&gt;
ABORT VOICE\&lt;br /&gt;
ABORT ERROR\&lt;br /&gt;
ABORT RINGING\&lt;br /&gt;
TIMEOUT 12\&lt;br /&gt;
&amp;quot;&amp;quot; &amp;quot;\K\K\K\d+++ATH&amp;quot;\&lt;br /&gt;
&amp;quot;NO CARRIER-AT-OK&amp;quot; &amp;quot;\c&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Starting PPP connection ==&lt;br /&gt;
&lt;br /&gt;
The following script can be used to start the ppp connection. First it stops gsmd because gsmd may put the phone in a unknown state. It then turns on the power to the phone, modifies the ownership, and then creates a tty connection. Finally it starts [[pppd]] with the gprs settings.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/etc/init.d/gsmd stop&lt;br /&gt;
echo &amp;quot;1&amp;quot; &amp;gt; /sys/bus/platform/devices/neo1973-pm-gsm.0/power_on&lt;br /&gt;
chown uucp.uucp /dev/ttySAC0&lt;br /&gt;
stty -F /dev/ttySAC0 crtscts&lt;br /&gt;
pppd call gprs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you are having problems connecting ensure you have a good GSM signal and replace the last line with the below line. This will allow you to see the details of the connection on the console.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pppd debug nodetach call gprs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The config above will establish a persistant link over gprs. The battery will run low in less than an hour. See an example for an on-demand config below.&lt;br /&gt;
&lt;br /&gt;
=== Resolve.conf issues ===&lt;br /&gt;
&lt;br /&gt;
The latest build seems to have solved the following issue, it should be automatically updated by pppd.&lt;br /&gt;
&lt;br /&gt;
If you expeience DNS issues after connecting to DNS you may need a proper /etc/resolv.conf:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ln -sf /var/run/resolv.conf /etc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If needed put your nameserver for usb-net into /var/run/resolv.conf, not in /etc.&lt;br /&gt;
&lt;br /&gt;
The image does not set a correct resolv.conf. i do so with an&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo  nameserver 192.168.0.201 &amp;gt; /var/run/resolv.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
in the right place. because a post-up in /etc/network/interfaces is not supported i do that in /etc/network/if-up.d/08setupdns&lt;br /&gt;
&lt;br /&gt;
another problem is pppd's /etc/ppp/ip-down.d/92removedns which does not properly remove the link when shuting down ppp. my fix is this script:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
ACTUALCONF=/var/run/resolv.conf&lt;br /&gt;
PPPCONF=/var/run/ppp/resolv.conf&lt;br /&gt;
if [ -f $PPPCONF ] ; then&lt;br /&gt;
if [ -f $ACTUALCONF ] ; then&lt;br /&gt;
if [ ! -h $ACTUALCONF -o ! &amp;quot;`readlink $ACTUALCONF 2&amp;gt;&amp;amp;1`&amp;quot; = &amp;quot;$PPPCONF&amp;quot; ] ; then&lt;br /&gt;
mv $ACTUALCONF $ACTUALCONF.ppporig&lt;br /&gt;
fi&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
ln -sf $PPPCONF $ACTUALCONF&lt;br /&gt;
fi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Some APN names for reference ===&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Country&lt;br /&gt;
! Carrier&lt;br /&gt;
! Plan&lt;br /&gt;
! APN/Phone&lt;br /&gt;
! user/password if required&lt;br /&gt;
! Working pppd scripts&lt;br /&gt;
|-&lt;br /&gt;
| Australia || Telstra || Any || telstra.internet ||  || use CHAP auth with &amp;quot;&amp;quot; secret ||&lt;br /&gt;
|-&lt;br /&gt;
| Australia || Virgin || Any || VirginInternet || ||&lt;br /&gt;
|-&lt;br /&gt;
| Australia || Vodafone || Any || vfinternet.au || ||&lt;br /&gt;
|-&lt;br /&gt;
| Austria|| Orange/One|| Any || web.one.at || web/web || works with gsm0710d under om2008.9: [http://freeyourphone.de/portal_v1/viewtopic.php?f=21&amp;amp;t=295 howto] - complete /etc/ppp/ directory with settings can be found here: [http://www.true-binary.com/wp-content/uploads/2008/11/orange_ppp.tar.gz orange_ppp.tar.gz]&lt;br /&gt;
|-&lt;br /&gt;
| Canada || Fido || Any, behind NAT || internet.fido.ca || fido/fido || use pap authetication&lt;br /&gt;
proxy address 205.151.011.011:8080&lt;br /&gt;
&lt;br /&gt;
mdbus -s org.freesmartphone.frameworkd /org/freesmartphone/GSM/Device&lt;br /&gt;
org.freesmartphone.GSM.PDP.ActivateContext internet.fido.ca fido&lt;br /&gt;
fido&lt;br /&gt;
|-&lt;br /&gt;
| Canada || Rogers || Any, behind NAT || internet.com || wapuser1/wap || nameserver 207.181.101.4&lt;br /&gt;
|-&lt;br /&gt;
| Canada || Rogers || $7 unlimited browsing || goam.com || wapuser1/wap || Must use a proxy server 10.128.1.69:80 (or 172.25.0.107:80 or 208.200.67.150:8080)&lt;br /&gt;
|-&lt;br /&gt;
| Czech Republic || Vodafone || any postpaid || internet || must be empty || [[GPRS_FSO|Works with FSO]] Behind NAT.&lt;br /&gt;
|-&lt;br /&gt;
| Czech Republic || Vodafone || prepaid || ointernet || must be empty || [[GPRS_FSO|Works with FSO]] Behind NAT.&lt;br /&gt;
|-&lt;br /&gt;
| Czech Republic || 02 || Unlimited data plan || internet || must be empty || [[http://wiki.openmoko.org/index.php?title=Manually_using_GPRS&amp;amp;action=submit#Option_3:_Without_GSM_multiplexing_and_without_a_GUI Works with OM2008.9]].&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Denmark || Telmore || || wap || must be empty ||&lt;br /&gt;
|-&lt;br /&gt;
| Denmark || Unotel || || internet || must be empty || Note: APN not tested&lt;br /&gt;
|-&lt;br /&gt;
| Estonia || Elisa || Any, behind NAT || internet || ||&lt;br /&gt;
|-&lt;br /&gt;
| Estonia || EMT || Any, behind NAT || internet.emt.ee || ||&lt;br /&gt;
|-&lt;br /&gt;
| Fiji || Digicel || Any || wap.digicelpacific.com || || nameserver 10.150.123.41 10.150.102.240 Must use a proxy server 10.150.122.12:8080&lt;br /&gt;
|-&lt;br /&gt;
| Finland || Saunalahti || Any || internet.saunalahti || ||&lt;br /&gt;
|-&lt;br /&gt;
| Finland || Sonera   || Any, behind NAT || internet || ||&lt;br /&gt;
|-&lt;br /&gt;
| Finland || Sonera   || Any, public IP  || prointernet || ||&lt;br /&gt;
|-&lt;br /&gt;
| France || SFR || 10.x.x.x? || websfr || || under tests&lt;br /&gt;
|-&lt;br /&gt;
| France || SFR || 10.x.x.x? || wapsfr&amp;lt;sup&amp;gt;[1]&amp;lt;/sup&amp;gt;|| || under tests&lt;br /&gt;
|-&lt;br /&gt;
| France || Orange || ??? || orange || orange orange|| Work under OM2008.9 FDOM with UI ( gsm0710muxd )&lt;br /&gt;
|-&lt;br /&gt;
| France || Bouyges Telecom || Web &amp;amp; Mail || mmsbouygtel.com || || Work great under FSO. Just follow instructions at http://wiki.openmoko.org/wiki/GPRS_FSO. Proxy:  62.201.129.225:8080. For emails, only ports 25 (smtp) and 110 (pop) are allowed. (They use a transparent proxy ...)&lt;br /&gt;
|-&lt;br /&gt;
| Germany || E-Plus || BASE (and others?) || internet.eplus.de || eplus gprs || [[Base pppd scripts]]&lt;br /&gt;
|-&lt;br /&gt;
| Germany || E-Plus || Simyo || internet.eplus.de || simyo simyo || [[simyo pppd scripts]]&lt;br /&gt;
|-&lt;br /&gt;
| Germany || T-Mobile ||  || internet.t-mobile || ||&lt;br /&gt;
|-&lt;br /&gt;
| Germany || Vodafone || Any, behind NAT || web.vodafone.de || ||&lt;br /&gt;
|-&lt;br /&gt;
| Hungary || T-Mobile || Any || internet / *99***1# || must be empty || must disable chap auth: refuse-chap, refuse-mschap, refuse-mschap-v2&lt;br /&gt;
|-&lt;br /&gt;
| India || AirTel || MobileOffice || airtelgprs.com || ||&lt;br /&gt;
|-&lt;br /&gt;
| Ireland || Vodafone ||  || isp.vodafone.ie || vodafone/vodafone ||&lt;br /&gt;
|-&lt;br /&gt;
| Ireland || O2       ||  || open.internet || gprs/gprs ||&lt;br /&gt;
|-&lt;br /&gt;
| Italy   || Wind     || Superinternet, public IP  || internet.wind / *99# || wind/wind (any string) || [[Wind pppd scripts]]&lt;br /&gt;
|-&lt;br /&gt;
| Netherlands || Vodafone || Any || live.vodafone.com / *99***1#||  || [[Vodafone pppd scripts]]&lt;br /&gt;
|-&lt;br /&gt;
| New Zealand || Vodafone || Any || live.vodafone.com / *99***2#||  ||&lt;br /&gt;
|-&lt;br /&gt;
| Norway || Netcom || Any || internet.netcom.no || ||&lt;br /&gt;
|-&lt;br /&gt;
| Norway || OneCall || Any || internet || ||&lt;br /&gt;
|-&lt;br /&gt;
| Norway || Telenor || Any || telenor || ||&lt;br /&gt;
|-&lt;br /&gt;
| Russia || MTS || Any || internet.mts.ru / *99***1# || mts/mts ||&lt;br /&gt;
|-&lt;br /&gt;
| Russia || Megafon || Any || internet || ||&lt;br /&gt;
|-&lt;br /&gt;
| Spain   || Masmovil     || Any  || internetmas ||  ||&lt;br /&gt;
|-&lt;br /&gt;
| Spain   || Simyo     || Any  || gprs-service.com / *99# ||  ||&lt;br /&gt;
|-&lt;br /&gt;
| Spain   || Yoigo     || Any  || internet / *99***1 || must be empty || [[Yoigo pppd scripts]]&lt;br /&gt;
|-&lt;br /&gt;
| Sweden || Parlino ||  || internet.parlino.se || || [[GPRS_FSO|Works with FSO]]&lt;br /&gt;
|-&lt;br /&gt;
| Sweden || Telia ||  || online.telia.se || || [[GPRS_FSO|Works with FSO]]&lt;br /&gt;
|-&lt;br /&gt;
| Switzerland || Sunrise ||  || internet || ||&lt;br /&gt;
|-&lt;br /&gt;
| Switzerland || Sunrise || MMS || mms.sunrise.ch || ||&lt;br /&gt;
|-&lt;br /&gt;
| Switzerland || Swisscom || e.g. Natel Basic Liberty, behind NAT || gprs.swisscom.ch || ||&lt;br /&gt;
|-&lt;br /&gt;
| UK || T-Mobile|| || general.t-mobile.uk || ||&lt;br /&gt;
|-&lt;br /&gt;
| UK || Virgin || || goto.virginmobile.uk || user ||&lt;br /&gt;
|-&lt;br /&gt;
| UK || [http://www.filesaveas.com/gprs.html other providers] || || || ||&lt;br /&gt;
|-&lt;br /&gt;
| USA || AT&amp;amp;T || Unlimited data plan (attached to pay-as-you-go voice plan) || wap.cingular / *99***1# || WAP@CINGULARGPRS.COM/CINGULAR1 ||&lt;br /&gt;
|-&lt;br /&gt;
| USA || Cincinnati Bell Wireless || || wap.gocbw.com ||  cbw  ||&lt;br /&gt;
|-&lt;br /&gt;
| USA || Cingular (AT&amp;amp;T) || Less than full internet || wap.cingular / may require *99***1# || ||&lt;br /&gt;
|-&lt;br /&gt;
| USA || T-mobile || Anything less than full internet || wap.voicestream.com ||  || Need to set proxy to 216.155.165.50  T-Mobile docs say &amp;quot;216.155.165.050&amp;quot;.  050 octal = 40 decimal and will *not* work.  I think port is 8080 or 9100.  No luck w/ pppd scripts.  GPRS_FSO directions work under FSO though.&lt;br /&gt;
|-&lt;br /&gt;
| USA || T-mobile || Regular internet plan || internet2.voicestream.com || || [[T-Mobile pppd scripts]]&lt;br /&gt;
|-&lt;br /&gt;
| USA || T-mobile || &amp;quot;VPN&amp;quot; internet plan || internet3.voicestream.com || ||&lt;br /&gt;
|-&lt;br /&gt;
| Venezuela || Digitel || Pre- y post-pago || gprsweb.digitel.ve || ||&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[1] connected through a WAP proxy (slower, but the only way to access Vodafone live! and SFR portal)&lt;br /&gt;
&lt;br /&gt;
[2] Unless stated otherwise the phone number to call is &amp;quot;*99#&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Also see Ross Barkman's page for a detailed list of more [http://www.taniwha.org.uk/gprs.html global GPRS providers APN details]&lt;br /&gt;
&lt;br /&gt;
== Starting pppd automatically ==&lt;br /&gt;
&lt;br /&gt;
Once you have finished debugging your gprs-connect-chat and gprs options files, you may wish to automatically connect whenever needed and hang up when finished.  Make sure you understand the impact of this change to your carrier plan billing.  This is not recommended unless you have a large-use or unlimited data plan.  These scripts do NOT prompt you before connecting.&lt;br /&gt;
&lt;br /&gt;
=== On-demand connection settings ===&lt;br /&gt;
&lt;br /&gt;
Additional settings are needed if you want the actual connection to be up only while there is traffic. In the 'gprs' file above, insert the following, making sure 'nodetach' is commented out.  If 'nodetach' is on, the boot process will stop when it starts pppd. Also remove the option 'persist' mentioned above.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Wait until needed before connecting&lt;br /&gt;
demand&lt;br /&gt;
&lt;br /&gt;
# Disconnect if idle for given amount of seconds&lt;br /&gt;
idle 20&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Start on boot (method 1) ===&lt;br /&gt;
&lt;br /&gt;
Add the following definition to /etc/network/interfaces:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
auto ppp0&lt;br /&gt;
iface ppp0 inet ppp&lt;br /&gt;
provider gprs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
That should be it. Now you can use 'ifup ppp0' and 'ifdown ppp0' manually too.&lt;br /&gt;
&lt;br /&gt;
=== Start on boot (method 2) ===&lt;br /&gt;
&lt;br /&gt;
Create the following file as /etc/ppp/ppp_on_boot (needs chmod +x).  The /etc/init.d/ppp script will call it to set up the daemon.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
#&lt;br /&gt;
#   Rename this file to ppp_on_boot and pppd will be fired up as&lt;br /&gt;
#   soon as the system comes up, connecting to `provider'.&lt;br /&gt;
#&lt;br /&gt;
#   If you also make this file executable, and replace the first line&lt;br /&gt;
#   with just &amp;quot;#!/bin/sh&amp;quot;, the commands below will be executed instead.&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
# The location of the ppp daemon itself (shouldn't need to be changed)&lt;br /&gt;
PPPD=/usr/sbin/pppd&lt;br /&gt;
&lt;br /&gt;
# The default provider to connect to&lt;br /&gt;
$PPPD call gprs&lt;br /&gt;
&lt;br /&gt;
# Additional connections, which would just use settings from&lt;br /&gt;
# /etc/ppp/options.&amp;lt;tty&amp;gt;&lt;br /&gt;
#$PPPD ttyS0&lt;br /&gt;
#$PPPD ttyS1&lt;br /&gt;
#$PPPD ttyS2&lt;br /&gt;
#$PPPD ttyS3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Finally, you need to add the /etc/init.d/ppp script to the init process by creating symbolic links from the appropriate directories.  I chose the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/etc/rc0.d/K25ppp&lt;br /&gt;
/etc/rc1.d/K45ppp&lt;br /&gt;
/etc/rc2.d/S45ppp&lt;br /&gt;
/etc/rc3.d/S45ppp&lt;br /&gt;
/etc/rc4.d/S45ppp&lt;br /&gt;
/etc/rc5.d/S45ppp&lt;br /&gt;
/etc/rc6.d/K25ppp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Qt Extended =&lt;br /&gt;
If password/username is not mandotory for your provider, input anything e.g. x. Works fine with 4.4.2.&lt;br /&gt;
&lt;br /&gt;
= Sharing the GPRS connection with a computer =&lt;br /&gt;
&lt;br /&gt;
See [[Tethering]]&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[pppd]]&lt;br /&gt;
* [[Manually using GSM]]&lt;br /&gt;
* [[Manually using Bluetooth]]&lt;br /&gt;
* [[GPRS FSO]]&lt;br /&gt;
{{Languages|Manually_using_GPRS}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Application Developer]]&lt;br /&gt;
[[Category:Networking]]&lt;br /&gt;
[[Category:GSM]]&lt;/div&gt;</summary>
		<author><name>MMlosh</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Manually_using_GPRS</id>
		<title>Manually using GPRS</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Manually_using_GPRS"/>
				<updated>2008-12-11T18:32:03Z</updated>
		
		<summary type="html">&lt;p&gt;MMlosh: /* gsm0710muxd from Angstrom Repositories */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{note| These instructions are for OM2008.8 .  If you are using the FSO stack, see [[GPRS_FSO]].}}&lt;br /&gt;
&lt;br /&gt;
The GPRS connection is made using the PPP protocol to a server identified by an &amp;quot;APN&amp;quot; at the network operator.   Once a GPRS connection is made, it is possible to [[#Sharing_the_GPRS_connection_with_a_computer|share that connection with a connected computer]], allowing that computer to access the internet through the phone!&lt;br /&gt;
&lt;br /&gt;
= Option 1: With GSM multiplexing and with a GUI =&lt;br /&gt;
&lt;br /&gt;
{{note|The following does not appear to work if you have a SIM PIN.  The dialog to enter your SIM PIN never pops up and the GSM multiplexing daemon continuous loops and runs into a SIM PIN error.}}&lt;br /&gt;
&lt;br /&gt;
GSM multiplexing allows both a GPRS connection and a phone call to be handled at the same time.  By default, [[Om 2008.8]] does not multiplex the GSM device.  The [[FSO]] distribution, however, introduces GSM multiplexing with a new service and a DBus API to that service.  The instructions to modify the OM2008.8 distribution to make use of GSM multiplexing and allow you to start GPRS from a GUI can be found here: http://freeyourphone.de/portal_v1/viewtopic.php?f=21&amp;amp;t=295 ('''Note:''' Script package seems to be no longer be available, but a later post in the thread links to a version at [http://fyp-archiv.relei.de/ http://fyp-archiv.relei.de/].)&lt;br /&gt;
&lt;br /&gt;
== gsm0710muxd from Angstrom Repositories ==&lt;br /&gt;
&lt;br /&gt;
However, using those instructions, you will encounter a few hurdles.  Do not use the gsm0710muxd that is found in the OM2008.8 repository.  It will not work, instead, use the one from the Angstrom Repositories (see [[Repositories]]).&lt;br /&gt;
&lt;br /&gt;
Alternatively, if you simply want to download all the packages, you can get them from here:&lt;br /&gt;
&lt;br /&gt;
http://www.angstrom-distribution.org/feeds/2008/ipk/glibc/armv4t/base/gsm0710muxd_0.9.1+r0-gitr3ff86b129640b647ccba3d86eb243d864671b039-r0_armv4t.ipk&lt;br /&gt;
&lt;br /&gt;
I don't know if the package got renamed but that one wasn't in there the one i downloaded was&lt;br /&gt;
&lt;br /&gt;
http://www.angstrom-distribution.org/feeds/2008/ipk/glibc/armv4t/base/gsm0710muxd_0.9.2+gitr79e10fe8ad0828e5be9a5c087ac9ee04956674c1-r0.1_armv4t.ipk&lt;br /&gt;
&lt;br /&gt;
haven't gotten past this step yet well see how / if it works. :)&lt;br /&gt;
&lt;br /&gt;
This link was working for me on 11.12.2008 (I've successfully muxed GSM device and sent command for echo reduction - http://lists.openmoko.org/pipermail/community/2008-August/028495.html)&lt;br /&gt;
&lt;br /&gt;
http://shr.bearstech.com/shr-testing/ipk/armv4t/gsm0710muxd-dbg_0.9.2+gitr12+d8b36b923ef69a64cb5a2d3bca799d772b9c73c3-r0.1_armv4t.ipk&lt;br /&gt;
&lt;br /&gt;
and the dependencies from here:&lt;br /&gt;
&lt;br /&gt;
http://www.angstrom-distribution.org/repo/?pkgname=gsm0710muxd&lt;br /&gt;
&lt;br /&gt;
Make sure that you install the armv4t versions of all packages.&lt;br /&gt;
&lt;br /&gt;
The most important step after installing gsm0710muxd is to tell QPE to use the MUX instead of the device directly.  If you follow the instructions in the link above, there is a step that replaces the 89qtopia init script with one from their script package.  The key difference is the addition of the following lines that tells QPE to use the MUX:&lt;br /&gt;
&lt;br /&gt;
in /etc/X11/Xsession.d/89qtopia&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
identvar=$(date +%s)&amp;lt;br/&amp;gt;&lt;br /&gt;
ptsvar=$(dbus-send --system --print-reply --type=method_call --dest=org.pyneo.muxer /org/pyneo/Muxer&lt;br /&gt;
org.freesmartphone.GSM.MUX.AllocChannel string:$identvar | grep string | awk -F '&amp;quot;' '{ print $2 }')&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
export QTOPIA_PHONE_DEVICE=$ptsvar&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The [[#Some APN names for reference|APN Reference]] table may come in handy when you are looking for the required network specific information for the other scripts.&lt;br /&gt;
&lt;br /&gt;
Once you follow through with all the instructions, you will notice that the &amp;quot;Services&amp;quot; GUI will crash.  This has to do with this bug: http://docs.openmoko.org/trac/ticket/1718&lt;br /&gt;
&lt;br /&gt;
The fix is to change the &amp;quot;init()&amp;quot; call on line 82 of /usr/lib/python2.5/site-packages/gtk-2.0/gtk/_init_.py  to &amp;quot;_init()&amp;quot; (add an underscore).&lt;br /&gt;
&lt;br /&gt;
You may also have to modify your /etc/resolv.conf file and add the nameserver (DNS Server) of your service provider if you have DNS resolution problems.&lt;br /&gt;
&lt;br /&gt;
Then, hopefully, you should be up in running with GPRS and a GUI to turn it on and off.  Note that you can use the command line scripts &amp;quot;gprson&amp;quot; and &amp;quot;gprsoff&amp;quot; in place of the GUI if you need to do some debugging.&lt;br /&gt;
&lt;br /&gt;
= Option 2: With GSM multiplexing and without a GUI =&lt;br /&gt;
&lt;br /&gt;
You will have to get gsm0710muxd the same way as detailed in Option 1.&lt;br /&gt;
&lt;br /&gt;
'''1) In /etc/rc5.d start gsm0710muxd before gsmd:'''&lt;br /&gt;
* S34gsm0710muxd -&amp;gt; ../init.d/gsm0710muxd&lt;br /&gt;
* S35gsmd -&amp;gt; ../init.d/gsmd&lt;br /&gt;
&lt;br /&gt;
'''2) Modify S35gsmd so it can start either with or without gsm0710muxd:'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
case &amp;quot;$1&amp;quot; in&lt;br /&gt;
start)&lt;br /&gt;
if [ &amp;quot;$(pidof gsm0710muxd)&amp;quot; ] ; then&lt;br /&gt;
id=$(date +%s)&lt;br /&gt;
GSM_DEV=$(dbus-send --system --print-reply --type=method_call --dest=org.pyneo.muxer /org/pyneo/Muxer org.freesmartphone.GSM.MUX.AllocChannel string:$id | grep string | cut -d \&amp;quot; -f 2)&lt;br /&gt;
else&lt;br /&gt;
[ -n &amp;quot;$GSM_POW&amp;quot; ] &amp;amp;&amp;amp; ( echo &amp;quot;0&amp;quot; &amp;gt;$GSM_POW; sleep 1 )&lt;br /&gt;
[ -n &amp;quot;$GSM_POW&amp;quot; ] &amp;amp;&amp;amp; ( echo &amp;quot;1&amp;quot; &amp;gt;$GSM_POW; sleep 1 )&lt;br /&gt;
[ -n &amp;quot;$GSM_RES&amp;quot; ] &amp;amp;&amp;amp; ( echo &amp;quot;1&amp;quot; &amp;gt;$GSM_RES; sleep 1 )&lt;br /&gt;
[ -n &amp;quot;$GSM_RES&amp;quot; ] &amp;amp;&amp;amp; ( echo &amp;quot;0&amp;quot; &amp;gt;$GSM_RES; sleep 2 )&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
if [ ! &amp;quot;$GSM_DEV&amp;quot; ] ; then&lt;br /&gt;
echo &amp;quot;GSM_DEV was not set&amp;quot;&lt;br /&gt;
exit 1&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
echo -n &amp;quot;Starting GSM daemon: &amp;quot;&lt;br /&gt;
start-stop-daemon -S -x /usr/sbin/gsmd -- gsmd -p $GSM_DEV $GSMD_OPTS -d -l /var/log/gsmd&lt;br /&gt;
&lt;br /&gt;
if [ $? = 0 ]; then&lt;br /&gt;
echo &amp;quot;gsmd.&amp;quot;&lt;br /&gt;
else&lt;br /&gt;
echo &amp;quot;(failed.)&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
;;&lt;br /&gt;
stop)&lt;br /&gt;
if [ ! &amp;quot;$(pidof gsm0710muxd)&amp;quot; ] ; then&lt;br /&gt;
[ -n &amp;quot;$GSM_POW&amp;quot; ] &amp;amp;&amp;amp; echo &amp;quot;0&amp;quot; &amp;gt;$GSM_POW&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
echo -n &amp;quot;Stopping GSM daemon: &amp;quot;&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''3) Remove the tty from /etc/ppp/peers/simyo''' (replace simyo with your provider).&lt;br /&gt;
&lt;br /&gt;
'''4) Use a ppp start script like this:'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cat /usr/local/bin/ppp-start&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
&lt;br /&gt;
id=$(date +%s)&lt;br /&gt;
TTY=$(dbus-send --system --print-reply --type=method_call --dest=org.pyneo.muxer /org/pyneo/Muxer org.freesmartphone.GSM.MUX.AllocChannel string:$id | grep string | cut -d \&amp;quot; -f 2)&lt;br /&gt;
logger -t ppp-start &amp;quot;using tty $TTY&amp;quot;&lt;br /&gt;
pppd $TTY call simyo&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''5) Use &amp;quot;killall pppd&amp;quot; to terminate the PPP connection.'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[:Image:Gsmmuxd.trace.txt|Here]] is some strace information from gsm0710muxd, showing how the daemon responds when receiving a call when GPRS is up.&lt;br /&gt;
&lt;br /&gt;
[http://www.teaparty.net/technotes/openmoko-2.html#GPRS Here] is Tom's documentation on how he got it working (under 2008.08), with config files and example output.&lt;br /&gt;
&lt;br /&gt;
= Option 3: Without GSM multiplexing and without a GUI =&lt;br /&gt;
&lt;br /&gt;
[Important Note: It has been pointed out that this is only for 2007.2 and not for the 2008.8 images.  If someone can confirm this and update this comment with more detail it would help out this page.  Thanks]&lt;br /&gt;
&lt;br /&gt;
The program that implements PPP on Linux is [[pppd]], which we need to configure and run to get a connection. When that is working, we can configure pppd to wait until it's needed before it connects, and to disconnect if the connection becomes idle. Further, we can start pppd in the background during the boot process.&lt;br /&gt;
&lt;br /&gt;
== Configuring pppd for manual connections ==&lt;br /&gt;
&lt;br /&gt;
You'll need /etc/ppp/peers/gprs:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Uncomment the following if you want some debug.&lt;br /&gt;
#debug&lt;br /&gt;
#logfile /var/volatile/log/pppd.log&lt;br /&gt;
lock&lt;br /&gt;
/dev/ttySAC0 115200&lt;br /&gt;
crtscts&lt;br /&gt;
connect /etc/ppp/gprs-connect-chat&lt;br /&gt;
disconnect /etc/ppp/gprs-disconnect-chat&lt;br /&gt;
hide-password&lt;br /&gt;
usepeerdns&lt;br /&gt;
ipcp-accept-local&lt;br /&gt;
noauth&lt;br /&gt;
noipdefault&lt;br /&gt;
novj&lt;br /&gt;
novjccomp&lt;br /&gt;
defaultroute&lt;br /&gt;
replacedefaultroute&lt;br /&gt;
# Reopen the connection if it fails, pausing for a while.&lt;br /&gt;
persist&lt;br /&gt;
holdoff 15&lt;br /&gt;
# Check the line every 20 seconds and presume&lt;br /&gt;
# the peer is gone if no replay for 4 times.&lt;br /&gt;
lcp-echo-interval 20&lt;br /&gt;
lcp-echo-failure 4&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Comment by Vasco: I also had to include this in order to survive a &amp;quot;'''IPCP: timeout sending Config-Requests'''&amp;quot; sporadic error that dropped my connection right in the beginning:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ipcp-restart 10&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Depending on the APN, you may need password authentication using CHAP or PAP. In /etc/ppp/pap-secrets you can add the following default line for &amp;quot;password-less&amp;quot; connections:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# client        server  secret                  IP addresses&lt;br /&gt;
*               *       &amp;quot;&amp;quot;                      *&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For CHAP, lines in /etc/ppp/chap-secrets are used. For PAP, the lines are in /etc/ppp/pap-secrets. The client should match the &amp;quot;user&amp;quot; option in pppd the config file (below). You can use * to mean any here, but the option user &amp;quot;&amp;quot; doesn't mean empty!&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Secrets for authentication using CHAP&lt;br /&gt;
# client        server  secret                  IP addresses&lt;br /&gt;
&amp;quot;user&amp;quot;         *       &amp;quot;password&amp;quot;                  *&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For this you need the following options in /etc/ppp/peers/gprs:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# username to use for authentication, should match &amp;quot;client&amp;quot; in /etc/ppp/{chap,pap}-secrets&lt;br /&gt;
user &amp;quot;user&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== gprs-connect-chat, version 1 ==&lt;br /&gt;
&lt;br /&gt;
You'll also need /etc/ppp/gprs-connect-chat (needs &amp;quot;chmod +x&amp;quot;):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh -e&lt;br /&gt;
exec chat -v -S -s\&lt;br /&gt;
TIMEOUT 15\&lt;br /&gt;
&amp;quot;&amp;quot; &amp;quot;\K\K\K\d+++ATH&amp;quot;\&lt;br /&gt;
OK-AT-OK ATZ\&lt;br /&gt;
OK ATE1\&lt;br /&gt;
ABORT BUSY\&lt;br /&gt;
ABORT DELAYED\&lt;br /&gt;
ABORT &amp;quot;NO ANSWER&amp;quot;\&lt;br /&gt;
ABORT &amp;quot;NO DIALTONE&amp;quot;\&lt;br /&gt;
ABORT VOICE\&lt;br /&gt;
ABORT ERROR\&lt;br /&gt;
ABORT RINGING\&lt;br /&gt;
TIMEOUT 60\&lt;br /&gt;
OK AT+CFUN=1\&lt;br /&gt;
OK AT+COPS\&lt;br /&gt;
OK AT+CGDCONT=1,\&amp;quot;IP\&amp;quot;,\&amp;quot;internet\&amp;quot;\&lt;br /&gt;
OK ATD*99#\&lt;br /&gt;
CONNECT /n/d&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; In the 3rd last line, replace the word &amp;lt;i&amp;gt;internet&amp;lt;/i&amp;gt; by your provider's APN (listed below).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;(08/18/08) Note:&amp;lt;/b&amp;gt; I needed to add the command &amp;quot;AT+CMOD=2&amp;quot; (formatted as &amp;quot;OK AT+CMOD=2\&amp;quot; without the quotes) in order to get GPRS working with the above script (otherwise it would ERROR on the CFUN, COPS, or the ATD if the other two were removed).  I have T-Mobile (US) with the $5.99 &amp;quot;tzones&amp;quot; addon, which works with Minimo as it supports HTTP proxy setups.&lt;br /&gt;
&lt;br /&gt;
== gprs-connect-chat, version 2 ==&lt;br /&gt;
&lt;br /&gt;
Update: On my freerunner the first AT+CFUN=1 always generated ERROR. I managed to get gprs work by using the following script from http://lists.openmoko.org/pipermail/community/2008-July/023246.html:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh -e&lt;br /&gt;
exec /usr/sbin/chat -v \&lt;br /&gt;
TIMEOUT 10 \&lt;br /&gt;
OK-AT-'' ''\&lt;br /&gt;
ABORT BUSY\&lt;br /&gt;
ABORT DELAYED\&lt;br /&gt;
ABORT &amp;quot;NO ANSWER&amp;quot;\&lt;br /&gt;
ABORT &amp;quot;NO DIALTONE&amp;quot;\&lt;br /&gt;
ABORT VOICE\&lt;br /&gt;
ABORT ERROR\&lt;br /&gt;
ABORT RINGING\&lt;br /&gt;
TIMEOUT 30 \&lt;br /&gt;
'' ATZ\&lt;br /&gt;
OK ATE1\&lt;br /&gt;
OK AT+CFUN=1\&lt;br /&gt;
ERROR AT+CPIN=\&amp;quot;XXXX\&amp;quot;\         &amp;lt;&amp;lt; USE YOUR OWN&lt;br /&gt;
OK AT+COPS\&lt;br /&gt;
OK AT+CGDCONT=1,\&amp;quot;IP\&amp;quot;,\&amp;quot;internet\&amp;quot;\&lt;br /&gt;
OK 'ATDT*99***1#'\&lt;br /&gt;
CONNECT ''&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The error seems to vary a bit, sometimes it's before AT+COPS, sometimes as above. I have two versions of the gprs-connect-chat, which I vary between depending on which is needed. Or is there a way to specify two acceptable answers like {OK,ERROR}?&lt;br /&gt;
&lt;br /&gt;
You will need to adjust the APN name &amp;quot;internet&amp;quot; in at+cgdcont line and possibly the phone number in the ATD line to match what your network operator provides. See below in the table &amp;quot;Some APN names for reference&amp;quot; for the right settings for your operator.&lt;br /&gt;
&lt;br /&gt;
== gprs-disconnect-chat ==&lt;br /&gt;
&lt;br /&gt;
Also good to have is /etc/ppp/gprs-disconnect-chat (needs &amp;quot;chmod +x&amp;quot;):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh -e&lt;br /&gt;
/usr/sbin/chat -v\&lt;br /&gt;
ABORT OK\&lt;br /&gt;
ABORT BUSY\&lt;br /&gt;
ABORT DELAYED\&lt;br /&gt;
ABORT &amp;quot;NO ANSWER&amp;quot;\&lt;br /&gt;
ABORT &amp;quot;NO CARRIER&amp;quot;\&lt;br /&gt;
ABORT &amp;quot;NO DIALTONE&amp;quot;\&lt;br /&gt;
ABORT VOICE\&lt;br /&gt;
ABORT ERROR\&lt;br /&gt;
ABORT RINGING\&lt;br /&gt;
TIMEOUT 12\&lt;br /&gt;
&amp;quot;&amp;quot; &amp;quot;\K\K\K\d+++ATH&amp;quot;\&lt;br /&gt;
&amp;quot;NO CARRIER-AT-OK&amp;quot; &amp;quot;\c&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Starting PPP connection ==&lt;br /&gt;
&lt;br /&gt;
The following script can be used to start the ppp connection. First it stops gsmd because gsmd may put the phone in a unknown state. It then turns on the power to the phone, modifies the ownership, and then creates a tty connection. Finally it starts [[pppd]] with the gprs settings.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/etc/init.d/gsmd stop&lt;br /&gt;
echo &amp;quot;1&amp;quot; &amp;gt; /sys/bus/platform/devices/neo1973-pm-gsm.0/power_on&lt;br /&gt;
chown uucp.uucp /dev/ttySAC0&lt;br /&gt;
stty -F /dev/ttySAC0 crtscts&lt;br /&gt;
pppd call gprs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you are having problems connecting ensure you have a good GSM signal and replace the last line with the below line. This will allow you to see the details of the connection on the console.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pppd debug nodetach call gprs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The config above will establish a persistant link over gprs. The battery will run low in less than an hour. See an example for an on-demand config below.&lt;br /&gt;
&lt;br /&gt;
=== Resolve.conf issues ===&lt;br /&gt;
&lt;br /&gt;
The latest build seems to have solved the following issue, it should be automatically updated by pppd.&lt;br /&gt;
&lt;br /&gt;
If you expeience DNS issues after connecting to DNS you may need a proper /etc/resolv.conf:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ln -sf /var/run/resolv.conf /etc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If needed put your nameserver for usb-net into /var/run/resolv.conf, not in /etc.&lt;br /&gt;
&lt;br /&gt;
The image does not set a correct resolv.conf. i do so with an&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo  nameserver 192.168.0.201 &amp;gt; /var/run/resolv.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
in the right place. because a post-up in /etc/network/interfaces is not supported i do that in /etc/network/if-up.d/08setupdns&lt;br /&gt;
&lt;br /&gt;
another problem is pppd's /etc/ppp/ip-down.d/92removedns which does not properly remove the link when shuting down ppp. my fix is this script:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
ACTUALCONF=/var/run/resolv.conf&lt;br /&gt;
PPPCONF=/var/run/ppp/resolv.conf&lt;br /&gt;
if [ -f $PPPCONF ] ; then&lt;br /&gt;
if [ -f $ACTUALCONF ] ; then&lt;br /&gt;
if [ ! -h $ACTUALCONF -o ! &amp;quot;`readlink $ACTUALCONF 2&amp;gt;&amp;amp;1`&amp;quot; = &amp;quot;$PPPCONF&amp;quot; ] ; then&lt;br /&gt;
mv $ACTUALCONF $ACTUALCONF.ppporig&lt;br /&gt;
fi&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
ln -sf $PPPCONF $ACTUALCONF&lt;br /&gt;
fi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Some APN names for reference ===&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Country&lt;br /&gt;
! Carrier&lt;br /&gt;
! Plan&lt;br /&gt;
! APN/Phone&lt;br /&gt;
! user/password if required&lt;br /&gt;
! Working pppd scripts&lt;br /&gt;
|-&lt;br /&gt;
| Australia || Virgin || Any || VirginInternet || ||&lt;br /&gt;
|-&lt;br /&gt;
| Australia || Vodafone || Any || vfinternet.au || ||&lt;br /&gt;
|-&lt;br /&gt;
| Austria|| Orange/One|| Any || web.one.at || web/web || works with gsm0710d under om2008.9: [http://freeyourphone.de/portal_v1/viewtopic.php?f=21&amp;amp;t=295 howto] - complete /etc/ppp/ directory with settings can be found here: [http://www.true-binary.com/wp-content/uploads/2008/11/orange_ppp.tar.gz orange_ppp.tar.gz]&lt;br /&gt;
|-&lt;br /&gt;
| Canada || Fido || Any, behind NAT || internet.fido.ca || fido/fido || use pap authetication&lt;br /&gt;
proxy address 205.151.011.011:8080&lt;br /&gt;
&lt;br /&gt;
mdbus -s org.freesmartphone.frameworkd /org/freesmartphone/GSM/Device&lt;br /&gt;
org.freesmartphone.GSM.PDP.ActivateContext internet.fido.ca fido&lt;br /&gt;
fido&lt;br /&gt;
|-&lt;br /&gt;
| Canada || Rogers || Any, behind NAT || internet.com || wapuser1/wap || nameserver 207.181.101.4&lt;br /&gt;
|-&lt;br /&gt;
| Canada || Rogers || $7 unlimited browsing || goam.com || wapuser1/wap || Must use a proxy server 10.128.1.69:80 (or 172.25.0.107:80 or 208.200.67.150:8080)&lt;br /&gt;
|-&lt;br /&gt;
| Czech Republic || Vodafone || any postpaid || internet || must be empty || [[GPRS_FSO|Works with FSO]] Behind NAT.&lt;br /&gt;
|-&lt;br /&gt;
| Czech Republic || Vodafone || prepaid || ointernet || must be empty || [[GPRS_FSO|Works with FSO]] Behind NAT.&lt;br /&gt;
|-&lt;br /&gt;
| Czech Republic || 02 || Unlimited data plan || internet || must be empty || [[http://wiki.openmoko.org/index.php?title=Manually_using_GPRS&amp;amp;action=submit#Option_3:_Without_GSM_multiplexing_and_without_a_GUI Works with OM2008.9]].&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Denmark || Telmore || || wap || must be empty ||&lt;br /&gt;
|-&lt;br /&gt;
| Denmark || Unotel || || internet || must be empty || Note: APN not tested&lt;br /&gt;
|-&lt;br /&gt;
| Estonia || Elisa || Any, behind NAT || internet || ||&lt;br /&gt;
|-&lt;br /&gt;
| Estonia || EMT || Any, behind NAT || internet.emt.ee || ||&lt;br /&gt;
|-&lt;br /&gt;
| Fiji || Digicel || Any || wap.digicelpacific.com || || nameserver 10.150.123.41 10.150.102.240 Must use a proxy server 10.150.122.12:8080&lt;br /&gt;
|-&lt;br /&gt;
| Finland || Saunalahti || Any || internet.saunalahti || ||&lt;br /&gt;
|-&lt;br /&gt;
| Finland || Sonera   || Any, behind NAT || internet || ||&lt;br /&gt;
|-&lt;br /&gt;
| Finland || Sonera   || Any, public IP  || prointernet || ||&lt;br /&gt;
|-&lt;br /&gt;
| France || SFR || 10.x.x.x? || websfr || || under tests&lt;br /&gt;
|-&lt;br /&gt;
| France || SFR || 10.x.x.x? || wapsfr&amp;lt;sup&amp;gt;[1]&amp;lt;/sup&amp;gt;|| || under tests&lt;br /&gt;
|-&lt;br /&gt;
| France || Orange || ??? || orange || orange orange|| Work under OM2008.9 FDOM with UI ( gsm0710muxd )&lt;br /&gt;
|-&lt;br /&gt;
| France || Bouyges Telecom || Web &amp;amp; Mail || mmsbouygtel.com || || Work great under FSO. Just follow instructions at http://wiki.openmoko.org/wiki/GPRS_FSO. Proxy:  62.201.129.225:8080. For emails, only ports 25 (smtp) and 110 (pop) are allowed. (They use a transparent proxy ...)&lt;br /&gt;
|-&lt;br /&gt;
| Germany || E-Plus || BASE (and others?) || internet.eplus.de || eplus gprs || [[Base pppd scripts]]&lt;br /&gt;
|-&lt;br /&gt;
| Germany || E-Plus || Simyo || internet.eplus.de || simyo simyo || [[simyo pppd scripts]]&lt;br /&gt;
|-&lt;br /&gt;
| Germany || T-Mobile ||  || internet.t-mobile || ||&lt;br /&gt;
|-&lt;br /&gt;
| Germany || Vodafone || Any, behind NAT || web.vodafone.de || ||&lt;br /&gt;
|-&lt;br /&gt;
| Hungary || T-Mobile || Any || internet / *99***1# || must be empty || must disable chap auth: refuse-chap, refuse-mschap, refuse-mschap-v2&lt;br /&gt;
|-&lt;br /&gt;
| India || AirTel || MobileOffice || airtelgprs.com || ||&lt;br /&gt;
|-&lt;br /&gt;
| Ireland || Vodafone ||  || isp.vodafone.ie || vodafone/vodafone ||&lt;br /&gt;
|-&lt;br /&gt;
| Ireland || O2       ||  || open.internet || gprs/gprs ||&lt;br /&gt;
|-&lt;br /&gt;
| Italy   || Wind     || Superinternet, public IP  || internet.wind / *99# || wind/wind (any string) || [[Wind pppd scripts]]&lt;br /&gt;
|-&lt;br /&gt;
| Netherlands || Vodafone || Any || live.vodafone.com / *99***1#||  || [[Vodafone pppd scripts]]&lt;br /&gt;
|-&lt;br /&gt;
| New Zealand || Vodafone || Any || live.vodafone.com / *99***2#||  ||&lt;br /&gt;
|-&lt;br /&gt;
| Norway || Netcom || Any || internet.netcom.no || ||&lt;br /&gt;
|-&lt;br /&gt;
| Norway || OneCall || Any || internet || ||&lt;br /&gt;
|-&lt;br /&gt;
| Norway || Telenor || Any || telenor || ||&lt;br /&gt;
|-&lt;br /&gt;
| Russia || MTS || Any || internet.mts.ru / *99***1# || mts/mts ||&lt;br /&gt;
|-&lt;br /&gt;
| Russia || Megafon || Any || internet || ||&lt;br /&gt;
|-&lt;br /&gt;
| Spain   || Yoigo     || Any  || internet / *99***1 || must be empty || [[Yoigo pppd scripts]]&lt;br /&gt;
|-&lt;br /&gt;
| Spain   || Simyo     || Any  || gprs-service.com / *99# ||  ||&lt;br /&gt;
|-&lt;br /&gt;
| Sweden || Parlino ||  || internet.parlino.se || || [[GPRS_FSO|Works with FSO]]&lt;br /&gt;
|-&lt;br /&gt;
| Sweden || Telia ||  || online.telia.se || || [[GPRS_FSO|Works with FSO]]&lt;br /&gt;
|-&lt;br /&gt;
| Switzerland || Sunrise ||  || internet || ||&lt;br /&gt;
|-&lt;br /&gt;
| Switzerland || Sunrise || MMS || mms.sunrise.ch || ||&lt;br /&gt;
|-&lt;br /&gt;
| Switzerland || Swisscom || e.g. Natel Basic Liberty, behind NAT || gprs.swisscom.ch || ||&lt;br /&gt;
|-&lt;br /&gt;
| UK || T-Mobile|| || general.t-mobile.uk || ||&lt;br /&gt;
|-&lt;br /&gt;
| UK || Virgin || || goto.virginmobile.uk || user ||&lt;br /&gt;
|-&lt;br /&gt;
| UK || [http://www.filesaveas.com/gprs.html other providers] || || || ||&lt;br /&gt;
|-&lt;br /&gt;
| USA || AT&amp;amp;T || Unlimited data plan (attached to pay-as-you-go voice plan) || wap.cingular / *99***1# || WAP@CINGULARGPRS.COM/CINGULAR1 ||&lt;br /&gt;
|-&lt;br /&gt;
| USA || Cincinnati Bell Wireless || || wap.gocbw.com ||  cbw  ||&lt;br /&gt;
|-&lt;br /&gt;
| USA || Cingular (AT&amp;amp;T) || Less than full internet || wap.cingular / may require *99***1# || ||&lt;br /&gt;
|-&lt;br /&gt;
| USA || T-mobile || Anything less than full internet || wap.voicestream.com ||  || Need to set proxy to 216.155.165.50  T-Mobile docs say &amp;quot;216.155.165.050&amp;quot;.  050 octal = 40 decimal and will *not* work.  I think port is 8080 or 9100.  No luck w/ pppd scripts.  GPRS_FSO directions work under FSO though.&lt;br /&gt;
|-&lt;br /&gt;
| USA || T-mobile || Regular internet plan || internet2.voicestream.com || || [[T-Mobile pppd scripts]]&lt;br /&gt;
|-&lt;br /&gt;
| USA || T-mobile || &amp;quot;VPN&amp;quot; internet plan || internet3.voicestream.com || ||&lt;br /&gt;
|-&lt;br /&gt;
| Venezuela || Digitel || Pre- y post-pago || gprsweb.digitel.ve || ||&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[1] connected through a WAP proxy (slower, but the only way to access Vodafone live! and SFR portal)&lt;br /&gt;
&lt;br /&gt;
[2] Unless stated otherwise the phone number to call is &amp;quot;*99#&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Also see Ross Barkman's page for a detailed list of more [http://www.taniwha.org.uk/gprs.html global GPRS providers APN details]&lt;br /&gt;
&lt;br /&gt;
== Starting pppd automatically ==&lt;br /&gt;
&lt;br /&gt;
Once you have finished debugging your gprs-connect-chat and gprs options files, you may wish to automatically connect whenever needed and hang up when finished.  Make sure you understand the impact of this change to your carrier plan billing.  This is not recommended unless you have a large-use or unlimited data plan.  These scripts do NOT prompt you before connecting.&lt;br /&gt;
&lt;br /&gt;
=== On-demand connection settings ===&lt;br /&gt;
&lt;br /&gt;
Additional settings are needed if you want the actual connection to be up only while there is traffic. In the 'gprs' file above, insert the following, making sure 'nodetach' is commented out.  If 'nodetach' is on, the boot process will stop when it starts pppd. Also remove the option 'persist' mentioned above.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Wait until needed before connecting&lt;br /&gt;
demand&lt;br /&gt;
&lt;br /&gt;
# Disconnect if idle for given amount of seconds&lt;br /&gt;
idle 20&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Start on boot (method 1) ===&lt;br /&gt;
&lt;br /&gt;
Add the following definition to /etc/network/interfaces:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
auto ppp0&lt;br /&gt;
iface ppp0 inet ppp&lt;br /&gt;
provider gprs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
That should be it. Now you can use 'ifup ppp0' and 'ifdown ppp0' manually too.&lt;br /&gt;
&lt;br /&gt;
=== Start on boot (method 2) ===&lt;br /&gt;
&lt;br /&gt;
Create the following file as /etc/ppp/ppp_on_boot (needs chmod +x).  The /etc/init.d/ppp script will call it to set up the daemon.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
#&lt;br /&gt;
#   Rename this file to ppp_on_boot and pppd will be fired up as&lt;br /&gt;
#   soon as the system comes up, connecting to `provider'.&lt;br /&gt;
#&lt;br /&gt;
#   If you also make this file executable, and replace the first line&lt;br /&gt;
#   with just &amp;quot;#!/bin/sh&amp;quot;, the commands below will be executed instead.&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
# The location of the ppp daemon itself (shouldn't need to be changed)&lt;br /&gt;
PPPD=/usr/sbin/pppd&lt;br /&gt;
&lt;br /&gt;
# The default provider to connect to&lt;br /&gt;
$PPPD call gprs&lt;br /&gt;
&lt;br /&gt;
# Additional connections, which would just use settings from&lt;br /&gt;
# /etc/ppp/options.&amp;lt;tty&amp;gt;&lt;br /&gt;
#$PPPD ttyS0&lt;br /&gt;
#$PPPD ttyS1&lt;br /&gt;
#$PPPD ttyS2&lt;br /&gt;
#$PPPD ttyS3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Finally, you need to add the /etc/init.d/ppp script to the init process by creating symbolic links from the appropriate directories.  I chose the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/etc/rc0.d/K25ppp&lt;br /&gt;
/etc/rc1.d/K45ppp&lt;br /&gt;
/etc/rc2.d/S45ppp&lt;br /&gt;
/etc/rc3.d/S45ppp&lt;br /&gt;
/etc/rc4.d/S45ppp&lt;br /&gt;
/etc/rc5.d/S45ppp&lt;br /&gt;
/etc/rc6.d/K25ppp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Qt Extended =&lt;br /&gt;
If password/username is not mandotory for your provider, input anything e.g. x. Works fine with 4.4.2.&lt;br /&gt;
&lt;br /&gt;
= Sharing the GPRS connection with a computer =&lt;br /&gt;
&lt;br /&gt;
See [[Tethering]]&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[pppd]]&lt;br /&gt;
* [[Manually using GSM]]&lt;br /&gt;
* [[Manually using Bluetooth]]&lt;br /&gt;
* [[GPRS FSO]]&lt;br /&gt;
{{Languages|Manually_using_GPRS}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Application Developer]]&lt;br /&gt;
[[Category:Networking]]&lt;br /&gt;
[[Category:GSM]]&lt;/div&gt;</summary>
		<author><name>MMlosh</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/User:MMlosh</id>
		<title>User:MMlosh</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/User:MMlosh"/>
				<updated>2008-11-06T17:06:37Z</updated>
		
		<summary type="html">&lt;p&gt;MMlosh: New page: = Miloš Klouček =  '''Kontakty na mě:''' *IRC: MMlosh *Jabber: MMlosh@jabber.cz *mail: FR@elektromaniak.wz.cz&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Miloš Klouček =&lt;br /&gt;
&lt;br /&gt;
'''Kontakty na mě:'''&lt;br /&gt;
*IRC: MMlosh&lt;br /&gt;
*Jabber: MMlosh@jabber.cz&lt;br /&gt;
*mail: FR@elektromaniak.wz.cz&lt;/div&gt;</summary>
		<author><name>MMlosh</name></author>	</entry>

	</feed>