http://wiki.openmoko.org/api.php?action=feedcontributions&user=Abraxa&feedformat=atomOpenmoko - User contributions [en]2024-03-19T12:45:50ZUser contributionsMediaWiki 1.19.24http://wiki.openmoko.org/wiki/ScummvmScummvm2008-09-02T22:33:09Z<p>Abraxa: Removed the notice for the Xglamo orientation bug</p>
<hr />
<div>= ScummVM = <br />
<br />
ScummVM is a program which allows you to run certain classic graphical point-and-click adventure games, provided you already have their data files. The clever part about this: ScummVM just replaces the executables shipped with the game, allowing you to play them on systems for which they were never designed!<br />
<br />
You can obtain it either by using [[Mokomakefile]] via<br />
<br />
# make build-package-scummvm<br />
<br />
or using a binary, like so:<br />
<br />
# wget http://rabenfrost.net/celtune/ipk/armv4t/libmpeg2-0_0.4.0b-r4_armv4t.ipk<br />
# wget http://rabenfrost.net/celtune/ipk/armv4t/libvorbis_1.0.1-r2_armv4t.ipk<br />
# wget http://rabenfrost.net/celtune/ipk/armv4t/scummvm_0.9.1-r4_armv4t.ipk<br />
# opkg install libmpeg2-0_0.4.0b-r4_armv4t.ipk libvorbis_1.0.1-r2_armv4t.ipk scummvm_0.9.1-r4_armv4t.ipk<br />
<br />
[[Image:MonkeyIsland.png|Monky Island]]<br />
<br />
The games are copyrighted so you'll only be able to play those you own. You can also download some free games from [http://www.scummvm.org/downloads.php#extras scummvm.org] and from the [http://www.the-underdogs.info Home of the Underdogs].<br />
<br />
When starting ScummVM use the command<br />
<br />
# openmoko-scummvm<br />
<br />
This will map '''AUX''' button to the '''F5''' key, which is used to access the ScummVM menu. You should also find an entry on the main menu under ''Games''.<br />
<br />
'''Note:''' The AUX button does not work. There is no way to exit the game besides doing a killall scummvm.<br />
<br />
'''Note:''' It would be great if it where possible to get audio through the headphones and speaker muted.<br />
<br />
More information on ScummVM can be found on the [http://www.scummvm.org/ official] site<br />
<br />
=== Monkey Island 2 ===<br />
<br />
To be able to play Monkey Island 2 you need to pass ScummVM a parameter:<br><br />
root@fic-gta01:/$ openmoko-scummvm --boot-param=10001 monkey2<br />
<br />
For easy access from the menu you can create a menu entry by creating the file /usr/share/applications/monkeyisland2.desktop with the following content:<br />
<br />
[Desktop Entry]<br />
Encoding=UTF-8<br />
Name=LeChuck's Revenge<br />
Comment=Monkey Island 2: LeChuck's Revenge<br />
Exec=openmoko-scummvm --boot-param=10001 monkey2<br />
Icon=monkeyisland2.png<br />
Terminal=false<br />
Type=Application<br />
Categories=Games;<br />
StartupNotify=false<br />
<br />
[[Category:Applications]]</div>Abraxahttp://wiki.openmoko.org/wiki/ScummvmScummvm2008-09-02T22:31:41Z<p>Abraxa: Updated the HORRIBLY outdated download notice</p>
<hr />
<div>= ScummVM = <br />
<br />
ScummVM is a program which allows you to run certain classic graphical point-and-click adventure games, provided you already have their data files. The clever part about this: ScummVM just replaces the executables shipped with the game, allowing you to play them on systems for which they were never designed!<br />
<br />
'''Note:''' Scummvm runs in landscape mode and due to the bug http://docs.openmoko.org/trac/ticket/1244 it is not yet usable.<br />
<br />
You can obtain it either by using [[Mokomakefile]] via<br />
<br />
# make build-package-scummvm<br />
<br />
or using a binary, like so:<br />
<br />
# wget http://rabenfrost.net/celtune/ipk/armv4t/libmpeg2-0_0.4.0b-r4_armv4t.ipk<br />
# wget http://rabenfrost.net/celtune/ipk/armv4t/libvorbis_1.0.1-r2_armv4t.ipk<br />
# wget http://rabenfrost.net/celtune/ipk/armv4t/scummvm_0.9.1-r4_armv4t.ipk<br />
# opkg install libmpeg2-0_0.4.0b-r4_armv4t.ipk libvorbis_1.0.1-r2_armv4t.ipk scummvm_0.9.1-r4_armv4t.ipk<br />
<br />
[[Image:MonkeyIsland.png|Monky Island]]<br />
<br />
The games are copyrighted so you'll only be able to play those you own. You can also download some free games from [http://www.scummvm.org/downloads.php#extras scummvm.org] and from the [http://www.the-underdogs.info Home of the Underdogs].<br />
<br />
When starting ScummVM use the command<br />
<br />
# openmoko-scummvm<br />
<br />
This will map '''AUX''' button to the '''F5''' key, which is used to access the ScummVM menu. You should also find an entry on the main menu under ''Games''.<br />
<br />
'''Note:''' The AUX button does not work. There is no way to exit the game besides doing a killall scummvm.<br />
<br />
'''Note:''' It would be great if it where possible to get audio through the headphones and speaker muted.<br />
<br />
More information on ScummVM can be found on the [http://www.scummvm.org/ official] site<br />
<br />
=== Monkey Island 2 ===<br />
<br />
To be able to play Monkey Island 2 you need to pass ScummVM a parameter:<br><br />
root@fic-gta01:/$ openmoko-scummvm --boot-param=10001 monkey2<br />
<br />
For easy access from the menu you can create a menu entry by creating the file /usr/share/applications/monkeyisland2.desktop with the following content:<br />
<br />
[Desktop Entry]<br />
Encoding=UTF-8<br />
Name=LeChuck's Revenge<br />
Comment=Monkey Island 2: LeChuck's Revenge<br />
Exec=openmoko-scummvm --boot-param=10001 monkey2<br />
Icon=monkeyisland2.png<br />
Terminal=false<br />
Type=Application<br />
Categories=Games;<br />
StartupNotify=false<br />
<br />
[[Category:Applications]]</div>Abraxahttp://wiki.openmoko.org/wiki/User_talk:AbraxaUser talk:Abraxa2008-08-15T05:07:51Z<p>Abraxa: Reponse</p>
<hr />
<div>I was just wondering if you are still writing the Media Player widget. I have an idea on a use for it, but I don't see the status indicated here in the Wiki. Thanks [[User:Historybuff|Historybuff]] 20:40, 28 July 2007 (CEST)<br />
<br />
Yes, I'm currently working on it actually. Mind sharing your thoughts? :) [[User:Abraxa|Abraxa]] 22:27, 28 July 2007 (CEST)<br />
<br />
---<br />
<br />
Where does mediaplayer live right now? This page:<br />
<br />
http://wiki.openmoko.org/wiki/Stable_Hybrid_Release#SVN<br />
<br />
says it's been "forked" for SHR. I checked out svn from:<br />
<br />
svn co svn://daria.forty-two.fr/shr<br />
<br />
and diffed mediaplayer from there with the one from my MokoMakefile. They seem to be identical. I want to remove pulseaudio as a dependency for the packages so that it'll install cleanly under FSO. I've tested this change in 2007.2 and FSO, and both would benefit from it. However, I'd like to work off the current sources... --[[User:Hedora|Hedora]] 03:51, 15 August 2008 (UTC)<br />
<br />
openmoko-devel-image (aka 2007.2) pulls from svn.openmoko.org, which has the unmaintained sources.<br />
The sources at daria.forty-two.fr are the ones I'm working with and they no longer require PulseAudio.<br />
If you want to talk, feel free to hit me up on #openmoko-cdevel (the SHR chan).<br />
[[User:Abraxa|Abraxa]] 05:07, 15 August 2008 (UTC)<br />
<br />
---</div>Abraxahttp://wiki.openmoko.org/wiki/Import_Vcf_ContactsImport Vcf Contacts2008-08-06T21:36:23Z<p>Abraxa: Suggested using dbus-launch</p>
<hr />
<div>== Import for 2007.2 ==<br />
=== Basic Information ===<br />
<br />
Neo FreeRunner uses Evolution data server (eds) to save contacts. <br />
However, the specific version used differs from what is probably used on your desktop (if you have Evolution installed).<br />
<br />
You ''cannot'' copy your addressbook.db from your desktop to Neo ([http://docs.openmoko.org/trac/ticket/1119 bug 1119]).<br />
<br />
=== Import and Manage Scripts ===<br />
<br />
If you want to import your old contacts to the Neo you could use this script:<br />
<br />
[http://www.smurfy.de/files/neo/manage-contacts Manage Contacts script] [http://www.placard.fr.eu.org/~roland/tmp/manage-contacts.py mirror]<br />
<br />
If you first want to remove all existing contacts you could use this script.<br />
<br />
[http://www.smurfy.de/files/neo/remove_all_contacts remove all script]<br />
<br />
If you have all contacts in seperate vcf files and just want to import all at once:<br />
<br />
[http://www.smurfy.de/files/neo/ac Simple script]<br />
<br />
[http://www.smurfy.de/files/neo/import_contacts Simple script for one big contactsfile]<br />
<br />
(please add a .py after the filename, sorry my hoster gives an error if i link to .py files, even .py.txt)<br />
<br />
In the simple scripts you need to add the following lines<br />
ps = os.popen ('ps auxwwwwe | grep -m 1 DBUS_SESSION_BUS_ADDRESS')<br />
l = ps.read ()<br />
r = re.compile ('DBUS_SESSION_BUS_ADDRESS=(\S+)')<br />
m = r.search (l)<br />
a = m.expand ('\\1')<br />
os.environ ['DBUS_SESSION_BUS_ADDRESS'] = a<br />
<br />
=== Exporting old contacts to VCard format ===<br />
<br />
To use the manage Script you need your Contacts in VCF format.<br />
<br />
# on nokia phones i used the nokia phone manager (long time ago)<br />
# on windows mobile phones you could use active sync to sync with Outlook and then use a Outlook export plugin to export as vcf<br />
# on lg phones the backup function to memory card creates one file with multiple VCards.<br />
<br />
=== Exporting from Outlook / ActiveSync to VCF ===<br />
<br />
Doing a quick google I was unable to find a free export plugin for outlook (they all seem to want between $19.95 and $49), so I put together some quick-and-dirty VB code to do it. To use it, Open Outlook, then open the VB editor by pressing ALT-F11, Insert a module, and paste in the following. Change "Z:\OpenMoko\contacts" to wherever you want your vcf files saved (should be an existing, empty directory), and press F5 to run it.<br />
<br />
'''Code:'''<br />
<br />
<pre><br />
<br />
Sub ExportContactsToVCF()<br />
<br />
<br />
'Cheap and nasty way to export All Contacts to VCF files. <br />
'By Dale Maggee, antisol (at) earthling (dot) net<br />
<br />
Dim CN As ContactItem<br />
Dim NS As NameSpace<br />
Dim Fld As MAPIFolder <br />
<br />
Set NS = Application.GetNamespace("MAPI")<br />
Set Fld = NS.GetDefaultFolder(olFolderContacts) <br />
<br />
For Each CN In Fld.Items<br />
Debug.Print CN.FullName<br />
CN.SaveAs "z:\OpenMoko\contacts\" & CN.FullName & ".vcf", olVCard<br />
Next CN<br />
<br />
MsgBox "Done!"<br />
<br />
End Sub<br />
</pre><br />
<br />
voila! you now have multiple VCF files in whatever directory you chose, suitable to be imported by the python script below.<br />
<br />
=== Usage ===<br />
<br />
The script is for the 2007.2 Version (default install on Neo FreeRunner), not for Qtopia<br />
<br />
You need Python to use this script so do a<br />
<br />
opkg install python-dbus<br />
<br />
to install python and the python dbus module<br />
<br />
==== Manage Contacts Script ====<br />
<br />
'''This script needs all contacts in one big file'''<br />
<br />
'''You also could run this script on a ssh session!'''<br />
<br />
# Copy your big contacts file (contacts.txt) to your Neo<br />
# Copy script to your Neo<br />
# Connect via ssh to your Neo<br />
# Fix special chars in your contacts file with you favorite text editor<br />
# To import the file run on the SSH shell:<br />
<br />
python manage-contacts.py load < contacts.txt<br />
<br />
# For a backup your existing contacts on the Neo<br />
<br />
python manage-contacts.py dump > contacts.txt<br />
<br />
==== Simple Script ====<br />
<br />
'''You must run the script in the OM Terminal, not over ssh'''<br />
<br />
The script does a listdir and imports ALL files it found in that dir. (i'm a bad python programmer)<br />
<br />
# Copy all vcf files to a separate directory on my freerunner<br />
# Copy the ac script to the parent directory also on my freerunner<br />
# Have the contacts program running (so you have eds running too)<br />
# Go to the terminal on the freerunner and type in the vcf directory: "python ../ac" (root@om-gta02:~/vcf# python ../ac)<br />
## Note: '''You must call the script in the OM terminal''' not via Bluetooth or USB or you get a dbus error.<br />
# Done :D <br />
<br />
Hint: It should be possible to run the command over ssh using "dbus-launch python ../ac". I haven't tested it since I don't need to import vcf contacts but it'd be nice if someone could test it and edit this section accordingly.<br />
<br />
==== Troubleshooting ====<br />
* Make sure you have python and python-dbus installed<br />
* Make sure you have no illegal chars (utf) in the filename and inside the vcf files. (I had problems with Ü,Ä etc)<br />
** The characters seem to work if you convert them from =C3=A4 type of format to proper UTF-8, and the vcards also specify UTF-8 charset. you cannot use other charsets besides UTF-8 since they are delivered via DBus which does not allow others.<br />
* Only vcf files should be in your current directory so do a ../ac.<br />
* You must call the script in the OM terminal not via Bluetooth or USB. If you do so a dbus error occur<br />
<br />
<br />
=== Authors ===<br />
* Simple script by smurfy - phil <openmoko at smurfy.de><br />
* Manage Contacts script by Roland Mas <lolando at debian.org><br />
* Remove all Contacts script / simple script for one big file by Andreas Dalsgaard <andreas.dalsgaard at gmail.com><br />
<br />
Thanks to [[Import_Sim_Contacts]] for the original Python Script.<br />
<br />
== Import for ASU/Qtopia ==<br />
The Qtopia addressbook application suports import of VCF files out of the box:<br />
LD_LIBRARY_PATH=/opt/Qtopia/lib /opt/Qtopia/bin/addressbook /home/root/addressbook.vcf<br />
<br />
You will be asked if you want to import the contacts form addressbook.vcf (the contact name will be taken from the "N:" vCard field).<br />
<br />
<br />
[[category:Openmoko]]<br />
[[category:Documentation]]</div>Abraxahttp://wiki.openmoko.org/wiki/Talk:OpenMoko_Local_Groups:_FrankfurtTalk:OpenMoko Local Groups: Frankfurt2008-07-13T01:09:40Z<p>Abraxa: Newlines...</p>
<hr />
<div>Naechstes Treffen:<br />
<br />
14. Juli (ja, diesen Montag) 18:00 Uhr<br />
<br />
Cantina Mescal, Ecke Textor/Schweizerstrasse<br />
<br />
Frankfurt Sachsenhausen</div>Abraxahttp://wiki.openmoko.org/wiki/Talk:OpenMoko_Local_Groups:_FrankfurtTalk:OpenMoko Local Groups: Frankfurt2008-07-13T01:09:08Z<p>Abraxa: Next meeting</p>
<hr />
<div>Naechstes Treffen:<br />
<br />
14. Juli (ja, diesen Montag)<br />
18:00 Uhr<br />
<br />
Cantina Mescal, Ecke Textor/Schweizerstrasse<br />
Frankfurt Sachsenhausen</div>Abraxahttp://wiki.openmoko.org/wiki/Getting_Started_with_your_Neo_FreeRunnerGetting Started with your Neo FreeRunner2008-07-12T08:32:31Z<p>Abraxa: Not everone can use vi, so let's give a line to copy'n'paste for the gpsd config change</p>
<hr />
<div>{{Languages|Getting Started with your Neo FreeRunner}}<br />
<br />
{| class="wikitable" cellspacing="2" cellpadding="2" style="padding: 0%; margin:0em 0em 1em 0em; border:1px solid #cccccc; background:#eeeeee; width:100%;floating="center"; "<br />
! style="background:#fcfcfc;border-left:1px solid #9999cc;border-right:1px ; border-top:2px solid 75d806; border:1px solid #222222; width:75% " | <br />
<div align="left"><br />
Thank you for purchasing this Developer release of Neo FreeRunner. The [[Neo FreeRunner]] phone is the second hardware platform to take advantage of [[Openmoko]]. This guide will help you get to know your Neo FreeRunner and how to start using your Neo FreeRunner.<br />
! style="background:#fcfcfc;border-left:1px solid #9999cc;border-right:1px ; border-top:2px solid 75d806; border:1px solid #222222; width:25% " |<br />
[[Image:Freerunner box.png|200px|thumb|Neo FreeRunner Package]]<br />
|}<br />
<br />
== The Package Contents ==<br />
<br />
{| class="wikitable" cellspacing="2" cellpadding="2" style="padding: 0%; margin:0em 0em 1em 0em; border:1px solid #ffffff; background:#ffffff; width:80%; floating="center"; "<br />
! style="background:#ffffff;border-left:1px solid #ffffff;border-right:1px ; border-top:2px solid ffffff; border:1px solid #ffffff; " | <br />
<div align="left"><br />
[[Image:GTA02ALL.png|400px|thumb|Inside package]]<br />
|<br />
<br />
: [[Image:Circle2.gif|10px]] Neo FreeRunner<br />
: [[Image:Circle2.gif|10px]] Stylus<br />
: [[Image:Circle2.gif|10px]] Battery<br />
: [[Image:Circle2.gif|10px]] Charger<br />
: [[Image:Circle2.gif|10px]] USB Cable <br />
: [[Image:Circle2.gif|10px]] microSD Card 512MB<br />
|}<br />
</div><br />
<br />
==Getting To Know the Neo FreeRunner==<br />
<br />
<div align-center><br />
<table width="80%" style="clear: both; border: 1px solid #ffffff; border-collapse: collapse; padding: 0.2em; margin: 0; font-size: 100%; margin: 0 1px;"><br />
<tr valign="top" style="background: #ffffff"><br />
<td style="width: 25px; padding-left: 0.5em;"><br />
</td><br />
<td style="width: 10px; white-space: nowrap; padding: 4px 1em 0 0.5em; border-right: 1px solid #ffffff;">[[Image:menu8.jpg|370px|thumb|AUX Button and phone jack(From left to right)|center]]</td><td style="padding: 1px 1em 0; background: #ffffff;"><br />
[[Image:menu9.jpg|365px|thumb|Power Button, USB and external GPS Antenna (From left to right)|center]]</td></tr></table><br />
</div><br />
<br />
<div align-center><br />
<table width="80%" style="clear: both; border: 1px solid #ffffff; border-collapse: collapse; padding: 0.2em; margin: 0; font-size: 100%; margin: 0 1px;"><br />
<tr valign="top" style="background: #ffffff"><br />
<td style="width: 50%; padding-left: 0.5em;"><br />
</td><br />
<td style="width: 50%; white-space: nowrap; padding: 4px 1em 0 0.5em; border-right: 1px solid #ffffff;">[[Image:menu12.jpg|233px|thumb|AUX Back side with battery|center]]</td><td style="padding: 1px 1em 0; background: #ffffff;"><br />
[[Image:menu11.jpg|260px|thumb|Put the SIM card and SD card here|center]]</td></tr></table><br />
</div><br />
<br />
<div align-center><br />
<table width="80%" style="clear: both; border: 1px solid #ffffff; border-collapse: collapse; padding: 0.2em; margin: 0; font-size: 100%; margin: 0 1px;"><br />
<tr valign="top" style="background: #ffffff"><br />
<td style="width: 50%; padding-left: 0.5em;"><br />
</td><br />
<td style="width: 50%; white-space: nowrap; padding: 4px 1em 0 0.5em; border-right: 1px solid #ffffff;">[[Image:menu13.jpg|233px|thumb|open case from this side |center]]</td><td style="padding: 1px 1em 0; background: #ffffff;"><br />
[[Image:menu14.jpg|250px|thumb|Opened|center]]</td></tr></table><br />
</div><br />
<br />
===Installing the Micro-SD card, the SIM card, and the Battery ===<br />
<br />
# Remove the rear cover of the Neo FreeRunner by first holding the Neo FreeRunner on the side and then use your fingernail to prise off the rear cover at the slot on top of the device.<br />
# Now you should be able to locate the combined SIM and Micro-SD card holder at the bottom of the battery compartment.<br />
# Unlock the SIM card holder by sliding the metal clip down, towards the USB socket, with your fingernail. Use caution, as these parts are delicate and could be damaged by forcing them in the wrong direction.<br />
# Lift up on the SIM card holder.<br />
# The Micro-SD card holder is held in place by a latch on either side. It is easiest to open the Micro-SD card holder by releasing these latches one at a time rather than by lifting from the middle, as lifting from the middle tends to increase the latching pressure. A small screwdriver or knife can be used for this.<br />
# Insert the Micro-SD card into the Micro-SD card holder. Note that the electrical contacts should face down and towards the edge of the Neo Freerunner.<br />
# Close the Micro-SD card holder, making sure that both latches are securely fastened.<br />
# Insert the SIM card into the SIM card holder, taking care to slide inside the two metal tabs in the cover. Please note that the electrical contacts should face down and that the cut corner should be closest to the external GPS Antenna Socket.<br />
# Close the SIM card holder and lock it by sliding the metal clip towards the external GPS Antenna Socket on the FreeRunner.<br />
# Insert the battery into the battery compartment, aligning the electrical contacts on the battery with the electrical contacts in the battery compartment. Insert the side with the electrical contacts first.<br />
# Replace the rear cover on the FreeRunner.<br />
<br />
===Turning on the Neo Freerunner===<br />
<br />
====Charging the Neo Freerunner====<br />
<br />
When using the Neo Freerunner for the first time, you should charge the battery completely. The battery can be charged using the provided charger (at 1000mA) or from a powered USB port capable of providing 500mA worth of current. Most computers will be able to charge the FreeRunner without any problems.<br />
<br />
Charging at 100mA takes 6-12 hours and at 500mA takes 1-2 hours. (from [http://openmoko.togaware.com/survivor/Charging.html openmoko.togaware.com])<br />
<br />
===Unlocking the screen===<br />
<br />
When the screen is locked, you should see a Matrix-style green graphic with the Openmoko symbol in the middle of the bottom of the screen along with lock and unlock symbols. If you drag the Openmoko symbol to the unlock symbol at the top then the screen will become unlocked.<br />
<br />
==Connect to the Neo FreeRunner By USB Networking==<br />
<br />
Connect the Neo FreeRunner to a GNU/Linux host with the USB cable. For Mac OS X please refer to [[MacOS_X]]. After booting into the Openmoko image there will be a new interface, usb0, on your GNU/Linux host.<br />
<br />
=====Manual Method=====<br />
Type in the following commands in the terminal of a GNU/Linux host:<br />
<br />
ifconfig usb0 192.168.0.200 netmask 255.255.255.0<br />
ssh root@192.168.0.202<br />
<br />
Press Enter to get by the password.<br />
<br />
=====Automatic Method=====<br />
*Debian and derivatives (Ubuntu, Sidux etc.)<br />
Edit /etc/network/interfaces:<br />
<br />
auto usb0<br />
iface usb0 inet static<br />
address 192.168.0.200<br />
netmask 255.255.255.0<br />
<br />
*Gentoo <br />
Edit /etc/conf.d/net:<br />
<br />
config_usb0="192.168.0.200/24"<br />
<br />
Restart the networking service ('/etc/init.d/networking restart' for Debian-based systems) and then type the following command in the terminal of the GNU/Linux host:<br />
<br />
ssh root@192.168.0.202<br />
<br />
Press Enter to get by the password.<br />
<br />
{{note|<br />
If your network device is using the ip range 192.168.0.x you may have to use the following command before you are able to connect<br />
<br />
route add -host 192.168.0.202 dev usb0 }}<br />
<br />
=====Making things even more automatic=====<br />
If you don't want to remember the IP address of your phone then you can create an alias by adding the following line to your /etc/hosts:<br />
<br />
192.168.0.202 openmoko<br />
<br />
Now it should be possible to connect to your phone using the following command:<br />
<br />
ssh root@openmoko<br />
<br />
The above only gets you a Secure Shell connection to the Openmoko device, it does not allow the Openmoko device to connect to the Internet. If you are interested in connecting the device to the internet then check out the [[USB_Networking]] section.<br />
<br />
=====Sharing your Internet connection via USB=====<br />
In Ubuntu:<br />
<br />
Within /etc/network/interfaces, change your interface setup to this:<br />
<br />
auto usb0<br />
iface usb0 inet static<br />
address 192.168.0.200<br />
netmask 255.255.255.0<br />
network 192.168.0.0<br />
up iptables -A POSTROUTING -t nat -j MASQUERADE -s 192.168.0.0/24 &<br />
up echo 1 > /proc/sys/net/ipv4/ip_forward &<br />
up iptables -P FORWARD ACCEPT &<br />
down iptables -D POSTROUTING -t nat -j MASQUERADE -s 192.168.0.0/24 &<br />
<br />
Then, on your Freerunner, edit /etc/network/interfaces<br />
and modify the code from this:<br />
<br />
iface usb0 inet static<br />
address 192.168.0.202<br />
netmask 255.255.255.0<br />
network 192.168.0.0<br />
gateway 192.168.0.200<br />
up echo nameserver 192.168.0.200 > /etc/resolv.conf<br />
<br />
to something that points to a real name server, like a public DNS system from OpenDNS, like this:<br />
<br />
iface usb0 inet static<br />
address 192.168.0.202<br />
netmask 255.255.255.0<br />
network 192.168.0.0<br />
gateway 192.168.0.200<br />
up echo nameserver 208.67.222.222 > /etc/resolv.conf<br />
up echo nameserver 208.67.220.220 >> /etc/resolv.conf<br />
<br />
==Un-crippling the 2007.2 image==<br />
<br />
The stock 2007.2 image flashed onto the Neo FreeRunner is really just the bare bones. For example, you don't have the clock and the quick-launch icons showing. Here's how you can change that:<br />
<br />
# dbus-launch gconftool-2 -t boolean -s /desktop/poky/interface/reduced false<br />
# /etc/init.d/xserver-nodm restart<br />
<br />
If you rather have a regular clock instead of the digital one, do this instead:<br />
<br />
# dbus-launch gconftool-2 -t boolean -s /desktop/poky/interface/reduced false<br />
# dbus-launch gconftool-2 -t boolean -s /desktop/poky/interface/digital_clock false<br />
# /etc/init.d/xserver-nodm restart<br />
<br />
With either clock, you may wish to set the correct [[Timezone]].<br />
<br />
Also, if you prefer having a full keyboard, see [http://www.ginguppin.de/node/15 these instructions].<br />
<br />
Finally, you might want to update your package list to know about the most recent versions:<br />
<br />
# opkg update<br />
<br />
====Recommended software====<br />
<br />
To test GPS, you can use agpsui:<br />
<br />
# opkg install openmoko-agpsui<br />
<br />
For a nice map, try tangoGPS:<br />
<br />
# opkg install tangogps<br />
# opkg install gpsd<br />
# echo "GPS_DEV=\"/dev/ttySAC1\"" > /etc/default/gpsd<br />
<br />
And if you want the Media Player back:<br />
<br />
# opkg install openmoko-mediaplayer2<br />
# wget http://abraxa.dyndns.org:81/random/openmoko-mediaplayer-theme.tar.bz2<br />
# tar xjf openmoko-mediaplayer-theme.tar.bz2 -C /usr/share/themes/Moko/gtk-2.0<br />
<br />
If you want a basic image viewer, have a look at the one from the gpe suite:<br />
<br />
# opkg install gpe-icons gpe-gallery<br />
<br />
To obtain the standard web browser, use:<br />
<br />
# opkg install openmoko-browser2<br />
<br />
There are tons more apps you can install - check out the [[Repositories]] for a list of packages.<br />
<br />
====Booting the Neo Freerunner====<br />
<br />
You can boot your Neo FreeRunner in the following ways:<br />
<br />
: [[Image:Circle2.gif|10px]] You can power it up into an Openmoko image directly. <br />
<br />
: [[Image:Circle2.gif|10px]] You can boot it into [[Bootloader|U-Boot]] via [[NAND Flash]].<br />
<br />
: [[Image:Circle2.gif|10px]] You can boot it into U-Boot via NOR Flash.<br />
<br />
Booting the device into NAND and NOR Flash allows you to update the kernel and root filesystem.<br />
<br />
====Start the Openmoko Image====<br />
<br />
<div align-center><br />
<table width="100%" style="clear: both; border: 1px solid #ffffff; border-collapse: collapse; padding: 0.2em; margin: 0; font-size: 100%; margin: 0 1px;"><br />
<tr valign="top" style="background: #ffffff"><br />
<td style="width: 25px; padding-left: 0.5em;"><br />
<br />
</td><br />
<td style="width: 10px; white-space: nowrap; padding: 4px 1em 0 0.5em; border-right: 1px solid #ffffff;">[[Image:Menu2.jpg|200px|right|thumb]]</td><td style="padding: 1px 1em 0; background: #eeeeee;"><br />
Press and hold Power button for about 8 seconds, until the Openmoko splash screen turns up. You may now release the Power button and the Neo FreeRunner will continue to boot into the Openmoko Image.<br />
<br />
</td></tr></table><br />
</div><br />
<br />
====Log into U-Boot in the NAND Flash====<br />
<br />
<div align-center><br />
<table width="100%" style="clear: both; border: 1px solid #ffffff; border-collapse: collapse; padding: 0.2em; margin: 0; font-size: 100%; margin: 0 1px;"><br />
<tr valign="top" style="background: #ffffff"><br />
<td style="width: 25px; padding-left: 0.5em;"><br />
<br />
</td><br />
<td style="width: 10px; white-space: nowrap; padding: 4px 1em 0 0.5em; border-right: 1px solid #ffffff;">[[Image:Menu7.jpg|200px|right|thumb]]</td><td style="padding: 1px 1em 0; background: #eeeeee;"><br />
Press and hold Power button, then press and hold AUX button for about 5 to 8 seconds. You should see the boot menu for the NAND Flash. Press the AUX button to select one of the options and then press the Power button to execute.<br />
</td></tr></table><br />
</div><br />
<br />
====Log into U-Boot in the NOR Flash====<br />
<br />
<div align-center><br />
<table width="100%" style="clear: both; border: 1px solid #ffffff; border-collapse: collapse; padding: 0.2em; margin: 0; font-size: 100%; margin: 0 1px;"><br />
<tr valign="top" style="background: #ffffff"><br />
<td style="width: 25px; padding-left: 0.5em;"><br />
<br />
</td><br />
<td style="width: 10px; white-space: nowrap; padding: 4px 1em 0 0.5em; border-right: 1px solid #ffffff;">[[Image:Menu6.jpg|200px|right|thumb]]</td><td style="padding: 1px 1em 0; background: #eeeeee;"><br />
<br />
Press and hold the AUX button, then press and hold the Power button. Then, release the AUX button. You should see the boot menu for the NOR Flash. This option is usually used by developers or when flashing the FreeRunner. If you cannot log into U-Boot in NAND then you can log into U-Boot in the NOR Flash either. <br />
</td></tr></table><br />
</div><br />
<br />
{{note| There are six options you can choose when you log into the NOR Flash.<br />
1. Boot<br />
<br />
2. [[Boot from sd card|Boot from MicroSD]]<br />
<br />
3. Set console to USB <br />
<br />
4. Set console to Serial<br />
<br />
5. Reset<br />
<br />
6. Power off}}<br />
<br />
{{note|The term ''Logging in'' used in this context means to turn on the device using the described method, and leaving it at the U-Boot menu. To avoid the device automatically booting, tap the AUX key to move the selector bar. Note also that the device will '''not''' automatically turn off while flashing is in progress.<br />
}}<br />
<br />
==Flashing the Neo FreeRunner==<br />
As Openmoko development continues, Openmoko regularly releases updated versions of the Openmoko root filesystem, the kernel, and the[[Bootloader| U-Boot]]. These may be programmed into the Flash memory of Neo FreeRunner. You can use the USB cable and Openmoko provided tool to flash Neo FreeRunner.<br />
<br />
{{note|The Openmoko software team builds images daily. If you want to use the latest images, you can download the image from the daily build, but we recommend you download the most stable image from http://downloads.openmoko.org/releases/Freerunner/. Images here have been tested by the test team.<br />
<br />
More about current Images: http://wiki.openmoko.org/wiki/Latest_Images}}<br />
<br />
===Step1. Download the DFU-util===<br />
<br />
You can download the flashing tool from: <br />
http://downloads.openmoko.org/releases/Freerunner/dfu-util<br />
<br />
On the GNU/Linux host you can use the following command to download the dfu-util:<br />
wget http://downloads.openmoko.org/releases/Freerunner/dfu-util<br />
<br />
Afterwards you have to change the rights on the file:<br />
chmod a+x dfu-util<br />
<br />
===Step 2. Flashing the Kernel===<br />
<br />
You can download the kernel from <br />
http://downloads.openmoko.org/releases/Freerunner/<br />
<br />
Type in the following command in the terminal on a GNU/Linux host. On some systems you need to be root before this will work.<br />
./dfu-util -a (partion name) -R -D (download image file name)<br />
<br />
<br />
ex:<br />
<br />
./dfu-util -a kernel -R -D uImage-2.6.24+svnr4082-r4055-r3-neo1973.bin<br />
<br />
{| class="wikitable" cellspacing="2" cellpadding="2" style="padding: 0%; margin:0em 0em 1em 0em; border:0px solid #ffffff; background:#ffffff; width:100%;floating="center"; "<br />
! style="background:#ffffff;border-left:1px solid #ffffff;border-right:1px ; border-top:2px solid ffffff; border:1px solid #ffffff; width:75% " | <br />
<div align="left"><br />
[[Image:menu15.jpg|thumb|Log into U-Boot in NOR Flash, connect your Neo with Linux Host via USB cable]]<br />
Before you execute the command, please log into U-Boot in the NOR Flash. The Neo FreeRunner needs to be booted into U-Boot for flashing.<br />
<br />
You will then need to connect your Neo with the GNU/Linux host via USB cable. Press Enter to execute the command. When flashing succeeds the following will be shown:<br />
<br />
status(0) = No error condition is present<br><br />
Done!<br />
</div><br />
|}<br />
<br />
{{note| The meaning of the parameters you specified:<br />
-a --alt alt Specify the altsetting of the DFU interface by name or by number<br><br />
-R --reset Issue USB Reset signalling once we're finished<br><br />
-D --download file Write firmware from<file> into device <br><br />
}}<br />
<br />
===Step 3. Flashing the Root Filesystem ===<br />
You can download the root filesystem from:<br />
http://downloads.openmoko.org/releases/Freerunner/<br />
<br />
Type the following command in the terminal of a GNU/Linux host. On some systems you will need to be root.<br />
<br />
./dfu-util -a rootfs -R -D openmoko-devel-image-fic-gta02.jffs2<br />
<br />
When flashing succeeds the following will be shown:<br />
<br />
status(0) = No error condition is present<br><br />
Done!<br />
<br />
==Appendix==<br />
If you want to know more about the Neo FreeRunner then you can get more information in the following topics:<br />
* [[GTA02 Openness]]<br />
* [[Neo FreeRunner]]<br />
* [[Neo FreeRunner GTA02 Hardware]]<br />
* [[FreeRunner/Buttons and LEDs]]<br />
* [[Latest_Images]]<br />
* [[Distributions]]<br />
<br />
[[Category:GTA02 Hardware]]</div>Abraxahttp://wiki.openmoko.org/wiki/Getting_Started_with_your_Neo_FreeRunnerGetting Started with your Neo FreeRunner2008-07-12T08:29:13Z<p>Abraxa: 2007.2 is not being maintained, so there's nothing to upgrade aside form kernel, which opkg upgrade doesn't do reliably. We don't want to frustrate new folks, so I took that out.</p>
<hr />
<div>{{Languages|Getting Started with your Neo FreeRunner}}<br />
<br />
{| class="wikitable" cellspacing="2" cellpadding="2" style="padding: 0%; margin:0em 0em 1em 0em; border:1px solid #cccccc; background:#eeeeee; width:100%;floating="center"; "<br />
! style="background:#fcfcfc;border-left:1px solid #9999cc;border-right:1px ; border-top:2px solid 75d806; border:1px solid #222222; width:75% " | <br />
<div align="left"><br />
Thank you for purchasing this Developer release of Neo FreeRunner. The [[Neo FreeRunner]] phone is the second hardware platform to take advantage of [[Openmoko]]. This guide will help you get to know your Neo FreeRunner and how to start using your Neo FreeRunner.<br />
! style="background:#fcfcfc;border-left:1px solid #9999cc;border-right:1px ; border-top:2px solid 75d806; border:1px solid #222222; width:25% " |<br />
[[Image:Freerunner box.png|200px|thumb|Neo FreeRunner Package]]<br />
|}<br />
<br />
== The Package Contents ==<br />
<br />
{| class="wikitable" cellspacing="2" cellpadding="2" style="padding: 0%; margin:0em 0em 1em 0em; border:1px solid #ffffff; background:#ffffff; width:80%; floating="center"; "<br />
! style="background:#ffffff;border-left:1px solid #ffffff;border-right:1px ; border-top:2px solid ffffff; border:1px solid #ffffff; " | <br />
<div align="left"><br />
[[Image:GTA02ALL.png|400px|thumb|Inside package]]<br />
|<br />
<br />
: [[Image:Circle2.gif|10px]] Neo FreeRunner<br />
: [[Image:Circle2.gif|10px]] Stylus<br />
: [[Image:Circle2.gif|10px]] Battery<br />
: [[Image:Circle2.gif|10px]] Charger<br />
: [[Image:Circle2.gif|10px]] USB Cable <br />
: [[Image:Circle2.gif|10px]] microSD Card 512MB<br />
|}<br />
</div><br />
<br />
==Getting To Know the Neo FreeRunner==<br />
<br />
<div align-center><br />
<table width="80%" style="clear: both; border: 1px solid #ffffff; border-collapse: collapse; padding: 0.2em; margin: 0; font-size: 100%; margin: 0 1px;"><br />
<tr valign="top" style="background: #ffffff"><br />
<td style="width: 25px; padding-left: 0.5em;"><br />
</td><br />
<td style="width: 10px; white-space: nowrap; padding: 4px 1em 0 0.5em; border-right: 1px solid #ffffff;">[[Image:menu8.jpg|370px|thumb|AUX Button and phone jack(From left to right)|center]]</td><td style="padding: 1px 1em 0; background: #ffffff;"><br />
[[Image:menu9.jpg|365px|thumb|Power Button, USB and external GPS Antenna (From left to right)|center]]</td></tr></table><br />
</div><br />
<br />
<div align-center><br />
<table width="80%" style="clear: both; border: 1px solid #ffffff; border-collapse: collapse; padding: 0.2em; margin: 0; font-size: 100%; margin: 0 1px;"><br />
<tr valign="top" style="background: #ffffff"><br />
<td style="width: 50%; padding-left: 0.5em;"><br />
</td><br />
<td style="width: 50%; white-space: nowrap; padding: 4px 1em 0 0.5em; border-right: 1px solid #ffffff;">[[Image:menu12.jpg|233px|thumb|AUX Back side with battery|center]]</td><td style="padding: 1px 1em 0; background: #ffffff;"><br />
[[Image:menu11.jpg|260px|thumb|Put the SIM card and SD card here|center]]</td></tr></table><br />
</div><br />
<br />
<div align-center><br />
<table width="80%" style="clear: both; border: 1px solid #ffffff; border-collapse: collapse; padding: 0.2em; margin: 0; font-size: 100%; margin: 0 1px;"><br />
<tr valign="top" style="background: #ffffff"><br />
<td style="width: 50%; padding-left: 0.5em;"><br />
</td><br />
<td style="width: 50%; white-space: nowrap; padding: 4px 1em 0 0.5em; border-right: 1px solid #ffffff;">[[Image:menu13.jpg|233px|thumb|open case from this side |center]]</td><td style="padding: 1px 1em 0; background: #ffffff;"><br />
[[Image:menu14.jpg|250px|thumb|Opened|center]]</td></tr></table><br />
</div><br />
<br />
===Installing the Micro-SD card, the SIM card, and the Battery ===<br />
<br />
# Remove the rear cover of the Neo FreeRunner by first holding the Neo FreeRunner on the side and then use your fingernail to prise off the rear cover at the slot on top of the device.<br />
# Now you should be able to locate the combined SIM and Micro-SD card holder at the bottom of the battery compartment.<br />
# Unlock the SIM card holder by sliding the metal clip down, towards the USB socket, with your fingernail. Use caution, as these parts are delicate and could be damaged by forcing them in the wrong direction.<br />
# Lift up on the SIM card holder.<br />
# The Micro-SD card holder is held in place by a latch on either side. It is easiest to open the Micro-SD card holder by releasing these latches one at a time rather than by lifting from the middle, as lifting from the middle tends to increase the latching pressure. A small screwdriver or knife can be used for this.<br />
# Insert the Micro-SD card into the Micro-SD card holder. Note that the electrical contacts should face down and towards the edge of the Neo Freerunner.<br />
# Close the Micro-SD card holder, making sure that both latches are securely fastened.<br />
# Insert the SIM card into the SIM card holder, taking care to slide inside the two metal tabs in the cover. Please note that the electrical contacts should face down and that the cut corner should be closest to the external GPS Antenna Socket.<br />
# Close the SIM card holder and lock it by sliding the metal clip towards the external GPS Antenna Socket on the FreeRunner.<br />
# Insert the battery into the battery compartment, aligning the electrical contacts on the battery with the electrical contacts in the battery compartment. Insert the side with the electrical contacts first.<br />
# Replace the rear cover on the FreeRunner.<br />
<br />
===Turning on the Neo Freerunner===<br />
<br />
====Charging the Neo Freerunner====<br />
<br />
When using the Neo Freerunner for the first time, you should charge the battery completely. The battery can be charged using the provided charger (at 1000mA) or from a powered USB port capable of providing 500mA worth of current. Most computers will be able to charge the FreeRunner without any problems.<br />
<br />
Charging at 100mA takes 6-12 hours and at 500mA takes 1-2 hours. (from [http://openmoko.togaware.com/survivor/Charging.html openmoko.togaware.com])<br />
<br />
===Unlocking the screen===<br />
<br />
When the screen is locked, you should see a Matrix-style green graphic with the Openmoko symbol in the middle of the bottom of the screen along with lock and unlock symbols. If you drag the Openmoko symbol to the unlock symbol at the top then the screen will become unlocked.<br />
<br />
==Connect to the Neo FreeRunner By USB Networking==<br />
<br />
Connect the Neo FreeRunner to a GNU/Linux host with the USB cable. For Mac OS X please refer to [[MacOS_X]]. After booting into the Openmoko image there will be a new interface, usb0, on your GNU/Linux host.<br />
<br />
=====Manual Method=====<br />
Type in the following commands in the terminal of a GNU/Linux host:<br />
<br />
ifconfig usb0 192.168.0.200 netmask 255.255.255.0<br />
ssh root@192.168.0.202<br />
<br />
Press Enter to get by the password.<br />
<br />
=====Automatic Method=====<br />
*Debian and derivatives (Ubuntu, Sidux etc.)<br />
Edit /etc/network/interfaces:<br />
<br />
auto usb0<br />
iface usb0 inet static<br />
address 192.168.0.200<br />
netmask 255.255.255.0<br />
<br />
*Gentoo <br />
Edit /etc/conf.d/net:<br />
<br />
config_usb0="192.168.0.200/24"<br />
<br />
Restart the networking service ('/etc/init.d/networking restart' for Debian-based systems) and then type the following command in the terminal of the GNU/Linux host:<br />
<br />
ssh root@192.168.0.202<br />
<br />
Press Enter to get by the password.<br />
<br />
{{note|<br />
If your network device is using the ip range 192.168.0.x you may have to use the following command before you are able to connect<br />
<br />
route add -host 192.168.0.202 dev usb0 }}<br />
<br />
=====Making things even more automatic=====<br />
If you don't want to remember the IP address of your phone then you can create an alias by adding the following line to your /etc/hosts:<br />
<br />
192.168.0.202 openmoko<br />
<br />
Now it should be possible to connect to your phone using the following command:<br />
<br />
ssh root@openmoko<br />
<br />
The above only gets you a Secure Shell connection to the Openmoko device, it does not allow the Openmoko device to connect to the Internet. If you are interested in connecting the device to the internet then check out the [[USB_Networking]] section.<br />
<br />
=====Sharing your Internet connection via USB=====<br />
In Ubuntu:<br />
<br />
Within /etc/network/interfaces, change your interface setup to this:<br />
<br />
auto usb0<br />
iface usb0 inet static<br />
address 192.168.0.200<br />
netmask 255.255.255.0<br />
network 192.168.0.0<br />
up iptables -A POSTROUTING -t nat -j MASQUERADE -s 192.168.0.0/24 &<br />
up echo 1 > /proc/sys/net/ipv4/ip_forward &<br />
up iptables -P FORWARD ACCEPT &<br />
down iptables -D POSTROUTING -t nat -j MASQUERADE -s 192.168.0.0/24 &<br />
<br />
Then, on your Freerunner, edit /etc/network/interfaces<br />
and modify the code from this:<br />
<br />
iface usb0 inet static<br />
address 192.168.0.202<br />
netmask 255.255.255.0<br />
network 192.168.0.0<br />
gateway 192.168.0.200<br />
up echo nameserver 192.168.0.200 > /etc/resolv.conf<br />
<br />
to something that points to a real name server, like a public DNS system from OpenDNS, like this:<br />
<br />
iface usb0 inet static<br />
address 192.168.0.202<br />
netmask 255.255.255.0<br />
network 192.168.0.0<br />
gateway 192.168.0.200<br />
up echo nameserver 208.67.222.222 > /etc/resolv.conf<br />
up echo nameserver 208.67.220.220 >> /etc/resolv.conf<br />
<br />
==Un-crippling the 2007.2 image==<br />
<br />
The stock 2007.2 image flashed onto the Neo FreeRunner is really just the bare bones. For example, you don't have the clock and the quick-launch icons showing. Here's how you can change that:<br />
<br />
# dbus-launch gconftool-2 -t boolean -s /desktop/poky/interface/reduced false<br />
# /etc/init.d/xserver-nodm restart<br />
<br />
If you rather have a regular clock instead of the digital one, do this instead:<br />
<br />
# dbus-launch gconftool-2 -t boolean -s /desktop/poky/interface/reduced false<br />
# dbus-launch gconftool-2 -t boolean -s /desktop/poky/interface/digital_clock false<br />
# /etc/init.d/xserver-nodm restart<br />
<br />
With either clock, you may wish to set the correct [[Timezone]].<br />
<br />
Also, if you prefer having a full keyboard, see [http://www.ginguppin.de/node/15 these instructions].<br />
<br />
Finally, you might want to update your package list to know about the most recent versions:<br />
<br />
# opkg update<br />
<br />
====Recommended software====<br />
<br />
To test GPS, you can use agpsui:<br />
<br />
# opkg install openmoko-agpsui<br />
<br />
For a nice map, try tangoGPS:<br />
<br />
# opkg install tangogps<br />
# opkg install gpsd<br />
<br />
(then edit /etc/default/gpsd to contain GPS_DEV="/dev/ttySAC1")<br />
<br />
And if you want the Media Player back:<br />
<br />
# opkg install openmoko-mediaplayer2<br />
# wget http://abraxa.dyndns.org:81/random/openmoko-mediaplayer-theme.tar.bz2<br />
# tar xjf openmoko-mediaplayer-theme.tar.bz2 -C /usr/share/themes/Moko/gtk-2.0<br />
<br />
If you want a basic image viewer, have a look at the one from the gpe suite:<br />
<br />
# opkg install gpe-icons gpe-gallery<br />
<br />
To obtain the standard web browser, use:<br />
<br />
# opkg install openmoko-browser2<br />
<br />
There are tons more apps you can install - check out the [[Repositories]] for a list of packages.<br />
<br />
====Booting the Neo Freerunner====<br />
<br />
You can boot your Neo FreeRunner in the following ways:<br />
<br />
: [[Image:Circle2.gif|10px]] You can power it up into an Openmoko image directly. <br />
<br />
: [[Image:Circle2.gif|10px]] You can boot it into [[Bootloader|U-Boot]] via [[NAND Flash]].<br />
<br />
: [[Image:Circle2.gif|10px]] You can boot it into U-Boot via NOR Flash.<br />
<br />
Booting the device into NAND and NOR Flash allows you to update the kernel and root filesystem.<br />
<br />
====Start the Openmoko Image====<br />
<br />
<div align-center><br />
<table width="100%" style="clear: both; border: 1px solid #ffffff; border-collapse: collapse; padding: 0.2em; margin: 0; font-size: 100%; margin: 0 1px;"><br />
<tr valign="top" style="background: #ffffff"><br />
<td style="width: 25px; padding-left: 0.5em;"><br />
<br />
</td><br />
<td style="width: 10px; white-space: nowrap; padding: 4px 1em 0 0.5em; border-right: 1px solid #ffffff;">[[Image:Menu2.jpg|200px|right|thumb]]</td><td style="padding: 1px 1em 0; background: #eeeeee;"><br />
Press and hold Power button for about 8 seconds, until the Openmoko splash screen turns up. You may now release the Power button and the Neo FreeRunner will continue to boot into the Openmoko Image.<br />
<br />
</td></tr></table><br />
</div><br />
<br />
====Log into U-Boot in the NAND Flash====<br />
<br />
<div align-center><br />
<table width="100%" style="clear: both; border: 1px solid #ffffff; border-collapse: collapse; padding: 0.2em; margin: 0; font-size: 100%; margin: 0 1px;"><br />
<tr valign="top" style="background: #ffffff"><br />
<td style="width: 25px; padding-left: 0.5em;"><br />
<br />
</td><br />
<td style="width: 10px; white-space: nowrap; padding: 4px 1em 0 0.5em; border-right: 1px solid #ffffff;">[[Image:Menu7.jpg|200px|right|thumb]]</td><td style="padding: 1px 1em 0; background: #eeeeee;"><br />
Press and hold Power button, then press and hold AUX button for about 5 to 8 seconds. You should see the boot menu for the NAND Flash. Press the AUX button to select one of the options and then press the Power button to execute.<br />
</td></tr></table><br />
</div><br />
<br />
====Log into U-Boot in the NOR Flash====<br />
<br />
<div align-center><br />
<table width="100%" style="clear: both; border: 1px solid #ffffff; border-collapse: collapse; padding: 0.2em; margin: 0; font-size: 100%; margin: 0 1px;"><br />
<tr valign="top" style="background: #ffffff"><br />
<td style="width: 25px; padding-left: 0.5em;"><br />
<br />
</td><br />
<td style="width: 10px; white-space: nowrap; padding: 4px 1em 0 0.5em; border-right: 1px solid #ffffff;">[[Image:Menu6.jpg|200px|right|thumb]]</td><td style="padding: 1px 1em 0; background: #eeeeee;"><br />
<br />
Press and hold the AUX button, then press and hold the Power button. Then, release the AUX button. You should see the boot menu for the NOR Flash. This option is usually used by developers or when flashing the FreeRunner. If you cannot log into U-Boot in NAND then you can log into U-Boot in the NOR Flash either. <br />
</td></tr></table><br />
</div><br />
<br />
{{note| There are six options you can choose when you log into the NOR Flash.<br />
1. Boot<br />
<br />
2. [[Boot from sd card|Boot from MicroSD]]<br />
<br />
3. Set console to USB <br />
<br />
4. Set console to Serial<br />
<br />
5. Reset<br />
<br />
6. Power off}}<br />
<br />
{{note|The term ''Logging in'' used in this context means to turn on the device using the described method, and leaving it at the U-Boot menu. To avoid the device automatically booting, tap the AUX key to move the selector bar. Note also that the device will '''not''' automatically turn off while flashing is in progress.<br />
}}<br />
<br />
==Flashing the Neo FreeRunner==<br />
As Openmoko development continues, Openmoko regularly releases updated versions of the Openmoko root filesystem, the kernel, and the[[Bootloader| U-Boot]]. These may be programmed into the Flash memory of Neo FreeRunner. You can use the USB cable and Openmoko provided tool to flash Neo FreeRunner.<br />
<br />
{{note|The Openmoko software team builds images daily. If you want to use the latest images, you can download the image from the daily build, but we recommend you download the most stable image from http://downloads.openmoko.org/releases/Freerunner/. Images here have been tested by the test team.<br />
<br />
More about current Images: http://wiki.openmoko.org/wiki/Latest_Images}}<br />
<br />
===Step1. Download the DFU-util===<br />
<br />
You can download the flashing tool from: <br />
http://downloads.openmoko.org/releases/Freerunner/dfu-util<br />
<br />
On the GNU/Linux host you can use the following command to download the dfu-util:<br />
wget http://downloads.openmoko.org/releases/Freerunner/dfu-util<br />
<br />
Afterwards you have to change the rights on the file:<br />
chmod a+x dfu-util<br />
<br />
===Step 2. Flashing the Kernel===<br />
<br />
You can download the kernel from <br />
http://downloads.openmoko.org/releases/Freerunner/<br />
<br />
Type in the following command in the terminal on a GNU/Linux host. On some systems you need to be root before this will work.<br />
./dfu-util -a (partion name) -R -D (download image file name)<br />
<br />
<br />
ex:<br />
<br />
./dfu-util -a kernel -R -D uImage-2.6.24+svnr4082-r4055-r3-neo1973.bin<br />
<br />
{| class="wikitable" cellspacing="2" cellpadding="2" style="padding: 0%; margin:0em 0em 1em 0em; border:0px solid #ffffff; background:#ffffff; width:100%;floating="center"; "<br />
! style="background:#ffffff;border-left:1px solid #ffffff;border-right:1px ; border-top:2px solid ffffff; border:1px solid #ffffff; width:75% " | <br />
<div align="left"><br />
[[Image:menu15.jpg|thumb|Log into U-Boot in NOR Flash, connect your Neo with Linux Host via USB cable]]<br />
Before you execute the command, please log into U-Boot in the NOR Flash. The Neo FreeRunner needs to be booted into U-Boot for flashing.<br />
<br />
You will then need to connect your Neo with the GNU/Linux host via USB cable. Press Enter to execute the command. When flashing succeeds the following will be shown:<br />
<br />
status(0) = No error condition is present<br><br />
Done!<br />
</div><br />
|}<br />
<br />
{{note| The meaning of the parameters you specified:<br />
-a --alt alt Specify the altsetting of the DFU interface by name or by number<br><br />
-R --reset Issue USB Reset signalling once we're finished<br><br />
-D --download file Write firmware from<file> into device <br><br />
}}<br />
<br />
===Step 3. Flashing the Root Filesystem ===<br />
You can download the root filesystem from:<br />
http://downloads.openmoko.org/releases/Freerunner/<br />
<br />
Type the following command in the terminal of a GNU/Linux host. On some systems you will need to be root.<br />
<br />
./dfu-util -a rootfs -R -D openmoko-devel-image-fic-gta02.jffs2<br />
<br />
When flashing succeeds the following will be shown:<br />
<br />
status(0) = No error condition is present<br><br />
Done!<br />
<br />
==Appendix==<br />
If you want to know more about the Neo FreeRunner then you can get more information in the following topics:<br />
* [[GTA02 Openness]]<br />
* [[Neo FreeRunner]]<br />
* [[Neo FreeRunner GTA02 Hardware]]<br />
* [[FreeRunner/Buttons and LEDs]]<br />
* [[Latest_Images]]<br />
* [[Distributions]]<br />
<br />
[[Category:GTA02 Hardware]]</div>Abraxahttp://wiki.openmoko.org/wiki/Getting_Started_with_your_Neo_FreeRunnerGetting Started with your Neo FreeRunner2008-07-11T15:35:53Z<p>Abraxa: Make things a little more organized</p>
<hr />
<div>{{Languages|Getting Started with your Neo FreeRunner}}<br />
<br />
{| class="wikitable" cellspacing="2" cellpadding="2" style="padding: 0%; margin:0em 0em 1em 0em; border:1px solid #cccccc; background:#eeeeee; width:100%;floating="center"; "<br />
! style="background:#fcfcfc;border-left:1px solid #9999cc;border-right:1px ; border-top:2px solid 75d806; border:1px solid #222222; width:75% " | <br />
<div align="left"><br />
Thank you for purchasing this Developer release of Neo FreeRunner. The [[Neo FreeRunner]] phone is the second hardware platform to take advantage of [[Openmoko]]. This guide will help you get to know your Neo FreeRunner and how to start using your Neo FreeRunner.<br />
! style="background:#fcfcfc;border-left:1px solid #9999cc;border-right:1px ; border-top:2px solid 75d806; border:1px solid #222222; width:25% " |<br />
[[Image:Freerunner box.png|200px|thumb|Neo FreeRunner Package]]<br />
|}<br />
<br />
== The Package Contents ==<br />
<br />
{| class="wikitable" cellspacing="2" cellpadding="2" style="padding: 0%; margin:0em 0em 1em 0em; border:1px solid #ffffff; background:#ffffff; width:80%; floating="center"; "<br />
! style="background:#ffffff;border-left:1px solid #ffffff;border-right:1px ; border-top:2px solid ffffff; border:1px solid #ffffff; " | <br />
<div align="left"><br />
[[Image:GTA02ALL.png|400px|thumb|Inside package]]<br />
|<br />
<br />
: [[Image:Circle2.gif|10px]] Neo FreeRunner<br />
: [[Image:Circle2.gif|10px]] Stylus<br />
: [[Image:Circle2.gif|10px]] Battery<br />
: [[Image:Circle2.gif|10px]] Charger<br />
: [[Image:Circle2.gif|10px]] USB Cable <br />
: [[Image:Circle2.gif|10px]] microSD Card 512MB<br />
|}<br />
</div><br />
<br />
==Getting To Know the Neo FreeRunner==<br />
<br />
<div align-center><br />
<table width="80%" style="clear: both; border: 1px solid #ffffff; border-collapse: collapse; padding: 0.2em; margin: 0; font-size: 100%; margin: 0 1px;"><br />
<tr valign="top" style="background: #ffffff"><br />
<td style="width: 25px; padding-left: 0.5em;"><br />
</td><br />
<td style="width: 10px; white-space: nowrap; padding: 4px 1em 0 0.5em; border-right: 1px solid #ffffff;">[[Image:menu8.jpg|370px|thumb|AUX Button and phone jack(From left to right)|center]]</td><td style="padding: 1px 1em 0; background: #ffffff;"><br />
[[Image:menu9.jpg|365px|thumb|Power Button, USB and external GPS Antenna (From left to right)|center]]</td></tr></table><br />
</div><br />
<br />
<div align-center><br />
<table width="80%" style="clear: both; border: 1px solid #ffffff; border-collapse: collapse; padding: 0.2em; margin: 0; font-size: 100%; margin: 0 1px;"><br />
<tr valign="top" style="background: #ffffff"><br />
<td style="width: 50%; padding-left: 0.5em;"><br />
</td><br />
<td style="width: 50%; white-space: nowrap; padding: 4px 1em 0 0.5em; border-right: 1px solid #ffffff;">[[Image:menu12.jpg|233px|thumb|AUX Back side with battery|center]]</td><td style="padding: 1px 1em 0; background: #ffffff;"><br />
[[Image:menu11.jpg|260px|thumb|Put the SIM card and SD card here|center]]</td></tr></table><br />
</div><br />
<br />
<div align-center><br />
<table width="80%" style="clear: both; border: 1px solid #ffffff; border-collapse: collapse; padding: 0.2em; margin: 0; font-size: 100%; margin: 0 1px;"><br />
<tr valign="top" style="background: #ffffff"><br />
<td style="width: 50%; padding-left: 0.5em;"><br />
</td><br />
<td style="width: 50%; white-space: nowrap; padding: 4px 1em 0 0.5em; border-right: 1px solid #ffffff;">[[Image:menu13.jpg|233px|thumb|open case from this side |center]]</td><td style="padding: 1px 1em 0; background: #ffffff;"><br />
[[Image:menu14.jpg|250px|thumb|Opened|center]]</td></tr></table><br />
</div><br />
<br />
===Installing the Micro-SD card, the SIM card, and the Battery ===<br />
<br />
# Remove the rear cover of the Neo FreeRunner by first holding the Neo FreeRunner on the side and then use your fingernail to prise off the rear cover at the slot on top of the device.<br />
# Now you should be able to locate the combined SIM and Micro-SD card holder at the bottom of the battery compartment.<br />
# Unlock the SIM card holder by sliding the metal clip down, towards the USB socket, with your fingernail. Use caution, as these parts are delicate and could be damaged by forcing them in the wrong direction.<br />
# Lift up on the SIM card holder.<br />
# The Micro-SD card holder is held in place by a latch on either side. It is easiest to open the Micro-SD card holder by releasing these latches one at a time rather than by lifting from the middle, as lifting from the middle tends to increase the latching pressure. A small screwdriver or knife can be used for this.<br />
# Insert the Micro-SD card into the Micro-SD card holder. Note that the electrical contacts should face down and towards the edge of the Neo Freerunner.<br />
# Close the Micro-SD card holder, making sure that both latches are securely fastened.<br />
# Insert the SIM card into the SIM card holder, taking care to slide inside the two metal tabs in the cover. Please note that the electrical contacts should face down and that the cut corner should be closest to the external GPS Antenna Socket.<br />
# Close the SIM card holder and lock it by sliding the metal clip towards the external GPS Antenna Socket on the FreeRunner.<br />
# Insert the battery into the battery compartment, aligning the electrical contacts on the battery with the electrical contacts in the battery compartment. Insert the side with the electrical contacts first.<br />
# Replace the rear cover on the FreeRunner.<br />
<br />
===Turning on the Neo Freerunner===<br />
<br />
====Charging the Neo Freerunner====<br />
<br />
When using the Neo Freerunner for the first time, you should charge the battery completely. The battery can be charged using the provided charger (at 1000mA) or from a powered USB port capable of providing 500mA worth of current. Most computers will be able to charge the FreeRunner without any problems.<br />
<br />
Charging at 100mA takes 6-12 hours and at 500mA takes 1-2 hours. (from [http://openmoko.togaware.com/survivor/Charging.html openmoko.togaware.com])<br />
<br />
===Unlocking the screen===<br />
<br />
When the screen is locked, you should see a Matrix-style green graphic with the Openmoko symbol in the middle of the bottom of the screen along with lock and unlock symbols. If you drag the Openmoko symbol to the unlock symbol at the top then the screen will become unlocked.<br />
<br />
==Connect to the Neo FreeRunner By USB Networking==<br />
<br />
Connect the Neo FreeRunner to a GNU/Linux host with the USB cable. For Mac OS X please refer to [[MacOS_X]]. After booting into the Openmoko image there will be a new interface, usb0, on your GNU/Linux host.<br />
<br />
=====Manual Method=====<br />
Type in the following commands in the terminal of a GNU/Linux host:<br />
<br />
ifconfig usb0 192.168.0.200 netmask 255.255.255.0<br />
ssh root@192.168.0.202<br />
<br />
Press Enter to get by the password.<br />
<br />
=====Automatic Method=====<br />
*Debian and derivatives (Ubuntu, Sidux etc.)<br />
Edit /etc/network/interfaces:<br />
<br />
auto usb0<br />
iface usb0 inet static<br />
address 192.168.0.200<br />
netmask 255.255.255.0<br />
<br />
*Gentoo <br />
Edit /etc/conf.d/net:<br />
<br />
config_usb0="192.168.0.200/24"<br />
<br />
Restart the networking service ('/etc/init.d/networking restart' for Debian-based systems) and then type the following command in the terminal of the GNU/Linux host:<br />
<br />
ssh root@192.168.0.202<br />
<br />
Press Enter to get by the password.<br />
<br />
{{note|<br />
If your network device is using the ip range 192.168.0.x you may have to use the following command before you are able to connect<br />
<br />
route add -host 192.168.0.202 dev usb0 }}<br />
<br />
=====Making things even more automatic=====<br />
If you don't want to remember the IP address of your phone then you can create an alias by adding the following line to your /etc/hosts:<br />
<br />
192.168.0.202 openmoko<br />
<br />
Now it should be possible to connect to your phone using the following command:<br />
<br />
ssh root@openmoko<br />
<br />
The above only gets you a Secure Shell connection to the Openmoko device, it does not allow the Openmoko device to connect to the Internet. If you are interested in connecting the device to the internet then check out the [[USB_Networking]] section.<br />
<br />
=====Sharing your Internet connection via USB=====<br />
In Ubuntu:<br />
<br />
Within /etc/network/interfaces, change your interface setup to this:<br />
<br />
auto usb0<br />
iface usb0 inet static<br />
address 192.168.0.200<br />
netmask 255.255.255.0<br />
network 192.168.0.0<br />
up iptables -A POSTROUTING -t nat -j MASQUERADE -s 192.168.0.0/24 &<br />
up echo 1 > /proc/sys/net/ipv4/ip_forward &<br />
up iptables -P FORWARD ACCEPT &<br />
down iptables -D POSTROUTING -t nat -j MASQUERADE -s 192.168.0.0/24 &<br />
<br />
Then, on your Freerunner, edit /etc/<br />
and modify the code from this:<br />
<br />
iface usb0 inet static<br />
address 192.168.0.202<br />
netmask 255.255.255.0<br />
network 192.168.0.0<br />
gateway 192.168.0.200<br />
up echo nameserver 192.168.0.200 > /etc/resolv.conf<br />
<br />
to something that points to a real name server, like a public DNS system from OpenDNS, like this:<br />
<br />
iface usb0 inet static<br />
address 192.168.0.202<br />
netmask 255.255.255.0<br />
network 192.168.0.0<br />
gateway 192.168.0.200<br />
up echo nameserver 208.67.222.222 > /etc/resolv.conf<br />
up echo nameserver 208.67.220.220 >> /etc/resolv.conf<br />
<br />
==Un-crippling the 2007.2 image==<br />
<br />
The stock 2007.2 image flashed onto the Neo FreeRunner is really just the bare bones. For example, you don't have the clock and the quick-launch icons showing. Here's how you can change that:<br />
<br />
# dbus-launch gconftool-2 -t boolean -s /desktop/poky/interface/reduced false<br />
# /etc/init.d/xserver-nodm restart<br />
<br />
If you rather have a regular clock instead of the digital one, do this instead:<br />
<br />
# dbus-launch gconftool-2 -t boolean -s /desktop/poky/interface/reduced false<br />
# dbus-launch gconftool-2 -t boolean -s /desktop/poky/interface/digital_clock false<br />
# /etc/init.d/xserver-nodm restart<br />
<br />
With either clock, you may wish to set the correct [[Timezone]].<br />
<br />
Also, if you prefer having a full keyboard, see [http://www.ginguppin.de/node/15 these instructions].<br />
<br />
====Recommended software====<br />
<br />
To test GPS, you can use agpsui:<br />
<br />
# opkg install openmoko-agpsui<br />
<br />
For a nice map, try tangoGPS:<br />
<br />
# opkg install tangogps<br />
<br />
And if you want the Media Player back:<br />
<br />
# opkg install openmoko-mediaplayer2<br />
# wget http://abraxa.dyndns.org:81/random/openmoko-mediaplayer-theme.tar.bz2<br />
# tar xjf openmoko-mediaplayer-theme.tar.bz2 -C /usr/share/themes/Moko/gtk-2.0<br />
<br />
If you want a basic image viewer, have a look at the one from the gpe suite:<br />
<br />
# opkg install gpe-icons gpe-gallery<br />
<br />
To obtain the standard web browser, use:<br />
<br />
# opkg install openmoko-browser2<br />
<br />
There are tons more apps you can install - check out the [[Repositories]] for a list of packages.<br />
<br />
====Booting the Neo Freerunner====<br />
<br />
You can boot your Neo FreeRunner in the following ways:<br />
<br />
: [[Image:Circle2.gif|10px]] You can power it up into an Openmoko image directly. <br />
<br />
: [[Image:Circle2.gif|10px]] You can boot it into [[Bootloader|U-Boot]] via [[NAND Flash]].<br />
<br />
: [[Image:Circle2.gif|10px]] You can boot it into U-Boot via NOR Flash.<br />
<br />
Booting the device into NAND and NOR Flash allows you to update the kernel and root filesystem.<br />
<br />
====Start the Openmoko Image====<br />
<br />
<div align-center><br />
<table width="100%" style="clear: both; border: 1px solid #ffffff; border-collapse: collapse; padding: 0.2em; margin: 0; font-size: 100%; margin: 0 1px;"><br />
<tr valign="top" style="background: #ffffff"><br />
<td style="width: 25px; padding-left: 0.5em;"><br />
<br />
</td><br />
<td style="width: 10px; white-space: nowrap; padding: 4px 1em 0 0.5em; border-right: 1px solid #ffffff;">[[Image:Menu2.jpg|200px|right|thumb]]</td><td style="padding: 1px 1em 0; background: #eeeeee;"><br />
Press and hold Power button for about 8 seconds, until the Openmoko splash screen turns up. You may now release the Power button and the Neo FreeRunner will continue to boot into the Openmoko Image.<br />
<br />
</td></tr></table><br />
</div><br />
<br />
====Log into U-Boot in the NAND Flash====<br />
<br />
<div align-center><br />
<table width="100%" style="clear: both; border: 1px solid #ffffff; border-collapse: collapse; padding: 0.2em; margin: 0; font-size: 100%; margin: 0 1px;"><br />
<tr valign="top" style="background: #ffffff"><br />
<td style="width: 25px; padding-left: 0.5em;"><br />
<br />
</td><br />
<td style="width: 10px; white-space: nowrap; padding: 4px 1em 0 0.5em; border-right: 1px solid #ffffff;">[[Image:Menu7.jpg|200px|right|thumb]]</td><td style="padding: 1px 1em 0; background: #eeeeee;"><br />
Press and hold Power button, then press and hold AUX button for about 5 to 8 seconds. You should see the boot menu for the NAND Flash. Press the AUX button to select one of the options and then press the Power button to execute.<br />
</td></tr></table><br />
</div><br />
<br />
====Log into U-Boot in the NOR Flash====<br />
<br />
<div align-center><br />
<table width="100%" style="clear: both; border: 1px solid #ffffff; border-collapse: collapse; padding: 0.2em; margin: 0; font-size: 100%; margin: 0 1px;"><br />
<tr valign="top" style="background: #ffffff"><br />
<td style="width: 25px; padding-left: 0.5em;"><br />
<br />
</td><br />
<td style="width: 10px; white-space: nowrap; padding: 4px 1em 0 0.5em; border-right: 1px solid #ffffff;">[[Image:Menu6.jpg|200px|right|thumb]]</td><td style="padding: 1px 1em 0; background: #eeeeee;"><br />
<br />
Press and hold the AUX button, then press and hold the Power button. Then, release the AUX button. You should see the boot menu for the NOR Flash. This option is usually used by developers or when flashing the FreeRunner. If you cannot log into U-Boot in NAND then you can log into U-Boot in the NOR Flash either. <br />
</td></tr></table><br />
</div><br />
<br />
{{note| There are six options you can choose when you log into the NOR Flash.<br />
1. Boot<br />
<br />
2. [[Boot from sd card|Boot from MicroSD]]<br />
<br />
3. Set console to USB <br />
<br />
4. Set console to Serial<br />
<br />
5. Reset<br />
<br />
6. Power off}}<br />
<br />
{{note|The term ''Logging in'' used in this context means to turn on the device using the described method, and leaving it at the U-Boot menu. To avoid the device automatically booting, tap the AUX key to move the selector bar. Note also that the device will '''not''' automatically turn off while flashing is in progress.<br />
}}<br />
<br />
==Flashing the Neo FreeRunner==<br />
As Openmoko development continues, Openmoko regularly releases updated versions of the Openmoko root filesystem, the kernel, and the[[Bootloader| U-Boot]]. These may be programmed into the Flash memory of Neo FreeRunner. You can use the USB cable and Openmoko provided tool to flash Neo FreeRunner.<br />
<br />
{{note|The Openmoko software team builds images daily. If you want to use the latest images, you can download the image from the daily build, but we recommend you download the most stable image from http://downloads.openmoko.org/releases/Freerunner/. Images here have been tested by the test team.<br />
<br />
More about current Images: http://wiki.openmoko.org/wiki/Latest_Images}}<br />
<br />
===Step1. Download the DFU-util===<br />
<br />
You can download the flashing tool from: <br />
http://downloads.openmoko.org/releases/Freerunner/dfu-util<br />
<br />
On the GNU/Linux host you can use the following command to download the dfu-util:<br />
wget http://downloads.openmoko.org/releases/Freerunner/dfu-util<br />
<br />
Afterwards you have to change the rights on the file:<br />
chmod a+x dfu-util<br />
<br />
===Step 2. Flashing the Kernel===<br />
<br />
You can download the kernel from <br />
http://downloads.openmoko.org/releases/Freerunner/<br />
<br />
Type in the following command in the terminal on a GNU/Linux host. On some systems you need to be root before this will work.<br />
./dfu-util -a (partion name) -R -D (download image file name)<br />
<br />
<br />
ex:<br />
<br />
./dfu-util -a kernel -R -D uImage-2.6.24+svnr4082-r4055-r3-neo1973.bin<br />
<br />
{| class="wikitable" cellspacing="2" cellpadding="2" style="padding: 0%; margin:0em 0em 1em 0em; border:0px solid #ffffff; background:#ffffff; width:100%;floating="center"; "<br />
! style="background:#ffffff;border-left:1px solid #ffffff;border-right:1px ; border-top:2px solid ffffff; border:1px solid #ffffff; width:75% " | <br />
<div align="left"><br />
[[Image:menu15.jpg|thumb|Log into U-Boot in NOR Flash, connect your Neo with Linux Host via USB cable]]<br />
Before you execute the command, please log into U-Boot in the NOR Flash. The Neo FreeRunner needs to be booted into U-Boot for flashing.<br />
<br />
You will then need to connect your Neo with the GNU/Linux host via USB cable. Press Enter to execute the command. When flashing succeeds the following will be shown:<br />
<br />
status(0) = No error condition is present<br><br />
Done!<br />
</div><br />
|}<br />
<br />
{{note| The meaning of the parameters you specified:<br />
-a --alt alt Specify the altsetting of the DFU interface by name or by number<br><br />
-R --reset Issue USB Reset signalling once we're finished<br><br />
-D --download file Write firmware from<file> into device <br><br />
}}<br />
<br />
===Step 3. Flashing the Root Filesystem ===<br />
You can download the root filesystem from:<br />
http://downloads.openmoko.org/releases/Freerunner/<br />
<br />
Type the following command in the terminal of a GNU/Linux host. On some systems you will need to be root.<br />
<br />
./dfu-util -a rootfs -R -D openmoko-devel-image-fic-gta02.jffs2<br />
<br />
When flashing succeeds the following will be shown:<br />
<br />
status(0) = No error condition is present<br><br />
Done!<br />
<br />
==Appendix==<br />
If you want to know more about the Neo FreeRunner then you can get more information in the following topics:<br />
* [[GTA02 Openness]]<br />
* [[Neo FreeRunner]]<br />
* [[Neo FreeRunner GTA02 Hardware]]<br />
* [[FreeRunner/Buttons and LEDs]]<br />
* [[Latest_Images]]<br />
* [[Distributions]]<br />
<br />
[[Category:GTA02 Hardware]]</div>Abraxahttp://wiki.openmoko.org/wiki/Getting_Started_with_your_Neo_FreeRunnerGetting Started with your Neo FreeRunner2008-07-09T22:59:07Z<p>Abraxa: Add gpe-gallery notice</p>
<hr />
<div>{{Languages|Getting Started with your Neo FreeRunner}}<br />
<br />
{| class="wikitable" cellspacing="2" cellpadding="2" style="padding: 0%; margin:0em 0em 1em 0em; border:1px solid #cccccc; background:#eeeeee; width:100%;floating="center"; "<br />
! style="background:#fcfcfc;border-left:1px solid #9999cc;border-right:1px ; border-top:2px solid 75d806; border:1px solid #222222; width:75% " | <br />
<div align="left"><br />
Thank you for purchasing this Developer release of Neo FreeRunner. The [[Neo FreeRunner]] phone is the second hardware platform to take advantage of [[Openmoko]]. This guide will help you get to know your Neo FreeRunner and how to start using your Neo FreeRunner.<br />
! style="background:#fcfcfc;border-left:1px solid #9999cc;border-right:1px ; border-top:2px solid 75d806; border:1px solid #222222; width:25% " |<br />
[[Image:Freerunner box.png|200px|thumb|Neo FreeRunner Package]]<br />
|}<br />
<br />
== The Package Contents ==<br />
<br />
{| class="wikitable" cellspacing="2" cellpadding="2" style="padding: 0%; margin:0em 0em 1em 0em; border:1px solid #ffffff; background:#ffffff; width:80%; floating="center"; "<br />
! style="background:#ffffff;border-left:1px solid #ffffff;border-right:1px ; border-top:2px solid ffffff; border:1px solid #ffffff; " | <br />
<div align="left"><br />
[[Image:GTA02ALL.png|400px|thumb|Inside package]]<br />
|<br />
<br />
: [[Image:Circle2.gif|10px]] Neo FreeRunner<br />
: [[Image:Circle2.gif|10px]] Stylus<br />
: [[Image:Circle2.gif|10px]] Battery<br />
: [[Image:Circle2.gif|10px]] Charger<br />
: [[Image:Circle2.gif|10px]] USB Cable <br />
: [[Image:Circle2.gif|10px]] microSD Card 512MB<br />
|}<br />
</div><br />
<br />
==Getting To Know the Neo FreeRunner==<br />
<br />
<div align-center><br />
<table width="80%" style="clear: both; border: 1px solid #ffffff; border-collapse: collapse; padding: 0.2em; margin: 0; font-size: 100%; margin: 0 1px;"><br />
<tr valign="top" style="background: #ffffff"><br />
<td style="width: 25px; padding-left: 0.5em;"><br />
</td><br />
<td style="width: 10px; white-space: nowrap; padding: 4px 1em 0 0.5em; border-right: 1px solid #ffffff;">[[Image:menu8.jpg|370px|thumb|AUX Button and phone jack(From left to right)|center]]</td><td style="padding: 1px 1em 0; background: #ffffff;"><br />
[[Image:menu9.jpg|365px|thumb|Power Button, USB and external GPS Antenna (From left to right)|center]]</td></tr></table><br />
</div><br />
<br />
<div align-center><br />
<table width="80%" style="clear: both; border: 1px solid #ffffff; border-collapse: collapse; padding: 0.2em; margin: 0; font-size: 100%; margin: 0 1px;"><br />
<tr valign="top" style="background: #ffffff"><br />
<td style="width: 50%; padding-left: 0.5em;"><br />
</td><br />
<td style="width: 50%; white-space: nowrap; padding: 4px 1em 0 0.5em; border-right: 1px solid #ffffff;">[[Image:menu12.jpg|233px|thumb|AUX Back side with battery|center]]</td><td style="padding: 1px 1em 0; background: #ffffff;"><br />
[[Image:menu11.jpg|260px|thumb|Put the SIM card and SD card here|center]]</td></tr></table><br />
</div><br />
<br />
<div align-center><br />
<table width="80%" style="clear: both; border: 1px solid #ffffff; border-collapse: collapse; padding: 0.2em; margin: 0; font-size: 100%; margin: 0 1px;"><br />
<tr valign="top" style="background: #ffffff"><br />
<td style="width: 50%; padding-left: 0.5em;"><br />
</td><br />
<td style="width: 50%; white-space: nowrap; padding: 4px 1em 0 0.5em; border-right: 1px solid #ffffff;">[[Image:menu13.jpg|233px|thumb|open case from this side |center]]</td><td style="padding: 1px 1em 0; background: #ffffff;"><br />
[[Image:menu14.jpg|250px|thumb|Opened|center]]</td></tr></table><br />
</div><br />
<br />
===Installing the Micro-SD card, the SIM card, and the Battery ===<br />
<br />
# Remove the rear cover of the Neo FreeRunner by first holding the Neo FreeRunner on the side and then use your fingernail to prise off the rear cover at the slot on top of the device.<br />
# Now you should be able to locate the combined SIM and Micro-SD card holder at the bottom of the battery compartment.<br />
# Unlock the SIM card holder by sliding the metal clip down, towards the USB socket, with your fingernail. Use caution, as these parts are delicate and could be damaged by forcing them in the wrong direction.<br />
# Lift up on the SIM card holder.<br />
# The Micro-SD card holder is held in place by a latch on either side. It is easiest to open the Micro-SD card holder by releasing these latches one at a time rather than by lifting from the middle, as lifting from the middle tends to increase the latching pressure. A small screwdriver or knife can be used for this.<br />
# Insert the Micro-SD card into the Micro-SD card holder. Note that the electrical contacts should face down and towards the edge of the Neo Freerunner.<br />
# Close the Micro-SD card holder, making sure that both latches are securely fastened.<br />
# Insert the SIM card into the SIM card holder, taking care to slide inside the two metal tabs in the cover. Please note that the electrical contacts should face down and that the cut corner should be closest to the external GPS Antenna Socket.<br />
# Close the SIM card holder and lock it by sliding the metal clip towards the external GPS Antenna Socket on the FreeRunner.<br />
# Insert the battery into the battery compartment, aligning the electrical contacts on the battery with the electrical contacts in the battery compartment. Insert the side with the electrical contacts first.<br />
# Replace the rear cover on the FreeRunner.<br />
<br />
===Turning on the Neo Freerunner===<br />
<br />
====Charging the Neo Freerunner====<br />
<br />
When using the Neo Freerunner for the first time, you should charge the battery completely. The battery can be charged using the provided charger or from a powered USB port capable of providing 500mA worth of current. Most computers will be able to charge the FreeRunner without any problems.<br />
<br />
Charging at 100mA takes 6-12 hours and at 500mA takes 1-2 hours. (from [http://openmoko.togaware.com/survivor/Charging.html openmoko.togaware.com])<br />
<br />
You can boot your Neo FreeRunner in the following ways:<br />
<br />
: [[Image:Circle2.gif|10px]] You can power it up into an Openmoko image directly. <br />
<br />
: [[Image:Circle2.gif|10px]] You can boot it into [[Bootloader|U-Boot]] via [[NAND Flash]].<br />
<br />
: [[Image:Circle2.gif|10px]] You can boot it into U-Boot via NOR Flash.<br />
<br />
Booting the device into NAND and NOR Flash allows you to update the kernel and root filesystem.<br />
<br />
====Start the Openmoko Image====<br />
<br />
<div align-center><br />
<table width="100%" style="clear: both; border: 1px solid #ffffff; border-collapse: collapse; padding: 0.2em; margin: 0; font-size: 100%; margin: 0 1px;"><br />
<tr valign="top" style="background: #ffffff"><br />
<td style="width: 25px; padding-left: 0.5em;"><br />
<br />
</td><br />
<td style="width: 10px; white-space: nowrap; padding: 4px 1em 0 0.5em; border-right: 1px solid #ffffff;">[[Image:Menu2.jpg|200px|right|thumb]]</td><td style="padding: 1px 1em 0; background: #eeeeee;"><br />
Press and hold Power button for about 8 seconds, until the Openmoko splash screen turns up. You may now release the Power button and the Neo FreeRunner will continue to boot into the Openmoko Image.<br />
<br />
</td></tr></table><br />
</div><br />
<br />
====Log into U-Boot in the NAND Flash====<br />
<br />
<div align-center><br />
<table width="100%" style="clear: both; border: 1px solid #ffffff; border-collapse: collapse; padding: 0.2em; margin: 0; font-size: 100%; margin: 0 1px;"><br />
<tr valign="top" style="background: #ffffff"><br />
<td style="width: 25px; padding-left: 0.5em;"><br />
<br />
</td><br />
<td style="width: 10px; white-space: nowrap; padding: 4px 1em 0 0.5em; border-right: 1px solid #ffffff;">[[Image:Menu7.jpg|200px|right|thumb]]</td><td style="padding: 1px 1em 0; background: #eeeeee;"><br />
Press and hold Power button, then press and hold AUX button for about 5 to 8 seconds. You should see the boot menu for the NAND Flash. Press the AUX button to select one of the options and then press the Power button to execute.<br />
</td></tr></table><br />
</div><br />
<br />
====Log into U-Boot in the NOR Flash====<br />
<br />
<div align-center><br />
<table width="100%" style="clear: both; border: 1px solid #ffffff; border-collapse: collapse; padding: 0.2em; margin: 0; font-size: 100%; margin: 0 1px;"><br />
<tr valign="top" style="background: #ffffff"><br />
<td style="width: 25px; padding-left: 0.5em;"><br />
<br />
</td><br />
<td style="width: 10px; white-space: nowrap; padding: 4px 1em 0 0.5em; border-right: 1px solid #ffffff;">[[Image:Menu6.jpg|200px|right|thumb]]</td><td style="padding: 1px 1em 0; background: #eeeeee;"><br />
<br />
Press and hold the AUX button, then press and hold the Power button. Then, release the AUX button. You should see the boot menu for the NOR Flash. This option is usually used by developers or when flashing the FreeRunner. If you cannot log into U-Boot in NAND then you can log into U-Boot in the NOR Flash either. <br />
</td></tr></table><br />
</div><br />
<br />
{{note| There are six options you can choose when you log into the NOR Flash.<br />
1. Boot<br />
<br />
2. [[Boot from sd card|Boot from MicroSD]]<br />
<br />
3. Set console to USB <br />
<br />
4. Set console to Serial<br />
<br />
5. Reset<br />
<br />
6. Power off}}<br />
<br />
{{note|The term ''Logging in'' used in this context means to turn on the device using the described method, and leaving it at the U-Boot menu. To avoid the device automatically booting, tap the AUX key to move the selector bar. Note also that the device will '''not''' automatically turn off while flashing is in progress.<br />
}}<br />
<br />
===Unlocking the screen===<br />
<br />
When the screen is locked, you should see a Matrix-style green graphic with the Openmoko symbol in the middle of the bottom of the screen along with lock and unlock symbols. If you drag the Openmoko symbol to the unlock symbol at the top then the screen will become unlocked.<br />
<br />
==Flashing the Neo FreeRunner==<br />
As Openmoko development continues, Openmoko regularly releases updated versions of the Openmoko root filesystem, the kernel, and the[[Bootloader| U-Boot]]. These may be programmed into the Flash memory of Neo FreeRunner. You can use the USB cable and Openmoko provided tool to flash Neo FreeRunner.<br />
<br />
{{note|The Openmoko software team builds images daily. If you want to use the latest images, you can download the image from the daily build, but we recommend you download the most stable image from http://downloads.openmoko.org/releases/Freerunner/. Images here have been tested by the test team.<br />
<br />
More about current Images: http://wiki.openmoko.org/wiki/Latest_Images}}<br />
<br />
===Step1. Download the DFU-util===<br />
<br />
You can download the flashing tool from: <br />
http://downloads.openmoko.org/releases/Freerunner/dfu-util<br />
<br />
On the GNU/Linux host you can use the following command to download the dfu-util:<br />
wget http://downloads.openmoko.org/releases/Freerunner/dfu-util<br />
<br />
Afterwards you have to change the rights on the file:<br />
chmod a+x dfu-util<br />
<br />
===Step 2. Flashing the Kernel===<br />
<br />
You can download the kernel from <br />
http://downloads.openmoko.org/releases/Freerunner/<br />
<br />
Type in the following command in the terminal on a GNU/Linux host. On some systems you need to be root before this will work.<br />
./dfu-util -a (partion name) -R -D (download image file name)<br />
<br />
<br />
ex:<br />
<br />
./dfu-util -a kernel -R -D uImage-2.6.24+svnr4082-r4055-r3-neo1973.bin<br />
<br />
{| class="wikitable" cellspacing="2" cellpadding="2" style="padding: 0%; margin:0em 0em 1em 0em; border:0px solid #ffffff; background:#ffffff; width:100%;floating="center"; "<br />
! style="background:#ffffff;border-left:1px solid #ffffff;border-right:1px ; border-top:2px solid ffffff; border:1px solid #ffffff; width:75% " | <br />
<div align="left"><br />
[[Image:menu15.jpg|thumb|Log into U-Boot in NOR Flash, connect your Neo with Linux Host via USB cable]]<br />
Before you execute the command, please log into U-Boot in the NOR Flash. The Neo FreeRunner needs to be booted into U-Boot for flashing.<br />
<br />
You will then need to connect your Neo with the GNU/Linux host via USB cable. Press Enter to execute the command. When flashing succeeds the following will be shown:<br />
<br />
status(0) = No error condition is present<br><br />
Done!<br />
</div><br />
|}<br />
<br />
{{note| The meaning of the parameters you specified:<br />
-a --alt alt Specify the altsetting of the DFU interface by name or by number<br><br />
-R --reset Issue USB Reset signalling once we're finished<br><br />
-D --download file Write firmware from<file> into device <br><br />
}}<br />
<br />
===Step 3. Flashing the Root Filesystem ===<br />
You can download the root filesystem from:<br />
http://downloads.openmoko.org/releases/Freerunner/<br />
<br />
Type the following command in the terminal of a GNU/Linux host. On some systems you will need to be root.<br />
<br />
./dfu-util -a rootfs -R -D openmoko-devel-image-fic-gta02.jffs2<br />
<br />
When flashing succeeds the following will be shown:<br />
<br />
status(0) = No error condition is present<br><br />
Done!<br />
<br />
==Connect to the Neo FreeRunner By USB Networking==<br />
<br />
Connect the Neo FreeRunner to a GNU/Linux host with the USB cable. For Mac OS X please refer to [[MacOS_X]]. After booting into the Openmoko image there will be a new interface, usb0, on your GNU/Linux host.<br />
<br />
=====Manual Method=====<br />
Type in the following commands in the terminal of a GNU/Linux host:<br />
<br />
ifconfig usb0 192.168.0.200 netmask 255.255.255.0<br />
ssh root@192.168.0.202<br />
<br />
Press Enter to get by the password.<br />
<br />
=====Automatic Method=====<br />
*Debian and derivatives (Ubuntu, Sidux etc.)<br />
Edit /etc/network/interfaces:<br />
<br />
auto usb0<br />
iface usb0 inet static<br />
address 192.168.0.200<br />
netmask 255.255.255.0<br />
<br />
*Gentoo <br />
Edit /etc/conf.d/net:<br />
<br />
config_usb0="192.168.0.200/24"<br />
<br />
Restart the networking service ('/etc/init.d/networking restart' for Debian-based systems) and then type the following command in the terminal of the GNU/Linux host:<br />
<br />
ssh root@192.168.0.202<br />
<br />
Press Enter to get by the password.<br />
<br />
=====Making things even more automatic=====<br />
If you don't want to remember the IP address of your phone then you can create an alias by adding the following line to your /etc/hosts:<br />
<br />
192.168.0.202 openmoko<br />
<br />
Now it should be possible to connect to your phone using the following command:<br />
<br />
ssh root@openmoko<br />
<br />
The above only gets you a Secure Shell connection to the Openmoko device, it does not allow the Openmoko device to connect to the Internet. If you are interested in connecting the device to the internet then check out the [[USB_Networking]] section.<br />
<br />
==Un-crippling the 2007.2 image==<br />
<br />
The stock 2007.2 image flashed onto the Neo FreeRunner after its production is really just the bare bones. For example, you don't have the clock and the quick-launch icons showing. Here's how you can change that:<br />
<br />
# dbus-launch gconftool-2 -t boolean -s /desktop/poky/interface/reduced false<br />
# /etc/init.d/xserver-nodm restart<br />
<br />
If you rather have a regular clock instead of the digital one, do this instead:<br />
<br />
# dbus-launch gconftool-2 -t boolean -s /desktop/poky/interface/reduced false<br />
# dbus-launch gconftool-2 -t boolean -s /desktop/poky/interface/digital_clock false<br />
# /etc/init.d/xserver-nodm restart<br />
<br />
To test GPS, you can use agpsui:<br />
<br />
# opkg install openmoko-agpsui<br />
<br />
And if you want the Media Player back:<br />
<br />
# opkg install openmoko-mediaplayer2<br />
# wget http://abraxa.dyndns.org:81/random/openmoko-mediaplayer-theme.tar.bz2<br />
# tar xjf openmoko-mediaplayer-theme.tar.bz2 -C /usr/share/themes/Moko/gtk-2.0<br />
<br />
If you want a basic image viewer, have a look at the one from the GPE suite:<br />
<br />
# opkg install gpe-icons gpe-gallery<br />
<br />
There are tons more apps you can install - check out the [[Repositories]] for a list of packages.<br />
<br />
==Appendix==<br />
If you want to know more about the Neo FreeRunner then you can get more information in the following topics:<br />
* [[GTA02 Openness]]<br />
* [[Neo FreeRunner]]<br />
* [[Neo FreeRunner GTA02 Hardware]]<br />
* [[FreeRunner/Buttons and LEDs]]<br />
* [[Latest_Images]]<br />
<br />
[[Category:GTA02 Hardware]]</div>Abraxahttp://wiki.openmoko.org/wiki/Getting_Started_with_your_Neo_FreeRunnerGetting Started with your Neo FreeRunner2008-07-09T22:40:33Z<p>Abraxa: Add notes about un-crippling 2007.2</p>
<hr />
<div>{{Languages|Getting Started with your Neo FreeRunner}}<br />
<br />
{| class="wikitable" cellspacing="2" cellpadding="2" style="padding: 0%; margin:0em 0em 1em 0em; border:1px solid #cccccc; background:#eeeeee; width:100%;floating="center"; "<br />
! style="background:#fcfcfc;border-left:1px solid #9999cc;border-right:1px ; border-top:2px solid 75d806; border:1px solid #222222; width:75% " | <br />
<div align="left"><br />
Thank you for purchasing this Developer release of Neo FreeRunner. The [[Neo FreeRunner]] phone is the second hardware platform to take advantage of [[Openmoko]]. This guide will help you get to know your Neo FreeRunner and how to start using your Neo FreeRunner.<br />
! style="background:#fcfcfc;border-left:1px solid #9999cc;border-right:1px ; border-top:2px solid 75d806; border:1px solid #222222; width:25% " |<br />
[[Image:Freerunner box.png|200px|thumb|Neo FreeRunner Package]]<br />
|}<br />
<br />
== The Package Contents ==<br />
<br />
{| class="wikitable" cellspacing="2" cellpadding="2" style="padding: 0%; margin:0em 0em 1em 0em; border:1px solid #ffffff; background:#ffffff; width:80%; floating="center"; "<br />
! style="background:#ffffff;border-left:1px solid #ffffff;border-right:1px ; border-top:2px solid ffffff; border:1px solid #ffffff; " | <br />
<div align="left"><br />
[[Image:GTA02ALL.png|400px|thumb|Inside package]]<br />
|<br />
<br />
: [[Image:Circle2.gif|10px]] Neo FreeRunner<br />
: [[Image:Circle2.gif|10px]] Stylus<br />
: [[Image:Circle2.gif|10px]] Battery<br />
: [[Image:Circle2.gif|10px]] Charger<br />
: [[Image:Circle2.gif|10px]] USB Cable <br />
: [[Image:Circle2.gif|10px]] microSD Card 512MB<br />
|}<br />
</div><br />
<br />
==Getting To Know the Neo FreeRunner==<br />
<br />
<div align-center><br />
<table width="80%" style="clear: both; border: 1px solid #ffffff; border-collapse: collapse; padding: 0.2em; margin: 0; font-size: 100%; margin: 0 1px;"><br />
<tr valign="top" style="background: #ffffff"><br />
<td style="width: 25px; padding-left: 0.5em;"><br />
</td><br />
<td style="width: 10px; white-space: nowrap; padding: 4px 1em 0 0.5em; border-right: 1px solid #ffffff;">[[Image:menu8.jpg|370px|thumb|AUX Button and phone jack(From left to right)|center]]</td><td style="padding: 1px 1em 0; background: #ffffff;"><br />
[[Image:menu9.jpg|365px|thumb|Power Button, USB and external GPS Antenna (From left to right)|center]]</td></tr></table><br />
</div><br />
<br />
<div align-center><br />
<table width="80%" style="clear: both; border: 1px solid #ffffff; border-collapse: collapse; padding: 0.2em; margin: 0; font-size: 100%; margin: 0 1px;"><br />
<tr valign="top" style="background: #ffffff"><br />
<td style="width: 50%; padding-left: 0.5em;"><br />
</td><br />
<td style="width: 50%; white-space: nowrap; padding: 4px 1em 0 0.5em; border-right: 1px solid #ffffff;">[[Image:menu12.jpg|233px|thumb|AUX Back side with battery|center]]</td><td style="padding: 1px 1em 0; background: #ffffff;"><br />
[[Image:menu11.jpg|260px|thumb|Put the SIM card and SD card here|center]]</td></tr></table><br />
</div><br />
<br />
<div align-center><br />
<table width="80%" style="clear: both; border: 1px solid #ffffff; border-collapse: collapse; padding: 0.2em; margin: 0; font-size: 100%; margin: 0 1px;"><br />
<tr valign="top" style="background: #ffffff"><br />
<td style="width: 50%; padding-left: 0.5em;"><br />
</td><br />
<td style="width: 50%; white-space: nowrap; padding: 4px 1em 0 0.5em; border-right: 1px solid #ffffff;">[[Image:menu13.jpg|233px|thumb|open case from this side |center]]</td><td style="padding: 1px 1em 0; background: #ffffff;"><br />
[[Image:menu14.jpg|250px|thumb|Opened|center]]</td></tr></table><br />
</div><br />
<br />
===Installing the Micro-SD card, the SIM card, and the Battery ===<br />
<br />
# Remove the rear cover of the Neo FreeRunner by first holding the Neo FreeRunner on the side and then use your fingernail to prise off the rear cover at the slot on top of the device.<br />
# Now you should be able to locate the combined SIM and Micro-SD card holder at the bottom of the battery compartment.<br />
# Unlock the SIM card holder by sliding the metal clip down, towards the USB socket, with your fingernail. Use caution, as these parts are delicate and could be damaged by forcing them in the wrong direction.<br />
# Lift up on the SIM card holder.<br />
# The Micro-SD card holder is held in place by a latch on either side. It is easiest to open the Micro-SD card holder by releasing these latches one at a time rather than by lifting from the middle, as lifting from the middle tends to increase the latching pressure. A small screwdriver or knife can be used for this.<br />
# Insert the Micro-SD card into the Micro-SD card holder. Note that the electrical contacts should face down and towards the edge of the Neo Freerunner.<br />
# Close the Micro-SD card holder, making sure that both latches are securely fastened.<br />
# Insert the SIM card into the SIM card holder, taking care to slide inside the two metal tabs in the cover. Please note that the electrical contacts should face down and that the cut corner should be closest to the external GPS Antenna Socket.<br />
# Close the SIM card holder and lock it by sliding the metal clip towards the external GPS Antenna Socket on the FreeRunner.<br />
# Insert the battery into the battery compartment, aligning the electrical contacts on the battery with the electrical contacts in the battery compartment. Insert the side with the electrical contacts first.<br />
# Replace the rear cover on the FreeRunner.<br />
<br />
===Turning on the Neo Freerunner===<br />
<br />
====Charging the Neo Freerunner====<br />
<br />
When using the Neo Freerunner for the first time, you should charge the battery completely. The battery can be charged using the provided charger or from a powered USB port capable of providing 500mA worth of current. Most computers will be able to charge the FreeRunner without any problems.<br />
<br />
Charging at 100mA takes 6-12 hours and at 500mA takes 1-2 hours. (from [http://openmoko.togaware.com/survivor/Charging.html openmoko.togaware.com])<br />
<br />
You can boot your Neo FreeRunner in the following ways:<br />
<br />
: [[Image:Circle2.gif|10px]] You can power it up into an Openmoko image directly. <br />
<br />
: [[Image:Circle2.gif|10px]] You can boot it into [[Bootloader|U-Boot]] via [[NAND Flash]].<br />
<br />
: [[Image:Circle2.gif|10px]] You can boot it into U-Boot via NOR Flash.<br />
<br />
Booting the device into NAND and NOR Flash allows you to update the kernel and root filesystem.<br />
<br />
====Start the Openmoko Image====<br />
<br />
<div align-center><br />
<table width="100%" style="clear: both; border: 1px solid #ffffff; border-collapse: collapse; padding: 0.2em; margin: 0; font-size: 100%; margin: 0 1px;"><br />
<tr valign="top" style="background: #ffffff"><br />
<td style="width: 25px; padding-left: 0.5em;"><br />
<br />
</td><br />
<td style="width: 10px; white-space: nowrap; padding: 4px 1em 0 0.5em; border-right: 1px solid #ffffff;">[[Image:Menu2.jpg|200px|right|thumb]]</td><td style="padding: 1px 1em 0; background: #eeeeee;"><br />
Press and hold Power button for about 8 seconds, until the Openmoko splash screen turns up. You may now release the Power button and the Neo FreeRunner will continue to boot into the Openmoko Image.<br />
<br />
</td></tr></table><br />
</div><br />
<br />
====Log into U-Boot in the NAND Flash====<br />
<br />
<div align-center><br />
<table width="100%" style="clear: both; border: 1px solid #ffffff; border-collapse: collapse; padding: 0.2em; margin: 0; font-size: 100%; margin: 0 1px;"><br />
<tr valign="top" style="background: #ffffff"><br />
<td style="width: 25px; padding-left: 0.5em;"><br />
<br />
</td><br />
<td style="width: 10px; white-space: nowrap; padding: 4px 1em 0 0.5em; border-right: 1px solid #ffffff;">[[Image:Menu7.jpg|200px|right|thumb]]</td><td style="padding: 1px 1em 0; background: #eeeeee;"><br />
Press and hold Power button, then press and hold AUX button for about 5 to 8 seconds. You should see the boot menu for the NAND Flash. Press the AUX button to select one of the options and then press the Power button to execute.<br />
</td></tr></table><br />
</div><br />
<br />
====Log into U-Boot in the NOR Flash====<br />
<br />
<div align-center><br />
<table width="100%" style="clear: both; border: 1px solid #ffffff; border-collapse: collapse; padding: 0.2em; margin: 0; font-size: 100%; margin: 0 1px;"><br />
<tr valign="top" style="background: #ffffff"><br />
<td style="width: 25px; padding-left: 0.5em;"><br />
<br />
</td><br />
<td style="width: 10px; white-space: nowrap; padding: 4px 1em 0 0.5em; border-right: 1px solid #ffffff;">[[Image:Menu6.jpg|200px|right|thumb]]</td><td style="padding: 1px 1em 0; background: #eeeeee;"><br />
<br />
Press and hold the AUX button, then press and hold the Power button. Then, release the AUX button. You should see the boot menu for the NOR Flash. This option is usually used by developers or when flashing the FreeRunner. If you cannot log into U-Boot in NAND then you can log into U-Boot in the NOR Flash either. <br />
</td></tr></table><br />
</div><br />
<br />
{{note| There are six options you can choose when you log into the NOR Flash.<br />
1. Boot<br />
<br />
2. [[Boot from sd card|Boot from MicroSD]]<br />
<br />
3. Set console to USB <br />
<br />
4. Set console to Serial<br />
<br />
5. Reset<br />
<br />
6. Power off}}<br />
<br />
{{note|The term ''Logging in'' used in this context means to turn on the device using the described method, and leaving it at the U-Boot menu. To avoid the device automatically booting, tap the AUX key to move the selector bar. Note also that the device will '''not''' automatically turn off while flashing is in progress.<br />
}}<br />
<br />
===Unlocking the screen===<br />
<br />
When the screen is locked, you should see a Matrix-style green graphic with the Openmoko symbol in the middle of the bottom of the screen along with lock and unlock symbols. If you drag the Openmoko symbol to the unlock symbol at the top then the screen will become unlocked.<br />
<br />
==Flashing the Neo FreeRunner==<br />
As Openmoko development continues, Openmoko regularly releases updated versions of the Openmoko root filesystem, the kernel, and the[[Bootloader| U-Boot]]. These may be programmed into the Flash memory of Neo FreeRunner. You can use the USB cable and Openmoko provided tool to flash Neo FreeRunner.<br />
<br />
{{note|The Openmoko software team builds images daily. If you want to use the latest images, you can download the image from the daily build, but we recommend you download the most stable image from http://downloads.openmoko.org/releases/Freerunner/. Images here have been tested by the test team.<br />
<br />
More about current Images: http://wiki.openmoko.org/wiki/Latest_Images}}<br />
<br />
===Step1. Download the DFU-util===<br />
<br />
You can download the flashing tool from: <br />
http://downloads.openmoko.org/releases/Freerunner/dfu-util<br />
<br />
On the GNU/Linux host you can use the following command to download the dfu-util:<br />
wget http://downloads.openmoko.org/releases/Freerunner/dfu-util<br />
<br />
Afterwards you have to change the rights on the file:<br />
chmod a+x dfu-util<br />
<br />
===Step 2. Flashing the Kernel===<br />
<br />
You can download the kernel from <br />
http://downloads.openmoko.org/releases/Freerunner/<br />
<br />
Type in the following command in the terminal on a GNU/Linux host. On some systems you need to be root before this will work.<br />
./dfu-util -a (partion name) -R -D (download image file name)<br />
<br />
<br />
ex:<br />
<br />
./dfu-util -a kernel -R -D uImage-2.6.24+svnr4082-r4055-r3-neo1973.bin<br />
<br />
{| class="wikitable" cellspacing="2" cellpadding="2" style="padding: 0%; margin:0em 0em 1em 0em; border:0px solid #ffffff; background:#ffffff; width:100%;floating="center"; "<br />
! style="background:#ffffff;border-left:1px solid #ffffff;border-right:1px ; border-top:2px solid ffffff; border:1px solid #ffffff; width:75% " | <br />
<div align="left"><br />
[[Image:menu15.jpg|thumb|Log into U-Boot in NOR Flash, connect your Neo with Linux Host via USB cable]]<br />
Before you execute the command, please log into U-Boot in the NOR Flash. The Neo FreeRunner needs to be booted into U-Boot for flashing.<br />
<br />
You will then need to connect your Neo with the GNU/Linux host via USB cable. Press Enter to execute the command. When flashing succeeds the following will be shown:<br />
<br />
status(0) = No error condition is present<br><br />
Done!<br />
</div><br />
|}<br />
<br />
{{note| The meaning of the parameters you specified:<br />
-a --alt alt Specify the altsetting of the DFU interface by name or by number<br><br />
-R --reset Issue USB Reset signalling once we're finished<br><br />
-D --download file Write firmware from<file> into device <br><br />
}}<br />
<br />
===Step 3. Flashing the Root Filesystem ===<br />
You can download the root filesystem from:<br />
http://downloads.openmoko.org/releases/Freerunner/<br />
<br />
Type the following command in the terminal of a GNU/Linux host. On some systems you will need to be root.<br />
<br />
./dfu-util -a rootfs -R -D openmoko-devel-image-fic-gta02.jffs2<br />
<br />
When flashing succeeds the following will be shown:<br />
<br />
status(0) = No error condition is present<br><br />
Done!<br />
<br />
==Connect to the Neo FreeRunner By USB Networking==<br />
<br />
Connect the Neo FreeRunner to a GNU/Linux host with the USB cable. For Mac OS X please refer to [[MacOS_X]]. After booting into the Openmoko image there will be a new interface, usb0, on your GNU/Linux host.<br />
<br />
=====Manual Method=====<br />
Type in the following commands in the terminal of a GNU/Linux host:<br />
<br />
ifconfig usb0 192.168.0.200 netmask 255.255.255.0<br />
ssh root@192.168.0.202<br />
<br />
Press Enter to get by the password.<br />
<br />
=====Automatic Method=====<br />
*Debian and derivatives (Ubuntu, Sidux etc.)<br />
Edit /etc/network/interfaces:<br />
<br />
auto usb0<br />
iface usb0 inet static<br />
address 192.168.0.200<br />
netmask 255.255.255.0<br />
<br />
*Gentoo <br />
Edit /etc/conf.d/net:<br />
<br />
config_usb0="192.168.0.200/24"<br />
<br />
Restart the networking service ('/etc/init.d/networking restart' for Debian-based systems) and then type the following command in the terminal of the GNU/Linux host:<br />
<br />
ssh root@192.168.0.202<br />
<br />
Press Enter to get by the password.<br />
<br />
=====Making things even more automatic=====<br />
If you don't want to remember the IP address of your phone then you can create an alias by adding the following line to your /etc/hosts:<br />
<br />
192.168.0.202 openmoko<br />
<br />
Now it should be possible to connect to your phone using the following command:<br />
<br />
ssh root@openmoko<br />
<br />
The above only gets you a Secure Shell connection to the Openmoko device, it does not allow the Openmoko device to connect to the Internet. If you are interested in connecting the device to the internet then check out the [[USB_Networking]] section.<br />
<br />
==Un-crippling the 2007.2 image==<br />
<br />
The stock 2007.2 image flashed onto the Neo FreeRunner after its production is really just the bare bones. For example, you don't have the clock and the quick-launch icons showing. Here's how you can change that:<br />
<br />
# dbus-launch gconftool-2 -t boolean -s /desktop/poky/interface/reduced false<br />
# /etc/init.d/xserver-nodm restart<br />
<br />
If you rather have a regular clock instead of the digital one, do this instead:<br />
<br />
# dbus-launch gconftool-2 -t boolean -s /desktop/poky/interface/reduced false<br />
# dbus-launch gconftool-2 -t boolean -s /desktop/poky/interface/digital_clock false<br />
# /etc/init.d/xserver-nodm restart<br />
<br />
To test GPS, you can use agpsui:<br />
<br />
# opkg install openmoko-agpsui<br />
<br />
And if you want the Media Player back:<br />
<br />
# opkg install openmoko-mediaplayer2<br />
# wget http://abraxa.dyndns.org:81/random/openmoko-mediaplayer-theme.tar.bz2<br />
# tar xjf openmoko-mediaplayer-theme.tar.bz2 -C /usr/share/themes/Moko/gtk-2.0<br />
<br />
There are tons more apps you can install - check out the [[Repositories]] for a list of packages.<br />
<br />
==Appendix==<br />
If you want to know more about the Neo FreeRunner then you can get more information in the following topics:<br />
* [[GTA02 Openness]]<br />
* [[Neo FreeRunner]]<br />
* [[Neo FreeRunner GTA02 Hardware]]<br />
* [[FreeRunner/Buttons and LEDs]]<br />
* [[Latest_Images]]<br />
<br />
[[Category:GTA02 Hardware]]</div>Abraxahttp://wiki.openmoko.org/wiki/OpenmokoFrameworkOpenmokoFramework2008-05-15T16:17:40Z<p>Abraxa: Fixed linkage for PIM daemon</p>
<hr />
<div>''Note: This is the (ongoing) description of the new framework architecture that is '''in development'''. See [[OpenmokoOldFramework]] for the framework architecture of 2007.1 and 2007.2 and [[NeoSoftwareStack]] for the current status (which has nothing to do yet with this framework)''<br />
<br />
=Answering the #1 and #2 questions=<br />
* ''Question'': Is this a part of the current images yet?<br />
* ''Answer'': No.<br />
* ''Question'': When can I see this as part of an image?<br />
* ''Answer'': We expect a zhone-image (including all framework goodies) to turn up as alpha versions around June'08, beta in August'08, with a public stable release in September'08.<br />
<br />
=Purposes=<br />
* '''Give people the infrastructure to create solid and exciting software products based on the Openmoko platform'''<br />
* '''Support competing UIs while collaborating on developing services'''<br />
* '''Encourage framework users (e.g. application developers) to also contribute to the framework'''<br />
<br />
=Requirements=<br />
* Make it simple<br />
* Concentrate on core services<br />
* Be programming language agnostic<br />
* Be UI toolkit agnostic<br />
* Try to reuse existing technologies as much as possible, but not at the cost of a bad API<br />
<br />
=How to achieve that technically=<br />
* Chose [[Dbus]] as the collaboration line. Below dbus, we can work together. Above dbus, we can differentiate.<br />
* Expose features through dbus APIs implemented by UI-agnostic and language-agnostic services (daemons).<br />
* Optimize for Openmoko devices, but support multiple architectures and purposes through plugin interfaces and suitable hardware abstraction mechanisms.<br />
* Be not afraid of reinventing the wheel for a wheel-barrow if all the existing wheels are made for sports cars.<br />
<br />
=Mandatory Readings=<br />
* [http://adam.gomaa.us/blog/frameworks-exist-for-conceptual-integrity/ Frameworks exist for conceptual integrity]<br />
* [http://humanized.com/weblog/2007/10/05/make_oss_humane/ Ten ways to make more humane open source software]<br />
* [http://www.freesmartphone.org FreeSmartPhone.org Wiki]<br />
<br />
=What this is NOT about=<br />
This initiative does not cover low level services such as<br />
* Bootloader, Kernel, or System Init.<br />
<br />
This initiative does not cover high level services such as<br />
* X-Window-System, Window Manager, UI Toolkits,<br />
* Application Launchers, Applications, or Fancy UIs.<br />
<br />
=Architectural Overview=<br />
[[Image:OpenmokoFramework08.png |823px|left|frontside]]<br />
<br />
=Software Components=<br />
<br />
We differenciate between low-level and high-level services -- dbus will be used to communicate horizontally and vertically.<br />
<br />
===Low-Level Services===<br />
<br />
====Device Control====<br />
The low level device control service manages peripheral control, i.e. controlling power for individual subsystems such as<br />
* GSM, WiFi, Bluetooth, GPS, as well as<br />
* Backlight brightness and power,<br />
* turning LEDs on and off, etc.<br />
It also deals with<br />
* charging, suspend/resume,<br />
* accellerometers, and buttons.<br />
Last but not least, it sends notifications about the user's activity so that listeners have a chance to<br />
* change to powersaving modes, or<br />
* lock the device.<br />
We implement the following software for that:<br />
* [http://www.freesmartphone.org/mediawiki/index.php/Implementations/OpenDeviceDaemon odeviced]<br />
<br />
====Audio====<br />
The low level audio service relies on a working alsa device driver. On top of that, there are two components:<br />
# [http://gstreamer.freedesktop.org/ gstreamer]<br />
# [http://pulseaudio.org pulseaudio]<br />
<br />
'''Gstreamer''' is to be used for all kinds of event sounds where a) multiple audio formats need to be supported and b) a latency of about one second is acceptable. This goes for e.g. ring tones, welcome tones, plug indication.<br />
<br />
'''Pulseaudio''' is to be used for event sounds, where low-latency is necessary, e.g. touch click sounds and UI event acknowledge sounds. Pulseaudio is our general all-purpose mixer. Gstreamer will use the pulseaudio sink to feed audio through.<br />
<br />
====GSM====<br />
The low level GSM services expect a modem complying to GSM 07.07, GSM 07.05, and assorted GSM specifications, talking an AT-protocol over a serial line. If GSM 07.10 is supported, we use the multiplexing daemon<br />
* [http://www.freesmartphone.org/mediawiki/index.php/Implementations/gsm0710muxd gsm0710muxd]<br />
to export virtual serial lines over -- again -- AT-protocol can be spoken.<br />
<br />
====Bluetooth====<br />
The low level Bluetooth services rely on the official Linux Bluetooth subsystem:<br />
* [http://www.bluez.org BlueZ].<br />
<br />
====GPS====<br />
The low level GPS services assume a GPS device that talks NMEA over a device node. We rely on the following software:<br />
* [http://gypsy.freedesktop.org Gypsy]<br />
<br />
====Network====<br />
The low level networking service assumes network interfaces, such as USB, Ethernet, Wifi, etc. We rely on the following software here:<br />
* Network Manager or Intel Connection Manager (undecided yet)<br />
* ppp<br />
<br />
===High Level===<br />
<br />
====Usage====<br />
The Usage subsystem is coordinating application I/O requirements preventing. Applications are not supposed to turn on or off devices, since they do not have any knowledge about concurrent applications that may be also using the device -- think ''reference counting'' for I/O requirements.<br />
<br />
With this added layer, we could later think about monitoring subsystems, subsystem usage statistics, or accounting.<br />
<br />
See discussion page about PolicyKit.<br />
<br />
====Events====<br />
* signaling events via I/O (ringing, blinking, vibrating)<br />
* might use fd.o notification API<br />
<br />
====PIM====<br />
An intelligent storage database server. This is being carried out as a Google Summer of Code project. See complete description [http://www.neo1973-germany.de/wiki/pyPimd here]<br />
<br />
====Context====<br />
* Intelligent context API, integrating location as one -- among other -- sources<br />
TBD<br />
Reference Geoclue<br />
<br />
====Telephony====<br />
* Voice<br />
* Data<br />
<br />
===Preferences===<br />
* settings database<br />
<br />
====Network====<br />
* high level networking queries<br />
<br />
=Implementation=<br />
<br />
===Completion Status===<br />
<br />
====Low Level====<br />
* device control: 50%<br />
* audio: 80%<br />
* GSM: 80%<br />
* Bluetooth: 80%<br />
* GPS: 80%<br />
* Network: 50%<br />
<br />
====High Level====<br />
* Usage: 0%<br />
* Event: 0%<br />
* Preferences: 0%<br />
* Context: 0%<br />
* Telephony: 50%<br />
* Networking: 0%<br />
* PIM: 0%<br />
<br />
=The role of Python=<br />
<br />
Where we write new code, we will use Python to implement the dbus services. The reason for that being the rapid prototyping nature of Python and the emphasis on the Dbus APIs. Using Python, the turnaround times to experiment with APIs are incredibly faster than for using a compiled language such as C or C++.<br />
<br />
Once the APIs have been used by application programmers, we can start profiling and possibly reimplement some of the services with daemons written in Vala, ''if'' necessary. We might as well succeed in improving performance by using Pyrex/Cython/Ctypes to keep the benefits of Python.<br />
<br />
=Team & Roadmap=<br />
<br />
==Team==<br />
<br />
* [[User:Mickey|Michael 'Mickey' Lauer]]<br />
* Guillaume Chereau<br />
* [[User:Shoragan|Jan 'Shoragan' Luebbe]]<br />
* Holger 'Zecke' Freyther<br />
<br />
==Roadmap==<br />
<br />
Milestone 1:<br />
<br />
Milestone 2:<br />
<br />
Milestone 3:<br />
<br />
<br />
[[Category:Openmoko ]]<br />
[[Category:Categories| ]]</div>Abraxahttp://wiki.openmoko.org/wiki/Openmoko_Local_Groups:_Frankfurt_MainOpenmoko Local Groups: Frankfurt Main2008-05-14T17:17:23Z<p>Abraxa: Edited my details</p>
<hr />
<div>'''Aktuelles Treffen: Siehe [[Talk:OpenMoko_Local_Groups:_Frankfurt|discussion]]'''<br />
<br />
=== Possible Participants ===<br />
{|border=1<br />
!Name<br />
!Skills<br />
!Level of Interest<br />
!Location<br />
!Other<br />
!Has Device<br />
!Has Debug Board<br />
|-<br />
|[[User:scheelec|scheelec]]<br />
|web related, php/mysql, oracle<br />
|GTA01Bv4, later hopefully GTA02<br />
|Eschborn<br />
|thinking of a gps tracer application with database backend<br />
file based db for NEO or online DB via GPRS/WLAN.<br />
similar to the openroadmap project<br />
|[[Image: Moko.jpg|center]]<br />
|<br />
|-<br />
|[[User:Mickey|mickeyl]]<br />
|Architecture, Coding, Music<br />
|OpenMoko development platform<br />
|Frankfurt/Sachsenhausen<br />
|New-style UI toolkits...<br />
|[[Image: Moko.jpg|center]]<br />
|[[Image: MokoBox.jpg|center]]<br />
|-<br />
|Elrond<br />
|reverse engineering, many other things<br />
|GTA01Bv03 ;o)<br />
|Darmstadt<br />
|GPS: Working on Sphyrna (see [[Hammerhead/Protocol]]<br />
|<br />
|<br />
|-<br />
|Abraxa<br />
|Coding, bugfixing, documenting<br />
|Coding of/for various apps, documentation<br />
|Friedberg<br />
|Wrote the GTK+ [[Media Player]], now writing pyPimd<br />
|[[Image: Moko.jpg|center]]<br />
|[[Image: MokoBox.jpg|center]]<br />
|-<br />
|[[User:B.richter|B.Richter]]<br />
|Coding<br />
|waiting for GTA01Bv04 <br />
|Fulda<br />
|Nagios notification device<br />
|<br />
|<br />
|-<br />
|[[User:mafeu|mafeu]]<br />
|pre-alpha early adopter :-); some coding, if time allows<br />
|<strike>waiting for</strike> GTA01Bv04, skipping GTA02 and hoping for GTA03 w. EDGE/UMTS/HSDPA/HSUPA and 2 cameras<br />
|Kelkheim<br />
|<br />
|[[Image: Moko.jpg|center]]<br />
|<br />
|-<br />
|[[User:Alech|alech]]<br />
|Coding<br />
|Coding if the time allows, possibly some crypto stuff, interested in playing with the GPS, GTA01Bv04(?) arrived 2007/08/10 :-)<br />
|Darmstadt<br />
|works mostly in Eschborn, so meeting in Frankfurt is fine<br />
|<br />
|<br />
|-<br />
|[[User:karsten|Karsten]]<br />
|Coding, UI-Design<br />
|Coding own stuff I always missed on other phones<br />
|Wehrheim<br />
|GPS moving maps; some simple games<br />
|[[Image: Moko.jpg|center]]<br />
|[[Image: MokoBox.jpg|center]]<br />
|-<br />
|[[User:Blacky|Blacky]]<br />
|Systemdesign<br />
|GTA02 [[GroupSales#Frankfurt|GroupSales]]<br />
|Taunus<br />
|Least Cost Routing<br />
|<br />
|<br />
|}<br />
[[Category:Community]]<br />
[[Category: OpenMoko Local Groups| ]]</div>Abraxahttp://wiki.openmoko.org/wiki/Talk:OpenMoko_Local_Groups:_FrankfurtTalk:OpenMoko Local Groups: Frankfurt2008-05-14T17:15:08Z<p>Abraxa: Removal of expired notice</p>
<hr />
<div>Derzeit keine Treffen geplant</div>Abraxahttp://wiki.openmoko.org/wiki/Wish_ListWish List2008-03-26T12:12:47Z<p>Abraxa: /* Plugins Support */ - We may be weird but we can still count ;)</p>
<hr />
<div>This article is a place to collect various thoughts about the future of the [[OpenMoko]] software platform. Most wish list ideas have been linked from this page, but you may also wish to check all pages [http://wiki.openmoko.org/wiki/Category:Ideas that have a category of 'Ideas'].<br />
<br />
== Development ==<br />
=== Painless SDK installation & Setup ===<br />
Our goal should be a completely painless setup for somebody wanting to develop using [[OpenMoko]]<br />
<br />
* one command for installation (apt-get install openmoko)<br />
* one command to start Xnest (openmoko-xephyr?)<br />
* one command to start an i386 shell (openmoko-386-shell)<br />
* one command to start an armel shell (openmoko-armel-shell)<br />
<br />
No extra configuration required.<br />
<br />
==== IDE Plugins ====<br />
People like to see plugins for<br />
* [http://anjuta.sourceforge.net Anjuta]<br />
* [http://www.eclipse.org Eclipse] (some things are possible - see [[Development with Eclipse]].<br />
* [http://www.netbeans.org NetBeans]<br />
* Game engine - Game Creation plugins<br />
evaluate eclipse project [http://www.eclipse.org/dsdp/index.php Device Software Development Platform Project from eclipse] and subproject [http://www.eclipse.org/proposals/tml/ Tool for Mobile Linux]<br />
* [http://www.kdevelop.org KDevelop]<br />
* [http://developer.apple.com/tools/xcode/ XCode]<br />
* [http://www.monodevelop.com MonoDevelop]<br />
* [http://msdn.microsoft.com/vstudio/ Microsoft Visual Studio 2005]<br />
<br />
==== UI Designer ====<br />
Glade code generation is deprecated, so we don't want to use it. The Gtk+ powers told me that the plan is to have gtk 2.12 (out early 2007) with support for GtkBuilder, a libglade derivative which breaks a bit the XML definition in order to support all the new widgets and properties; as soon as it's in the other ui builders will add support for this format. See also [http://bugzilla.gnome.org/show_bug.cgi?id=172535 the relevant bug entry]<br />
* Possibly a Landscape (rotated) view for the screen (480x640 *or* 640x480)?<br />
<br />
<br />
==== Built-in Scripting Language ====<br />
{{Main|Wishlist:BuiltInScriptingLanguage}}<br />
There was a [http://lists.openmoko.org/pipermail/community/2007-January/001909.html fruitful discussion about a built-in scripting language on the mailing list in January.] Many people feel that it is very important for OpenMoko to choose a scripting language to ship as default in the standard OpenMoko firmware.<br />
==== Easy build of the existing autotools - based packages ====<br />
In the ideal case OpenMoko should exist on the top of the usual ./configure - make workflow which is typical for the majority of the C/C++ based open source projects. It should not require to rewrite or even replace the existing Makefile.am files of the project being ported, and it should allow to pass the needed parameters to the project configure script. Maybe OpenMoko project could be a bigger project having one or more (if some are libraries) autotools - based packages in its separate folders and include the proper documentation how to "wire" the standard autotools based package to the OpenMoko infrastructure.<br />
<br />
===Foreign Widget Set Bindings ===<br />
==== Qt Integration ====<br />
The Trolltech folks have a great widget library. I'd like to interface OpenMoko with Qt4, so that we can write Qt4 applications for the phone which don't look alienated.<br />
<br />
==== Maemo Integration ====<br />
The Maemo folks have created a successful standard for Webpad applications. I'd like to have a set of MaemoMoko and MokoMaemo wrapper classes that allow me add support for running OpenMoko applications on Maemo and vice versa. Perhaps we can get help from the Nokia OSS folks for that.<br />
<br />
==== wxWidgets Integration ====<br />
wxWidgets is a cross-platform application framework that's very popular (I'd say, #3 after Qt and Gtk+). On Linux, wxWidgets uses Gtk+ to implement the widgets. It shouldn't be hard to add support for the additional OpenMoko classes to wxWidgets hence supporting the native OpenMoko look and feel for wxWidgets applications.<br />
<br />
wxWidgets team wants OpenMoko classes too and we (wxWidgets) plan to include this project as one of our ideas for [http://google-code-updates.blogspot.com/2007/02/speaking-of-summer.html GSoC 2007]<br />
<br />
==== SDL Integration ====<br />
SDL is ''the'' game developer library. There are tons of SDL games out there. We should add OpenMoko support into SDL.<br />
<br />
==== Cocoa / GNUstep ====<br />
Allows to use MacOS X as a development platform.<br />
<br />
=== Software: Language bindings ===<br />
==== Python bindings ====<br />
Python bindings seem to be a commonly requested feature. <br />
<br />
[[User:Mickey]] says, "They are kind of usable on the [http://www.maemo.org Nokia 770], but it's at the lower end of being bearable. We should keep this in mind -- Gtk+ already comes with Python Bindings, so we "just" would need to wrap libmoko*. I would prefer to leave this to the community do though, since it doesn't make sense to start wrapping the API until we have a stable API -- and I can imagine it will take us a couple of months after going open until we can start with stabilizing the libmoko API."<br />
<br />
==== C++ bindings ====<br />
There is a whole skilled C++ community coming from the [http://qtopia.net Qtopia] and [http://opie.handhelds.org Opie] projects. If we would consider basing OpenMoko C++ Bindings on [http://www.gtkmm.org/ Gtkmm], then we could drag these guys in.<br />
<br />
==== Ruby bindings ====<br />
Ruby and ruby-(gtk|glade) already ported to OpenMoko according to [http://lists.openmoko.org/pipermail/openmoko-apps/2007-May/000040.html this ] and [http://groups.google.de/group/comp.lang.ruby/browse_thread/thread/6bee9970cf055504 this] mesages. It just have to be included to distribution (only 4.9 MB!)<br />
<br />
==== Java bindings ====<br />
People who concentrate on Java programming would like to have the OpenMoko port of some java virtual machine. GNU Classpath team a lot of great work in the past creating easily portable implementation. Sun's recently open sourced code could also be ported. <br />
==== Other bindings ====<br />
* Perl<br />
* C#<br />
* I think you could skip a bunch of these by binding to Dbus; most languages already have Dbus bindings<br />
<br />
== Community Support ==<br />
<br />
=== [http://projects.openmoko.org projects.openmoko.org] ===<br />
Infrastructure for developers with<br />
* One bugzilla for all projects (makes moving bugs forth and backwards between projects ''very'' easy)<br />
* One mailing list for project<br />
<br />
== Platform ==<br />
=== Community Images ===<br />
In the future there could be complete, unofficial "product images" that are created by the community, for example maybe one that incorporates only free software (in the GNU or OSI sense). Or images build with a particular niche market in mind -- a student for example.<br />
<br />
=== Wishlist voting ===<br />
There could be a kind of voting system like they have at one of those big computer manufacturers homepage. Then the community could vote for the ideas that are most important to them. This would especially make sense for the hardware wishlist, because the hardware is still the part which can't be done by the community that easily.<br />
<br />
Here: [http://www.fevote.com/openmoko OpenMoko suggestion board]<br />
<br />
== Software: Additional features ==<br />
<br />
===PDA Mode===<br />
<br />
There are times when you wish to power up the device and not power up the gsm/cellphone portion of the phone. For example in meetings you might wish to access the PDA side with wifi as is the case for example on an aircraft. On booting some method of booting to pda mode would be good - several other phones offer this feature.<br />
<br />
===Driving Mode===<br />
<br />
It may be forbidden in many countries, but many people use their cell phones while driving. With the touchscreen phones<br />
this is very dangerous: You have to stare at the tiny numbers on the screen and try to hit them with your thumb or try to decipher tiny script of contacts, while steering with the other hand. There should be a configurable driving mode where the interface has a reduced functionality (e.g. only contacts and dialing) with HUGE interface buttons that are easy to use with limited attention.<br />
<br />
===Calling===<br />
<br />
==== Mask ID based on dialed numbers ====<br />
It would be nice if my number only showed up when I call people in my address book and was otherwise masked. The phone I have now either always shows my number or never or can be set on a per call basis. Having it done automatically based on the number dialed would be good.<br />
<br />
==== Use calling cards and similar routing techniques for lower-cost calling ====<br />
Many people use calling cards, low-cost numbers and similar ways of reducing the costs of their calls. It would be nice to have a single panel that would allow you to configure the rules of dialing a number taking in to account such systems.<br />
<br />
==== Outgoing black/white lists ====<br />
The ability to allow or deny outoging calls to certain numbers can be useful in a number of situations (e.g. the holder of the 'phone is a child, untrusted, etc.). This could be related to entries in the contact list, for example a user is only allowed to call people who are in their contact list.<br />
<br />
Also lists for incoming calls? Some friends always come through, unknown numbers get rejected automatically.<br />
<br />
==== Time-based blocking/unblocking of calls ====<br />
Allowing or disallowing outgoing calls at certain times of the day could be useful, e.g. blocking a business phone from making calls outside of business hours.<br />
<br />
====Speaker-phone====<br />
* A speaker-phone is more than simply connecting the speakers to GSM audio, it's also echo cancellation, and eliminating the feedback that will otherwise happen between the speakers and the mic. This software has not been written.<br />
<br />
====Advanced Airtime Tracking====<br />
Many phone users have complicated plans, things like unlimited incoming, 100 anytime minutes, 1000 evening minutes, etc. It would be nice if a user could input the various monthly airtime chunks their plan gives them, and then the phone could track how much is left in each chunk, i.e. How much anytime minutes are left this month? Optionally, the software could warn when someone is close to the monthly limit, to help avoid bigger bills.<br />
On (at least some) prepaid [http://en.wikipedia.org/wiki/Unstructured_Supplementary_Service_Data USSD] can be used to check current balance.<br />
<br />
==== Anti-stutter software ====<br />
Delayed Auditory Feedback (DAF) has shown to reduce stuttering in individuals by 70%. By using the microphone, it should be pretty simple to implement this on the OpenMoko. The DAF functionality should also be present during phone calls. See http://en.wikipedia.org/wiki/Delayed_auditory_feedback for more information.<br />
<br />
====Minimize In-Call mode (check address book while in call)====<br />
On my locked phones I always find it annoying that one can not use other features while a call is in progress. In particular, I'd like to access the address book so that we can (1) give a caller someone else's phone number (or other info) and (2) lookup a phone number when using a calling card or some other proxy.<br />
<br />
Similar request when using the browser (lookup passwords, todo list, etc).<br />
<br />
====Hold Music (Ringback Tone)====<br />
On some cellphone networks you can pay to change the normal [http://en.wikipedia.org/wiki/Ringback_tone Ringback Tone] that the caller hears when ringing, to a customised sound.<br />
This can partially be implemented on the phone.<br />
Issues are:<br />
*In countries where callers pay, this will make you unpopular.<br />
*In countries where the called party pays, it will use your minutes, or cost you money.<br />
**A list of people to activate this function for would alleviate this.<br />
*[[GPRS]] internet connection will stall while the hold music is being played.<br />
*Extra battery used when playing music.<br />
<br />
Also see [[Answering Machine]].<br />
<br />
====Play sound clips over the air====<br />
Dialer could have a tab with big buttons which, when push, send sound clips over GSM to the person on the other end of the call. This feature is included in GizmoProject and is called sound blasts: http://support.gizmoproject.com/index.php?_a=knowledgebase&_j=questiondetails&_i=104<br />
The buttons can have default sounds, but also have the ability to be customized.<br />
<br />
It would also be useful for notifying people why you can't talk (for example, having an "I can't talk tight now - I'm in the library - this is a pre-recorded message" would be good. Also perhaps you could loop a pre-recorded sound in the background so you can lie about where you are, and have the ability to simulate a really bad connection.<br />
<br />
==== DTMF Landline Dialing ====<br />
The ability to hold the Neo near the microphone of a landline handset and have the Neo dial the landline by sounding DTMF tones. The DTMF tones could be generated in software or be pre-recorded files.<br />
<br />
Graphically this could be done by adding a 'DTFM dial' button to a context menu. The user would select a contact then presses the 'DTMF dial' button to start the process. A small delay could also be added to allow time to put the Neo near the landline handset.<br />
<br />
For the Neo to know which area code to use (or not use) the current or last GPS coordinates could be utilised.<br />
<br />
==== Conversation Recorder ====<br />
<br />
An option to record phone conversations. Would be helpful to have the device always recording for every call, with the sound data encoded to low quality Ogg Vorbis or SPEEX and stored in RAM. At the end of the conversation the user would have the option to save to flash or discard the conversation. This idea could also be applied to voicemail so you could save voicemails locally.<br />
<br />
====Unlicensed Mobile Access (UMA)====<br />
T-Mobile recently rolled out a UMA service that hands off calls between the GSM network and WiFi access points. Only a few phones support it right now, this could be a rather unique feature if OpenMoko can implement it.<br />
<br />
This can be combined with a GPS map to show where local free hubs are.<br />
<br />
==== Ignore-Call Button ====<br />
{{Main|Wishlist:Ignore Call Button}}<br />
<br />
Shut up a ringing phone, without accepting or rejecting the call.<br />
<br />
Another alternative might be to use microphone to recognize when the user gives an audible "Shhh!" command. This could prove difficult to determine with the simultaneous ringing, and possible in-pocket shuffling noises. <br />
<br />
A really usable feature is to "reject with SMS/text message" - letting the user reply the caller choosing a previously setup template or typical response: "I'm in a meeting - I'll call you later" or "Can't take your call now, please call back in 10 minutes". This feature typically is a much better way to get your co-workers (ie boss) to back off, than to silently ignore the call.<br />
<br />
The accelerometers could be queried while the phone is ringing to detect a firm tap on the phone. This would avoid the delays of fumbling to remove the phone from one's pocket to silence the ringer when you've forgotten to set it to silent mode. Just firmly tap the phone through your pocket, and the ringer will silence, like some Motorola pagers. Maybe single tap = silence; double tap = (activate voicemail or preset SMS).<br />
<br />
==== Voice Mailbox ====<br />
{{Main|Voice Mailbox}}<br />
On-Phone voice mailbox that records calls on the phone and retrieves voice messages from your mobile service provider's voice mailbox and saves them locally.<br />
Can act profile-dependent.<br />
<br />
==== Hold Button ====<br />
<br />
Similar to mute, but plays a sound file for the user on the other end while they wait. The sound file could be chosen in some setup beforehand.<br />
<br />
==== Unanswered Call, Fast Call ====<br />
<br />
In Greece because of the various bill programs some people call a mobile phone, rings one time and then hangup.<br />
Then the user of the mobile phone calls the other user(using the CallerID recognition).<br />
<br />
===Audio===<br />
<br />
==== Ambient Noise Detection ====<br />
{{Main|Wishlist:Software:Ambient Noise Detection}}<br />
<br />
Using the microphone to detect ambient noise the ringtone volume could be adjusted automatically.<br />
<br />
If the ambient noise exceeds a preset threshold, the ring vibrator could be activated. This is good for when people forget to enable vibrate mode when entering noisy environments.<br />
<br />
Detection of ambient noise could also be used to subtract the noise from the audio signal. However this approach is best performed using two Microphones, one for the voice and the other to detect the noise.<br />
<br />
==== Active noise control ====<br />
<br />
Using the microphone to do [http://en.wikipedia.org/wiki/Anti-noise active noise control] on media player playback or telephone calls. This should be an independent module/library which can be used by any application which might require this feature. also provide a way to easily alter the parameters of the active noise control.<br />
<br />
==== Hear Impaired Mode ====<br />
<br />
Hearing impaired people need louder speaker(but with less volume than hands free) and equalized sound, based on their hearing problems(example 20dB hearing loss from 2KHz to 4KHz).<br />
Older people 50+ years old need slower speech rate(time stretch, cut the big speech gups) and cleaner voice.<br />
<br />
Please note also the Hearing Aid Compatibility regulations in the US. I have tried to summarize and clarify them [http://quux.wiki.zoho.com/WhereAreHACphones.html here]. I haven't yet discovered whether the FIC device is M or T rated. For many hearing impaired users, a tcoil coupling to their hearing aid (t3/T4 rating) would be preferable to manipulating sound output in other ways.<br />
<br />
==== Mute Button ====<br />
<br />
Button to temporarily disable microphone while talking for applications such as telephone, audio recording and (when available) movie recording.<br />
<br />
<br />
===Web Browser===<br />
<br />
==== Full-page Zoom Support ====<br />
Full page zoom is a very good feature. If possible, people would want to browse the internet with normal layout than a distorted one. It's best if I could double-tap a text or image block and zoom to a fit size.<br />
<br />
The [[BigPageWidget]] proposal suggests 'Full Page Zoom' should be implemented as a widget available to all applications.<br />
<br />
* If the processor and memory could afford, it is good to just use [http://www.mozilla.org/projects/firefox/3.0a8/releasenotes/ Firefox 3] in OpenMoko. It has implemented latest gecko's full-page-zoom ability. With certain modification, we could do the same zoom like iPhone's Safari.<br />
* Firefox 3 may be a big eater. A cut-down version of it may be good enough.<br />
* If this is not practical, Minimo with full-page-zoom ability is good.<br />
<br />
==== Plugins Support ====<br />
* While an extensive browser plugin system would be costly to the efficacy of the platform four particular browser plugins as poplularized by Mozilla firefox should be adapted to the web-browser, namely: [http://noscript.net/ noscript], [http://adblockplus.org/en/ adblock plus], [http://www.greasespot.net/ greasemonkey] and [http://www.foxmarks.com/ foxmarks].<br />
* Careful use of these can dramatically reduce bandwidth, page space, and rendering costs even if it comes at the risk of some hard drive space in the form of block lists.<br />
* Greasemonkey, in particular, gives users control to set up scripts for commonly traveled pages to further reduce unnecessary or unwanted content.<br />
<br />
==== Widget support ====<br />
Built-in browser with the ability to install widget shortcuts (aka links) in the main phone menu, also some apis for interfacing with the other functionality of the phone like adding contacts, reading contacts, reading gps-psoition etc.. (maybe there is some defacto widget standard that could be used)<br />
<br />
There is a [http://www.w3.org/TR/widgets/ W3C spec] being developed, which may not be exactly what the original proposal had in mind, but it is about writing simple applications with HTML, SVG and JavaScript. It is mainly Opera's work, and while most [http://widgets.opera.com/ developed widgets are not very useful], there are some that are, and it creates a very nice development platform, especially for mobile devices. So, I think it makes an awful lot of sense for OpenMoko to support this spec.<br />
<br />
===Media===<br />
====Music/Video Software====<br />
A real good programming area for competition with the iPhone, a singular video/music player would be great for multimedia. A seamless integration system, a la iTunes and iPod, would be extremely popular. <br />
<br />
Using the Wi-Fi connectivity, a separate music program that supports wireless music sharing/ streaming (similar to what can be done when two computer running iTunes that are both on the same network) and that also supports internet radio.<br />
<br />
It would also be nice to have some kind of "announce your musical taste" mode. This could be implemented using last.fm profiles, such that when e.g. in a crowded place a user nearby has a similar musical taste, both users get notified so they can share their music files with each other (perhaps using a photo for id). Great for discovering new music - and making friends!<br />
<br />
- Possible copyright issues sharing music files?<br />
<br />
Sure, but that's the user's concern, not the developer's. There's no way for us to know which audio files the user is permitted/not permitted to share.<br />
<br />
==== Reading Support ====<br />
It would be really great to be able to read :<br />
<br />
*PDF<br />
*Open Document files<br />
*Text / RTF files<br />
*fb2 files (fbreader)<br />
*MS Office files<br />
*Aportis Doc (pdb)<br />
*DjVu<br />
*...<br />
<br />
In both landscape and portrait<br />
<br />
==== Wikipedia Mirror ====<br />
{{Main|Wishlist:Wikipedia_Mirror}}<br />
<br />
==== Blog ScribblePad ====<br />
<br />
Draw an image (and maybe add some text), then post to your blog.<br />
<br />
==== E-Book Reader ====<br />
* Neos brilliant ultra-sharp screen makes for a very good e-book reading device. All it takes is a good e-book reader with touch-screen page turning / scrolling (see the [[BigPageWidget]] proposal). FBReader could probably be adjusted easily by an experienced GTK hacker. Note that e-book reading is different to pure text/pdf displaying as it requires at least auto-bookmarking of the last read page, proper text and image scaling and text formatting.<br />
<br />
==== Personal Wiki ====<br />
{{Main|Wishlist:PersonalWiki}}<br />
<br />
Display the notes database as a Wiki. Inspiration: [http://www.acrocat.com/AcroWiki/default.asp?lang=en AcroWiki].<br />
<br />
[http://www.didiwiki.org/ Didiwiki]<br />
<br />
<br />
==== Dictionary, thesaurus, translator and flashcards ====<br />
Native lookup dictionary and thesaurus and foreign translation dictionaries, also with support for Asian languages. Optional custom configurable (though preconfigured) interface with on-line versions of dictionaries, thesaurus and translation services.<br />
<br />
'''Dictionary'''<br />
Something like [http://www-user.tu-chemnitz.de/~fri/ding/ ding]:<br />
<br />
advantages:<br />
* small<br />
* very efficient + useful<br />
* only limited to really needed functions<br />
<br />
Support for vocabulary training with flashcard system (also usable for other content than foreign language words!)<br />
<br />
==== Flickr uploader ====<br />
A simply, drag & drop uploader, tagger and organizer to upload images on phone to [http://flickr.com Flickr], with support for various languages. A good base could be the cross-platform uploader [http://juploadr.org/ jUploadr], written in Java and working on Windows, Mac and Linux. But, most of all, the best '''GPL''' program which actually do this work is '''[http://mobilepushr.jottit.com/ Mobile Pushr]''', written in C and Cocoa for iPhone, must be probably ported in python to work on OpenMoko.<br />
<br />
===PIM (Personal Information Managment)===<br />
====Context Sensitivity====<br />
Any email or sms message or application that contains a telephone number should be click to dial, eg [http://123567890 1234567890]. Addresses link to mapping software too?<br />
<br />
==== Notes ====<br />
<br />
Something for taking notes would be a nice feature:<br />
[http://www.gnome.org/projects/tomboy/ Tomboy] has some nice syncing features and is gtk based.<br />
<br />
Some Screenshots are [http://www.gnome.org/projects/tomboy/images/ here].<br />
<br />
==== Calendar ====<br />
<br />
A nice calendar application should be implemented in OpenMoko. This tool should have a syncing feature with your desktop computer.<br />
The tool should have a reminder feature and other features like other mobile phones already have.<br />
<br />
I think synchronization sould be handled by computer with opensync+syncml based tool, not by calendar itself. --[[User:Antono|Antono]] 12:25, 7 January 2008 (CET)<br />
<br />
* If this cellphone is thought also as a PDA, of course it needs a calendar. But I would like to see something better than just a calendar, I was thinking that there could be some application using "fisheye" view. Just like [http://www.cs.umd.edu/hcil/datelens/], though that example seem a bit chaotic. --[[User:Yprum|Yprum]] 22:27, 21 February 2008 (CEST)<br />
<br />
==== Address Book ====<br />
<br />
* Option to search not just the stored list of addresses, but one or more of the online phonebooks. Probably should be modular to make adding/changing phonebook sites easy. Also allows for future integration with LDAP<br />
servers or whatever.<br />
* Also the possibility to search all info on the contact, like number, email, postal address and so on, in case someone asks you to identify a known number.<br />
* Web-based map-lookup. 'How do I get there from here? (here = current GPS location)' This could also be done<br />
by integrating with whatever on-phone GPS mapping software the Neo ends up using.<br />
* Random text input 'notes' about a contact<br />
* Overall, this should more resemble a Palm-pilot's address-book than your average cellphone's<br />
* Automated Daily backup of phone book to a website archive (similar to Verizon's Back-up Assistant<br />
*Ability to integrate address book with web-based email (such as gmail) account, for those who use web based email as their primary account<br />
* '''[[Wishlist:Tagging|Tagging]]''' Place tags for contacts. Enhance message application to send messages to all contacts tagged with ... . Enhance other application(GPS, ...) with tags.<br />
* Support for:<br />
**[http://en.wikipedia.org/wiki/SyncML SyncML]<br />
**[http://en.wikipedia.org/wiki/Ldap LDAP] address book<br />
**[http://en.wikipedia.org/wiki/LDIF LDIF], [http://en.wikipedia.org/wiki/Xml XML] and [http://en.wikipedia.org/wiki/Comma-separated_values CSV] export and import (when possible).<br />
*Store Bluetooth IDs of friends and notify (configurable only on this device or on both devices) when a one of these Bluetooth ID has been detected (this is more a separate application but has requirements on the address book. Should also be able to create an address book entry from a Bluetooth ID. Could be used as a nice tool to detect people who you're avoiding.<br />
<br />
==== Database/List Display/Edit ====<br />
{{Main|Wishlist:PilotDB}}<br />
<br />
One of the most useful apps on my Palm Pilot for me is [http://pilot-db.sourceforge.net/ pilot-db]. It's GPL'd.<br />
<br />
==== Joe's Goals ====<br />
<br />
It'd be nice to have something like [http://www.joesgoals.com Joe's Goals] always available, like my phone is, even when I'm disconnected from the net.<br />
<br />
==== Workout ====<br />
<br />
Use your phone instead of your notebook while at the gym, and get pretty graphs to admire after you're done.<br />
<br />
==== Shopping List ====<br />
keep Track of Prices in different shops and the products you have/don't have. Ideally using a barcode reader and gps.<br />
If it was made aware of recipes it could even tell you what to buy without entering a shoppinglist manually.<br />
<br />
==== [[Fuel Log]] ====<br />
File data about fueling your car (date/time, liters, price, mileage, ...) and display some information (costs per month, average consumption, ...).<br />
Advanced features could include:<br />
* Automatically storing the GPS coordinates of the place where the car has been fueled (can be deactivated)<br />
* Sending the data to a central server which collects the information ( spritmonitor.de, anything else ?)<br />
* Let the OpenMoko receive fuel logs per SMS (e.g. if my wife with a non-openmoko mobile fuels the car and wants to file the data using her mobile phone)<br />
* Let the OpenMoko device act as SMS gateway for non-openmoko devices to easily send the data to the central server<br />
* Also support for air log for divers. Not that you will take this device under water but for the crew at the surface.<br />
<br />
==== Keep in touch reminder ====<br />
A background application which keeps track of your friends and reminds you when you have not talked, SMS, IM or mailed a person for more than # days.<br />
<br />
<br />
==== Menstruation period timer ====<br />
Fill in statistics and compute probabilities for menstruation, fertility, mood.<br />
See http://www.getjar.com/products/48/MyGirls<br />
<br />
==== Tagging ====<br />
{{Main|Wishlist:Tagging}}<br />
Tags can be used by various applications. Requirement is interoperability for further enhancement.<br />
Tags should be applied to contacts, calendar events, mail/sms, calls, places(GPS) and files.<br />
http://tracker-project.org has all needed tagging-and-searching functionality and ready to be used on low-resourced devices.<br />
<br />
==== Context based TO-DO list ====<br />
{{Main|Wishlist:context based to-do list}}<br />
<br />
If I arrive home and there are "@home" things in the to-do list, the Context based to-do list reminds me of that.<br />
<br />
==== Exchange Integration ====<br />
<br />
Once there is good TCP/IP connectivity on this phone, integration with corporate email/calendar/to do/contacts/etc servers would be a big advantage... near-real-time automatic email downloads and automatic bi-directional syncing are productivity boosters that you have to experience to appreciate. It turns your phone from a 'nice gadget to fiddle with' to a natural-feeling extension of your day-to-day life.<br />
<br />
* Is the time right to name names ? Add as your liking...<br />
** Plugin/integration to & from Kontact<br />
** Same with Evolution - Thunderbird - Seamonkey<br />
** ?? Google Calendars ?? (this one is tough)<br />
** Ms Exchange<br />
<br />
==== An electronic wallet ====<br />
<br />
A database which stores securely PIN codes, login data, bank and email accounts, membership informations, and other valuable and private data. Entries can be ordered in a folder-like manner. Access to the database is given by a master password. The database as well as the master password are stored with strong encryption. For security reasons, the program asks again for entry of the master password after a certain period of inactivity. The database can be synchronized with a PC application (ideally written in Java for cross platform compatibility).<br />
<br />
Examples: KWallet [http://docs.kde.org/stable/en/kdeutils/kwallet/index.html], Viskeeper [http://www.sfr-software.de/cms/EN/pocketpc/viskeeperpro/index.html], KeePass [http://keepass.info/]<br />
<br />
==== Easy business card sharing for a small group (in the same room) over bluetooth or WIFI ====<br />
<br />
Six Neo1973 owners are having a chat in a cafe. They agree to split but meet later. They want to exchange their numbers with each other before they go.... The normal way to do this is for a rather longwinded repeating of numbers to each other, or half the people manually inputting numbers before phoning/texting the other half to complete the process. All in all its a fair number of button presses to get it sorted.<br />
<br />
Instead the NEO could have a small app where the phones link up in a small peer to peer Bluetooth network and share automatically with one person initiating a request and the other detected NEOS agreeing/acknowledging the share. The initiating NEO would then sync the mini-group automatically by interrogating each phone and then sending the table of results. The NEOs would have to be clever about checking for duplicates in the address book and offering a choice to the user if there are any conflicts.<br />
<br />
PROS: <br />
*genuine saving in time for social and business situations<br />
<br />
CONS: <br />
*I am sure there are some security hassles to be pondered....<br />
*not going to be used every day... definitely not an immediate priority.....<br />
*only at geek conferences will all have a neo....<br />
<br />
==== SMS Counter ====<br />
<br />
An application which shows on the today-screen how many SMS i've already sent in this actual month. Some have for example 150 free SMS to write each month. With that program you can see all the time how many SMS are left until the end of the period. As an alternative it could be a counter which counts backwards from a predefined number over a defined period.<br />
<br />
===Profiles===<br />
{{Main|Wishlist:Profiles}}<br />
<br />
The Wishlist:Profiles page documents many possible profiles - ways to configure the phone. Including ways to respond to calls, wifi and GPS events.<br />
And how to automatically switch between them.<br />
<br />
===Text Messaging===<br />
For '''Text Input related ideas''' see [[Wishlist:Text_Input]]. Bear in mind that T9 can not be included<br />
For current development status of the messaging-app see: [[Messages]].<br />
<br />
There are many useful options that now can be used to full capacity:<br />
<br />
* '''Instant Messaging'''<br />
Bringing a new GTK gui or a resized Qt gui out for the serverless Instant Messenger http://Retroshare.sf.net<br />
<br />
* '''Acknowledge/status SMS'''<br />
In GSM networks so-called acknowledge-SMS are sent back to the SMS's dispatcher in order to indicate that the primal sms was received (as message delivery is only best effort and is not guaranteed). So in the SMS dialog there could be equal sized buttons with captions as 'send only', 'send and receive delivery status message' and 'send and notify (e.g. ring) when delivery succeeded'.<br />
<br />
** '''Special handling of status-SMS''' <br />
Related to the previous entry, these acknowledgment-sms' should be handled in a different way than normal SMS'. Most Motorola do this, while Samsung SGH series don't & clog the inbox, warn of a "new" message upon Status notification: Delivery Status Messages should be stored in a separate menu so they don't bloat the received-folder and you are able to quickly review the status of the messages you had sent.<br />
* '''SMS at time/date''' You could be able to set up messages that are sent at a certain time/date<br />
* '''Binary SMS''' Send binary SMS. Could be used to feign WAP pushes. [http://en.wikipedia.org/wiki/Multimedia_Messaging_Service] See: <br />
** Resource for SMS encoding: [http://web.archive.org/web/20021016104345/www.dreamfabric.com/sms/] [http://web.archive.org/web/20060411222332/] [http://home.student.utwente.nl/s.p.ekkebus/portfolio/resource/sms_pdu.html] [http://www.ihub.com/Binary%20Messages.htm]<br />
** [http://www.gammu.org www.gammu.org] - you can use Gammu/Gammu+ source for this software and/or understanding various SMS formats including EMS, WAP, Nokia Smart Messaging, Siemens & Alcatel encoding ([[User:Marcin|I could]] eventually help)<br />
** Resource for SMS encoding (German): http://de.wikipedia.org/wiki/SMS-Kodierung<br />
** The infamous pocketpc-attack: http://www.mulliner.org/pocketpc/<br />
* '''Profile-override-SMS''' SMS that start with a certain code word override the silent profile and have the phone ring. So someone could alert you in case of some emergency.<br />
* '''Codeword-SMS''' An expansion of the above: check for code words and allow selectable tones for matches. E.g. "Server Down!" has a loud klaxon, "Disk Warning" has a quiet chirp.<br />
* '''(De-)Abreviation-script''' Implement a script that de-abbreviates: "hi m8 u k?-sry i 4gt 2 cal u lst nyt-y dnt we go c film 2moz" becomes "Hi mate. Are you okay? I am sorry that I forgot to call you last night. Why don't we go and see a film tomorrow?" (taken from: [http://en.wikipedia.org/wiki/SMS_language])<br />
** Implement a script that abbreviates :-)<br />
* '''Anti-Spam''' ...feature for SMS. May be it's possible to port some Bayesian based application like bogofilter.<br />
* '''Rule based authorizations''' ...for received messages. For example, delete messages from one source between 9h00 and 18h00 (workday) allow them otherwise (to get alerting messages).<br />
* '''Enable chat-like SMS-viewing''' SMS-Email-like: retain SMS app, but store 'conversations' rather than pile-up. Group/archive conversations by Caller Group (Work / Friends / Home / any user-defined Caller Group). Show appropriate icon from either Caller Group or Caller ID at the source of conversations panel<br />
* '''Searching''' allow full-text search or string search.<br />
* '''Massive SMS Deletion''' based on Conversation, author, before-date-xx.xx.xxxx, caller group, [[Wishlist:Tagging|tags]]...<br />
* '''Call Back''' Prompt 'Call Back' alongside other first-line options (Delete, Save number,.. this kind of options) that appear when reading an SMS.<br />
* '''Non-destructive deletion''', deleted messages goes to trash, and are recoverable.<br />
* '''SMS-EMail-Gateway'''<br />
SMS comes in, gets forward to your inbox, like any other piece of mail. Appropriate alerts and etc occur - again, just like for email. A simple SMTPD running on 127.0.0.1 that is hooked to an email-to-SMS translator that will send email addressed to 'SMS@localhost' (or whatever special address) out via SMS<br />
* '''SMS-filter chain''', for stuff like Codeword-SMS above, Theft-mode activation, auto-response (reply with gsm-position for "Where are you?"), auto-substitution (like replace $POS with gsm-position in outgoing SMS).<br />
* '''SCROOGE-SMS''' This is an intelligent SMS router. When you write your SMS you get the option of how to send it<br />
** By standard carrier SMS - cost 10cents<br />
** By OpenMoko SCROOGE SERVER - this will send your SMS to the OpenMoko Community SCROOGE SERVER next time you have WiFi - the phone will remind you to turn on WiFi when it knows you are in places where you have WiFi access. The person you are sending to picks up when they come into WiFi Range. This comes with an intelligent reminder that tells you that message has still not been delivered in 24 hours and would you now like to send it by a paymethod. This is better than IM because both parties do not have to have WiFi at the same time. - cost FREE<br />
** By email/Wifi - cost FREE<br />
** By email/GPRS - cost ?<br />
** Too many options!!!<br />
** Alternatively SCROOGE SERVER could auto launch IM client if it detects both parties have WiFi at the same time (Status kept on SCROOGE SERVER?) to allow instant reply..... Person who receives has the option to reply in SMS or in IM or in VOIP phone.<br />
<br />
=== Text input ===<br />
{{Main|Wishlist:Text Input}}<br />
There are many good suggestions for text input on the specific text input ideas page.<br />
<br />
=== More/Custom Input Method Widgets ===<br />
{{Main|Wishlist:More/Custom_Input_Method_Widgets}}<br />
Additional and customizable Input Method Widgets (similar to virtual keyboard). <br />
This could add soft-key functionality to games or other applications such as:<br />
*D-Pads<br />
*buttons<br />
*virtual trackballs<br />
*...<br />
Personalized layouts could be associated with each application.<br />
<br />
=== Games ===<br />
{{Main|Wishlist:Games}}<br />
<br />
=== Mesh Networking ===<br />
{{Main|Wishlist:Mesh Networking}}<br />
<br />
=== Printing Support ===<br />
It would be really neat to be able to print over either bluetooth, Wifi, or USB. I can imagine wanting to print:<br />
<br />
* Notes<br />
* Maps<br />
* Email<br />
* Calendars<br />
* ...<br />
<br />
Cups contains a bluetooth printing backend, so (in theory) once you have your data in postscript format, you could hand it to cups and it'll do the rest. In practice, it depends on<br />
<br />
# GTK+'s printing support<br />
# Making cups run on a really small system<br />
<br />
{{note| GTK+'s printing support seems to be very immature in 2.6 (which we need to use for some time). Gtk+ 2.10 contains much better printing support -- once we can use this, it should be more easy.}}<br />
<br />
There's always the possibility to render postscript ourselves, but this is not a piece of cake -- in general, printing is much harder than one would imagine.<br />
<br />
Further details:<br />
* [http://groups.osdl.org/apps/group_public/download.php/2205/print-summit-gtk.pdf#search=%22gtk%2B%20printing%20API%22 osdl.org]<br />
* [http://www.gnome.org/~alexl/presentations/guadec2006-printing.pdf#search=%22gtk%2B%20printing%20API%22 gnome.org]<br />
* [http://www.j5live.com/?p=204 j5live.com]<br />
<br />
===Misc Software===<br />
====Clocks/timers/Activity meters====<br />
===== Sport tracker =====<br />
{{Main|Wishlist:Sport_tracker}}<br />
Sport tracker can be used to measure the distance/velocity from point A to point B (or it could have several intermediate stopping points) using GPS. This would be extremely useful for running, biking, hiking, etc.<br />
<br />
===== Standby clock =====<br />
{{Main|Wishlist:Standby_clock}}<br />
A quick way to see what time it is.<br />
<br />
===== Egg Timer =====<br />
{{Main|Wishlist:EggTimer}}<br />
<br />
Very simple (one click) count up / count down timers are very useful.<br />
<br />
===== Cycle Computer =====<br />
As already mentioned by [http://wiki.openmoko.org/wiki/User_talk:Technil Technil], a cycle computer could be created using gps. The sensor at the bike's wheel could transmit data via bluetooth or some cable that would be attached to an openmoko device. In order to save power, one could switch off the gps and only use the bike's sensor.<br />
* Just another idea that came to me: Why don't have sensor's transmit cable plug into the headphone/microphone plug? A tool reads the signals created by the induction of the passing magnet, then gives them to the cycle-computer-app :) --[[User:Minime|Minime]] 19:50, 12 April 2007 (CEST)<br />
<br />
===== NTP Server =====<br />
<br />
Run the [http://www.ntp.org NTP] daemon using the GPS chipset as a reference clock, so that the Neo would have a very accurate time-of-day clock and would be able to serve time to other networked devices. <br />
<br />
I don't know what it would take to implement this. Items to consider would be the availability of a 1 pulse-per-second hardware signal, the accuracy of timestamps delivered in NMEA messags, etc. Dealing with power-management issues (such as the device going to sleep) would also be challenging.<br />
<br />
===== Reality check reminder =====<br />
{{Main|Wishlist:Reality check reminder}}<br />
<br />
A tool to [http://www.phrack.org/issues.html?issue=64&id=16 hack your brain]<br />
<br />
===== Automatic timezone changing (GPS) =====<br />
<br />
Check the timezone with GPS and adapt them.<br />
<br />
====Calculators====<br />
===== A Universal Unit Converter Tool =====<br />
<br />
One never knows when one may have to convert acre-feet into deciliters. A unit conversion tool makes all engineers and engineer wannabes much happier. And not only the engineers. <br />
<br />
Ideas what kind of conversions a converter tool could do:<br />
<br />
Length<br />
- Acceleration<br />
- Angle<br />
- Angular Velocity<br />
- Area<br />
- Capacitance<br />
- Radioactivity<br />
- Currency <br />
- Charge<br />
- Computer Memory<br />
- Conductance<br />
- Density<br />
- Energy<br />
- Illumination<br />
- Power<br />
- Force <br />
- Flow<br />
- Pressure<br />
- Speed<br />
- Temperature<br />
- Time<br />
- Torque<br />
- Viscosity<br />
- Volume<br />
- Weight<br />
<br />
Roman Numerals<br />
- ASCII, Hex<br />
- Cooking<br />
- BMI<br />
- Clothing Sizes<br />
<br />
Money Converter based on current rates from Internet...<br />
e. g. Dollar <-> Euro<br />
<br />
Physical and Mathematical Constants<br />
GPS conversions <br />
<br />
- link to or integration of a scientific calculator<br />
- link to or integration of a simple calculator<br />
<br />
A good basis for such a converter tool could be the Palm program "units" from <br />
François Pessaux [http://francois.pessaux.neuf.fr/files/units1_11.tgz]. The GPL'd program comes with full documentation.<br />
<br />
For GPS conversions see gpsbabel [http://www.gpsbabel.org]<br />
<br />
===== An Postfix Notation (RPN) calculator =====<br />
<br />
Many engineers, computer scientists and other groups who have grown to enjoy the simplicity and ease of an postfix notation calculator will miss them when they give up other platforms to move to OpenMoko. A RPN calculator will increase adoption by providing one of the tools that other platforms have provided for many years.<br />
<br />
==== Windows CE Emulator ====<br />
<br />
On ARM machine, Windows CE API emulator, like Wine on x86 machines. <br />
<br />
==== PalmOS Emulator ====<br />
<br />
The Access group is probably coming out with their Linux platform any time soon. One of the components is a PalmOS emulator which I'd like to see working on OpenMoko as well. There are literally thousands of PalmOS apps.<br />
<br />
I'd like to see a Windows CE Emulator with active sync support.<br />
<br />
==== Chumby Emulator ====<br />
<br />
Would be very cool if the neo can act as a chumby. see http://chumby.com for more details about a chumby.<br />
<br />
==== TV Guide ====<br />
Display a TV guide using [http://xmltv.org xmltv].<br />
Something like [http://mtvg.sourceforge.net/ Maxemum TV-Guide] (QT)<br />
<br />
==== Alcohol meter ====<br />
Give the phone some info about your body (gender, size, weigth) and when/what you drink and it will compute an approximation of the amount of alcohol in your blood. Updates automatically, could have an alarm, when you are probably sober again.<br />
See, for example (German text) http://www.misterio-online.de/promille.htm<br />
<br />
==== Interaction with LEGO Mindstorm ====<br />
With the accelerometers, GPS and good CPU, the phone could be used to control/serve as input with robots built with LEGO Mindstorm, which can be accessed by USB and Bluetooth.<br />
<br />
==== Flashlight ====<br />
Simple finger application that makes every pixel on the entire screen white to be as bright as possible until you tap the screen again to turn it off. This way, you can use your Neo as a (short term) flashlight!<br />
<br />
==== Wii Controller Emulator ====<br />
Use the accelerometers and buttons on screen to work as a Wii controller via Bluetooth.<br />
<br />
==== FUSE support ====<br />
Ability to use FUSE to mount larger file systems over wireless. (even gmailfs, sshfs, etc.)<br />
<br />
=== Accessibility ===<br />
Accessibility features for the visually impaired.<br />
* High Contrast Themes.<br />
* Screen Magnifier. Features should include automatic cursor tracking when navigating menus and entereing text and provide manual controls to zoom in on other section of the screen.<br />
* Text to speech. The software should read out menu item ,contact lists ,text messages etc. Would also be useful for operating the phone while driving. see: [[Wishlist:Speech synthesis]]<br />
<br />
==== VOIP ====<br />
* [[Dialer]] should be able to use SIP.<br />
Ability to use the phone for VOIP over wi-fi such as Vonage. They currently have 2 different pieces of software for pc . Basically software creates a mac address which is paired with your Vonage account. Skype could also be implemented but I prefer Vonage. Only available when connected to wi-fi with a good connection. Phone treats calls the same as a cellular call, could keep a separate log of minutes, ability to record conversations, etc. Option to use VOIP if connection is available automaticly or manually. Small icon to show when call is using VOIP.<br />
* A standard SIP client would probably fit better into the "free and open" philosophy.<br />
* Ideally a SIP client that includes ZRTP/SRTP for secure communications.<br />
(Note: Vonage will not give you your SIP credentials, so you cannot log into their network with a non-approved softphone. Other VoIP providers have different policies.)<br />
<br />
''This seems very similar to what [http://en.wikipedia.org/wiki/Generic_Access_Network UMA] offers.''<br />
<br />
Asterisk is a great communication platform that can run on small devices. I have an Asterisk server running on a Nokia 770 and I read about running Asterisk on an iPhone. With the crosscompiler available it sould be possible to compile it and run Asterisk on an openmoko phone and let it take care of almost everything on the wishlist below.<br />
Edw/<br />
<br />
==== Power Meter ====<br />
If the power bar is clicked on it will show time left on charge and if charging it will show time until full.<br />
<br />
=== Accelerometer wishes ===<br />
==== Flick interface ====<br />
Ability to "flick" the phone for page up/down by simply and rapidly tilting the phone back-and-forth for up and forth-and-back for down. The same motion can be implemented for sideways motion. This will take advantage of the 2 3d accelerators.<br />
<br />
Sensitivity of the scrolling should be configurable and a test option provided.<br />
<br />
==== Reading navigation of documents enhanced by accelerometers ====<br />
If the two accelerometers in Neo1973 allows it, it will be nice if when you're reading, give a newspaper, you can move up, down, left and to the right the viewing of the document just moving the phones to the corresponding direction.<br />
<br />
I don't know if this is possible (haven't seen the project in detail yet) but this feature could be very attractive for final users (and this is good). (sorry for my english but i'm italian)<br />
<br />
==== Wand UI ====<br />
In keeping with the requests to think outside of the box... the dual 3d accelerometers should enable a 'magic wand'-style UI for certain uses. Macros could be recorded and edited, or presets could be used. For example, flipping the device playfully could initiate a game mode or could signal the end of the work day.<br />
<br />
==== Shake-to-Wake ====<br />
Giving the phone a shake enables voice commands for a few seconds.<br />
Usage Examples: <br />
<br />
* {Shake} "Call" ''ContactName'' ''PhoneType''<br />
* {Shake} "Call John Mobile" (Calls John's mobile)<br />
* {Shake} ''ApplicationName''<br />
* {Shake} "Reader" (Opens the e-book application)<br />
<br />
Would require a method of inputting voice tags for applications and contacts and obviously will only work for P2 (accelerometers)<br />
But lets get voice command functionality working before P2 (just by pressing a button on the screen instead of shaking)<br />
<br />
I think that is possibly to replace "Shake" with double hit with finger in the side of phone. Proper algorithms(with accelerometers) should recognize any similar activities.<br />
<br />
==== Emergency call ====<br />
When the accelerometer detects a great acceleration (i.e. 5G) start a countdown sequence, if it is not stopped make a call to a preconfigured emergency number. If the data from the GPS is accurate give it.<br />
<br />
A first version could use a recorded message (an audio file). In next version it could use a synthesizer, so it can give more information (add GPS information when it is ready).<br />
<br />
:I would worry that most such events would be false positives, and hard to distinguish from the real thing. A user dropping their phone (an event very common in the life of any cellphone) is far more likely than a user being in a car accident with their phone, and the clatter of a cell phone on asphalt could reach 5G. Additionally, it has to be very hard to distinguish hitting pavement from hitting a windshield, as from a physics standpoint the two are the same thing. [[User:Hashbrowncipher|Hashbrowncipher]] 02:06, 26 October 2007 (CEST)<br />
::It could use the gps data to calculate the speed it is traveling with. Let's say it has been moving for more than 50 km/h for more than 10 seconds. Then it could activate the "emergency call if more than 5g" function. Aside from the countdown timer, it could increase the volume to max and warn the user that an automatic emergency call will take place in x seconds. While it is counting down it could listen for "Never mind, I'm fine, phone" and stop the countdown in case it hears that. It could also output the warning sound to the attached bluetooth headset and let the user talk to emergency services if the user is still conscious. [[User:Tommy|Tommy]] 17:48, 8 January 2008 (CET)<br />
:::Perhaps have the phone yell loudly that it's about to do the emergency call for a decent amount of time, disabled by touching the screen or entering the pin number. In the case of any bluetooth device attached to the user, the phone could check to see if it's in range before calling. [[User:sin|sin]]<br />
<br />
==== Movement detection ====<br />
By detecting that the owner is walking a user defined profile can be activated with a specific set of notification settings. For example you may wish to use a cheap old sounding ringtone so you don't attract attention from muggers. Or you may wish to have a louder ringtone if you carry your phone in a bag where it can't be so easily heard.<br />
<br />
==== Games ====<br />
Imagine a first person shooter that you look around by turning your body.<br />
<br />
==== Sloshing battery indicator ====<br />
Shaking the phone will produce a sloshing sound, as if it contained a liquid. As the battery loses charge, so the sound produced on being shaken, will replicate a decreasingly empty container. [http://mobile.slashdot.org/article.pl?sid=07/11/28/1342248] for an example.<br />
<br />
<br />
==== Others ====<br />
Also see the pages[[Wishlist:Auto Align Map]], [[Wishlist:Determine Position]], [[Distance Measuring]], [[Wishlist:Computer Mouse]], [[Wishlist:Dynamic Screen Orientation]].<br />
<br />
=== Connectivity ===<br />
<br />
==== VNC ====<br />
A good, stylus friendly VNC client/host combo would be easy to add and terribly useful.<br />
<br />
==== Networked X-Windows ====<br />
<br />
Whether it's running true X-Windowing over the network, or your bog-standard VNC connection as mentioned above, the ability to have your phone's screen available on your laptop or palmtop would be most desirable.<br />
<br />
==== NX client ====<br />
<br />
A form of X-windows forwarding optimized for performance over slow, or high-latency links, which could prove extremely useful. Capable of streaming a good quality, full desktop session over modem speeds. The protocol and at least one implementation is gpl'd. [http://en.wikipedia.org/wiki/NX_technology wikipedia]<br />
<br />
==== OpenOffice Presenter Control ====<br />
<br />
I Think it is a good idea to control your OO Presentation with Openmoko about WLAN or Bluetooth.<br />
I think it needs some buttons to go back or forward and control the mouse to show something and take normal mouse clicks.<br />
But with the mouse clicks I think that we need a short time between the clicks in example 1 second. Because when you make a mouse <br />
click than to fast than you must go back.<br />
<br />
==== Amarok and other Media Player remote control ====<br />
<br />
Control Amarok or any other Media Player with OpenMoko (as a remote control). Bluetooth or WLAN could be used as protocol to send and receive the data. Maybe a WebInterface of Amarok is a start. Can be used on parties for a mobile music management.<br />
<br />
==== Read informations with SMS ====<br />
Send a SMS with Code to the OpenMoko (from a specific number).<br />
For example to send get the GPS coordinates from a stolen Neo (or if you don't know where your Neo is).<br />
<br />
=== Security ===<br />
<br />
==== General Filesystem Encryption ====<br />
<br />
If anyone wants to get your private data saved on your OpenMoko device, he should have to get through a high security mechanism like dm-crypt. The question is how much CPU power would be needed. <br />
Would it be an idea to encrypt only the private data like phone numbers, preferences, address book etc. (like /home/$USER).<br />
<br />
http://luks.endorphin.org<br />
<br />
==== My Account ====<br />
{{Main|My Account}}<br />
A way to securely store information about the phone, and ensure that a phone you may be considering purchasing is not stolen.<br />
<br />
==== [http://zfoneproject.com/ Zfone] or similar ====<br />
<br />
Something that allows the user to speak with another person securely.<br />
<br />
==== GSM Encryption ====<br />
<br />
This software application would allow GSM encrypted calls to be made using the GSM Data Call Channel. <br />
<br />
[[OSvS]]<br />
<br />
==== My Voice is my Passport ====<br />
Use voice recognition to unlock the phone. "Hi. My name is ... My voice is my passport. Verify me."<br />
<br />
==== Firewall ====<br />
A network firewall<br />
<br />
==== Full Mac Support ====<br />
Full mac support, preferably with full software and full sync capabilities with iCal and iMail <br />
<br />
==== Anti Theft Application ====<br />
<br />
This application would enter the phone into an [[Anti-Theft Mode]] which activates particular security features to reduce the risk of theft and also to ensure a higher probability of recovery of a stolen handset.<br />
<br />
====RFID based personal alerts====<br />
Assuming an RFID reader is available: You'd put an RFID tag on your keys, wallet, etc and train a program on the phone to give you a soft or hard alert when one of them leaves detection range. That way, if you're walking away from one of them, the phone could alert you.<br />
<br />
====OpenVPN Client====<br />
This application allows to configure the device as an OpenVPN client using the GUI including support for X.509 certificates.<br />
<br />
=== Integrated Help System ===<br />
<br />
A help system that is either on or off. It could be activated and deactivated by a [[five-second-press]] on a button, for example the AUX button. When the help system is activated, it will explain the use of any item you touch on screen (with stylus or finger). Example: if you touch the battery icon, it will explain that this shows battery level / remaining time. If you touch the date / time icon, it will explain that this icon shows date and time, and that if you press it, you can set date and time. Primarily, this help system should be able to explain all user interface elements in the main screen, but if it proves popular, it could be expanded to cover other applications as well.<br />
<br />
===Performance optimisation===<br />
==== Use DMA engine in CPU for blitter ====<br />
The DMA engine in the CPU can substantially speed up moving of large areas of screen in some cases.<br />
<br />
==== Use virtual screen to optimise scrolling ====<br />
In some other cases, the hardware supported virtual screen may also speed it up.<br />
===Reusable Display/UI Widgets===<br />
====Use BigPage for full page zoom, scroll, scale in many apps====<br />
The [[BigPageWidget]] Page decribes a widget that could bring full natural page viewing, scaling, scrolling to the OM platform - allowing all applications to make intuitive UIs. A good way to read documents of any type without reformatting them massively increases the utility of a device with a small screen<br />
<br />
==Bluetooth==<br />
<br />
=== Voice Dialing ===<br />
<br />
Dial by voice commands.<br />
<br>Dial by dictating phone number. This way we can voice dial any number even if not in our contact list.<br />
<br />
=== Music through Bluetooth Headset ===<br />
<br />
Music can be played through a Bluetooth headset, but would stop playing when a call comes in.<br />
<br />
=== Walkie Talkie ===<br />
<br />
Let OpenMoko devices connect to one another via bluetooth or another connection method (GPRS for long distance but high latency, probably Wifi on P2), and hold a conversation.<br />
<br />
Features for this applications can be:<br />
* Push To Talk (PTT) button<br />
* Voice Activated Control (VAC) which will set it in transmit mode when input has is detected above a certain predefined level.<br />
* Optionally a full duplex mode<br />
* Different channels to choose from<br />
* Monitor different (preselected or all) channels for traffic.<br />
* Content encryption<br />
* Active noise control<br />
* Allow zero config use (units can talk without any access point helping)<br />
* Overview of all connected people trough sending GPS data to everyone who is in the Walkie Talkie channel<br />
<br />
Local (non-GPRS) use cases include chatting while biking<br />
or motorcycling in a group; perhaps also in a car caravan.<br />
This application could also be used as a baby-phone to monitor your siblings.<br />
<br />
This would be more useful if the Neo had Class 1 bluetooth, though probable Wifi on P2 will also offer more range.<br />
<br />
(One thumbs up from me) Jackcday<br />
<br />
=== Automatic Sync ===<br />
<br />
Automatically synchronize with desktop computer (or with any [http://en.wikipedia.org/wiki/SyncML SyncML] server) when within range based on user profile. This may require the use of a secure data transfer.<br />
<br />
=== GPS Assisted Bluetooth Management ===<br />
<br />
Allow Bluetooth to automatically turn off after loosing connectivity and to automatically turn back on based upon GPS location.<br />
<br />
A Bluetooth device is configured for automatic reacquisition based on the following profiles:<br />
* Manual - only when Bluetooth is on<br />
* Non-mobile - the target device is not mobile, periodically attempt reacquisition when in the general area of the device.<br />
* Mobile - the target device is mobile, periodically attempt reacquisition when in the general area of the device.<br />
<br />
Each target device is configured as follows:<br />
* Automatic acquisition at last known location: enable/disable<br />
* Automatic acquisition at these locations: list of nickname + coordinates + range<br />
<br />
==== Non-mobile devices ====<br />
<br />
Examples devices include: computers<br />
<br />
The location and range of the target device is determined via training. Periodically, the current GPS coordinates and Bluetooth signal strength are logged. Additionally, connectivity loss events are logged. An algorithm uses these logs to determine the device location and range.<br />
<br />
Connection attempts are made when in a configurable proximity to the device. The first attempt when entering the proximity and further attempts at a configurable interval.<br />
<br />
==== Mobile devices ====<br />
<br />
Example devices include: automobiles<br />
<br />
Mobile devices are configured to have two types of locations:<br />
# Last known location<br />
# Non-mobile locations (homes)<br />
<br />
===== Last known location =====<br />
<br />
A car is mobile, ideally, when you leave your car, the phone should note the car's location when connectivity is lost and then attempt to reacquire the car when you return to the location of the car.<br />
<br />
===== Non-mobile locations (homes) =====<br />
<br />
As mobile devices may have multiple users, it is not sufficient to always use the last known location. In this case, the device may additionally have multiple homes. For example, a car might have as its homes: home garage and work parking lot.<br />
<br />
=== Bluetooth neighbor detection and multiuser apps ===<br />
<br />
Like the [http://en.wikipedia.org/wiki/One_laptop_per_child one laptop per child] (OLPC) interface, keep a number in the status bar that represents a count of other openmoko or compatible bluetooth devices in the area. Allow for the spontaneous initiation of a chatroom or multiplayer game or file trading with any moko in the area.<br />
<br />
=== Bluetooth environment detection ===<br />
<br />
Capability to detect when a predetermined bt device enters/leaves bt range and launch a system-wide event accordingly. This would feed not only the "Neighbour detection" idea described above, but also the "Profiles", "Context based TO-DO list" and "Location-based reminders" ideas. Reminders could be set to trigger in the presence of a specific person X (with BT device Y). Profiles can take into account which devices are present around the phone (car kit, for ex.). To-do list could also change according to present devices.<br />
<br />
=== Remote control ===<br />
<br />
==== Wireless presenter ====<br />
Use the phone to run your OpenOffice.org Impress presentation remotely using Bluetooth. Cool features: <br />
* Display the text notes for the presenter on the phone's display and update it whenever the slide is changing.<br />
** OO.org has implemented support for [http://www.openoffice.org/issues/show_bug.cgi?id=12719 dual monitor]/[http://www.openoffice.org/issues/show_bug.cgi?id=18486 presenter mode] that can be used as a starting point<br />
* A small timer showing the time passed (and perhaps remaining if the presentation app supports such a feature). <br />
* If you want to be super-cool, you give a preview of the notes of the next slide in the show. <br />
* At the end of a presentation, a "navigator" could allow to easily jump to any slide in the presentation by clicking on it on the phone.<br />
** When you right-click in a running OO.org Impress presentation, you can choose "got o slide..." and select any slide to jump to.<br />
<br />
==== Initiated from another device ====<br />
Remote control over Bluetooth from other devices to control media player (play, pause, next, previous, volume control), camera (capture image), etc.<br />
==== Directed at another device ====<br />
Remote control over Bluetooth to other devices to control media player, lights in your house, etc.<br />
<br />
[http://mjr.iki.fi/software/remote-0.9.0.tar.gz Remote] is my draft of a python-based remote control app that allows you to define button sets and commands to run on the local or a remote host (through ssh, for instance). Error handling and command interface need work.--[[User:Mjr|Mjr]] 11:14, 18 October 2007 (CEST)<br />
<br />
Z-wave uses web-browser control of devices that is said to be compatible with mobile phone browsers so should work with openmoko browser. [http://www.z-wave.com www.z-wave.com]<br />
<br />
=== Bluetooth Car Connection ===<br />
<br />
Have a deeper connection to the car than just handsfree speakerphone. For instance a transceiver with challenge/response systems to open, possibly even start the car. Possibly go as far as OBD connection to monitor car status on screen/log for later.<br />
<br />
Could be done with a port of [https://garage.maemo.org/projects/carman/ Carman] or similar that can connect to an OBD2 adapter via USB or Bluetooth and display various information collect from the car, GPS, and accelerometers. --[http://wiki.openmoko.org/wiki/User:Bmk789 bmk789]<br />
<br />
==== Dude, Where's My Car? ====<br />
<br />
When in range of the car navigation system, remember the position (perhaps check with the car GPS). When not in range, assumme that you are not in the car, and offer the opportunity to navigate to the car's last known position. That way, you can find your car e.g. on a large parking lot.<br />
<br />
=== [[Bluetooth powered Multi-SIM support]] ===<br />
<br />
As the Neo1971 does not come with dual-SIM support this could be solved by joining your old bluetooth-enabled mobile to your OpenMoko-phone.<br />
<br />
Let SIM card A be in your OpenMoko-phone and SIM card B in your old mobile:<br />
* Incoming call on SIM card B - the OpenMoko-phone acts as a headset(Bluetooth Headset profile)<br />
* Calling out via SIM card B - the OpenMoko-phone acts again as a headset<br />
* Same for Short Messages/MMS/Internet<br />
This way you'd have your old phone switched silent and connected to your OpenMoko-phone that handles all the calls and one can select which SIM card to use.<br />
Advantage: No 'switching' between cards<br />
Disadvantage: Second mobile needs to be in range(e.g. handbag) and charged every once in a while.<br />
<br />
===Internet Gateway===<br />
<br />
If the device could function as a Bluetooth router/gateway to the internet via the GPRS/data connector, then you could use it to get network connectivity from your laptop and other devices while on the road. Many smartphones can be configured as modems via Bluetooth for use as Dial-Up Networking connectors, and that should be the minimum target. Ideally, if the WiFi functionality was used so the OpenMoko could be an 802.11 router or peer to peer gateway for a laptop, this would be even better. The full bandwidth of GPRS or whatever network is available would then be available.<br />
<br />
=== Social Networking ===<br />
<br />
Anybody running the social networking app will be broadcasting a profile, and when certain keywords are matched with other users who are also running the application, an alert is sounded. Each mokoid can be added as a hexstring to a profile page, and xml filters can be developed for each social service to convert various keywords and interests to moko-friendly format.<br />
<br />
=== Give userspace api control over bluetooth signal strength ===<br />
<br />
I have tried bluetooth handsfree sets with other phones and don't get perfect reception due to low signal strength. I suppose the reason the signal is so weak is because the manufacturer wants the battery to last long on its latest charge. Can you please make the strength setting configurable by the user of the phone through an api and perhaps even through the phones gui? I would gladly waste some battery time in exchange for stronger bluetooth signal strength.<br />
<br />
<br />
== WiFi ==<br />
<br />
=== Industrial grade Wifi management ===<br />
One annoyance I've had with Wifi enabled gadgets is that they simply keep the connections in a dumb list. What I'd like to see is more granular connection management, which enables me to specify whether a given connection is friend & family (mom's place), professional client (joe's copies and coffee), commercially available (panera), onetime use, or anything else, as well as managing router config backups, firmware images, and security keys. <br />
=== Captive portal auto-login support ===<br />
Having a nice front-end to some sort of script that checks the authenticity of a captive portal login page (SSL cert), then passes your username and password login information to automatically log you into your account would be very nice as well. This can be done with curl, but it is difficult to make it work on all captive portals out there. Perhaps just a field that you can specify "once I am connected to this AP, run this script: ".<br />
<br />
== Wireless Piggyback ==<br />
<br />
HSDPA support and the like, so that users can connect directly with the internet with G3/G4 mobile service providers at speeds at or above 3.6 Mb/s.<br />
<br />
== Other ==<br />
<br />
=== Auto Update ===<br />
<br />
A small tool which is configurable to download the latest OpenMoko and OpenMoko related software. Maybe if any internet connection is available or a minimum of bandwith is available then the auto update would download only security related or the whole system etc. .<br />
<br />
=== Vibrate Pattern Recorder ===<br />
<br />
An application that would allow the user to define their own vibration patterns, and possibly link them to audio files. Recording would be done in real time initiated with a "Record" button, optionally playing the associated sound file in sync with recording). While recording, the user would press and hold a button to define the timing and duration of vibration. The user would press "Stop" when finished. Vibration patterns would have the option of being looped(would terminate at some global ringtone length maximum).<br />
<br />
One simple suggested vibration file format would be a sort of run-length encoding: First byte defines the length of a "time-slice" in milliseconds, which would determine the overall tempo(actually the inverse of tempo). The next byte would define the number of time-slices to leave the vibration on, and then another byte for how long to pause after. Continue alternating these on/off bytes until the entire pattern is defined.<br />
<br />
- or just use MIDI, using a separate channel for the vibrator.<br />
<br />
An implementation of RTTL could also be used to define vibration patterns.<br />
<br />
=== PC Input Device ===<br />
<br />
Provide a method to use the touchscreen as input device for a nearby desktop machine. Could connect over USB or bluetooth.<br />
<br />
Could emulate a pointer device (mouse) or even keyboard using standard bluetooth/USB interfaces for such a device.<br />
<br />
Use case: Alice is lazing on a couch and doesn't want to get up to do some minor interaction with the computer. She can see the screen and uses the OpenMoko device as a mouse and/or keyboard to interact with the computer.<br />
<br />
=== Advanced Notification And Ringtone Manager ===<br />
{{Main|Wishlist-ANARM}}<br />
<br />
ANARM would be an application for handling all event-based audible notifications from an OpenMoko device.<br />
<br />
=== Location based reminders ===<br />
{{Main|Wishlist:Location_based_reminders}}<br />
Location based reminders can be used to notify users of various events or reminders that are location based.<br />
<br />
=== Synergy Client ===<br />
A synergy client would enable the user to place the device next to a desktop PC and share the desktop`s mouse, keyboard and clipboard over a TCP/IP network. [http://synergy2.sourceforge.net/ Synergy]<br />
<br />
=== Next device ===<br />
List features for your fantasy device to come from FIC (or anyone else, for that matter). Define the GTA03 here ;-)<br />
<br />
==== There is no device ====<br />
From [http://wurp.blogspot.com/2008/01/teh-future.html Wurp's blog]:<br />
<br />
Clearly the Next Big Thing has to be for the device to go away altogether. I know the basic idea for wearables has been around forever, but it seems to me that the time has come.<br />
<br />
I wanna wear a bluetooth earpiece and cool shades, possibly with [ here's where my imagination is failing me :-( ] gloves, or fingerless gloves, or (ew) wristbands, and let any surface, including my hand, or no surface, be my interface. Tap the earpiece when you get a phone call, see a dial pad on your palm and tap out the number with the other hand, watch movies on a giant screen hovering in the air...<br />
<br />
(equipment list: bluetooth earpiece, some brick in my pocket or on my belt, glasses w/ minute camera, painted video display, & variable darkness lenses, and gloves)<br />
<br />
Why the hell do I want to dig out a device every time I want mindless entertainment or superficial conversation?<br />
<br />
Ideally, you could then sell any little doohickey with whatever interface you want (switches, knobs, g-spots, ...) and all it needs to do is network with some software on the brick to be anything at all...<br />
<br />
== GPS Software ==<br />
*Providing GPS Support also for outdoor users in addition to ordinary street navigation features<br />
** Overlay of satellite images with existing streetmaps<br />
** Incorporating SRTM digital elevation model: for example using the VRML/X3D as data format (see http://www.ai.sri.com/geovrml/) which is interesting for e.g. mountaineering: using a 3d browser rendering VRML/X3D Model, displaying the current position and track (possibly also other gps-tracks of the different routes to a summit downloaded before could be mapped onto the 3d model), (what about 3d hardware support? there is nothing written in the hardware specs about graphics: thinking of OpenGL for embedded systems (see http://www.khronos.org/opengles/)<br />
** Using sth like a tracking mode to allow certain people to determine the current position and track (for rescue missions - like they have for example at http://www.steiger-stiftung.de (a German beneficence for rescue issues) There you can register your mobile phone so the rescue service is able to track you immediately if necessary. The interesting thing: It seems like some mobile phones with GPS have special support for this issue. If your phone is registered, the rescue service is able to get your GPS coordinates directly from the phone without any user assistance. Openmoko should also support this! )<br />
* Implementation of 3dTracking's (http://free.3dtracking.net/) tracking software or equivalent.<br />
* "Geomark" function: if you have to save the current time with your current location, only hit one button...<br />
** You also should be able to navigate with a small "compass" and the distance should be displayed to your saved point (maybe where you parked your car on a big car parking area)...<br />
* '''Measure the distance between two points (air line or walked way) -> no need for a tape measure'''<br />
**I think it would be good if you could either use Bluetooth, GPRS or AdHoc Wifi, and see near Neo1972 on the GPS map so you could see where your friends are, e.g "You want to know if you friend is on the bus behind" You would need a strong wifi and GPRS would be too expensive.<br />
*A bicycle sat-nav would be cool, speciayl designed for bicycles, e.g. cycle routes<br />
<br />
<br>[[Community Based Traffic Information]]<br />
<br />
== Hardware ==<br />
{{Main|Wish List - Hardware}}<br />
<br />
It could be use for beepway Online service too <br />
[http://www.beepway.com]<br />
<br />
=== Dedicated Power / Charger Pinout ===<br />
<br />
Having not yet seen a physical Neo device, I haven't been able to examine any of the IOs to see if there already is a dedicated power / charger input. However, I can imagine that it might be very tempting to have the device charge solely via USB. For any device that is capable of USB-host, that is a '''horrible''' idea.<br />
<br />
Since the device is able to run in USB host mode, it might be a good idea to allow for an alternate power supply, if say, a USB keyboard was being used for several hours. Rather than drain the battery, one could just supply power via the wall outlet while still providing endless hours of USB-host enjoyment for those hard-coders on the go.<br />
<br />
The main question is just deciding on where to take power from if in USB-client mode and the power cable is inserted, but really, that's not too big of a deal and can be solved with very minimal circuitry.<br />
<br />
This might sound extraneous at first, but when the device shuts down in the middle of an important USB file transfer, or right before that great piece of code was saved, you can bet that those users will be saying "Hmm... a separate power adapter would have really come in handy right now". <br />
<br />
I suggest a tiny 3mm, dedicated +5V power input (something a la Nokia).<br />
<br />
=== Tactile feedback via buzzer ===<br />
Assuming the hardware has a vibrator/buzzer for silent calls, use a lightly pulsed version of that to simulate tactile feedback when dragging finger across buttons on-screen. Implemented properly, it would almost feel as if the buttons were real.<br />
: 25 ms bump on the buzzer feels about right. Does this harm the vibrator motor? --[[User:Sagacis|Sagacis]] 05:15, 2 October 2007 (CEST)<br />
:: Created a patch to do this [[User:Sagacis/ForceFeedback]] --[[User:Sagacis|Sagacis]] 05:05, 3 October 2007 (CEST)<br />
<br />
=== Detachable keyboard ===<br />
Hardware keyboard that can be attached with magnets to a future version of the Neo.<br />
<br />
A bluetooth mini-qwerty keyboard that straps to my wrist!<br />
<br />
: A BT keyboard would be nice, but do you need openmoko to provide it? [[http://www.intomobile.com/2007/11/07/targus-bluetooth-mobile-tumbpad-when-the-tiny-keyboard-on-your-smartphone-just-doesnt-cut-it.html Targus bluetooth keyboard]]<br />
<br />
=== SD Card Slot ===<br />
I think the Neo1973 should have a normal SD card slot as the micro is too small, and the SDs have more space. [unknown author]<br />
<br />
SD Cards now support 32GB. Their storage density will always be multiples ahead of microSD (now at only 2GB). An SD Card slot will:<br />
* Provide enough storage to '''turn an OpenMoko into a music (MP3) jukebox''' large enough for entire music collections, like an iPod with Bluetooth for the car.<br />
* Enable '''storage''' of:<br />
** podcasts, full-length movies, or large photo collections<br />
** photo and video from an on-board high-res camera<br />
** entire email database at your fingertips, even in poor phone signal areas<br />
** more detailed maps and charts<br />
** encrypted work databases that are not available online<br />
* Have easy '''external access''', without requiring battery removal like the microSD card<br />
* Support '''SDIO''' accessories<br />
* Enable '''transfer''' of data from an external camera's full SD memory to:<br />
** a portable USB hard drive, offsetting the need to travel with a notebook PC<br />
** the internet, via wifi or phone network<br />
* Enable editing of videos and photos obtained from external cameras<br />
<br />
Without an easily accessible higher storage SD Card slot, many users will soon be playing the juggling game of which data to delete from the much smaller and harder to swap microSD card. This is especially true for OpenMoko users, who are more likely to be power users than is the average mobile phone carrying population. Why carry an OpenMoko and an iPod, when you can simply add an SD Card slot?<br />
--[[User:Pedro|Pedro]] 20:06, 17 March 2008 (CET)<br />
<br />
: This is not true. Now you can find 2GB micros at the price of 20-30 euros. Too small for what?? --[[User:V0n0|V0n0]] 22:06, 28 December 2007 (CET)<br />
<br />
: Think of putting a few '''movies''' on that SD memory card. It could really help if it was a little bigger (8GB, 16GB, 32GB). Also think of going '''offline''' for 1-2 weeks, far away from any computer you can access and then wanting to listen to some music. What you get in turn with a 2 GB memory slot is the same music over and over. Or you have to switch memory a cards a lot.<br />
<br />
: This situation is far more common than one would think: going in the mountains, going offshore (on a cruise ship). Or simply you may want to store many types of music, and '''share''' your device with friends. --[[User:Bogdanbiv|Bogdanbiv]] 13:47, 10 January 2008 (EEST)<br />
<br />
: Well, it can be micro SD, but why to put it so deep inside, under the battery and even under the SIM card? I would suggest to have a simple slot on the side where we could insert/remove the SD card equally easily as we swap CD's in computer. [[User:AudriusA|AudriusA]] 16:36, 12 January 2008 (CET)<br />
<br />
[[User:Cfriedt|Cfriedt]] 12:40, 24 February 2008 (CET) -- I completely agree with a more accessible SD card slot. It should be made external for quick removal / insertion. I realize that would mean program data shouldn't reside on the SD, but really 256 MB of on-board flash is plenty. Mirco or normally-sized, a regular-sized SD is still trivial to implement in terms of solder pads and traces.<br />
<br />
: Sorry, but this looks like useless chat. Micro-SD cards are perfect for mobile devices as they don't get too much space on the pcb. Also, we can find micro-sd up to 8gb, if you want more space just wait a while and they'll produce a bigger one in a few months :-p. Really, almost every single phone that has a sd slot has in its micro version, why would we need a full-sized, huge normal sd slot ? It gets too much space on the pcb it's not only about sw configuration or pin soldering, it's more regarding pcb layout.<br />
<br />
: What about something like this adapter[http://linitx.com/viewproduct.php?prodid=11922]? Is there any place in the case left to put this into? Nevertheless there is a 12GB microSD card announced from SanDisk and a 8GB card costs about 40€ or 15€ for 4GB. (But a 8GB SD card costs only about 25€) --[[user:kelvan|Kelvan]]<br />
<br />
=== IR port ===<br />
Remote control applications<br />
<br />
Would be great to use openmoko as a Harmony remote controller.<br />
<br />
:I'd like to add that i fully support this. An IR port on future openmoko devices capable of controlling set-top boxes like TV/DVD/Stereo is necessary to make the device as universal as possible. A cellphone should be your window to the world and allow you to interact with it in as many ways as possible.<br />
<br />
:Care must be taken to use the correct type of IR chipset/controller in the phone. Most IR ports you find on devices like computers, some cellphones etc. Are for high speed data communication and CAN'T control TVs/DVDplayers/Stereos etc.<br />
<br />
:In order to reduce cost it maybe possible to use the sound chipset in the phone to generate the waveform sent to the IR led. IR remotes work at ~38Khz which is within the range of the sound chipset. The sound output could be internally switched between the IR led or the speakers.<br />
<br />
[[Category:User]]<br />
[[Category:Ideas| ]]</div>Abraxahttp://wiki.openmoko.org/wiki/User:CoolcatUser:Coolcat2008-02-29T00:34:15Z<p>Abraxa: Forgot my name, oops.</p>
<hr />
<div>You updated the wiki's main page with a rendition of a GTA02 - I'm curious as of the source of said image. Can you give details about that? Several people (me included) are wondering about the entirely black case and whether that'll be the one seen on the mass market release.<br />
Best wishes<br />
<br />
[[User:Abraxa|Abraxa]] 01:34, 29 February 2008 (CET)</div>Abraxahttp://wiki.openmoko.org/wiki/User:CoolcatUser:Coolcat2008-02-29T00:33:04Z<p>Abraxa: GTA02 image question</p>
<hr />
<div>You updated the wiki's main page with a rendition of a GTA02 - I'm curious as of the source of said image. Can you give details about that? Several people (me included) are wondering about the entirely black case and whether that'll be the one seen on the mass market release.<br />
Best wishes</div>Abraxahttp://wiki.openmoko.org/wiki/Talk:OpenMoko_Local_Groups:_FrankfurtTalk:OpenMoko Local Groups: Frankfurt2008-01-30T18:01:27Z<p>Abraxa: Neues Treffen reloaded</p>
<hr />
<div>Ein neues Treffen ist geplant, und zwar am Montag, den 11.02. um 1700h vor der Cantina Mescal in der Schweizer Strasse (FFM, logischerweise :). Von dort aus werden wir uns eventuell an einen etwas ruhigeren Ort begeben. Mickey und Abraxa werden da sein - es ist jeder eingeladen, der kommen moechte.</div>Abraxahttp://wiki.openmoko.org/wiki/Debug_Board_v2Debug Board v22007-11-25T13:44:01Z<p>Abraxa: Typos fixed</p>
<hr />
<div>The [[Debug Board | Debug Board page]] provides information on the architecture of the second version of the [[Debug Board | Neo1973 debug board]].<br />
<br />
[[Image:Debugboard v2 diagram.png|left|500px|Architecture Diagram]]<br />
<br />
[[Image:Neo1973 debugboard v2 top annotated.jpg|left|500px|Annotated PCB Photograph]]<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
== Overview ==<br />
<br />
The [[Debug Board | debug board]] provides these key components.<br />
<br />
* [[Debug Board#USB Hub | USB Hub]]<br />
* [[Debug Board#JTAG using FT2232 | JTAG using FT2232]]<br />
* [[Debug Board#Serial Port | Serial Port]]<br />
<br />
=== Schematics ===<br />
<br />
The Schematics of this board can be found at http://people.openmoko.org/laforge/doc/hardware/neo1973_debug_board/neo1973_debugboard_v2_schematics.pdf<br />
<br />
=== USB Hub ===<br />
<br />
This bus-powered hub <br />
* attaches to the laptop using its upstream port<br />
* attaches to the FT2232D for JTAG and serial console on downstream port 1<br />
* attaches to a free USB-A connector using downstream port 2<br />
* attaches to the phone using downstream port 3<br />
<br />
Using the hub, you can have access to the phone, JTAG and serial simultaneously, through a single USB cable.<br />
<br />
You can actually even charge the phone (100mA slow charge) using that downstream port.<br />
<br />
For the USB hub we use the TUSB2046B chip.<br />
<br />
=== JTAG using FT2232 ===<br />
<br />
Basically, we integrate a USB-JTAG adaptor similar to the [Amontec JTAGkey-tiny]. The actual reference design that we used (Thanks to Joern!) can be found at http://www.oocdlink.com<br />
<br />
This provides us full JTAG debugging, at about 150times the speed of the [[wiggler]]<br />
<br />
The actual JTAG port is connected with<br />
* the phone (via debug flex cable)<br />
* A separate 20-pin header using standard ARM-JTAG pinout<br />
** this allows the user to use this device as JTAG adaptor even for other arm-based devices<br />
<br />
=== Serial Port ===<br />
<br />
Instead of replicating a true RS232 port, we wanted to use a USB serial converter chip,<br />
such as the FT232 or the PL2303. <br />
<br />
As it turns out, we can even use the second port of the FT2232 simultaneously with the JTAG. So no extra FT232 or PL2303 is required.<br />
<br />
==== Tri-State Serial Port ====<br />
<br />
The serial port needs a tri-state driver, since it is both connected to the GSM modem AND to the debug board. We drive the tri-state driver by an inverted GSM_EN signal (pin 7 on FPC connector).<br />
<br />
== Usage Instructions ==<br />
<br />
=== Preconditions ===<br />
<br />
==== FT2232D EEPROM ====<br />
<br />
Your Debug Board contains a small serial EEPROM which should be flashed correctly during production. However, some boards have received incorrect/incomplete programming during production and thus you should verify this.<br />
<br />
If the board shows up as USB ID 1457:5118, then everything is correct.<br />
<br />
Only if your board shows up as USB ID 0403:6010, then you will need to flash the board!<br />
<br />
===== Flashing with Linux =====<br />
<br />
{{note|FIC has done that for you, in case you have officially been supplied with the board. However, if you are one of the early adopters, the configuration and USB vendorID / productID might have not yet been set correctly.}}<br />
<br />
In order to do so, you can use the ftdi_eeprom program from <br />
http://www.intra2net.com/de/produkte/opensource/ftdi/. Unfortunately, the latest version (0.2) doesn't yet contain support for our FT2232D, so you need the patch from http://people.openmoko.org/laforge/misc/debug_board_v2/ftdi_eeprom/ftdi_eeprom-0.2-moko.patch<br />
<br />
You may also need to apply the following patch to libftdi:<br />
http://people.openmoko.org/werner/libftdi-c56-strings-dirty-hack.patch<br />
(See http://bugzilla.openmoko.org/cgi-bin/bugzilla/show_bug.cgi?id=321 for additional details.)<br />
<br />
Furthermore, you will need the EEPROM config:<br />
http://people.openmoko.org/laforge/misc/debug_board_v2/ftdi_eeprom/neo1973_debug_board_v2.ftdi<br />
<br />
Once you have compiled ftdi_eeprom, you can run<br />
ftdi_eeprom --flash-eeprom neo1973_debug_board_v2.ftdi<br />
<br />
{{warning|Make sure you don't have any other FTDI FT232 / FT2232 based devices attached to the USB while running ftdi_eeprom. It might be wise to disconnect everything but the debug board}}<br />
<br />
You should get something like the following printout if everything was successful:<br />
<pre><br />
FTDI eeprom generator v0.2<br />
(c) Intra2net AG <opensource@intra2net.com><br />
FTDI init: 0<br />
Unable to find FTDI devices under given vendor/product id: 0x1457/0x5118<br />
Retrying with default FTDI id.<br />
Used eeprom space: 102 bytes<br />
FTDI write eeprom: 0<br />
Writing to file: neo1973_debug_board_v2.eeprom<br />
FTDI close: 0<br />
</pre><br />
<br />
Once the flashing has finished, just disconnect and reconnect, and you should see<br />
<pre><br />
$ lsusb -v -d 0x1457: <br />
Bus 005 Device 009: ID 1457:5118<br />
Device Descriptor:<br />
bLength 18<br />
bDescriptorType 1<br />
bcdUSB 2.00<br />
bDeviceClass 0 (Defined at Interface level)<br />
bDeviceSubClass 0 <br />
bDeviceProtocol 0 <br />
bMaxPacketSize0 8<br />
idVendor 0x1457 <br />
idProduct 0x5118 <br />
bcdDevice 5.00<br />
iManufacturer 1 OpenMoko<br />
iProduct 2 Debug Board for Neo1973<br />
iSerial 0 <br />
bNumConfigurations 1<br />
[...]<br />
</pre><br />
<br />
===== Flashing with Windows =====<br />
{{note|FIC has done that for you, in case you have officially been supplied with the board. However, if you are one of the early adopters, the configuration and USB vendorID / productID might have not yet been set correctly.}}<br />
<br />
In order to do so, you can use the FTDI Mprog program from http://www.ftdichip.com/Resources/Utilities/MProg3.0_Setup.exe<br />
<br />
You will need<br />
* The EEPROM Template http://people.openmoko.org/laforge/misc/debug_board_v2/mprog_template/neo1973_debugboard_v2.ept<br />
<br />
==== Drivers ====<br />
<br />
===== Linux =====<br />
<br />
Please make sure you have libftdi-0.8 or later. Earlier versions are known to cause problems<br />
<br />
Furthermore, you will need to do the following:<br />
<br />
====== ftdi_sio module option ======<br />
<br />
rmmod ftdi_sio<br />
modprobe ftdi_sio vendor=0x1457 product=0x5118<br />
<br />
or the equivalent in your modules.conf<br />
<br />
====== udev rule ======<br />
<br />
Please install the rules from http://people.openmoko.org/laforge/misc/debug_board_v2/udev_rules/<br />
<br />
===== Windows =====<br />
<br />
Please use the driver from http://people.openmoko.org/laforge/misc/debug_board_v2/windows_drivers/<br />
<br />
=== Hardware connection ===<br />
<br />
* [[Connecting Neo1973 with Debug Board v2]]<br />
* Connect your favorite embedded project to the Debug Board v2:<br />
<br />
==== Pinouts ====<br />
<br />
* J1 - is a regular 20 pin ARM JTAG at 3.3V level with 5V tolerance<br />
<br />
* J10 - is a 3.3V serial connected to portB of the FTDI2232D<br />
<pre><br />
pin name<br />
1 TXD<br />
2 RXD<br />
3 RTS<br />
4 CTS<br />
5 DSR<br />
6 DTR<br />
7 DCD<br />
8 RI<br />
9 GND<br />
10 VCC (3.3V)<br />
</pre><br />
<br />
=== Actually using it ===<br />
<br />
==== On Linux ====<br />
<br />
===== Serial Port =====<br />
<br />
The Linux kernel of your host system will create a virtual serial device called '''/dev/ttyUSBx''' where 'x' is a sequentially assigned number. If you don't have any other USB serial converters attached to your machine, the device name will be '''/dev/ttyUSB0'''.<br />
<br />
You can use your favourite terminal emualtor (minicom, cu, zc, ...) just like for any other/real serial port. You may use gdb as well (eg. target remote /dev/ttya).<br />
<br />
bdb - My experience with the debug board shipped with GTA01B (v3??) was that the serial port eventually came out as /dev/ttyUSB1. I assume ttyUSB0 was the jtag. I also couldn't get the serial to work at all until after I had fired up openocd to take over the jtag. (Which disappears ttyUSB0) That could have been coincidence of course... I had also removed all flow control on the serial port settings - maybe that was the key. PS - 115200 baud.<br />
<br />
===== JTAG =====<br />
<br />
Once you have installed libftdi >= 0.8 and configured [[OpenOCD]] with the correct openocd.cfg from [[OpenOCD#openocd.cfg]], it should work just fine.<br />
<br />
Please see [[OpenOCD#OpenOCD_and_Debug_Board]] for some more information.<br />
<br />
== History ==<br />
<br />
We previously had [[Neo1973 Debug Board v1]] (inherited from some weird engineers who must have seen Brazil too often).<br />
Version 1 was never shipped to phase-0 or phase-1, and not sold to anyone.<br />
<br />
=== Changes from v1 to v2 ===<br />
<br />
* get rid of ethernet<br />
** we don't need it, and<br />
** we especially don't want a 40pin parallel 66MHz bus going between two pcb's<br />
* get rid of 7-segment LED displays<br />
** not really needed. We have a serial port<br />
** could be replaced by one or two GPIO LEDs<br />
* get rid of built-in [[wiggler]]<br />
** nobody has a parallel port on the laptop these days<br />
* get rid of li-ion battery (including charger)<br />
** the device can be fully usb powered by the laptop<br />
<br />
<span id="bottom"></span><br />
{{Languages|Debug_Board}}<br />
<br />
[[Category:Neo1973 Hardware Debugging]]</div>Abraxahttp://wiki.openmoko.org/wiki/Talk:OpenMoko_Local_Groups:_FrankfurtTalk:OpenMoko Local Groups: Frankfurt2007-11-18T14:10:20Z<p>Abraxa: Neues Treffen</p>
<hr />
<div>Ein neues Treffen ist geplant, und zwar am Freitag den 23. 11. um 1700h vor der Cantina Mescal in der Schweizer Strasse. Von dort aus werden wir uns an einen etwas ruhigeren Ort begeben. Mickey und Abraxa werden da sein - es ist jeder eingeladen, der kommen moechte.</div>Abraxahttp://wiki.openmoko.org/wiki/Nand_eraseNand erase2007-11-11T14:14:58Z<p>Abraxa: Added "nand erase" warning</p>
<hr />
<div>To make a NAND erase, you need to connect to your device while in uboot using minicom or cu. The device will usually be called /dev/ttyACM0. You might need to <br />
<br />
sudo chown uucp.uucp /dev/ttyACM0<br />
<br />
to get the necessary right (even as root). Using cu, you can then access the Neo:<br />
<br />
cu -l /dev/ttyACM0<br />
<br />
After connecting, you should get a prompt where you can tell u-boot to clean certain parts of the NAND memory.<br />
Before you hit enter on one of the following commands, make sure that you are *not* issuing a plain "nand erase" command - always make sure you tell it which partition to erase. If you forget this you'll brick the Neo and you'll need a debug board to recover it.<br />
<br />
nand erase clean rootfs<br />
nand erase clean kernel<br />
<br />
To exit cu you need to type:<br />
<br />
~.</div>Abraxahttp://wiki.openmoko.org/wiki/Video_PlayerVideo Player2007-11-10T14:40:21Z<p>Abraxa: Make sure we don't switch tty3 to QVGA as that would affect X</p>
<hr />
<div>Not a proper 'app' page, just an overview of my understanding. --[[User:Speedevil|Speedevil]] 17:39, 16 February 2007 (CET)<br />
<br />
----<br />
<br />
Video is problematic.<br />
<br />
On the minus side.<br />
*The CPU is certainly not fast enough to decode 480*640 video.<br />
*The display is portrait, which means that an additional rotation step is needed for most landscape video, adding to CPU usage.<br />
*Downloading an arbitrary video, and playing it without transcoding it, then playing it later will not be possible.<br />
However.<br />
<br />
On the positive side.<br />
*The LCD can be switched to a 240*320 stretch mode, which is much less taxing.<br />
*Re-encoding video to rotate it, and scale to 320*240, and encoding with a low CPU use codec such as MPEG-1 may well make half-screen doubled videos playable at 25fps.<br />
*If not, then it almost certainly will be possible at 12fps.<br />
*Playing most very small - postage stamp - videos as are sent by many phones should be possible.<br />
*1G of storage should give several hours of mpeg4 video, as the quality can be reduced somewhat without being visible on the screen.<br />
<br />
From a conversation with XorA, in the [irc://freenode.com/#openmoko IRC channel].<br />
<br />
400kbps mpeg4 works on a 200Mhz neo (without sound) on prerotated 240*320 ffmpeg codec videos, at 25fps, using stock mplayer.<br />
<br />
With sound, this drops to 18fps.<br />
<br />
There are optimisations for mplayer that look promising to get 25fps with sound.<br />
<br />
For switching between QVGA and VGA mode do the following with a compatible kernel:<br />
chvt 4 && echo qvga-normal > /sys/devices/platform/s3c24xx-spi-gpio.1/spi0.0/state && fbset qvga<br />
vice versa:<br />
echo normal > /sys/devices/platform/s3c24xx-spi-gpio.1/spi0.0/state && fbset vga && chvt 3<br />
taken from http://lists.openmoko.org/pipermail/neo1973-hardware/2007-October/000267.html<br />
<br />
To make your videos openmoko compatible use mencoder like this:<br />
mencoder input.avi -sws 2 -ovc lavc -lavcopts vcodec=mpeg4:vhq:vbitrate=300 -vf rotate=2,scale=240:320 -oac mp3lame -lameopts br=64:cbr -o output2.avi<br />
It will rotate the video, scale it and encode it to mpeg4 with a bitrate of 300kBit/s. Works like a charm.<br />
<br />
To avoid console blanking type<br />
echo -e '\033[9;0]' > /dev/ttyX<br />
where 'X' is your terminal number - for example if you did chvt 4 then /dev/tty4 is your terminal.<br />
<br />
[[Category:Software]]<br />
[[Category:Neo1973 Hardware]]</div>Abraxahttp://wiki.openmoko.org/wiki/Openmoko_Local_Groups:_Frankfurt_MainOpenmoko Local Groups: Frankfurt Main2007-11-04T13:32:48Z<p>Abraxa: Just edited my profile a bit</p>
<hr />
<div> See [[Talk:OpenMoko_Local_Groups:_Frankfurt|discussion]]<br />
<br />
=== Possible Participants ===<br />
{|border=1<br />
!Name<br />
!Skills<br />
!Level of Interest<br />
!Location<br />
!Other<br />
!Has Device<br />
!Has Debug Board<br />
|-<br />
|[[User:scheelec|scheelec]]<br />
|web related, php/mysql, oracle<br />
|GTA01Bv4, later hopefully GTA02<br />
|Eschborn<br />
|thinking of a gps tracer application with database backend<br />
file based db for NEO or online DB via GPRS/WLAN.<br />
similar to the openroadmap project<br />
|<br />
|<br />
|-<br />
|[[User:Mickey|mickeyl]]<br />
|Architecture, Coding, Music<br />
|OpenMoko development platform<br />
|Frankfurt/Sachsenhausen<br />
|New-style UI toolkits...<br />
|[[Image: Moko.jpg|center]]<br />
|[[Image: MokoBox.jpg|center]]<br />
|-<br />
|Elrond<br />
|reverse engineering, many other things<br />
|GTA01Bv03 ;o)<br />
|Darmstadt<br />
|GPS: Working on Sphyrna (see [[Hammerhead/Protocol]]<br />
|<br />
|<br />
|-<br />
|Abraxa<br />
|Coding, bugfixing, documenting<br />
|Coding of/for various apps, documentation<br />
|Friedberg<br />
|Currently writing the [[Media Player]]<br />
|[[Image: Moko.jpg|center]]<br />
|<br />
|-<br />
|[[User:B.richter|B.Richter]]<br />
|Coding<br />
|waiting for GTA01Bv04 <br />
|Fulda<br />
|Nagios notification device<br />
|<br />
|<br />
|-<br />
|[[User:mafeu|mafeu]]<br />
|pre-alpha early adopter :-); some coding, if time allows<br />
|<strike>waiting for</strike> GTA01Bv04, skipping GTA02 and hoping for GTA03 w. EDGE/UMTS/HSDPA/HSUPA and 2 cameras<br />
|Kelkheim<br />
|<br />
|[[Image: Moko.jpg|center]]<br />
|<br />
|-<br />
|[[User:Alech|alech]]<br />
|Coding<br />
|Coding if the time allows, possibly some crypto stuff, interested in playing with the GPS, GTA01Bv04(?) arrived 2007/08/10 :-)<br />
|Darmstadt<br />
|works mostly in Eschborn, so meeting in Frankfurt is fine<br />
|<br />
|<br />
|-<br />
|[[User:karsten|Karsten]]<br />
|Coding, UI-Design<br />
|Coding own stuff I always missed on other phones<br />
|Wehrheim<br />
|GPS moving maps; some simple games<br />
|[[Image: Moko.jpg|center]]<br />
|[[Image: MokoBox.jpg|center]]<br />
|}</div>Abraxahttp://wiki.openmoko.org/wiki/Openmoko:Community_PortalOpenmoko:Community Portal2007-10-09T15:44:31Z<p>Abraxa: /* IRC */ Added network, thanks to muhh for the hint</p>
<hr />
<div>{|align=right<br />
|__TOC__<br />
|}<br />
<br />
== IRC ==<br />
<br />
There is always a good group in the IRC channel #openmoko on FreeNode. If you aren't an IRC-er, you might want to review the discussions anyways:<br />
<br />
Current 24h live log is always at:<br />
<br />
http://logs.nslu2-linux.org/livelogs/openmoko.txt<br />
<br />
Previous 24h log is always at:<br />
<br />
http://logs.nslu2-linux.org/livelogs/openmoko-prev.txt<br />
<br />
Archives back to 29 November 2006 at:<br />
<br />
http://logs.nslu2-linux.org/livelogs/openmoko/<br />
<br />
<br />
Courtesy of the NSLU2-Linux project.<br />
<br />
== Wiki ==<br />
The old community wiki is at http://www.linuxtogo.org/gowiki/OpenMoko/, since the release of the official wiki at http://wiki.openmoko.org/, it should no longer be used for OpenMoko. Please help integrating the content of the old wiki into this wiki. Please note that you cannot just copy from the old wiki, as the old wiki is (unfortunately) not clearly licensed and the content on this wiki is licensed under GNU FDL. You will instead need to rewrite the articles.<br />
<br />
When you have integrated/rewritten an article, please update the old wiki with clear information that you have moved the information, so others do not update the old page.<br />
<br />
<br />
<br />
=== Useful content that should be transfered ===<br />
==== FAQ about the whole project ====<br />
<strike><br />
*[http://www.linuxtogo.org/gowiki/OpenMoko/QuestionsAndAnswers some FAQ about the whole project]</strike>i created the [[FAQ]] page and added it to the introduction section on the main page. There are a few links on this page that will need to be fixed after all the content has been migrated [[User:Ryanlerch|Ryanlerch]] 12:55, 16 February 2007 (CET) <br />
*<strike>[http://www.linuxtogo.org/gowiki/OpenMoko/Providers Cell phone providers]</strike>--[[User:Denis std|denis_std]] 16:25, 16 February 2007 (CET) - '''Done''' - [[OpenMoko compatible cellphone providers]]<br />
<br />
====Software ideas ====<br />
*[http://www.linuxtogo.org/gowiki/OpenMoko/Ideas a really mixed up list of software and hardware ideas] - Please name your page Wishlist:''Pagename'' and add 'Category:Ideas' if you rewrite one of these<br />
*[http://www.linuxtogo.org/gowiki/OpenMoko/Software software ideas]<br />
<br />
==== Hardware stuff ====<br />
*<strike>[http://www.linuxtogo.org/gowiki/OpenMoko/iPhone comparison Neo / iPhone]</strike>--[[User:Mikesh|Mikesh]] 09:15, 18 February 2007 (CET) '''DONE''' - [[iPhone]]<br />
*<strike>[http://www.linuxtogo.org/gowiki/OpenMoko/AT_Commands At Commands]</strike>--[[User:AndreasHochsteger|Andreas Hochsteger]] 22:11, 24 February 2007 (CET) '''DONE''' - [[Hardware:AT_Commands|AT Commands]]<br />
*[http://www.linuxtogo.org/gowiki/OpenMoko/GPRS information on GPRS]<br />
*<strike>[http://www.linuxtogo.org/gowiki/OpenMoko/A%28ssisted%29_GPS information on (A)GPS]</strike>--[[User:Denis std|denis_std]] 01:57, 16 February 2007 (CET) '''DONE''' - [[Hardware:AGPS|AGPS]]<br />
<br />
==== Content used on OpenMoko ====<br />
*<strike>[http://www.linuxtogo.org/gowiki/OpenMoko/Content content ideas]</strike>--[[User:Denis std|denis_std]][http://www.usome.com] 16:35, 16 February 2007 (CET) - '''Done''' - [[Media Content]]<br />
<br />
==== Coding instructions ====<br />
*[http://www.linuxtogo.org/gowiki/OpenMoko/OpenEmbedded open embedded]<br />
*[http://www.linuxtogo.org/gowiki/OpenMoko/ToolChain tool chain]<br />
*<br />
==== Other useful stuff ====<br />
*<strike>[http://www.linuxtogo.org/gowiki/OpenMoko/PressCoverage Press Coverage]</strike>--[[User:Denis std|denis_std]] 16:54, 16 February 2007 (CET) - '''Done''' - [[Press Coverage]]<br />
*<strike>[http://www.linuxtogo.org/gowiki/OpenMoko/Testimonials Testimonials]</strike>--[[User:Denis std|denis_std]] 17:34, 16 February 2007 (CET) - '''Done''' - [[Testimonials]]<br />
*<strike>[http://www.linuxtogo.org/gowiki/OpenMoko/Translation Translation of OpenMoko]</strike>--[[User:Mikesh|Mikesh]] 11:42, 18 February 2007 (CET) '''DONE''' - [[Translation]]<br />
*<strike>[http://www.linuxtogo.org/gowiki/OpenMoko/AtFOSDEM FOSDEM]</strike> <br />
*<strike>[http://www.linuxtogo.org/gowiki/OpenMoko/Glossary Glossary]</strike>--[[User:AndreasHochsteger|Andreas Hochsteger]] 22:41, 24 February 2006 (CET) - '''DONE''' - [[Glossary]]<br />
*<strike>[http://www.linuxtogo.org/gowiki/OpenMoko/Video_Bounty Video Bounty]</strike>-- '''ABANDONED''' - New hardware renders this task trivial<br />
<br />
== Development news ==<br />
<br />
Developer news of progress being made on OpenMoko.<br />
<br />
* [http://planet.openmoko.org/ Main planet openmoko feed]<br />
* [http://blogs.gnome.org/thos/2007/08/21/openmoko-20072/ OpenMoko 2007.2 new User Interface style for OpenMoko by OpenedHand]<br />
<br />
== Discussions ==<br />
<br />
I hope this is the page intended for discussing wiki contents.<br />
<br />
=== User's Manual ===<br />
<br />
An user manual should be created for non geeks. I mean one of those small books you get when you buy a new phone. They are full of pictures, describe basic steps of phone usage and are translated into as many languages as possible.<br />
<br />
The wiki is a mess, somebody should suggest a structure easier to navigate.<br />
<br />
I do not see a point in translating developer pages in other languages than English, but this is subjective.<br />
<br />
--[[User:Iztok.jeras|Iztok.jeras]] 10:56, 23 May 2007 (CEST)<br />
<br />
I am French, but I don't see a point either in translating the developer manual. Mickael.<br />
<br />
My mother language is Spanish. I think that a developer manual written in English is enough -no need for translation to other languages. Raul.<br />
<br />
I have the same idea, but, its free for translate to other laguages. Freddy<br />
<br />
I am French, I think that a basic manual for non-geek could be a good idea…<br />
<br />
--[[User:Bart|Bart]] 10:14, 2 October 2007 (CEST)<br />
I am Dutch, if a dutch user manual is needed I'd love to help.<br />
<br />
[[Category:Community| ]]</div>Abraxahttp://wiki.openmoko.org/wiki/Main_PageMain Page2007-09-19T00:50:41Z<p>Abraxa: One can't flash an "openmoko"</p>
<hr />
<div>{{Languages|Main_Page}}<br />
__NOTOC__<br />
__NOEDITSECTION__<br />
__NOTOC__<br />
{| cellspacing="5" cellpadding="0" style="padding: 2%; margin:0em 0em 1em 0em; border:1px solid #F9D163; background:#FCE9B4; width:100%" <br />
| <big>'''Welcome to the [[OpenMoko]]&trade; public Wiki'''</big><br><br />
|}<br />
<br />
[[Image:FIC-neo1973_small.jpg|200px|right|frontside]]<br />
OpenMoko&trade; is an [http://en.wikipedia.org/wiki/Open_source Open Source] project to create the world's first free mobile phone operating system.<br />
<br />
The [[OpenMoko]] project is a community that anyone can join, to help design their ideal phone.<br />
<br />
Eventually, phone software won't be tied to any particular phone.<br />
<br />
You can install any OpenMoko software over the whole range of [[Supported Hardware|supported phones]], and if you upgrade your phone, you don't lose that software. Bugs fixed on any phone are fixed on all. <br />
<br />
'''Currently it is not suitable for users.''' The state of the software at the moment is pre-alpha. If you order a Neo1973, DO NOT expect to be able to use it as an everyday phone until October 2007 at the soonest, and probably later.<br />
<br />
The [[Neo1973]] from [[FIC]] is the first of many phones that OpenMoko will run on. Buy it at [https://direct.openmoko.com/ Openmoko Online Shop] (currently [http://jouston.no-ip.com/archives/000230.html out of stock]). You may wish to see the [[SH1 FAQ|Shipment 1 FAQ]].<br />
<br />
Please join us in collaborating on the OpenMoko project through any of the [[Development resources | project resources]] including this OpenMoko wiki. Please see the [[Help:Contents | wiki editing help]] page for information on making contributions to this wiki. A [[Meet the Core Team | core team]] of developers funded by FIC, Inc. leads the project.<br />
<br />
An [[introduction]] page is available, with [[Introduction#Photos|photos]] and [[Introduction#Videos|videos]]. Moreover, the usual [[FAQ | Frequently Asked Questions]] (FAQ) page might be helpful. Developers may find the [[ChangeLog | change log]] an important resource.<br />
<br />
Update 2007-07-25: The [http://forums.makeopensource.com/ Unofficial OpenMoko Forums] are now open! Everyone is invited to participate!<br />
<br />
<br />
The members of the OpenMoko community would like to thank FIC Inc. for showing leadership and initiating the OpenMoko project.<br />
<br />
{| class="wikitable" cellspacing="0" cellpadding="5" width=100%<br />
! width=100% colspan="2" style="background:#F9D163;border-left:5px solid white;border-right:5px solid white;border-top:5px solid white;" | What's Your Interest?<br />
|-<br />
<br />
|valign="TOP" width="50%" style="background:#FCE9B4;border-left:5px solid white;border-bottom:5px solid white;" | <br />
<br />
* [[Basic End-user]] - Information for end users who want basic functionality and no surprises<br />
* [[Advanced End-user]] - Information for advanced end-users who want advanced and experimental functionality but who are not programmers<br />
* [[Business Development]] - Exchange of commercial opportunities for promoting widespread end-user acceptance.<br />
<br />
|valign="TOP" width="50%" style="background:#FCE9B4;border-right:5px solid white;border-bottom:5px solid white;" | <br />
* [[Application Developer]] - Information for application developers, including ideas and specifications for applications, and tools to build them<br />
* [[System Developer]] - Information for system developers, including bootloader, kernel, and libraries<br />
* [[Hardware Developer]] - Information for hardware developers, including hardware specs and debug board<br />
<br />
|}<br />
<br />
{| class="wikitable" cellspacing="0" cellpadding="5" width=100%<br />
! width=33% style="background:#d1d1d1;border-left:5px solid white;border-right:5px solid white;border-top:5px solid white;" | General<br />
! width=33% style="background:#C5FDAF;border-left:5px solid white;border-right:5px solid white;border-top:5px solid white;" | Developer Guides<br />
! width=33% style="background:#FDAFAF;border-left:5px solid white;border-right:5px solid white;border-top:5px solid white;" | Developer Reference Documentation<br />
|-<br />
|valign="TOP" style="background:#ebebeb;border-left:5px solid white;border-right:5px solid white;border-bottom:5px solid white;" |<br />
* [[Development resources | Project Resources]] - Provides a centralized location of all resources such as [[Development resources#Mailing_Lists|mailing lists]], [[Development resources#IRC | communication tools]], and other software development oriented resources.<br />
<br />
* [[Current events]] - Information on both past and future events where FIC or OpenMoko had or will have a presence.<br />
* [http://forums.makeopensource.com/ Unofficial OpenMoko Forums] - Everyone is invited to collaborate with OpenMoko users and developers on the forums.<br />
* Most of the documentation and Wiki assumes you are using Linux; here are some notes for users of [[Other OSes]].<br />
* [[MacOS_X|Mac OS X]] - Information specific for those who use Mac OS X<br />
<br />
'''Administrative + Organizational'''<br />
* [[Shipping Notes]] - Information to help FIC figure out how to ship products to you, and how much it might cost.<br />
* [[My Account]] - Ideas for what sort of account-based services FIC should provide with the phone.<br />
* [[Hear Me FIC]] - Information to help FIC know what the community wants.<br />
* [[Listen Up Community]] - Community's To-Do-List<br />
* [[Wiki Issues]] - problems/requests regarding this Wiki<br />
<br />
<br />
|valign="TOP" style="background:#E8FFDF;border-left:5px solid white;border-right:5px solid white;border-bottom:5px solid white;" | <br />
* [[Getting Started with your Neo1973]]<br />
* [[installation_guide|A guide for flashing and emulating the openmoko software]] (In progress, this should replace the following options)<br />
** [[Flashing_openmoko|Flashing Neo1973 with the kernel, the root filesystem and optionally u-boot.]]<br />
** [[MokoMakefile|Building OpenMoko using the MokoMakefile]]<br />
** [[Application Development Crash Course]] -A very basic how-to for the new people. <br />
** [[OpenMoko2007.2|Building OpenMoko 2007.2]]<br />
** [[Building OpenMoko from scratch]]<br />
*** [[Building a hello world application]]<br />
*** Old [[Building OpenMoko from scratch (pre-BBT)]]<br />
** [[Running OpenMoko on PC]]<br />
*** [[Getting OpenMoko working on host with Xoo]]<br />
*** [[Getting OpenMoko working on host with Xephyr]]<br />
*** [[How to run OpenMoko Apps on PC]]<br />
*** [[OpenMoko under QEMU]]<br />
*** [[Test Openmoko Emulation with chroot image|Test Openmoko Emulation with a Prebuilt chroot Image]]<br />
* [[Migration to bad block tolerant builds]]<br />
* [[Booting from SD]]<br />
<br />
|valign="TOP" style="background:#FFDADA;border-left:5px solid white;border-right:5px solid white;border-bottom:5px solid white;"| <br />
'''Hardware Reference Documentation'''<br />
* All [[:Category:Hardware|Hardware]] related documentation and specifications are found on the [[:Category:Hardware|Hardware page]].<br />
* The [[Neo1973 Hardware]] page provides an overview of the hardware components used by the [[:Category:Neo1973 Hardware|Neo1973 hardware platform]]. PCB photographs are also included. A [[Disassembling Neo1973 | photo disassembly story]] may be an interesting starting place.<br />
* [[:Category:Neo1973 Hardware Debugging | Neo1973 Hardware Debugging]] is assisted with the [[Debug Board | Neo1973 debug board]]. A page discussing [[Connecting Neo1973 with Debug Board v2 | debug board and Neo1973 configurations]] is also provided.<br />
<br />
'''Software Reference Documentation'''<br />
* Architectural<br />
** [[OpenMokoFramework]] - The OpenMoko Application Framework<br />
* [[Neo1973 host software]]<br />
* Device Software<br />
** Low-Level<br />
*** [[u-boot]] - The bootloader we use, including documentation for our modifications<br />
*** [[kernel]] - The Linux kernel we use, including documentation for our modifications<br />
** Userspace<br />
*** [[binary compatibility]]<br />
*** [[gsmd]] - the GSM daemon managing the GSM Modem<br />
*** [[gpsd]] - the AGPS (Assisted GPS) daemon<br />
<br />
<br />
|}<br />
<br />
{| class="wikitable" cellspacing="0" cellpadding="5" width=100%<br />
! width=33% style="background:#FCC6FF;border-left:5px solid white;border-right:5px solid white;border-top:5px solid white;" | OpenMoko-specific Development<br />
! width=33% style="background:#B3DDF4;border-left:5px solid white;border-right:5px solid white;border-top:5px solid white;" | OpenMoko Miscellaneous Development<br />
! width=33% style="background:#F5FC7F;border-left:5px solid white;border-right:5px solid white;border-top:5px solid white;" | Miscellaneous<br />
|-<br />
|valign="TOP" style="background:#FEE9FF;border-left:5px solid white;border-right:5px solid white;border-bottom:5px solid white;" | <br />
* [[OpenEmbedded]] - The distribution-building framework<br />
* [[Toolchain]] - The toolchain we use for compilation<br />
* [[OpenMoko]] - The OpenMoko distribution<br />
** [[OpenMoko2007]] - The first intended release of it<br />
** [[OpenMoko2007.2]] - An improved release with more formalized style guidelines.<br />
** [[Userspace root image]]<br />
<br />
'''User Interface Related'''<br />
* [[GUI Style Guidelines]] -- New for [[OpenMoko2007.2]]<br />
* [[Look & Feel]]<br />
** [[Artwork]]<br />
* [[Applications]]<br />
* [[Widgets]]<br />
** [[Widget Inheritance Graph]]<br />
* [[Application UI Design Recommendations]]<br />
<br />
|valign="TOP" style="background:#D4EDFB;border-left:5px solid white;border-right:5px solid white;border-bottom:5px solid white;" | <br />
* [[Freshman todo]]<br />
* [[Templates]]<br />
* [[PIM Storage]]<br />
* [[Coding Guidelines]]<br />
* [[OpenMoko#Setting_up_an_OpenMoko_SDK|How to setup the OpenMoko SDK]]<br />
* Alternative distributions for [[Neo1973]] GTA01: [[Angstrom on Neo1973]], [http://pokylinux.org Poky] [http://www.usome.com](instructions needed!)<br />
* [[License]] - How we license our code<br />
* [[Development resources]] - Describes resources for developers (lists, svn, ...)<br />
* [[Neo1973 Phase 0]] - Information for Phase 0 device owners<br />
* [[Wishlist:Neo1973 P0 Review]] - Impressions of the Phase 0 hardware device, also the Phase 0 FAQ<br />
* [[Neo1973 Phase 1]] - Information for Phase 1 device owners<br />
* [[Wishlist:Neo1973 P1 Review]] - Impressions of the Phase 1 hardware device<br />
* [[External Feeds]] - List of feeds from people blogging about OpenMoko<br />
<br />
<br />
|valign="TOP" style="background:#FCFFCD;border-left:5px solid white;border-right:5px solid white;border-bottom:5px solid white;" | <br />
* [[WiFi support in OpenMoko]]<br />
* [[Neo1973 and Windows]] - If you want to commit that offence ;)<br />
* [[Press Coverage]] - What the press says about the OpenMoko project<br />
* [[mFAQ]] - The OpenMoko Misinformation FAQ ('''mFAQ''') - What the press '''''incorrectly''''' says about the OpenMoko project<br />
* [[Wish List]] - A collection of ideas and ideals we'd like to see implemented some day<br />
* [[Wish List - Hardware]] - A collection of ideas we'd like to see in the next Neo release<br />
* [[Wishlist:BuiltInScriptingLanguage|Wish List - Built-in Scripting Language]] - Discussion on a suitable scripting language to be included<br />
* [[Wish List - OpenMoko Ringtones and Sounds]] Collection of [http://en.wikipedia.org/wiki/Free_music free music]/sounds/ringtones we'd like to listen in the next Neo release<br />
* [[Media Content]] - What types of media on the device can we use (that is non-software)?<br />
* [[Testimonials]] - How did you get to OpenMoko?<br />
* [[Buying Interest List]] - (Not official and not a pre-order page) Have you put money aside for Neo1973? Put your nick here.<br />
* [[iPhone]] - Comparison between Apple iPhone and FIC Neo1973<br />
* [[Translation]] - Translation of OpenMoko<br />
* [[Summer of code]] - Our page with project applications for Google's Summer of Code<br />
* [[SWAG]] - Where to purchase openmoko swag (T-Shirts!)<br />
* [[Trademark Policy]] -- The OpenMoko Trademark Policy<br />
<br />
|}<br />
<br />
<br />
<br />
<span id="bottom"></span><br />
<br />
[[Category:Information| ]]<br />
[[Category:Categories| ]]</div>Abraxahttp://wiki.openmoko.org/wiki/Flashing_the_Neo_1973Flashing the Neo 19732007-09-19T00:47:48Z<p>Abraxa: Minor clean-ups and corrections</p>
<hr />
<div>This describes how to update your Neo1973 to the latest software. We'll update the kernel, the root filesystem and optionally u-boot.<br />
<br />
{{warning|If you're updating u-boot and don't have a [[Debug Board]], you might render your unit unusable if the flashing procedure is interrupted}}<br />
<br />
{{warning|If you upload a rootfs image that is smaller than the previous one it won't work - you need to attach to bootloader, [[Nand_erase|erase NAND]] and then upload your rootfs first}}<br />
<br />
== Files to download ==<br />
<br />
MacOS X users: please refer to [[MacOS_X]]. Users without Linux please refer to [[No_Linux]] for the moment.<br />
<br />
The rootfs & kernel images you download need to match. The loadable modules for the kernel are in /lib/modules/ on the rootfs partition - if you get the wrong combination, you will get some error messages during bootup that it cannot access /lib/modules/x.y.z-moko123 - in this case swap either the kernel or the rootfs to match the other's version. Unfortunately the rootfs filename does not seem to tell what kernel version it is compatible with, you just have to try a few. '''NOTE:''' At least some combinations seem to boot up fine even if the module versions mismatch so be sure to check the console while it's booting after flashing.<br />
<br />
The "moko123" in the error message example above indicates the openmoko patchset version.<br />
<br />
Necessary files are at:<br />
*http://buildhost.openmoko.org/OM2007.2/tmp/deploy/glibc/images/fic-gta01/<br />
<br />
*http://chooseopen.com/openmoko/build/ (Unofficial, temporary location of more current builds.)<br />
<br />
A list of download locations can be found at [[Repositories]]. See [[Phase 1 Software Testing]] for a list of tested images.<br />
<br />
<br />
Changelogs can be found at:<br />
*http://cia.vc/stats/project/openembedded/.rss<br />
<br />
*http://cia.vc/stats/project/openmoko/.rss<br />
<br />
<br />
Get:<br />
* [[dfu-util]] (the precompiled binary on http://buildhost.openmoko.org is for Linux/i386)<br />
** (this is the part that runs on the PC, that pushes the files across the USB to the phone)<br />
* openmoko-devel-image-fic-gta01-2007********.rootfs.jffs2<br />
* uImage-2.6.21.*-moko*-r*_0_****_0-fic-gta01.bin<br />
* for phase 0 (Bv03) phones:<br />
** Tested by a few people:<BR>u-boot-gta01bv3-r8_70124c2602ae2d4c5d3dba05b482d91548242de8_0_2040.bin<BR>MD5SUM: 60c5aeba1bd6642b05b3a5e6f2dafe83<br />
** Tested by hrw:<BR>u-boot-gta01bv3-r8_70124c2602ae2d4c5d3dba05b482d91548242de8_0_2062.bin<BR>MD5SUM: 716f1eba9b0f2be4a0a3be4a56724935<br />
* for phase 1 phones, uboot update should not be necessary.<br />
<br />
== Preparing the device for DFU mode ==<br />
<br />
You'll need to boot your openmoko into uboot menu. To do this:<br />
<br />
* Unplug all usb devices from the host.<br />
* Hold the phone's [[Neo1973 AUX Button | AUX button]] and then press the phone's [[Neo1973 Power Button | POWER button]].<br />
** You'll need to hold the POWER button for about 4 seconds before the device will turn on. Otherwise the screen will only flash white for a second and the phone won't power up.<br />
* The u-boot menu should appear. <br />
* Plug Neo1973 into host with supplied USB cable. (Plug the phone directly into the host not via a hub.)<br />
<br />
'''Note:''' If the bootloader remains inactive for about 30 seconds, that is no keypresses or no use of the serial console, the device will automatically power down.<br />
You can prevent this by just pressing the AUX button every 30 seconds or so or by telling the bootloader to not exhibit this behaviour.<br />
To do so, please connect to the bootloader:<br />
<br />
<pre><br />
cu -l /dev/ttyACM0<br />
GTA01Bv4 # setenv boot_menu_timeout 65000<br />
GTA01Bv4 # saveenv<br />
</pre><br />
<br />
No further navigation is needed in u-boot - the device will automatically start flashing the images when told to do so by dfu-util below. After flashing all the files, you can choose the "Boot" option to boot the newly flashed stuff.<br />
<br />
== Actually flashing things into the device ==<br />
<br />
Double check that u-boot matches your hardware version. You'll probably only want to update u-boot on phase0 phones.<br />
<br />
Note: It may be necessary to run the application as root (at least in ubuntu).<br />
<br />
Note: In case there are more than one available usb devices use -d 0x1457:0x5119 option.<br />
<br />
To update u-boot:<br />
<br />
<b>Warning: Do not update u-boot unless you have debug board or are really sure about what you are doing. Flashing a wrong u-boot image will brick your device! Note especially that image below is for GTA01B_v03, not GTA01B_v04</b><br />
<br />
./dfu-util -a u-boot -R -D u-boot-gta01bv3-r8_70124c2602ae2d4c5d3dba05b482d91548242de8_0_2040.bin<br />
<br />
To update the kernel:<br />
./dfu-util -a kernel -R -D ./uImage-2.6.21.1-moko10-r0_0_1883_0-fic-gta01.bin<br />
Flashing the kernel will probably take less than 1 minute. If you're having trouble, you may want to compare the output that you see to a "known good" [[Flashing openmoko/Known good kernel flash U-Boot output | U-Boot]]/[[Flashing openmoko/Known good kernel flash dmesg output | dmesg]]/[[Flashing openmoko/Known good kernel flash dfu-util output | dfu-util]] output.<br />
<br />
To update the root filesystem:<br />
./dfu-util -a rootfs -R -D ./openmoko-devel-image-fic-gta01-20070501054014.rootfs.jffs2<br />
<br />
Flashing the root filesystem will probably take around 13 minutes. Here is some "known good" output from [[Flashing openmoko/Known good rootfs flash U-Boot output | U-Boot]], [[Flashing openmoko/Known good rootfs flash dmesg output | dmesg]], and [[Flashing openmoko/Known good rootfs flash dfu-util output | dfu-util]].<br />
<br />
Notice that it's not normally necessary to update the modules anymore. It's just for people with special needs.<br />
<br />
...now, you'll end up with system that boots, but does not see audio/SD card. You'll need to download corresponding modules.tgz and copy them over to openmoko. - UPDATE: GTA01 phones appear to not need this step, as long as you have installed a kernel that matches the version of the modules contained in the root image ('uname -r' will show the kernel version, and 'ls /lib/modules/' will show the modules that are present).<br />
<br />
VERY IMPORTANT NOTE (I would consider that as a design flaw - either dfu-util should do it automatically): If you upload rootfs image that is smaller that previous one it won't work - you need to attach to the u-boot bootloader, erase NAND and then upload your rootfs first:<br />
<br />
<pre><br />
cu -l /dev/ttyACM0<br />
GTA01Bv3 # nand erase rootfs<br />
</pre><br />
<br />
Old versions of u-boot are buggy: You may have to press the AUX button every 25 seconds or so to prevent the phone from going to sleep while being flashed. It also does not erase rootfs before flashing it... to do that, do minicom /dev/ttyACM0, then nand erase clean rootfs.<br />
<br />
Good luck!<br />
<br />
== Where to go from here ==<br />
<br />
So, now you have one of the more recent kernel and rootfs images, or one of the (semi)official ones, whats next?<br />
<br />
You probably want to set up [[USB_Networking]] and then configure your Neo1973 some more.<br />
<br />
Do not forget to update your Neo1973 using<br />
<br />
ipkg update && ipkg upgrade<br />
<br />
and have a look at additional ipkg [[repositories]].<br />
<br />
== Troubleshooting notes ==<br />
<br />
If you're facing errors in seemingly random places during the flashing of images, most likely the USB hub or cable through which your Neo1973 is connected is of too poor quality. It is recommended that you always connect the phone directly to the host when using dfu-util.<br />
<br />
If dfu-util reports a message like the following, before it starts flashing:<pre><br />
Resetting USB...<br />
not at least 2 device changes found ?!?<br />
Lost device after RESET?</pre> just retry the command - it should work on a second run.<br />
<br />
This message can also occur if you connect the usb cable before you are in the bootloader menu. You must carefully follow the sequence described at the beginning of this article and not connect the USB cable too early.<br />
<br />
dfu-util does not seem to be able to download files if run from linux running under<br />
VMWare on a Windows OS host.<br />
<br />
See other notes on [[Dfu-util]] page.<br />
<br />
[[Category:OpenMoko| ]]</div>Abraxahttp://wiki.openmoko.org/wiki/Talk:OpenMoko_Local_Groups:_FrankfurtTalk:OpenMoko Local Groups: Frankfurt2007-09-06T19:28:05Z<p>Abraxa: </p>
<hr />
<div>Jemand Lust auf ein Treffen in Frankfurt/Sachsenhausen am Montag, den 17. September 2007? Von OpenMoko werden Mickey, Alphaone und Zecke am Start sein. Ort: Cantina Mescal, Schweizer Strasse, Zeit: 20:00.<br />
* Lust schon, kann aber erst wieder naechstes Mal kommen, da ich nicht in .de bin. Wuensche euch viel Spass :) [[User:Abraxa|Abraxa]] 21:28, 6 September 2007 (CEST)</div>Abraxahttp://wiki.openmoko.org/wiki/U-BootU-Boot2007-08-07T11:07:13Z<p>Abraxa: /* Accessing the bootloader prompt */ Fixed a minor typo</p>
<hr />
<div>[[Image:GTA01-U-Boot.JPG|thumb|300px|u-boot on Neo1973 console]] [[Image:Neo1973 uboot splash closeup.jpg|thumb|300px|u-boot boot splash on Neo1973]]<br />
<br />
== Phase0 Quick Start ==<br />
* Make sure that your phone has had the battery and USB cable removed for at least 30 seconds.<br />
* Connect the Neo (ie not Debug Board) to a Linux host with the USB cable.<br />
* Hold in the AUX button on power-up to access the boot menu.<br />
* Set the console to USB.<br />
* Connect to /dev/ttyACM0 with a terminal program on the Linux host<br />
* Note that the cdc_acm /dev/ttyACM0 access disappears as soon as the Neo boots, and is replaced by the cdc_ether usb0 network access.<br />
* You're now at the bootloader prompt.<br />
* Set the bootdelay uboot environment variable to -1 if you want it to always halt at the bootloader on power-up.<br />
<br />
== General ==<br />
<br />
The GTA01 uses the [http://u-boot.sourceforge.net/ u-boot] bootloader.<br />
<br />
More information on u-boot can be found at <br />
* http://www.denx.de/wiki/DULG<br />
* http://www.gumstix.org/tikiwiki/tiki-index.php?page=U-Boot<br />
* http://linuxdevices.com/articles/AT5085702347.html<br />
<br />
Additions to the vanilla u-boot already implemented include: <br />
* Support for boot from NAND flash using [[S3C2410 Steppingstone]]<br />
* Support for S3C2410 NAND flash<br />
* Support for downloading programs via S3C2410 USB Device Controller<br />
* Support to display bootup logo / status on S3C2410 Framebuffer<br />
<br />
However, u-boot still doesn't support many of the features that GTA01 needs, such as<br />
* Support for reading kernel/initrd from SD/Transflash<br />
* Support for downloading programs via S3C2410 USB Device Controller<br />
<br />
[[User:HaraldWelte]] is working on those issues, and in fact most of them have already been implemented.<br />
<br />
== Bootloader source code ==<br />
<br />
The current bootloader patches can be found at http://svn.openmoko.org/trunk/src/target/u-boot/patches/. <br />
<br />
Untar the sources, apply the patch. run "make gta01bv3_config" (or gta01bv2_config, or whatever hardware revision you have), run "make". You will get a resulting "u-boot.bin" image, which you can directly flash (either using existing bootloader or [[sjf2410-linux]]) into NAND.<br />
<br />
== Bootloader binary ==<br />
<br />
The latest bootloader binary builds can be found at http://buildhost.openmoko.org/tmp/deploy/images/ . It should be written to the NAND flash address 0x00000000 (size 0x30000)<br />
<br />
== Bootloader development ==<br />
<br />
=== QT2410 ===<br />
If you want to do bootloader development on the QT2410, it's easier to work with a bootloader image that can be downloaded via USB into RAM instead of flashing.<br />
<br />
To do so, you need to edit the u-boot/include/configs/qt2410.h file, and change the "if 0" in Line 32 into a "if 1", then recompile with "make".<br />
<br />
The resulting "u-boot.bin" is _NOT SUITABLE_ for NAND flash, but only for direct execution from within ram, e.g. by using the [[s3c2410_boot_usb]] program.<br />
<br />
=== GTA01 ===<br />
<br />
Doing bootloader development on the GTA01 is a bit more tricky. first, we don't have any NOR flash. Second, there is no other way to boot _but_ from NAND. Therefore, we also don't have a USB downloader like the QT2410.<br />
<br />
The main problem is: The [[S3C2410 Steppingstone]] unconditionally copies the first 4k of flash into its internal SRAM. That SRAM segment stays unconditionally mapped at physical address zero. How do we get around this<br />
<br />
==== Using JTAG to boot from RAM ====<br />
<br />
So how can we boot from RAM? We use JTAG / OpenOCD to<br />
<br />
* reset and halt the cpu at PC=0<br />
<pre><br />
> reset halt<br />
target halted in ARM state due to debug request, current mode: Supervisor<br />
cpsr: 0x400000d3 pc: 0x00000000<br />
MMU: disabled, D-Cache: disabled, I-Cache: disabled<br />
</pre><br />
<br />
* download a small piece of code for low-level SDRAM timing initialization (overwrite 4k SRAM of steppingstone)<br />
<pre><br />
> load_binary /space/misc/gta01/u-boot.git/foo.bin 0 <br />
downloaded 332 byte in 0s 21899us<br />
</pre><br />
<br />
* assert a break point at address 0x33f80000 (which indicates that the low-level code has finished)<br />
<pre><br />
> bp 0x33f80000 4 hw<br />
breakpoint added at address 0x33f80000<br />
</pre><br />
<br />
* run the code up to the break point<br />
<pre><br />
> resume<br />
Target 0 resumed<br />
> Target 0 halted<br />
target halted in ARM state due to breakpoint, current mode: Supervisor<br />
cpsr: 0x600000d3 pc: 0x33f80000<br />
MMU: disabled, D-Cache: disabled, I-Cache: enabled<br />
</pre><br />
<br />
* download the u-boot RAM image to 0x33f80000<br />
<pre><br />
> load_binary /space/misc/gta01/u-boot.git/u-boot.bin 0x33f80000<br />
downloaded 135692 byte in 6s 567264us<br />
</pre><br />
<br />
* resume processing<br />
<pre><br />
> resume<br />
Target 0 resumed<br />
</pre><br />
<br />
At this point, the display backlight gets bright and we see the following familiar prompt on the serial console:<br />
<pre><br />
U-Boot 1.1.6 (Jan 13 2007 - 23:44:23)<br />
<br />
DRAM: 128 MB<br />
NAND: 64 MiB<br />
*** Warning - bad CRC or NAND, using default environment<br />
<br />
In: serial<br />
Out: serial<br />
Err: serial<br />
Hit any key to stop autoboot: 0 <br />
GTA01Bv2 # <br />
</pre><br />
<br />
== Creating bootable images ==<br />
<br />
u-boot needs bootable images (such as kernels, but also initrd and others) in form of a so-called ''uImage''. In order to create a ''uImage'' from e.g. a ''vmlinux'' kernel image, you can proceed as follows:<br />
<br />
<pre><br />
objcopy -O binary -R .note -R .comment -S vmlinux linux.bin<br />
gzip -9 linux.bin<br />
u-boot/tools/mkimage -A arm -O linux -T kernel -C gzip -a 30008000 -e 30008000 -n "Kernel Image QT2410" -d linux.bin.gz uImage<br />
</pre><br />
<br />
== Boot menu ==<br />
[[Image:Neo1973 uboot menu.jpg|thumb|400px|u-boot boot menu on Neo1973]]<br />
<br />
As of the Phase-0 release, our u-boot version now features an on-screen boot menu.<br />
<br />
=== Accessing the boot menu ===<br />
<br />
You can access the boot menu by pressing and holding the [[Neo1973 AUX Button]] together with the power button while switching the phone on.<br />
<br />
=== Using the boot menu ===<br />
<br />
By pressing the [[Neo1973 AUX Button]] you can cycle through the menu items. Use the ''POWER'' button to select one item.<br />
<br />
=== Adding items to the boot menu ===<br />
<br />
You can add items to the boot menu by setting environment variables. The canonical form is ''menu_<number> <Title>: U-Boot-Commands''<br />
<br />
For example the following command will add a boot menu entry that switches to autofast charging and turns off the backlight:<br />
setenv menu_6 Autofast-Charge and Backlight Off: neo1973 charger autofast\; neo1973 backlight off<br />
<br />
== Bootloader prompt ==<br />
<br />
=== Accessing the bootloader prompt ===<br />
The bootloader prompt is available either on the serial console (via [[Debug Board]]), or as virtual USB Serial device (USB CDC_ACM).<br />
Whether the serial port or usb is used depends on the u-boot environment variables '''stdin''', '''stdout''' and '''stderr'''.<br />
<br />
Whether or not you use usbtty, the first couple of messages will always be displayed on the serial console.<br />
<br />
The bootloader is currently configured to wait for three seconds. If a key press on the '''stdin''' is received within those three seconds, auto-boot is aborted.<br />
<br />
==== Using usbtty from Linux ====<br />
<br />
Just by connecting the phone in u-boot mode to your Linux pc should make it detect a [[CDC ACM]] device, and you should get a new tty device called /dev/ttyACM0. Use your favourite terminal emulator (minicom, cu, zc, screen ...) to access it like any other serial port. If you don't have a favorite, try just<br />
cu -l /dev/ttyACM0<br />
<br />
First, you should try to check whether the USB device shows up in 'lsusb' while you're running in u-boot mode:<br />
<br />
# lsusb -d 1457:5119<br />
Bus 005 Device 079: ID 1457:5119 <br />
<br />
Second, lets see some more details about the available endpoints and configurations:<br />
<br />
<pre><br />
# lsusb -v -d 1457:5119<br />
Bus 005 Device 079: ID 1457:5119 <br />
Device Descriptor:<br />
bLength 18<br />
bDescriptorType 1<br />
bcdUSB 1.10<br />
bDeviceClass 2 Communications<br />
bDeviceSubClass 0 <br />
bDeviceProtocol 0 <br />
bMaxPacketSize0 16<br />
idVendor 0x1457 <br />
idProduct 0x5119 <br />
bcdDevice 0.00<br />
iManufacturer 1 OpenMoko, Inc<br />
iProduct 2 Neo1973 Bootloader U-Boot 1.2.0-g6c7cac8c-dirty-moko3<br />
iSerial 3 0000000<br />
bNumConfigurations 1<br />
Configuration Descriptor:<br />
bLength 9<br />
bDescriptorType 2<br />
wTotalLength 85<br />
bNumInterfaces 3<br />
bConfigurationValue 1<br />
iConfiguration 4 TTY via USB<br />
bmAttributes 0xc0<br />
Self Powered<br />
MaxPower 0mA<br />
Interface Descriptor:<br />
bLength 9<br />
bDescriptorType 4<br />
bInterfaceNumber 0<br />
bAlternateSetting 0<br />
bNumEndpoints 1<br />
bInterfaceClass 2 Communications<br />
bInterfaceSubClass 2 Abstract (modem)<br />
bInterfaceProtocol 1 AT-commands (v.25ter)<br />
iInterface 6 Control Interface<br />
CDC Header:<br />
bcdCDC 0.6e<br />
CDC Call Management:<br />
bmCapabilities 0x00<br />
bDataInterface 1<br />
CDC ACM:<br />
bmCapabilities 0x00<br />
CDC Union:<br />
bMasterInterface 0<br />
bSlaveInterface 1 <br />
Endpoint Descriptor:<br />
bLength 7<br />
bDescriptorType 5<br />
bEndpointAddress 0x81 EP 1 IN<br />
bmAttributes 3<br />
Transfer Type Interrupt<br />
Synch Type None<br />
Usage Type Data<br />
wMaxPacketSize 0x0010 1x 16 bytes<br />
bInterval 255<br />
Interface Descriptor:<br />
bLength 9<br />
bDescriptorType 4<br />
bInterfaceNumber 1<br />
bAlternateSetting 0<br />
bNumEndpoints 2<br />
bInterfaceClass 10 CDC Data<br />
bInterfaceSubClass 0 Unused<br />
bInterfaceProtocol 0 <br />
iInterface 5 Bulk Data Interface<br />
Endpoint Descriptor:<br />
bLength 7<br />
bDescriptorType 5<br />
bEndpointAddress 0x02 EP 2 OUT<br />
bmAttributes 2<br />
Transfer Type Bulk<br />
Synch Type None<br />
Usage Type Data<br />
wMaxPacketSize 0x0010 1x 16 bytes<br />
bInterval 255<br />
Endpoint Descriptor:<br />
bLength 7<br />
bDescriptorType 5<br />
bEndpointAddress 0x83 EP 3 IN<br />
bmAttributes 2<br />
Transfer Type Bulk<br />
Synch Type None<br />
Usage Type Data<br />
wMaxPacketSize 0x0010 1x 16 bytes<br />
bInterval 255<br />
Interface Descriptor:<br />
bLength 9<br />
bDescriptorType 4<br />
bInterfaceNumber 2<br />
bAlternateSetting 0<br />
bNumEndpoints 0<br />
bInterfaceClass 254 Application Specific Interface<br />
bInterfaceSubClass 1 Device Firmware Update<br />
bInterfaceProtocol 1 <br />
iInterface 7 USB Device Firmware Upgrade<br />
Device Status: 0x0001<br />
Self Powered<br />
</pre><br />
<br />
Next, you can access it using your favourite terminal program.<br />
<br />
Then, if the environment is not set correctly, you will need to use the current console (e.g. serial console) to set<br />
<pre><br />
GTA01Bv2 # setenv stderr usbtty<br />
GTA01Bv2 # setenv stdout usbtty<br />
GTA01Bv2 # setenv stdin usbtty<br />
</pre><br />
<br />
==== Typical u-boot prompt ====<br />
<br />
<pre><br />
U-Boot 1.2.0-moko1 (Feb 16 2007 - 00:36:13)<br />
<br />
DRAM: 128 MB<br />
NAND: 64 MiB<br />
Found Environment offset in OOB..<br />
Video: 640x480x8 31kHz 59Hz<br />
USB: S3C2410 USB Deviced<br />
In: serial<br />
Out: serial<br />
Err: serial<br />
Hit any key to stop autoboot: 0 <br />
GTA01Bv3 #<br />
</pre><br />
<br />
=== Commands on the bootloader prompt ===<br />
<br />
==== Auto-boot ====<br />
<br />
Auto-boot executes the command[s] specified in the ''bootcmd'' environment variable. The default configuration is:<br />
<pre><br />
GTA01Bv3 # printenv<br />
bootcmd=setenv bootargs ${bootargs_base} ${mtdparts}; nand read.e 0x32000000 kernel; bootm 0x32000000<br />
</pre><br />
<br />
This basically tells us that it will load the content of the NAND partition '''kernel''' to memory address 0x32000000 and then try to boot it. <br />
<br />
==== Environment ====<br />
<br />
u-boot is configured to manage a non-volatile environment that is stored in NAND flash. You can use the commands to read/alter/store the environment in the following example:<br />
<pre><br />
GTA01Bv2 # printenv<br />
baudrate=115200<br />
bootargs=rootfstype=jffs2 root=/dev/mtdblock4 console=ttySAC0,115200 console=tty0 loglevel=8 dyntick=enable lpj=252416<br />
usbtty=cdc_acm<br />
bootdelay=10<br />
stdout=serial<br />
stderr=serial<br />
stdin=serial<br />
mtdparts=mtdparts=neo1973-nand:0x00030000(u-boot),0x0000c000(u-boot_env),0x00200000(kernel),0x00130000(splash),0x03c94000(rootfs)<br />
mtdids=nand0=neo1973-nand<br />
bootargs_base=rootfstype=jffs2 root=/dev/mtdblock4 console=ttySAC0,115200 console=tty0 loglevel=8 dyntick=enable lpj=252416<br />
bootcmd=setenv bootargs ${bootargs_base} ${mtdparts}; nand read.e 0x32000000 kernel; bootm 0x32000000<br />
pcf50606_int1=0x40<br />
filesize=160C000<br />
partition=nand0,0<br />
mtddevnum=0<br />
mtddevname=u-boot<br />
<br />
Environment size: 670/16380 bytes<br />
GTA01Bv3 # setenv bootdelay 10<br />
GTA01Bv3 # printenv bootdelay<br />
bootdelay=10<br />
GTA01Bv3 # saveenv<br />
Saving Environment to NAND...<br />
Erasing Nand...Writing to Nand... done<br />
GTA01Bv3 # <br />
</pre><br />
<br />
Note: When setting multiple commands, e.g. for bootcmd, you need to escape the ';', for instance<br />
<br />
<pre><br />
GTA01Bv3 # setenv bootcmd mmcinit\; ext2load mmc 0 0x32000000 uImage\; bootm 0x32000000<br />
</pre><br />
<br />
==== MMC/SD ====<br />
<br />
in order to initialize a MMC/SD card, you have to use the ``mmcinit'' command.<br />
<pre><br />
GTA01Bv3 # mmcinit<br />
trying to detect SD Card...<br />
MMC found. Card desciption is:<br />
Manufacturer ID = 58d564<br />
HW/FW Revision = 3 8<br />
Product Name = 21DN!@X�<br />
Serial Number = 445303<br />
Month = 5<br />
Year = 2000<br />
READ_BL_LEN=15, C_SIZE_MULT=7, C_SIZE=3197<br />
size = 4208984064<br />
GTA01Bv3 #<br />
</pre><br />
<br />
afterwards, you can read ext2 filesystems like:<br />
<pre><br />
GTA01Bv3 # ext2ls mmc 0<br />
<DIR> 1024 .<br />
<DIR> 1024 ..<br />
<DIR> 12288 lost+found<br />
1544788 uImage<br />
</pre><br />
<br />
==== NAND ====<br />
<br />
<pre><br />
GTA01Bv3 # help nand<br />
nand info - show available NAND devices<br />
nand device [dev] - show or set current device<br />
nand read[.jffs2] - addr off size<br />
nand write[.jffs2] - addr off size - read/write `size' bytes starting<br />
at offset `off' to/from memory address `addr'<br />
nand erase [clean] [off size] - erase `size' bytes from<br />
offset `off' (entire device if not specified)<br />
nand bad - show bad blocks<br />
nand dump[.oob] off - dump page<br />
nand scrub - really clean NAND erasing bad blocks (UNSAFE)<br />
nand markbad off - mark bad block at offset (UNSAFE)<br />
nand biterr off - make a bit error at offset (UNSAFE)<br />
</pre><br />
<br />
===== Loading Kernel from NAND =====<br />
<br />
<pre><br />
GTA01Bv3 # nand read 0x32000000 kernel<br />
<br />
NAND read: device 0 offset 212992, size 2097152 ... 2097152 bytes read: OK<br />
GTA01Bv3 # bootm 0x32000000<br />
## Booting image at 32000000 ...<br />
Image Name: OpenMoko Kernel Image Neo1973<br />
Created: 2007-02-15 23:54:18 UTC<br />
Image Type: ARM Linux Kernel Image (gzip compressed)<br />
Data Size: 1546258 Bytes = 1.5 MB<br />
Load Address: 30008000<br />
Entry Point: 30008000<br />
Verifying Checksum ... OK<br />
Uncompressing Kernel Image ... OK<br />
Starting kernel ...<br />
</pre><br />
<br />
===== Writing new bootloader to NAND =====<br />
<br />
The following set of commands loads the file u-boot.bin from ext2/mmc and flashes it into the<br />
bootloader flash partition:<br />
<br />
<pre><br />
GTA01Bv3 # ext2load mmc 0 0x32000000 u-boot.bin<br />
GTA01Bv3 # nand erase u-boot<br />
GTA01Bv3 # nand write.e 0x32000000 u-boot ${filesize}<br />
</pre><br />
<br />
===== Writing kernel to NAND =====<br />
<br />
The following set of commands loads the file uImage from ext2/mmc and flashes it into the<br />
kernel flash partition:<br />
<br />
<pre><br />
GTA01Bv3 # ext2load mmc 0 0x32000000 uImage<br />
GTA01Bv3 # nand erase kernel<br />
GTA01Bv3 # nand write.e 0x32000000 kernel ${filesize}<br />
</pre><br />
<br />
===== Writing rootfs to NAND =====<br />
<br />
The following set of commands loads the file rootfs.jffs2 from ext2/mmc and flashes it into the<br />
rootfs flash partition:<br />
<br />
<pre><br />
GTA01Bv3 # ext2load mmc 0 0x32000000 rootfs.jffs2<br />
GTA01Bv3 # nand erase rootfs<br />
GTA01Bv3 # nand write.e 0x32000000 rootfs ${filesize}<br />
</pre><br />
<br />
Please note that this will only work with root file system sizes that are smaller than the amount of memory above 0x32000000, which in the case of 64MB SDRAM is something like 32MB.<br />
<br />
==== Neo1973 related commands ====<br />
<br />
Our version of u-boot supports a couple of Neo1973 specific commands:<br />
<pre><br />
GTA01Bv2 # help neo1973<br />
neo1973 neo1973 info - display phone informantion<br />
neo1973 power-off - switch off the phone<br />
neo1973 charger status - display charger status<br />
neo1973 charger autofast - enable automatic fast (500mA) charging<br />
neo1973 charger !autofast - disable automatic fast (500mA) charging<br />
neo1973 charger fast - enable fast (500mA) charging<br />
neo1973 charger off - disable charging<br />
neo1973 backlight (on|off) - switch backlight on or off<br />
neo1973 vibrator (on|off) - switch vibrator on or off<br />
</pre><br />
<br />
===== Timeouts =====<br />
<br />
The boot menu timeout can be changed using<br />
<pre><br />
setenv boot_menu_timeout=[seconds?]<br />
</pre><br />
<br />
Also, by changing bootdelay you can have more time to take control of u-boot:<br />
<pre><br />
setenv bootdelay=[seconds]<br />
</pre><br />
<br />
===== Power-off =====<br />
<br />
Using<br />
neo1973 power-off<br />
<br />
you can switch the device off from the bootloader prompt.<br />
<br />
===== Battery charger related =====<br />
<br />
For a detailed description of the charger basics, see [[Neo1973 Battery Charger]].<br />
<br />
====== Inquiring the charger state ======<br />
<br />
You can get the current charger status by issuing<br />
neo1973 charger status<br />
<br />
The following modes are possible:<br />
<br />
* idle - no charging<br />
* trickle - FIXME<br />
* pre - Slow (100mA) charging, works in hardware.<br />
* fast_cccv - Fast (500mA) charging, using Constant-Current followed by Constant Voltage (Li-Ion)<br />
<br />
====== Disabling battery charging ======<br />
<br />
You can disable battery charging (until the next reboot) by issuing<br />
neo1973 charger off<br />
<br />
====== Forcing fast charge ======<br />
<br />
Using<br />
neo1973 charger fast<br />
you can force the PMU to try to do a fast (500mA) charge of the battery. It will abort if the battery is in over temperature or some other error condition occurs.<br />
<br />
====== Enabling / Disabling automatic fast charge ======<br />
<br />
Autofast is a feature of the PCF50606 PMU. It means that the fast_cccv mode will be automatically selected if a charger with suitable voltage is plugged in, and the battery not in over temperature condition.<br />
<br />
{{warning|This is potentially dangerous. Only enable autofast if you ARE SURE that you can draw 500mA from the USB connector. This is the case with a wall outlet charger, or if you are attached to a self-powered hub or a desktop PC root hub. Bus powered hubs and some laptops only provide 100mA on their USB ports and can thus not support fast charging}}<br />
<br />
You can enable or disable autofast by <br />
neo1973 charger autofast<br />
and<br />
neo1973 charger !autofast<br />
respectively.<br />
<br />
===== Backlight =====<br />
<br />
You can switch the backlight on and off by using<br />
neo1973 backlight on<br />
and<br />
neo1973 backlight off<br />
respectively.<br />
<br />
===== Vibrator =====<br />
<br />
You can switch the vibrator on and off by using<br />
neo1973 vibrator on<br />
and <br />
neo1973 vibrator off<br />
respectively.<br />
<br />
==== S3C2410 specific commands ====<br />
<br />
<pre><br />
GTA01Bv2 # help s3c2410<br />
s3c2410 speed get - display current PLL speed config<br />
s3c2410 speed list - display supporte PLL speed configs<br />
s3c2410 speed set - set PLL speed<br />
GTA01Bv2 # s3c2410 speed list<br />
50 MHz<br />
101 MHz<br />
202 MHz<br />
266 MHz<br />
GTA01Bv2 # s3c2410 speed get<br />
FCLK = 202 MHz, HCLK = 101 MHz, PCLK = 50 MHz<br />
GTA01Bv2 # s3c2410 speed set 101<br />
GTA01Bv2 # s3c2410 speed get<br />
FCLK = 101 MHz, HCLK = 50 MHz, PCLK = 50 MHz<br />
</pre><br />
<br />
===== 266MHz clock =====<br />
<br />
You can re-configure the [[S3C2410]] PLL to generate a 266 MHz core cpu clock (rather than the 200MHz default) by using<br />
GTA01Bv2 # s3c2410 speed set 266 <br />
and<br />
GTA01Bv2 # s3c2410 speed set 202<br />
respectively.<br />
<br />
{{warning|The old hardware (Phase 0 - GTA01Bv3) only runs stable at 266MHz if you do not attach anything (esp. the FPC / [[Debug Board]] to the Debug Port}}<br />
<br />
==== TFTP on QT2410 ====<br />
<br />
The QT2410 cs8900a Ethernet can be used to download images via network.<br />
<br />
First, you have to make sure that ''ipaddr'', ''serverip'', ''ethaddr' and ''netmaskk'' are set correctly in the environment:<br />
<br />
<pre><br />
QT2410 # printenv<br />
ethaddr=00:01:02:03:04:05<br />
netmask=255.255.255.0<br />
ipaddr=192.168.100.100<br />
serverip=192.168.100.1<br />
</pre><br />
<br />
<br />
===== TFTP kernel download =====<br />
<br />
<pre><br />
QT2410 # tftpboot 0x32000000<br />
*** Warning: no boot file name; using 'C0A86464.img'<br />
TFTP from server 192.168.100.1; our IP address is 192.168.100.100<br />
Filename 'C0A86464.img'.<br />
Load address: 0x32000000<br />
Loading: #################################################################<br />
#################################################################<br />
#################################################################<br />
#################################################################<br />
##########################################<br />
done<br />
Bytes transferred = 1544788 (179254 hex)<br />
</pre><br />
<br />
you can then commence booting via<br />
<pre><br />
QT2410# bootm 0x32000000<br />
</pre><br />
<br />
== Device Firmware Upgrade ==<br />
<br />
Our version of u-boot also implements [[USB DFU]]. This can be useful to<br />
load files and kernel for quick testing.<br />
<br />
To find out whether your version of u-boot supports this, use the output of<br />
$ lsusb -v -d 1457:5119<br />
while the phone is in u-boot mode.<br />
<br />
If it supports DFU, you should see the following snippet towards the end of the output:<br />
<pre><br />
Interface Descriptor:<br />
bLength 9<br />
bDescriptorType 4<br />
bInterfaceNumber 2<br />
bAlternateSetting 0<br />
bNumEndpoints 0<br />
bInterfaceClass 254 Application Specific Interface<br />
bInterfaceSubClass 1 Device Firmware Update<br />
bInterfaceProtocol 1 <br />
iInterface 0 <br />
</pre><br />
<br />
For information on how to do firmware upgrades, please see [[dfu-util]].<br />
<br />
=== Booting files over DFU ===<br />
<br />
To load a file at memory address 0x32000000:<br />
<pre><br />
dfu-util -a 0 -D fileToLoad -R<br />
</pre><br />
<br />
After that, send 'bootm 0x32000000' to u-boot or 'bootelf 0x32000000' if<br />
its an elf file.<br />
<br />
Simple python script that can boot an ELF image - avoiding a ACM bug that breaks on large packets.<br />
<br />
<pre><br />
#!/usr/bin/python<br />
import sys<br />
import os<br />
import time<br />
<br />
cmd1 = "neo backlight off\n"<br />
cmd2 = "bootelf 0x32000000\n"<br />
<br />
def output(tty, str):<br />
for x in str:<br />
tty.write(x)<br />
tty.flush()<br />
<br />
if len(sys.argv) == 2:<br />
print "Loading %s..." % sys.argv[1]<br />
<br />
loadfile = "dfu-util -a 0 -D %s -R" % sys.argv[1]<br />
<br />
os.system(loadfile)<br />
<br />
time.sleep(3)<br />
<br />
tty = open("/dev/ttyACM0", "a")<br />
<br />
output(tty, cmd1)<br />
output(tty, cmd2)<br />
<br />
tty.close()<br />
else:<br />
print "Usage: %s elffile" % sys.argv[0]<br />
print ""<br />
sys.exit(2)<br />
</pre><br />
<br />
{{Languages|Bootloader}}<br />
<br />
[[Category:Software]]<br />
[[Category:Guides]]</div>Abraxahttp://wiki.openmoko.org/wiki/Openmoko_Local_Groups:_Frankfurt_MainOpenmoko Local Groups: Frankfurt Main2007-07-30T22:31:52Z<p>Abraxa: /* Possible Participants */ Added myself</p>
<hr />
<div> See [[Talk:OpenMoko_Local_Groups:_Frankfurt|discussion]]<br />
<br />
=== Possible Participants ===<br />
{|border=1<br />
!Name<br />
!Skills<br />
!Level of Interest<br />
!Location<br />
!Other<br />
|-<br />
|[[User:scheelec|scheelec]]<br />
|web related, php/mysql, oracle<br />
|GTA01Bv4, later hopefully GTA02<br />
|Eschborn<br />
|thinking of a gps tracer application with database backend<br />
file based db for NEO or online DB via GPRS/WLAN.<br />
similar to the openroadmap project<br />
|-<br />
|[[User:Mickey|mickeyl]]<br />
|Architecture, Coding, Music<br />
|OpenMoko development platform<br />
|Frankfurt-Sachsenhausen<br />
|<br />
|-<br />
|Elrond<br />
|reverse engineering, many other things<br />
|GTA01Bv03 ;o)<br />
|Darmstadt<br />
|GPS: Working on Sphyrna (see [[Hammerhead/Protocol]]<br />
|-<br />
|Abraxa<br />
|Coding, web stuff, documentation<br />
|Coding of/for various apps, documentation<br />
|Friedberg<br />
|Currently writing the [[Music Player]]<br />
|}</div>Abraxahttp://wiki.openmoko.org/wiki/User_talk:AbraxaUser talk:Abraxa2007-07-28T20:27:35Z<p>Abraxa: </p>
<hr />
<div>I was just wondering if you are still writing the Media Player widget. I have an idea on a use for it, but I don't see the status indicated here in the Wiki. Thanks [[User:Historybuff|Historybuff]] 20:40, 28 July 2007 (CEST)<br />
<br />
Yes, I'm currently working on it actually. Mind sharing your thoughts? :) [[User:Abraxa|Abraxa]] 22:27, 28 July 2007 (CEST)</div>Abraxahttp://wiki.openmoko.org/wiki/Manuals/Neo_1973/deManuals/Neo 1973/de2007-05-23T17:24:39Z<p>Abraxa: Grammar & Friends</p>
<hr />
<div>Diest ist ein Wegweiser, der Ihnen das in Betrieb nehmen des Neo1973 erleichtert<br />
<br />
== Hardware ==<br />
<br />
=== Einlegen der Batterie ===<br />
<br />
Zustätzliche Informationen im Beitrag [[Disassembling Neo1973]].<br />
<br />
=== Das Telefon einschalten ===<br />
[[Image:Neo1973_uboot_splash.jpg|200px|thumb|bootloader splash screen]]<br />
Das drücken des Power Buttons (abhängig von Ihrer [[u-boot]] Version muss der Button >= 5 Sekunden gedrückt werden) wird den Boot Loader laden, danach den Kernel booten und X/GPE starten.<br />
<br />
Wenn Sie den Power Button ausreichend lange gedrück haben, wird vom Vibrationsmodul ein leichter Impuls zu spüren sein und die Hintergrundbeleuchtung angehen. Sie können nun den Button loslassen und dem Telefon beim booten zusehen.<br />
<br />
=== Das Telefon ausschalten ===<br />
<br />
==== Im Bootloader-Modus oder wenn das Telefon abgestürzt ist ====<br />
<br />
Wenn Sie den Power Button 9 Sekunden lange gedrückt halten schaltet das Telefon aus. Erkennen kann man dies an der Hintergrundbeleuchtung.<br />
<br />
==== Während des Betriebs eines vollständigen Linux-Systems inklusive Userspace ====<br />
<br />
Es reicht, den Power Button 5 Sekunden lang gedrückt zu halten. Der init-Prozess passt auf, dass das Telefon sicher heruntergefahren wird, was ca. 20 Sekunden dauern wird. Der X-Server wird geschlossen, man kommt auf eine leere Konsole und das Gerät schaltet aus - wie ein regulärer Linux-PC.<br />
<br />
=== Laden der Batterie ===<br />
<br />
Das [[Neo1973]] unterstützt 2 Lademodi: Einen 100mA Lademodus (genannt "pre-charge") und einen 500mA Lademodus (genannt "Schnellladen"). Aufgeladen wird immer über den USB-Stecker. Sie können jedes USB-A auf USB-mini-B Kabel verwenden, um das Gerät an einem beliebigen USB-Host zu laden.<br />
<br />
==== Im u-boot ====<br />
<br />
Während man sich im u-boot befindet, wird das Smartphone nur mit 100mA geladen. Dies wird sich in kommenden Revisionen ändern, das Schnellladen kann aber auch jetzt schon manuell aktiviert werden - unter [[U-boot#Battery_charger_related]] finden Sie mehr Informationen dazu.<br />
<br />
==== Im Linuxbetrieb ====<br />
<br />
Sobald man das Gerät per USB-Kabel angesteckt hat, beginnt es sich zu laden. Im Moment wird das Telefon standardmässig mit 100mA geladen, was zu wenig ist, um das Telefon sinnvoll zu betreiben.<br />
<br />
Wenn Ihr USB-Host 500mA unterstützt, dann wird automatisch auf "Schnellladen" umgeschaltet. Nachvollziehen kann man dies in der folgenden Zeile des Kernel-Logs:<br />
<br />
usb0: full speed config #1: 500 mA, Ethernet Gadget, using CDC Ethernet<br />
<br />
== So bekommt man Zugriff auf die Shell ==<br />
<br />
=== Mit dem Terminal-Emulator und der OnScreen Tastatur ===<br />
<br />
"Klicke" (mit dem Stylus) auf das Pfeil-Symbol links oben, um ein Drop-Down-Menü mit den Punkten "Media", "Settings", "Utilities" und "Desktop" zu bekommen. Wähle "Utilities->Panel->Input Manager" aus und ein Tastatur-Symbol wird auf der oberen Leiste erscheinen. Nun kannst du die Tastatur direkt über dieses Symbol erreichen.<br />
<br />
Vom Desktop aus: wähle "Active tasks->rxvt", um auf die Root-Shell zu gelangen.<br />
<br />
=== Bei der Nutzung von Ethernet-Emulation über das USB-Kabel ===<br />
<br />
Der Linux[[kernel]] des Neo1973 unterstützt das "cdc_ether USB gadget", welches eine Standardimplementierung um ein Ethernet Gerät über USB zu emulieren enthält.<br />
<br />
Sobald der Kernel geladen ist und das Telefon per USB verbunden ist, bekommt man ein '''usb0''' Gerät am Host angezeigt. <br />
<br />
Das Telefon wird die IP4 Adresse 192.168.0.202/24 haben. Du kannst `ifconfig` auf der Konsole des Telefons ausführen, um dies zu überprüfen. (das ganze ist optional - wenn es nicht funktioniert dann beachte die Informationen im Folgenden)<br />
<br />
Sobald eine USB-Verbindung mit einem Linux-Rechner hergestellt wurde, wird (sollte?) das Kernel-Modul "cdc_ether" geladen und es erscheint ein Netzwerkadapter mit dem Namen usb0.<br />
<br />
Auf dem Host-Rechner sollte dem Interface usb0 die IP-Adresse 192.168.0.200 zugewiesen werden<br />
# ifconfig usb0 192.168.0.200 netmask 255.255.255.0<br />
<br />
Danach sollte man das Telefon pingen können<br />
# ping 192.168.0.202<br />
<br />
Und zu guter letzt kann man per SSH mit dem Smartphone eine Verbindung aufbauen<br />
# ssh root@192.168.0.202<br />
<br />
Nachdem man die Passwort-Frage mit Enter (leeres Passwort) quittiert hat, sollte man eine Root-Shell haben.<br />
<br />
=== Mit dem debug board/serial/JTAG ===<br />
<br />
-> [[Debug Board#Usage_Instructions]]<br />
<br />
== Zugriff auf die Bootloader-Konsole ==<br />
<br />
Infos hierzu unter [[u-boot#Using_usbtty_from_Linux]]</div>Abraxahttp://wiki.openmoko.org/wiki/Press_CoveragePress Coverage2007-05-22T22:53:52Z<p>Abraxa: /* April 2007 */ Minor typo</p>
<hr />
<div>{|align=right<br />
|__TOC__<br />
|}<br />
[http://www.google.com/trends?q=openmoko%2Cneo1973&ctab=1&geo=all&date=all OpenMoko and Neo1973 on google trends.]<br />
<br />
This site contains the press coverage about OpenMoko and the Neo 1973 sorted by language and date. Newest on top.<br />
<br />
== Languages ==<br />
<br />
=== English ===<br />
==== May 2007 ====<br />
* [http://blogs.sun.com/brewin/entry/fic_and_openmoko_thank_you blog.SUN.com] FIC and OpenMoko - Thank You<br />
* [http://www.pikesoft.com/blog/index.php?itemid=174 PikeSoft.com] JavaFX Mobile: a new smartphone OS contender<br />
* [http://www.sfgate.com/cgi-bin/blogs/sfgate/detail?blogid=19&entry_id=16310 SFGate.com] Here comes the Sun Conference<br />
* [http://www.linuxdevices.com/news/NS7539760574.html LinuxDevices.com] Sun beams Linux/Java at mobile phon<br />
<br />
==== April 2007 ====<br />
* [http://www.palminfocenter.com/news/9371/openmoko-running-on-a-palm-tx/ Palm Infocenter] OpenMoko running on a palm TX<br />
* [http://jaidev.info/home/blog/archives/2007/04/13/openmoko.html JaidevInfo] OpenMoko<br />
* [http://www.wirelessweek.com/newsletter.aspx?id=137388 Wirelessweek.com] Democracy Hits the Mobile Phone<br />
* [http://elearner.edublogs.org/2007/04/11/technologies-is-that-a-word/ Edublogs.org] Technologies is that a word? <br />
* [http://www.linuxdevices.com/news/NS4777580627.html Linuxdevices.com] 200 million Linux phones to ship by 2012<br />
* [http://arstechnica.com/news.ars/post/20070415-palm-embracing-linux-in-the-hopes-of-being-relevant-again.html Ars Technica] Palm embracing Linux in the hopes of being relevant again] (Mentions Neo1973 in passing)<br />
<br />
==== March 2007 ====<br />
* [http://www.smartdevicecentral.com/article/OpenMokos+Open+Source+Phone/202546_1.aspx smartdevicecentral.com] OpenMoko's open source phone<br />
* [http://www.zdnetasia.com/news/communications/0,39044192,61996003,00.htm zdnet asia] Passing mention in an article on the Iphone.<br />
* [http://www.wikio.com/news/Sean+Moss-Pultz wikio.com] Sean Moss-Pultz News<br />
* [http://www.edparsons.com/?p=438 edparsons.com] iPhone chipping away at the walls<br />
* [http://blogs.pcworld.co.nz/pcworld/techsploder/2007/03/openmoko_makes_total_sense.html blogs.pcworld.co.nz] OpenMoko makes total sense<br />
* [http://www.totalueberwachung.de/blog/articles/2007/03/08/neo1973-arrived totalueberwachung.de] Neo1973 arrived<br />
* [http://www.makuchaku.info/blog/im-gonna-get-this-one makuchaku.info] I'm gonna get this one<br />
* [http://www.kitenet.net/~joey/blog/entry/openmoko_and_n800.html kitenet.net] OpenMoko and n800<br />
* [http://dominion.kabel.utwente.nl/koen/cms/the-neo1973-unboxed dominion.kabel.utwente.nl] The Neo1973 unboxed<br />
* [http://atulchitnis.net/diary/showentry/421 atulchitnis.net] An OpenMoko Phone arrives<br />
* [http://blog.matthewgast.com/2007/03/03/good-luck-openmoko blog.matthewgast.com] Good luck OpenMoko<br />
* [http://vaandoo.blogspot.com/2007/03/openmoko-neo1973-opensource-software.html vaandoo.blogspot.com] OpenMoko Neo1973 opensource software<br />
* [http://www.linuxdevices.com/news/NS7653749655.html linuxdevices.com] OpenMoko update; Neo1973 on sale in March<br />
* [http://www.ministryoftech.com/2007/03/05/the-5-hottest-phones-for-linux-fanatics/ ministryoftech.com] Brief line-up of the 5 hottest phones for Linux fans<br />
* [http://voxilla.com/soapvox/2007/03/01/industry-disruption-really-168 voxilla.com] Article about ETel Sean Moss-Pultz presentation<br />
* [http://blog.wired.com/gadgets/2007/03/eight_great_lin.html blog.wired.com] Gadget Lab: Eight Great Linux Smartphones<br />
* [http://gigaom.com/2007/03/01/openmoko-phone/ gigaom.com] OpenMoko Open-Source Mobile, coming soon - Interview with Sean Moss-Pultz<br />
* [http://www.oreillynet.com/etel/blog/2007/03/openmoko_1.html www.oreillynet.com] ETel coverage<br />
* [http://gordoncook.net/wp/?p=146 gordoncook.net] Short history of Neo1973 and other stuff<br />
* [http://www.engadget.com/2007/03/03/openmoko-details-pricing-availability-for-neo1973/ engadget.com] OpenMoko details pricing, availability for Neo1973<br />
* [http://www.uberpulse.com/us/2007/03/fic_wants_to_rewrite_the_rules_with_open_moko_mobile_phone.php www.uberpulse.com] Some images from ETel<br />
<br />
==== February 2007 ====<br />
* [http://www.scullen.ca/2007/02/15/forget-about-the-iphone-neo1973-is-far-more-exciting/ scullen.ca] Forget about the iPone, Neo1973 is far more exciting<br />
* [http://www.mobileread.com/forums/showpost.php?p=59124&postcount=4 mobileread.com] Show post<br />
* [http://www.pdasnews.com/articles/2568/1/ pdasnews.com] Linux-powered iPhone killer available online in March<br />
* [http://www.belutz.net/2007/02/05/openmoko/ belutz.net] OpenMoko<br />
* [http://www.mail-archive.com/community@lists.openmoko.org/msg03686.html mail-archive.com] OpenMoko community mail archive<br />
* [http://www.maclife.com/article/is_three_a_crowd_in_the_touch_screen_phone_arena maclife.com] Is there a crowd in the touch screen phone arena<br />
* [http://gopaultech.com/2007/02/fic-neo1973-linux-smartphone/ gopaultech.com] FIC Neo1973 Linux smartphone<br />
* [http://www.volweb.cz/horvitz/os-info/news-feb07-014.html volweb.cz] Open-source smartphone, with WiFi in version 2<br />
* [http://www.oreillynet.com/etel/blog/2007/02/etel_coverage_openmoko_opens_t.html oreillynet.com] ETel coverage OpenMoko opens<br />
* [http://www.mobilewhack.com/openmoko-neo1973-open-source-phone/ mobilewhack.com] OpenMoko Neo1973 open source phone<br />
* [http://www.engadget.com/2007/02/19/what-tech-would-the-presidents-rock-in-2007/ engadget.com] What tech would the presidents rock in 2007<br />
* [http://www.tuxmachines.org/node/13602 tuxmachines.org] What participation culture<br />
* [http://www.vanille-media.de/site/index.php/category/opensource/openmoko/ vanille-media.de] Opensource OpenMoko<br />
* [http://www.joetech.com/2007/02/15/openmoko-open-source-cell-phone/ joetech.com] OpenMoko open source cell phone<br />
* [http://www.makezine.com/blog/archive/2007/02/openmoko_open_s.html makezine.com] OpenMoko open<br />
* [http://www.linuxdevices.com/news/NS9706477996.html linuxdevices.com] Announce of the Openembedded booth at FOSDEM in Brussels.<br />
* [http://www.linuxdevices.com/news/NS2657814070.html linuxdevices.com] Quick interview with Sean and some pictures<br />
* [http://gizmodo.com/gadgets/smartphones/first-look-the-antiiphone-openmokos-neo1973-236841.php gizmodo.com] Photos and comments on hardware and software<br />
* [http://www.onecompare.com/mobile-news/article-asp~aid~244~pub~56321102~story~openmoko-launch-the-official-portal-for-development-of-the-openmoko-platform onecompare.com] Short news article<br />
* [http://crunchgear.com/2007/02/15/openmokos-open-source-mobile-os crunchgear.com] Holding the phone upside down<br />
* [http://www.slashgear.com/openmoko-and-fic-neo1973-updates-153926.php slashgear.com] Video interview and many pictures<br />
* [http://www.djlosch.com/article_Comparison%3A_iPhone_vs_A1200_vs_Neo1973 djlosch.com] Article comparing the Neo to the iPhone and A1200<br />
* [http://popsci.typepad.com/popsci/2007/02/up_close_and_pe.html popsci.typepad.com] Screenshot of Linux booting on the Neo<br />
* [http://video.google.de/videoplay?docid=-3742589179435830945&q=Openmoko video.google.com] Presentation of OpenMoko at the FOSDEM<br />
* [http://www.manilastandardtoday.com/?page=business6_feb27_2007 manilastandardtoday.com] Tale of two phones<br />
* [http://blog.printf.net/articles/2007/02/22/unboxing-the-openmoko-phone blog.printf.net] OLPC and older Neo1973.<br />
* [http://mako.cc/copyrighteous/freesoftware/20070228-00.html mako.cc] OLPC and older Neo1973 again.<br />
* [http://www.maclife.com/article/is_three_a_crowd_in_the_touch_screen_phone_arena MacLife] Is Three a Crowd among Touch-Screen Phones?<br />
<br />
==== January 2007 ====<br />
* [http://blogs.ft.com/techblog/2007/01/openmoko_harks_.html blogs.ft.com] OpenMoko harks back to hello moto<br />
* [http://opensource.sfsu.edu/node/258 opensource.sfsu.edu] Can you hear me now?<br />
* [http://losca.blogspot.com/2007/01/maemo-nokia-n800-has-competitor-in.html losca.blogspot.com] Maemo Nokia n800 has competitor in openness - OpenMoko<br />
* [http://21talks.net/voip/openmoko 21talks.net] OpenMoko: Not as sexy as the iPhone, but it’s a Linux phone<br />
* [http://www.linuxinfusion.com/openmoko-schedule-announced linuxinfusion.com] OpenMoko schedule announced<br />
* [http://users.livejournal.com/_paladine_/tag/smartphone users.livjournal.com] The Worlds First Opensource Linux Smartphone<br />
* [http://www.nungee.com/2007/01/25/openmoko/ nungee.com] OpenMoko<br />
* [http://www.sda-asia.com/sda/features/psecom,id,880,srn,2,channel,developer,nodeid,21,_language,Singapore.html sda-asia.com] OpenMoko Offers Open-source Smart phone T<br />
* [http://www.regdeveloper.co.uk/2007/01/15/open_phone/ regdeveloper.co.uk] Open Phone<br />
* [http://www.product-reviews.net/2007/01/17/fic-neo1973-smartphone-open-source-phone/ product-reviews.net] FIC Neo1973 smartphone open source phone<br />
* [http://gizmodo.com/gadgets/smartphones/openmoko-smartphone-did-they-have-a-time-machine-or-what-229243.php gizmodo.com] OpenMoko smartphone did they have a time machine or what<br />
* [http://www.oreillynet.com/conferences/blog/2007/01/openmoko_workshop_added_to_ete.html oreillynet.com] OpenMoko workshop added to ETel<br />
* [http://www.gadgetell.com/2007/01/openmoko-gets-interviewed-about-new-open-source-fic-neo1973/ gadgetell.com] OpenMoko gets interviewed about new open source FIC Neo1973<br />
* [http://www.slashgear.com/openmoko-interface-im-loving-it-173496.php slashgear.com] OpenMoko interface I'm loving it<br />
* [http://www.gadgetorama.com/news/news_details.php?gorid=2008 gadgetorama.com] OpenMoko news details<br />
* [http://tech.cybernetnews.com/2007/01/17/openmoko-vs-iphone-did-apple-copy/ tech.cybernetnews.com] OpenMoko vs iPhone did Apple copy<br />
* [http://techtrails.blogspot.com/2007/01/open-phones-with-open-moko-while.html techtrails.blogspot.com] Open phones with OpenMoko while<br />
* [http://blogger.xs4all.nl/jurjen1/archive/2007/01/17/174341.aspx bloger.xs4all.nl] OpenMoko open source mobile phone<br />
* [http://www.ringnokia.com/2007/01/i_am_highly_cur.html ringnokia.com] I'm highly curious<br />
* [http://www.oreillynet.com/etel/blog/2007/01/iclone_1.html oreillynet.com] iClone<br />
* [http://forums.scotsnewsletter.com/index.php?showtopic=17685 forums.scotsnewsletter.com] Show topic<br />
* [http://understandinglimited.com/2007/01/15/iphone/ understandinglimited.com] iPhone and OpenMoko<br />
* [http://robertogaloppini.net/2007/01/12/openmoko-the-integrated-os-mobile-communications-platform-2/ robertogaloppini.net] OpenMoko the intergrated OS mobile communications platform<br />
* [http://www.funambol.com/blog/capo/2007/01/apple-please-do-not-forget-developers.html funambol.com] Apple please do not forget developers<br />
* [http://chopey.blogspot.com/2007/01/iphone-or-not-to-iphone.html chopey.blogspot.com] iPhone or not to iPhone<br />
* [http://opendotdotdot.blogspot.com/2007/01/openmoko.html opendotdotdot.blogspot.com] OpenMoko<br />
* [http://www.e-pcmag.gr/forum/index.php?showtopic=19505 e-pcmag.gr] Show topic<br />
* [http://www.costpernews.com/2007/01/12/anything-you-can-do-we-can-do-better/ costpernews.com] Anything you can do we can do better<br />
* [http://www.tectonic.co.za/view.php?id=1321 tectonic.co.za] iPhone vs OpenMoko - the Open Alternative<br />
* [http://lwn.net/Articles/217020/rss lwn.net] An OpenMoko update<br />
* [http://www.networkworld.com/news/2007/010907-moss-pultz.html networkworld.com] Q&A Building a new open source phone platform<br />
* [http://www.networkcomputing.com/showArticle.jhtml?articleID=196802226 networkcomputing.com] Startup Promises First Linux Smartphone Based On Open Standards<br />
* [http://www.osweekly.com/index.php?option=com_content&task=view&id=2420&Itemid=449 osweekly.com] Mobile Devices Adopt Open Source<br />
* [http://www.linuxdevices.com/news/NS8591201260.html linuxdevices.com] Linux phone market open up?<br />
* [http://www.pcmag.com/article2/0,1895,2080727,00.asp pcmag.com] Cell phone open up<br />
* [http://sonyericssonz558i.blogurple.com/2007/01/06/23/ sonyericssonz558i.blogurple.com] Sony Ericsson Z558i<br />
* [http://www.sannes.org/?p=5 sannes.org] An Open mobile phone that does what you want<br />
* [http://popsci.typepad.com/ces2007/2007/01/opensource_stri.html Popsci.com] Open Source Strikes Again<br />
* [http://gizmodo.com/gadgets/smartphones/openmoko-smartphone-did-they-have-a-time-machine-or-what-229243.php Gizmodo.com] OpenMoko interface compared to iPhone<br />
* [http://www.linuxjournal.com/xstatic/abstracts/upfront Linux Journal] Doc Searls in the feb 2007 issue<br />
* [http://www.osdir.com/Article9642.phtml OSDir.com] Mobile Linux for the Mobile Fan] -> [http://www.madpenguin.org/cms/?m=show&id=7710 MadPenguin] Mobile Linux for the Mobile Fan<br />
* [http://www.usnews.com/usnews/biztech/davesdownload/archive/070112/a_populist_challenge_to_apples.htm US News] A Populist Challenge to Apple's iPhone<br />
* [http://www.tectonic.co.za/view.php?id=1321 tectonic.co.za] iPhone vs OpenMoko: The open alternative<br />
* [http://www.informationweek.com/news/showArticle.jhtml?articleID=196802206&subSection=All+Stories InformationWeek] Startup Promises First Linux Smartphone Based On Open Standards<br />
* [http://www.theregister.co.uk/2007/01/15/open_phone/ The Register] Open Phones with Open Moko<br />
* [http://techreport.com/onearticle.x/11589 The Tech Report] OpenMoko offers open-source smart phone<br />
* [http://blogs.ft.com/techblog/2007/01/openmoko_harks_.html Financial Times] OpenMoko harks back to Hello Moto<br />
* [http://hardware.slashdot.org/article.pl?sid=07/01/20/1551200 Slashdot] OpenMoko Schedule Announced<br />
* [http://www.youtube.com/watch?v=jRvtAAXTIlg Youtube] Interview with Sean Moss-Pultz ([http://www.monoploid.be/dl/openmoko_sean_interview.ogm mirror in Ogg format])<br />
* [http://www.libervis.com/article/forget_iphone_hail_openmoko_the_true_revolution Libervis.com] Forget iPhone, hail OpenMoko, the true revolution<br />
* [http://gizmodo.com/gadgets/smartphones/sizemodo-iphone-vs-openmoko-neo1073-229294.php Gizmodo]iPhone vs. Openmoko Neo1973] (please, don't mind the typo i n the title)<br />
<br />
==== December 2006 ====<br />
* [http://www.pikesoft.com/blog/index.php?itemid=133 pikesoft.com] Cheap, totally open Linux phone will ship next month<br />
* [http://www.cdrinfo.com/Sections/News/Details.aspx?NewsId=19254 cdrinfo.com] FIC to release Linux based Smartphone<br />
<br />
==== November 2006 ====<br />
* [http://www.ministryoftech.com/2006/11/09/fic-neo1973-smartphone-with-linux-based-openmoko-open-source-platform/ ministryoftech.com] FIC Neo1973 smartphone with linux-based OpenMoko open source platform<br />
* [http://www.mobiletechnews.com/info/2006/11/09/124614.html mobiletechnews.com] OpenMoko Linux mobile platform and Neo1973 smartphone announced<br />
* [http://news.softpedia.com/news/FIC-Neo1973-for-all-the-Linux-Lovers-out-There-40344.shtml news.softpedia.com] FIC Neo1973 for all the Linux lovers out there<br />
* [http://www.openembedded.org/openmoko-fic-choosing-openembedded openembedded.org] OpenMoko FIC choosing openembedded<br />
* [http://news.com.com/2300-1037_3-6134795-1.html news.com.com] FIC's Linux handset<br />
* [http://www.slashphone.com/77/5784.html slashphone.com] OpenMoko Announces Open Source Mobile Communications Platform <br />
* [http://www.arm.com/iqonline/news/marketnews/15616.html arm.com] Open Linux Based, ARM Powered Mobile In Wings<br />
* [http://news.com.com/Second+open+Linux+handset+unveiled/2100-1039_3-6133974.html news.com.tw] Second open Linux handset unveiled<br />
* [http://www.infoworld.com/article/06/11/08/HNlinuxphone_1.html?COMMERCIAL%20LINUX infoworld.com] FIC debuts open Linux-based smartphone <br />
* [http://www.michaeldolan.com/431 michaeldolan.com] A must have: OpenMoko cell phone with GPS and...apt-get<br />
* [http://nandz.blogspot.com/2006/11/my-dream-phone.html nandz.blogspot.com] My dream phone<br />
* [http://www.linuxdevices.com/news/NS2986976174.html linuxdevices.com] Cheap, hackable Linux smartphone due soon<br />
* [http://www.linuxdevices.com/news/NS7056478804.html linuxdevices.com] First OpenMoKo phone taps dual-licensed SyncML stack<br />
* [http://lwn.net/Articles/208298/ lwn.net] The OpenMoko open phone<br />
* [http://www.theinquirer.net/default.aspx?article=35590 theinquirer.net] A truly open Linux phone with GPS debuts<br />
<br />
=== German ===<br />
<br />
==== April 2007 ====<br />
* [http://www.pro-linux.de/news/2007/11133.html pro-linux] - OpenMoko produziert erste Muster<br />
* [http://www.golem.de/0704/51970.html golem.de] - Open-Source-Handy vor Produktionsbeginn<br />
<br />
==== March 2007 ====<br />
* [http://chaosradio.ccc.de/cre042.html Chaosradio Express] - Das neue Projekt zur Entwicklung eines Telefons mit freier Software<br />
* [http://www.pro-linux.de/news/2007/10966.html pro-linux] - OpenMoko sucht Unterstützung<br />
<br />
==== February 2007 ====<br />
* [http://www.digital-living-magazin.de/index.php?pid=17&art=2050&cid=DLnewsletter digital-living-magazin.de] - Linux erobert Mobilfunkmarkt<br />
* [http://www.heise.de/tr/artikel/85138 Technology Review] - Open-Source-Handy, nächster Versuch<br />
* [http://www.pro-linux.de/news/2007/10833.html pro-linux] - OpenMoko-Quellcode angekündigt<br />
* [http://www.heise.de/newsticker/meldung/85354 heise online] - OpenMoko: Linux-Plattform für Handys freigegeben<br />
* [http://www.mobile2day.de/news/news_details.html?nd_ref=6870&n_multi=0&nf_id=0&nt_id=0&f_date_m=01&f_date_y=2007&t_date_m=04&t_date_y=2007&from=archive Mobile2Day] - OpenMoko bringt Details zum Neo1973<br />
<br />
==== November 2006 ====<br />
<br />
* [http://golem.de/0611/48824.html golem.de] - OpenMoko kündigt Open-Source-Handy an<br />
* [http://www.heise.de/newsticker/meldung/80714 heise online] - Smartphone mit offener Linux-Plattform<br />
* [http://www.pro-linux.de/news/2006/10448.html pro-linux] - Offenes Linux-Smartphone »OpenMoko« für Januar 2007 angekündigt<br />
<br />
=== Scandinavian ===<br />
* [http://www.amobil.no/nyhet/mobiltelefoner/openmoko_klart_for_verden/36554 Amobil.no] OpenMoko klart for verden<br />
* [http://www.nyteknik.se/art/48697 NyTeknik] Snart är den öppna Linuxtelefonen här (Swedish) (Translation: this article states free release to selected developers Feb 11, commercial release to developers March 11, and main release to market Sep 11. See also [http://lists.openmoko.org/pipermail/announce/2007-January/000000.html])<br />
<br />
=== French ===<br />
* [http://linuxfr.org/2006/11/08/21596.html LinuxFR] OpenMoko : sortie en janvier d'un téléphone-GPS enfin libre!<br />
<br />
=== Chinese ===<br />
* [http://people.debian.org.tw/~chihchun/2007/05/17/openmoko-at-tossug/ debian.org.tw] OpenMoko at TOSSUG<br />
* [http://magicdesign.blogspot.com/2007/05/free-your-phoneopenmoko.html MagicDesign] Free your phone OpenMoko<br />
* [http://people.debian.org.tw/~chihchun/2007/04/30/have-fun-with-openmokoneo1973/ Debian.org.tw] Have fun with OpenMoko Neo1973<br />
* [http://orzlab.blogspot.com/ Orzlab] When Java meets OpenMoko<br />
* [http://blog.footoo.org/?p=115 FooToo.org] Install OpenMoko Emulator<br />
* [http://www.jollen.org/blog/2007/01/openmoko_announce.html Jollen.org] OpenMoko Kick-Off<br />
* [http://zh.wikipedia.org/wiki/OpenMoko Wikipedia.org] OpenMoko Chinese Wiki<br />
* [http://tw.myblog.yahoo.com/champ_yen/article?mid=211&prev=212&next=-1 Yahoo.com.tw] Forget about iPhone, Hail OpenMoko <br />
* [http://www.jollen.org/blog/2006/11/mobile_20_openmoko_linux_smart.html Jollen.org] OpenMoko Linux Smartphone<br />
* [http://blog.roodo.com/ystuan/archives/2733869.html Roodo.com] OpenMoko</div>Abraxahttp://wiki.openmoko.org/wiki/Main_Page/zh_cnMain Page/zh cn2007-05-22T22:47:42Z<p>Abraxa: Reverted spam/vandalism</p>
<hr />
<div>{|align=right<br />
|__TOC__<br />
|}<br />
<big>'''欢迎来到OpenMoko公共维基'''</big><br><br />
<small>其他语言版本请看本页面[[#bottom|底部]]。</small> <br />
<br />
这是逐渐形成的,权威的[[Neo1973]]开发资源 -- 运行[[OpenMoko]]的GSM+[[Hardware:AGPS|AGPS]]智能手机。本维基的目的是协作改进和更新此站点上的所有信息。<br />
<br />
== 简介 ==<br />
<br />
* [[Introduction/zh_cn|简介]] - OpenMoko是什么<br />
** [[Introduction/zh_cn#照片|照片]]<br />
** [[Introduction/zh_cn#视频|视频]]<br />
* [[FAQ/zh_cn|常见问题与解答]]<br />
<br />
== 项目资源 ==<br />
* [[Development resources/zh_cn|开发资源]] - 资源(邮件列表,svn, ...)<br />
** [[Development resources/zh_cn#邮件列表|邮件列表]]<br />
** [[Development resources/zh_cn#维基|维基]]<br />
** [[Development resources/zh_cn#Bugzilla|Bugzilla]]<br />
** [[Development resources/zh_cn#IRC频道|IRC频道]]<br />
** [[Development resources/zh_cn#SVN|svn + svnweb]]<br />
** [[Development resources/zh_cn#项目|项目]]<br />
<br />
== 开发者文档 ==<br />
<br />
=== 实践指南 ===<br />
* [[Getting Started with your Neo1973]]<br />
* [[MokoMakefile|Building OpenMoko using the MokoMakefile]] ([[MokoMakefile/ru|Rus]])<br />
* [[Building OpenMoko from scratch (pre-BBT)]]<br />
* [[Migration to bad block tolerant builds]]<br />
* [[Getting Openmoko working on host with Xoo]]<br />
<br />
=== 硬件参考文档 ===<br />
<br />
* 所有[[Hardware/zh_cn|硬件]]相关文档和说明书<br />
* [[Neo1973 Hardware/zh_cn|Neo1973硬件]] - 概观我们所使用的元件,PCB照片<br />
** [[Disassembling Neo1973|拆解Neo1973]] - 硬件拆解过程图解<br />
* [[Debug Board|调试板]] - 针对Neo1973的调试板<br />
** [[Connecting Neo1973 with Debug Board v2|连接Neo1973和调试板v2]]<br />
* [[QT2410/zh_cn|QT2410]] - 一个我们在开发早期阶段所使用的S3C2410开发板<br />
<br />
=== 软件参考文档 ===<br />
* 软件架构<br />
** [[OpenMokoFramework]] - OpenMoko应用程序框架<br />
* 主机端工具<br />
** [[dfu-util/zh_cn|dfu-util]] - 主机端程序[[USB DFU]](Device Firmware Update)<br />
** [[devirginator]] - A set of scripts to re-program the entire device<br />
** [[sjf2410-linux]] - a JTAG NAND flashing program, last-resort phone un-bricking<br />
** [[s3c2410_boot_usb]] - a program for transferring code to the RAM of QT2410 (not Neo1973)<br />
** [[Toolchain]] - 我们用来进行程序编译的工具链<br />
** [[Neo1973 OpenOCD]] - 我们用来进行开发的片上调试器<br />
** [[OpenEmbedded]] - The distribution building framework<br />
* 设备软件<br />
** 底层<br />
*** [[u-boot/zh_cn|u-boot]] - 我们使用的引导装载程序,包括针对我们所做的修改部分的一些文档<br />
*** [[kernel/zh_cn|内核]] - 我们使用的Linux内核,包括针对我们所做的修改部分的一些文档<br />
** 用户空间<br />
*** [[gsmd]] - the GSM daemon managing the GSM Modem<br />
*** [[gpsd]] - the AGPS (Assisted GPS) daemon<br />
*** [[OpenMoko]] - The OpenMoko distribution<br />
**** [[OpenMoko2007]] - The first intended release of it<br />
**** [[Userspace root image]]<br />
<br />
==== 用户接口相关文档 ====<br />
* [[Look & Feel]]<br />
* [[Applications]]<br />
* [[Widgets]]<br />
** [[Widget Inheritance Graph]]<br />
<br />
=== 其他开发相关文档 ===<br />
* [[Templates]]<br />
* [[PIM Storage]]<br />
* [[Coding Guidelines]]<br />
* [[How to run OpenMoko Apps on PC]]<br />
* [[OpenMoko#Setting_up_an_OpenMoko_SDK|How to setup the OpenMoko SDK]]<br />
* [[License]] - How we license our code<br />
* [[Development resources]] - Describes the resources (lists, svn, ...)<br />
* [[Neo1973 Phase 0]] -- Information for Phase 0 device owners<br />
<br />
== 管理/组织 ==<br />
<br />
* [[Shipping Notes]] - Information to help FIC how to ship products to you<br />
* [[My Account]] - Ideas for what sort of account based services FIC should provide with the phone.<br />
<br />
== 其他 ==<br />
* [[Neo1973 and Windows]] - If you want to commit that offence ;)<br />
* [[Press Coverage]] - 媒体眼中的OpenMoko项目<br />
* [[mFAQ]] - The OpenMoko Misinformation FAQ ('''mFAQ''') - What the press '''''incorrectly''''' says about the OpenMoko project<br />
* [[Wish List]] - A collection of ideas and ideals we'd like to see implemented some day<br />
* [[Wish List - Hardware]] - A collection of ideas we'd like to see in the next Neo release<br />
* [[Media Content]] - What types of media on the device can we use (that is non-software)?<br />
* [[Testimonials]] - How did you get to OpenMoko?<br />
* [[Buying Interest List]] - (Not official and not a pre-order page) Have you have put money aside for Neo1973? Put your nick here.<br />
* [[Style Sheet]] - The '''''correct''''' way to spell OpenMoko and other words<br />
* [[iPhone]] - Apple iPhone和FIC Neo1973的比较<br />
* [[Translation]] - Translation of OpenMoko<br />
<br />
== FIC / OpenMoko at Events ==<br />
<br />
* [http://pingwinaria.linux.org.pl/PLUG/imprezy/pingwinaria/2007/agenda Pingwinaria 2007] - Krynica, Poland - 15-18 March 2007 - Tomasz Zieliński will give a talk about OpenMoko and Marcin Juszkiewicz will talk about OpenEmbedded<br />
* [http://fostel2007.fostel.org/index.php/Main_Page FOSTEL] - Paris, France - 4-5 April 2007 - Sean Moss-Pultz will be there<br />
<br />
===Past Events===<br />
* [[FOSDEM]] - Brussels, Belgium - 23 to 25 Februari 2007<br />
* [[ETel]] - Tuesday, February 27 through Thursday, March 1, 2007, near San Francisco<br />
* [http://www.linuxforum.dk/2007/ Linux Forum] - Copenhagen Denmark. 2.-3. March 2007. [http://www.linuxforum.dk/2007/program/saturday/Martin_Hansen.shtml Presentation] about OpenMoko on Saturday by Martin Hansen and Ole Tange.<br />
<br />
== 针对不同目标读者的章节 ==<br />
<br />
* [[Basic End-user/zh_cn|初级终端用户]] - Information for end users that want basic functionality and no surprises<br />
* [[Advanced End-user/zh_cn|高级终端用户]] - Information for advanced end-users that want advanced and experimental functionality but who are not programmers<br />
* [[Application Developer/zh_cn|应用程序开发人员]] - Information for application developers including ideas and specifications for applications, and tools to build them<br />
* [[System Developer/zh_cn|系统开发人员]] - 针对系统开发人员的信息,包括引导装载程序,内核和程序库<br />
* [[Hardware Developer/zh_cn|硬件开发人员]] - Information for the hardware developer including hardware specs, and debug board<br />
<br />
== 维基起步 ==<br />
<br />
* 请阅读我们的[[OpenMoko Wiki Editing Guidelines/zh_cn|OpenMoko维基编辑指南]]<br />
* [http://www.mediawiki.org/wiki/Help:Configuration_settings Configuration settings list]<br />
* [http://meta.wikimedia.org/wiki/Help:Wikitext_reference MediaWiki Wikitext Reference]<br />
* [http://www.mediawiki.org/wiki/Help:FAQ MediaWiki FAQ]<br />
<br />
<span id="bottom"></span><br />
{{Languages|Main_Page}}</div>Abraxahttp://wiki.openmoko.org/wiki/User_talk:Kencnidpf2ts4ufn35tpl2rnUser talk:Kencnidpf2ts4ufn35tpl2rn2007-05-22T22:44:17Z<p>Abraxa: Removed spam</p>
<hr />
<div></div>Abraxahttp://wiki.openmoko.org/wiki/MokoMakefileMokoMakefile2007-05-02T18:33:25Z<p>Abraxa: /* QEMU */ Added a hint to make the qemu process more clear to beginners</p>
<hr />
<div>==MokoMakefile==<br />
MokoMakefile is a fully automated way of setting up an OpenMoko development environment. It is an invaluable tool for getting new developers up and running with a build environment which is configured the same as all the other existing developers. It brings the same repeatability to build environment creation and maintenance as that which OpenEmbedded brings to the main task of actually building embedded software distributions.<br />
<br />
Note that MokoMakefile does *not* replace bitbake, or svn, or monotone, or openembedded, or qmake, or anything else. It is a wrapper around all that to make it easy to set up and maintain a development environment that fully complies with the setup instructions published by OpenMoko. Note that you need about 7 GB of available disk space for MokoMakefile to succeed.<br />
<br />
MokoMakefile is developed by [[User:RodWhitby|Rod Whitby]] - it is not an official product of OpenMoko (although I would be happy for them to pick it up and use it internally). If there is any discrepancy between the [[Building_OpenMoko_from_scratch|official OpenMoko build instructions]], and the operation of the MokoMakefile, then you should consider the official instructions to be correct.<br />
<br />
=== Before you begin ===<br />
'''Check that your /bin/sh (ls -l /bin/sh) is not linked to dash rather than bash.''' Using dash will cause you pain. <br />
<br />
If you have previously built with dash as your sh shell then your perl compile is probably broken. One symptom is that the build will error and whine about an 'Unterminated quote string' another symptom is a message that says 'You haven't done a "make depend" yet!' If you get these then you need to:<br />
make clean-package-perl<br />
make clean-package-perl-native<br />
and rebuild.<br />
<br />
If all else fails then just rm -rf the perl work dir and the perl stamps here's an i686 host example:<br />
rm -rf build/tmp/work/i686-linux/perl-native-5.8.7-r3 <br />
rm -f build/tmp/stamps/i686-linux/perl*<br />
<br />
=== Installation ===<br />
Here are the steps to use it:<br />
<br />
1 - Make sure your build host is set up according to:<br />
http://www.openembedded.org/wiki/OEandYourDistro<br />
2 - Create your $OMDIR directory:<br />
mkdir /home/moko ; cd /home/moko<br />
3 - Grab MokoMakefile:<br />
wget http://www.rwhitby.net/files/openmoko/Makefile<br />
4 - Set up the environment:<br />
make setup<br />
5 - Start building. Before starting a lenghty make process, check in Tips section about how to make Make multicore aware:<br />
make openmoko-devel-image<br />
<br />
This will set up the recommended directory structure as described in [[Building OpenMoko from scratch]], will download all the required software (from the right places with the right versions), and will immediately start building an image.<br />
<br />
Once you have done this, you can choose to continue using the MokoMakefile to initiate your subsequent builds, or you can go into the build directory and run bitbake commands manually. The choice is yours.<br />
<br />
===Updating the environment=== <br />
For easy maintenance of your build environment the following commands are available.<br />
<br />
1 - To update the MokoMakefile to the latest version:<br />
make update-makefile <br />
<br />
2 - To update the OpenMoko repository checkout and the MokoMakefile patches to the latest version:<br />
make update<br />
<br />
3 - To make sure that any recent changes to the build directory structure have been applied:<br />
make setup <br />
<br />
A quick way to rebuild a new image with the latest updates:<br />
make update-makefile && make update && make setup && make openmoko-devel-image<br />
<br />
===Reporting Problems===<br />
<br />
First, make sure that the problem is reproducable after running<br />
<br />
make update-makefile ; make update ; make setup<br />
<br />
then running<br />
<br />
make clean-package-<foo><br />
<br />
(where you replace <foo> with the name of the package which is failing)<br />
<br />
then running<br />
<br />
make all<br />
<br />
If you can get the error to occur three times in a row after running that sequence of commands three times, then feel free to report it to rwhitby in #openmoko on [http://wiki.openmoko.org/wiki/Development_resources#IRC IRC].<br />
<br />
===Work-arounds===<br />
<br />
Work-arounds for temporary or isolated problems should be added to the [[Talk:MokoMakefile|Discussion page]] which is associated with this page. As they are fixed, they will be removed from that page.<br />
<br />
===Tips=== <br />
*You can reduce the amount of consumed disk space significantly by adding<br />
INHERIT += "rm_work"<br />
in your local.conf (e.g. /home/moko/build/conf/local.conf). This will remove the contents of each build/tmp/work/*/<package> directory after the corresponding package builds correctly.<br />
<br />
<br />
*If you an encounter an error with monotone similar to the following:<br />
mtn: misuse: database /home/moko/OE.mtn is laid out according to an old schema<br />
Then you need to upgrade OE.mtn Use the following command while in /home/moko:<br />
# mtn --db OE.mtn db migrate<br />
<br />
*If a certain package does not build due to corrupted download or some such try to remove the sources and rebuild it.<br />
rm sources/<package>*<br />
cd build<br />
. ../setup-env<br />
bitbake -crebuild <package><br />
after that your build might just work again.<br />
<br />
*For people with multiple CPU's (or dual-core ones) this small patch might be useful to build things faster.<br />
Edit the local.conf and add the following lines:<br />
PARALLEL_MAKE = "-j 4"<br />
BB_NUMBER_THREADS = "4"<br />
<br />
Change the PARALLEL_MAKE and BB_NUMBER_THREADS values to something that suits better if it chokes your machine.<br />
<br />
*For amd64 host users you need the patch from http://bugs.openembedded.org/show_bug.cgi?id=1765 to build db3-native<br />
<br />
===QEMU===<br />
The MokoMakefile now has support for automatically building, flashing, and running [[OpenMoko under QEMU|the new Neo1973 emulator]] (which is based on QEMU).<br />
<br />
“make qemu” will build qemu-neo1973, download the latest official OpenMoko images, flash the images into the virtual NAND flash, and run the emulator (you still need to install the makefile as mentioned above, however).<br />
<br />
Other targets are “make download-images” (to download the latest official images), “make flash-qemu-official” (to flash those images) and “make flash-qemu-local” (which will flash your latest locally built images), which can then be followed by “make run-qemu” or “make run-qemu-snapshot” to run the emulator with the most recently flashed images.<br />
<br />
Make sure you have the “lynx” and “netpbm” packages installed on your build host first.<br />
<br />
You're also invited to read more about how to run [[OpenMoko under QEMU]] in the article dedicated to this subject.<br />
<br />
===Developing with MokoMakefile===<br />
<br />
To make in-tree changes and have them built and used by qemu:<br />
<br />
cd /home/moko/openmoko<br />
quilt new descriptive-patch-name.patch<br />
quilt add trunk/src/name-of-file-to-change<br />
(do this for every file you are about to modify)<br />
...make the changes...<br />
quilt refresh<br />
(this creates a file in /home/moko/patches/openmoko-HEAD/ and <br />
updates the quilt series file there)<br />
<br />
To build the changes and have them used by qemu:<br />
<br />
make build-qemu<br />
make flash-qemu-local<br />
make run-qemu<br />
<br />
===Testimonials=== <br />
MokoMakefile is recommended by 4 out of 4 new developers on #openmoko, with testimonials such as "For some reason last night I couldn't get my manual install of everything to work (bb complained about my bbpath I think) ... but with your makefile, it works great!", and "MokoMakefile rocks!".<br />
<br />
Project page:<br />
http://mokomakefile.projects.openmoko.org/<br />
<br />
{{Languages|MokoMakefile}}</div>Abraxahttp://wiki.openmoko.org/wiki/MokoMakefileMokoMakefile2007-05-02T18:31:45Z<p>Abraxa: /* Before you begin */ Made the dash hint a little harder to overlook</p>
<hr />
<div>==MokoMakefile==<br />
MokoMakefile is a fully automated way of setting up an OpenMoko development environment. It is an invaluable tool for getting new developers up and running with a build environment which is configured the same as all the other existing developers. It brings the same repeatability to build environment creation and maintenance as that which OpenEmbedded brings to the main task of actually building embedded software distributions.<br />
<br />
Note that MokoMakefile does *not* replace bitbake, or svn, or monotone, or openembedded, or qmake, or anything else. It is a wrapper around all that to make it easy to set up and maintain a development environment that fully complies with the setup instructions published by OpenMoko. Note that you need about 7 GB of available disk space for MokoMakefile to succeed.<br />
<br />
MokoMakefile is developed by [[User:RodWhitby|Rod Whitby]] - it is not an official product of OpenMoko (although I would be happy for them to pick it up and use it internally). If there is any discrepancy between the [[Building_OpenMoko_from_scratch|official OpenMoko build instructions]], and the operation of the MokoMakefile, then you should consider the official instructions to be correct.<br />
<br />
=== Before you begin ===<br />
'''Check that your /bin/sh (ls -l /bin/sh) is not linked to dash rather than bash.''' Using dash will cause you pain. <br />
<br />
If you have previously built with dash as your sh shell then your perl compile is probably broken. One symptom is that the build will error and whine about an 'Unterminated quote string' another symptom is a message that says 'You haven't done a "make depend" yet!' If you get these then you need to:<br />
make clean-package-perl<br />
make clean-package-perl-native<br />
and rebuild.<br />
<br />
If all else fails then just rm -rf the perl work dir and the perl stamps here's an i686 host example:<br />
rm -rf build/tmp/work/i686-linux/perl-native-5.8.7-r3 <br />
rm -f build/tmp/stamps/i686-linux/perl*<br />
<br />
=== Installation ===<br />
Here are the steps to use it:<br />
<br />
1 - Make sure your build host is set up according to:<br />
http://www.openembedded.org/wiki/OEandYourDistro<br />
2 - Create your $OMDIR directory:<br />
mkdir /home/moko ; cd /home/moko<br />
3 - Grab MokoMakefile:<br />
wget http://www.rwhitby.net/files/openmoko/Makefile<br />
4 - Set up the environment:<br />
make setup<br />
5 - Start building. Before starting a lenghty make process, check in Tips section about how to make Make multicore aware:<br />
make openmoko-devel-image<br />
<br />
This will set up the recommended directory structure as described in [[Building OpenMoko from scratch]], will download all the required software (from the right places with the right versions), and will immediately start building an image.<br />
<br />
Once you have done this, you can choose to continue using the MokoMakefile to initiate your subsequent builds, or you can go into the build directory and run bitbake commands manually. The choice is yours.<br />
<br />
===Updating the environment=== <br />
For easy maintenance of your build environment the following commands are available.<br />
<br />
1 - To update the MokoMakefile to the latest version:<br />
make update-makefile <br />
<br />
2 - To update the OpenMoko repository checkout and the MokoMakefile patches to the latest version:<br />
make update<br />
<br />
3 - To make sure that any recent changes to the build directory structure have been applied:<br />
make setup <br />
<br />
A quick way to rebuild a new image with the latest updates:<br />
make update-makefile && make update && make setup && make openmoko-devel-image<br />
<br />
===Reporting Problems===<br />
<br />
First, make sure that the problem is reproducable after running<br />
<br />
make update-makefile ; make update ; make setup<br />
<br />
then running<br />
<br />
make clean-package-<foo><br />
<br />
(where you replace <foo> with the name of the package which is failing)<br />
<br />
then running<br />
<br />
make all<br />
<br />
If you can get the error to occur three times in a row after running that sequence of commands three times, then feel free to report it to rwhitby in #openmoko on [http://wiki.openmoko.org/wiki/Development_resources#IRC IRC].<br />
<br />
===Work-arounds===<br />
<br />
Work-arounds for temporary or isolated problems should be added to the [[Talk:MokoMakefile|Discussion page]] which is associated with this page. As they are fixed, they will be removed from that page.<br />
<br />
===Tips=== <br />
*You can reduce the amount of consumed disk space significantly by adding<br />
INHERIT += "rm_work"<br />
in your local.conf (e.g. /home/moko/build/conf/local.conf). This will remove the contents of each build/tmp/work/*/<package> directory after the corresponding package builds correctly.<br />
<br />
<br />
*If you an encounter an error with monotone similar to the following:<br />
mtn: misuse: database /home/moko/OE.mtn is laid out according to an old schema<br />
Then you need to upgrade OE.mtn Use the following command while in /home/moko:<br />
# mtn --db OE.mtn db migrate<br />
<br />
*If a certain package does not build due to corrupted download or some such try to remove the sources and rebuild it.<br />
rm sources/<package>*<br />
cd build<br />
. ../setup-env<br />
bitbake -crebuild <package><br />
after that your build might just work again.<br />
<br />
*For people with multiple CPU's (or dual-core ones) this small patch might be useful to build things faster.<br />
Edit the local.conf and add the following lines:<br />
PARALLEL_MAKE = "-j 4"<br />
BB_NUMBER_THREADS = "4"<br />
<br />
Change the PARALLEL_MAKE and BB_NUMBER_THREADS values to something that suits better if it chokes your machine.<br />
<br />
*For amd64 host users you need the patch from http://bugs.openembedded.org/show_bug.cgi?id=1765 to build db3-native<br />
<br />
===QEMU===<br />
The MokoMakefile now has support for automatically building, flashing, and running [[OpenMoko under QEMU|the new Neo1973 emulator]] (which is based on QEMU).<br />
<br />
“make qemu” will build qemu-neo1973, download the latest official OpenMoko images, flash the images into the virtual NAND flash, and run the emulator.<br />
<br />
Other targets are “make download-images” (to download the latest official images), “make flash-qemu-official” (to flash those images) and “make flash-qemu-local” (which will flash your latest locally built images), which can then be followed by “make run-qemu” or “make run-qemu-snapshot” to run the emulator with the most recently flashed images.<br />
<br />
Make sure you have the “lynx” and “netpbm” packages installed on your build host first.<br />
<br />
You're also invited to read more about how to run [[OpenMoko under QEMU]] in the article dedicated to this subject.<br />
<br />
===Developing with MokoMakefile===<br />
<br />
To make in-tree changes and have them built and used by qemu:<br />
<br />
cd /home/moko/openmoko<br />
quilt new descriptive-patch-name.patch<br />
quilt add trunk/src/name-of-file-to-change<br />
(do this for every file you are about to modify)<br />
...make the changes...<br />
quilt refresh<br />
(this creates a file in /home/moko/patches/openmoko-HEAD/ and <br />
updates the quilt series file there)<br />
<br />
To build the changes and have them used by qemu:<br />
<br />
make build-qemu<br />
make flash-qemu-local<br />
make run-qemu<br />
<br />
===Testimonials=== <br />
MokoMakefile is recommended by 4 out of 4 new developers on #openmoko, with testimonials such as "For some reason last night I couldn't get my manual install of everything to work (bb complained about my bbpath I think) ... but with your makefile, it works great!", and "MokoMakefile rocks!".<br />
<br />
Project page:<br />
http://mokomakefile.projects.openmoko.org/<br />
<br />
{{Languages|MokoMakefile}}</div>Abraxahttp://wiki.openmoko.org/wiki/Talk:Music_PlayerTalk:Music Player2007-04-21T07:02:32Z<p>Abraxa: last.fm question answered</p>
<hr />
<div>([[User:ken]])<br />
* Q:Does our media player support both audio and video files?<br />
* Q:What kind of decoding library should be added?<br />
<br />
([[User:Mickey]])<br />
<br />
The S3C2410 is too slow to do video.<br />
Audio-wise, we should limit support for the most popular formats which is<br />
* mp3<br />
* ogg<br />
* wav.<br />
We don't have an FM-Chip in the device, so I'm afraid we can't do .mid -- at least not in hardware. There are software MIDI players available, but I don't know whether this is interesting for us or not.<br />
<br />
The S3C2410 is too slow to do fullscreen video.<br />
It is able to do halfscreen video, with the LCD stretch mode enabled<br />
See [[Video Player]]<br />
--[[User:Speedevil|Speedevil]] 14:33, 18 February 2007 (CET)<br />
<HR><br />
<br />
[Q]: At present, we will decide what kind of third party software for media player?<br />
<br />
([[User:Sean|Sean Moss-Pultz]])<br />
''What kind of third party software do you have in mind?''<br />
<br />
([[user:Alex|Alex]]) ''What about RealPlayer? It has a linux version, but for mobile phone use, the performance should be taken into consideration.''<br />
<br />
([[User:Sean|Sean Moss-Pultz]])<br />
Unless we can't find a FOSS version, I would prefer not to use closed-source programs. Have a look at the follow:<br />
<br />
[http://www.mplayerhq.hu/design7/news.html]<br />
[http://www.videolan.org/vlc/]<br />
<br />
We should check what OPIE and GPE use. [[User:Mickey]] Can you provide some feedback here?<br />
<br />
([[user:Alex|Alex]]) GPE and OPIE both have their own media players.<br />
*GPE's NMF[http://gpe.handhelds.org/projects/GPE-media.shtml] is based on GStreamer[http://www.gstreamer.net/]. NMF can play ogg and mp3 files.<br />
*OPIE's opie-mediaplayer2[http://zaurus.logix.cz/ipkg/detail.xp?package=opie-mediaplayer2] It plays mp3, mpeg, wav, ogg, quicktime, divx and more. Also it is streaming capable.<br />
<br />
<hr><br />
<br />
Q: In "Playback Mode" section it says "15) Panning -- realtime updated when panning wheel been rotated." The panning wheel isn't mentioned anywhere else. Is it another option for objects 5 and 6?<br />
A: Looks like it, yeah. However I don't see the point for being able to do panning since the speakers are so close and point in the same direction, meaning that you probably won't be able to tell the differences panning would make. I'll have to check that on real hardware but unless it's noticable I'll leave panning out. Yes, it would also affect the headphones but I can't think of any situation where panning would be necessary with headphones so I don't see the point there either. If anyone does, please do tell :)<br />
[[User:Abraxa|Abraxa]] 16:44, 18 April 2007 (CEST)<br />
<br />
I would like a way to set balance, though I don't care much about realtime panning. My right ear is moderately less sensitive than my left, and I like to boost the volume on that ear, rather than on both ears, so I maintain some external hearing. (headphones only) --[[User:Speedevil|Speedevil]] 01:13, 20 April 2007 (CEST)<br />
<br />
<HR><br />
<br />
Q: '''12) Repeat''' -- Repeats the current track.<br>Is most player, repeat doesn't repeat the current track. It repeats the playlist (it starts playback from the beginning of the playlist after the last song in the list is played). Does this player's repeat do it differently than other players?<br />
<br />
A: See question below<br />
<HR><br />
<br />
Q: On the repeat button as well: I'd like to see a function where it repeats the current track once and then advances in the playlist afterwards. Maybe you could have the repeat button toggle its function with each tap - e.g. repeat all -> repeat current -> repeat current once -> repeat off -> ... [[User:Abraxa|Abraxa]] 01:51, 18 February 2007 (CET)<br />
<br />
A: Since I'm writing the Music Player I'll just do it that way ;)<br />
<hr><br />
<br />
Q: Is this Music Player a MPD-client (MPC)? That would be nice... However - all basic, "preloaded" software, should take speed into consideration...<br />
<br />
A: I don't intend it to be as running MPD on the Neo seems like overkill to me and writing a separate application to act as some kind of remote control to a MPD server at home makes more sense in my opinion. [[User:Abraxa|Abraxa]] 16:09, 18 April 2007 (CEST)<br />
<hr><br />
<br />
Q: What about Cover display ? For example browsing the music folder on the SD-Card by viewing the covers or displaying the cover while playing a song from it ? [[User:SrRaven|SrRaven]] 01:15, 19 April 2007 (CEST)<br />
<br />
A: I might add this once the must-have features are working as this is something not everyone will make use of. [[User:Abraxa|Abraxa]] 01:29, 19 April 2007 (CEST)<br />
<hr><br />
<br />
Q: Certainly not a must-have and therefore not high priority, but how about built-in support for queuing songs from an off-phone song repository (such as one's home computer). Thus if you get a hankering for a particular song that doesn't happen to be on the phone, you could pick it from a preloaded list. Assuming there is some network available, the player would start downloading on the background (meanwhile continuing with the local songs) and queue the request on arrival. On server-end, perchance a CGI script to recode songs on the fly to take up less bandwidth and space.<br />
<br />
(No promises but I've half a mind to tinker with such a feature at some point if I find the time.) --[[User:Mjr|Mjr]] 01:46, 19 April 2007 (CEST)<br />
<br />
<br />
<hr><br />
<br />
Q: Could there be a way to feed 'skip track' information to a script of some sort, so it can aggregate statistics, perhaps even going so far as cooperatively updating like/dislike data, line amazon. (yes, track ID is a fun problem).<br />
<br />
A: Do you mean some kind of last.fm submit plugin? It's certainly possible, though the lack of persistent internet connection may be an issue. If that's not what you mean then please elaborate. [[User:Abraxa|Abraxa]] 17:34, 20 April 2007 (CEST)<br />
<hr><br />
<br />
Q: Could there be a way to read playlists similarly?<br />
<br />
A: Um... I'm afraid I don't understand what you mean... [[User:Abraxa|Abraxa]] 17:34, 20 April 2007 (CEST)<br />
<br />
<hr><br />
<br />
Q: As you mentioned last.fm,I am a big last.fm fan and it annoys me that the tracks I played on the go don't get added at all.So how about a buffer that you than can just let it get uploaded once a wifi connection is established.Sometimes my last.fm plugin doesn't send tracks immediatly but caches them and submits them at some other time (reboot of media player) so that should not be a problem.So is that possible ? [[User:SrRaven|SrRaven]] 22:17, 20 April 2007 (CEST)<br />
<br />
A: If there'll be such a feature this mechanism will definitely be part of it, yes. [[User:Abraxa|Abraxa]] 09:02, 21 April 2007 (CEST)</div>Abraxahttp://wiki.openmoko.org/wiki/Talk:Music_PlayerTalk:Music Player2007-04-20T15:34:10Z<p>Abraxa: Some question answering</p>
<hr />
<div>([[User:ken]])<br />
* Q:Does our media player support both audio and video files?<br />
* Q:What kind of decoding library should be added?<br />
<br />
([[User:Mickey]])<br />
<br />
The S3C2410 is too slow to do video.<br />
Audio-wise, we should limit support for the most popular formats which is<br />
* mp3<br />
* ogg<br />
* wav.<br />
We don't have an FM-Chip in the device, so I'm afraid we can't do .mid -- at least not in hardware. There are software MIDI players available, but I don't know whether this is interesting for us or not.<br />
<br />
The S3C2410 is too slow to do fullscreen video.<br />
It is able to do halfscreen video, with the LCD stretch mode enabled<br />
See [[Video Player]]<br />
--[[User:Speedevil|Speedevil]] 14:33, 18 February 2007 (CET)<br />
<HR><br />
<br />
[Q]: At present, we will decide what kind of third party software for media player?<br />
<br />
([[User:Sean|Sean Moss-Pultz]])<br />
''What kind of third party software do you have in mind?''<br />
<br />
([[user:Alex|Alex]]) ''What about RealPlayer? It has a linux version, but for mobile phone use, the performance should be taken into consideration.''<br />
<br />
([[User:Sean|Sean Moss-Pultz]])<br />
Unless we can't find a FOSS version, I would prefer not to use closed-source programs. Have a look at the follow:<br />
<br />
[http://www.mplayerhq.hu/design7/news.html]<br />
[http://www.videolan.org/vlc/]<br />
<br />
We should check what OPIE and GPE use. [[User:Mickey]] Can you provide some feedback here?<br />
<br />
([[user:Alex|Alex]]) GPE and OPIE both have their own media players.<br />
*GPE's NMF[http://gpe.handhelds.org/projects/GPE-media.shtml] is based on GStreamer[http://www.gstreamer.net/]. NMF can play ogg and mp3 files.<br />
*OPIE's opie-mediaplayer2[http://zaurus.logix.cz/ipkg/detail.xp?package=opie-mediaplayer2] It plays mp3, mpeg, wav, ogg, quicktime, divx and more. Also it is streaming capable.<br />
<br />
<hr><br />
<br />
Q: In "Playback Mode" section it says "15) Panning -- realtime updated when panning wheel been rotated." The panning wheel isn't mentioned anywhere else. Is it another option for objects 5 and 6?<br />
A: Looks like it, yeah. However I don't see the point for being able to do panning since the speakers are so close and point in the same direction, meaning that you probably won't be able to tell the differences panning would make. I'll have to check that on real hardware but unless it's noticable I'll leave panning out. Yes, it would also affect the headphones but I can't think of any situation where panning would be necessary with headphones so I don't see the point there either. If anyone does, please do tell :)<br />
[[User:Abraxa|Abraxa]] 16:44, 18 April 2007 (CEST)<br />
<br />
I would like a way to set balance, though I don't care much about realtime panning. My right ear is moderately less sensitive than my left, and I like to boost the volume on that ear, rather than on both ears, so I maintain some external hearing. (headphones only) --[[User:Speedevil|Speedevil]] 01:13, 20 April 2007 (CEST)<br />
<br />
<HR><br />
<br />
Q: '''12) Repeat''' -- Repeats the current track.<br>Is most player, repeat doesn't repeat the current track. It repeats the playlist (it starts playback from the beginning of the playlist after the last song in the list is played). Does this player's repeat do it differently than other players?<br />
<br />
A: See question below<br />
<HR><br />
<br />
Q: On the repeat button as well: I'd like to see a function where it repeats the current track once and then advances in the playlist afterwards. Maybe you could have the repeat button toggle its function with each tap - e.g. repeat all -> repeat current -> repeat current once -> repeat off -> ... [[User:Abraxa|Abraxa]] 01:51, 18 February 2007 (CET)<br />
<br />
A: Since I'm writing the Music Player I'll just do it that way ;)<br />
<hr><br />
<br />
Q: Is this Music Player a MPD-client (MPC)? That would be nice... However - all basic, "preloaded" software, should take speed into consideration...<br />
<br />
A: I don't intend it to be as running MPD on the Neo seems like overkill to me and writing a separate application to act as some kind of remote control to a MPD server at home makes more sense in my opinion. [[User:Abraxa|Abraxa]] 16:09, 18 April 2007 (CEST)<br />
<hr><br />
<br />
Q: What about Cover display ? For example browsing the music folder on the SD-Card by viewing the covers or displaying the cover while playing a song from it ? [[User:SrRaven|SrRaven]] 01:15, 19 April 2007 (CEST)<br />
<br />
A: I might add this once the must-have features are working as this is something not everyone will make use of. [[User:Abraxa|Abraxa]] 01:29, 19 April 2007 (CEST)<br />
<hr><br />
<br />
Q: Certainly not a must-have and therefore not high priority, but how about built-in support for queuing songs from an off-phone song repository (such as one's home computer). Thus if you get a hankering for a particular song that doesn't happen to be on the phone, you could pick it from a preloaded list. Assuming there is some network available, the player would start downloading on the background (meanwhile continuing with the local songs) and queue the request on arrival. On server-end, perchance a CGI script to recode songs on the fly to take up less bandwidth and space.<br />
<br />
(No promises but I've half a mind to tinker with such a feature at some point if I find the time.) --[[User:Mjr|Mjr]] 01:46, 19 April 2007 (CEST)<br />
<br />
<br />
<hr><br />
<br />
Q: Could there be a way to feed 'skip track' information to a script of some sort, so it can aggregate statistics, perhaps even going so far as cooperatively updating like/dislike data, line amazon. (yes, track ID is a fun problem).<br />
<br />
A: Do you mean some kind of last.fm submit plugin? It's certainly possible, though the lack of persistent internet connection may be an issue. If that's not what you mean then please elaborate. [[User:Abraxa|Abraxa]] 17:34, 20 April 2007 (CEST)<br />
<hr><br />
<br />
Q: Could there be a way to read playlists similarly?<br />
<br />
A: Um... I'm afraid I don't understand what you mean... [[User:Abraxa|Abraxa]] 17:34, 20 April 2007 (CEST)</div>Abraxahttp://wiki.openmoko.org/wiki/Talk:Music_PlayerTalk:Music Player2007-04-18T23:29:14Z<p>Abraxa: Response to inquiry about cover displays</p>
<hr />
<div>([[User:ken]])<br />
* Q:Does our media player support both audio and video files?<br />
* Q:What kind of decoding library should be added?<br />
<br />
([[User:Mickey]])<br />
<br />
The S3C2410 is too slow to do video.<br />
Audio-wise, we should limit support for the most popular formats which is<br />
* mp3<br />
* ogg<br />
* wav.<br />
We don't have an FM-Chip in the device, so I'm afraid we can't do .mid -- at least not in hardware. There are software MIDI players available, but I don't know whether this is interesting for us or not.<br />
<br />
The S3C2410 is too slow to do fullscreen video.<br />
It is able to do halfscreen video, with the LCD stretch mode enabled<br />
See [[Video Player]]<br />
--[[User:Speedevil|Speedevil]] 14:33, 18 February 2007 (CET)<br />
<HR><br />
<br />
[Q]: At present, we will decide what kind of third party software for media player?<br />
<br />
([[User:Sean|Sean Moss-Pultz]])<br />
''What kind of third party software do you have in mind?''<br />
<br />
([[user:Alex|Alex]]) ''What about RealPlayer? It has a linux version, but for mobile phone use, the performance should be taken into consideration.''<br />
<br />
([[User:Sean|Sean Moss-Pultz]])<br />
Unless we can't find a FOSS version, I would prefer not to use closed-source programs. Have a look at the follow:<br />
<br />
[http://www.mplayerhq.hu/design7/news.html]<br />
[http://www.videolan.org/vlc/]<br />
<br />
We should check what OPIE and GPE use. [[User:Mickey]] Can you provide some feedback here?<br />
<br />
([[user:Alex|Alex]]) GPE and OPIE both have their own media players.<br />
*GPE's NMF[http://gpe.handhelds.org/projects/GPE-media.shtml] is based on GStreamer[http://www.gstreamer.net/]. NMF can play ogg and mp3 files.<br />
*OPIE's opie-mediaplayer2[http://zaurus.logix.cz/ipkg/detail.xp?package=opie-mediaplayer2] It plays mp3, mpeg, wav, ogg, quicktime, divx and more. Also it is streaming capable.<br />
<br />
<hr><br />
<br />
Q: In "Playback Mode" section it says "15) Panning -- realtime updated when panning wheel been rotated." The panning wheel isn't mentioned anywhere else. Is it another option for objects 5 and 6?<br />
A: Looks like it, yeah. However I don't see the point for being able to do panning since the speakers are so close and point in the same direction, meaning that you probably won't be able to tell the differences panning would make. I'll have to check that on real hardware but unless it's noticable I'll leave panning out. Yes, it would also affect the headphones but I can't think of any situation where panning would be necessary with headphones so I don't see the point there either. If anyone does, please do tell :)<br />
[[User:Abraxa|Abraxa]] 16:44, 18 April 2007 (CEST)<br />
<br />
<HR><br />
<br />
Q: '''12) Repeat''' -- Repeats the current track.<br>Is most player, repeat doesn't repeat the current track. It repeats the playlist (it starts playback from the beginning of the playlist after the last song in the list is played). Does this player's repeat do it differently than other players?<br />
<br />
A: See question below<br />
<HR><br />
<br />
Q: On the repeat button as well: I'd like to see a function where it repeats the current track once and then advances in the playlist afterwards. Maybe you could have the repeat button toggle its function with each tap - e.g. repeat all -> repeat current -> repeat current once -> repeat off -> ... [[User:Abraxa|Abraxa]] 01:51, 18 February 2007 (CET)<br />
<br />
A: Since I'm writing the Music Player I'll just do it that way ;)<br />
<hr><br />
<br />
Q: Is this Music Player a MPD-client (MPC)? That would be nice... However - all basic, "preloaded" software, should take speed into consideration...<br />
<br />
A: I don't intend it to be as running MPD on the Neo seems like overkill to me and writing a separate application to act as some kind of remote control to a MPD server at home makes more sense in my opinion. [[User:Abraxa|Abraxa]] 16:09, 18 April 2007 (CEST)<br />
<hr><br />
<br />
Q: What about Cover display ? For example browsing the music folder on the SD-Card by viewing the covers or displaying the cover while playing a song from it ? [[User:SrRaven|SrRaven]] 01:15, 19 April 2007 (CEST)<br />
<br />
A: I might add this once the must-have features are working as this is something not everyone will make use of. [[User:Abraxa|Abraxa]] 01:29, 19 April 2007 (CEST)</div>Abraxahttp://wiki.openmoko.org/wiki/Talk:Music_PlayerTalk:Music Player2007-04-18T14:44:00Z<p>Abraxa: Answered remaining questions</p>
<hr />
<div>([[User:ken]])<br />
* Q:Does our media player support both audio and video files?<br />
* Q:What kind of decoding library should be added?<br />
<br />
([[User:Mickey]])<br />
<br />
The S3C2410 is too slow to do video.<br />
Audio-wise, we should limit support for the most popular formats which is<br />
* mp3<br />
* ogg<br />
* wav.<br />
We don't have an FM-Chip in the device, so I'm afraid we can't do .mid -- at least not in hardware. There are software MIDI players available, but I don't know whether this is interesting for us or not.<br />
<br />
The S3C2410 is too slow to do fullscreen video.<br />
It is able to do halfscreen video, with the LCD stretch mode enabled<br />
See [[Video Player]]<br />
--[[User:Speedevil|Speedevil]] 14:33, 18 February 2007 (CET)<br />
<HR><br />
<br />
[Q]: At present, we will decide what kind of third party software for media player?<br />
<br />
([[User:Sean|Sean Moss-Pultz]])<br />
''What kind of third party software do you have in mind?''<br />
<br />
([[user:Alex|Alex]]) ''What about RealPlayer? It has a linux version, but for mobile phone use, the performance should be taken into consideration.''<br />
<br />
([[User:Sean|Sean Moss-Pultz]])<br />
Unless we can't find a FOSS version, I would prefer not to use closed-source programs. Have a look at the follow:<br />
<br />
[http://www.mplayerhq.hu/design7/news.html]<br />
[http://www.videolan.org/vlc/]<br />
<br />
We should check what OPIE and GPE use. [[User:Mickey]] Can you provide some feedback here?<br />
<br />
([[user:Alex|Alex]]) GPE and OPIE both have their own media players.<br />
*GPE's NMF[http://gpe.handhelds.org/projects/GPE-media.shtml] is based on GStreamer[http://www.gstreamer.net/]. NMF can play ogg and mp3 files.<br />
*OPIE's opie-mediaplayer2[http://zaurus.logix.cz/ipkg/detail.xp?package=opie-mediaplayer2] It plays mp3, mpeg, wav, ogg, quicktime, divx and more. Also it is streaming capable.<br />
<br />
<hr><br />
<br />
Q: In "Playback Mode" section it says "15) Panning -- realtime updated when panning wheel been rotated." The panning wheel isn't mentioned anywhere else. Is it another option for objects 5 and 6?<br />
A: Looks like it, yeah. However I don't see the point for being able to do panning since the speakers are so close and point in the same direction, meaning that you probably won't be able to tell the differences panning would make. I'll have to check that on real hardware but unless it's noticable I'll leave panning out. Yes, it would also affect the headphones but I can't think of any situation where panning would be necessary with headphones so I don't see the point there either. If anyone does, please do tell :)<br />
[[User:Abraxa|Abraxa]] 16:44, 18 April 2007 (CEST)<br />
<br />
<HR><br />
<br />
Q: '''12) Repeat''' -- Repeats the current track.<br>Is most player, repeat doesn't repeat the current track. It repeats the playlist (it starts playback from the beginning of the playlist after the last song in the list is played). Does this player's repeat do it differently than other players?<br />
A: See question below<br />
<HR><br />
<br />
Q: On the repeat button as well: I'd like to see a function where it repeats the current track once and then advances in the playlist afterwards. Maybe you could have the repeat button toggle its function with each tap - e.g. repeat all -> repeat current -> repeat current once -> repeat off -> ... [[User:Abraxa|Abraxa]] 01:51, 18 February 2007 (CET)<br />
A: Since I'm writing the Music Player I'll just do it that way ;)<br />
<br />
<hr><br />
<br />
Q: Is this Music Player a MPD-client (MPC)? That would be nice... However - all basic, "preloaded" software, should take speed into consideration...<br />
<br />
A: I don't intend it to be as running MPD on the Neo seems like overkill to me and writing a separate application to act as some kind of remote control to a MPD server at home makes more sense in my opinion. [[User:Abraxa|Abraxa]] 16:09, 18 April 2007 (CEST)</div>Abraxahttp://wiki.openmoko.org/wiki/Talk:Music_PlayerTalk:Music Player2007-04-18T14:09:28Z<p>Abraxa: Forgot to sign</p>
<hr />
<div>([[User:ken]])<br />
* Q:Does our media player support both audio and video files?<br />
* Q:What kind of decoding library should be added?<br />
<br />
([[User:Mickey]])<br />
<br />
The S3C2410 is too slow to do video.<br />
Audio-wise, we should limit support for the most popular formats which is<br />
* mp3<br />
* ogg<br />
* wav.<br />
We don't have an FM-Chip in the device, so I'm afraid we can't do .mid -- at least not in hardware. There are software MIDI players available, but I don't know whether this is interesting for us or not.<br />
<br />
The S3C2410 is too slow to do fullscreen video.<br />
It is able to do halfscreen video, with the LCD stretch mode enabled<br />
See [[Video Player]]<br />
--[[User:Speedevil|Speedevil]] 14:33, 18 February 2007 (CET)<br />
<HR><br />
<br />
[Q]: At present, we will decide what kind of third party software for media player?<br />
<br />
([[User:Sean|Sean Moss-Pultz]])<br />
''What kind of third party software do you have in mind?''<br />
<br />
([[user:Alex|Alex]]) ''What about RealPlayer? It has a linux version, but for mobile phone use, the performance should be taken into consideration.''<br />
<br />
([[User:Sean|Sean Moss-Pultz]])<br />
Unless we can't find a FOSS version, I would prefer not to use closed-source programs. Have a look at the follow:<br />
<br />
[http://www.mplayerhq.hu/design7/news.html]<br />
[http://www.videolan.org/vlc/]<br />
<br />
We should check what OPIE and GPE use. [[User:Mickey]] Can you provide some feedback here?<br />
<br />
([[user:Alex|Alex]]) GPE and OPIE both have their own media players.<br />
*GPE's NMF[http://gpe.handhelds.org/projects/GPE-media.shtml] is based on GStreamer[http://www.gstreamer.net/]. NMF can play ogg and mp3 files.<br />
*OPIE's opie-mediaplayer2[http://zaurus.logix.cz/ipkg/detail.xp?package=opie-mediaplayer2] It plays mp3, mpeg, wav, ogg, quicktime, divx and more. Also it is streaming capable.<br />
<br />
<hr><br />
<br />
[Q] In "Playback Mode" section it says "15) Panning -- realtime updated when panning wheel been rotated." The panning wheel isn't mentioned anywhere else. Is it another option for objects 5 and 6?<br />
<br />
<HR><br />
<br />
[Q] '''12) Repeat''' -- Repeats the current track.<br>Is most player, repeat doesn't repeat the current track. It repeats the playlist (it starts playback from the beginning of the playlist after the last song in the list is played). Does this player's repeat do it differently than other players?<br />
<br />
<HR><br />
<br />
Q: On the repeat button as well: I'd like to see a function where it repeats the current track once and then advances in the playlist afterwards. Maybe you could have the repeat button toggle its function with each tap - e.g. repeat all -> repeat current -> repeat current once -> repeat off -> ... [[User:Abraxa|Abraxa]] 01:51, 18 February 2007 (CET)<br />
<br />
<hr><br />
<br />
Q: Is this Music Player a MPD-client (MPC)? That would be nice... However - all basic, "preloaded" software, should take speed into consideration...<br />
<br />
A: I don't intend it to be as running MPD on the Neo seems like overkill to me and writing a separate application to act as some kind of remote control to a MPD server at home makes more sense in my opinion. [[User:Abraxa|Abraxa]] 16:09, 18 April 2007 (CEST)</div>Abraxahttp://wiki.openmoko.org/wiki/Talk:Music_PlayerTalk:Music Player2007-04-18T14:08:27Z<p>Abraxa: Commented on MPD-client ability</p>
<hr />
<div>([[User:ken]])<br />
* Q:Does our media player support both audio and video files?<br />
* Q:What kind of decoding library should be added?<br />
<br />
([[User:Mickey]])<br />
<br />
The S3C2410 is too slow to do video.<br />
Audio-wise, we should limit support for the most popular formats which is<br />
* mp3<br />
* ogg<br />
* wav.<br />
We don't have an FM-Chip in the device, so I'm afraid we can't do .mid -- at least not in hardware. There are software MIDI players available, but I don't know whether this is interesting for us or not.<br />
<br />
The S3C2410 is too slow to do fullscreen video.<br />
It is able to do halfscreen video, with the LCD stretch mode enabled<br />
See [[Video Player]]<br />
--[[User:Speedevil|Speedevil]] 14:33, 18 February 2007 (CET)<br />
<HR><br />
<br />
[Q]: At present, we will decide what kind of third party software for media player?<br />
<br />
([[User:Sean|Sean Moss-Pultz]])<br />
''What kind of third party software do you have in mind?''<br />
<br />
([[user:Alex|Alex]]) ''What about RealPlayer? It has a linux version, but for mobile phone use, the performance should be taken into consideration.''<br />
<br />
([[User:Sean|Sean Moss-Pultz]])<br />
Unless we can't find a FOSS version, I would prefer not to use closed-source programs. Have a look at the follow:<br />
<br />
[http://www.mplayerhq.hu/design7/news.html]<br />
[http://www.videolan.org/vlc/]<br />
<br />
We should check what OPIE and GPE use. [[User:Mickey]] Can you provide some feedback here?<br />
<br />
([[user:Alex|Alex]]) GPE and OPIE both have their own media players.<br />
*GPE's NMF[http://gpe.handhelds.org/projects/GPE-media.shtml] is based on GStreamer[http://www.gstreamer.net/]. NMF can play ogg and mp3 files.<br />
*OPIE's opie-mediaplayer2[http://zaurus.logix.cz/ipkg/detail.xp?package=opie-mediaplayer2] It plays mp3, mpeg, wav, ogg, quicktime, divx and more. Also it is streaming capable.<br />
<br />
<hr><br />
<br />
[Q] In "Playback Mode" section it says "15) Panning -- realtime updated when panning wheel been rotated." The panning wheel isn't mentioned anywhere else. Is it another option for objects 5 and 6?<br />
<br />
<HR><br />
<br />
[Q] '''12) Repeat''' -- Repeats the current track.<br>Is most player, repeat doesn't repeat the current track. It repeats the playlist (it starts playback from the beginning of the playlist after the last song in the list is played). Does this player's repeat do it differently than other players?<br />
<br />
<HR><br />
<br />
Q: On the repeat button as well: I'd like to see a function where it repeats the current track once and then advances in the playlist afterwards. Maybe you could have the repeat button toggle its function with each tap - e.g. repeat all -> repeat current -> repeat current once -> repeat off -> ... [[User:Abraxa|Abraxa]] 01:51, 18 February 2007 (CET)<br />
<br />
<hr><br />
<br />
Q: Is this Music Player a MPD-client (MPC)? That would be nice... However - all basic, "preloaded" software, should take speed into consideration...<br />
A: I don't intend it to be as running MPD on the Neo seems like overkill to me and writing a separate application to act as some kind of remote control to a MPD server at home makes more sense in my opinion.</div>Abraxahttp://wiki.openmoko.org/wiki/OpenMoko_under_QEMUOpenMoko under QEMU2007-04-14T22:37:48Z<p>Abraxa: /* How to get it running */ Added reference to MokoMakefile</p>
<hr />
<div>QEMU can basically be used in three ways to run [[OpenMoko]]. Depending on the purpose that you are going to use the emulator for, you should decide on the target platform.<br />
<br />
*PC - OpenMoko can be built to run on regular i386 hardware, 32- or 64-bit and this is probably the fastest way to get OpenMoko running if you want to get an impression of how it looks. In this scenario QEMU would only serve for isolating your [[OpenMoko]] installation from your normal system, or, if you're not on a UNIX system, QEMU provides a non-intrusive way to get Linux up quickly. More information can be found in the [[FAQ]] and [[Getting Openmoko working on host with Xoo|here]].<br />
<br />
*Integrator/CP - this is the default ARM-based machine that QEMU knows about. This target is used with MACHINE="qemuarm" and it is sufficient to run the original OpenMoko rootfs image, although it doesn't emulate any of the [[:Category:Neo1973 Hardware | Neo1973 Hardware]] except the CPU. Read more in the [[FAQ#Q:_Is_there_an_emulator_available_for_OpenMoko.3F|FAQ]].<br />
<br />
*Neo1973 - the QEMU tree available from OpenMoko repositories is also capable of emulating most of the actual [[Neo1973]] hardware, although not all of it at this moment. It is a work-in-progress and when it's more mature it is going to be submitted for merging to the main QEMU development tree.<br />
<br />
== Neo1973 emulation ==<br />
This target will (obviously) run original OpenMoko rootfs images, but then it should also be able to run the original u-boot and kernel images, the same ones that a real Neo1973 uses. Among other differences you will notice between this approach and the Integrator/CP target is you also get correct screen resolution, some (fake) battery readings, and other goodness. Currently missing parts of the emulator are: [[GSM]] modem, [[Hardware:AGPS|AGPS]] and [[Bluetooth]], as well as the USB slave functionality - these things will still be worked on, as well as general usability. Even with these things missing, QEMU should provide substantial help in debugging kernel and u-boot issues to developers.<br />
<br />
What QEMU can *not* be used for, and probably no other emulator can, is speed measures and getting the general feel of OpenMoko performance. Code running in qemu runs with the maximum speed your host computer can provide with an overhead of translating target code to host code, and this overhead is not uniform across different instructions. This means that even if your virtual Neo reports near 100 BogoMIPS (which is the speed of a real Neo), different actions performed in the emulator will not run with the same speed. On most PCs you will notice the virtual Neo running faster than a real one (Audio related operations may be one of the exceptions).<br />
<br />
=== What hardware is supported ===<br />
<br />
Rough status for each of the components that need emulation, following the outline of [[:Category:Neo1973 Hardware | Neo1973 Hardware]] page.<br />
{|<br />
! Hardware !! Status !! Usage notes<br />
|- style="background-color:#eeeedd;"<br />
! colspan="3"|S3C2410A Processor<br />
|-<br />
|ARM920T core || Works || Already in mainline QEMU.<br />
|-<br />
|Basic guts || Work || This includes GPIO interface, DMA, Interrupt Controller, Timers, NAND controller, MMC/SD host, [[I2C]] and IIS interfaces, Memory & Clock & Power management controllers, RAM.<br />
|-<br />
|Serial ports || Work || Use the "-serial" switch (maybe be specified multiple times) to tell QEMU where serial input/output should go to. GSM module will be connected on UART0.<br />
|-<br />
|RTC || Works || On start QEMU will load it with current time/date - the Neo1973 [[kernel]] doesn't use it for time/date source currently.<br />
|-<br />
|SPI || Works || The guest kernel can drive it using either the SPI interface or raw GPIO bitbanging.<br />
|-<br />
|LCD || Works || The virtual LCD will display as in QEMU window iff "-nographic" is not specified.<br />
|-<br />
|ADC || Works || Mouse events in QEMU window generate what would be touchscreen events on a Neo1973 and are passed to the guest OS through the on-chip ADC.<br />
|-<br />
|OHCI USB || Works || This part is in mainline QEMU. Use the "-usb" switch to enable the controller and "usb_add" in QEMU monitor to attach new virtual or physical USB devices.<br />
|-<br />
|Slave USB<br />
|style="background-color:#ffcccc;"|To Do<br />
|Possibly Linux's dummy HCD in conjunction with gadget filesystem API can be make the virtual Neo appear as a real one connected to your computer. Otherwise different host functions (usbtty, usbnet) could be emulated.<br />
|-<br />
|Watchdog<br />
|style="background-color:#ffcccc;"|To Do<br />
|This is one of the less important on-chip peripherals in S3C2410. It is however used by Linux for rebooting the board.<br />
|- style="background-color:#eeeedd;"<br />
! colspan="3"|[[I2C]] bus peripherals<br />
|-<br />
|[[PCF50606]]||Works||(Aka PMU) Fakes the battery charge level (set at 88%), POWER button, etc. Also contains and RTC, also unused by Linux.<br />
|-<br />
|[[LM4857]]||Works<br />
|-<br />
|[[WM8753L]]||Works||The CODEC is also connect to the CPU's IIS port. Basic [[Neo1973 Audio Subsystem|audio functionality]] is supported - see QEMU documentation on getting audio input/output from the emulator. Volume control has no effects.<br />
|- style="background-color:#eeeedd;"<br />
! colspan="3"|Other peripherals<br />
|-<br />
|NAND Flash||Works||However, some pieces are not confirmed to be completely compatible with the real hardware because of lack thereof. Use "-mtdblock flashimagefilenamehere" switch to point QEMU to your flash image. The file should be at least 69206016 bytes big.<br />
|-<br />
|JBT6K74-AS(PI)||Works|| (Aka LCM) Wired to the SPI channel 1<br />
|-<br />
|Buttons||Work||Enter is the AUX button, Space is the POWER button. Wired to on-chip GPIO and PCF50606.<br />
|-<br />
|SD card||Works||This part is already in mainline QEMU. Use the "-sd cardimagegoeshere" switch to point QEMU to the card image. The regular QEMU monitor commands for removable media can also be used. The card works, however the on-chip host controller gave block length errors on heavy I/O despite working as described in specification. I suspect the kernel driver. DMA operation is not tested.<br />
|-<br />
|Bluetooth<br />
|style="background-color:#ffcccc;"|To Do<br />
|Will require implementing the Delta DBFM chip and connecting it to USB. The ROM will likely be replaced with code to translate communication directly to TCP/UDP networking (like Slirp). A real bluetooth dongle can also be attached to the emulator (see USB documentation in QEMU).<br />
|-<br />
|[[GSM]]<br />
|style="background-color:#ffcccc;"|In Progress<br />
|A fake modem will be connected to UART0 with as much functionality as possible (basic AT commands understanding, fake GPRS connections and SMS send/receive). This way all parts of the phone subsystem (CALYPSO, TWL3014, TRF6151) will not have to be emulated. There is a possibility to wire a real GSM modem to QEMU's serial port.<br />
|-<br />
|[[Hardware:AGPS|AGPS]]<br />
|style="background-color:#ffcccc;"|To Do<br />
|There are obvious difficulties emulating the chip, but hopefully it can be made to present the guest OS with some fixed coordinates later when more is known about the chip. Again a real chip could be connected to QEMU's serial port.<br />
|}<br />
<br />
== How to get it running ==<br />
<br />
=== Using MokoMakefile ===<br />
<br />
This is the recommended way since you won't need to deal with the compiling and flashing processes yourself. See [[MokoMakefile#QEMU|MokoMakefile]] for details.<br />
<br />
=== Building the environment manually ===<br />
To obtain the latest source code for the emulator, you will want to do something like the following:<br />
<pre><br />
$ svn checkout https://svn.openmoko.org/trunk/src/host/qemu-neo1973<br />
$ cd qemu-neo1973<br />
</pre><br />
Now, we're going to configure and build the emulator:<br />
<pre><br />
$ ./configure --target-list=arm-softmmu # GCC 3.x will be required<br />
$ make<br />
</pre><br />
See other available options for the configure script by appending "--help".<br />
Now you have should have a working emulator under the name "arm-softmmu/qemu-system-arm". To run OpenMoko you will also need to somehow install OpenMoko on your virtual phone, which is totally clean of any software at this moment. There are several block devices to choose from, the best option is probably to do exactly what the Neo1973 manufacturer does before it ships the device to the final user. This process is described in [[Bootloader]], [[Kernel]], [[NAND bad blocks]] and [[Devirginator]] but you don't need to know all the details. Two scripts are provided to generate a firmware for your phone, as realistic as possible. First, run<br />
<pre>$ openmoko/download.sh</pre><br />
which will look up the list of latest available OpenMoko snapshot builds from buildhost.openmoko.org and choose the most recent [[u-boot]], Kernel, and root filesystem images, and download the images (unless they are already found in the openmoko/ directory). These binaries will be used by the next command:<br />
<pre>$ openmoko/flash.sh</pre><br />
which runs the emulator, loads u-boot into it and then uses u-boot's capability to program the Flash memory to install all the necessary parts of the system into the virtual Flash. It will also set up all the bootloading process including a boot menu, splash, u-boot environment and some default kernel parameters. If everything goes OK, the script should print a command which you can use to start using the emulator.<br />
<br />
QEMU has *tons* of commandline switches and things that can be configured. You can look them up in [http://www.qemu.org/user-doc.html QEMU user docs]. You will probably want to use the "-snapshot" switch, among other ones.<br />
<br />
== Requirements ==<br />
The QEMU tree has only been tested on GNU/Linux. To get graphical and/or audio output from the emulator you will need SDL installed on your computer. To enable audio, see the available switches to the ./configure script.<br />
All of the requirements listed in [http://www.qemu.org/user-doc.html QEMU documentation] apply.<br />
<br />
== QEMU and GNU debugger ==<br />
QEMU lets you debug operating system kernels and bootloaders like you debug all other programs. To do this you will need a debugger that speaks the GDB remote debugging protocol - [http://sourceware.org/gdb/ GDB] is the obvious choice. Some cross toolchains come with GDB already set up. Otherwise building cross-GDB yourself is quick and easy (compared to building binutils and cross-gcc).<br />
<br />
To debug u-boot, load the file "u-boot" into gdb (not "u-boot.bin") that is produced by "make" when building u-boot. To debug a Linux kernel, load the file "vmlinux" from the main source directory into gdb. These files are in ELF format and contain all the symbol information and are not stripped of debugging data until you run "strip" on them, unlike "u-boot.bin" and "Image"/"zImage"/"uImage". Next, tell QEMU to enable the gdbserver by appending the "-s" switch or issuing "gdbserver" in the monitor. Use the command <pre>(gdb) target remote localhost:1234</pre> to make a connection to the emulator. From there you should be able to use all the usual GDB commands, including stepping instructions, setting breakpoints, watchpoints, inspecting stack, variables, registers and more. If gdb is running in the same directory from which it grabbed the ELF executable, the "edit" command should work so you can jump right to the source line which is executing.</div>Abraxahttp://wiki.openmoko.org/wiki/MokoMakefileMokoMakefile2007-04-14T20:45:17Z<p>Abraxa: /* QEMU */ Added reference to the Qemu wiki page</p>
<hr />
<div>==MokoMakefile==<br />
MokoMakefile is a fully automated way of setting up an OpenMoko development environment. It is an invaluable tool for getting new developers up and running with a build environment which is configured the same as all the other existing developers. It brings the same repeatability to build environment creation and maintenance as that which OpenEmbedded brings to the main task of actually building embedded software distributions.<br />
<br />
Note that MokoMakefile does *not* replace bitbake, or svn, or monotone, or openembedded, or qmake, or anything else. It is a wrapper around all that to make it easy to set up and maintain a development environment that fully complies with the setup instructions published by OpenMoko. Note that you need about 7 GB of available disk space for MokoMakefile to succeed.<br />
<br />
MokoMakefile is developed by [[User:RodWhitby|Rod Whitby]] - it is not an official product of OpenMoko (although I would be happy for them to pick it up and use it internally). If there is any discrepancy between the [[Building_OpenMoko_from_scratch|official OpenMoko build instructions]], and the operation of the MokoMakefile, then you should consider the official instructions to be correct.<br />
<br />
=== Installation ===<br />
Here are the steps to use it:<br />
<br />
1 - Make sure your build host is set up according to:<br />
http://www.openembedded.org/wiki/OEandYourDistro<br />
2 - Create your $OMDIR directory:<br />
mkdir /home/moko ; cd /home/moko<br />
3 - Grab MokoMakefile:<br />
wget http://www.rwhitby.net/files/openmoko/Makefile<br />
4 - Set up the environment:<br />
make setup<br />
5 - Start building:<br />
make openmoko-devel-image<br />
<br />
This will set up the recommended directory structure as described in [[Building OpenMoko from scratch]], will download all the required software (from the right places with the right versions), and will immediately start building an image.<br />
<br />
Once you have done this, you can choose to continue using the MokoMakefile to initiate your subsequent builds, or you can go into the build directory and run bitbake commands manually. The choice is yours.<br />
<br />
===Updating the environment=== <br />
For easy maintenance of your build environment the following commands are available.<br />
<br />
1 - To update the MokoMakefile to the latest version:<br />
make update-makefile <br />
<br />
2 - To update the OpenMoko repository checkout and the MokoMakefile patches to the latest version:<br />
make update<br />
<br />
3 - To make sure that any recent changes to the build directory structure have been applied:<br />
make setup <br />
<br />
A quick way to rebuild a new image with the latest updates:<br />
make update-makefile && make update && make setup && make openmoko-devel-image<br />
<br />
===Reporting Problems===<br />
<br />
First, make sure that the problem is reproducable after running<br />
<br />
make update-makefile ; make update ; make setup<br />
<br />
then running<br />
<br />
make clean-package-<foo><br />
<br />
(where you replace <foo> with the name of the package which is failing)<br />
<br />
then running<br />
<br />
make all<br />
<br />
If you can get the error to occur three times in a row after running that sequence of commands three times, then feel free to report it to rwhitby in #openmoko on [http://wiki.openmoko.org/wiki/Development_resources#IRC IRC].<br />
<br />
===Work-arounds===<br />
<br />
Work-arounds for temporary or isolated problems should be added to the [[Talk:MokoMakefile|Discussion page]] which is associated with this page. As they are fixed, they will be removed from that page.<br />
<br />
===Tips=== <br />
*You can reduce the amount of consumed disk space significantly by adding<br />
INHERIT += "rm_work"<br />
in your local.conf (e.g. /home/moko/build/conf/local.conf). This will remove the contents of each build/tmp/work/*/<package> directory after the corresponding package builds correctly.<br />
<br />
<br />
*If you an encounter an error with monotone similar to the following:<br />
mtn: misuse: database /home/moko/OE.mtn is laid out according to an old schema<br />
Then you need to upgrade OE.mtn Use the following command while in /home/moko:<br />
# mtn --db OE.mtn db migrate<br />
<br />
*If a certain package does not build due to corrupted download or some such try to remove the sources and rebuild it.<br />
rm sources/<package>*<br />
cd build<br />
. ../setup-env<br />
bitbake -crebuild <package><br />
after that your build might just work again.<br />
<br />
*For people with multiple CPU's (or dual-core ones) this small patch might be useful to build things faster.<br />
Edit the local.conf and add the following lines:<br />
PARALLEL_MAKE = "-j 4"<br />
BB_NUMBER_THREADS = "4"<br />
<br />
Change the PARALLEL_MAKE and BB_NUMBER_THREADS values to something that suits better if it chokes your machine.<br />
<br />
*For amd64 host users you need the patch from http://bugs.openembedded.org/show_bug.cgi?id=1765 to build db3-native<br />
<br />
===QEMU===<br />
The MokoMakefile now has support for automatically building, flashing, and running the new OpenMoko emulator (which is based on QEMU).<br />
<br />
“make qemu” will build qemu-neo1973, download the latest official OpenMoko images, flash the images into the virtual NAND flash, and run the emulator.<br />
<br />
Other targets are “make download-images” (to download the latest official images), “make flash-qemu-official” (to flash those images) and “make flash-qemu-local” (which will flash your latest locally built images), which can then be followed by “make run-qemu” or “make run-qemu-snapshot” to run the emulator with the most recently flashed images.<br />
<br />
Make sure you have the “lynx” and “netpbm” packages installed on your build host first.<br />
<br />
You're also invited to read more about how to run [[OpenMoko under QEMU]] in the article dedicated to this subject.<br />
<br />
===Developing with MokoMakefile===<br />
<br />
To make in-tree changes and have them built and used by qemu:<br />
<br />
cd /home/moko/openmoko<br />
quilt new descriptive-patch-name.patch<br />
quilt add trunk/src/name-of-file-to-change<br />
(do this for every file you are about to modify)<br />
...make the changes...<br />
quilt refresh<br />
(this creates a file in /home/moko/patches/openmoko-HEAD/ and <br />
updates the quilt series file there)<br />
<br />
To build the changes and have them used by qemu:<br />
<br />
make build-qemu<br />
make flash-qemu-local<br />
make run-qemu<br />
<br />
===Testimonials=== <br />
MokoMakefile is recommended by 4 out of 4 new developers on #openmoko, with testimonials such as "For some reason last night I couldn't get my manual install of everything to work (bb complained about my bbpath I think) ... but with your makefile, it works great!", and "MokoMakefile rocks!".<br />
<br />
Project page:<br />
http://mokomakefile.projects.openmoko.org/<br />
<br />
{{Languages|MokoMakefile}}</div>Abraxahttp://wiki.openmoko.org/wiki/Main_PageMain Page2007-04-14T20:41:16Z<p>Abraxa: /* Misc. Development Related */ Added Qemu wiki page</p>
<hr />
<div><big>'''Welcome to the [[OpenMoko]] public Wiki'''</big><br><br />
<small>For other languages see the [[#bottom|bottom]] of this page.</small> <br />
<br />
[[Image:FIC-neo1973_small.jpg|200px|right|frontside]]<br />
[[OpenMoko]] is an Open Source project with the goal of creating the world's first completely open mobile phone software stack. The project has been founded with that belief that standardization should start from the [[OpenMoko]] community verses the normal consortium oriented phone development environment. [[OpenMoko]] has two aspects of development. There is the initial FIC [[Neo1973]] hardware platform. [[OpenMoko]] is the software stack that runs on this platform. Eventually, [[OpenMoko]] will run on all kinds of Linux-capable mobile phones. Please join us in colaborating on the [[OpenMoko | OpenMoko project]] through any of the [[Development resources | project resources]] including the [[Main Page | OpenMoko wiki]]. Please see the [[Help:Contents | wiki editing help page]] for information on making contributions to this wiki. A [[Meet the Core Team | core team of developers from FIC Inc]] leads the project.<br />
<br />
An [[Introduction | introduction page]] is available. The [[Introduction | page]] has both [[Introduction#Photos|photos]] and [[Introduction#Videos|videos]] available. Moreover, the usual [[FAQ | Frequently Asked Questions, FAQ, page]] might be helpful. Developers may find the [[ChangeLog | daily software change log]] an important resource.<br />
<br />
The members of the [[OpenMoko]] community would like to thank [[FIC|FIC Inc.]] for showing leadership and initiating the [[OpenMoko]] project.<br />
<br />
<br />
<br />
== [[OpenMoko]] Areas of Interest ==<br />
<br />
* [[Basic End-user]] - Information for end users that want basic functionality and no surprises<br />
* [[Advanced End-user]] - Information for advanced end-users that want advanced and experimental functionality but who are not programmers<br />
* [[Development resources | Project Resources]] page provides a centralized location of all resources such as [[Development resources#Mailing_Lists|mailing lists]], [[Development resources#IRC | communication tools]], and other software development oriented resources.<br />
* [[Application Developer]] - Information for application developers including ideas and specifications for applications, and tools to build them<br />
* [[System Developer]] - Information for the system developer including bootloader, kernel, and libraries<br />
* [[Hardware Developer]] - Information for the hardware developer including hardware specs, and debug board<br />
* [[Community Events]] - Information on both [[Community Events#Past Events | past ]] and [[Community Events#Past Events#FIC / OpenMoko at Events | future]] events where FIC or [[OpenMoko]] had or will have a presence.<br />
<br />
== Developer's Documentation ==<br />
<br />
=== Hands-on Guides ===<br />
* [[Getting Started with your Neo1973]]<br />
* [[MokoMakefile|Building OpenMoko using the MokoMakefile]] <br />
* [[Building OpenMoko from scratch]]<br />
** Old [[Building OpenMoko from scratch (pre-BBT)]]<br />
* [[Migration to bad block tolerant builds]]<br />
* [[Getting Openmoko working on host with Xoo]]<br />
* [[Booting from SD]]<br />
<br />
=== Hardware Reference Documentation ===<br />
<br />
* All [[:Category:Hardware|Hardware]] related documentation and specifications are found on the [[:Category:Hardware|Hardware page]].<br />
* The [[:Category:Neo1973 Hardware|Neo1973 Hardware page]] provides an overview of the hardware components used by the [[:Category:Neo1973 Hardware|Neo1973 hardware platform]]. PCB Photographs are also included. An interesting [[Disassembling Neo1973 | photo disassemble story]] may be an interesting starting place.<br />
* [[:Category:Neo1973 Hardware Debugging | Neo1973 Hardware Debugging]] is assisted with the [[Debug Board | Neo1973 debug board]]. A page discussing [[Connecting Neo1973 with Debug Board v2 | debug board and Neo1973 configurations]] are also provided.<br />
<br />
=== Software Reference Documentation ===<br />
* Architectural<br />
** [[OpenMokoFramework]] - The OpenMoko Application Framework<br />
* Host utilities<br />
** [[dfu-util]] - A [[USB DFU]] (Device Firmware Update) host program<br />
** [[devirginator]] - A set of scripts to re-program the entire device and last-resort phone un-bricking<br />
** [[Toolchain]] - The toolchain we use for compilation<br />
** [[Neo1973 OpenOCD]] - The On-Chip Debugger we use for development<br />
** [[OpenEmbedded]] - The distribution building framework<br />
* Device Software<br />
** Low-Level<br />
*** [[u-boot]] - The bootloader we use, including docs to our modifications<br />
*** [[kernel]] - The Linux Kernel we use, including docs to our modifications<br />
** Userspace<br />
*** [[gsmd]] - the GSM daemon managing the GSM Modem<br />
*** [[gpsd]] - the AGPS (Assisted GPS) daemon<br />
*** [[OpenMoko]] - The OpenMoko distribution<br />
**** [[OpenMoko2007]] - The first intended release of it<br />
**** [[Userspace root image]]<br />
<br />
==== User Interface Related ====<br />
* [[Look & Feel]]<br />
* [[Applications]]<br />
* [[Widgets]]<br />
** [[Widget Inheritance Graph]]<br />
<br />
=== Misc. Development Related ===<br />
<br />
* [[Templates]]<br />
* [[PIM Storage]]<br />
* [[Coding Guidelines]]<br />
* [[Higher level language options]]<br />
* [[How to run OpenMoko Apps on PC]]<br />
* [[OpenMoko under QEMU]]<br />
* [[OpenMoko#Setting_up_an_OpenMoko_SDK|How to setup the OpenMoko SDK]]<br />
* [[License]] - How we license our code<br />
* [[Development resources]] - Describes the resources (lists, svn, ...)<br />
* [[Neo1973 Phase 0]] -- Information for Phase 0 device owners<br />
* [[Wishlist:Neo1973 P0 Review]] -- Impressions of Phase 0 hardware device, also Phase 0 FAQ<br />
<br />
== Administrative / Organizational ==<br />
<br />
* [[Shipping Notes]] - Information to help FIC how to ship products to you<br />
* [[My Account]] - Ideas for what sort of account based services FIC should provide with the phone.<br />
<br />
== Miscellaneous ==<br />
* [[WiFi support in OpenMoko]] - Or rather the lack thereof<br />
* [[Neo1973 and Windows]] - If you want to commit that offence ;) (does not work, help!)<br />
* [[Press Coverage]] - What the press says about the OpenMoko project<br />
* [[mFAQ]] - The OpenMoko Misinformation FAQ ('''mFAQ''') - What the press '''''incorrectly''''' says about the OpenMoko project<br />
* [[Wish List]] - A collection of ideas and ideals we'd like to see implemented some day<br />
* [[Wish List - Hardware]] - A collection of ideas we'd like to see in the next Neo release<br />
* [[Media Content]] - What types of media on the device can we use (that is non-software)?<br />
* [[Testimonials]] - How did you get to OpenMoko?<br />
* [[Buying Interest List]] - (Not official and not a pre-order page) Have you have put money aside for Neo1973? Put your nick here.<br />
* [[iPhone]] - Comparison between Apple iPhone and FIC Neo1973<br />
* [[Translation]] - Translation of OpenMoko<br />
* [[Summer of code]] - Our page with project applications for Googles Summer of Code<br />
<br />
<br />
<span id="bottom"></span><br />
{{Languages|Main_Page}}</div>Abraxahttp://wiki.openmoko.org/wiki/GsmdGsmd2007-04-13T10:36:43Z<p>Abraxa: Reverted vandalism</p>
<hr />
<div>[[gsmd]] is the GSM daemon running in background of the GTA01 phone, managing the actual 'phone' part of the phone :)<br />
<br />
== Usage ==<br />
<br />
gsmd is usually started as a daemon in background, but can be run in foreground mode for debugging.<br />
<br />
The options can be queried like:<br />
<pre><br />
> src/gsmd/gsmd --help<br />
gsmd - (C) 2006 by Harald Welte <laforge@gnumonks.org><br />
This program is FREE SOFTWARE under the terms of GNU GPL<br />
<br />
Usage:<br />
-v --version Display program version<br />
-d --daemon Deamonize<br />
-h --help Display this help message<br />
-p dev --device dev Specify serial device to be used<br />
-s spd --speed spd Specify speed in bps (9600,38400,115200,...)<br />
-F --hwflow Hardware Flow Control (RTS/CTS)<br />
-L --leak-report Leak Report of talloc memory allocator<br />
-l file --logfile file Specify a logfile to log to<br />
</pre><br />
<br />
If your GSM modem is attached to ttySAC0 (like in the [[:Category:Neo1973 Hardware | Neo1973]], you can e.g. use:<br />
gsmd -p /dev/ttySAC0 -s 115200 -F<br />
<br />
== libgsmd ==<br />
<br />
libgsmd is a library with C language API for application programs. Programs using this library can use the phone, e.g. make phone calls, receive incoming calls, register to the network, etc.<br />
<br />
== libgsmd-tool ==<br />
<br />
libgsmd-tool is a small demo applicaiton that can be used to demonstrate the usage of the libgsmd API.<br />
<br />
== Usage ==<br />
<br />
libgsmd-tool has multiple modes. <br />
<br />
=== Usage of shell mode ===<br />
<br />
Shell mode provides a simple text-based command interface for making voice calls.<br />
<br />
The shell mode can be started using<br />
<br />
libgsmd-tool -m shell<br />
<br />
It can be used like in the following example:<br />
<br />
<pre><br />
> src/util/libgsmd-tool -m shell<br />
libgsm-tool - (C) 2006 by Harald Welte<br />
This program is Free Software and has ABSOLUTELY NO WARRANTY<br />
<br />
?<br />
# A Answer incoming call<br />
D Dial outgoing number<br />
H Hangup call<br />
O Power On<br />
o Power Off<br />
R Register Netowrk<br />
O<br />
# EVENT: PIN request (type=1) Please enter PIN: 6582<br />
R<br />
# EVENT: Netreg searching for network <br />
EVENT: Netreg registered (home network) <br />
<br />
D03024033902<br />
# Dial 03024033902<br />
EVENT: Call Progress: UNKNOWN<br />
EVENT: Call Progress: PROCEED<br />
EVENT: Call Progress: SYNC<br />
EVENT: Call Progress: ALERT<br />
H<br />
# Hangup<br />
EVENT: Call Progress: DISCONNECT<br />
EVENT: Call Progress: RELEASE<br />
<br />
EVENT: Incoming call type=2!<br />
EVENT: Incoming call clip=`"03024033902"'<br />
EVENT: Incoming call type=2!<br />
A<br />
# Answer<br />
RSTR=`OK'<br />
H<br />
# Hangup<br />
RSTR=`OK'<br />
</pre><br />
<br />
=== Usage of atcmd mode ===<br />
<br />
The atcmd mode is a passthrough-mode. Passthrough means that it accepts [[GSM 07.07]] commands, passes them through the daemon to the phone, and returns you the response. this is very useful for debugging.<br />
<br />
The atcmd mode can be started using<br />
<br />
libgsmd-tool -m atcmd<br />
<br />
Usage is like in the following example:<br />
<br />
<pre><br />
> src/util/libgsmd-tool -m atcmd<br />
libgsm-tool - (C) 2006 by Harald Welte<br />
This program is Free Software and has ABSOLUTELY NO WARRANTY<br />
<br />
AT+CPAS<br />
STR=`AT+CPAS'<br />
RSTR=`+CPAS: 0'<br />
AT+COPS=?<br />
STR=`AT+COPS=?'<br />
RSTR=`+COPS: (2,"E-Plus","E-Plus","26203"),(3,"o2 - de","o2 - de","26207"),(3,"Vodafone.de","Vodafone","26202"),(3,"T-Mobile D","TMO D","26201")'<br />
</pre><br />
<br />
== Currently missing ==<br />
<br />
(please add items to this list if you're missing more features)<br />
<br />
* Phone related functions<br />
** Airplane mode / gsmd stop (this will be done outside gsmd, by using runlevels / upstart)<br />
** obtain manufacturer/model/revision/IMEI<br />
<br />
* Network related functions<br />
** obtain list of available operators<br />
** select operator out of the list<br />
** obtain list of operator names<br />
** query field strength (rather than just events)<br />
<br />
* SMS related features<br />
** send SMS<br />
** receive SMS<br />
** obtain IMSI<br />
** access to SIM-card stored SMS<br />
<br />
* SIM related functions<br />
** read phonebook entry<br />
** write phonebook entry<br />
<br />
* GPRS related functions<br />
** set up GPRS link, use it via separate DLC of TS07.10 multiplex<br />
<br />
* gsmd internal infrastructure<br />
** fine-grained event subscriptions (rather than wildcard-subscribe)<br />
** possibility to specify log-level from command line<br />
** logfile re-opening on SIGUSR1 or SIGHUP (logrotate)<br />
** permission handling<br />
** d-bus interface<br />
<br />
== Implementation Thoughts ==<br />
<br />
== State tracking ==<br />
<br />
gsmd needs to do apropriate state tracking of the underlying GSM hardware. For many of the state transition we only get events from the GSM Modem, but don't have apropriate query commands. Thus, assuming gsmd runs all the time, applications can come and go, but still have an idea about the current state of the modem, even if they missed the initial state transitions.<br />
<br />
Also, gsmd state tracking allows us to allow for safer interoperability of multiple applications. If i.e. one applications has just started an outgoing call, gsmd can detect another application who intends to interfere with that and deny access<br />
<br />
=== device power state ===<br />
<br />
* modem completely off, not responding to AT commands<br />
* modem responding to AT commands, but powered off (CFUN=0)<br />
* modem responding to AT commands, in some power saving mode<br />
* modem responding to AT commands, powered on, fully operational (CFUN=1)<br />
<br />
=== network registration state ===<br />
<br />
* not registered to any network, not trying to register<br />
* not registred to any network, searching/trying to register<br />
* registered to home network (including cellID)<br />
* registered to roaming network (including cellID)<br />
<br />
=== ciphering indication state ===<br />
<br />
* ciphering indications not supported by modem<br />
* ciphering indications supported, but disabled in SIM<br />
* ciphering indications supported, ciphering active<br />
* ciphering indications supported, ciphering inactive<br />
<br />
=== call state ===<br />
<br />
* idle<br />
* busy<br />
<br />
Sources of gsmd are kept in [[OpenMoko svn]] in src/target/gsm directory.</div>Abraxahttp://wiki.openmoko.org/wiki/Talk:Search_WidgetTalk:Search Widget2007-04-12T00:21:20Z<p>Abraxa: Question answered by Dave's upload</p>
<hr />
<div></div>Abraxahttp://wiki.openmoko.org/wiki/Coding_GuidelinesCoding Guidelines2007-04-11T22:57:36Z<p>Abraxa: Reverted vandalism</p>
<hr />
<div>== General Recommendations ==<br />
[http://www.gnu.org/prep/standards/ GNU Standards] is also a good read for developers in<br />
general.<br />
<br />
== C Coding ==<br />
All C code should be done in the C99 standard -- it's much more maintainable, less error prone,<br />
clean and concise, and removes a lot of C's warts.<br />
<br />
Here is some good information about C99:<br />
<br />
* http://www-128.ibm.com/developerworks/linux/library/l-c99.html?ca=dgr-lnxw07UsingC99<br />
* http://en.wikipedia.org/wiki/C_programming_language#C99<br />
<br />
This is a good C coding guide:<br />
<br />
* [http://developer.gnome.org/doc/guides/programming-guidelines/book1.html GNOME Programming Guidelines]<br />
<br />
== C++ Coding ==<br />
[http://www.zen.uci.edu/~klefstad/s/C++-style.html C++ Style Guidelines]<br />
<br />
== Commit Logs ==<br />
[http://www.gnu.org/prep/standards/html_node/Change-Logs.html GNU Change Log Guidelines]</div>Abraxahttp://wiki.openmoko.org/wiki/Manually_using_GSMManually using GSM2007-04-11T16:38:17Z<p>Abraxa: Reverted vandalism</p>
<hr />
<div>'''When men were real men and typed their own AT commands...'''<br />
<br />
Thankfully, this may now be partially obsolete.<br />
The dialer now works!<br />
<br />
This is a short guide how to manually get GSM going.<br />
<br />
== Requirements ==<br />
<br />
* GTA01Bv2 or GTA01Bv3 with very recent u-boot bootloader, providing usbtty (serial over USB) support)<br />
* Do not connect any debug board!<br />
<br />
== Walk-Through ==<br />
<br />
=== Booting the system ===<br />
<br />
* Make sure the rootfs you use has 'auto usb0' in /etc/network/interfaces<br />
* Configure the host's usb0 interface to 192.168.0.200 netmask 255.255.255.0<br />
* ssh to root@192.168.0.201<br />
<br />
=== Disabling the getty ===<br />
<br />
Our default images all have a getty running on /dev/ttySAC0, please edit /etc/inittab and disable the getty on that port<br />
<br />
=== Reducing the loglevel ===<br />
<br />
{{note|You don't need this in kernel builds with patchset &ge; 1288}}<br />
<br />
To keep the kernel from writing to /dev/ttySAC0, you need to use <code>dmesg -n1</code>.<br />
<br />
=== Powering up the GSM Modem ===<br />
<br />
* verify there is no getty or any other app running on /dev/ttySAC0 <br />
root@fic-gta01:~$ lsof | grep ttySAC0<br />
* power-up the GSM Modem<br />
root@fic-gta01:~$ echo "1" > /sys/bus/platform/devices/gta01-pm-gsm.0/power_on<br />
<br />
=== Connecting to GSM Modem ===<br />
<br />
* change permissions on ttySAC0<br />
root@fic-gta01:~$ chown uucp.uucp /dev/ttySAC0<br />
* setup /usr/spool/uucp<br />
root@fic-gta01:~$ mkdir /usr/spool<br />
root@fic-gta01:~$ mkdir /usr/spool/uucp<br />
root@fic-gta01:~$ chown uucp.uucp /usr/spool/uucp<br />
* enable CTS/RTS flow control<br />
root@fic-gta01:~$ stty -F /dev/ttySAC0 crtscts<br />
* access the GSM Modem UART<br />
root@fic-gta01:~$ cu -l /dev/ttySAC0<br />
Connected.<br />
AT-Command Interpreter Ready<br />
OK<br />
<br />
''If it will hang on "Connected" message then probably your device has nonworking GSM modem - check [http://bugzilla.openmoko.org/cgi-bin/bugzilla/show_bug.cgi?id=256 Bug #256]''<br />
<br />
'''cu seems to have problems with the hardware flow control. The one way I always managed to get GSM working is to start cu first and then on a different console issue the stty command.'''<br />
--[[User:DanielWillmann|DanielWillmann]] 01:15, 20 March 2007 (CET)<br />
<br />
=== Using it manually ===<br />
==== Registering with the Network ====<br />
<br />
* enter the following [[Hardware:AT_Commands]]:<br />
<pre><br />
ATE1<br />
OK<br />
AT+CFUN=1<br />
ERROR<br />
AT+CPIN="...."<br />
OK<br />
AT+COPS<br />
OK<br />
</pre><br />
<br />
==== Answering an incoming call ====<br />
<pre><br />
RING<br />
ATA<br />
OK<br />
</pre><br />
<br />
==== Dialling an outgoing call ====<br />
<br />
To actually be able to talk you have to configure your audio accordingly<br />
<br />
<pre><br />
root@fic-gta01:~$ cd /etc/alsa/<br />
root@fic-gta01:/etc/alsa$ wget http://opensource.wolfsonmicro.com/~gg/gsmheadset.working.state<br />
root@fic-gta01:/etc/alsa$ alsactl -f /etc/alsa/gsmheadset.working.state restore<br />
</pre><br />
<br />
Up the "Amp right" volume to hear the speaker on both ears, then dial<br />
<br />
<pre><br />
ATD012340234;<br />
</pre><br />
<br />
==== Hanging up ====<br />
<pre><br />
ATH<br />
OK<br />
</pre><br />
<br />
=== Using [[gsmd]] ===<br />
<br />
You can use the [[gsmd]] and [[libgsmd-util]] programs to have a slightly more high-level interface to the GSM Modem. It's still console based, though.<br />
<br />
For further instructions, see [[gsmd]]<br />
<br />
=== Using tui ===<br />
<br />
Tui (available from www.sf.net/projects/tui) is able to do all this. It is still text-based, but input-rxvt can take data from touchscreen, so you can actually do the calls using your finger. It also plays wav file on incoming call, so it is theoretically usable. It even does caller id.<br />
<br />
=== Manually using GPRS ===<br />
<br />
See [[Manually using GPRS]]</div>Abraxahttp://wiki.openmoko.org/wiki/Events:FOSDEM_2007Events:FOSDEM 20072007-04-11T10:59:40Z<p>Abraxa: Reverted vandalism</p>
<hr />
<div>[[Category:events]]<br />
== OpenMoko at FOSDEM ==<br />
<br />
Sean Moss-Pultz will be giving a presentation at FOSDEM:<br />
[http://fosdem.org/2007/schedule/events/embedded_openmoko Presentation]<br />
[http://fosdem.org/2007/schedule/speakers/sean+moss-pultz Presenter Profile]<br />
<br />
Michael 'Mickey' Lauer will also be there, and mentioned:<br />
"The most prominent informal FOSDEM gathering is the Friday Beer Event at the Roy D'Espagne. A major part of the OpenEmbedded crowd will be there, as well."<br />
<br />
Here is a [http://video.google.de/videoplay?docid=-3742589179435830945&q=Openmoko video] of the OpenMoko presentation by Sean Moss - Pultz at the FOSDEM.<br />
<br />
== Fake it at FOSDEM Beer Event ==<br />
<br />
Quite a few OpenMoko enthusiasts will be meeting-up at the Friday Beer Event on February the 23rd. <br />
http://www.fosdem.org/2007/beerevent<br />
<br />
Sean mentioned being at the beer event himself, to quote the most important part of that exchange:<br />
<br />
> Best place would be the beer event of fosdem. Friday evening. ;)<br />
Deal. Drinks will be on me!<br />
-Sean<br />
<br />
<br />
<br />
Well... I can't remember Nokia ever buying me a beer...<br />
So that we can get some idea of how many people to expect, please add your name to the following list if you will be there.<br />
<br />
=== People likely to attend the FOSDEM Beer Event (Please edit as needed): ===<br />
<br />
* Sean Moss-Pultz<br />
* Michael 'Mickey' Lauer<br />
* Stefan Schmidt<br />
* Richard Bennett<br />
* Marc Verwerft<br />
* Rob Taylor<br />
* Peter Leemans<br />
* Philippe De Swert<br />
* Jan Lübbe<br />
* Daniel Willmann<br />
* Thomas Marchesseau (btw for sure on saturday)<br />
* Marc-André Beck<br />
* Koen Kooi<br />
* Ole Tange<br />
* Matthias 'greentux' Lemke<br />
* Marcin 'hrw' Juszkiewicz<br />
* ...<br />
<br />
=== How do we find each other? ===<br />
<br />
That's pretty easy. The venue is linked to above. You can also try to recognize some of the guys by looking at http://flickr.com/photos/koenkooi/sets/72157594516863220/ and http://flickr.com/photos/koenkooi/sets/72157594436178138/ (Photos courtesy Koen Kooi).<br />
<br />
Those lucky developers who already have a NEO1973 by then can hang it around their neck, on proud display, that should catch the attention.<br />
<br />
All those poor sods who are still waiting for their NEO can '''FAKE IT''':<br />
<br />
Print the following PDF on stiff card, cut along the outline, and cut out the strap-hole, stick the two sides together and hang the resulting life-sized fake NEO from you FOSDEM neck-strap!<br />
<br />
[[Media:Neo.pdf]]<br />
<br />
In case you wonder what that looks like, here's a PNG of the same thing:<br />
<br />
<br />
[[Image:neo.png]]<br />
<br />
<br />
Ohh ok, it's just a bit of nerdy fun...<br />
<br />
----<br />
<br />
It seems [[User:Richardb|I'm]] not the only one who likes faking it, [[User:OleTange|Ole Tange]] put together something similar here:<br />
<br />
[[Media:Neo1973-doll.pdf]]</div>Abraxahttp://wiki.openmoko.org/wiki/FAQFAQ2007-04-10T21:17:37Z<p>Abraxa: Speedevil was faster.</p>
<hr />
<div>Questions and Answers that don't seem to fit elsewhere<br />
<br />
==Introduction== <br />
<br />
=== Q: What is OpenMoko and Neo1973? ===<br />
A: [[OpenMoko]] is a software platform, an attempt to create the world's first completely open mobile phone software stack. The [[FIC]] [[Neo1973]] is the first fully supported OpenMoko phone.<br />
<br />
=== Q: When can I buy a [[Neo1973]]? ===<br />
<br />
A: Mid to late April for developers, September for mass market - See [[Neo1973]] for most up to date information. [[Neo1973]] will be shipped worldwide. There also will be [http://lists.openmoko.org/pipermail/community/2007-January/001216.html shipping from EU].<br />
To be informed when it is available, '''subscribe''' to [http://lists.openmoko.org/mailman/listinfo/announce the mailing list announce].<br />
<br />
=== Q: How much? === <br />
<br />
A: $350 for the Developer's Kit - Phase 1. Includes:<br />
<ul><br />
<li>Neo1973 phone</li><br />
<li>Battery</li><br />
<li>Headset</li><br />
<li>Compact charger</li><br />
<li>Carrying case</li><br />
<li>Stylus</li><br />
<li>Lanyard</li><br />
<li>512 MB MicroSD card</li><br />
<li>USB connectivity cable</li><br />
<li>Instruction manual and warranty</li><br />
</ul><br />
<br />
$75 for the Car Kit. Includes:<br />
<ul><br />
<li>Windshield mount and device holder</li><br />
<li>Car charger</li><br />
<li>External antenna</li><br />
</ul><br />
<br />
$200 for the Hacker's Lunchbox. Includes:<br />
<ul><br />
<li>Development/[[Debug Board]]</li><br />
<li>Battery</li><br />
<li>Compact charger for development board</li><br />
<li>FPC (to connect to the jtag port)</li><br />
<li>Shoulder strap</li><br />
<li>Debug cable (USB)</li><br />
</ul><br />
<br />
=== Q: What will it do? ===<br />
<br />
A: The Phase 1 phone available in early April is for developers only. It is not suitable for end users, it will have basic functionality as a touchscreen phone. Little else will work, software development will continue till mass market release.<br />
<br />
Those interested should:<br />
<br />
* Know that there will be a device with faster cpu, gsm system etc. 6 months later<br />
* Have fun hacking devices.<br />
* Be able to find their way through prototype software and hardware without much documentation.<br />
* Share the dream of a device powered by free software.<br />
* Not expect a consumer-level device.<br />
* Come up with new ideas for exploring the age of mobile computing.<br />
* Have $350.<br />
<br />
Ideally they also:<br />
<br />
* Can spot bugs and submit patches.<br />
* Love to cooperate with a community improving the software.<br />
<br />
==Software==<br />
<br />
=== Q: Can the software do/connect to/... ===<br />
A: At the moment, the answer is in almost all cases no. The phone is at the moment a small linux box with a touchscreen, a working dialer and some prototype apps. <br />
Most do not function in any way that would be suitable for users.<br />
If you want to add a feature or application request, then look over the existing applications and either add one, or add a feature request to the applications page.<br />
<br />
=== Q: Is there description and list of OpenMoko software? ===<br />
<br />
A: See [[OpenMoko]] and [[OpenMokoFramework]]<br />
<br />
=== Q: Is it completely free software/open source? ===<br />
<br />
A: User space [[Gpsd]] will use binary plugin for [[:Category:Neo1973 Hardware#AGPS|Hammerhead AGPS]] and [[:Category:Neo1973 Hardware#GSM.2FGPRS|GSM modem]] is separate subsystem connected to S3C2410 UART1. Otherwise it is completely free software. See [[MokoMakefile]] and [[Development resources]].<br />
<br />
=== Q: How do I install and manage software on OpenMoko? ===<br />
<br />
A: ipkg: http://handhelds.org/moin/moin.cgi/Ipkg<br />
<br />
=== Q: How can I compile programs for the Neo1973? ===<br />
<br />
A: See [[Toolchain]].<br />
<br />
=== Q: Is there an emulator available for OpenMoko? ===<br />
<br />
*XorA guesses that if your first question is "is there an emulator"<br />
then you're not actually ever going to do dev work :-)<br />
<br />
====QEMU====<br />
The [[MokoMakefile]] now has support for automatically building, flashing, and running the new OpenMoko emulator (which is based on QEMU).<br />
<br />
“make qemu” will build qemu-neo1973, download the latest official openmoko images, flash the images into the virtual NAND flash, and run the emulator.<br />
<br />
====Xoo====<br />
Another is [http://projects.o-hand.com/xoo Xoo]. Koen says: "Xoo should be enough for most apps people will develop, since most don't need access to the gsm uart directly. If you're hardcore you could use qemu + xoo, but that still doesn't emulate all the hardware quirks (e.g. unaligned access)".<br />
<br />
Update: Stefan Schmidt has resized the [[Neo1973]] Mock-up and written a small description for xoo. In his words:<br />
<br />
It's not really useable at all, as you need a really high screen resolution to fit the whole picture on your screen. And of course the dpi are wrong. Even no buttons because I can't remember where they are at the case.<br />
<br />
http://www.datenfreihafen.org/~stefan/OpenMoko/neo1973-xoo-device.tar.bz2<br />
<br />
Start with 'xoo --device /path/to/neo1973.xml'<br />
<br />
Some more details [[Getting_Openmoko_working_on_host_with_Xoo|here]].<br />
<br />
====Xephyr====<br />
Or use Xephyr directly with locally compiled programs (e.g. matchbox svn + openmoko):<br />
Xephyr -screen 480x640 -nolisten tcp -ac :1 &<br />
export DISPLAY=:1<br />
export LD_LIBRARY_PATH=/usr/local/lib<br />
matchbox-window-manager -display $DISPLAY -use_titlebar no \<br />
-use_super_modal yes -use_lowlight yes -use_dialog_mode static \<br />
-use_cursor yes &<br />
matchbox-panel --geometry=480x44 --end-applets=clock &<br />
openmoko-footer &<br />
openmoko-taskmanager &<br />
<br />
=== Q: Where can I find some type of tutorial for a 'Hello, world' on OpenMoko? ===<br />
<br />
A: This should get you started:<br />
http://www.gtk.org/tutorial/<br />
<br />
=== Q: Can PalmOS apps applications be ported to run on OpenMoko? ===<br />
<br />
A: Making legacy apps written for the "Garnet" OS (née "Palm OS") run on Linux<br />
is decidedly non-trivial. An emulator for this is going to be part of the<br />
ACCESS Linux Platform.<br />
<br />
PalmOS apps are in general very hard to simply 'port'. Particularly well-designed programs may make it possible.<br />
<br />
The ACCESS Linux Platform will include POSE, an emulator that simulates a Palm device on a Linux host. This emulator has been around a long time; one expects that it will also run on OpenMoko, but this has to be considered a short-term bandaid rather than a long-term solution.<br />
<br />
=== Q: Does it have Java? ===<br />
A: It will have eventually, if you help us to get it working. Some good places to keep track of would be [http://projects.openmoko.org/projects/java-pkg/ projects.openmoko.org] and [https://phoneme.dev.java.net/ PhoneME].<br />
<br />
=== Q: What are the relevant X11 details? ===<br />
<br />
A: See [http://lists.openmoko.org/pipermail/community/2007-January/001353.html xdpyinfo output].<br />
<br />
=== Q: Does OpenMoko run on any other hardware? ===<br />
<br />
You can run it on your [[How_to_run_OpenMoko_Apps_on_PC|PC]]. There is work going on with [http://www.datenfreihafen.org/~stefan/weblog//archives/2007/02/#e2007-02-18T15_27_07.txt OpenEZX and HTC]. It's running on [http://dominion.kabel.utwente.nl/koen/cms/openmoko-running-on-an-ipaq iPaq hx4700].<br />
<br />
=== Q: Why do you not build on top of the Maemo platform instead? ===<br />
<br />
While I can't speak for the OpenMoko team, it's worth noting that maemo is fixed resolution only. That will, I've heard, change in the future, but it hasn't yet. Maemo's current layout is also optimized for wide screens, not tall narrow ones. Most third party maemo applications that are out there will need to be modified to work at different sizes. Finally, a number of the software components of the Nokia 770 and N800 are not open source. --gopi<br />
<br />
To add up on that, according to Nokia, Maemo is designed to bring the "Desktop" experience to an Internet Tablet. A lot of Desktop paradigms just won't work on a phone. However, we really share a lot of the base-technology (gtk, dbus, eds, gconf, to name a few) with Maemo, so we are definitely not a reinvent-the-wheel team.<br />
<br />
=== Q: Will it be possible to use popular instant messengers/voip applications such as msn or skype on the OpenMoko platform? ===<br />
<br />
A: Perhaps. Hardware issues mean that it won't work well on the Neo1973. (the typical latency of GPRS is far too high). Also, skype and MSN are both closed source applications, which do not provide binaries that would be suitable to run on OpenMoko. They could of course choose to provide binaries for OpenMoko phones. Many telephone providers terms of service agreements preclude running VOIP.<br />
<br />
==Neo1973 Hardware== <br />
<br />
=== Q: Is there description of [[:Category:Neo1973 Hardware | Neo1973 Hardware]] ? ===<br />
<br />
A: See [[:Category:Neo1973 Hardware | Neo1973 Hardware]] and [[Disassembling Neo1973]]<br />
<br />
=== Q: What are the dimensions? ===<br />
<br />
A: 120.7 x 62 x 18.5 mm, It would fit entirely in a coke can. (4.75 * 2.4 * 0.72 ")<br />
<br />
=== Q: How heavy is it? ===<br />
<br />
A: 185g, (6.5 ounces).<br />
<br />
=== Q: Does it have a camera? ===<br />
<br />
A: No, see [[:Category:Neo1973 Hardware | Neo1973]] for details on what it does include (and [[Wish List - Hardware]] for what some want in the future.) See also [[FAQ#USB]].<br />
<br />
=== Q: What is the rationale behind the exclusion of WiFi? ===<br />
<br />
A: No suitable low power open source WiFi device was available when the [[Neo1973]] was designed. A closed source WiFi device would have been restrictive for developers and users alike. See also [[FAQ#USB]].<br />
<br />
See also:<br />
[[Sean Moss-Pultz]]'s [http://lists.openmoko.org/pipermail/community/2006-November/000050.html comment on this]<br />
<br />
[[Neo1973|Phase 1+]] might include WiFi [[WiFi_support_in_OpenMoko|if suitable chipset is found]].<br />
<br />
=== Q: Does it have bluetooth? ===<br />
<br />
A: Yes!<br />
<br />
=== Q: Does it come with a stylus? ===<br />
<br />
A: Yes, but there's no holder for it on the phone.<br />
<br />
<br />
=== Q: Where are the buttons? ===<br />
<br />
The power button is a small circular button, just next to the USB connector. [[Neo1973 Power button]]<br />
The Auxilliary button is a rectangular button on the top left of the edge of the phone. (on black phones it looks just like an IRDA port). [[Neo1973 AUX button]]<br />
<br />
=== Q: How do I input text? ===<br />
<br />
A: Use provided keyboard app.<br />
<br />
A: Use Bluetooth keyboard.<br />
<br />
A: For more methods and ideas see [[Wishlist:Text_Input]].<br />
<br />
=== Q: Can I record calls and/or play audio files in calls? ===<br />
<br />
A: Yes, audio path from GSM to/from mic and speakers is completely controllable by user. For example recording calls (both sides) and implementing answering machine is possible. Also using text->speech should be possible or modifying outgoing voice. Currently there is no software bundled in phone to do this.<br />
<br />
=== Q: What is the battery life? ===<br />
<br />
A: There has been no word on this so far, but see [[Neo1973 Power Management#Approximate_power_draw_of_various_subsystems|these estimates]] for a rough idea. More information about the battery [[Neo1973 Battery|here]].<br />
<br />
=== USB ===<br />
<br />
==== Q: What can I do with the USB port on the Neo1973? ====<br />
A: Charge the phone, communicate with it over USB-serial, or USB-networking.<br />
<br />
A: Plug external devices, such as wifi, cameras, or mass-storage devices in.<br />
<br />
==== Q: What can't I do with the USB? ====<br />
<br />
The USB on the neo has no power output. This means that you cannot use USB bus powered devices without some sort of powered hub or cable.<br />
This is due to the fact that adding a 5V power supply into the device would have added complexity, volume and cost.<br />
<br />
Many powered USB devices don't work without at least a nominal amount of 5v power from the USB bus. A few powered USB hubs will work without 5v power from the host, but most powered ones need to have simple electrical modifications done to work.<br />
<br />
==== Q: Why is only USB 1.1 provided? ====<br />
<br />
A: The processor has USB 1.1 built in. One with USB2 built in would have been more expensive.<br />
<br />
==== Q: Can the Neo charge and use devices on a USB hub at the same time? ====<br />
<br />
A: <br />
*When the Neo is connected to a device port on a USB hub, it will start charging. If the hub is a powered hub, then it will charge fast (3h), otherwise around 12h.<br />
<br />
*If you plug the Neo into the host port of a USB hub you can use devices on that hub but the Neo will not charge. (Some/many USB hubs will not accept an unpowered host as valid, hence the need for the below cable.)<br />
*This is because the host socket on USB hubs is not powered.<br />
<br />
FIC product development is looking into providing something that<br />
conveniently solves this problem.<br />
<br />
The USB port on the Neo is not a properly compliant USB host port, all USB host ports must provide 5V - though powered devices or hubs may not draw any current from this, they may refuse to work. (The Belkin Tetrahub is an example of a hub that will not work.)<br />
<br />
One solution is a three headed cable.<br />
<br />
One end plugs into the Neo. One end plugs into a device port of a powered hub, or the Neo charger. One end plugs into the host port of a hub.<br />
<br />
The Charger/USB device plug only has +5V and 0V connected in the simple cable, which are connected to the other ends.<br />
<br />
For a more complex cable, when the host socket is not plugged in, the cable acts as a simple USB cable.<br />
<br />
==== Q: What are the details of the USB port on the [[Neo1973]]? How does it compare to USB On-The-Go? ====<br />
<br />
A: The [[Neo1973]] will have mini-USB-B, and will be able to function as either a host or a device. It will NOT be USB On-The-Go. OTG is a complex specification, and it comprises way more than just<br />
a AB socket, but also electrical and software components which cannot be provide by the S3C2410.<br />
<br />
You will need a special Mini-B to regular-B cable (note that this won't actually comply with the USB standard: a compliant cable has to have an A or Mini-A plug on one end, and B or Mini-B on the other).<br />
<br />
=== Q: Are there any LEDs on the Neo 1973? ===<br />
<br />
A: The [[Neo1973]] v1 will have no LEDs besides the screen backlight.<br />
<br />
=== Q: Will a JTAG port be made available? ===<br />
<br />
A: The "Hacker's Lunchbox" will make this kind of stuff easy. <br />
<br />
It is currently assumed that the "Hacker's Lunchbox" will contain the [[Debug Board]]. [[Connecting Neo1973 with Debug Board v2]] explains how to connect it to the phone.<br />
<br />
=== Q: What can we expect in future versions? ===<br />
<br />
A: A faster CPU, faster GSM (EDGE?) perhaps even powered USB port, USB2, wifi, and camera. None of the details have been released yet. More details of hardware upgrades should be available sometime in May. There will also be 5 more OpenMoko devices - some not phones in the traditional sense announced by FIC in September.<br />
<br />
==Networking/Connectivity==<br />
<br />
=== Q: Can I bridge to an Ethernet (wired or unwired) network via a suitable Bluetooth enabled router? ===<br />
<br />
A: Yes - see [http://gentoo-wiki.com/HOWTO_Configure_a_bluetooth_network_access_point this howto for how to configure a linux computer to act as such a router] and [[Bluetooth Support]].<br />
<br />
=== Q: What providers provide the GSM required for Neo 1973? ===<br />
<br />
A: See [[OpenMoko compatible cellphone providers]]<br />
<br />
=== Q: Will OpenMoko "Just Work" with Mac OS X? ===<br />
<br />
A: There has been some discussion of this on the mailing list. There is motivation, and there are interested developers. <br />
Not being a Mac OS X user, I don't know enough<br />
to summarize the discussion to answer this question. Can someone please fill in?<br />
<br />
A: For IP over USB cable connectivity, it is planned to improve/adapt the AJZaurusUSB driver, allowing ssh into the OpenMoko.<br />
<br />
A: It is expected that (Bluetooth/UB) SyncML based interoperation for<br />
contacts and events can easily be achieved by a patch<br />
to the Apple iSync configuration tables.<br />
<br />
A: There is an open source implementation of Cocoa (GNUstep) that aims to run MacOS X compatible applications (sort of<br />
PPC/x86/ARM universal binaries) on OpenMoko devices: mySTEP.<br />
<br />
==Misc==<br />
<br />
=== Q: On the lists on lists.openmoko.org, should replies be added above or below the original text? ===<br />
<br />
A: Please reply UNDER post.<br />
<br />
=== Q: How can I find out if a question or topic has already been discussed on the mailing lists? ===<br />
<br />
A: By searching the mailing list archives. For example, using Google searches:<br />
<br />
site:openmoko.org text<br />
<br />
For example, to search for accelerometer:<br />
<br />
site:openmoko.org accelerometer<br />
<br />
If you only want to read the "official" mails from FIC people or from OpenMoko people:<br />
<br />
site:openmoko.org text "at fic.com.tw"<br />
site:openmoko.org text "at openmoko.org"<br />
<br />
For example to search for "release date" from FIC people:<br />
<br />
site:openmoko.org "release date" "at fic.com.tw"<br />
<br />
Alternatively you can use the [http://www.google.com/coop/cse?cx=017507431580478583395%3Astsl7lhxzbc custom OpenMoko search engine] which has been created using [http://www.google.com/coop/ Google Co-op].<br />
<br />
<br />
{{Languages|FAQ}}</div>Abraxa